このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,金宝app仿真软件控制设计を使用して機体のピッチレートと垂直加速度を制御する2ループ自動操縦を調整する方法を説明します。
機体のダイナミクスと自動操縦は仿金宝app真软件でモデル化されます。
open_system (“rct_airframe1”)
自動操縦は2つのカスケード式ループで構成されています。操縦かんコマンドazref
への応答で,内側のループはピッチレート问を制御し,外側のループは垂直加速度阿兹
を制御します。このアーキテクチャでは,調整可能な要素にπコントローラーゲイン(“az控制”ブロック)とピッチレートゲイン(“q”ブロック)が含まれます。自動操縦は,最小限のオーバーシュートでステップコマンドazref
に約1秒で応答するように調整されなければなりません。この例では0の入射と984 m / sの速度に対応する1つの飛行条件に対して自動操縦ゲインを調整します。
機体のダイナミクスを解析するには,とで機体を平衡化します。平衡化条件は0の法線加速度とピッチのモーメント(およびの定常状態)に相当します。findop
を使用して対応する閉ループ操作条件を計算します。“三角洲削减”入力端子を追加して,力とモーメントの望ましい平衡状態が生成されるよう,findop
でフィンの偏向角を調整できるようにしたことに注意してください。
opspec = operspec (“rct_airframe1”);指定纵倾条件% Xe、Ze:已知,不稳定opspec.States(1)。知道= (1,1);opspec.States(1)。稳态= (0,0);% u,w:已知,w稳定opspec.States(3)。已知= [1 1];opspec.States(3)。SteadyState = [0 1];% θ:已知,不稳定opspec.States(2)。= 1;opspec.States(2)。稳态= 0;% q:未知,稳定opspec.States(4)。知道= 0;opspec.States(4)。稳态= 1;积分器状态未知,不稳定opspec.States(5)。稳态= 0;opspec.States(6)。稳态= 0;op = findop (“rct_airframe1”, opspec);
工作点搜索报告:---------------------------------模型rct_airframe1的工作点搜索报告。(t=0时评估的时变分量)成功满足工作点规范。States: ---------- (1.) rct_airframe1/机身模型/空气动力学和运动方程/运动方程(体轴)/位置x: 0 dx: 984 x: -3.05e+03 dx: 0 (2.) rct_airframe1/机身模型/空气动力学和运动方程/运动方程(体轴)/Theta x: 0 dx:-0.00972 (3) rct_airframe1 /机身模型/空气动力学和运动方程和运动方程(轴)/ U, w x: 984 dx: 22.7 x: 0 dx: -1.44 e-11 (0) (4) rct_airframe1 /机身模型/空气动力学和运动方程和运动方程(轴)/ q x: -0.00972 dx: 1.15 e-16 (0) (5) rct_airframe1 /集成商x: 0.000708 dx:-0.00972 (6.) rct_airframe1/az Control/Integrator/Continuous/Integrator x: 0 dx: 0.000242 Inputs: ---------- (1.) rct_airframe1/delta trim u: 0.000708 [-Inf Inf] Outputs: None ---------- .输出说明
計算された平衡化条件人事处
に対し“机身模型”ブロックを線形化し,フィンの偏向角δ
から阿兹
および问
へのゲインをプロットします。
G =线性化(“rct_airframe1”,“rct_airframe1 /机身模型”, op);G.InputName =“δ”;G.OutputName = {“阿兹”,“问”};bodemag (G)、网格
機体モデルには不安定な極があることに注意してください。
极(G)
Ans = -0.0320 -0.0255 0.1253 -29.4685
関数looptune
を使用すると,積分動作,適切な安定余裕,目的の帯域幅などの基本要件に従ってマルチループ制御システムを自動的に調整できます。looptune
を自動操縦モデルに適用するには,slTuner
インターフェイスのインスタンスを作成し,金宝app仿真软件ブロック“az控制”および“q”を調整可能として指定します。また,平衡化条件人事处
を指定して機体のダイナミクスを正しく線形化します。
ST0 = slTuner (“rct_airframe1”,{“阿兹控制”,“问收获”}, op);
基準信号,制御信号および測定信号を解析と調整の対象のポイントとしてマークします。
addPoint (ST0, {“阿兹ref”,“三角洲鳍”,“阿兹”,“问”});
最後に1秒の応答時間要件を満たすように制御システムパラメーターを調整します。周波数領域では,これはプラント入力“三角洲鳍”における開ループ応答でのゲイン交差周波数wc
= 5 rad / sとほぼ一致します。
wc = 5;控制=“三角洲鳍”;测量= {“阿兹”,“问”};[圣,gam,信息]= looptune (ST0、控制测量、wc);
最终:峰值增益= 1.01,迭代次数= 72
要件は正規化され1に近い最終的な値はすべての要件が満たされていることを意味します。これを確認するには,設計をグラフで検証します。
图(“位置”[100100560714]) loopview(圣信息)
1つ目のプロットでは開ループ応答に積分動作と目的のゲイン交差周波数があることが確認でき,2つ目のプロットでは米姆安定余裕が満たされている(青い曲線が黄色の範囲を下回る状態)ことがわかります。次に,ステップコマンドazref
から垂直加速度阿兹
への応答をチェックします。
T = getIOTransfer(圣“阿兹ref”,“阿兹”);图步骤(T, 5)
ループ内に積分器が存在しても,加速度阿兹
はazref
を追従しません。これは,フィードバックループが2つの変数阿兹
および问
を処理し,そのどちらがazref
を追従するかを指定していないためです。
この問題を修正するには,阿兹
は1秒の応答時間でステップコマンドazref
に追従するという明示的な要件を追加します。また,ゲイン交差要件を間隔[3,12]に緩和して,調整器が適切なゲイン交差周波数を検出できるようにします。
TrackReq = TuningGoal。跟踪(“阿兹ref”,“阿兹”1);圣= looptune (ST0、控制测量,[3,12],TrackReq);
最终:峰值增益= 1.23,迭代= 54
これで,azref
から阿兹
へのステップ応答は適切になります。
Tr1 = getIOTransfer(圣,“阿兹ref”,“阿兹”);步骤(Tr1 5)网格
また,プラント入力に入る外乱からの応答を確認して外乱の抑制の特性をチェックします。
Td1 = getIOTransfer(圣,“三角洲鳍”,“阿兹”);bodemag (Td1)网格
步骤(Td1、5)电网标题(“抗干扰”)
showBlockValue
を使用してπコントローラーと内側のループゲインの調整後の値を確認します。
showBlockValue (ST)
名称:AnalysisPoints_ = D = u1 u2 u3 u4 y1 1 0 0 y2 0 1 0 y3 0 0 y4 0 0 0 1----------------------------------- az_Control = 1 + Ki *——年代Kp = 0.00166, Ki = 0.0017名称:az_Control连续时间比例积分控制器并联形式。----------------------------------- q_Gain = D = 1.985 u1 y1名称:q_Gain静态增益。
この設計で十分である場合は,writeBlockValue
を使用して調整後の値を仿金宝app真软件モデルに適用し,調整後のコントローラーを仿真软件でシミュレートします。
writeBlockValue (ST)
通常,自動操縦にはカスケード式ループが使用されます。しかし,阿兹
と问
の両方を使用してアクチュエータコマンド三角洲鳍
を生成する単一のMIMOコントローラーは,2ループアーキテクチャとどのような違いがあるのでしょうか。systune
またはlooptune
を使用すると,新しい制御アーキテクチャを簡単に試すことができます。ここでは趣向を変えて,systune
を使用して次のMIMOアーキテクチャを調整します。
open_system (“rct_airframe2”)
前と同様に,との平衡化条件を計算します。
opspec = operspec (“rct_airframe2”);指定纵倾条件% Xe、Ze:已知,不稳定opspec.States(1)。知道= (1,1);opspec.States(1)。稳态= (0,0);% u,w:已知,w稳定opspec.States(3)。已知= [1 1];opspec.States(3)。SteadyState = [0 1];% θ:已知,不稳定opspec.States(2)。= 1;opspec.States(2)。稳态= 0;% q:未知,稳定opspec.States(4)。知道= 0;opspec.States(4)。稳态= 1;控制器状态未知,不稳定opspec.States(5)。稳态= (0,0);op = findop (“rct_airframe2”, opspec);
工作点搜索报告:---------------------------------模型rct_airframe2的工作点搜索报告。(t=0时评估的时变分量)成功满足工作点规范。States: ---------- (1.) rct_airframe2/机身模型/空气动力学和运动方程/运动方程(体轴)/位置x: 0 dx: 984 x: -3.05e+03 dx: 0 (2.) rct_airframe2/机身模型/空气动力学和运动方程/运动方程(体轴)/Theta x: 0 dx:-0.00972 (3) rct_airframe2 /机身模型/空气动力学和运动方程和运动方程(轴)/ U, w x: 984 dx: 22.7 x: 0 dx: 2.46 e-11 (0) (4) rct_airframe2 /机身模型/空气动力学和运动方程和运动方程(轴)/ q x: -0.00972 dx: -1.72 e-16 (0) (5) rct_airframe2 /分布式天线控制器x: 0.000654 dx: -0.009 x:3.76 e-20 dx: 0.0303输入 : ---------- ( 1) rct_airframe2 /δ修剪u: 0.000436(负无穷到正无穷)输出:没有 ----------
looptune
と同様に,slTuner
インターフェイスを使用して仿金宝app真软件モデルを調整用に構成します。対象の信号が仿金宝app真软件モデルで既に線形解析ポイントとしてマークされていることに注意してください。
ST0 = slTuner (“rct_airframe2”,“那控制器”, op);
e
から三角洲鳍
へのゼロの直達を使用する2次MIMOコントローラーを試します。これを行うには,目的のコントローラーパラメーター化を作成し,setBlockParam
を使用して”米姆控制器”ブロックに関連付けます。
C0 =可调参数(“C”、2、1、2);%二阶控制器C0.D.Value (1) = 0;将D(1)修正为零C0.D.Free (1) = false;setBlockParam (ST0“那控制器”C0)
次に,調整要件を作成します。ここでは,以下の4つの要件を使用します。
追従:阿兹
はazref
コマンドに約1秒で応答する
帯域幅とロールオフ:三角洲鳍
のループゲインは-20 dB /十年の勾配で25 rad / sの後にロールオフする
安定余裕:三角洲鳍
の余裕は7 dBおよび45度を超える
外乱の抑制:入力外乱の減衰係数は1 rad / sで40 dBとなり,0.001 rad / sで100分贝まで増える
%跟踪Req1 = TuningGoal。跟踪(“阿兹ref”,“阿兹”1);%带宽和滚动Req2 = TuningGoal。MaxLoopGain (“三角洲鳍”[1 0],特遣部队(25日));%的利润Req3 = TuningGoal。利润(“三角洲鳍”7、45);%抗干扰性%使用FRD模型用几个点勾勒出所需的衰减曲线频率= [0 0.001 1];MinAtt = [100 100 40];在dB %Req4 = TuningGoal。拒绝(“三角洲鳍”、朋友(db2mag (MinAtt)、频率));Req4。焦点= [0 1];
これで,systune
を使用して,これらの要件に従ってコントローラーパラメーターを調整できます。
所有请求= [Req1,Req2,Req3 Req4];选择= systuneOptions (“RandomStart”3);rng(0) [ST,fSoft] = systune(ST0,AllReqs,Opt);
Final: Soft = 1.42, Hard = -Inf, Iterations = 47 Final: Soft = 1.42, Hard = -Inf, Iterations = 62 Final: Soft = 1.14, Hard = -Inf, Iterations = 84 Final: Soft = 1.14, Hard = -Inf, Iterations = 102
最適な設計では全体的な目的値が1に近くなり,4つのすべての要件がほぼ満たされることを示します。viewGoal
を使用して,最適な設計の各要件を検査します。
图(“位置”[100100987474]) viewGoal (AllReqs圣)
閉ループ応答を計算し,2ループ設計と比較します。
T = getIOTransfer (ST, {“阿兹ref”,“三角洲鳍”},“阿兹”);图步骤(Tr1,“b”T (1),“r”5)标题(“跟踪”)传说(“级联”,2自由度的)
步骤(Td1、“b”T (2),“r”5)标题(“抗干扰”)传说(“级联”,2自由度的)
追従性能は同様ですが,外乱の抑制プロパティについては2番目の設計の方が優れています。