Main Content

スパース 2 次モデル オブジェクトへの Simulink モデルの線形化

この例では、Simulink® モデルを線形化してスパース 2 次モデル オブジェクト (mechss) を取得する方法を説明します。Simulink モデル sparseSimulinkModel.slx には、Sparse Second Orderブロックを使用してモデル化されたプラントが含まれています。このブロックは PID コントローラー、アクチュエータ、およびセンサーを使用したフィードバック ループで接続されています。センサーとアクチュエータは伝達関数を使用してモデル化されます。線形化を実行するには Simulink Control Design™ のライセンスが必要です。

スパース モデルの詳細については、スパース モデルの基礎を参照してください。

Linearize_Simulink_Model.png

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)

参考

(Simulink Control Design) | (Simulink Control Design) | | | | |

関連するトピック