Main Content

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

hl -20の自动の制御 -mimo设计

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

背景

この例ではNASA HL-20 Lifting Body Airframe(Aerospace Blockset)Hl-20モデルモデルモデル使用使用します详细については,シリーズシリーズののの1(1HL-20机体の化化化化)を参照て。パートパートパートパートパートパートパートパートパートパートパートパートパートな自动ななななクラシックアーキテクチャアーキテクチャアーキテクチャアーキテクチャのの内侧ループループを闭じて外侧ののループをを调整するHL-20 の自動操縦における角速度の制御およびHL-20 の自動操縦の姿勢制御 - SISO 設計を参照してください。この例では、外側のループを処理するために MIMO アーキテクチャに切り替えることの利点について考えます。

このアーキテクチャでは、pitch、alpha、beta 用の 3 つの PI ループを、pitch、alpha、beta の測定値を組み合わせて内側のループの設定点 p_demand、q_demand、r_demand を計算する 3 入力 3 出力の PI コントローラーで置き換えます。直感的には、このアーキテクチャの方が軸間の相互干渉を正しく抑えることができるように思えます。P と I のゲインは alpha と beta の関数としてスケジュールされる 3 行 3 列の行列であることに注意してください。

まず、モデルを読み込んでCTYPE3にに,,ブロックブロックmimoバリアントバリアントバリアント选択し。。。パートパートパートのののの手顺をを再再再実行してて内侧ののループをますますますますますますますますますますますます金宝app闭じます闭じ闭じ设计设计设计设计设计设计设计设计设计设计设计ののこのこのこの部分部分部分にはははためのSltunerインターフェイスST0が作成れてされます。

load_system('csthl20_control')CTYPE= 3;%MIMO架构HL20Recappart2 ST0
“ CSTHL20_CONTROL”的SLTUNER调谐接口:无调节块。使用addBlock命令添加新块。9分析点:-----------------------------------点1:信号“ da; de; dr”,位于'输出端口1'CSTHL20_CONTROL/飞行控制系统/控制器点2:信号“ PQR”,位于CSTHL20_CONTROL/HL20 AIRFRAME点3:CSTHL20_Control/alpha_deg点4:'输出端口4:'输出端口1:'输出端口1:'输出端口1:'输出端口1:'输出端口1:'输出端口1:'输出端口1:'输出端口1:'输出端口1:'输出端口1:CSTHL20_CONTROL/飞行控制系统/beta_deg点5:CSTHL20_CONTROL/飞行控制系统/PHI_DEG点6:“输出端口1:csthl20_control/flight control/contrance System/Controller/MIMO/需求点7:信号” 7:信号”:p_demand”,位于CSTHL20_CONTROL/飞行控制系统/控制器/mimo/frolf1点8的'输出端口1'点8:信号“ q_demand”,位于CSTHL20_Control/flight contrance System/Controller/Controller/Mimo/Mimo/Mimo/Mimo/Mimo/Mimo/Mimo/Mimo/Mimo/Mimo/Mimo/Mimo/mimo/mimo/mimo/mimo/mimo/mimo/mimo/contress'滚动2点9:信号“ r_demand”,位于CSTHL20_CONTROL/飞行控制系统/控制器/MIMO/frolf3的CSTHL20_CONTROL/飞行控制系统的'输出端口1'中。使用addopening命令添加新的永久性开口。带有点符号get/set访问的属性:[] operient点:[](将使用模型初始条件。)blockSubSubStitutions:[3x1 struct]选项:[1x1 linearize.sltuneroptions] ts:0

外側ループの調整の設定

SISO 設計 (HL-20 の自動操縦の姿勢制御 - SISO 設計)の場合と同様に、最初の手順ではそれぞれの (alpha,beta) 条件で外側のループによって認識される "プラント" の線形化モデルを取得します。内側のループのゲイン Kp、Kq、Kr が (alpha,beta) によって変化するという事実を考慮するため、"MIMO/Product" ブロックをその線形の等価物である次の対角ゲイン行列に置き換えます。

$$\left( \begin{array}{ccc} Kp(\alpha,\beta) & 0 & 0 \\ 0 & Kq(\alpha,\beta) & 0 \\
0 & 0 & Kr(\alpha,\beta) \end{array} \right) . $$

blk ='csthl20_control/Flight Control System/Controller/MIMO/Product';Subs = [zeros(3) append(ss(Kp),ss(Kq),ss(Kr))]; BlockSub4 = struct('姓名',,,,Blk,'价值',,,,Subs); ST0.BlockSubstitutions = [ST0.BlockSubstitutions ; BlockSub4];

ゲインスケジュール“ p”および“ i”がが対角行列诊断([0.05,0.05,-0.05])に初期れ。これらの初期角度応答をプロットし。

t0 = getiotransfer(st0,'Demand',,,,{'phi_deg',,,,'Alpha_deg',,,,'beta_deg'});步骤(T0,6)

调整目标

