Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ウイング ロックが発生した航空機のモデル規範形適応制御

この例では、ウイング ロックが発生したデルタ翼航空機のロールとロール レートを制御する方法を示します。この例では、システム モデルはわかっていません。そのため、モデル規範形適応制御 (MRAC) を使用して、制御対象システムを理想の参照モデルに一致させます。航空機は Simulink® でモデル化され、MRAC コントローラーは Simulink Control Design™ ソフトウェアで提供される Model Reference Adaptive Control ブロックを使用して実装されます。

ウイングロックの制御システム

ウイング ロックは、デルタ翼航空機が高迎角で低速飛行しているときに見られる現象です。航空機で望ましくないロール振動が発生し、パイロットによる航空機の制御がより難しくなります。MRAC コントローラーの目標は、望ましくないロール振動を打ち消すことです。その後、目的の基準動作を実現するようにベースライン コントローラーを設計できます。

ウイングロック モデルのダイナミクスは次の方程式で定義されます。

θ˙=pp˙=Δ(x)+LδδaΔ(x)=w0*+w1*θ+w2*p+w3*|θ|θ+w4*|p|p+w5*θ3

ここで

  • x=(θ ,p) はシステムの状態ベクトルです。ここで、θ はロール角、p はロール レートです。

  • δa は航空機の補助翼の角度の制御入力です。

  • Lδ は少なくとも符号がわかっている制御有効行列です。

  • Δ(x) はウイングロックによる外乱です。

  • wi* は不明な理想の重みです。

この不確かさをもつ非線形システムについて、次の 2 次参照モデルにシステムを追従させることができるコントローラーを設計することが目標になります。

x¨m=-4xm-2x˙m+4r(t)

ここで

  • xm は参照モデルの状態ベクトルです。

  • r(t) はパイロットによって提供されるロール基準信号です。

ノミナル モデルと参照モデル

ロールのダイナミクスについて、次の簡略化された 2 次ノミナル モデルを指定します。

A = [0 1; 0 0]; % Second integrator model
B = [0;1];      % Nominal control effective matrix

参照モデルを前に定義した 2 次システムの安定したモデルとして定義します。コントローラーは、その不確かさのモデルを適応させることで、このモデルと同じ 2 次動作を実現します。

Am = [0 1; -4 -2]; % Second intergrator model
Bm = [0;4];       % Nominal control effective matrix

ノミナル モデルと参照モデルの初期条件を指定します。

theta_0 = 0;   % Initial roll angle (rad)
p0 = 0;        % Initial roll rate (rad/s)
xm = [0;0];    % Initial condition of the reference plant model     

モデル規範形適応制御の構造

MRAC コントローラーの目標は、追従誤差 e(t)=x(t)-xm(t) を漸近的に収束させることです。

limt(x(t)-xm(t))0

MRAC コントローラーの構造は次のとおりです。

u(t)=-kxx(t)+krr(t)-uad

ここで

  • kx にはフィードバック制御ゲインが含まれます。

  • kr にはフィードフォワード制御ゲインが含まれます。

  • uad はモデルの不確かさを打ち消す適応制御項です。

Model Reference Adaptive Control ブロックは、目的の参照モデルの追従を実現するために適応制御項を調整します。オプションで、フィードバック制御とフィードフォワード制御のゲインを適応させることもできます。ただし、この例では制御ゲインは静的です。

ウイングロック システムのフィードバック制御とフィードフォワード制御の静的ゲインは、次のモデルマッチング条件を満たすように計算されます。

Am=A-BkxBm=Bkr

計算されたコントローラーのゲインを指定します。

Kx = [-4 -2];   % Feedback gain
Kr = 4;         % Feedforward gain

不確かさの推定のパラメーター

MRAC コントローラーは、モデルの不確かさをオンラインで推定し、不確かさを打ち消してベースライン コントローラーのノミナル システムを復元する適応制御動作 uad を生成します。システムの不確かさは、次のモデルを使用して適応制御項でモデル化されます。

uad=wTϕ(x)

ここで

  • w にはコントローラーで調整されるネットワークの重みが含まれます。

  • ϕ(x) は不確かさのモデルの特徴ベクトルです。

Model Reference Adaptive Control ブロックを使用して、次のいずれかの特徴ベクトル定義を選択できます。

  1. システムの状態。ϕ(x)=x(t) です。この方法は最もシンプルなオプションであり、システムの不確かさの複雑度がわからない場合に開始点として使用すると便利です。状態を特徴として使用すると非線形の不確かさが十分に表現されない場合は、他のいずれかの方法を選択します。

  2. ガウス カーネルによる放射基底関数 (RBF)。ϕ(x)=[exp(-(x-ci)2 σ i)]i=1N です。特徴の中心 ci と帯域幅 σi を定義してカーネルを構成できます。

  3. 隠れ層に指定した数のニューロンをもつ単一の隠れ層 (SHL) ニューラル ネットワーク。

  4. オプションの入力端子で提供されるカスタム特徴。

