Main Content

TuningGoal.ControllerPoles クラス

パッケージ: TuningGoal

制御システムを調整するためのコントローラーのダイナミクスの制約

説明

TuningGoal.ControllerPoles を使用して、制御システム モデル内で調整可能なコンポーネントのダイナミクスを制約します。この調整目標は、Simulink® モデルへの slTuner インターフェイスで検出される調整ブロックのダイナミクスを制約するために使用します。制御システムの genss モデルの調整を行っている場合、これを使用して tunableTFtunableSS などの調整可能な要素を制約します。TuningGoal.ControllerPoles 要件により、調整可能な要素の極の最小 decay 率、最小 damping および最大固有振動数を制御して、コントローラーが高速ダイナミクスまたは共振ダイナミクスの影響を受けないようにできます。調整目標によって、調整可能な要素の調整された値を確実に安定させることもできます。

要件オブジェクトを作成した後、オブジェクトのプロパティを設定して、調整目標をさらに詳しく構成できます。

構築

Req = TuningGoal.ControllerPoles(blockID,mindecay,mindamping,maxfreq) は、制御システムの調整可能なコンポーネントのダイナミクスを制約する調整目標を作成します。最小 decay 率、最小 damping 定数および最大固有振動数は、コンポーネントの極が存在しなければならない複素平面の範囲を定義します。非負の最小 decay は、調整された極の安定性を確保します。調整目標は、PID コントローラーの I 項などの、固定の積分器を除くブロック内のすべての極に適用されます。

入力引数

blockID

制約対象の調整可能なコンポーネント。文字ベクトルとして指定します。blockID は調整している制御システム内の調整ブロックのいずれかを指定します。

  • 制御システムの Simulink モデルを調整する場合、blockID はモデルの slTuner インターフェイス内の調整ブロックです。たとえば、slTuner インターフェイスには、Controller と呼ばれる調整ブロックがあると仮定します。このブロックを制約するには、blockID 入力引数に 'Controller' を使用します。

  • 制御システムの genss モデルを調整する場合、blockid はそのモデルの制御設計ブロックの 1 つです。たとえば、genss インターフェイスに C1 という名前の調整可能なブロックがあると仮定します。このブロックを制約するには、blockID 入力引数に 'C1' を使用します。

mindecay

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

ブロックが安定するように mindecay ≥ 0 を指定します。負の値を指定すると、調整ブロックに不安定な極が含まれる可能性があります。

この調整目標を使用して制御システムを調整するとき、調整可能なコンポーネントのすべての極は、次を満たすように制約されます。

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

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

既定値: 0

mindamping

調整可能なブロックの極の目的の最小 damping 比。0 ~ 1 の値として指定します。

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

既定値: 0

maxfreq

調整可能なブロックの極の目的の最大固有振動数。調整している制御システム モデルの単位でのスカラー値として指定します。

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

既定値: Inf

プロパティ

Block

制約する調整可能なコンポーネントの名前。文字ベクトルとして指定します。blockID 入力引数は、Block の値を指定します。

MinDecay

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

ブロックが安定するように MinDecay ≥ 0 とします。負の値を指定すると、調整ブロックに不安定な極が含まれる可能性があります。

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

ドット表記を使用して、調整目標の作成後にこのプロパティの値を変更できます。たとえば、ReqTuningGoal.ControllerPoles 調整目標であると仮定します。最小 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

Name

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

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

Req.Name = 'LoopReq';

既定値: []

すべて折りたたむ

調整された制御システムで調整可能な伝達関数ブロックのダイナミクスを制約する調整目標を作成します。

この例では、2 次伝達関数としてパラメーター化されている補償器ブロックを含む制御システムを調整していると仮定します。その伝達関数の極を領域 Re(s)<-0.1|s|<30 に制限する調整目標を作成します。

補償器を表す調整可能なコンポーネントを作成します。

C = tunableTF('Compensator',2,2);

このコマンドは、2 つの極と 2 つの零点をもつ、'Compensator' という制御設計ブロックを作成します。この制御設計ブロックを他の調整可能な数値 LTI モデルと相互接続することで、調整可能な制御システム モデル T を作成できます。systune を使用して T を調整する場合、既定では、これらの極と零点の値は制約を受けません。

調整要件を作成して、補償器ブロックのダイナミクスを制約します。最小 decay 率を 0.1 rad/s に設定して、最大周波数を 30 rad/s に設定します。

Req = TuningGoal.ControllerPoles('Compensator',0.1,0,30);

mindamping 入力引数は 0 であり、ブロックの極の減衰定数には制約が課されません。

systune および調整要件 Req を使用して T を調整する場合、補償器ブロックの極は、これらの値を満たすように制約されます。T の調整後、viewGoal を使用して、調整された制御システムを調整目標に対して検証できます。

ヒント

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

アルゴリズム

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

TuningGoal.ControllerPoles では、f(x) は目標の相対的な達成または違反を反映します。たとえば、調整ブロックの極を ζ = 0.5 の最小 damping に制限しようとする場合、以下のようになります。

  • f(x) = 1 は、極の減衰が厳密に ζ = 0.5 であることを意味します。

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

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

バージョン履歴

R2016a で導入

すべて展開する

R2016a での動作変更