Main Content

推定された周波数応答を使用した PID コントローラーの設計

この例では、Simulink モデルから推定した周波数応答を使用して PI コントローラーを設計する方法を示します。これは、線形化プラント モデルが PID 設計に対して無効な場合 (たとえば、プラント モデルにゼロ ゲインがある場合など) に使用できる PID 設計の代替ワークフローです。

モデルを開く

エンジン制御モデルを開き、少し時間をとってモデルを調べます。

mdl = 'scdenginectrlpidblock';
open_system(mdl)

PID ループには、スロットル角度を操作してエンジン速度を制御する並列形式の PI コントローラーが含まれています。PI コントローラーには、閉ループ システムを振動させる既定のゲインがあります。PID ブロックのダイアログから起動する PID 調整器を使用してコントローラーを設計します。

open_system([mdl '/Engine Speed (rpm)'])
sim(mdl)

スコープを閉じます。

close_system([mdl '/Engine Speed (rpm)'])

線形化 からのゼロ ゲインを伴うプラント モデルを取得する PID 調整器

この例では、PID ブロックによって検知されるプラントは、スロットル角度からエンジン速度です。線形化の入出力ポイントは、PID ブロック出力とエンジン速度測定でそれぞれ既に定義済みです。初期操作点での線形化では、ゼロ ゲインのあるプラント モデルが作成されます。

ゼロ線形化を検証するには、まずモデルから線形化の入出力ポイントを取得します。

io = getlinio(mdl);

その後、プラントをその初期操作点で線形化します。

linsys = linearize(mdl,io)

ゼロ ゲイン取得は、線形化パス内に Triggered Subsystem (Compression) が存在すること、および解析的なブロックごとの線形化がイベントベースのサブシステムをサポートしていないことが原因です。PID 調整器は線形プラント モデルを取得する場合と同じ方法を使用するため、PID 調整器は、ゼロ ゲインのあるプラント モデルも取得し、処理の起動中にそれを拒否します。

PID 調整器を起動するには、PID ブロック ダイアログを開き、[調整] をクリックします。情報ダイアログが開き、初期操作点で線形化されたプラント モデルにゼロ ゲインがあること、および PID コントローラーの設計に使用できないことが示されます。

線形プラント モデルを取得する別の方法として、Simulink モデルから周波数応答データを直接推定して MATLAB ワークスペースで frd システムを作成し、PID 調整器にインポートし直して PID 設計を続行するやり方があります。

Sinestream 信号を使用した推定周波数応答データの取得

sinestream の入力信号は、関数 frestimate を使用した Simulink モデルの正確な周波数応答を推定するうえで最も信頼性の高い入力信号です。frestimate の使用方法の詳細については、シミュレーションベースの手法を使った周波数応答の推定を参照してください。

この例では、0.1 ~ 10 ラジアン/秒の間の周波数を振幅 1e-3 でスイープする正弦ストリームを作成します。推定結果は、ボード線図を使用して調査できます。

Sinestream 信号を作成します。

in = frest.Sinestream('Frequency',logspace(-1,1,50),'Amplitude',1e-3);

周波数応答を推定します。このプロセスには数分かかります。

sys = frestimate(mdl,io,in);

推定された周波数応答を表示します。

bode(sys)

PI コントローラーの設計

sys は、初期操作点におけるプラント周波数応答を表現する frd システムです。これを PID 調整器で使用するには、PID 調整器の起動後にインポートする必要があります。[Plant] をクリックし、[インポート] を選択します。インポートした frd のサンプリング レートは PID Controller ブロックのサンプリング レートと一致しなければなりません。

LTI システムのインポートの項目をクリックし、リストで [sys] を選択します。その後、[OK] をクリックして frd システムを PID 調整器にインポートします。自動化された設計によって、安定化コントローラーが返されます。[プロットの追加] をクリックし、[開ループ] ボード線図を選択します。このプロットは、妥当なゲイン余裕と位相余裕を示しています。[パラメーターの表示] をクリックし、ゲイン余裕と位相余裕の値を表示します。時間領域応答プロットは、frd プラント モデルでは使用できません。

PID ブロックの P ゲインと I ゲインを更新するには、[ブロックの更新] をクリックします。

Simulink モデルでの閉ループ性能のシミュレーション

Simulink でのシミュレーションには、新しい PI コントローラーが非線形モデルの制御時に良好な性能で動作することが示されています。

モデルを閉じます。

bdclose(mdl)

参考

アプリ

関数

関連するトピック