Main Content

TuningGoal.Poles クラス

パッケージ: TuningGoal

制御システムのダイナミクスの制約

説明

TuningGoal.Poles を使用して、制御システムの閉ループ ダイナミクスまたは制御システム内の特定のフィードバック ループの閉ループ ダイナミクスを制約します。この調整目標は、制御システムを systunelooptune などの調整コマンドで調整する場合に使用できます。TuningGoal.Poles 目標では、制御システムまたはループの極の最小 decay 率または最小 damping を確保できます。また、調整されたシステムの高速ダイナミクスを排除することもできます。

構築

Req = TuningGoal.Poles(mindecay,mindamping,maxfreq) は、閉ループの極配置を制約する既定のテンプレートを作成します。最小 decay 率、最小 damping 定数および最大固有振動数は、コンポーネントの極が存在しなければならない複素平面の範囲を定義します。mindecay = 0、mindamping = 0 または maxfreq = Inf を設定して、3 つの制約のいずれかをスキップします。

Req = TuningGoal.Poles(location,mindecay,mindamping,maxfreq) は、制御システム内の指定した位置で測定された感度関数の極を制約します (感度関数の詳細については、getSensitivity (Simulink Control Design) を参照してください)。この構文を使用すると、調整目標の範囲が特定のフィードバック ループに絞り込まれます。

1 つ以上のフィードバック ループが開かれているシステムの極を制約する場合は、Openings プロパティを設定します。固有振動数が指定の周波数範囲内にある極にこの調整目標の適用を制限するには、Focus プロパティを設定します (プロパティを参照)。

入力引数

mindecay

調整可能なコンポーネントの極の最小 decay 率。調整している制御システム モデルの周波数単位での非負のスカラー値として指定します。

この調整目標を使用して制御システムを調整するとき、制御システムの閉ループ極は、次を満たすように制約されます。

  • Re(s) < -mindecay (連続時間システムの場合)。

  • log(|z|) < -mindecay*Ts (サンプル時間が Ts の離散時間システムの場合)。

mindecay = 0 を設定すると、減衰率には制約が課されません。

mindamping

閉ループ極の目的の最小 damping 比。0 ~ 1 の値として指定します。

極は調整可能なパラメーターによって異なり、Re(s) < -mindamping*|s| を満たすように制約されます。離散時間では、減衰比は s=log(z)/Ts を使用して計算されます。

mindamping = 0 を設定すると、減衰比には制約が課されません。

maxfreq

閉ループ極の目的の最大固有振動数。調整している制御システム モデルの周波数単位でのスカラー値として指定します。

極は、|s| < maxfreq (連続時間システムの場合) または |log(z)| < maxfreq*Ts (サンプル時間が Ts の離散時間システムの場合) を満たすように制約されます。この制約によって、閉ループ システムの高速ダイナミクスが回避されます。

maxfreq = Inf を設定すると、固有振動数には制約が課されません。

location

極が評価される位置。調整する制御システム内で 1 つ以上の位置を特定する文字ベクトルまたは文字ベクトルの cell 配列として指定します。この入力を使用すると、調整目標はこの位置で測定された感度関数の極を制約します (感度関数の詳細については、getSensitivity (Simulink Control Design) を参照してください)。利用可能な位置は調整しているシステムの種類によって異なります。

  • 制御システムの Simulink® モデルを調整している場合、モデル内でマークされた任意の線形解析ポイントまたは Simulink モデルに関連付けられた slTuner (Simulink Control Design) インターフェイス内の任意の線形解析ポイントを使用できます。addPoint (Simulink Control Design) を使用して解析ポイントを slTuner インターフェイスに追加します。たとえば、slTuner インターフェイスに解析ポイント u が含まれる場合は、調整目標の作成時に 'u' を使用してそのポイントを参照できます。getPoints (Simulink Control Design) を使用してモデルへの slTuner インターフェイスで使用できる解析ポイントのリストを取得します。

  • 制御システムの一般化状態空間 (genss) モデルを調整する場合、制御システム モデルで任意の AnalysisPoint の位置を使用できます。たとえば、次のコードはプラント入力 'u' に解析ポイントをもつ PI ループを作成します。

    AP = AnalysisPoint('u');
    G = tf(1,[1 2]);
    C = tunablePID('C','pi');
    T = feedback(G*AP*C,1);
    

    調整目標を作成するときに、'u' を使用してプラント入力で解析ポイントを参照できます。getPoints を使用して genss モデルで使用できる解析ポイントのリストを取得します。

