Simulinkで離散時間のディスクリプタシステムを実装するにはどうすればよろしいでしょうか?
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Simulinkで離散時間のディスクリプタシステムが実装できなくて困っています.
LTI Systemの中にMATLABの関数であるdssを記述することで実装できるのかなと思っていたのですが,dssのパラメータを変えると時折以下のようなエラーが出て困っています.
- '(Simulinkモデル名)/(ブロック名)' でのエラー: マスクの初期化コマンドを評価できませんでした。
- 原因:
- "初期状態" パラメーターは、状態と同じ入力を持つベクトルに設定されなければなりません。
エラーが出るdssのパラメータは,例えば以下のようなもので,初期状態は [0;0] に設定しています.
dss([0 -1;0 1], [1 -1;0 0], [1 1], [0], [0 0;0 0], 0.1)
ただし,MATLABのコマンドラインでdssを実行すると,エラーを吐かれることなく実行することができます.
私の動作環境は,R2022aです.
ご回答いただけますと幸いです.
0 comentarios
Respuestas (2)
Toshinobu Shintai
el 29 de Sept. de 2022
Eに当たる行列が0であるため、エラーとなっているようです。Eの部分を単位行列にすると問題なく実行できました。
sys = dss([0 -1;0 1], [1 -1;0 0], [1 1], [0], [1 0;0 1], 0.1);
一般的に、Simulinkのブロックのパラメーター記入欄の中にコマンドを入れることはお勧めしておりません。機能としてはできてしまうのですが、その際の実行結果を確認することが難しいため、問題の特定に苦労してしまいます。
まずMATLABスクリプトで上記コマンドを実行し、得られた"sys"というワークスペース変数を LTI System ブロックの中に記入する形が望ましいです。
0 comentarios
Yugo OGIO
el 29 de Sept. de 2022
2 comentarios
Toshinobu Shintai
el 29 de Sept. de 2022
以下のドキュメントを確認してください。
E行列が正則でない場合、状態方程式がどうなるか考えてみると、ヒントになるのではないでしょうか。
Ver también
Categorías
Más información sobre モデル コンポーネントのスケジュール en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!