メインコンテンツ

スパース 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(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)

Figure contains an axes object. The axes object with title nnz: M=71076, C=335, K=212825, B=1, F=1., xlabel Right-click to select matrices contains 19 objects of type line. One or more of the lines displays its values using only markers These objects represent K, B, F, D.

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)

MATLAB figure

参考

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

トピック