此示例显示如何在鲁棒控制工具箱™中使用MU分析和综合工具。它描述了在发电方法到着陆的电力接近飞机的横向方向轴的鲁棒控制器的设计。获得的飞机的线性化模型获得10.5度和140节空心的攻击角度。
下图显示了闭环系统的框图。该图包括标称飞机模型,控制器K.
以及捕获模型不确定性和性能目标的元素(有关详细信息,请参阅下一节)。
图1:飞机侧轴的鲁棒控制设计
设计目标是使飞机有效地响应飞行员的横向杆和舵踏板输入。性能规范包括:
从横向杆解耦响应p_cmd
对滚转率P.
从舵踏板beta_cmd.
侧滑角bet
.侧杆和方向舵踏板最大偏转+/- 1英寸。
飞机操纵质量(HQ)从横向操纵杆到滚转率的响应P.
应该匹配一阶响应。
HQ_p = 5.0 * tf(2.0,[1 2.0]);步骤(HQ_p)、标题(从侧杆到滚转速率的期望响应(操纵质量))
图2:侧杆辊隙率的所需响应。
飞机处理从舵踏板到侧滑角的质量响应bet
应匹配阻尼的二阶响应。
HQ_BETA = -2.5 * TF(1.25 ^ 2,[1 2.5 1.25 ^ 2]);步骤(hq_beta),标题(从舵踏板到侧滑角的期望响应(操纵质量))
图3:从舵踏板到侧滑角的期望响应。
稳定器执行器的偏转角度和偏转率有+/- 20度和+/- 50度/秒的限制。方向舵执行机构有+/- 30度和+/-60度/秒的偏转角度和速率限制。
三个测量信号(卷率P.
,偏航率R.
,和横向加速度yac
)通过二阶抗混叠滤波器进行滤波:
freq = 12.5 *(2 * pi);%12.5 Hz.Zeta = 0.5;yaw_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;roll_filt = tf(freq ^ 2,[1 2 * zeta * freq freq ^ 2]);aafilters = append(roll_filt,yaw_filt,lat_filt);
H-Infinity设计算法寻求最小化跨越频率(H-Infinity Norm)的最大闭环增益。要应用这些工具,我们必须首先重新设计设计规范作为闭环收益的约束。我们用加权函数“将”规范化“跨越频率,同样重量每个要求。
我们可以在加权函数方面表达设计规范,如下所示:
要捕获致动器偏转幅度和速率的限制,请挑选对角线,恒重w_act.
,对应的稳定器和舵偏转率和偏转角度限值。
w_act = ss(diag([1 / 50,1 / m / 60,1 / 30])));
使用3x3对角线,高通滤波器W_n
以卷曲速率,横摆率和横向加速度通道模拟传感器噪声的频率内容。
W_N = Append(0.025,TF(0.0125 * [1 1],[1 100]),0.025);CLF,Bodemag(W_N(2,2)),标题(“传感器噪声功率与频率的函数”)
图4:传感器噪声功率与频率的函数关系
横向棍子的反应P.
从舵踏板到bet
应该符合处理质量目标HQ_p
和HQ_beta
.这是一个模型匹配目标:以最小化所需和实际闭环传输功能之间的差值(峰值增益)。由于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],[1 9.19 30.80 18.83 3.95]);CLF,Bodemag(W_P),标题('处理质量规格的重量')
图5:处理质量规格的重量。
同样,挑选w_beta = 2 * w_p
第二个处理质量规范
w_beta = 2 * w_p;
这里我们缩放了权重w_act.
那W_n
那W_p
, 和w_beta.
因此,所有外部输入和所有加权输出之间的闭环增益都在所有频率下小于1。
飞行员可以通过横向操纵杆和方向舵踏板来控制飞机的横向响应。该机具有以下特点:
两个控制输入:差分稳定器偏转delta_stab.
以学位,舵偏转delta_rud
程度。
三个测量输出:滚动率P.
在Deg / s,横摆率R.
在Deg / s,横向加速度yac
在g的。
一个计算的输出:侧滑角bet
.
标称横向方向模型左侧
有四个州:
横向速度V.
横摆率R.
卷率P.
横摇角披
这些变量与状态空间方程相关联:
在哪里x = [v;r;P;PHI]
那u = [delta_stab;delta_rud]
, 和y = [beta;P;r;yac]
.
加载LateralaxiSmodel.左侧
左侧=一种=V.R.P.披V.-0.116 -227.3 43.02 31.63 r 0.00265 -0.259 -0.1445 0 p -0.02114 0.6703 -1.365 0 phi 0 0.1853 1 0 B = delta_stab delta_rud v 0.0622 0.1013 r -0.005252 -0.01121 p -0.04666 0.003644 phi 0 0 C = v r p phi beta 0.2469 0 0 0 p 0 0 57.3 0 r 0 57.3 0 0 yac -0.002827 -0.007877 0.05106 0 D = delta_stab delta_rud beta 0 0 p 0 0 r 0 0 yac 0.002886 0.002273 Continuous-time state-space model.
完整的机身型号还包括执行器型号作为
和A_R.
.执行器的输出是它们各自的偏转率和角度。执行器速率用于惩罚执行器的努力。
a_s = [tf([25 0],[1 25]);TF(25,[125])];a_s.outputname = {'stab_rate'那'stab_angle'};a_r = a_s;a_r.outputname = {'rud_rate'那'rud_angle'};
标称模型仅近似真实的飞机性能。为了解释未建模的动态,可以引入一个相对术语或乘法不确定性w_in * delta_g.
在工厂输入,错误动态Delta_G
频率越过1个,加权函数赢
反映模型或多或少准确的频率范围。在高频下通常有更多的建模错误赢
高通。
%标准化错误动态delta_g = ultidyn('delta_g',[2 2],'边界',1.0);错误动态的频率整形w_1 = tf(2.0 * [1 4],[1 160]);w_2 = tf(1.5 * [110],[1 200]);w_in =附加(w_1,w_2);Bodemag(W_1,' - ',w_2,' - ') 标题(名义模型的相对误差与频率的关系)传说('稳定剂'那'舵'那'地点'那'西北');
图6:标称飞机模型的相对误差作为频率的函数。
现在我们已经量化了建模误差,我们可以建立一个与图7中虚线框对应的飞机动力学的不确定模型(与图1相同):
图7:飞机动力学。
使用连接
功能组合名义机身模型左侧
,执行器模型作为
和A_R.
,以及建模错误描述w_in * delta_g.
进入一个不确定的模型Plant_unc.
映射[delta_stab;delta_rud]
到执行器和工厂输出:
%执行器模型,具有建模不确定性ACT_UNC = APPEND(A_S,A_R)*(眼睛(2)+ w_in * delta_g);ACT_UNC.INPUTNAME = {'delta_stab'那'delta_rud'};%名义飞机动态Plant_nom = LateralAxis;Plant_nom。InputName = {'stab_angle'那'rud_angle'};%连接两个子系统输入= {'delta_stab'那'delta_rud'};输出= [a_s.y;a_r.y;plant_nom.y];plant_unc = connect(plant_nom,act_unc,输入,输出);
这产生了不确定的状态空间(USS)模型Plant_unc.
飞机:
Plant_unc.
Plant_unc =具有8个输出,2个输入,8个状态的不确定连续时间状态空间模型。模型的不确定性由以下模块组成:Delta_G:不确定2x2 LTI,峰值增益= 1,1出现类型“Plant_unc。查看名义值,“get(Plant_unc)”查看所有属性,“Plant_unc. value”查看名义值。“不确定性”与不确定元素相互作用。
我们可以通过挑选未拼接动态的随机样本来分析建模不确定性的效果Delta_G
并绘制标称和扰动时间响应(蒙特卡罗分析)。例如,对于差分稳定器通道,不确定的重量w_1
在低频时暗示5%的建模误差,在93 RAD / SEC后增加到100%,如下面的Bode图所确认。
%挑选10个随机样本plant_unc_sampl = usample(plant_unc,10);%看看差动稳定器到β的响应数字('位置',[100,100,560,500])子图(211),步骤(plant_unc.nominal(5,1),'r +',plant_unc_sampl(5,1),'b-',10)传奇(“名义”那'忐忑')子图(212),Bodemag(plant_unc.nominal(5,1),'r +',plant_unc_sampl(5,1),'b-'{0.001, 1 e3})传说(“名义”那'忐忑')
图8:步骤响应和伯德图。
继续设计一个强大地实现规范的控制器,其中任何扰动飞行器模型都具有与建模误差限制一致的任何扰动的飞机模型赢
.
首先,我们构建一个开环模型奥佳
将外部输入信号映射到与性能相关的输出,如下所示。
图9:开环模型将外部输入信号映射到性能相关的输出。
要构建此模型,请从闭环系统的框图开始,删除控制器块k,并使用连接
来计算所需的模型。与前面一样,连接性是通过标记每个块的输入和输出来指定的。
图10:构建开环模型的框图。
%标签块I / Oaafilters.u = {'P'那'r'那'yac'};aafilters.y ='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');%连接一切olic = connect(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'});
这产生了不确定的状态空间模型
奥佳
具有11输出,7输入,26状态的不确定连续时间状态空间模型。模型的不确定性包括以下几个部分:Delta_G:不确定2x2 LTI,峰值增益= 1,1次。nomalvalue”查看标称值,“get(OLIC)”查看所有属性,以及“OLIC”。“不确定性”与不确定元素相互作用。
回想一下,通过构造加权函数,每当闭环增益小于所有频率和所有I / O方向时,控制器会遇到规格。首先设计H-Infinity控制器,可最大限度地减少标称飞机模型的闭环增益:
n mea = 5;%测量数量nctrls = 2;%控件数量[kinf ~, gamma_inf] = hinfsyn (n mea, OLIC.NominalValue nctrls);gamma_inf
gamma_inf = 0.9700
这里Hinfsyn.
计算了一个控制器Kinf.
使闭环增益保持在1以下,因此可以满足标称飞机模型的规范。
接下来,执行MU合成以查看在考虑到建模错误时可以妥善满足规范(不确定性)Delta_G
)。使用命令斯文
进行合成和使用Musynoptions.
设置用于MU分析的频率网格。
fmu = logspace(-2,2,60);选择= musynoptions('formanygrid', fmu);[kmu, CLperf] = musyn(齐上,n mea、nctrls选择);
D.-K ITERATION SUMMARY: ----------------------------------------------------------------- Robust performance Fit order ----------------------------------------------------------------- Iter K Step Peak MU D Fit D 1 5.097 3.487 3.488 12 2 1.31 1.292 1.312 20 3 1.243 1.242 1.692 12 4 1.692 1.543 1.544 16 5 1.223 1.223 1.55 12 6 1.533 1.464 1.465 20 7 1.289 1.288 1.304 12 Best achieved robust performance: 1.22
Clperf.
CLperf = 1.2226
这里最好的控制器kmu.
不能将闭环增益保持在1以下1的指定模型不确定性,表明规范可以几乎但不适合正在考虑的飞机模型系列。
比较H-Infinity控制器的性能和稳健性Kinf.
和mu控制器kmu.
.回想一下,当每个频率的闭环增益小于1时,就达到了性能指标。使用l
关闭每个控制器周围的循环的功能:
Clinf = LFT(Olic,Kinf);clmu = lft(olic,kmu);
每个控制器的用于建模误差的每个控制器的最坏情况(在闭环增益方面)是什么?赢
?这Wcgain.
命令可帮助您直接回答这一困难问题,无需广泛的网格和模拟。
%计算最坏情况的增益作为频率的函数opt = wcoptions('varyfrequency'那'上');%计算kinf的最坏情况增益(作为频率的函数)[mginf,wcuinf,InfoInf] = WCGAIN(CLINF,OPT);%compute kmu的最坏情况增益[mgmu, wcumu infomu] = wcgain (clmu,选择);
您现在可以比较每个控制器的标称和最坏情况性能:
CLF子图(211)f = infoinf.frequency;gnom = sigma(Clinf.nominalvalue,f);semilogx(f,gnom(1,:),'r'f infoinf.Bounds (:, 2),“b”);标题('KINF的绩效分析)Xlabel('频率(rad / sec)')ylabel('闭环增益');XLIM([1E-2 1E2])图例(“名义植物”那'最糟糕的情况'那'地点'那'西北');子图(212)f = infomu.frequency;gnom = sigma(clmu.nominalvalue,f);semilogx(f,gnom(1,:),'r',f,infomu.bounds(:,2),“b”);标题(“kmu的性能分析”)Xlabel('频率(rad / sec)')ylabel('闭环增益');XLIM([1E-2 1E2])图例(“名义植物”那'最糟糕的情况'那'地点'那'西南');
第一个绘图显示,而H-Infinity控制器Kinf.
满足标称对象模型的性能指标,在我们的建模误差范围内,某些扰动模型的性能会急剧恶化(峰值增益接近15)。
相比之下,MU控制器kmu.
与之相比,标称工厂的性能略差Kinf.
,但它保持了所有扰动模型(最坏情况收益附近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 =连接(Plant_unc(5:最后,:),AAFilters, kmu, {'p_cmd'那“beta_cmd”}, {'P'那'beta'});
接下来,创建测试信号U_Stick.
和u_pedal.
如下所示
时间= 0:0.02:15;if (c = 0 and c < 0), colorff00ff;u_pedal =(时间> = 1 & < 4)——(时间> = 4 & < 7);CLF subplot(211), plot(time,u_stick), axis([0 14 -2 2]), title('横向棒命令')子图(212),绘图(时间,u_pedal),轴([0 14-2 2]),标题('舵脚蹬命令')
您现在可以计算和绘制对测试命令的理想,名义和最坏情况的响应U_Stick.
和u_pedal.
.
%理想行为IdealResp = Append(HQ_P,HQ_BETA);IdealResp.y = {'P'那'beta'};百分比差别响应WCResp = usubs (CLSIM wcumu);%比较答案CLF LSIM(IdealResp,‘g’,clsim.nominalvalue,'r'WCResp,'B:', (u_stick;u_pedal)、时间)传说(“理想”那“名义”那'忐忑'那'地点'那'东南');标题('闭环响应mu控制器kmu')
闭环响应几乎与标称和最坏情况闭环系统相同。请注意,飞机的滚速响应最初播放滚速均匀,然后从此命令离开。这是由于飞机模型中的右半平面为0.024 rad / sec。