ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

getIOTransfer

制御システムの一般化モデルからの閉ループ伝達関数

構文

  • H = getIOTransfer(T,in,out)
  • H = getIOTransfer(T,in,out,openings)

説明

H = getIOTransfer(T,in,out) は、制御システムの閉ループ一般化モデルから計算された、制御システムの指定入力から指定出力への伝達関数を返します。

H = getIOTransfer(T,in,out,openings) は、1 つまたは複数のループを開いた状態で計算された伝達関数を返します。

すべて展開する

制御システム モデルの閉ループ応答

getIOTransfer を使用して制御システムの応答を解析し、システムの閉ループ モデルのさまざまな入出力間の応答を計算します。

次の制御システムについて考えます。

数値プラント モデル G1G2、調整可能なコントローラー C1、ループ開始または信号注入の可能な位置を示す loopswitch ブロック X1 および X2 の指定と接続を行い、システムの genss モデルを作成します。

G1 = tf(10,[1 10]);
G2 = tf([1 2],[1 0.2 10]);
C1 = ltiblock.pid('C','pi');
C2 = ltiblock.gain('G',1);
X1 = loopswitch('X1');
X2 = loopswitch('X2');
T = feedback(G1*feedback(G2*C2,X2)*C1,X1);
T.InputName = 'r';
T.OutputName = 'y';

このモデルの自由パラメーターを調整 (たとえば、Robust Control Toolbox™ の調整コマンド systune を使用) した場合は、さまざまなシステム応答を検査して調整後のシステム性能を解析することをお勧めします。

たとえば、点 d1 で加えられた外乱に対する、出力での応答 y を検査します。

H1 = getIOTransfer(T,'X1','y');

H1 は、loopswitch ブロック X1 (d1 の位置) と関連付けられた暗黙的な入力で加えられた外乱に対する、制御システムの閉ループ応答を表します。

H1T の調整可能なブロックを含む genss モデルです。T の自由パラメーターを調整した場合、H1 では調整済みシステムの外乱応答を検証できます。たとえば、bodeplotstepplot などの解析コマンドを使用して H1 を解析できます。また、getValue を使用して H1 の現在の値を取得できます。この値では、すべての調整可能なブロックがそれぞれの現在の数値に対して評価されています。

同様に、点 d2 で加えられた外乱に対する、出力での応答を検査します。

H2 = getIOTransfer(T,'X2','y');

さらに、点 d1 と d2 の両方における同時外乱に対する制御システムの応答を表す、2 入力 1 出力のモデルを作成することもできます。これを行うには、getIOTransfer に複数の入力位置を指定するセル配列を渡します。

H = getIOTransfer(T,{'X1','X2'},'y');

開ループと閉ループが混在する場合の応答

内側のループが開き外側のループが閉じた状態にある次のカスケード制御システムの、r から y までの応答を計算します。

数値プラント モデル G1G2、調整可能なコントローラー C1、ループ開始または信号注入の可能な位置を示す loopswitch ブロック X1 および X2 の指定と接続を行い、システムの genss モデルを作成します。

G1 = tf(10,[1 10]);
G2 = tf([1 2],[1 0.2 10]);
C1 = ltiblock.pid('C','pi');
C2 = ltiblock.gain('G',1);
X1 = loopswitch('X1');
X2 = loopswitch('X2');
T = feedback(G1*feedback(G2*C2,X2)*C1,X1);T.InputName = 'r';
T.OutputName = 'y';

このモデルの自由パラメーターを調整 (たとえば、Robust Control Toolbox の調整コマンド systune を使用) した場合は、さまざまなシステム応答を検査して調整後のシステム性能を解析することをお勧めします。

たとえば、内側のループが開き、外側のループが閉じた状態のシステムの応答を計算します。

H = getIOTransfer(T,'r','y','X2');

既定では、TX1 および X2 のループ開始位置は閉じています。openings 引数に 'X2' を指定すると、r から y までの要求された伝達を計算するために、getIOTransfer によって X2 でループが開かれます。この計算では、X1 でのスイッチは閉じたままになります。

