最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英语でご覧になれます。
この例では,slTuner
とsystune
を使用して前方向の自动操縦の标准的な构成を调整する方法を说明します。航空机モデルの提供については研究所Superieur的DE L'AERONAUTIQUE和de l'协商のD. Alazard教授にご协力いただき,例の作成についてはのONERA皮埃尔Apkarian教授にご协力いただきました。
マッハ0.7で5000フィートの高さを飞行する超音速旅客机の前方向の自动操縦を図1に示します。自动操縦の主な目的は,パイロットによって発行される垂直加速度コマンドに従うことです。フィードバック构造は,ピッチレートを制御する内侧のループと垂直加速度を制御する外侧のループで构成されています。自动操縦には,フィードフォワードコンポーネントと,ステップコマンドへの望ましい応答を指定する参照モデルも含まれます。最后に,次の2次ロールオフフィルター
を使用してノイズを减少させ,モデル化されていないダイナミクスに対する予防策として制御帯域幅を制限します。调整可能なコンポーネントはオレンジ色で强调表示されています。
図1:前方向の自动操縦の构成。
航空机モデルは5状态モデルで,状态変数は,空力速度(米/秒),上升角度(RAD),迎角(RAD),ピッチレート(弧度/秒),高度(M)です。升降舵の偏向角(弧度)は,垂直负荷系数を制御するために使用されます。开ループダイナミクスには,周波数と减衰比が= 1.7(弧度/秒)および= 0.33の発振,フゴイドモード= 0.64(弧度/秒)と= 0.06,および低速高度モード= -0.0026が含まれます。
加载ConcordeDataG博德(G,{1E-3,1e2}),网格标题(“飞机模型”)
の原点の0に注目してください。この0により,ゼロの定常偏差は达成できず,代わりに加速度コマンドへの过渡応答に焦点を当てなければなりません。加速度コマンドは一般的に过渡的であるため,定常状态の动作は问题にはなりません。この原点の0は纯粋な积分动作も除外するため,= 0.001として疑似积分器を使用します。
制御システムが的金宝appSimulinkでモデル化されている场合は,slTuner
インターフェイスを使用して调整タスクをすばやく设定できます。自动操縦のS金宝appimulink的モデルを开きます。
open_system('rct_concorde')
金宝appSimulink的モデルの调整ブロック(オレンジで强调表示)をリストして,slTuner
インターフェイスを构成します。これにより,モデル内のすべての线形解析ポイントが解析および调整対象のポイントとして自动的に选択されます。
ST0 = slTuner('rct_concorde'{“文”,“KP的,'KQ','Kf个','滚下'});
また,各调整ブロックがパラメーター化され,金宝appSimulink的モデルのそれらの値に基づいてブロックパラメーターが初期化されます。この例では,4つのゲイン文,KP,KQ,KF
が0に初期化されます。既定では,ロールオフフィルターは泛用2次伝达关数としてパラメーター化されます。次のようにパラメーター化するには,
実数パラメーターを作成し,上记の伝达关数を作成して滚下
ブロックに关连付けます。
WN =雷阿尔卑('WN',3);%固有频率ζ电=雷阿尔卑(“泽塔”,0.8);%阻尼往复= TF(WN ^ 2,[1 2 *ζ电* WN WN ^ 2]);%参数传递函数setBlockParam(ST0,'滚下',FRO)%使用FRO来参数“滚降”块
自动操縦は次の3つの主要な设计要件を満たすように调整されなければなりません。
1。设定点の追従:コマンドへの応答が,次の参照モデルの応答とよく一致する。
この参照モデルは,2秒の设定时间で适切に减衰される応答を指定します。
2。高周波数のロールオフ:ノイズ信号からへの闭ループ応答は,少なくとも-40 dB /十倍频の勾配で8弧度/秒を超えた后にロールオフする。
3。安定余裕:プラント入力の安定余裕は少なくとも7分贝および45度にする。
设定点の追従では,コマンドから追従误差への闭ループ伝达のゲインを周波数帯域[0.05,5]弧度/秒で小さくする必要があります(プラントはS = 0でゼロであるため,定常偏差をゼロにできません)。いくつかの周波数点を使用して,最大追従误差を周波数の关数としてスケッチし,それを使用してからへのゲインを制限します。
Freqs = [0.005 0.05 5 50]。增益= [5 0.05 0.05 5];REQ1 = TuningGoal.Gain(“新西兰学院”,'E',FRD(收益,Freqs));Req1.Name =“最大的跟踪误差”;
TuningGoal.Gain
コンストラクターは,最大误差のスケッチを滑らかな重み付け关数に自动的に変换します。viewGoal
を使用して目的の误差プロファイルをグラフで确认します。
viewGoal(REQ1)
同じ过程を缲り返してノイズ入力からへの高周波ゲインを制限し,8〜800弧度/秒の周波数帯域で-40 dB /十倍频の勾配を适用します。
Freqs = [0.8 8 800];增益= [10 1 1E-4];REQ2 = TuningGoal.Gain('N','delta_m',FRD(收益,Freqs));Req2.Name =“滚降要求”;viewGoal(REQ2)
最后に,プラント入力を开ループ解析のサイトとして登录し,TuningGoal.Margins
を使用して安定余裕要件を取得します。
addPoint(ST0,'delta_m')REQ3 = TuningGoal.Margins('delta_m',7,45);
systune
を使用して自动操縦パラメーターを调整する准备ができました。このコマンドは,调整されていない构成ST0
と3つの设计要件を受け取り,ST0
の调整バージョンST
を返します。最终的な値が1未満の场合,すべての要件が満たされます。
[ST,fSoft] = systune(ST0,[REQ1 REQ2 REQ3]);
决赛:软= 0.965,硬= -Inf,迭代次数= 97
showTunable
を使用して调整ブロックの値を确认します。
showTunable(ST)
块1:rct_concorde / KI = d = U1 Y1 -0.02996名称:文中的静态增益。-----------------------------------块2:rct_concorde / KP = d = U1 Y1 -0.009684名称:KP静态增益。-----------------------------------块3:rct_concorde / KQ = d = U1 Y1 -0.2863名称:KQ静态增益。-----------------------------------块4:rct_concorde / KF = d = U1 Y1 -0.02267名称:KF静态增益。----------------------------------- WN = 4.82 -----------------------------------ζ电= 0.513
の调整后の値を取得するには,getBlockValue
を使用してST
の调整后のパラメーター値に対してFRO
を评価します。
往复= getBlockValue(ST,'滚下');TF(FRO)
ANS = 23.19 ---------------------秒2 + 4.937 S + 23.19连续时间的传递函数。
最后に,viewGoal
を使用して,すべての要件が満たされていることをグラフで确认します。
数字('位置',[100100550710])viewGoal([REQ1 REQ2 REQ3],ST)
ここでは调整した自动操縦が设计要件を満たしているか确认します。最初に,のステップ応答を,参照モデルのステップ応答と比较します。再度getIOTransfer
を使用して,新西兰学院
から新西兰
への调整后の闭ループ伝达を计算します。
格列夫= TF(1.7 ^ 2,[1 2 * 0.7 * 1.7 1.7 ^ 2]);%参考模型T = getIOTransfer(ST,“新西兰学院”,'NZ');%的转移NZC - >的Nz图中,步骤(T,'B',格列夫,'b--',6),网格,ylabel('N_z'),图例(“实际的响应”,“参考模型”)
偏向角およびフィードフォワードパスとフィードバックパスそれぞれの寄与もプロットします。
T = getIOTransfer(ST,“新西兰学院”,'delta_m');%的转移NZC - > delta_mKF = getBlockValue(ST,'Kf个');%的KF值调谐TFF = FRO * Kf个;前馈%至delta_m贡献步骤(T,'B',TFF,'G - ',T-TFF,'R-'。,6),格ylabel('\ delta_m'),图例('总',“前馈”,'反馈')
最后に,での开ループ応答を计算してロールオフ要件と安定余裕の要件をチェックします。
OL = getLoopTransfer(ST,'delta_m',-1);%负反馈环路传递裕度(OL);网格;XLIM([1E-3,1e2]);
ボード线図では,-40 dB /十倍频のロールオフが8弧度/秒を超えていることが确认され,ゲイン余裕と位相余裕が10分贝および70度を上回ることを示しています。
TuningGoal.Gain
|TuningGoal.Margins
|slTuner
|systune(slTuner)