Matlab / Simulink SimState错误

时间:2012-05-11 08:06:38

标签: matlab simulink

我正在使用Simulink(Matlab),我遇到了一个问题: 我开始模拟并且每个'T'时间我需要停止它,将系统状态保存为Simstate,然后通过更改一些变量来恢复系统状态。例如,我正在使用基础模型'带动画的倒立摆'(penddemo.mdl),当我恢复状态时,我必须改变摆的质量,这里是一些代码:

set_param('penddemo','LoadInitialState','on','InitialState','init_state'); % load the initial state
set_param('penddemo','SaveFinalState','on','FinalStateName', 'xFinal','SaveCompleteFinalSimState', 'on'); % save the complete simstate
set_param('penddemo/Pendulum','Mcart','0.600'); % change the mass
sim('penddemo',time); %starting the simulation

问题是我收到了这个错误:

无法加载Simulink SimState因为初始模型'penddemo'在保存SimState后被更改。再次运行模拟并重新保存SimState。

我知道Simstate的使用存在局限性:

在保存SimState的时间和使用SimState恢复模拟的时间之间,不能对模型进行任何结构更改。例如,在保存SimState之后无法添加或删除块,而无需重复模拟并保存新的SimState。

但我不认为改变单一变量是一种结构性变化。 也许有人知道在恢复Simstate之前改变一些变量的另一种方法。

全部谢谢

1 个答案:

答案 0 :(得分:0)

我相信你只能改变“可调”参数。尝试关闭“内联参数”,有关详细信息,请参阅documentation on tunable parameters