MATLAB パスでカスタム関数を使用して、Simulink モデル内のブロックまたはサブシステムの代替の線形化を指定できます。
カスタムの線形化関数は 1 つの入力引数 BlockData
をもたなければなりません。これは、ソフトウェアが作成して関数に渡す構造体です。BlockData
には次のフィールドがあります。
フィールド | 説明 |
---|
BlockName | カスタム線形化の指定対象となるブロックの名前。 |
Parameters | ブロック パラメーター値。Name フィールドと Value フィールドをもつ構造体配列として指定します。Parameters には、blocksub.Value.ParameterNames フィールドと blocksub.Value.ParameterValues フィールドで指定するパラメーターの名前と値が含まれます。 |
Inputs |
線形化の定義対象のブロックへの入力信号。各ブロック入力ごとに構造体を 1 つもつ構造体配列として指定します。Inputs の各構造体には次のフィールドがあります。
フィールド | 説明 |
---|
BlockName | 対応するブロック入力に接続する出力をもつブロックの絶対ブロック パス。 | PortIndex | 対応するブロック入力に接続する、BlockName で指定されるブロックの出力端子。 | Values | BlockName および PortIndex で指定される信号の値。この信号がベクトル信号の場合、Values は同じ次元をもつベクトルです。 |
|
ny | ブロック線形化の出力チャネル数。 |
nu | ブロック線形化の入力チャネル数。 |
BlockLinearization | ブロックの現在の既定の線形化。状態空間モデルとして指定します。BlockLinearization を使用して既定の線形化に依存するブロック線形化を指定できます。 |
カスタム関数は nu
の入力と ny
の出力をもつモデルを返さなければなりません。このモデルは次のいずれかでなければなりません。
たとえば、次の関数は現在の既定のブロック線形化を Td = 0.5
秒の遅延で乗算します。遅延はサンプル時間 Ts = 0.1
の Thiran フィルターで表されます。遅延とサンプル時間は BlockData
に保存されているパラメーターです。
この関数を MATLAB パス上の場所に保存します。
この関数をブロックまたはサブシステムのカスタム線形化として使用するには、blocksub.Value.Specification
フィールドと blocksub.Value.Type
フィールドを指定します。
遅延およびサンプル時間のパラメーター値を設定するには、blocksub.Value.ParameterNames
フィールドと blocksub.Value.ParameterValues
フィールドを指定します。