PID コントローラーの調整
ライブ エディターで LTI プラント用の PID コントローラーを調整
タスクを開く
MATLAB エディターでライブ スクリプトに [PID コントローラーの調整] タスクを追加するには、次を行います。
[ライブ エディター] タブで、[タスク] 、 [PID コントローラーの調整] を選択します。
スクリプトのコード ブロック内で、
tune
、PID
などの関連するキーワードを入力します。コマンドの補完候補から[PID コントローラーの調整]
を選択します。
パラメーター
プラントとコントローラーの設定プラント
— 現在のプラント
LTI モデル
コントローラーを設計する対象のプラントを選択します。リストには、MATLAB ワークスペースに存在する次のような連続時間または離散時間 SISO LTI モデルが含まれます。
状態空間 (
ss
)、伝達関数 (tf
)、および零点-極-ゲイン (zpk
) モデル。周波数応答データ (
frd
) モデル。こうしたプラントでは、周波数領域の設計目標および応答プロットのみが使用可能です。一般化状態空間モデル (
genss
) または不確かさをもつ状態空間モデル (uss
)。こうしたモデルでは、[PID コントローラーの調整] は調整可能なコンポーネントと不確かなコンポーネントの現在のノミナル値を使用します。idss
モデルやidtf
モデルなどの同定されたモデル。
形式
— コントローラー形式
'Parallel'
| 'Standard'
コントローラーの形式を指定します。この 2 つの形式は、比例、積分、微分の動作と、微分項に対するフィルターを表現するために使用するパラメーターが異なっています。並列形式と標準形式の詳細については、次を参照してください。
自由度
— 1-DOF コントローラーまたは 2-DOF コントローラーを指定
1DOF
(既定値) | 2DOF
既定では、[PID コントローラーの調整] は 1 自由度 (1-DOF) コントローラーを設計します。こうしたコントローラーは最大 4 つの係数をもちます (比例-積分-微分 (PID) コントローラーを参照)。
代わりに、2 自由度 (2-DOF) PID コントローラーを設計できます。こうしたコントローラーには、比例項および微分項に設定点の重みが含まれています。2-DOF PID コントローラーでは、外乱の抑制を、設定点の追従におけるオーバーシュートを大きく増加させることなく迅速に実行できます。2-DOF PID コントローラーを使用して、制御信号に対する基準信号の変化の影響を緩和することもできます。詳細については、2 自由度 PID コントローラーを参照してください。
コントローラーのタイプ
— コントローラーがもつ項を指定
'PI'
(既定値) | 'PIDF'
| 'PID2'
| ...
コントローラーのタイプは、PID コントローラーに存在する項を指定します。たとえば、PI コントローラーには比例項と積分項があります。PDF コントローラーには比例項と不完全微分項があります。使用可能なコントローラーの詳細については、調整における PID コントローラー タイプを参照してください。
領域
— パフォーマンス目標を指定する領域
'Time'
(既定値) | 'Frequency'
タスクが目標性能パラメーターを表示する領域を選択します。
時間
— スライダーを使用して、応答時間と過渡動作に関する性能目標を設定する。時間領域の調整はfrd
プラントなどの周波数応答データのプラントには使用できません。周波数
— スライダーを使用して、ループ帯域幅および位相余裕に関する性能目標を設定する。
領域の選択は、基になるコントローラーの設計や結果に影響しません。ユーザーにとってより便利なもの、またはアプリケーションにとってより最適なものを使用できます。たとえば、設計目標にターゲットの立ち上がり時間が含まれている場合、時間領域内で作業すると便利です。ターゲット ループの帯域幅がある場合、周波数領域での作業を推奨します。いずれの領域においても、設定値追従と外乱の抑制の性能間にトレードオフが生じます。
応答時間、過渡動作
— 時間領域の性能目標
スライダー
[領域] を [時間]
に設定したら、こうしたスライダーを使用してコントローラーの応答性とロバスト性を調整します。
[応答時間] スライダーを使用して、制御システムの閉ループ応答を早めたり遅らせたりします。スライダーの範囲を変更するには、スライダーを左端または右端にドラッグします。10 倍の単位で応答時間を増減させるには、
または
をクリックします。
[過渡動作] スライダーは、コントローラーを外乱の抑制に対してよりアグレッシブにしたり (より小さな値)、プラントの不確かさに対してよりロバストにするために (より大きな値) 使用します。
時間領域の調整は frd
プラントなどの周波数応答データのプラントには使用できません。
帯域幅、位相余裕
— 周波数領域の性能目標
スライダー
[領域] を [周波数]
に設定したら、こうしたスライダーを使用して制御システムの帯域幅と位相余裕を調整します。
[帯域幅] スライダーを使用して、制御システムの閉ループ応答を速めたり遅らせたりします (応答時間は 2/wc で、wc は帯域幅を表します)。スライダーの範囲を変更するには、スライダーを左端または右端にドラッグします。10 倍の単位で帯域幅を増減させるには、
または
をクリックします。
離散時間コントローラーの場合、[PID コントローラーの調整] は最大帯域幅を
pi/Ts
に制限します。ここで、Ts
は選択されたプラントのサンプル時間です。[位相余裕] スライダーは、コントローラーを外乱の抑制に対してよりアグレッシブにしたり (より小さな値)、プラントの不確かさに対してよりロバストにするために (より大きな値) 使用します。
設計フォーカス
— 優先される閉ループの性能目的
平衡化
(既定値) | 設定値追従
| 入力外乱の抑制
指定されたターゲット位相余裕に対して、[PID コントローラーの調整] は、性能についての 2 つの測定である設定値追従と外乱の抑制のバランスを取るコントローラー設計を選択します。[Design focus] オプションを変更する際、調整アルゴリズムは PID ゲインを調整して、同一のターゲット位相余裕を実現しながら設定値追従と外乱の抑制のいずれかを優先するよう試みます。
[Design focus] オプションは次のとおりです。
平衡化
— ロバスト性に応じてコントローラーを調整し、設定値追従と外乱の抑制とのバランスを取ります。
設定値追従
— 可能であれば、設定値追従を優先するようコントローラーを調整します。
入力外乱の抑制
— 可能であれば、外乱の抑制を優先するようコントローラーを調整します。
調整可能なパラメーターがシステム内に多く存在すればするほど、ロバスト性を失わずに PID アルゴリズムが目的の設計フォーカスを実現できる可能性は高まります。たとえば、設計フォーカスの設定は、P または PI コントローラーよりも PID コントローラーに対して行う方がより高い効果を期待できます。
すべての場合において、システムの性能をどの程度まで微調整できるかは、プラントの特性に強く左右されます。プラントによっては、[Design Focus] オプションを変更しても、ほとんどあるいはまったく効果がない場合もあります。
積分公式、フィルター公式
— 離散積分項および微分項の式
前進型オイラー
(既定値) | 後退型オイラー
| 台形則
離散時間 PID コントローラーの場合、積分器項およびフィルター項を実装するさまざまな方法があります。たとえば、並列形式の離散時間 PID コントローラーの場合、コントローラーの伝達関数は次のとおりです。
IF(z) と DF(z) は積分器と微分フィルターのための "離散積分器の式" です。IF(z) および DF(z) が標準形式および 2-DOF コントローラーを含むその他のコントローラー形式にどのように影響するかを確認するには、離散時間比例-積分-微分 (PID) コントローラーを参照してください。
[積分公式] および [Filter formula] を使用して、それぞれ IF(z) と DF(z) の値を選択します。
前進型オイラー
— IF(z) または DF(z) =この方程式は、コントローラーの帯域幅と比較してナイキスト制限が大きくなるような、小さいサンプル時間に最適です。大きいサンプル時間で
[前進型オイラー]
式を使用すると、連続時間で安定しているシステムを離散化する場合でも不安定となることがあります。後退型オイラー
— IF(z) または DF(z) =[後退型オイラー]
式の利点は、この式を使用して安定した連続時間システムを離散化すると、常に安定した離散時間結果が得られることです。台形則
— IF(z) または DF(z) =[台形則]
式の利点は、この手法で安定した連続時間システムを離散化すると、常に安定した離散時間結果が得られることです。使用可能なすべての離散積分器の式の中で、[台形則]
は、離散システムと対応する連続時間システムの周波数領域プロパティに最も近くなります。
出力プロット
— 生成するシステム応答プロット
ステップ プロット: 設定値追従
(既定値) | ステップ プロット: 入力外乱の抑制
| ボード線図: 開ループ
| ...
PID コントローラーがシステムの性能に与える影響を観測するための応答プロットを指定します。異なるシステム応答に対して時間領域のステップ応答プロットまたは周波数領域のボード線図を指定できます。[PID コントローラーの調整] がライブ スクリプトで生成するコードには、選択したプロットを生成するためのコードが含まれます。
使用可能なシステム応答
PI、PIDF、PDF などの 1-DOF PID コントローラー タイプの場合、ソフトウェアは次の単一ループ制御アーキテクチャに基づいてシステム応答を計算します。ここで、G は指定したプラント、C は PID コントローラーです。
PI2、PIDF2、I-PD などの 2-DOF PID コントローラー タイプの場合、ソフトウェアは次に示すアーキテクチャに基づいて応答を計算します。
システム応答は、2 自由度 PID コントローラーで説明されているように、設定点コンポーネント Cr とフィードバック コンポーネント Cy への 2-DOF PID コントローラー C の分解に基づいています。
次の表は、解析プロットに使用可能な応答をまとめています (frd
モデルなどの周波数応答データ プラントでは、時間領域の応答プロットは利用できません)。
応答 | プロットされたシステム (1-DOF) | プロットされたシステム (2-DOF) | 説明 |
---|---|---|---|
プラント | G | G | プラント応答。プラントのダイナミクスを調べるために使用します。 |
開ループ | GC | –GCy | 開ループのコントローラー プラント システムの応答。周波数領域設計に使用します。 設計仕様に、開ループのゲイン余裕および位相余裕など、ロバスト性の基準が含まれている場合に使用します。 |
設定値追従 | (r から y へ) | (r から y へ) | 設定点でのステップ変化に対する閉ループのシステム応答。設計仕様に設定点の追従が含まれている場合に使用します。 |
コントローラーの出力 | (r から u へ) | (r から u へ) | 設定点でのステップ変化に対する閉ループのコントローラー出力応答。設計が、コントローラーの飽和などの実際の制約で制限されている場合に使用します。 |
入力外乱の抑制 | (d1 から y へ) | (d1 から y へ) | 負荷外乱 (プラント入力でのステップ外乱) に対する閉ループのシステム応答。設計仕様に入力外乱の抑制が含まれている場合に使用します。 |
出力外乱の抑制 | (d2 から y へ) | (d2 から y へ) | プラント出力でのステップ外乱に対する閉ループのシステム応答。モデル化誤差に対する感度を解析する場合に使用します。 |
システム応答の特性
— 閉ループ応答の数値特性を表示
off
(既定値) | on
閉ループ応答または開ループ応答の数値特性の表示を生成するには、このオプションを選択します。
[出力プロット] がステップ プロットである場合、立ち上がり時間、整定時間、オーバーシュートの割合といった特性が表示されます。こうした値は、プロット用に選択した特定のステップ応答に関係なく、常に制御システムの入力 r から出力 y への閉ループ ステップ応答の値になります。[PID コントローラーの調整] は
stepinfo
を使用してステップ応答の特性を計算します。これらの値の解釈方法の詳細については、stepinfo
のリファレンス ページを参照してください。[出力プロット] がボード線図である場合、ゲイン余裕や位相余裕といった特性が表示されます。こうした値は常に、選択した特定のボード線図に関係なく、開ループ システム応答 GC の値になります。[PID コントローラーの調整] は
allmargin
を使用して周波数応答の特性を計算します。これらの値の解釈方法の詳細については、allmargin
のリファレンス ページを参照してください。
ベースライン コントローラー
— 性能比較のためのコントローラー
なし
(既定値) | ワークスペースから選択
このオプションは、調整されたコントローラーの性能を MATLAB ワークスペース内の他の PID コントローラーと比較するときに使用します。そのためには、[ワークスペースから選択]
を選択します。現在ワークスペースに存在している PID モデル オブジェクトが含まれる別のメニューが表示されます。リストには、現在指定されているプラントと時間領域が同じであるすべてのタイプ (pid
、pidstd
、pid2
、または pidstd2
) の PID モデル オブジェクトが含まれます。たとえば、プラントが離散時間状態空間モデルである場合、ワークスペース内の任意の離散時間 PID モデル オブジェクトをベースライン コントローラーとして使用できます。
ベースライン コントローラーを指定すると、応答プロットが更新され、ベースライン コントローラーでのシステム応答を表す点線のプロットが含められます。
比較のためのコントローラーの保存
コントローラーのタイプ、性能目標、およびその他の設定に関するさらに詳細な実験を行うと同時に、ベースラインとして使用するために設計を保存できます。そのためには、ベースラインとして使用する設計を見つけたときに、次を行います。
タスクのサマリー行にあるコントローラー ワークスペース変数の名前に注目します (ヒントを参照)。たとえば、名前が
C
の場合、MATLAB ワークスペースにある現在のコントローラーはC
になっています。タスクのサマリー行にあるコントローラー変数の名前を変更します。たとえば、
Cnew
に変更します。[ベースライン コントローラー] を選択し、保存されているコントローラー
C
をベースラインとして指定します。コントローラーの設計でさらに実験を行う場合、タスクにより、ワークスペースのコントローラーに対する変更が
Cnew
として保存されます。プロットでは、ベースライン応答をC
で示し、調整された応答をCnew
で示しています。
ヒント
プラントの選択後、タスクによってコントローラーが作成され、MATLAB ワークスペースに保存されます。保存されているコントローラーは、[形式] および [自由度] の選択で指定されるように、
pid
、pidstd
、pid2
、またはpidstd2
モデル オブジェクトです。保存されているコントローラーの既定の変数名は
C
です。新しい名前をタスクのサマリー行に入力することで、変数名を変更できます。このタスクによって、閉ループ システムの性能とロバスト性に関する情報も、既定で
pidInfo
と呼ばれる構造体で提供されます。この構造体の詳細については、pidtune
のリファレンス ページのinfo
出力引数を参照してください。
アルゴリズム
[PID コントローラーの調整] では、PID 調整アルゴリズムで説明されているアルゴリズムが使用されます。
バージョン履歴
R2019b で導入