location で複数の位置を指定すると、極の制約が MIMO ループの感度に適用されます。

プロパティ

MinDecay

調整可能なコンポーネントの閉ループの極の最小 decay 率。調整している制御システムの周波数単位での正のスカラー値として指定します。このプロパティの初期値は mindecay 入力引数によって設定されます。

この調整目標を使用して制御システムを調整するとき、閉ループ極は、Re(s) < -MinDecay (連続時間システムの場合) または log(|z|) < -MinDecay*Ts (サンプル時間が Ts の離散時間システムの場合) を満たすように制約されます。

ドット表記を使用して、調整目標の作成後にこのプロパティの値を変更できます。たとえば、ReqTuningGoal.Poles 調整目標であると仮定します。最小 decay 率を 0.001 に変更します。

Req.MinDecay = 0.001;

既定値: 0

MinDamping

閉ループ極の目的の最小 damping 比。0 ~ 1 の値として指定します。このプロパティの初期値は mindamping 入力引数によって設定されます。

極は調整可能なパラメーターによって異なり、Re(s) < -MinDamping*|s| を満たすように制約されます。離散時間では、減衰比は s=log(z)/Ts を使用して計算されます。

既定値: 0

MaxFrequency

閉極の目的の最大固有振動数。調整している制御システム モデルの周波数単位でのスカラー値として指定します。このプロパティの初期値は maxfreq 入力引数によって設定されます。

ブロックの極は、|s| < maxfreq (連続時間システムの場合) または |log(z)| < maxfreq*Ts (サンプル時間が Ts の離散時間システムの場合) を満たすように制約されます。この制約によって、調整された制御システムの高速ダイナミクスが回避されます。

ドット表記を使用して、調整目標の作成後にこのプロパティの値を変更できます。たとえば、ReqTuningGoal.ControllerPoles 調整目標であると仮定します。最大周波数を 1000 に変更します。

Req.MaxFrequency = 1000;

既定値: Inf

Focus

調整目標が適用される周波数帯域。[min,max] 形式の行ベクトルとして指定します。

Focus プロパティを設定して、調整目標が特定の周波数帯域に適用されるように制限します。この値は、調整している制御システム モデルの周波数の単位で表します (rad/TimeUnit)。たとえば、Req は 1 ~ 100 rad/s の間にのみ適用する調整目標であるとします。この帯域に対する調整目標を制限するには、次のコマンドを使用します。

Req.Focus = [1,100];

既定値: 連続時間の場合は [0,Inf]、離散時間の場合は [0,pi/Ts]。ここで Ts はモデルのサンプル時間です。

Location

極が評価される位置。調整する制御システム内で 1 つ以上の解析ポイントを特定する文字ベクトルの cell 配列として指定します。たとえば、Location = {'u'} の場合、調整目標は解析ポイント 'u' で測定される開ループ応答を評価します。Location = {'u1','u2'} の場合、調整目標は、解析ポイント 'u1' および 'u2' で測定された MIMO 開ループ応答を評価します。

Location プロパティの初期値は、調整目標を作成する際に location 入力引数によって設定されます。

Models

調整目標を適用するモデル。インデックスのベクトルとして指定します。

制御システム モデルの配列を systune によって調整し、配列内の一部のモデルに調整目標を適用する場合に、Models プロパティを使用します。たとえば、systune に渡されるモデル配列の中の 2 番目、3 番目、4 番目のモデルに調整目標 Req を適用する必要があると仮定します。この調整目標の適用を制限するには、次のコマンドを使用します。

Req.Models = 2:4;

Models = NaN の場合、調整目標はすべてのモデルに適用されます。

既定値: NaN

Openings

調整目標を評価するときに開くフィードバック ループ。ループ開始点の位置を特定する文字ベクトルの cell 配列として指定します。調整目標は、特定した位置でフィードバック ループを開くことにより作成される開ループの構成に対して評価されます。

調整目標を使用して制御システムの Simulink モデルを調整する場合、Openings にはモデルでマークされた任意の線形解析ポイントまたは Simulink モデルに関連付けられている slTuner (Simulink Control Design) インターフェイスの任意の線形解析ポイントを含めることができます。addPoint (Simulink Control Design) を使用して解析ポイントとループ開始点を slTuner インターフェイスに追加します。getPoints (Simulink Control Design) を使用してモデルへの slTuner インターフェイスで使用できる解析ポイントのリストを取得します。

