我正在使用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之前改变一些变量的另一种方法。
全部谢谢