0

我正在使用 Simulink (Matlab),但我遇到了一个问题:我开始一个模拟,每一次我都需要停止它,将系统状态保存为 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 之前更改某些变量的另一种方法。

谢谢大家

4

1 回答 1

0

我相信您只能更改“可调”参数。尝试关闭“内联参数”,有关详细信息,请参阅有关可调参数的文档

于 2012-05-12T01:14:43.317 回答