此示例演示如何使用鲁棒控制工具箱中的mu分析和合成工具™. 它描述了在动力进近着陆过程中飞机横向定向轴鲁棒控制器的设计。在攻角为10.5度、空速为140节的情况下,获得了飞机的线性化模型。
下图显示了闭环系统的框图。该图表包括标称飞机模型,控制器K
,以及捕获模型不确定性和性能目标的元素(详见下一节)。
图1:飞机横轴鲁棒控制设计
设计目标是使飞机有效地响应飞行员的侧杆和方向舵踏板的输入。性能指标包括:
从侧杆解耦的反应p_cmd
滚动率p
从舵踏板beta_cmd
转向侧滑角β
.侧杆和方向舵踏板有一个最大偏转+/- 1英寸。
飞机操纵品质(HQ)从横向斗杆到横滚率的响应p
应该符合一阶响应。
HQ_p = 5.0 * tf(2.0,[1 2.0]);步骤(HQ_p)、标题(“横向斗杆至横滚率(操纵质量)的期望响应”)
图2:横向斗杆对横滚率的期望响应。
从舵踏板到侧滑角的飞机操纵质量响应β
应该与二阶阻尼响应相匹配。
HQ_beta=-2.5*tf(1.25^2[12.51.25^2]);步骤(HQ_beta),标题(“从方向舵踏板到侧滑角的期望响应(操纵质量)”)
图3:方向舵踏板对侧滑角的期望响应。
稳定器执行器的偏转角度和偏转率有+/-20度和+/-50度/秒的限制。方向舵执行器的偏转角度和偏转率有+/-30度和+/-60度/秒的限制。
三测信号(滚转率)p
,横摆率r
,以及横向加速度yac
)通过二阶抗锯齿过滤器进行过滤:
Freq = 12.5 * (2*pi);% 12.5赫兹ζ= 0.5;ya_filt = tf(freq^2,[1 2*zeta*freq freq^2]);Lat_filt = tf(freq^2,[1 2*zeta*freq freq^2]);Freq = 4.1 * (2*pi);%4.1赫兹zeta=0.7;滚动过滤=tf(频率^2,[12*zeta*频率^2]);AAFilters=append(滚动过滤、偏航过滤、横向过滤);
h -∞设计算法寻求最小化跨频率的最大闭环增益(h -∞范数)。为了应用这些工具,我们必须首先重铸设计规范作为闭环增益的约束。我们使用加权函数通过频率对规格进行“标准化”,并对每个需求进行同等的权重。
我们可以用权重函数表示设计规格如下:
为了捕获驱动器偏转幅度和速率的限制,选择一个对角线,恒定的重量W_act
,对应于稳定器和方向舵偏转率和偏转角限制。
W_act = ss(诊断接头([1/50,1/20,1/60,1/30]));
使用3x3对角高通滤波器沃恩
对横滚率、横摆率和横向加速度通道中传感器噪声的频率内容进行建模。
W_n = append(0.025,特遣部队(0.0125 * [1],[100]),0.025);clf bodemag (W_n(2, 2))、标题(“传感器噪声功率与频率的函数关系”)
图4:传感器噪声功率与频率的函数关系
从侧杆到p
从舵踏板到β
是否符合处理质量目标总部
和HQ_β
.这是一个模型匹配目标:最小化差异(峰值增益)在期望和实际闭环传递函数之间。由于模型中的右半平面零点为0.002 rad/s,性能受到限制,因此不可能精确跟踪低于0.002 rad/s的正弦波。因此,我们将使用带通滤波器对第一个处理质量规范进行加权W_p
这强调了0.06和30 rad/sec之间的频率范围。
W_p=tf([0.05 2.9 105.93 6.17 0.16],[19.19 30.80 18.83 3.95]);clf,bodemag(W_p),标题(“搬运重量质量规格”)
图5:重量在处理质量规格上。
同样,选择W_β=2*W_p
为第二处理质量规范
W_β=2*W_p;
这里我们缩放权重W_act
,沃恩
,W_p
,W_beta
所以所有外部输入和加权输出之间的闭环增益在所有频率上都小于1。
飞行员可以通过横向操纵杆和方向舵踏板来控制飞机的横向方向响应。该飞机具有以下特点:
两个控制输入:微分稳定器偏转三角洲刺
在度,和方向舵偏转delta_rud
在度。
三测输出:滚转速率p
以度/秒为单位,横摆率r
在deg/s,和横向加速度yac
在g的。
一个计算输出:侧滑角β
.
标称横向方向模型外侧轴
有四个州:
横向速度v
偏航率r
滚转率p
滚转角φ
这些变量由状态空间方程关联:
在哪里x = [v;r;p;φ)
,u=[delta_stab;delta_rud]
,y=[beta;p;r;yac]
.
负载LateralAxisModel外侧轴
LateralAxis = = v r p vφ-0.116 -227.3 43.02 31.63 0.00265 -0.259 -0.1445 0.1853 0 pφ-0.02114 0.6703 -1.365 0 0 1 0 B = delta_stab delta_rud vφ0.0622 - 0.1013 -0.04666 - 0.003644 -0.005252 - -0.01121 r p 0 0 C = v r p phi beta 0.2469 0 0 0 r p 57.3 0 0 0 0 0 0 yac -0.002827 -0.007877 0.05106 0 D = 57.3 delta_stab delta_rudβ0 0 p 0 0 r0 0 yac 0.002886 0.002273 Continuous-time state-space model.
完整的机身模型还包括执行机构模型美国
和A\u R
. 执行器输出为其各自的偏转率和角度。致动器速率用于惩罚驱动力。
A_S = [tf([25 0],[1 25]);特遣部队(25、25 [1])];现代。OutputName = {“stab_rate”,“stab_angle”};A_R=A_S;A_R.OutputName={“rud_rate”,“鲁德角”};
标称模型仅近似真实的飞机行为。为了考虑未建模的动力学,可以引入相对项或乘性不确定性W_in*Delta_G
在工厂输入,其中的错误动力学德尔塔
各频率的增益小于1,且加权函数W_in
反映了模型在其中或多或少准确的频率范围。在高频率下通常会有更多的建模错误W_in
这是通行证。
%归一化误差动力学Delta_G=ultidyn(“Delta_G”(2 - 2),“绑定”, 1.0);%误差动力学的频率整形w_1=tf(2.0*[1 4],[1 160]);w_2=tf(1.5*[1 20],[1 200]);w_in=append(w_1,w_2);bodemag(w_1,“- - -”,w_2,“——”)头衔(“作为频率函数的标称模型的相对误差”)传奇(“稳定器”,“舵”,“位置”,“西北”);
图6:标称飞机模型的相对误差与频率的关系。
现在我们已经量化了建模误差,我们可以建立一个与图7中虚线框对应的飞机动力学不确定模型(与图1相同):
图7:飞机动力学。
使用连接
用于组合标称机身模型的功能外侧轴
,执行器型号美国
和A\u R
,建模错误描述W_in*Delta_G
变成一个单一的不确定模型Plant_unc
映射[delta_stab;delta_rud]
致动器和工厂输出:
%具有建模不确定性的驱动器模型A_R Act_unc = append(现代)*(眼(2)+ W_in * Delta_G);Act_unc。InputName = {“delta_stab”,“delta_rud”};%标称飞机动力学Plant_nom=侧向轴;Plant_nom.InputName={“stab_angle”,“鲁德角”};%连接两个子系统输入= {“delta_stab”,“delta_rud”};输出=[现代。y;A_R。y;Plant_nom.y];Plant_unc =连接(Plant_nom Act_unc、输入、输出);
这产生了一个不确定状态空间(USS)模型Plant_unc
飞机:
Plant_unc
Plant_unc=具有8个输出、2个输入、8个状态的不确定连续时间状态空间模型。模型不确定性由以下模块组成:Delta_G:不确定2x2 LTI,峰值增益=1,1次出现类型“Plant_unc.NominalValue”查看标称值,“get(Plant_unc)”查看所有属性,以及“Plant_unc.Un确定性”与不确定因素相互作用。
我们可以通过选取未建模动力学的随机样本来分析建模不确定性的影响德尔塔
以及绘制标称和扰动时间响应(蒙特卡罗分析)。例如,对于微分稳定器通道,不确定度权重w_1
这意味着在低频率下的建模误差为5%,在93 rad/sec之后增加到100%,如下图所示。
随机抽取10个样本Plant_unc_sampl = usample (Plant_unc 10);查看微分稳定剂对beta的反应图(“位置”[100100560500])次要情节(211),步骤(Plant_unc.Nominal(5、1),“r+”, Plant_unc_sampl(5、1)“b-”(10)图例(“名义”,“不安”)子标段(212),bodemag(电厂标称(5,1)),“r+”, Plant_unc_sampl(5、1)“b-”{0.001, 1 e3})传说(“名义”,“不安”)
图8:阶跃响应和伯德图。
继续设计一个控制器,鲁棒性达到规范,其中鲁棒性意味着任何扰动飞机模型与建模误差界限一致W_in
.
首先,我们建立一个开环模型奥里奇
将外部输入信号映射到与性能相关的输出,如下所示。
图9:将外部输入信号映射到与性能相关的输出的开环模型。
要构建此模型,请从闭环系统的框图开始,删除控制器块K,然后使用连接
如前所述,通过标记每个块的输入和输出来指定连接性。
图10:构建开环模型的框图。
%标记块I/OAAFilters。u = {“p”,“r”,“雅克”};AAFilters。y =“AAFilt”;W_n.u=“噪音”;W_n。y =“Wn”; 总部p.u=“p_cmd”;HQ_p。y =“HQ_p”;HQ_beta。u =“beta_cmd”;HQ_beta.y=“HQ_beta”;W_p.u=“e_p”;W_p。y =“z_p”;W_beta。u =“e_beta”;W_beta。y =“z_beta”;W_act。u =[A_S.y ; A_R.y]; W_act.y =“z_act”;%指定求和连接Sum1 = sumblk (“%meas=AAFilt+Wn”, {“p_meas”,“r_-meas”,“yac_-meas”});Sum2 = sumblk (‘e_p=HQ_p-p’);Sum3=sumblk('e_beta = HQ_beta - beta');%连接一切由于奥利奇=连接(Plant_unc AAFilters W_n, HQ_p, HQ_beta,...W_p、W_beta W_act、Sum1 Sum2, Sum3,...{“噪音”,“p_cmd”,“beta_cmd”,“delta_stab”,“delta_rud”},...{“z_p”,“z_beta”,“z_act”,“p_cmd”,“beta_cmd”,“p_meas”,“r_-meas”,“yac_-meas”});
这就产生了不确定状态空间模型
奥里奇
OLIC=具有11个输出、7个输入、26个状态的不确定连续时间-状态-空间模型。模型不确定性由以下模块组成:Delta_G:不确定2x2 LTI,峰值增益=1,1次出现类型“OLIC.NominalValue”查看标称值,“get(OLIC)”查看所有属性,以及“OLIC.Understance”与不确定因素相互作用。
回想一下,通过构造加权函数,当闭环增益在所有频率和所有I/O方向小于1时,控制器满足规范要求。首先设计一个H无穷大控制器,使标称飞机模型的闭环增益最小化:
nmeas=5;测量次数%nctrls=2;%控件数量[kinf,~,gamma_inf]=hinfsyn(OLIC.NominalValue,nmeas,nctrls);伽马射线
伽马单位inf=0.9700
在这里辛夫辛
计算一个控制器基夫
这使闭环增益低于1,因此规格可以满足名义飞机模型。
接下来,在考虑建模错误(不确定性)的情况下,执行一个mu-synthesis,看看是否能够健壮地满足规范德尔塔
).使用命令musyn
进行合成和使用musynOptions
设置用于mu分析的频率网格。
fmu=日志空间(-2,2,60);opt=多个选项(“频率网格”,fmu);[kmu,CLperf]=musyn(OLIC,nmeas,nctrls,opt);
D-K迭代总结:----------------------------------------------------------------- 强劲的性能符合订单 ----------------------------------------------------------------- Iter K步峰μ适合D 1 5.097 3.487 3.488 12 2 20 3 1.31 1.292 1.312 1.242 1.242 1.693 12 4 16 5 1.223 1.223 1.551 1.693 1.544 1.545 12 6 20 7 12 1.278 1.277 1.308 1.533 1.464 1.465实现的最佳健壮性能:1.22
CLperf
CLperf=1.2226
这里是最好的控制器kmu
对于指定的模型不确定性,不能保持闭环增益低于1,这表明在考虑的飞机模型家族中,规格可以接近但不是完全满足。
比较了h -∞控制器的性能和鲁棒性基夫
和μ控制器kmu
。回想一下,性能规格是在每个频率的闭环增益小于1时实现的。使用融通
关闭每个控制器周围回路的功能:
clinf =融通(齐上,kinf);clmu =融通(齐上,kmu);
每个控制器的最坏情况性能(闭环增益)是什么W_in
这个wcgain
命令可以帮助您直接回答这个困难的问题,而不需要广泛的网格和模拟。
计算最坏情况下的增益作为频率的函数选择= wcOptions (“VaryFrequency”,“上”);%计算kinf的最坏情况增益(作为频率的函数)[mginf, wcuinf infoinf] = wcgain (clinf,选择);计算kmu的最坏情况增益[mgmu, wcumu infomu] = wcgain (clmu,选择);
现在,您可以比较每个控制器的标称性能和最差性能:
clf子批次(211)f=INF.Frequency;gnom=sigma(clinf.NominalValue,f);semilogx(f,gnom(1,:),“r”,f,infoinf.Bounds(:,2),“b”);头衔(“kinf的性能分析”)包含(的频率(rad /秒)) ylabel (“闭环增益”);xlim((1)依照1 e2))传说(“名义上的植物”,“最坏情况”,“位置”,“西北”);subplot(212) f = infomu.Frequency;gnom =σ(clmu.NominalValue f);: semilogx (f, gnom (1),“r”f infomu.Bounds (:, 2),“b”);头衔(“kmu的性能分析”)包含(的频率(rad /秒)) ylabel (“闭环增益”);xlim((1)依照1 e2))传说(“名义上的植物”,“最坏情况”,“位置”,“西南”);
第一个图显示,当h -∞控制器基夫
满足标称电厂模型的性能规格,在我们的建模误差范围内,对于某些扰动模型,其性能可能会急剧恶化(峰值增益接近15)。
相反,mu控制器kmu
与其他设备相比,标称设备的性能稍差基夫
,但对于所有受扰动模型,它都能保持这种性能(最坏情况增益接近1.25)。因此mu控制器是更多的健壮的建模错误。
为了进一步测试mu控制器的鲁棒性kmu
在时域,您可以比较名义和最坏情况闭环模型的时间响应与理想的“处理质量”响应。要做到这一点,首先构建“真正的”闭环模型CLSIM
删除所有加权函数和HQ参考模型:
kmu。u ={“p_cmd”,“beta_cmd”,“p_meas”,“r_-meas”,“yac_-meas”};kmu。y ={“delta_stab”,“delta_rud”}; AAFilters.y={“p_meas”,“r_-meas”,“yac_-meas”}; CLSIM=连接(设备unc(5:结束,:)、AAFilters、kmu、{“p_cmd”,“beta_cmd”},{“p”,“β”});
接下来,创建测试信号u_stick
和u_pedal
如下所示
时间=0:0.02:15;u_杆=(时间>=9,时间<12);u_踏板=(时间>=1,时间<4)-(时间>=4,时间<7);clf子图(211),绘图(时间,u_杆),轴([0 14-2 2]),标题(“侧杆命令”)子地块(212),绘图(时间,u_踏板),轴([014-22]),标题(“方向舵踏板指令”)
现在,您可以计算和绘制测试命令的理想、名义和最差情况响应u_stick
和u_pedal
.
%的理想行为IdealResp=append(HQ\u p,HQ\u beta);IdealResp.y={“p”,“β”};%最坏响应WCResp=usubs(CLSIM、wcumu);%比较反应clf lsim(理想响应,“g”,CLSIM.NominalValue,“r”,WCResp,”乙:“,[u_杆;u_踏板],时间)图例(“理想的”,“名义上的”,“心烦意乱”,“位置”,“东南”);头衔(“带有mu控制器KMU的闭环响应”)
对于标称和最坏情况的闭环系统,闭环响应几乎是相同的。请注意,飞机的滚转率响应在开始时很好地跟踪滚转率命令,然后偏离该命令。这是由于飞机模型中的右半平面零在0.024 rad/sec。