主要内容

利用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)、标题(“横杆对滚压速率的期望响应(操作质量)”

图中包含一个轴对象。axis对象包含一个line类型的对象。该对象表示HQ\_p。

图2:横杆对滚转速率的期望响应。

  • 飞机操纵质量从方向舵踏板到侧滑角的响应β应该与二阶阻尼响应相匹配。

HQ_beta = -2.5 * tf(1.25^2,[1 2.5 1.25^2]);步骤(HQ_beta)、标题(从舵踏板到侧滑角的理想响应(操纵质量)

图中包含一个轴对象。axis对象包含一个line类型的对象。该对象表示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(传感器噪声功率作为频率的函数

图中包含一个轴对象。axis对象包含一个line类型的对象。该对象表示untitled1。

图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(《搬运重量质量规范》

图中包含一个轴对象。axis对象包含一个line类型的对象。该对象表示W\_p。

图5:重量在处理质量规格。

  • 同样,选择W_beta = 2 * W_p为第二处理质量规范

W_beta = 2*W_p;

这里我们缩放权重W_actW_nW_p,W_beta因此,所有外部输入和所有加权输出之间的闭环增益在所有频率上都小于1。

公称飞机型号

飞行员可以通过操纵杆和方向舵踏板控制飞机的横航向反应。该机具有以下特点:

  • 两个控制输入:差动稳定器偏转delta_stab在度数,和舵偏转delta_rud在度。

  • 三个测量输出:滚转率p单位:deg/s,偏航速率r单位为度/秒,和横向加速度yac在g的。

  • 一个计算输出:侧滑移角β

名义横向模型LateralAxis有四种状态:

  • 横向速度v

  • 偏航率r

  • 滚转率p

  • 横摇角φ

这些变量由状态空间方程联系起来:

x ˙ 一个 x + B u y C x + D u

在哪里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,“——”)标题(标称模型的相对误差是频率的函数)传说(“稳定器”“舵”“位置”“西北”);

图中包含一个轴对象。axis对象包含2个line类型的对象。这些物件代表稳定器、舵。

图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})传说(“名义”“不安”

图中包含2个轴对象。坐标轴对象1,标题为F r o m: blank de l ta indexOf s baseline ta b blank blank t o: blank b e ta包含11个类型为line的对象。这些对象表示名义上的,摄动的。坐标轴对象2,标题为F r o m: blank de l ta indexOf s baseline ta b blank blank t o: blank b e ta包含11个类型为line的对象。这些对象表示名义上的,摄动的。

图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?的wcgainCommand可以帮助您直接回答这个困难的问题,而不需要大量的网格划分和模拟。

计算最坏情况增益作为频率的函数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])“名义上的植物”“最坏的”“位置”“西南”);

图中包含2个轴对象。标题为“kinf的性能分析”的Axes对象1包含2个类型为line的对象。这些对象表示名义工厂,最坏情况。标题为kmu的Performance analysis的Axes对象2包含2个类型为line的对象。这些对象表示名义工厂,最坏情况。

第一个图显示,当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(“舵踏板指令”

图中包含2个轴对象。带有标题的轴对象1横向棒命令包含一个类型为line的对象。带有标题的坐标轴对象2方向舵踏板命令包含一个类型为line的对象。

现在可以计算和绘制测试命令的理想响应、标称响应和最差情况响应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的闭环响应

图中包含2个轴对象。Axes对象1包含5个line类型的对象。这些对象代表驱动输入,理想,名义,扰动。坐标轴对象2包含5个line类型的对象。这些对象代表驱动输入,理想,名义,扰动。

闭环响应几乎是相同的名义和最坏情况闭环系统。请注意,飞机的滚速响应最初很好地跟踪滚速命令,然后偏离该命令。这是由于在飞机模型中以0.024 rad/秒的速度出现了右半平面零。

另请参阅

|

相关的话题