スパース 2 次モデル オブジェクトへの Simulink モデルの線形化
この例では、Simulink® モデルを線形化してスパース 2 次モデル オブジェクト (mechss
) を取得する方法を説明します。Simulink モデル sparseSimulinkModel.slx
には、Sparse Second Orderブロックを使用してモデル化されたプラントが含まれています。このブロックは PID コントローラー、アクチュエータ、およびセンサーを使用したフィードバック ループで接続されています。センサーとアクチュエータは伝達関数を使用してモデル化されます。線形化を実行するには Simulink Control Design™ のライセンスが必要です。
スパース モデルの詳細については、スパース モデルの基礎を参照してください。
linData.mat
に含まれるモデル データを読み込み、Simulink モデルを開きます。
load('linData.mat') mdl = 'sparseSimulinkModel'; open_system(mdl);
次に、linio
(Simulink Control Design)を使用して線形化 I/O 設定を作成し、Simulink モデルを線形化します。
sys_io(1) = linio('sparseSimulinkModel/Controller',1,'input'); sys_io(2) = linio('sparseSimulinkModel/Plant',1,'output'); sys = linearize(mdl,sys_io)
Sparse continuous-time second-order model with 1 outputs, 1 inputs, and 3415 degrees of freedom. Use "spy" and "showStateInfo" to inspect model structure. Type "properties('mechss')" for a list of model properties. Type "help mechssOptions" for available solver options for this model.
結果の線形化モデル sys
は、3415 の自由度、1 つの入力、1 つの出力をもつmechss
モデル オブジェクトです。
spy
を使用してスパース モデルのスパース性を可視化できます。プロットを右クリックして切り替え、表示する行列を選択します。
spy(sys)
showStateInfo
を使用して、スパース 2 次モデル sys
の分割情報を表示します。
showStateInfo(sys)
The state groups are: Type Name Size ---------------------------------------------- Component 5 Component sparseSimulinkModel/Plant 3408 Signal 2
スパース 2 次モデルのステップ応答を調べます。スパース モデルの最終時間または時間ベクトルを指定しなければなりません。
t = 0:0.01:20; step(sys,t)
参考
linearize
(Simulink Control Design) | linio
(Simulink Control Design) | mechss
| showStateInfo
| xsort
| spy
| Sparse Second Order