首页 文章

Matlab / Simulink SimState错误

提问于
浏览
0

我正在使用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 回答

相关问题