2012-05-11 50 views
0

我正在使用Simulink(Matlab),我有一個問題: 我開始一個模擬和每個'T'時間,我需要停止它,將系統的狀態保存爲Simstate,並且然後通過更改一些變量來恢復系統狀態。例如,我與示範基地「倒立擺與動畫」(penddemo.mdl)工作,當我恢復狀態,我必須改變鐘擺的質量,這裏的一些代碼:Matlab/Simulink SimState錯誤

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因爲在保存SimState後,初始模型'penddemo'被更改。再次運行模擬並重新保存SimState。

我知道有在使用SIMSTATE的限制:

您不能在您保存SIMSTATE,並在您使用恢復模擬時的時間之間的模型的任何結構變化SimState。例如,保存SimState後不能添加或移除塊,而不重複模擬並保存新的SimState。

但我不認爲改變一個變量是一個結構性變化。 也許有人知道在Simstate恢復之前改變一些變量的另一種方法。

謝謝全部

回答

0

我相信你只能改變「可調」參數。嘗試關閉「內聯參數」,請參閱documentation on tunable parameters以獲取更多詳細信息

+0

感謝您的回答,但擺錘的質量是可調參數,「內聯參數」已關閉。 – Fabio