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

feedback

2 つのモデルのフィードバック接続

構文

sys = feedback(sys1,sys2)

説明

sys = feedback(sys1,sys2) は、モデル オブジェクト sys1sys2 の負のフィードバック相互接続のためのモデル オブジェクト sys を返します。

閉ループ モデル sys には入力ベクトルの u と出力ベクトルの y があります。モデルの sys1sys2 は両方とも同じ連続サンプル時間、または両方とも同じ離散サンプル時間でなければなりません。結果のモデル タイプを決定するために、優先ルールが使用されます (モデル タイプを決定するルールを参照)。

正のフィードバックを適用するには、次の構文を使用します。

sys = feedback(sys1,sys2,+1)

既定では、feedback(sys1,sys2) は負のフィードバックを想定し、feedback(sys1,sys2,-1) と等価になります。

最後に、

sys = feedback(sys1,sys2,feedin,feedout)

は、より一般的なフィードバック ループとして閉ループ モデル sys を計算します。

ベクトル feedin は、sys1 の入力ベクトルへのインデックスを含み、フィードバックループ内にある入力 u を指定します。同様に、feedout は、フィードバックで使われる sys1 の出力 y を指定します。結果のモデル syssys1 と同じ入力と出力をもつことになります (その順番は保持されます)。前述と同様に、負のフィードバックが既定で適用されるため、正のフィードバックの場合

sys = feedback(sys1,sys2,feedin,feedout,+1)

を使用しなければなりません。

より複雑なフィードバック構造には、appendconnect を使用します。

例 1

プラントに

G(s)=2s2+5s+1s2+2s+3

コントローラーを接続するには

H(s)=5(s+2)s+10

負のフィードバックを使用して、次のように入力します。

G = tf([2 5 1],[1 2 3],'inputname','torque',...
                         'outputname','velocity');
H = zpk(-2,-10,5)
Cloop = feedback(G,H)

これらのコマンドにより以下の結果が出力されます。

Zero/pole/gain from input "torque" to output "velocity":
0.18182 (s+10) (s+2.281) (s+0.2192)
-----------------------------------
 (s+3.419) (s^2 + 1.763s + 1.064)

結果は優先ルールから予想されるとおり、零点-極-ゲイン モデルになります。CloopG から入力名と出力名を継承していることに注意してください。

例 2

5 つの入力と 4 つの出力をもつ状態空間プラント P、および 3 つの入力と 2 つの出力をもつ状態空間フィードバック コントローラー K を考えてみましょう。プラント出力 1、3、4 をコントローラー入力に接続し、コントローラー出力をプラント入力 4 と 2 に接続するには、次の構文を使用します。

feedin = [4 2];
feedout = [1 3 4];
Cloop = feedback(P,K,feedin,feedout)

例 3

次の負のフィードバック ループを作成できます。

以下の場合、

Cloop = feedback(G,1)       % left diagram
Cloop = feedback(1,G)      % right diagram

制限

フィードバック接続には、代数ループが存在していてはなりません。D1 と D2sys1sys2 の直達行列である場合、この条件は以下と等価です。

  • 負のフィードバックを使用した場合、I + D1D2 は正則

  • 正のフィードバックの場合、I − D1D2 は正則

R2006a より前に導入