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 を読み込めません。SimState の保存後に初期モデル 'penddemo' が変更されたためです。シミュレーションを再度実行し、SimState を再保存します。

Simstate の使用には制限があることを知っています。

SimState を保存してから SimState を使用してシミュレーションを復元するまでの間に、モデルに構造的な変更を加えることはできません。たとえば、シミュレーションを繰り返して新しい SimState を保存しない限り、SimState を保存した後にブロックを追加または削除することはできません。

しかし、単一の変数を変更することが構造的な変更だとは思いません。Simstate が回復する前に、変数を変更する別の方法を誰かが知っているかもしれません。

皆さんありがとう

4

1 に答える 1

0

「調整可能な」パラメーターのみを変更できると思います。「インライン パラメーター」をオフにしてみてください。詳細については、調整可能なパラメーターに関するドキュメントを参照してください。

于 2012-05-12T01:14:43.317 に答える