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

getLoopTransfer

制御システムの開ループ伝達関数

説明

L = getLoopTransfer(T,Locations) は、指定された解析ポイントで測定された、制御システムのポイント間を結ぶ開ループ伝達関数を返します。ポイント間を結ぶ開ループ伝達関数は、指定された位置に信号を与え、同じ位置で帰還信号を測定することよって取得された開ループ応答です。

L = getLoopTransfer(T,Locations,sign) は、開ループ応答を計算するためのフィードバック符号を指定します。閉ループ応答 T と開ループ応答 L の関係は T = feedback(L,1,sign) となります。

L = getLoopTransfer(T,Locations,sign,openings) は、Locations での開ループ応答を計算するために開く、追加のループ開始位置を指定します。

すべて折りたたむ

次の制御システム モデルの、AnalysisPoint ブロック X で指定された解析ポイントでの開ループ応答を計算します。

数値 LTI プラント モデル G、調整可能なコントローラー C、および AnalysisPointX を指定し、接続することで、システムのモデルを作成します。

G = tf([1 2],[1 0.2 10]);
C = tunablePID('C','pi');
X = AnalysisPoint('X');  
T = feedback(G*X*C,1);

T は、r から y への制御システムの閉ループ応答を表す genss モデルです。モデルには、ループ開始の可能な位置を特定する AnalysisPoint ブロック X が含まれます。

位置 X で、ポイント間を結ぶ開ループ伝達を計算します。

L = getLoopTransfer(T,'X');

このコマンドは、X でループを開き、信号を G に与え、結果として生じる応答を C の出力で測定することによって取得される、正のフィードバックの伝達関数を計算します。既定では、getLoopTransfer は正のフィードバックの伝達関数を計算します。この例では、正のフィードバックの伝達関数は L(s)=-G(s)C(s) となります。

出力 L は調整可能なブロック C を含む genss モデルです。getValue を使用して L の現在の値を取得でき、そこではすべての調整可能な L のブロックが、それぞれの現在の数値に対し評価されます。

次の制御システム モデルの、AnalysisPoint ブロック X で指定された解析ポイントの負のフィードバックの開ループ伝達を計算します。

数値 LTI プラント モデル G、調整可能なコントローラー C、および AnalysisPoint ブロック X を指定し、接続することで、システムのモデルを作成します。

G = tf([1 2],[1 0.2 10]);
C = tunablePID('C','pi');
X = AnalysisPoint('X');  
T = feedback(G*X*C,1);

T は、r から y への制御システムの閉ループ応答を表す genss モデルです。このモデルには、ループ開始の可能な位置を特定する AnalysisPoint ブロック X が含まれます。

位置 X で、ポイント間を結ぶ開ループ伝達を計算します。

L = getLoopTransfer(T,'X',-1);

このコマンドは、ループが負のフィードバックで閉じていると想定し、G の入力から C の出力への開ループ伝達関数を計算します。つまり、LT の関係は、T = feedback(L,1) によって与えられます。この例では、正のフィードバックの伝達関数は L(s)=G(s)C(s) となります。

外側のループが開いた状態で、次のカスケード制御システムの内側のループの開ループ応答を計算します。

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

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);

X1 で外側のループが開いた状態で、内側のループの位置 X2 における、負のフィードバックの開ループ応答を計算します。

L = getLoopTransfer(T,'X2',-1,'X1');

既定では、AnalysisPoint ブロック X1 でマークされた解析ポイントの位置でループは閉じられます。openings 引数に 'X1' を指定すると、要求された X2 でのループ伝達を計算するために、getLoopTransfer によって X1 でループが開かれます。この例では、負のフィードバックの開ループ応答は L(s)=G2(s)C2(s) となります。

入力引数

すべて折りたたむ

一般化状態空間 (genss) モデルとして指定された、制御システムのモデル。ループの開始と開ループ解析の実行が可能な位置は、TAnalysisPoint ブロックでマークされます。

開ループのポイント間の応答を計算するための、制御システム モデルにおける解析ポイントの位置。T 内の解析ポイントの位置を特定する文字ベクトルまたは文字ベクトルの cell 配列として指定されます。

解析ポイントの位置は TAnalysisPoint ブロックによってマークされます。AnalysisPoint ブロックは単一または複数のチャネルをもつことができます。AnalysisPoint ブロックの Location プロパティは、これらのフィードバック チャネルに名前を設定します。

TAnalysisPoint ブロックにおける任意のチャネルの名前は、getLoopTransferLocations 引数に対する有効なエントリです。T 内の利用可能な解析ポイントの完全なリストを取得するには、getPoints(T) を使用します。

getLoopTransfer は、AnalysisPoint チャネルと関連付けられた暗黙的な入力で信号を与え、同チャネルと関連付けられた暗黙的な出力での応答を測定することによって取得される、開ループ応答を計算します。これらの暗黙的な入力と出力は、次のように配置されます。

L は、in から out までの開ループ伝達関数です。

+1 または -1 で指定されるフィードバック符号。フィードバック符号は、開ループ伝達関数の符号を決定します。

  • +1 - 正のフィードバックのループ伝達を計算します。この場合、閉ループ応答 T と開ループ応答 L の関係は T = feedback(L,1,+1) となります。

  • -1 - 負のフィードバックのループ伝達を計算します。この場合、閉ループ応答 T と開ループ応答 L の関係は T = feedback(L,1) となります。

ループ伝達関数を用いて実行する解析の規則と整合的な、フィードバック符号を選択します。たとえば、T が r から y までの閉ループ伝達関数である次のシステムについて考えます。

負のフィードバックを前提とする margin コマンドを使用してこのシステムの安定余裕を計算するには、負のフィードバックの開ループ応答を使用しなければなりません。したがって、L = getLoopTransfer(T,'X',-1) を使用して負のフィードバックの伝達関数 L = GC を取得できます。

開ループ応答を計算するための、追加のフィードバック ループ開始位置。T 内の解析ポイントを特定する文字ベクトルまたは文字ベクトルの cell 配列として指定されます。解析ポイントの位置は TAnalysisPoint ブロックによってマークされます。TAnalysisPoint ブロックの Location プロパティに含まれるチャネル名は、すべて openings に対する有効なエントリです。

ある解析ポイントの位置での開ループ応答を計算する際に、他の位置で開いている他のループがある場合は、openings を使用します。たとえば、カスケード式のループ構成では、外側のループが開いている状態で内側のループの開ループ応答を計算できます。T 内で利用可能な解析ポイントの完全なリストを取得するには、getPoints(T) を使用します。

出力引数

すべて折りたたむ

Locations で指定された解析ポイントで測定した、制御システム T のポイント間を結ぶ開ループ応答。一般化状態空間 (genss) モデルとして返されます。

  • Locations で単一の解析ポイントを指定する場合、L は SISO genss モデルになります。この場合 L は、Locations でループを開き、信号を与え、同じ位置で帰還信号を測定することによって取得した応答を表します。

  • Locations がベクトル信号であるか、または複数の解析ポイントを指定する場合、L は MIMO genss モデルになります。この場合 L は、Locations でリストされているすべての位置でループを開き、信号を与え、これらの位置で帰還信号を測定することによって取得した開ループ MIMO 応答を表します。

ヒント

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

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

R2012b で導入