这个例子说明如何使用slTuner
和systune
调谐的纵向自动驾驶仪的标准配置。我们从感谢D. Alazard教授研究所Superieur的DE L'AERONAUTIQUE和de l'协商提供从ONERA飞机模型和Pierre Apkarian教授开发的例子。
对超音速客机在0.7马赫和5000英尺飞行纵向自动驾驶仪图1中所描绘的自动驾驶仪的主要目的是遵循垂直加速度命令由飞行员发出。该反馈结构包括内环控制桨距速率的和外回路控制垂直加速度。自动驾驶仪还包括一个前馈成分和参考模型指定所希望的响应到步骤命令。最后,第二阶滚降滤波器
用于噪声衰减和限制控制带宽作为对未建模动态一个保障。可调部件橙色高亮显示。
图1:纵向自动驾驶仪的配置。
飞机模型有5状态模型中,状态变量是所述空气动力学速度(米/秒),该爬升角(RAD),攻角(弧度),俯仰速率(弧度/秒),并且高度(M)。电梯偏转(弧度)用于控制垂直负载因数。开环动态包括:振荡频率和阻尼比= 1.7(弧度/秒)和= 0.33,该长周期模式= 0.64(弧度/秒)和= 0.06,慢高度模式= -0.0026。
加载ConcordeDataG博德(G,{1E-3,1e2}),网格标题(“飞机模型”)
注意零原点在。由于这种零,我们无法实现零稳态误差,而必须着眼于以加速指令瞬时响应。需要注意的是加速命令是一过性的,从而稳态行为是不是一个问题。这种零原点也排除了纯积分作用,所以我们使用伪积分同= 0.001。
当控制系统在Simulink中建模,您可以使用万博1manbetxslTuner
接口快速建立优化任务。打开自动驾驶仪的S万博1manbetximulink模型。
open_system('rct_concorde')
配置slTuner
通过列出在Simulink模型调谐块接口(橙色突出显示)。万博1manbetx这自动选择所有的线性回归分析点的模型进行分析和调整兴趣点。
ST0 = slTuner('rct_concorde'{“文”,“KP的,'KQ','Kf个','滚下'});
这也参数化每个调谐块并初始化基于它们在Simulink模型值的块参数。万博1manbetx请注意,这四个收益文,KP,KQ,KF
在该示例中被初始化到零。默认情况下,滚降滤波器被参数作为一个通用的二阶传递函数。为了参数作为
创造真正的参数,建立上面示出的传递函数,并将其与相关联滚下
块。
WN =雷阿尔卑('WN',3);%固有频率ζ电=雷阿尔卑(“ζ”,0.8);%阻尼往复= TF(WN ^ 2,[1 2 *ζ电* WN WN ^ 2]);%参数传递函数setBlockParam(ST0,'滚下',FRO)%使用FRO来参数“滚降”块
自动驾驶仪必须进行调整以满足三个主要的设计要求:
1。设定值跟踪: 响应该命令应密切配合参考模型的响应:
这个参考模型指定与2秒的稳定时间是很好的阻尼响应。
2。高频滚降:从噪声信号以闭环响应应该滚下过去8弧度/秒与至少-40分贝/ decade的斜率。
3。稳定裕度:本稳定裕度在工厂输入应至少为7 dB和45度。
对于给定的跟踪,我们要求该命令的闭环传递的增益跟踪误差是在频带[0.05,5]弧度/秒(回想我们不能驱动稳态误差为零,因为在s = 0的零植物的)小。使用几个频点,画出最大的跟踪误差作为频率的函数,并用它来限制从增益至。
Freqs = [0.005 0.05 5 50]。增益= [5 0.05 0.05 5];REQ1 = TuningGoal.Gain(“Nzc”,'E',FRD(收益,Freqs));Req1.Name =“最大的跟踪误差”;
该TuningGoal.Gain
构造自动打开的最大误差草图成光滑的加权函数。用viewGoal
以图形方式验证所期望的误差分布。
viewGoal(REQ1)
重复同样的过程,以限制从所述噪声输入到高频增益和执行在频带为8至800弧度/秒的-40分贝/ decade的斜率
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
和三个设计要求和收益的调整版本ST
的ST0
。当最终值小于一个满足所有要求。
[ST,fSoft] = systune(ST0,[REQ1 REQ2 REQ3]);
决赛:软= 0.965,硬= -Inf,迭代= 113
用showTunable
看调谐块值。
showTunable(ST)
Block 1: rct_concorde/Ki = D = u1 y1 -0.0297- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -块2:rct_concorde / Kp = D = -0.009821 u1 y1名称:Kp静态增益。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -块3:rct_concorde / Kq = D = -0.2843 u1 y1名称:Kq静态增益。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -块4:rct_concorde / Kf u1日元= D = -0.02233名称:Kf静态增益。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - wn = 4.81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ζ= 0.507
要获取的调整值, 用getBlockValue
评估FRO
在调谐参数值ST
:
往复= getBlockValue(ST,'滚下');TF(FRO)
ANS = 23.14 ---------------------秒2 + 4.881 S + 23.14连续时间的传递函数。
最后,使用viewGoal
以图形验证所有要求得到满足。
数字('位置',[100100550710])viewGoal([REQ1 REQ2 REQ3],ST)
我们现在确认调整自动驾驶仪满足设计要求。首先比较的阶跃响应与参考模型的阶跃响应。再次使用getIOTransfer
计算从调谐闭环传递新西兰学院
至新西兰
:
格列夫= TF(1.7 ^ 2,[1 2 * 0.7 * 1.7 1.7 ^ 2]);%参考模型T = getIOTransfer(ST,“Nzc”,'NZ');%的转移NZC - >的Nz图中,步骤(T)'B',格列夫,'b--',6),网格,ylabel('N_z'),图例(“实际的响应”,“参考模型”)
还积偏转和前馈和反馈路径的各自的贡献:
T = getIOTransfer(ST,“Nzc”,'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]);
Bode曲线图证实过去8弧度滚降-40 dB /十倍频的/ S和表示超过10分贝和70度的增益和相位裕度。
TuningGoal.Gain
|TuningGoal.Margins
|slTuner
|systune(slTuner)