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

Simulink での LQR サーボ コントローラーの設計

次の図は、航空機の自動操縦装置設計のトラッキング制御問題を示す Simulink® ブロック線図です。この図を開くには、MATLAB® プロンプトで「lqrpilot」と入力します。

この図の主な特徴は次のとおりです。

  • 線形ダイナミクスのブロックには、線形化された機体が含まれる。

  • sf_aerodyn は、(θ,ϕ)=(0,15) に対する非線形方程式を含んだ S-Function ブロックである。

  • ϕϕref の間の誤差信号は、積分器を通過する。これは、エラーを 0 に近傍させるのに役立ちます。

機体の状態空間方程式

標準状態空間方程式から開始します。

x˙=Ax+Bu

ここで、

x=[u,v,w,p,q,r,θ,ϕ]T

下図に示されているように、変数 u、v、w は、機体座標系に関連した 3 つの速度です。

航空機の機体座標フレーム

変数 ϕ および θ はロールとピッチです。p、q、および r は、それぞれロール、ピッチ、ヨーのレートです。

機体のダイナミクスは非線形です。次の方程式は、状態空間方程式に追加された非線形コンポーネントを示します。

状態空間方程式の非線形コンポーネント

x˙=Ax+Bu+[gsinθgcosθsinϕgcosθcosϕ000qcosϕrsinϕ(qsinϕ+rcosϕ)tanθ]

A と B の数値を確認するには、

load lqrpilot
A, B

と MATLAB プロンプトで入力します。

平衡化

LQG 設計目的で、非線形ダイナミクスは ϕ=15 で平衡化され、p、q、r、および θ は 0 に設定されています。前図で u、v、および w は非線形項に入っていないため、(θ,ϕ)=(0,15) 付近で線形化することになり、その他すべての状態はゼロとなります。生成された線形化モデルの状態行列は、A15 と呼ばれます。

問題定義

目標は、図のように安定した旋回を行うことです。

60°のロールで旋回する飛行機

ここでは、60°のロールで安定した旋回を制御するコントローラーを設計します。さらに、ピッチ角度 θ が、できるだけゼロに近い状態を続ける必要があります。

結果

LQG ゲイン行列 K を計算するには、

lqrdes

と MATLAB プロンプトで入力します。次に、非線形モデル sf_aerodyn を選択して lqrpilot モデルを起動します。

次の図は、60°のステップ コマンドに対する ϕ の応答を示したものです。

ロール ステップ コマンドのトラッキング

システムが指令された 60°のロールに約 60 秒でトラッキングすることがわかります。

他の目標は、ピッチ角 θ を比較的小さくすることです。次の図は、LQG コントローラーの性能を示します。

ピッチアングルθでの変位の最小化

最後に、次の図は制御入力を示します。

LQG トラッキング制御問題の制御入力

lqrdes.mQ 行列と R 行列を調節して、制御入力とシステム状態を検証します。lqrdes を再実行すると、LQG ゲイン行列 K が更新されます。試行錯誤を繰り返すと、この設計の応答時間が向上します。また、線形設計と非線形設計を比較すると、システムの性能に対する非線形の効果を確認できます。

関連するトピック