主要内容

Hl-20の自動操縦の姿勢制御- siso設計

これは,hl-20機体用の飛行制御システムの設計と調整に関する例のシリズのパト3です。このパートでは,機体のロール,ピッチ,およびヨーを制御するための従来の输出アーキテクチャを調整する方法について説明します。

背景

この例ではNASA HL-20起重机体(航天Blockset)から応用したhl-20モデルを使用します。詳細にいては,シリズのパト1 (Hl-20機体の平衡化と線形化)を参照してください。航空機の姿勢を制御する自動操縦には3の内側のルプと3の外側のルプが含まれます。

パ,ト2 (Hl-20の自動操縦における角速度の制御)では,角速度p, q, rを制御する内側のル,プを閉じる方法を示しました。以下のコマンドは該当する手順をまとめたものです。これにより,万博1manbetxSimulinkモデルを操作するためのslTuner@ @ @ @ @ @ @ @ @ @ @ @ @ @ST0が作成されて構成されます。

load_system (“csthl20_control”) ctype = 2;选择SISO体系结构HL20recapPart2 ST0
“csthl20_control”的slTuner调优接口:没有调优块。使用addBlock命令添加新的块。9点分析 : -------------------------- 点1:信号”da;德博士”,位于“输出端口1”csthl20_control /飞行控制系统控制器的点2:信号“评定”,位于csthl20_control / HL20机身的输出端口2点3:输出端口1的csthl20_control /飞行控制系统/ Alpha_deg点4:“输出端口1”csthl20_control /飞行控制系统/ Beta_deg点5:“输出端口1”csthl20_control /飞行控制系统/ Phi_deg点6:的输出端口1 csthl20_control /飞行控制系统/控制器/古典/需求点7:信号“p_demand”,位于“输出端口1”csthl20_control /飞行控制系统/控制器/古典/ Roll-off1点8:信号“q_demand”,位于“输出端口1”csthl20_control /飞行控制系统/控制器/古典/ Roll-off2点9:信号“r_demand”,位于“输出端口1”csthl20_control /飞行控制系统/控制器/古典/ Roll-off3没有永久的空缺。使用addOpening命令添加新的永久开口。参数:[]OperatingPoints:[](将使用模型初始条件)BlockSubstitutions: [3x1 struct]选项:[1x1线性化。SlTunerOptions] Ts: 0

外側ル,プの調整の設定

ここでは,ロール(φ)、迎角(α),横滑り角(β)を制御する3つのゲインスケジュールπループに焦点を移します。これらのループは1つずつ調整することができます(3つのループと40の操作条件で120の設計点になります)。あるいはpidtuneを使用して,特定のターゲット帯域幅と位相余裕の要件に対してπゲインをバッチモードで調整することも可能です。両方のアプロ,チで次の点に注意してください。

  • ル,プの相互作用を考慮するのが難しい。

  • 各設計点で得られたゲesc escンが一貫性に欠け,操作点全体での平滑化が必要になる可能性がある。

代替のアプロチとして"ゲン曲面調整"[1]という概念があります。これはゲインスケジュールP(α,β)および我(α,β)を多項式曲面としてパラメーター化し,systuneを使って多項式の係数を調整する方法です。このアプローチはすべての操作点を同時に処理するため,特に安定余裕の考慮において,ループの相互作用を計算に入れることができます。ここではこのアプロ,チを紹介します。

外側のループを調整するには,内側のループを閉じて,それぞれの(α,β)条件で外側のループによって認識される”プラント”の線形化モデルを取得しなければなりません。対応する伝達関数をslTunerに計算させることもできますが,その場合は内側のループのゲインKp, Kq, Krが既定の操作条件におけるそれぞれの値に実質的に固定されてしまいます。線形化を正しく行うには,これらのゲaaplンが(alpha,beta)に従って変化することをslTunerに指定しなければなりません。そのためには,ここでもブロック置換が一番簡単な方法です。Kpを可変としてマークするには,誤差信号をKpで乗算するために使用される产品ブロックを見つけ,これを(α,β)の各条件ごとに1つのゲインをもつゲインの配列に置き換えます。

ProductBlk =“csthl20_control/Flight Control System/Controller/Classical/Product1”;BlockSub4 = struct(“名字”ProductBlk,“价值”[0 ss (Kp)]);

