Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

getIOTransfer

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

説明

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

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

すべて折りたたむ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

既定では、ループは解析ポイント X1X2 で閉じます。openings 引数に 'X2' を指定すると、r から y への要求された伝達を計算するために、getIOTransfer によって X2 でループが開かれます。この計算では、X1 でのスイッチは閉じたままになります。

入力引数

すべて折りたたむ

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

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

  • 制御システム モデル T の入力。つまり、T.InputName からのチャネル名。

  • TAnalysisPoint ブロックのチャネルに対応する T の解析ポイント。T 内の利用可能な解析ポイントのリストを取得するには、getPoints(T) を使用します。

    入力 in として解析ポイントを指定すると、getIOTransfer はこの入力を暗黙的に AnalysisPoint チャネルと関連付け、次のように配置して使用します。

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

解析ポイントの名前が T の入力と同じ名前である場合は、getIOTransferT の入力を使用します。

例: {'r','X1'}

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

  • 制御システム モデル T の出力。つまり、T.OutputName からのチャネル名。

  • TAnalysisPoint ブロックのチャネルに対応する T の解析ポイント。T 内の利用可能な解析ポイントのリストを取得するには、getPoints(T) を使用します。

    出力 out として解析ポイントを指定すると、getIOTransfer はこの出力を暗黙的に AnalysisPoint チャネルと関連付け、次のように配置して使用します。

解析ポイントの名前が T の出力と同じ名前である場合は、getIOTransferT の出力を使用します。

例: {'y','X2'}

in から out までの応答を計算するフィードバック ループの開始位置。T 内の解析ポイントを特定する文字ベクトルまたは文字ベクトルの cell 配列として指定します。解析ポイントは、TAnalysisPoint ブロックでマークされます。T 内の利用可能な解析ポイントのリストを取得するには、getPoints(T) を使用します。

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

出力引数

すべて折りたたむ

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

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

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

ヒント

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

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

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

バージョン履歴

R2012b で導入

参考

| | | | | (Simulink Control Design)