- 可能提示没有对应的function
看一看对应的function在setup模块中是否被引用。
- 可能提示Dwork不能有空的。。。
看一下Dwork设定参数的个数,与实际设定的Dwork参数个数是否相符。
- 不同的function中的参数无法互相通用,也是程序无法正确使用的原因。
Dwork有效性试错
如果Dwork可以看做是全局变量,那么在InitializeConditions中的Dwork的值是可以带入到Output子函数的,现在试试。
设置0.1s,step应该变值,但是很显然没有变化,所以这样是不行的。
也就是说InitializeConditions并不是执行一次就初始化一次么?
调整将Dwork放到Derivatives模块中,这样就相当于原来的了,应该就好用了。
function Derivatives(block)
tau = block.DialogPrm(1).Data;
Uc = block.DialogPrm(2).Data;
if block.CurrentTime <= block.DialogPrm(3).Data
block.Dwork(3).Data = 0;
else
block.Dwork(3).Data = 1;
end
block.Derivatives.Data = block.Dwork(3).Data * 1/tau * (block.InputPort(1).data^2 / Uc^2 - 1);
%endfunction
这样是可以的。