この例では、3 つすべての方法を使用するようにコントローラーを構成して結果を比較します。

モデル推定の学習率 gamma_w と追従誤差の重み Q を定義します。これらのパラメーターは 3 つすべてのコントローラー構成に使用されます。

gamma_w = 100;   % Learning rate
Q = 1;           % Tracking error weight

放射基底関数カーネルのパラメーターを指定します。一般に、RBF の中心についてはシステムの可能な状態空間を含むように構成し、帯域幅についてはカーネル間のオーバーラップが十分になるように構成します。

N = 10;         % Number of RBF kernels
cen_max = 2;    % Upper limit for kernel centers 
cen_min = -2;   % Lower limit for kernel centers
bandwidth = 25; % Kernel bandwidth

状態特徴ベクトルを使用したコントローラーのシミュレーション

システムの状態を不確かさのモデルの特徴ベクトルとして使用するように構成された、ウイングロックの制御システムの Simulink モデルを開きます。

mdl = "wingrockStates";
open_system(mdl)

このモデルには次の項目が含まれています。

  • Wing-Rock Model ブロックは、ロールのダイナミクスのノミナル モデルを実装します。

  • External Disturbance ブロックは、ロールのダイナミクスのウイングロックによる外乱を生成します。

  • Reference Command ブロックは、パイロットの基準信号を生成します。

  • Model Reference Adaptive Control ブロックは、制御動作 uad を出力します。これはウイングロックによる外乱の推定です。

シミュレーション期間を設定してモデルをシミュレートします。

Tf = 40;    % Simulation duration (s) 
sim(mdl);

結果の航空機のロールを設定値指令と比較します。

open_system(mdl + "/Roll")

コントローラーの 2 次過渡応答が滑らかになっていません。

MRAC コントローラーで推定された外乱モデルを実際の外乱信号と比較します。

open_system(mdl + "/Disturbance")

状態を外乱モデルの特徴として使用した場合、コントローラーで推定される線形の外乱モデルでは実際の非線形の外乱が正確に表現されません。

RBF 特徴ベクトルを使用したコントローラーのシミュレーション

非線形の RBF を不確かさのモデルの特徴ベクトルとして使用するように構成された、ウイングロックの制御システムの Simulink モデルを開きます。このモデルは、コントローラーのパラメーターが更新されている点を除き、前のモデルと同じです。

mdl = "wingrockSHL";
open_system(mdl)

モデルのシミュレーションを実行します。

sim(mdl);

結果のコントローラーの性能を確認します。

open_system(mdl + "/Roll")

コントローラーの 2 次応答が設定値指令の変化に対してより滑らかになっています。

放射基底関数を使用して推定された外乱を実際の外乱と比較します。

open_system(mdl + "/Disturbance")

非線形の特徴ベクトルにより、コントローラーで実際の非線形の外乱がより正確に推定されています。

SHL ニューラル ネットワーク特徴ベクトルを使用したコントローラーのシミュレーション

SHL ニューラル ネットワーク出力を不確かさのモデルの特徴ベクトルとして使用するように構成された、ウイングロックの制御システムの Simulink モデルを開きます。このモデルは、コントローラーのパラメーターが更新されている点を除き、前のモデルと同じです。

mdl = "wingrockSHL";
open_system(mdl)

モデルのシミュレーションを実行します。

sim(mdl);

結果のコントローラーの性能を確認します。

open_system(mdl + "/Roll")

コントローラーの 2 次応答が設定値指令の変化に対してより滑らかになっています。

SHL ニューラル ネットワークを使用して推定された外乱を実際の外乱と比較します。

open_system(mdl + "/Disturbance")

ニューラル ネットワーク近似器によって計算された非線形特徴ベクトルは、RBF 特徴ベクトルよりも実際の外乱に近くなっています。また、ニューラル ネットワーク パラメーターの構成はよりシンプルです。

カスタム特徴ベクトルを使用したコントローラーのシミュレーション

外部で生成されたカスタムの特徴ベクトルを不確かさのモデルに使用するように構成された、ウイングロックの制御システムの Simulink モデルを開きます。このオプションは外乱と不確かさのモデルの構造がわかっている場合に使用できます。この例では、Features ブロックで生成される特徴ベクトルが External Disturbance ブロックで使用される特徴ベクトルに対応します。

mdl = "wingrockCustom";
open_system(mdl)

モデルのシミュレーションを実行します。

sim(mdl);

結果のコントローラーの性能を確認します。

open_system(mdl + "/Roll")

コントローラーの 2 次応答が設定値指令の変化に対してより滑らかになっています。

カスタム特徴ベクトルを使用して推定された外乱を実際の外乱と比較します。

open_system(mdl + "/Disturbance")

予想どおり、外乱の動作の事前情報に基づくカスタム特徴ベクトルを使用することで、実際の外乱のより正確なモデルが生成されます。

参考

ブロック

関連するトピック