このブロック線形化を行うと誤差信号が上で計算した可変量Kpで乗算されることは,簡単に検証できます。同様に,KqとKrの対応するProductブロックを可変ゲaaplンで置き換えます。

ProductBlk =“csthl20_control/Flight Control System/Controller/Classical/Product3”;BlockSub5 = struct(“名字”ProductBlk,“价值”[0 ss (Kq)]);ProductBlk =“csthl20_control/Flight Control System/Controller/Classical/Product4”;BlockSub6 = struct(“名字”ProductBlk,“价值”[0 ss (Kr)]);ST0。BlockSubstitutions = [ST0.]BlockSubstitutions;BlockSub4;BlockSub5;BlockSub6];

これで,モデルの初期のゲ。

T0 = getIOTransfer(ST0,“需求”, {“Phi_deg”“Alpha_deg”“Beta_deg”});步骤(T0, 6)

調整目標

基本的な制御目的には帯域幅(応答時間)と安定余裕が含まれます。“MinLoopGainおよび“MaxLoopGainの目標を使用して,外側のループのゲイン交差を0.5 ~ 5 rad / sの間に設定します。すべてのル,プ変数が度単位で表されるので,追加のスケ,リングは必要ありません。

R1 = TuningGoal。MinLoopGain ({“Phi_deg”“Alpha_deg”“Beta_deg”}, 0.5, 1);R1。LoopScaling =“关闭”;R2 = TuningGoal。MaxLoopGain ({“Phi_deg”“Alpha_deg”“Beta_deg”},tf(50,[1 10 0]));R2。LoopScaling =“关闭”

“页边”目標を使用して,各ル,プ内およびル,プ間に適切な安定余裕を設定します。この目標はディスク余裕の概念に基づくもので,3すべてのルンと位相が同時に変動する場合であっても安定性が保証されます。極端な方向((α,β)グリッドの隅)では7 dBおよび40度というターゲット余裕を得ることが難しいため,可変目標を使って隅でのゲイン余裕と位相余裕の要件を緩和させます。

