私は 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 を読み込めません。SimState の保存後に初期モデル 'penddemo' が変更されたためです。シミュレーションを再度実行し、SimState を再保存します。
Simstate の使用には制限があることを知っています。
SimState を保存してから SimState を使用してシミュレーションを復元するまでの間に、モデルに構造的な変更を加えることはできません。たとえば、シミュレーションを繰り返して新しい SimState を保存しない限り、SimState を保存した後にブロックを追加または削除することはできません。
しかし、単一の変数を変更することが構造的な変更だとは思いません。Simstate が回復する前に、変数を変更する別の方法を誰かが知っているかもしれません。
皆さんありがとう