米姆ゲイン スケジュールを調整するには、次の 3 つの調整目標を使用します。

  • 目的(応答时间)をを指定て周波数でのデカップデカップリングリングを最大化化化化するするするするするするするするする

s = tf(');R1 = TuningGoal.Sensitivity({'phi_deg',,,,'Alpha_deg',,,,'beta_deg'},s); R1.Focus = [1e-2 1]; R1.LoopScaling ='off';ViewGoal(R1)

  • 角度要求から角度応答への閉ループ伝達に適用する "Gain" 制約。適切なロールオフを課してオーバーシュートを制限するゲイン プロファイルが選択されます (これは交差近傍の隆起に関係があります)。

maxgain = 1.2 *(10/(s+10))^2;% max gain profiler2 = tuninggoal.gain('需要',,,,{'phi_deg',,,,'Alpha_deg',,,,'beta_deg'},Maxgain);ViewGoal(R2)

  • 少なくとも 7 dB のゲイン余裕と 45 度の位相余裕 (ディスク余裕の意味で) を要求する "Margins" 目標。

R3 = TuningGoal.Margins('da; de; dr',7,45);

ゲイン スケジュール調整

MIMO PI コントローラーのゲイン スケジュールは MIMO アーキテクチャ内の "P" ブロックと "I" ブロックにより指定されます。これらのブロックが 3 行 3 列の行列を出力し、次の MIMO 伝達関数を実装することを思い出してください。

$$ \left( \begin{array}{c} p_{\rm demand} \\ q_{\rm demand} \\ r_{\rm demand} \end{array} \right) =
\frac{10}{s+10} (P + I / s)
\left( \begin{array}{c} \phi_{\rm deg} \\ \alpha_{\rm deg} \\ \beta_{\rm deg} \end{array} \right). $$

説明のため、MATLAB Function ブロックを使って比例ゲイン スケジュールを実装し、Matrix Interpolation ブロックを使って積分ゲイン スケジュールを実装することにします。Matrix Interpolation ブロックは、"Simulink Extras" ライブラリに格納された、各エントリが行列であるルックアップ テーブルです。

pおよびiのスケジュール调整するに,,Sltunerインターフェイスで対応するブロックを調整可能としてマークします。

TunedBlocks = {'mimo/p',,,,'MIMO/I'};ST0.Addblock(TunedBlocks)

Alpha beta betaののの式曲面としてとして化化しますます。。再び再び比例比例比例ゲインゲインゲインにににに次曲面次曲面次曲面次曲面を使用使用しし,积分

(Alpha,beta)设计点的%网格alpha_vec = -10:5:25;%alpha范围beta_vec = -10:5:10;%beta范围[alpha,beta] = ndgrid(alpha_vec,beta_vec);sg = struct('alpha',α,'beta',beta);%比例增益矩阵alphabetaBasis = polyBasis('典范',2,2);p0 = diag([0.05 0.05 -0.05]);初始(常数)值%PS = tunableSurface('P',P0,SG,Alphabetabasis);st0.setblockparam('P',ps);%积分增益矩阵alphabasis = @(alpha)alpha;betabasis = @(beta)abs(beta);alphabetabasis = ndbasis(bphabasis,betabasis);i0 = diag([0.05 0.05 -0.05]);is = tunablesUrface('I',,,,I0, SG, alphabetaBasis); ST0.setBlockParam('I',是);

最后にSystune6つの,,,つのゲイン曲面ををつの目标に対して调整し。

ST = Systune(ST0,[R1 R2 R3]);
最终:软= 1.13,硬= -inf,迭代= 102

目的の値,调整目标がほぼ満たされるれることますますます(调整目标ははははそのそのそのそのそのそのその値値値値値値値がががががががががががががががががががががががががががが未満未満未満未満未満未満。

t = getiotransfer(st,'Demand',,,,{'phi_deg',,,,'Alpha_deg',,,,'beta_deg'});步骤(t0,t,6)传奇(“基线”,,,,“调谐”,,,,'Location',,,,'SouthEast'

siso siso设计设计比べオーバーと相互が大幅に削减さされていることをを示し示してて

検证

この設計をさらに詳しく検証するには、調整後のゲイン曲面を Simulink モデルにプッシュします。

WriteBlockValue(ST)

i'i“ i”についてについてについてテーブルのブレークブレークポイントゲイン曲面曲面をサンプリングしし,,モデルモデルモデルワークワークスペースにににあるあるあるテーブルテーブルテーブルテーブルデータデータデータをををををを更新更新更新しししししししししmatlab函数を生成。コードを表示するブロックをダブルクリックし。

simul金宝appink simulinkにするとmimoアーキテクチャアーキテクチャ调整が完了し,着陆アプローチ时时の动作ををことができことができことができ

これらの応答は、操縦全体の要求が緩いために SISO 設計のものとあまり変わりません (HL-20 の自動操縦の姿勢制御 - SISO 設計)。mimo设计のは,の操縦のがより顕着にます。

参考

関連するトピック