このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では、系统
を使用して、3.ループ自動操縦向けの滑らかなゲイン スケジュールを生成します。
この例では,機体のピッチ軸ダイナミクスの3自由度のモデルを使用します。状態には,地球座標、機体座標,ピッチ角度,ピッチレートがあります。次の図では,慣性座標系および機体座標系,飛行経路の角度、入射角、ピッチ角の関係をまとめています。
飛行経路の角度を制御するために,従来の3ループ自動操縦構造を使用します。この自動操縦は,法線加速度(に沿った加速度) の適切なバーストを加えることで飛行経路を調整します。この法線加速度は、昇降舵の偏向角の調整によりピッチングを引き起こし,上昇量を変化させることで生成されます。自動操縦は,ピッチレートループで比例-積分 ((圆周率)制御を使用し、ループおよびループで比例制御を使用します。閉ループ システム (機体および自動操縦) は、金宝app模拟でモデル化されます。
open_system (“rct_airframeGS”)
機体のダイナミクスは非線形であり,空力は速度に、モーメントは入射角に依存します。飛行エンベロープ全体で適切な性能を得るには,自動操縦ゲインは,プラントダイナミクスでの変更を補正するためにおよびの関数として調整されなければなりません。この調整プロセスは”ゲインスケジューリング”と呼ばれ,はスケジューリング変数と呼ばれます。金宝app仿真软件モデルでは,ゲインスケジュールはおよびの測定によって決定されるルックアップ テーブルとして実装されています。
ゲイン スケジューリングは非線形プラントまたは時変プラントの制御のための線形手法の 1.つです。考え方は、さまざまな操作条件においてプラントの線形近似を計算し、各操作条件においてコントローラー ゲインを調整して、操作中に操作条件の関数としてゲインを入れ替える、ということです。従来のゲイン スケジューリングには、次の主要な手順が 3.つあります。
各操作条件でのプラントの平衡化と線形化
各操作条件での線形ダイナミクスのコントローラーゲインの調整
操作条件間の滑らかな遷移を行うためのゲイン値の調整
この例では、で自動操縦ゲインを1次多項式としてパラメーター化し,飛行エンベロープ全体の多項式係数を直接調整することで,手順2と3を組み合わせます。この方法により手順3がなくなり,ゲインの変動はおよびの関数として滑らかになることが保証されます。さらに、ゲイン スケジュール係数は系统
で自動的に調整できます。
入射角は -20 ~ 20 度の間で変動し、速度は 700~1400m/sの間で変動すると仮定します。重力を無視すると、機体のダイナミクスはにおいて対称です。したがって,の正の値のみを考察します。線形に等間隔なペアの 5.行 9列のグリッドを使用して、飛行エンベロープをカバーします。
nA=5;% alpha值的数量nV = 9;%V值的数目[alpha,V]=ndgrid(linspace(0,20,nA)*pi/180,linspace(7001400,nV));
各飛行条件に対して,平衡点における機体のダイナミクスを線形化します(法線加速度とピッチのモーメントが0)。そのためには,およびが定常値となる昇降舵の偏向角およびピッチレートを計算する必要があります。これを行うには,最初に機体モデルを別の仿金宝app真软件モデルに分離します。
mdl =“rct_机身装饰”; 开放式系统(mdl)
operspec
を使用して平衡化条件を指定し、芬多普
を使用しておよびの平衡値を計算して,結果の操作点で機体のダイナミクスを線形化します。詳細については,機体の平衡化と線形化を参照してください。45岁的以上の手順をの飛行条件について繰り返します。
各ペアに対する平衡化条件を計算します。
%fastRestartForLinearAnalysis(mdl,'on')对于ct=1:nA*nV alpha_ini = alpha(ct);% (rad)发生率v_ini=v(ct);%的速度(米/秒)%指定修剪条件opspec (ct) = operspec (mdl);% Xe、Ze:已知,不稳定opspec (ct) .States(1)。知道= (1,1);opspec (ct) .States(1)。稳态= (0,0);% u,w:已知,w稳定opspec(ct).States(3).Known=[11];opspec(ct).States(3).SteadyState=[01];% θ:已知,不稳定opspec(ct).状态(2).已知=1;opspec(ct).状态(2).稳定状态=0;% q:未知,稳定opspec(ct).状态(4).已知=0;opspec(ct).状态(4).稳定状态=1;结束opspec=重塑(opspec,[nA nV]);
与えられた仕様のモデルを平衡化します。
选项=findopOptions(“显示报告”,“关闭”); op=findop(mdl、opspec、选项);
平衡化条件でモデルを線形化します。
G =线性化(mdl, op);G.u =“三角洲”; G.y={“α”,“V”,“q”,“az”,“伽马”,“h”};G.SamplingGrid =结构(“α”α,“V”,V);
このプロセスにより,45の飛行条件で線形化されたプラント モデルの 5.行 9列の配列が生成されます。プラントのダイナミクスは飛行エンベロープ内で大きく変動します。
西格玛(G)标题(“机身动力学的变化”)
自動操縦には,およびの関数として "スケジュール" (調整) される 4.つのゲインがあります。実質的に,これは対応する4つのルックアップテーブルのそれぞれの88個の値を調整することになります。各テーブルのエントリを別々に調整するよりも,ゲインを,たとえば,およびに対して単純な多重線形の依存性をもつ曲面といった 2.次元のゲイン曲面としてパラメーター化します。
これにより、各ルックアップ テーブルについて変数の数が 88個から 4.個に減ります。可调表面
オブジェクトを使用して、各ゲイン曲面をパラメーター化します。次の点に注意してください。
调谐栅极
は "調整グリッド" (設計点) を指定。このグリッドは、線形化に使用されるグリッドと一致する必要がありますが、ルックアップ テーブルのブレークポイントと一致する必要はありません。
ShapeFcn
は、曲面パラメーター化 (、、および)の基底関数を指定。
各曲面は,= 10度および= 1050 m / s(中間の範囲の設計)の調整結果を使用して,定数ゲインに初期化されます。
TuningGrid =结构(“α”α,“V”,V);ShapeFcn=@(alpha,V)[alpha,V,alpha*V];Kp=可调表面(“Kp”,0.1,调整网格,ShapeFcn);Ki=可调表面(“基”2 TuningGrid ShapeFcn);Ka = tunableSurface (“咔”,0.001,调整网格,ShapeFcn);Kg=可调表面(“千克”,-1000,调整网格,ShapeFcn);
次にゲイン曲面の調整のために单反调谐器
インターフェイスを作成します。ブロック置換を使用して、非線形プラント モデルを調整グリッド上で線形化されたモデルで置き換えます。setBlockParam
を使用して、調整可能なゲイン曲面金伯利进程
、碘化钾
、灵魂
、公斤
を同名の 插值ブロックに関連付けます。
BlockSubs=struct(“姓名”,“rct_airframeGS /机身模型”,“价值”G);ST0 = slTuner (“rct_airframeGS”,{“Kp”,“基”,“咔”,“千克”}, BlockSubs);%登记关注点ST0.addPoint ({“az_ref”,“az”,“伽马参考”,“伽马”,“三角洲”})%参数化查找表块ST0.setBlockParam (“Kp”Kp,“基”吻,“咔”,Ka,“千克”公斤);
系统
は飛行エンベロープ全体のゲイン曲面係数を自動的に調整できます。调谐目标
オブジェクトを使用して,性能目的を指定します。
ループ: 1.秒の応答時間、2% 未満の定常偏差および 30% 未満のピーク偏差の設定点を追従します。
Req1 = TuningGoal。跟踪(“伽马参考”,“伽马”,1,0.02,1.3); 查看目标(要求1)
ループ: 低周波数で (加速度の要求の追従のため)、そして 10拉德/秒を超えた時点での (測定ノイズの影響を受けないようにするため) 良好な外乱の抑制を確保します。外乱はaz_ref
の位置で加えられます。
RejectionProfile = frd([0.02 0.02 1.2 1.2 0.1],[0 0.02 2 15 150]);Req2 = TuningGoal。获得(“az_ref”,“az”, RejectionProfile);viewGoal (Req2)
ループ: 最大 10拉德/秒の良好な外乱の抑制を確保します。外乱はプラント入力δ
で加えられます。
Req3=调整目标。增益(“三角洲”,“az”,600*tf([0.25 0],[0.25 1]);查看目标(要求3)
過渡状態: 発振のない過渡状態については 0.35の最小 阻尼比を確保します。
MinDamping = 0.35;Req4 = TuningGoal.Poles (0, MinDamping);
系统
を使用して、45の飛行条件すべてでこれらの性能要件が最もよく満たされるように、16のゲイン曲面係数を調整します。
ST = systune(ST0,[Req1 Req2 Req3 Req4]);
最终:软=1.13,硬=Inf,迭代=57
結合された目的の最終値は1に近く,すべての要件がほぼ満たされていることを示します。結果のゲイン曲面を可視化します。
%获得调谐增益曲面。TGS = getBlockParam (ST);%绘制增益面。clf子地块(2,2,1)viewSurf(TGS.Kp)标题(“Kp”) subplot(2,2,2) viewSurf(TGS.Ki) title(“基”) subplot(2,2,3) viewSurf(TGS.Ka) title(“咔”)子地块(2,2,4)viewSurf(TGS.Kg)标题(“千克”)
最初に,上記で考慮した45の飛行条件で調整された自動操縦を検証します。飛行経路の角度のステップ変化への応答および昇降舵の偏向でのステップ外乱への応答をプロットします。
clf子批次(2,1,1)步骤(getIOTransfer(ST,“伽马参考”,“伽马”),5)网格标题(“跟踪飞行轨迹角度的阶跃变化”)子批次(2,1,2)步骤(getIOTransfer(ST,“三角洲”,“az”), 3)网格标题(“对植物输入阶跃扰动的抑制”)
すべての飛行条件で満足のいく応答です。次に,非線形機体モデルに対して自動操縦を検証します。まずwriteBlockValue
を使用して調整結果を仿金宝app真软件モデルに適用します。これにより2つのPrelookupブロックで指定されたブレークポイントでゲイン曲面の公式が評価され,結果が対応する插值ブロックに書き込まれます。
writeBlockValue (ST)
飛行エンベロープの大きな部分を介して機体を導く操縦に対する自動操縦の性能をシミュレートします。次のコードは,金宝app仿真软件モデルで[実行]ボタンを押して,范围ブロックでの応答を検査することと同じです。
%指定初始条件。h_ini=1000;alpha_ini=0;v_ini=700;%模拟模型。SimOut=sim(“rct_airframeGS”,“ReturnWorkspaceOutputs”,“开”);%提取仿真数据。SimData =得到(SimOut,“西格苏”); Sim_gamma=getElement(SimData,“伽马”); Sim_alpha=getElement(SimData,“α”); Sim_V=getElement(SimData,“V”);Sim_delta = getElement (SimData,“三角洲”);Sim_h = getElement (SimData,“h”); Sim_az=getElement(SimData,“az”); t=模拟伽马值时间;%绘制主要飞行变量。clf次要情节(2,1,1)情节(t, Sim_gamma.Values.Data (: 1),“r——”t Sim_gamma.Values.Data (:, 2),“b”)网格传奇(“吩咐”,“实际”,“位置”,‘东南’)标题(“飞行路径角”) subplot(2,1,2) plot(t,Sim_delta.Values.Data) grid title(“升降舵偏转\以度为单位的增量”)
子地块(2,1,1)图(t,模拟α值。数据)网格标题('入射角\α,单位为度') subplot(2,1,2) plot(t,Sim_V.Values.Data) grid title('速度V (m/s) ')
subplot(2,1,1) plot(t,Sim_h.Values.Data) grid title(“高度h,单位米”)子地块(2,1,2)图(t、模拟值、数据)网格标题('法向加速度a_z in g's')
飛行経路角プロファイルの追従は,操縦全体で引き続き良好です。入射角および速度の変動は、ここで考慮される飛行エンベロープの大部分をカバーすることに注意してください (については-20,20度,については [700,1400])。自動操縦は、3000米のノミナル高度で調整されたものですが、1,000 から 10000米への高度変更に対応して良好に動作します。
非線形シミュレーションの結果により,ゲインスケジュール自動操縦は飛行エンベロープ全体で常にすぐれた性能を発揮することが確認されます。”“ゲイン曲面調整手順によって,スケジューリング変数に対するゲイン依存関係についての簡単で明示的な式が得られます。ルックアップテーブルを使用せずに,これらの式をさらにメモリ効率が高いハードウェア実装に直接使用できます。