このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,既知の入力信号に対して測定されたプラント応答を基に,ライブエディタータスクを使用してプラント用のPIDコントローラーを調整する方法を説明します。この例では,状態空間モデルの推定タスクを使用して,パラメトリックなプラントモデルを推定するためのコードを生成します。次に,モデルレートの変換タスクを使用して,同定された連続時間モデルを離散化します。最後に,PIDコントローラーの調整タスクを使用して,設計要件を満たす閉ループ応答を達成するPIDコントローラーを設計します(状態空間モデルの推定を使用するには,系统辨识工具箱™のライセンスが必要です)。
ライブエディタータスクを使用すると,計算結果への影響を観察しながら,パラメーターと設定を対話的に反復できます。タスクは,表示された結果を実現するMATLAB®コードを自動的に生成します。このスクリプトのライブエディタータスクを試行するには,この例を開きます。ライブエディタータスク一般に関する詳細については,ライブスクリプトへの対話型タスクの追加を参照してください。
測定された入出力データを読み込みます。この例では,データはエンジンからチャープへの入力の応答で構成されます。入力u
は,0.04秒ごとにサンプリングされた入力信号を含むベクトルです。出力ベクトルy
には,これに対応する測定された応答が含まれます。
负载icEngine.matuyt = 0.04 *(0:长度(u) 1);情节(t, u, t、y)传说(输入“u”,“响应y”)
このデータから状態空間モデルを推定するには,状态空间模型的估计(系统辨识工具箱)ライブエディタータスクを使用します。ライブエディターの[タスク]メニューを使用して,スクリプトにタスクを挿入できます。このスクリプトには,状態空間モデルの推定が既に挿入されています。例を開き、タスクを試行します。
推定を実行するには,タスクで,読み込んだ入力信号u
および出力信号y
を指定し,サンプル時間を0.04秒に設定します(この例には検証データはありません)。また,プラントの次数も指定する必要があります。通常,プラントの次数はシステムに関する知識から推測できます。一般に,適度に良好な推定適合度が得られる,最も小さいプラントの次数を使用します。状態空間モデルの推定タスクで,さまざまなプラントの次数値を試行し,出力プロットに表示される近似結果を観察します。利用可能なオプションおよびパラメーターの詳細については,状态空间模型的估计(系统辨识工具箱)タスクのリファレンスページを参照してください。
タスクのパラメーターを変化させると,推定の実行とプロットの作成用に,生成されたコードが自動的に更新されます(生成されたコードを確認するには,タスクの下部にあるをクリックします)。
この例では,プラントの次数が4のとき,推定適合度は約72%です。プラントの次数をそれより大きくしても,適合度はあまり向上しません。そのため4次のプラントを使用します。コードは,状態空間モデルの推定タスクのサマリ行に入力した変数名で,同定された状態空間モデルを生成します。この例では,sys_id
を使用します。タスクの試行が完了後,同定された状態空間モデルsys_id
がMATLAB®ワークスペースに入ります。それを利用して,他のLTIモデルオブジェクトを使用する場合と同様に,さらに設計および解析を行えます。たとえば,同定された状態空間モデルsys_id
の周波数応答を調査します。
波德(sys_id)网格在
このモデルのPIDコントローラーを設計する前に,このモデルを離散化するとします。これを行うには,モデルレートの変換タスクを使用します。タスクで,同定されたモデルsys_id
を選択します。サンプル時間を,同定されたモデル応答の共振に対応するのに十分な速度に指定します(たとえば0.025秒)。共振の近傍で周波数応答によく一致させるため,別の変換メソッドを選択することもできます。たとえば,双一次(Tustin)近似を,38.4 rad / sのプリワープ周波数(ピーク応答の位置)とともに使用します。タスクの設定を試行しながら,ボード線図で元のモデルと変換後のモデルを比較し,一致に問題がないか確認します(パラメーターとオプションの詳細については,モデルレートの変換タスクのリファレンスページを参照してください)。
モデルレートの変換は,タスクのサマリ行に入力した変数名で,離散化モデルを作成するコードを生成します。この例では,sys_d
を使用します。
離散化モデルが共振による過渡応答を捉えていることを確認するため,元の同定されたモデルsys_id
と離散化モデルsys_d
間でステップ応答の最初の数秒を比較します。
步骤(sys_id sys_d 3)传说(“识别模型sys_id”,“sys_d离散模型”)
最後に,PIDコントローラーの調整タスクを使用して,離散化されたプラントsys_d
のπまたはPIDコントローラーを調整するコードを生成します。このタスクは,次の図に示す標準的な単位フィードバック制御構成を仮定して,特定のプラント用のPIDコントローラーを設計します。
タスクで,プラントとしてsys_d
を選択し,コントローラータイプや応答時間などの設定をさまざまに試行します。設定を変更するとともに,タスクによって生成された閉ループ応答を観察する出力プロットを選択します。[システム応答の特性)をオンにし,立ち上がり時間やオーバーシュートなどの閉ループステップ応答特性の数値を表示させます。
この例では,閉ループシステムが15秒以内に整定するのを目標にするものとし,システムは20%以内のオーバーシュートを許容できるものとします。[コントローラータイプ]や[応答時間]などのコントローラーの設定を調整し,目標を達成します。使用可能なパラメーターとオプションの詳細については,PIDコントローラーの調整タスクのリファレンスページを参照してください。
他のライブエディタータスクと同様に,PIDコントローラーの調整は,タスクのサマリ行に入力した変数名で調整されたコントローラーを作成するコードを生成します。この例では,C
を使用します。調整されたコントローラーC
は,MATLABワークスペース内のpid
モデルオブジェクトであり,さらなる解析に使用できます。たとえば,このコントローラーを使用して,プラントsys_d
の出力における外乱に対する閉ループ応答を計算します。応答とその特性を確認します。
CLdist = getPIDLoopResponse (C sys_d“输出干扰”);步骤(CLdist)网格在
モデルsys_id
、sys_d
,およびC
は他の任意の制御設計または解析タスクに使用できます。