此示例显示了如何使用SLTUNER.
和Systune.
调整纵向自动驾驶仪的标准配置。我们感谢D. Alazard教授从Institut Superieur de L'Aeronautique et de L'Espace提供飞机模型和Pierre Apkariar从Onera开发该示例。
在Mach 0.7和5000英尺处的超音速乘客喷射飞行的纵向自动驾驶仪如图1所示。自动驾驶仪主要目的是遵循垂直加速命令由飞行员发行。反馈结构包括控制音高速率的内环和控制垂直加速度的外环。自动驾驶仪还包括前馈组件和参考模型这指定对步骤命令的所需响应。最后,二阶滚降滤波器
用于衰减噪声并将控制带宽限制为对针对未铭出动态的保护。可调谐组件以橙色突出显示。
图1:纵向自动驾驶仪配置。
飞机模型是一个5状态模型,状态变量是空气动力学速度(m / s),攀登角度(rad),攻击角度(rad),间距率(rad / s)和海拔高度(m)。电梯偏转(RAD)用于控制垂直载荷因子。开环动态包括以频率和阻尼比振荡= 1.7(rad / s)和= 0.33,垂直模式= 0.64(rad / s)和= 0.06,慢速的高度模式= -0.0026。
加载Concordedata.GBODE(G,{1E-3,1E2}),网格标题('飞机模型')
注意原点的零。由于此为零,我们无法达到零稳态错误,而是必须关注对加速命令的瞬态响应。请注意,加速命令本质上是瞬态的,因此稳态行为不是一个问题。此原产地的这种零也排除了纯积分动作,因此我们使用伪积分器和= 0.001。
当控制系统在Simulink中建模时,您可以使用金宝appSLTUNER.
界面快速设置调整任务。打开自动驾驶仪的S金宝appimulink模型。
Open_System('rct_concorde')
配置SLTUNER.
通过在Simulink模型中列出调谐块(以橙色突出显示)来列出界面。金宝app这将自动选择模型中的所有线性分析点作为分析和调整的兴趣点。
st0 = sltuner('rct_concorde',{'ki'那'kp'那'kq'那'kf'那'滚下'});
这也参数化每个调谐块并根据Simulink模型中的值初始化块参数。金宝app请注意,四个收益ki,kp,kq,kf
在此示例中初始化为零。默认滚动过滤器参数化为通用二阶传输函数。将其参数化为
创建真实参数,构建上面显示的传递函数,并将其与之相关联滚下
堵塞。
wn = REAMP('wn',3);%自然频率Zeta = Realp('Zeta',0.8);%阻尼fro = tf(wn ^ 2,[1 2 * zeta * wn wn ^ 2]);%参数传递函数SetBlockParam(ST0,'滚下',fro)%使用fro以参数化“rolloff”块
必须调整自动驾驶仪以满足三种主要设计要求:
1。设定点跟踪: 响应到命令应与参考模型的响应密切匹配:
该参考模型指定具有2个秒的沉降时间的良好阻尼响应。
2。高频滚动:噪声信号的闭环响应应该从8 rad / s的斜坡上滚动,斜率为至少-40 dB /十年。
3.稳定性边距:植物输入的稳定性边距应至少为7 dB和45度。
对于设定值跟踪,我们要求从命令中闭环传输的增益跟踪错误在频段[0.05,5] rad / s中(召回,由于S = 0的工厂零),请召回我们不能将稳态误差驱动到零。使用少数频率点,将最大跟踪误差绘制为频率的函数,并使用它来限制增益至。
freqs = [0.005 0.05 5 50];收益= [5 0.05 0.05 5];req1 = tuninggoal.gain('nzc'那'e',frd(收益,弗里克));req1.name ='最大跟踪错误';
这TuningGoal.gain.
构造函数自动将最大错误草图变为平滑的加权功能。用viewgoal.
要以图形方式验证所需的错误配置文件。
ViewGoal(req1)
重复相同的过程,以限制来自噪声输入的高频增益并在8到800 rad / s的频带中强制执行-40 dB / deade斜率
freqs = [0.8 8 800];gains = [10 1 1e-4];req2 = tuninggoal.gain('n'那'delta_m',frd(收益,弗里克));req2.name ='滚动要求';ViewGoal(REQ2)
最后,注册植物输入作为开环分析和使用的网站TuningGoal.Margins.
捕捉稳定性保证金要求。
addpoint(st0,'delta_m')REQ3 = TUNINGGOAL.Margins('delta_m',7,45);
我们现在准备好调整自动驾驶仪参数Systune.
。此命令采用未运行的配置ST0.
以及三种设计要求并返回调谐版本英石
的ST0.
。最终值小于1时,所有要求都满足。
[st,fsoft] = systune(st0,[req1 req2 req3]);
Final:Soft = 0.965,硬= -inf,迭代= 113
用展示
要查看调谐块值。
SkowtUnable(ST)
框1:rct_concorde / ki = d = u1 y1 -0.0297名称:ki静态增益。--------------------------------------------------- rct_concorde / kp = d = u1 y1-0.009821名称:kp静态增益。-------------------------------------------------- rct_concorde / kq = d = u1 y1 -0.2843名称:kq静态增益。---------------------------------------------------- rct_concorde / kf = d = u1 y1 -0.02233名称:KF静态增益。------------------------------ - WN = 4.81 ------------------------------------ Zeta = 0.507
获得调谐值, 用getblockvalue.
评估来回
用于调谐参数值英石
:
fro = getblockvalue(st,'滚下');TF(fro)
ans = 23.14 ------------------- S ^ 2 + 4.881 S + 23.14连续时间传输功能。
最后,使用viewgoal.
要以图形方式验证满足所有要求。
数字('位置',[100,100,550,710])ViewGoal([req1 req2 req3],st)
我们现在验证调谐自动驾驶仪满足设计要求。首先比较阶跃响应随着参考模型的阶跃响应。再次使用getiotransfer
计算来自的调谐闭环传输NZC.
至NZ.
:
gref = tf(1.7 ^ 2,[1 2 * 0.7 * 1.7 1.7 ^ 2]);%参考模型t = getiotransfer(st,'nzc'那'nz');%转移NZC - > NZ图,步骤(t,'B',gref,'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 rad / s的-40 dB /十年的滚动,表示增益和相距超过10 dB和70度。
TuningGoal.gain.
|TuningGoal.Margins.
|SLTUNER.
(金宝appSimulink Control Design)|Systune(SLTuner)
(金宝appSimulink Control Design)