調整目標を使用して制御システムの一般化状態空間 (genss) モデルを調整する場合、Openings に制御システム モデルの任意の AnalysisPoint の位置を含めることができます。getPoints を使用して genss モデルで使用できる解析ポイントのリストを取得します。

たとえば、Openings = {'u1','u2'} の場合、解析ポイント u1u2 でループが開いている状態で調整目標が評価されます。

既定値: {}

Name

調整目標の名前。文字ベクトルとして指定します。

たとえば、Req が調整目標の場合は次のようになります。

Req.Name = 'LoopReq';

既定値: []

すべて折りたたむ

次の制御システムの内側のループが安定し、高速ダイナミクスが回避されるようにする要件を作成します。外側のループが開かれている状態で制約が評価されるように指定します。

このシステムのモデルを作成します。これを行うには、数値プラント モデル G1G2 および調整可能なコントローラー C1C2 を指定して接続します。また、解析および調整の対象ポイントをマークする AnalysisPoint ブロック AP1 および AP2 を作成して接続します。

G1 = tf(10,[1 10]);
G2 = tf([1 2],[1 0.2 10]);
C1 = tunablePID('C','pi');
C2 = tunableGain('G',1);
AP1 = AnalysisPoint('AP1');
AP2 = AnalysisPoint('AP2');
T = feedback(G1*feedback(G2*C2,AP2)*C1,AP1);

閉ループ極のダイナミクスを制約する調整要件を作成します。内側のループの極を領域 Re(s)<-0.1|s|<30 に制限します。

Req = TuningGoal.Poles(0.1,0,30);

最小 damping を 0 に設定すると、極の減衰定数には制約が課されません。

調整されたシステムの極の制約が外側のループが開かれている状態で適用されるように指定します。

Req.Openings = 'AP1';

この要件を使用して T を調整すると、制約は 'AP1' のループが開かれている状態で評価され、制御システム全体の極に適用されます。つまり、内側のループの極および C1 と G1 の極がすべて考慮されます。

T の調整後、viewGoal を使用して、調整された制御システムを要件に対して検証できます。

前の例のシステムの内側のループが安定し、高速ダイナミクスが回避されるようにする要件を作成します。外側のループが開かれている状態で制約が評価されるように指定します。

AP2 で識別される内側のフィードバック ループのダイナミクスを制約する調整要件を作成します。内側のループの極を領域 Re(s)<-0.1|s|<30 に制限します。

Req = TuningGoal.Poles('AP2',0.1,0,30);

調整されたシステムの極の制約が外側のループが開かれている状態で適用されるように指定します。

Req.Openings = 'AP1';

この要件を使用して T を調整すると、制約は外側のループが開かれている状態で評価され、内側のループの極にのみ適用されます。この場合、外側のループが開かれていると G1C1AP2 での感度関数に影響しないため、要件は G2C2 の極のみを制約します。

T の調整後、viewGoal を使用して、調整された制御システムを要件に対して検証できます。

ヒント

  • TuningGoal.Poles は、調整された制御システムの閉ループ ダイナミクスを制限します。単一の調整可能なコンポーネントのダイナミクスを制約したり安定性を確保したりするには、TuningGoal.ControllerPoles を使用します。

アルゴリズム

TuningGoal を使用して制御システムを調整する場合、ソフトウェアは調整目標を正規化されたスカラー値 f(x) に変換します。x は、制御システムの自由 (調整可能) パラメーターのベクトルです。その後、ソフトウェアはパラメーター値を調整して f(x) を最小化するか、調整目標が厳密な制約値の場合、f(x) が 1 より小さくなるようにします。

TuningGoal.Poles では、f(x) は目標の相対的な達成または違反を反映します。たとえば、フィードバック ループの閉ループ極を最小 damping ζ = 0.5 に制約しようとした場合、次のようになります。

  • f(x) = 1 は、制約された各極の中で最小の減衰が厳密に ζ = 0.5 であることを意味します。

  • f(x) = 1.1 は、最小の減衰がターゲットより約 10% 小さい ζ = 0.5/1.1 = 0.45 であることを意味します。

  • f(x) = 0.9 は、最小の減衰がターゲットより約 10% 大きい ζ = 0.5/0.9 = 0.55 であることを意味します。

バージョン履歴

R2016a で導入

すべて展開する