Main Content

getCompSensitivity

制御システムの一般化モデルからの相補感度関数

説明

T = getCompSensitivity(CL,location) は、制御システムの一般化モデルの指定された位置で測定された相補感度を返します。

T = getCompSensitivity(CL,location,opening) は、相補感度関数の計算の追加のループ開始点を指定します。開始点を使用して、たとえば、外側のループが開いた状態で内側のループの相補感度関数を計算します。

openinglocation が同じ点を指す場合、その点の外乱信号を加えてからループが開始されます。

すべて折りたたむ

相補感度を次の図の制御システムのプラント出力 X で計算します。

数値 LTI プラント モデル G、調整可能なコントローラー C、および AnalysisPoint ブロック X を指定し、接続することで、システムのモデルを作成します。AnalysisPoint ブロックを使用して、相補感度 (この例ではプラント出力) を評価する位置をマークします。

G = tf([1],[1 5]);
C = tunablePID('C','p');
C.Kp.Value = 3;
X = AnalysisPoint('X');
CL = feedback(G*C,X);

CL は、r から y への制御システムの閉ループ応答を表す genss モデルです。モデルの制御設計ブロックを調べます。

CL.Blocks
ans = struct with fields:
    C: [1x1 tunablePID]
    X: [1x1 AnalysisPoint]

このモデルのブロックには、解析ポイントの位置を特定する AnalysisPoint ブロック X が含まれます。

相補感度 TX で計算します。

T = getCompSensitivity(CL,'X')
Generalized continuous-time state-space model with 1 outputs, 1 inputs, 1 states, and the following blocks:
  C: Tunable PID controller, 1 occurrences.
  X: Analysis point, 1 channels, 1 occurrences.

Type "ss(T)" to see the current value and "T.Blocks" to interact with the blocks.

getCompSensitivityCL の制御設計ブロックを保持し、genss モデルを返します。数値モデルを取得するために、調整可能なブロックの現在の値を使用して、T を伝達関数形式に変換できます。

Tnum = tf(T)
Tnum =
 
  From input "X" to output "X":
   -3
  -----
  s + 8
 
Continuous-time transfer function.

次の図のマルチループ システムで、外側のループが開いた状態で G2 の出力において内側のループの感度を計算します。

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

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');
CL = feedback(G1*feedback(G2*C2,X2)*C1,X1);

外側のループが X1 で開いた状態で、X2 における相補感度 T を計算します。X1 を 3 番目の入力引数として指定すると、getCompSensitivity によってその位置でループが開かれます。

T = getCompSensitivity(CL,'X2','X1');
tf(T)
ans =
 
  From input "X2" to output "X2":
       -s - 2
  ----------------
  s^2 + 1.2 s + 12
 
Continuous-time transfer function.

入力引数

すべて折りたたむ

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

感度解析の実行またはループの開始が可能な位置は、CLAnalysisPoint ブロックでマークされます。getPoints(CL) を使用して、このような場所のリストを取得します。

相補感度関数を計算する位置。文字ベクトルまたは文字ベクトルの cell 配列として指定します。相補感度関数を複数の位置で抽出するには、文字ベクトルの cell 配列を使用します。

指定した各位置は CL の解析ポイントと一致しなければなりません。解析ポイントは AnalysisPoint ブロックを使用してマークされます。CL 内の利用可能な解析ポイントのリストを取得するには、getPoints(CL) を使用します。

例: 'u' または {'u','y'}

相補感度関数の計算に使用される追加のループ開始点。文字ベクトルまたは文字ベクトルの cell 配列として指定します。ループを複数の位置で開始するには、文字ベクトルの cell 配列を使用します。

指定した各開始点は CL の解析ポイントと一致しなければなりません。解析ポイントは AnalysisPoint ブロックを使用してマークされます。CL 内の利用可能な解析ポイントのリストを取得するには、getPoints(CL) を使用します。

開始点を使用して、たとえば、外側のループが開いた状態で内側のループの相補感度関数を計算します。

openinglocation が同じ点を指す場合、その点の外乱信号を加えてからループが開始されます。

例: 'y_outer' または {'y_outer','y_outer2'}

出力引数

すべて折りたたむ

location で測定された、制御システム T相補感度関数。一般化状態空間モデル (genss) として返されます。

  • location で単一の解析ポイントを指定する場合、T は SISO genss モデルになります。

  • location がベクトル信号であるか、または複数の解析ポイントを指定する場合、T は MIMO genss モデルになります。

詳細

すべて折りたたむ

相補感度

"相補感度関数" T は、ある点では、指定された位置で測定されたフィードバック ループの周囲の閉ループ伝達関数です。これは、同じ点で、開ループ伝達関数 L および感度関数 S と次のように関係します。

T=L1L=S1.

getLoopTransfergetSensitivity を使用して、L と S を計算します。

以下のモデルを考えます。

y での相補感度 T は、dy から y への伝達関数として定義されます。

感度関数とは対照的に、測定値 y"後に" 外乱 dy が追加されます。

y=GK(y+dy)y=GKyGKdy(I+GK)y=GKdyy=(I+GK)1GKTdy.

ここで、I は GK と同じサイズの単位行列です。y での相補感度達関数は、r から y への閉ループ伝達関数に -1 を掛け合わせたものと同じです。

複数の位置、たとえば uy での相補感度は、外乱から測定値への MIMO 伝達関数として定義されます。

T=[TduuTdyuTduyTdyy].

バージョン履歴

R2014a で導入

参考

| | | | | (Simulink Control Design) | | | (Simulink Control Design)