Main Content

MATLAB および Simulink での LTV モデルと LPV モデルの使用

Control System Toolbox™ ソフトウェアを使用して、線形パラメーター変動 (LPV) システムと線形時変 (LTV) システムを MATLAB® と Simulink® の両方で表現できます。

環境モデル タイプモデル オブジェクトまたはブロック
MATLAB線形パラメーター変動lpvss オブジェクト
線形時変ltvss オブジェクト
Simulink線形パラメーター変動LPV System ブロック
線形時変LTV System ブロック (R2024a 以降)

モデル オブジェクト

LPV システムと LTV システムを MATLAB で表現するには、それぞれ lpvssltvss を使用します。これらのモデルの詳細については、LTV モデリングと LPV モデリングを参照してください。

次の表は、表現できる変動モデルのタイプを示しています。

モデル タイプ数学的表現モデル オブジェクト
連続時間 LPV モデル

E(t,p)x˙=δ0(t,p)+A(t,p)(xx0(t,p))+B(t,p)(uu0(t,p))y(t)=y0(t,p)+C(t,p)(xx0(t,p))+D(t,p)(uu0(t,p))

lpvss
離散時間 LPV モデル

E(k,pk)xk+1=δ0(k,pk)+A(k,pk)(xkx0(k,pk))+B(k,pk)(uku0(k,pk))yk=y0(k,pk)+C(k,pk)(xkx0(k,pk))+D(k,pk)(uku0(k,pk))

lpvss
連続時間 LTV モデル

E(t)x˙=δ0(t)+A(t)(xx0(t))+B(t)(uu0(t))y(t)=y0(t)+C(t)(xx0(t))+D(t)(uu0(t))

ltvss
離散時間 LTV モデル

Ekxk+1=δ0k+Ak(xkx0k)+Bk(uku0k)yk=y0k+Ck(xkx0k)+Dk(uku0k)

ltvss

データ関数

ltvss オブジェクトと lpvss オブジェクトでは、行列とオフセットを計算するユーザー定義の MATLAB 関数を指定する必要があります。これは "データ関数" と呼ばれ、次の形式でなければなりません。

モデル タイプデータ関数
連続時間 ltvss

[A,B,C,D,E,δ0,x0,u0,y0,Delays]=f(t)

離散時間 ltvss

[A,B,C,D,E,δ0,x0,u0,y0,Delays]=f(k)

連続時間 lpvss

[A,B,C,D,E,δ0,x0,u0,y0,Delays]=f(t,p)

離散時間 lpvss

[A,B,C,D,E,δ0,x0,u0,y0,Delays]=f(k,p)

データ関数の構造を理解するために、磁気浮上システムの LPV モデルの例で用意されている dataFcnMaglev.m について考えます。

function [A,B,C,D,E,dx0,x0,u0,y0,Delay] = dataFcnMaglev(~,p)
% MAGLEV example:
% x = [h ; dh/dt]
% p=hbar (equilibrium height)
mb = 0.02; % kg
g = 9.81;
alpha = 2.4832e-5;
A = [0 1;2*g/p 0];
B = [0 ; -2*sqrt(g*alpha/mb)/p];
C = [1 0];  % h
D = 0;
E = [];
dx0 = [];
x0 = [p;0];
u0 = sqrt(mb*g/alpha)*p;  % ibar
y0 = p;                   % y = h = hbar + (h-hbar)
Delay = [];

このデータ関数は次のタスクを実行します。

  1. データ関数の入力を指定します。

    データ関数には、時間およびパラメーターの値が入力として必要です。パラメーターが時間に明示的に依存しない場合は、dataFcnMaglev.m で示されているように時間入力を省略できます。離散時間の場合、時間入力 k はサンプリング周期 Ts の数をカウントする整数インデックスです。ここで、絶対時間は t = kTs で与えられます。また、p は時間 t またはサンプル k のパラメーター値、つまり p(t) または p[k] です。

    無名関数を使用してデータ関数に追加の入力を指定できます。詳細については、無名関数を参照してください。これは、コードの冗長性や計算コストの低減に役立ちます。たとえば、パラメーター m および noptions 構造体も必要とする関数を記述した場合、データ関数を次のように記述できます。

    DF = @(t,p) myFunction(t,p(1),..,p(n),m,n,options)
  2. 行列とオフセットを定義します。

    LTV モデルまたは LPV モデルの時間またはパラメーターの行列とオフセットです。一般に、これらは非線形モデルを操作条件の近くで線形化することによって取得します。

  3. 行列、オフセット、および遅延の値をデータ関数の出力として指定します。

    データ関数は、出力 ABCDEdx0x0u0y0、および Delay の有効な値を返さなければなりません。ABCD 以外の出力引数については、(t,p) の値にない場合、いずれも [] に設定できます。

    Delay 引数は、それぞれ入力チャネルと出力チャネルの遅延を指定する InputOutput のフィールドをもつ構造体です。Delay.InputDelay.Output は、それぞれ入力チャネルと出力チャネルの数に等しい長さのベクトルに設定します。特定のチャネルに常に遅延がないことを示すには、ベクトルの対応する値を NaN に設定します。たとえば、3 入力のシステムについて、遅延が Delay.Input = [0.1 NaN sin(0.2*p)] と定義されている場合、1 番目の入力チャネルは固定の遅延、2 番目のチャネルは遅延なし、3 番目の入力チャネルは可変の遅延となります。NaN としてマークされていない遅延は、ソフトウェアではいずれも可変として扱われます。可変の遅延はシステムの接続時に内部遅延を発生させ、シミュレーションの少なくとも 1 つの積分ステップにゼロの内部遅延が設定されます。したがって、遅延がないことを示す場合は 0 ではなく NaN でマークすることが重要です。 (R2024a 以降)

    R2023b より前: Delay[] に設定します。

