利用Mu合成控制飞机横向轴
这个例子展示了如何使用鲁棒控制工具箱™中的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,[1 2.5 1.25^2]);步骤(HQ_beta)、标题(从舵踏板到侧滑角的理想响应(操纵质量))
图3:从舵踏板到侧滑角的期望响应。
稳定器执行机构有+/- 20度和+/- 50度/秒的偏转角度和偏转率限制。方向舵驱动器有+/- 30度和+/-60度/秒偏转角度和速率限制。
三个测量信号(滚转速率
p
,偏航率r
,和横向加速度yac
)通过二阶抗混叠滤波器过滤:
频率= 12.5 * (2*pi);% 12.5 HzZeta = 0.5;Yaw_filt = tf(freq^2,[12 *zeta*freq freq^2]);Lat_filt = tf(freq^2,[1 2*zeta*freq ^2]);频率= 4.1 * (2*pi);% 4.1 HzZeta = 0.7;Roll_filt = tf(freq^2,[1 2*zeta*freq ^2]);AAFilters = append(roll_filt,yaw_filt,lat_filt);
从规格到权重函数
h∞设计算法寻求最小化最大闭环增益跨频率(h∞范数)。要应用这些工具,我们必须首先将设计规范重铸为闭环增益的约束。我们使用加权函数为了跨频率“标准化”规范,并对每个需求进行同等的权重。
我们可以将设计规范用加权函数表示如下:
为了捕捉致动器偏转幅度和速率的限制,选择一个对角线,恒定的权重
W_act
,对应于稳定器和方向舵的偏转速率和偏转角度的限制。
W_act = ss(diag([1/50,1/20,1/60,1/30]));
使用3x3对角线高通滤波器
W_n
模拟传感器噪声在滚转速率、偏航速率和横向加速度通道中的频率含量。
W_n = append(0.025,特遣部队(0.0125 * [1],[100]),0.025);clf, bodemag(W_n(2,2)), title(传感器噪声功率作为频率的函数)
图4:传感器噪声功率是频率的函数
响应从侧向贴向
p
从舵踏板到β
是否符合处理质量目标HQ_p
而且HQ_beta
.这是一个模型匹配目标:最小化期望和实际闭环传递函数之间的差异(峰值增益)。由于模型中0.002 rad/s的右半平面零点,性能受到限制,因此精确跟踪0.002 rad/s以下的正弦波是不可能的。因此,我们将用带通滤波器来衡量第一个处理质量规格W_p
强调频率范围在0.06到30拉德/秒之间。
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), title(《搬运重量质量规范》)
图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
单位为度/秒,和横向加速度yac
在g的。一个计算输出:侧滑移角
β
.
名义横向模型LateralAxis
有四种状态:
横向速度
v
偏航率
r
滚转率
p
横摇角
φ
这些变量由状态空间方程联系起来:
在哪里X = [v;r;p;φ)
,U = [delta_stab;delta_rud]
,Y = [beta;p;r;yac]
.
负载LateralAxisModelLateralAxis
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 r p 0 0 0 0 yac 0.002886 - 0.002273连续时间状态空间模型。
完整的机身模型还包括执行器模型现代
而且A_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”,“rud_angle”};
建模错误的解释
名义模型只近似真实的飞机行为。为了解释未建模的动态,你可以引入一个相对术语或乘法不确定性W_in * Delta_G
在工厂的输入,其中的误差动态Delta_G
频率增益是否小于1,权重函数是多少W_in
反映模型或多或少准确的频率范围。在高频率下通常会有更多的建模误差W_in
是high pass。
归一化误差动态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:飞机动力学。
使用连接
功能结合名义机身模型LateralAxis
,执行器型号现代
而且A_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”,“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。NominalValue”查看标称值,“get(Plant_unc)”查看所有属性,以及“Plant_unc.”不确定性”与不确定元素相互作用。
分析建模误差如何影响开环响应
我们可以通过选取未建模动态的随机样本来分析建模不确定性的影响Delta_G
以及标称和摄动时间响应(蒙特卡罗分析)。例如,对于差分稳定器通道,不确定性权重w_1
意味着在低频下的建模误差为5%,在93 rad/sec后增加到100%,如下面的波德图所证实。
随机抽取10个样本plant_un_sampl = usample(Plant_unc,10);看看从差速稳定器到beta的反应。图(“位置”,[100,100,560,500]) subplot(211), step(Plant_unc.Nominal(5,1),' r + ', Plant_unc_sampl(5、1)“b -”10)传说(“名义”,“不安”) subplot(212), bodemag(Plant_unc.Nominal(5,1),' r + ', Plant_unc_sampl(5、1)“b -”{0.001, 1 e3})传说(“名义”,“不安”)
图8:阶跃响应和波德图。
横向轴控制器的设计
继续设计一个控制器,健壮地实现规范,其中健壮意味着任何扰动飞机模型与建模误差界限一致W_in
.
首先,我们建立一个开环模型由于奥利奇
将外部输入信号映射到与性能相关的输出,如下所示。
图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');%连接一切lic = 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次出现类型为“OLIC”。NominalValue”查看标称值,“get(OLIC)”查看所有属性,以及“OLIC”。不确定性”与不确定元素相互作用。
回想一下,通过构造加权函数,只要闭环增益在所有频率和所有I/O方向上小于1,控制器就满足规格。首先设计一个h∞控制器,使标称飞机模型的闭环增益最小化:
Nmeas = 5;测量次数%NCTRLS = 2;控制数%[kinf,~,gamma_inf] = hininfsyn (OLIC.NominalValue,nmeas,nctrls);gamma_inf
Gamma_inf = 0.9700
在这里hinfsyn
计算控制器kinf
这使闭环增益保持在1以下,因此可以满足标称飞机模型的规格。
接下来,执行mu-synthesis以查看在考虑建模错误(不确定性)时,规格是否可以稳定地满足Delta_G
).使用命令musyn
进行合成和使用musynOptions
设置用于mu分析的频率网格。
Fmu = logspace(-2,2,60);opt = musynOptions(“FrequencyGrid”, fmu);[kmu,CLperf] = musyn(lic,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 1.284 1.283 1.299 1.533 1.464 1.465 12最好实现健壮的性能:1.22
CLperf
CLperf = 1.2226
这里是最好的控制器kmu
对于指定的模型不确定性,不能将闭环增益保持在1以下,这表明所考虑的飞机模型家族的规格可以接近但不完全满足。
控制器频域比较
比较h∞控制器的性能和鲁棒性kinf
和控制器kmu
.回想一下,当每个频率的闭环增益小于1时,性能规格就达到了。使用融通
函数关闭每个控制器周围的循环:
clinf = lft(OLIC,kinf);clmu = left (OLIC,kmu);
每个控制器在建模误差范围内的最坏情况性能(就闭环增益而言)是什么W_in
?的wcgain
Command可以帮助您直接回答这个困难的问题,而不需要大量的网格划分和模拟。
计算最坏情况增益作为频率的函数opt = wcOptions(“VaryFrequency”,“上”);计算kinf的最差情况增益(作为频率的函数)[mginf,wcuinf,infoinf] = wcgain(clinf,opt);计算kmu的最差情况增益[mgmu,wcumu,infomu] = wcgain(clmu,opt);
你现在可以比较每个控制器的标称性能和最差情况性能:
clf subplot(211) f = info . frequency;gnom = sigma(clf . nominalvalue,f);: semilogx (f, gnom (1),“r”f infoinf.Bounds (:, 2),“b”);标题(“kinf性能分析”)包含(的频率(rad /秒)) ylabel (“闭环增益”);Xlim ([1e-2 1e2])“名义上的植物”,“最坏的”,“位置”,“西北”);subplot(212) f = infomu.Frequency;gnom = sigma(clmu.NominalValue,f);: semilogx (f, gnom (1),“r”f infomu.Bounds (:, 2),“b”);标题(“kmu的性能分析”)包含(的频率(rad /秒)) ylabel (“闭环增益”);Xlim ([1e-2 1e2])“名义上的植物”,“最坏的”,“位置”,“西南”);
第一个图显示,当h∞控制器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 = connect(Plant_unc(5:end,:),AAFilters,kmu,{“p_cmd”,“beta_cmd”}, {“p”,“β”});
接下来,创建测试信号u_stick
而且u_pedal
如下所示
时间= 0:0.02:15;U_stick =(时间>=9 &时间<12);u_pedal =(时间> = 1 & < 4)——(时间> = 4 & < 7);CLF subplot(211), plot(时间,u_stick),轴([0 14 -2 2]),标题(“横向杆指令”) subplot(212), plot(time,u_pedal), axis([0 14 -2 2]), title(“舵踏板指令”)
现在可以计算和绘制测试命令的理想响应、标称响应和最差情况响应u_stick
而且u_pedal
.
%理想行为IdealResp = append(HQ_p,HQ_beta);IdealResp。Y = {“p”,“β”};%最坏情况反应WCResp = usubs(CLSIM,wcumu);%比较回答clf lsim (IdealResp‘g’, CLSIM。NominalValue,“r”WCResp,”乙:“, (u_stick;u_pedal)、时间)传说(“理想”,“名义”,“不安”,“位置”,“东南”);标题(控制器KMU的闭环响应)
闭环响应几乎是相同的名义和最坏情况闭环系统。请注意,飞机的滚速响应最初很好地跟踪滚速命令,然后偏离该命令。这是由于在飞机模型中以0.024 rad/秒的速度出现了右半平面零。