%增益边际对(alpha,beta)Gm = [...6 6 6 6 6 6 6 7 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 6 6 7 6 6 6 6 6 6 6);%相位裕度vs (alpha,beta)PM = [...40 40 40 40 40 40 40 40 40 40 40 40 40 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40;%创建不同的目标FH = @(gm,pm)调谐目标。利润(“博士da;德;”、通用、点);R3 = varyingGoal(FH,GM,PM);

ゲ▪▪ンスケジュ▪▪ル調整

外側のループ用に我とのゲインスケジュールを調整するには,3つのMATLAB函数ブロックと3つのルックアップテーブルを調整可能としてマークします。

TunedBlocks = {“Pφ”“Pα”“Pβ”“我φ”“我α”“我β”};ST0.addBlock (TunedBlocks)

調整後のゲンスケジュルをalphaとbetaの多項式曲面としてパラメタ化します。ここでは比例ゲaapl . exeンに2次曲面を使用し,積分ゲaapl . exeンに多重線形曲面を使用します。

% (alpha,beta)设计点的网格Alpha_vec = -10:5:25;% Alpha范围Beta_vec = -10:5:10;% Beta范围[alpha,beta] = ndgrid(alpha_vec,beta_vec);SG = struct(“α”α,“β”,β);比例增益alphabetaBasis = polyBasis(“规范”2、2);P_PHI =可调谐表面(“Pphi”, 0.05, SG, alphabetaBasis);P_ALPHA = tunableSurface(“Palpha”, 0.05, SG, alphabetaBasis);P_BETA = tunablessurface (“Pbeta”, -0.05, SG, alphabetaBasis);ST0.setBlockParam (“Pφ”, P_PHI);ST0.setBlockParam (“Pα”, P_ALPHA);ST0.setBlockParam (“Pβ”, P_BETA);%积分增益alphabase = @(alpha) alpha;betaBasis = @(beta) abs(beta);alphabetaBasis = ndBasis(alphaBasis,betaBasis);I_PHI = tunablessurface (“Iphi”, 0.05, SG, alphabetaBasis);I_ALPHA = tunableSurface(“Ialpha”, 0.05, SG, alphabetaBasis);I_BETA = tunableSurface(“Ibeta”, -0.05, SG, alphabetaBasis);ST0.setBlockParam (“我φ”, I_PHI);ST0.setBlockParam (“我α”, I_ALPHA);ST0.setBlockParam (“我β”, I_BETA);

各ゲ▪▪ン曲面は,ベ▪▪スラ▪▪ン設計によって示された固定値に初期化された点に注意してください。一般に,ゼロやランダムの初期点から開始することは推奨されません。これは,問題の難度によって関連性の低い局所的最小値に留まってしまう可能性が高くなるためです。代わりに,より効果的な方法として,ゲインの固定(スケジュールされない)セットを設計点の完全なセット(または関連するサブセット)に対して調整することをお勧めします。そのような“ロバスト設計”では,通常ゲescン曲面調整の良好な開始点を得ることができます。

これで,systuneを使用して6のゲン曲面を3の調整目標に対して調整できます。

ST = systune(ST0,[R1 R2 R3]);
最终:软= 1.03,硬= -Inf,迭代= 40

最終目的値は1に近いので,調整目標は実質的に満たされます。閉ルプ角度応答をプロットしてベスラン設計と比較します。

T = getIOTransfer(ST,“需求”, {“Phi_deg”“Alpha_deg”“Beta_deg”});步骤(T0, T, 6)传说(“基线”“调”“位置”“东南”

この結果は,ロール角と横滑り角の応答における振動が少なく,相互干渉の量が削減されたベースラインと同様になります。viewSurfを使用して調整後のゲ@ @ン曲面を検査します。

TV = getTunedValue(ST);clf注意:setBlockValue用TV中的调谐系数更新每个增益曲面subplot(3,2,1) viewSurf(setBlockValue(P_PHI,TV)) subplot(3,2,3) viewSurf(setBlockValue(P_ALPHA,TV)) subplot(3,2,5) viewSurf(setBlockValue(P_BETA,TV)) subplot(3,2,2) viewSurf(setBlockValue(I_PHI,TV)) subplot(3,2,4) viewSurf(setBlockValue(I_ALPHA,TV)) subplot(3,2,6) viewSurf(setBlockValue(I_BETA,TV))

検証

この設計をさらに詳しく検証するには,調整後のゲイン曲面を仿万博1manbetx真软件モデルにプッシュします。

writeBlockValue (ST)

3つのルックアップテーブルブロックφ“我”,“我α”,“我β”については,writeBlockValueがテーブルブレークポイントでゲイン曲面をサンプリングして,モデルワークスペースにあるテーブルデータを更新します。MATLAB函数ブロックφ“P”,“Pα”,“P贝塔”については,writeBlockValueがゲ转换器ン曲面方程式のmatlabコ转换器ドを生成します。たとえば,“P phi”ブロックのコ,ドは次のようになります。

万博1manbetxMATLAB仿真软件编码器はこのコードを効率的な組み込みCコードに自動的に変換します。ルックアップテーブルとMATLAB函数ブロックのどちらを使用するかはアプリケーションによって異なります。MATLABFunction のオプションでは、ゲインを alpha と beta の関数として確実に滑らかに変化させる (ブレークポイントでのねじれをなくす) ことが可能です。さらに、格納が必要なのはゲイン曲面の多項式曲面の係数だけなので、メモリ効率も向上します。一方で、特定の (alpha,beta) 点でゲインを評価する場合は、ルックアップ テーブルを使用するよりも多くの操作が必要となることがあります。また、ゲインをさらに調整する場合もルックアップ テーブルの方が簡単です。

ゲインを仿万博1manbetx真软件にプッシュすると自動操縦の調整が完了し,着陸アプローチ時の動作をシミュレートすることができます。

性能は十分ですが,線形応答から軸間に相互干渉が多く見られることがわかり,(α,β)の範囲の隅の点において安定余裕のターゲットを完全には達成できていません。φ,α,βの3つの測定値すべてを組み合わせて曲面偏向角を計算するMIMOアーキテクチャを使用する利点について検討する余地があります。このシリ、ズのパ、ト4 (Hl-20の自動操縦の姿勢制御- mimo設計)では,この点にいて詳しく見ることにします。

参考文献

[1] P. Gahinet和P. Apkarian,“增益调度控制系统的自动调优”,在Proc.IEEE会议决策与控制,2013年12月。

参考

関連するトピック