グリッド付き LPV モデル

LPV モデルの一般的な表現方法として、線形状態空間モデルの内挿された配列として表すことがあげられます。スケジューリング空間で特定数の点が選択されます。LTI システムが各点に割り当てられ、その点の局所的近傍のダイナミクスを表します。グリッド点間のスケジューリングの位置におけるダイナミクスは、近傍点で LTI システムを内挿することによって取得します。システム行列の意味のある内挿に対して、すべてのローカル モデルは同じ状態ベースを使用しなければなりません。

この形式は、"グリッドベースの LPV 表現" と呼ばれます。詳細については、グリッド付きモデルとサンプリング グリッドの選択を参照してください。

サンプリングと内挿

psample を使用して、LTV または LPV のダイナミクスを t または (t,p) の値 (離散時間の場合は k または (k,p)) のグリッドでサンプリングします。これにより、特定の時間またはパラメーターの値に対する局所線形 (アフィン) ダイナミクスが得られます。結果はオフセットをもつ ss オブジェクトの配列で構成されます。

一方、ssInterpolant は、オフセットをもつ ss 配列のモデルを受け取り、それらの値をグリッド点間に内挿する LTV モデルまたは LPV モデルを作成します (グリッドは ss 配列の SamplingGrid プロパティで定義されます)。この結果のモデルは、グリッド付きの LTV モデルまたは LPV モデルと呼ばれます。

モデルの相互接続

LTV モデルと LPV モデルでは、モデルの相互接続にリストされている標準の信号ベースの接続がすべてサポートされます。これらの操作ではオフセットが自動的に管理され、近似は含まれません。信号を使用する相互接続モデルでは、制御システム用のモデルを作成できます。制御システムは、フィードバック構成で接続されているプラントやコントローラーなど、複数の相互接続されたコンポーネントを含んでいるブロック線図として概念化できます。たとえば、プラントの LPV モデルを作成し、t または (t,p) のグリッドでゲイン スケジュール コントローラーを設計して、閉ループ制御システムをシミュレートできます。例については、ゲイン スケジュール PI コントローラーの解析および回転ディスクの制御設計を参照してください。

さらに、以下が成立します。

  • 2 つの ltvss モデルを組み合わせると ltvss モデルが生成されます。

  • 2 つの lpvss モデルを組み合わせると lpvss モデルが生成されます。これは、パラメーターの和集合に依存します。

  • ltvss モデルと lpvss モデルを組み合わせると lpvss モデルが生成されます。

  • LTI モデルを ltvss モデルまたは lpvss モデルと組み合わせると ltvss モデルまたは lpvss モデルがそれぞれ生成されます。

それぞれ異なるテスト値 p0 を検証に使用する共有パラメーターをもつモデルを組み合わせる場合は、その前にそれらの値を setTestValue を使用して調整する必要があります。p0 = 0 の場合、相互接続関数でテスト値が無視されます。

それぞれのモデルでパラメーターが異なる場合、組み合わせたモデルはパラメーターの和集合に依存します。

連続と離散の変換

c2dd2c および d2d を使用して連続時間と離散時間の間の変換を行い、ltvss モデルおよび lpvss モデルをリサンプリングできます。

  • 解析的な ltvss モデルと lpvss モデルについては、'tustin' メソッドを使用した変換のみがソフトウェアでサポートされます。

  • グリッド付きの LTV モデルと LPV モデル (ssInterpolant を参照) については、関数によって各グリッド点で LTI モデルの変換またはリサンプリングが行われ、その結果のデータが内挿されます。グリッド付きモデルについては、'zoh''impulse'、および 'tustin' のメソッドを使用した変換のみがソフトウェアでサポートされます。

時間応答シミュレーション