入力引数

すべて展開する

T — 制御システムのモデル一般化状態空間モデル

一般化状態空間 (genss) モデルとして指定された、制御システムのモデル。

in — 抽出された伝達関数への入力文字列 | 文字列のセル配列

文字列または文字列のセル配列として指定された、抽出された伝達関数への入力。多入力伝達関数を制御システムから抽出するには、文字列のセル配列を使用します。in の各文字列は以下のどちらかと一致していなければなりません。

  • 制御システム モデル T の入力 (つまり、T.InputName に含まれる文字列)。

  • T 内の loopswitch ブロックのチャンネルに対応する、T 内のループ開始位置。T 内で利用可能なループ開始位置の完全なリストを取得するには、getLoopID(T) を使用します。

    入力 in としてループ開始位置を指定すると、getIOTransfer はこの入力を暗黙的に loopswitch チャンネルと関連付け、次のように配置して使用します。

    この入力信号はスイッチの出力に入る外乱をモデル化します。

ループ開始位置の名前が T の入力と同じ名前である場合は、getIOTransferT の入力を使用します。

例: {'r','X1'}

out — 抽出された伝達関数の出力文字列 | 文字列のセル配列

文字列または文字列のセル配列として指定された、抽出された伝達関数の出力。多出力伝達関数を制御システムから抽出するには、文字列のセル配列を使用します。out の各文字列は以下のどちらかと一致していなければなりません。

  • 制御システム モデル T の出力 (つまり、T.OutputName に含まれる文字列)。

  • T 内の loopswitch ブロックのチャンネルに対応する、T 内のループ開始位置。T 内で利用可能なループ開始位置の完全なリストを取得するには、getLoopID(T) を使用します。

    出力 out としてループ開始位置を指定すると、getIOTransfer はこの出力を暗黙的に loopswitch チャンネルと関連付け、次のように配置して使用します。

ループ開始位置の名前が T の出力と同じ名前である場合は、getIOTransferT の出力を使用します。

例: {'y','X2'}

openings — フィードバック ループ開始位置文字列 | 文字列のセル配列

in から out までの応答を計算するフィードバック ループの開始位置。T 内のループ開始位置を特定する文字列または文字列のセル配列として指定します。ループ開始位置は Tloopswitch ブロックによってマークされます。T 内で利用可能なループ開始位置の完全なリストを取得するには、getLoopID(T) を使用します。

制御システム内にいくつかのループが開かれている状態で in から out への応答を計算するには、openings を使用します。たとえば、カスケード式のループ構成では、内側のループを開いた状態でシステム入力からシステム出力までの応答を計算できます。

出力引数

すべて展開する

H — 閉ループ伝達関数一般化状態空間モデル

一般化状態空間 (genss) モデルとして返された、in から out までの制御システム T の閉ループ伝達関数。

  • inout の両方が単一の信号を指定する場合、T は SISO genss モデルです。

  • in または out が複数の信号を特定する場合、T は MIMO genss モデルです。

詳細

すべて展開する

ヒント

  • 制御システム全体の一般化モデルが与えられた場合は、getIOTransfer を使用してさまざまなサブシステムの応答を抽出できます。これは、Robust Control Toolbox の調整コマンド systune を使用して調整した制御システムの応答を検証する場合に便利です。

    たとえば、調整した制御システムの入力から出力までの全体の応答を評価できるほか、getIOTransfer を使用して外乱入力からシステム出力までの伝達関数を抽出できます。(stepbode などを使用して) この伝達関数の応答を評価し、調整したシステムが外乱の抑制の要件を満たしているかどうか確認します。

  • getIOTransfer は、genss において Simulink® Control Design™ getIOTransfer コマンドに相当するもので、slTuner および slLinearizer インターフェイスとともに機能します。制御システムが Simulink でモデル化されている場合は、 Simulink Control Design コマンドを使用します。

この情報は役に立ちましたか?