我有MATLAB Simulink模型成功运行。在此模型中,函数运行代码来执行操作。功能代码在操作期间生成一个值。我想保存此值并在后续操作中使用。
在上面的屏幕截图中,Icur_in和Icur_ou是函数的输入和输出。实际上,两者都指相同的值。我正在使用内存功能来保存下一个操作的值。到目前为止,还可以。但是价值不断变化。
我现在的代码是:
Function [Icur_ou] = fun(Icur_in)
Icur_ou = Icur_in;
if somecondition
Icur_ou = I_s;
end
end
答案 0 :(得分:1)
我不确定您的问题是什么,因为您声明:“到现在为止还可以。” 我对您的模型也很满意,但尽管如此,我还是发现{{ 3}},这似乎是同样的问题。除了建议的解决方案之外,我还喜欢有关this link变量的前两个注释,我认为这些注释可能还会帮助您,具体取决于模型的采样时间(请参见链接中的注释)。
在这种情况下,您不需要内存块,而是必须使Icur_
变量persistent
,以便它在函数调用之间保留在内存中。与此类似:
Function [Icur_ou] = fun(Icur_in)
persistent Icur_ou = Icur_in;
if somecondition
Icur_ou = I_s;
end
end