stepimpulselsiminitial などの時間応答関数では、比較しやすいように LTV モデルと LPV モデルのシミュレーションが LTI モデルと共にサポートされます。LTV と LPV の固定ステップ ソルバーの積分ステップ サイズを設定するために、等間隔でサンプリングされた時間ベクトルを指定する必要があります。LTI シミュレーションとの主な違いは次の 2 つです。

  • LPV モデルの場合、構文に応じて追加の入力/出力 p を指定する必要があります。入力では、パラメーターの軌跡 p(t) をベクトルまたは行列として指定するか、関数 p = h(t,x,u) として暗黙的に指定できます。出力では、p は実際のパラメーターの軌跡です。

    2 つの手法を比較した例については、磁気浮上システムの LPV モデルおよびゲイン スケジュール制御の隠れ結合を参照してください。

  • LTV モデルと LPV モデルでは、入力オフセットと初期条件が重要になります。これらの設定は RespConfig オブジェクトを使用して管理できます。統一するために、ソフトウェアで LTI モデルの入力オフセットと初期状態がサポートされるようになりました。これにより、LTV モデルおよび LPV モデルと並べて比較できます。時間応答シミュレーションの精度を高めるには、正しいモデルのオフセットを適切な初期条件と共に指定する必要があります。

ゲイン スケジュール コントローラー設計

pidtunesystune などの関数を使用して、ゲイン スケジュール コントローラーを調整できます。ゲイン スケジュール コントローラーは、スケジューリング変数でパラメーター化された LPV モデルです。ゲイン スケジュール コントローラーを解析的 LPV モデルとして実装する例については、ゲイン スケジュール LQG コントローラーおよびゲイン スケジュール PI コントローラーの解析を参照してください。ゲイン スケジュール コントローラーをグリッド付き LPV モデルとして実装する例については、磁気浮上システムのバッチ線形化の結果からの LPV モデル風力タービンの制御設計、および航空機の非線形ピッチ ダイナミクスのゲイン スケジュール コントローラーの設計と検証を参照してください。

LPV System ブロックと LTV System ブロック

LPV System ブロックと LTV System ブロックをそれぞれ使用して、Simulink でグリッド付きの LPV モデルと LTV モデルを表現してシミュレートできます。これらのブロックを使用して、状態空間モデルとその関連オフセットの配列を LPV モデルまたは LTV モデルとして表すことができます。例については、LTI 配列を使用したマルチモード ダイナミクスのシミュレーションを参照してください。

これらのブロックを使用して平衡点のグリッドで設計されたコントローラーを実装し、コントローラーの閉ループ応答を非線形の Simulink モデルでテストすることもできます。例については、磁気浮上システムのバッチ線形化の結果からの LPV モデルおよび航空機の非線形ピッチ ダイナミクスのゲイン スケジュール コントローラーの設計と検証を参照してください。

遅延のモデル化

R2024a 以降

ltvss オブジェクトと lpvss オブジェクトについては、データ関数の Delay 引数を使用して固定遅延、可変遅延、ゼロ遅延を定義します。指定した遅延はソフトウェアで管理され、モデルの相互接続、連続と離散の変換、シミュレーションなどの操作を使用するときに伝播されます。

LPV System ブロックおよび LTV System ブロックを含む Simulink モデルの遅延の指定には、Control System Toolbox ライブラリの Varying Delay ブロックと Discrete Varying Delay ブロックを使用できます。これらのブロックを使用して、Simulink モデルの入力信号と出力信号の固定遅延、可変遅延、ゼロ遅延をモデル化できます。

その他のサポートされる機能

さらに、次の機能が現在サポートされています。

  • setTestValue および getTestValue を使用して、データ関数の検証に使用されるテスト値を管理する。

  • sminreal を使用して、構造的な非最小状態を除去する。これは、グリッド付きモデルにおいて、グリッドのモデル間で統一された方法で実行する場合のみ可能です。

  • xperm を使用して、状態を並べ替える。

  • order を使用して、状態の数を求める。

線形パラメーター変動モデルの応用

マルチモード ダイナミクスのモデル化

LPV モデルを使用して、操作の複数のモード (状態) を表すシステムを表現することができます。そのようなシステムの例には、物体の衝突、オペレーター スイッチで制御されるシステム、乾燥摩擦やヒステリシス効果により影響されるシステムの近似などがあります。例については、跳ねるボールの LPV モデルを参照してください。

シミュレーションを高速化するための代理モデリング

このアプローチは、元のシステムの代わりに使用できる代理モデルの生成に有用です。これにより、高速なシミュレーションやハードウェアインザループ (HIL) シミュレーションが可能になり、ターゲット ハードウェア コードのメモリ フットプリントを削減できます。このような代理モデルは、ゲイン スケジュール コントローラーの設計や Simulink のパラメーター推定のタスクの初期化にも使用できます。LPV モデルによる一般的な非線形システムの動作を近似する例については、航空機の非線形ピッチ ダイナミクスのゲイン スケジュール コントローラーの設計と検証を参照してください。

LPV モデルは、Simscape™ Multibody™Simscape Electrical™ Power Systems ソフトウェアを使用して作成されたシステムなど、物理コンポーネント ベースのシステムのシミュレーションの高速化に役立ちます。このアプローチの例については、昇圧コンバーター モデルの LPV 近似を参照してください。

参考

| | | |

関連するトピック