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

ライブ エディター タスクを使用した測定プラント データによる PID コントローラーの調整

この例では、既知の入力信号に対して測定されたプラント応答を基に、ライブ エディター タスクを使用してプラント用の PID コントローラーを調整する方法を説明します。この例では、状態空間モデルの推定タスクを使用して、パラメトリックなプラント モデルを推定するためのコードを生成します。次に、モデル レートの変換タスクを使用して、同定された連続時間モデルを離散化します。最後に、PID コントローラーの調整タスクを使用して、設計要件を満たす閉ループ応答を達成する PID コントローラーを設計します (状態空間モデルの推定を使用するには、System Identification Toolbox™ のライセンスが必要です)。

ライブ エディター タスクを使用すると、計算結果への影響を観察しながら、パラメーターと設定を対話的に反復できます。タスクは、表示された結果を実現する MATLAB® コードを自動的に生成します。このスクリプトのライブ エディター タスクを試行するには、この例を開きます。ライブ エディター タスク一般に関する詳細については、ライブ スクリプトへの対話型タスクの追加 (MATLAB)を参照してください。

プラント データの読み込み

測定された入出力データを読み込みます。この例では、データはエンジンからチャープへの入力の応答で構成されます。入力 u は、0.04 秒ごとにサンプリングされた入力信号を含むベクトルです。出力ベクトル y には、これに対応する測定された応答が含まれます。

load icEngine.mat u y
t = 0.04*(0:length(u)-1);
plot(t,u,t,y)
legend("input u","response y")

状態空間モデルの推定

このデータから状態空間モデルを推定するには、Estimate State-Space Modelライブ エディター タスクを使用します。ライブ エディターの [タスク] メニューを使用して、スクリプトにタスクを挿入できます。このスクリプトには、状態空間モデルの推定が既に挿入されています。例を開き、タスクを試行します。

推定を実行するには、タスクで、読み込んだ入力信号 u および出力信号 y を指定し、サンプル時間を 0.04 秒に設定します (この例には検証データはありません)。また、プラントの次数も指定する必要があります。通常、プラントの次数はシステムに関する知識から推測できます。一般に、適度に良好な推定適合度が得られる、最も小さいプラントの次数を使用します。状態空間モデルの推定タスクで、さまざまなプラントの次数値を試行し、出力プロットに表示される近似結果を観察します。利用可能なオプションおよびパラメーターの詳細については、Estimate State-Space Modelタスクのリファレンス ページを参照してください。

タスクのパラメーターを変化させると、推定の実行とプロットの作成用に、生成されたコードが自動的に更新されます (生成されたコードを確認するには、タスクの下部にある をクリックします)。

この例では、プラントの次数が 4 のとき、推定適合度は約 72% です。プラントの次数をそれより大きくしても、適合度はあまり向上しません。そのため、4 次のプラントを使用します。コードは、状態空間モデルの推定タスクのサマリ行に入力した変数名で、同定された状態空間モデルを生成します。この例では、sys_id を使用します。タスクの試行が完了後、同定された状態空間モデル sys_id が MATLAB® ワークスペースに入ります。それを利用して、他の LTI モデル オブジェクトを使用する場合と同様に、さらに設計および解析を行えます。たとえば、同定された状態空間モデル sys_id の周波数応答を調査します。

bode(sys_id)
grid on

このモデルの PID コントローラーを設計する前に、このモデルを離散化するとします。これを行うには、モデル レートの変換タスクを使用します。タスクで、同定されたモデル sys_id を選択します。サンプル時間を、同定されたモデル応答の共振に対応するのに十分な速度に指定します (たとえば 0.025 秒)。共振の近傍で周波数応答によく一致させるため、別の変換メソッドを選択することもできます。たとえば、双一次 (Tustin) 近似を、38.4 rad/s のプリワープ周波数 (ピーク応答の位置) とともに使用します。タスクの設定を試行しながら、ボード線図で元のモデルと変換後のモデルを比較し、一致に問題がないか確認します (パラメーターとオプションの詳細については、モデル レートの変換タスクのリファレンス ページを参照してください)。

モデル レートの変換は、タスクのサマリ行に入力した変数名で、離散化モデルを作成するコードを生成します。この例では、sys_d を使用します。

離散化モデルが共振による過渡応答を捉えていることを確認するため、元の同定されたモデル sys_id と離散化モデル sys_d 間でステップ応答の最初の数秒を比較します。

step(sys_id,sys_d,3)
legend('identified model sys_id','discretized model sys_d')

離散化されたプラント モデルのコントローラーの調整

最後に、PID コントローラーの調整タスクを使用して、離散化されたプラント sys_d の PI または PID コントローラーを調整するコードを生成します。このタスクは、次の図に示す標準的な単位フィードバック制御構成を仮定して、特定のプラント用の PID コントローラーを設計します。

タスクで、プラントとして sys_d を選択し、コントローラー タイプや応答時間などの設定をさまざまに試行します。設定を変更するとともに、タスクによって生成された閉ループ応答を観察する出力プロットを選択します。[システム応答の特性] をオンにし、立ち上がり時間やオーバーシュートなどの閉ループ ステップ応答特性の数値を表示させます。

この例では、閉ループ システムが 15 秒以内に整定するのを目標にするものとし、システムは 20% 以内のオーバーシュートを許容できるものとします。[コントローラー タイプ][応答時間] などのコントローラーの設定を調整し、目標を達成します。使用可能なパラメーターとオプションの詳細については、PID コントローラーの調整タスクのリファレンス ページを参照してください。

設計のさらなる解析

他のライブ エディター タスクと同様に、PID コントローラーの調整は、タスクのサマリ行に入力した変数名で調整されたコントローラーを作成するコードを生成します。この例では、C を使用します。調整されたコントローラー C は、MATLAB ワークスペース内の pid モデル オブジェクトであり、さらなる解析に使用できます。たとえば、このコントローラーを使用して、プラント sys_d の出力における外乱に対する閉ループ応答を計算します。応答とその特性を確認します。

CLdist = getPIDLoopResponse(C,sys_d,"output-disturbance");
step(CLdist)
grid on

モデル sys_idsys_d、および C は他の任意の制御設計または解析タスクに使用できます。

参考

ライブ エディター タスク

関連するトピック