此示例演示如何使用鲁棒控制工具箱中的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°/s偏转角和速率限制。
三测信号(滚转率)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_法案
,对应于稳定器和方向舵偏转率和偏转角限制。
W_act=ss(diag([1/50,1/20,1/60,1/30]);
使用3x3对角高通滤波器W_n
对横滚率、横摆率和横向加速度通道中传感器噪声的频率内容进行建模。
W_n=append(0.025,tf(0.0125*[11],[1100]),0.025);clf,bodemag(W_n(2,2)),标题(“传感器噪声功率与频率的函数”)
图4:传感器的噪声功率是频率的函数
侧向粘滞对振动的响应P
从舵踏板到β
应符合处理质量目标HQ_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_法案
,W_n
,W_p
,W_beta
所以所有外部输入和加权输出之间的闭环增益在所有频率上都小于1。
飞行员可以通过侧杆和方向舵踏板来控制飞机的横向方向响应。该飞机具有以下特点:
两个控制输入:差速器稳定器偏转三角洲刺
以度和方向舵偏转为单位delta_rud
以度为单位。
三测输出:滚转速率P
以度/秒为单位,横摆率R
以度/秒和横向加速度为单位yac
在g的。
一个计算输出:侧滑角β
.
标称横向方向模型外侧轴
有四个州:
横向速度v
偏航率R
滚转率P
横摇角φ
这些变量由状态空间方程关联:
在哪里x = [v;r;p;φ)
,u=[delta_stab;delta_rud]
,y=[beta;p;r;yac]
.
负载侧轴模型外侧轴
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”,“刺角”};A_R=A_S;A_R.OutputName={“rud_rate”,“鲁德角”};
名义模型只是近似真实的飞机行为。为了解释未建模的动态,可以引入一个相对术语或乘法不确定性W_in*Delta_G
在设备输入端,误差动态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 = LateralAxis;Plant_nom。InputName = {“刺角”,“鲁德角”};%连接两个子系统输入={“delta_stab”,“delta_rud”};输出=[A_S.y;A_R.y;工厂名称y];工厂名称=连接(工厂名称、行为、输入、输出);
这产生了一个不确定状态空间(USS)模型Plant_unc
飞机:
Plant_unc
Plant_unc = 8输出,2输入,8状态的不确定连续时间状态空间模型。模型不确定性由以下块组成:Delta_G:不确定性2x2 LTI,峰值增益= 1,1发生类型“Plant_unc。NominalValue“查看名义值”,get(Plant_unc)“查看所有属性”,以及“Plant_unc. name”和“Plant_unc. name”。“不确定性”与不确定因素相互作用。
我们可以通过选取未建模动力学的随机样本来分析建模不确定性的影响Delta_G
以及绘制标称和扰动时间响应(蒙特卡罗分析)。例如,对于微分稳定器通道,不确定度权重w_1
这意味着在低频率下的建模误差为5%,在93 rad/sec之后增加到100%,如下图所示。
%随机抽取10个样本Plant_unc_sampl=usample(Plant_unc,10);%看看差动稳定器对β的响应图(“位置”[100100560500])子批次(211),阶跃(设备标称(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”,“雅克”};aay=“AAFilt”;W_n.u=“噪音”;W_n。y =“Wn”;HQ_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. value”查看所有属性。“不确定性”与不确定因素相互作用。
回想一下,通过构造加权函数,当闭环增益在所有频率和所有I/O方向小于1时,控制器满足规范要求。首先设计一个H无穷大控制器,使标称飞机模型的闭环增益最小化:
n mea = 5;%测量次数nctrls = 2;%控件数量[kinf ~, gamma_inf] = hinfsyn (n mea, OLIC.NominalValue nctrls);gamma_inf
伽马单位inf=0.9700
在这里辛夫辛
计算控制器基夫
这使闭环增益低于1,因此规格可以满足名义飞机模型。
接下来,执行mu合成,以查看在考虑建模误差(不确定性)时是否能够可靠地满足规范Delta_G
).使用命令musyn
进行合成和使用musynOptions
设置用于mu分析的频率网格。
fmu=日志空间(-2,2,60);opt=多个选项(“频率网格”, fmu);[kmu, CLperf] = musyn(齐上,n mea、nctrls选择);
D-K迭代总结:--------------------------------------------------------------稳健性能拟合顺序-------------------------------------------------------------------Iter K阶跃峰值MU D拟合D 1 5.097 3.487 3.488 12 1.31 1.292 1.312 20 3 1.243 1.242 1.692 12 4 1.692 1.543 1.544 16 1.223 1.223 1.551 12 1.533 1.464 1.465 207 1.3 1.297 1.313 12最佳实现的稳健性能:1.22
CLperf
CLperf=1.2225
这里是最好的控制器kmu
对于指定的模型不确定性,无法将闭环增益保持在1以下,这表明考虑中的飞机模型系列几乎可以满足规范要求,但不能完全满足规范要求。
比较了h -∞控制器的性能和鲁棒性基夫
和μ控制器kmu
.回想一下,性能指标是在每个频率的闭环增益小于1时实现的。使用融通
关闭每个控制器周围回路的功能:
clinf =融通(齐上,kinf);clmu =融通(齐上,kmu);
每个控制器的最坏情况性能(闭环增益)是什么W_in
这个wcgain
命令可以帮助您直接回答这个困难的问题,而不需要广泛的网格和模拟。
%计算最坏情况下的增益作为频率的函数opt=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/sec)’) ylabel (“闭环增益”);xlim((1)依照1 e2))传说(“名义上的植物”,“最坏情况”,“位置”,“西北”)子批次(212)f=infomu.Frequency;gnom=sigma(clmu.NominalValue,f);semilogx(f,gnom(1,:),“r”f infomu.Bounds (:, 2),“b”);头衔(“kmu的性能分析”)包含(‘频率(rad/sec)’) ylabel (“闭环增益”);xlim((1)依照1 e2))传说(“名义上的植物”,“最坏情况”,“位置”,“西南”);
第一个图显示,当H∞控制器基夫
满足标称电厂模型的性能规格,在我们的建模误差范围内,对于某些扰动模型,其性能可能会急剧恶化(峰值增益接近15)。
相反,mu控制器kmu
与其他设备相比,标称设备的性能稍差基夫
,但对于所有受扰动模型,它都能保持这种性能(最坏情况增益接近1.25)。因此mu控制器是更多的健壮的建模错误。
为了进一步测试mu控制器的鲁棒性kmu
在时域中,您可以将标称和最坏情况闭环模型的时间响应与理想的“处理质量”响应进行比较。为此,首先构建“真实”闭环模型克莱西姆
移除所有权重函数和HQ参考模型:
kmu。u ={“p_cmd”,“beta_cmd”,“p_meas”,“r_-meas”,“yac_-meas”};kmu。y ={“delta_stab”,“delta_rud”};aay={“p_meas”,“r_-meas”,“yac_-meas”};CLSIM =连接(Plant_unc(5:最后,:),AAFilters, kmu, {“p_cmd”,“beta_cmd”},{“p”,“贝塔”});
接下来,创建测试信号u_stick
和u_踏板
如下所示
时间= 0:0.02:15;U_stick =(时间>=9 &时间<12);u_pedal =(时间> = 1 & < 4)——(时间> = 4 & < 7);CLF subplot(211), plot(time,u_stick), axis([0 14 -2 2]), title(“横向操纵杆指令”)子地块(212),绘图(时间,u_踏板),轴([014-22]),标题(“方向舵踏板指令”)
现在,您可以计算和绘制测试命令的理想、名义和最差情况响应u_stick
和u_踏板
.
%的理想行为IdealResp=append(HQ\u p,HQ\u beta);IdealResp.y={“p”,“贝塔”};%最坏响应WCResp = usubs (CLSIM wcumu);%比较反应clf lsim(理想响应,“g”,CLSIM.NominalValue,“r”WCResp,”乙:“, (u_stick;u_pedal)、时间)传说(“理想”,“名义上的”,“心烦意乱”,“位置”,“东南”);头衔(“带有mu控制器KMU的闭环响应”)
标称和最坏情况下的闭环系统的闭环响应几乎相同。请注意,飞机的横滚率响应最初很好地跟踪横滚率指令,然后偏离该指令。这是由于飞机模型中右半平面零点为0.024 rad/sec。