スパース 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(mdl + "/Controller",1,"input"); sys_io(2) = linio(mdl + "/Plant",1,"output"); sys = linearize(mdl,sys_io)
Sparse continuous-time second-order model with 1 outputs, 1 inputs, and 3418 degrees of freedom. Model Properties Use "spy" and "showStateInfo" to inspect model structure. Type "help mechssOptions" for available solver options for this model.
結果の線形化モデル sys は、3418 の自由度、1 つの入力、1 つの出力をもつmechssモデル オブジェクトです。
spyを使用してスパース モデルのスパース性を可視化できます。プロットを右クリックして、表示する行列を選択します。
spy(sys)

showStateInfoを使用して、スパース 2 次モデル sys の分割情報を表示します。
showStateInfo(sys)
The state groups are:
Type Name Size
-------------------------------------------------------------------------
Component sparseSimulinkModel/Actuator/Internal/CT/State-Space 2
Component sparseSimulinkModel/Sensor/Internal/CT/State-Space 1
Component sparseSimulinkModel/.../Integrator 1
Component sparseSimulinkModel/.../Filter 1
Component sparseSimulinkModel/Plant 3408
Signal 5
スパース 2 次モデルのステップ応答を調べます。スパース モデルの最終時間または時間ベクトルを指定しなければなりません。
t = 0:0.01:20; stepplot(sys,t)

参考
linearize (Simulink Control Design) | linio (Simulink Control Design) | mechss | showStateInfo | xsort | spy | Sparse Second Order