メインコンテンツ

747 ジェット航空機のヨー ダンパーの設計

この例では、Control System Toolbox™ の古典制御設計機能を使用した、747® 航空機のヨー ダンパーの設計を示します。

以下の飛行中の航空機の簡潔化された平衡モデル

$$ \frac{dx}{dt} = Ax + Bu $$

$$ y = Cx + Du $$

には次の 4 つの状態、つまり

   beta (sideslip angle), phi (bank angle), yaw rate, roll rate

と 2 つの入力、つまり方向舵と補助翼の偏向角があります。

すべての角度と角速度の単位はそれぞれラジアンおよびラジアン/秒です。

平衡モデルの行列 A、B、C、D が与えられたとして、SS コマンドを使用して MATLAB® で状態空間モデルを作成します。

A = [-0.0558 -0.9968  0.0802 0.0415;
       0.598  -0.115 -0.0318      0;
       -3.05   0.388 -0.4650      0;
           0  0.0805       1      0];

B = [ 0.00729       0;
       -0.475 0.00775;
        0.153   0.143;
            0       0];

C = [0 1 0 0;
     0 0 0 1];

D = [0 0;
     0 0];

sys = ss(A,B,C,D);

そして入力、出力、および状態にラベルを付けます。

sys.InputName = ["rudder" "aileron"];
sys.OutputName = ["yaw rate" "bank angle"];
sys.StateName = ["beta" "yaw" "roll" "phi"];

このモデルは、減衰率の小さな極を 1 組もっています。これらはダッチ ロール モードと呼ばれるモードに相当します。これらのモードを表示するには、次のように入力します。

pzp = pzplot(sys);
pzp.FrequencyUnit = "rad/s";
grid off

右クリックして [グリッド] を選択し、減衰値と固有振動数をプロットします。これらの 2 つの極の減衰を大きくするような補償器を設計する必要があります。

まず、開ループ解析を行って、可能な制御方式を決定します。減衰率の小さなモードが存在するかどうかは、インパルス応答を見ることで確認します。

impulseplot(sys)

20 秒というさらに小さな時間枠での応答を確認する場合は、次のように入力することもできます。

impulseplot(sys,20)

補助翼からバンク角 phi までのプロットを見てください。このプロットのみを表示するには、右クリックして [I/O セレクター] を選択してから、(2,2) をクリックします。

このプロットは、非ゼロ バンク角近傍で振動している航空機を示しています。このように、航空機は補助翼へのインパルス入力に応答して方向を変えています。この動作は後で重要になります。

一般に、ヨー ダンパーは検知出力としてヨー レートを、入力として方向舵を使用して設計されます。この I/O の組の周波数応答を確認します。

sys11 = sys("yaw","rudder");    % select I/O pair
bp = bodeplot(sys11);
bp.FrequencyUnit = "rad/s";
bp.MagnitudeUnit = "dB";
bp.PhaseUnit = "deg";

このプロットは、減衰率の小さなダッチ ロール モード (1 rad/s) の近傍で、方向舵がかなりの影響力をもっていることを示しています。

合理的な設計の目的は、固有振動数 Wn < 1.0 rad/s のときに、減衰率 zeta > 0.35 を与えることです。最も簡単な補償器はゲインです。根軌跡法を使用して、適切なフィードバック ゲイン値を選択します。

rp = rlocusplot(sys11);
rp.FrequencyUnit = "rad/s";

正のフィードバックを使用します。

rp = rlocusplot(-sys11);
rp.FrequencyUnit = "rad/s";

このほうが適切です。青い曲線をクリックし、黒い四角形を移動して、ゲイン値と減衰値を追跡します。最も達成可能な閉ループ減衰は、K=2.85 のゲインに対して約 0.45 です。

SISO フィードバック ループを閉じて、インパルス応答を確認します。feedback 関数は、既定では負のフィードバックを前提としています。

k = 2.85;
cl11 = feedback(sys11,-k);

impulseplot(sys11,"b--",cl11,"r")
legend("open-loop","closed-loop",Location="SouthEast");

応答は良さそうです。

完全な MIMO モデルのループを閉じて、補助翼からの応答がどのようになるかを確認します。フィードバック ループには、プラントの入力 1 と出力 1 が含まれます。

cloop = feedback(sys,-k,1,1);
impulseplot(sys,"b--",cloop,"r",20)           % MIMO impulse response

ヨー レート応答は大きく減衰しています。

ただし、補助翼を移動すると、システムは通常の航空機のようにバンクしなくなります。これは次で示されます。

impulseplot(cloop("bank angle","aileron"),"r",18)

これは、スパイラル モードを過度に安定化したことになります。通常、スパイラル モードは非常に遅いので、補助翼の入力が継続的に得られなくても、機体をバンクさせながら方向転換できます。パイロットはこのような動作に慣れているので、このような通常の操作ができない設計は好みません。

ループを閉じたときに、スパイラル モードが左半面でさらに左側に移らないようにする必要があります。飛行制御設計者がこの問題に対処した 1 つの方法は、ウォッシュアウト フィルターを使用することです。

ウォッシュアウト フィルター:

$$ H(s) = \frac{ks}{s+a} $$

制御システム デザイナーを使用すると、パラメーター k および a をグラフィカルに調整して最適な組み合わせを見つけることができます。この例では、a = 0.2、つまり 5 秒の時定数を選択します。

a=0.2 および k=1 に対するウォッシュアウト フィルターを作成します。

H = zpk(0,-0.2,1);

ウォッシュアウトを直列で設計モデルに接続し、根軌跡法を使用してフィルターのゲイン k を決定します。

oloop = H * (-sys11);          % open loop
rp = rlocusplot(oloop);
rp.FrequencyUnit = "rad/s";
grid

最適な減衰は k=2.34 に対して約 zeta = 0.305 となりました。MIMO モデルのループを閉じて、インパルス応答を確認します。

k = 2.34;
wof = -k * H;            % washout compensator
cloop = feedback(sys,wof,1,1);
impulseplot(sys,"b--",cloop,"r",20)

ウォッシュアウト フィルターは、通常のバンクおよび方向転換動作も復元しました。これは補助翼からバンク角へのインパルス応答を見ることで確認できます。

impulseplot(sys(2,2),"b--",cloop(2,2),"r",20)
legend("open-loop","closed-loop",Location="SouthEast");

仕様は完全に満たされていませんが、この設計では減衰を大幅に増加させる一方で、パイロットは航空機を通常どおりに操縦できます。