此示例显示如何使用强大的控制工具箱™为活动暂停系统设计强大的控制器。该示例描述了四分之一车暂停模型。然后,它计算了一个
用于标称系统的控制器使用hinfsyn
命令。最后,这个例子展示了如何使用μ- 为全不确定系统设计一种鲁棒控制器的合成。
传统的被动悬浮液在车身和轮组件之间使用弹簧和阻尼器。选择弹簧阻尼特性以强调诸如乘客舒适,道路处理和悬架偏转之类的矛盾的目标之一。主动悬架允许设计人员使用底盘和轮组件之间的反馈控制器液压执行器来平衡这些目标。
这个例子使用了一个四分之一车的主动悬架系统模型(见图1) (千克)表示汽车底盘(车身)和质量 (以公斤为单位)表示车轮总成。春天 和阻尼器 表示放置在车身和车轮总成之间的被动式弹簧和减震器。春天 模拟充气轮胎的可压缩性。变量 , , 和 (全部米)分别是车身旅行,车轮行程和道路干扰。力量 (单位为千牛顿)应用于车身和车轮总成之间,由反馈控制,表示悬架系统的主动组件。
图1:主动悬架四分之一车模型。
与符号 ,四分之一车模型的线性化状态空间方程是:
构建状态空间模型qcar
代表这些方程。
%物理参数mb = 300;%公斤mw = 60;%公斤b = 1000;% N / m / sKs = 16000;% N / mkt次方= 190000;% N / m%的状态矩阵A = [0 1 0 0;[-ks -bs ks bs]/mb;...0 0 0 1;[ks bs -ks-kt -bs] / mw];B = [0 0;0 1E3 / MB;0 0;[kt -1e3] / mw];C = [1 0 0 0;1 0 -1 0;A2,:)];d = [0 0; 0 0; B(2,:)]; qcar = ss(A,B,C,D); qcar.StateName = {“身体旅行(m)”;'Body Vel(M / s)';...“轮旅行(m)”;“轮韦尔(m / s)”};qcar。InputName = {“r”;“fs”};qcar。OutputName = {“xb”;“sd”;“ab”};
执行器到车身行程和加速度的传递函数有一个虚轴零,固有频率为56.27 rad/s。这被称为tire-hop频率.
tzero (qcar ({“xb”,“ab”},“fs”)))
ans =2×1复杂-0.0000 +56.2731i -0.0000 -56.2731i
类似地,致动器到悬架偏转的传递函数具有自然频率22.97 rad / s的虚轴零。这被称为rattlespace频率.
0 (qcar (“sd”,“fs”)))
ans =2×1复杂0.0000 +22.9734i
道路扰动影响汽车和悬架的运动。乘客的舒适度与较小的车身加速度有关。允许的悬挂行程受到执行机构位移的限制。从道路干扰和致动器力到车身加速度和悬挂位移绘制开环增益。
Bodemag(qcar({“ab”,“sd”},“r”),“b”qcar ({“ab”,“sd”},“fs”),“r”, {100});传奇(“道路干扰(r)”,“执行力(fs)”,'地点',“西南”) 标题({“从道路距离(r)和执行器力(fs)中获得的增益”;'对身体加速(ab)和悬架旅行(SD)'})
由于虚拟轴零的存在,反馈控制不能改善道路干扰的响应 身体加速 轮胎跳动频率,从 暂停偏转 以响动空间频率。而且,因为关系 以及车轮位置的事实 大约是 在低频率(小于5 rad/s)下,乘客的舒适性和悬挂挠度之间存在固有的平衡:在低频率下,任何车身旅行的减少都会导致悬挂挠度的增加。
用于主动悬架控制的液压作动器之间是连接着车身质量的 车轮装配质量 .公称执行器动力学用一阶传递函数表示 最大位移0.05米。
ActNom = tf(1,[1/60 1]);
这个公称模型仅近似于执行器的物理动力学。我们可以使用一系列致动器模型来解释致动器和四分之一车模型中的建模误差和可变性。这类模型由一个具有频率依赖性的不确定性的标称模型组成。在低频,低于3 rad/s,模型可以从其标称值变化高达40%。在3 rad/s左右,百分比变化开始增加。不确定度在15 rad/s时超过100%,在大约1000 rad/s时达到2000%。加权函数 用频率来调制不确定度。
Wunc =补足重量的东西(3)0.40,15日;unc = ultidyn (“unc”[1],“SampleStateDim”5);ACT = ACTNOM *(1 + WENC * UNC);Act.InputName =.“u”;的行为。OutputName =“fs”;
结果行为
是一种不确定的执行器状态空间模型。绘制20个样本值的波德响应行为
并与标称值进行比较。
RNG('默认')BODE(行为,“b”,行动。NominalValue,'r +', logspace (3120))
主要控制目标是根据乘客舒适度和道路处理,这与车身加速度有关 和中止旅行 .影响控制设计的其他因素包括道路扰动的特性、反馈传感器测量的质量以及可用控制力的限制。使用 在综合算法中,我们必须将这些目标表示为一个单代价函数来最小化。这可以如图2所示完成。
图2:抗干扰公式。
反馈控制器使用测量 暂停行程 和身体加速 计算控制信号 驱动液压执行器。外界有三种干扰源:
路上的障碍 ,建模为标准化信号 由权函数形成的 .为了模拟7厘米级的宽带道路偏转,我们使用恒定重量
两个测量的传感器噪声,建模为归一化信号 和 由加权函数形成 和 .我们使用 和 模拟强度0.01和0.5的宽带传感器噪声。在更现实的设计中,这些权重将是频率,取决于模型位移和加速度传感器的噪声谱。
控制目标可以作为一个重新解释干扰拒绝目标:减少干扰的影响 在控制努力的加权组合上 ,悬架旅行 和身体加速度 .当使用 Norm(峰值增益)来衡量“影响”,这相当于设计一个最小化 扰动输入的范数 误差信号 .
创建图2的加权函数并标记其I / O通道以促进互连。使用高通滤波器 惩罚控制信号的高频内容,从而限制控制带宽。
WROAD = SS(0.07);wrad.u ='d1';Wroad。y =“r”;Wact = 0.8*tf([1 50],[1 500]);Wact。u =“u”;Wact。y =“e1”;Wd2 = ss (0.01);Wd2。u =“d2”;Wd2。y =“Wd2”;Wd3 = ss (0.5);Wd3。u =“d3”;wd3.y =“Wd3”;
为来自道路干扰的增益指定闭环目标 暂停偏转 (操纵)和身体加速度 (舒适)。由于执行器不确定性和虚轴零,只试图衰减低于10 rad / s的干扰。
Handlingtarget = 0.04 * TF([1/8 1],[1/80 1]);ComfortTarget = 0.4 * TF([1 / 0.45 1],[1/150 1]);targets = [handlingtarget;舒适植物];Bodemag(qcar({“sd”,“ab”},“r”) * Wroad,“b”目标,“r——”、{1000})、网格标题(“应对道路干扰”)传说('开环',“闭环目标”)
相应的性能权重 是这些舒适性和处理目标的互核。调查乘客舒适与道路处理之间的权衡,构建三组重量 对应三种不同的权衡:舒适( ),平衡( )和处理( ).
%三个设计点Beta =重塑([0.01 0.5 0.99],[1 1 3]);Wsd = beta / HandlingTarget;Wsd。u =“sd”;Wsd。y ='e3';Wab = (1-beta) / ComfortTarget;war。u =“ab”;war。y =“e2”;
最后,使用连接
要构造一个模型qcaric
图2的框图。请注意,qcaric
是三个模型的数组,一个用于每个设计点
.还,qcaric
是一个不确定的模型,因为它包含不确定的执行器模型行为
.
sdmeas = sumblk(“y1 = sd + Wd2”);abmeas = sumblk('y2 = ab + wd3');ICinputs = {'d1';“d2”;“d3”;“u”};ICoutputs = {“e1”;“e2”;'e3';“日元”;“日元”};qcaric = connect(qcar(2:3,:),行为,wrad,wact,wab,WSD,WD2,WD3,...SDMEAS,ABMEAS,ICINPUTS,ICOUTPUTS)
Qcaric = 3x1不确定连续时间状态空间模型阵列。每个模型有5个输出,4个输入,9个状态和以下不确定块:unc:不确定1x1 LTI,峰值增益= 1,1次Type "qcaric。查看标称值,“get(qcaric)”查看所有属性,以及“qcaric。“不确定性”与不确定元素相互作用。
用hinfsyn
计算一个
为每一个混合因子值的控制器
.
ncont = 1;% 1控制信号,un mea = 2;%两个测量信号,SD和ABK = ss (0 (ncont n mea 3));γ= 0 (3,1);为我= 1:3 (K(:,:我)~,γ(i)) = hinfsyn (qcaric(:,:我),n mea, ncont);结束γ
γ=3×10.9405 0.6727 0.8892
三个控制器实现了闭环控制 分别为0.94、0.67和0.89。建立相应的闭环模型,比较道路扰动增益 用于被动和主动悬架。观察所有三个控制器将悬挂偏转和车身加速度降低到响动空间频率(23 rad/s)以下。
%闭环模型K.u = {“sd”,“ab”};梁龙骥=“u”;CL =连接(qcar行动。名义,K,“r”,{“xb”;“sd”;“ab”});Bodemag(QCar(:,“r”),“b”CL (:,: 1),r -。,...CL (:,:, 2),'m-。'CL (:,: 3),'k-。',{1140}),网格传奇('开环',“安慰”,'均衡',“处理”,'地点','东南')标题(车身移动,悬挂偏转,以及由于道路造成的车身加速度)
为了进一步评估三种设计,使用道路干扰信号进行时域仿真 代表一个高度为5厘米的路面突起。
%道路干扰t = 0:0.0025:1;roaddist = 0(大小(t));roaddist (1:10 1) = 0.025 * (1-cos(8 *π* t (1:10 1)));%闭环模型SIMK =连接(qcar行动。名义,K,“r”,{“xb”;“sd”;“ab”;“fs”});%模拟p1 = lsim (qcar (: 1), roaddist, t);日元= lsim (SIMK (1:4, 1, 1), roaddist, t);y2 = lsim (SIMK (1:4, 1, 2), roaddist, t);y3 = lsim (SIMK (1:4, 1, 3), roaddist, t);%绘制结果次要情节(211)情节(t, p1 (: 1),“b”、t、y₁(:1),“r”。, t, y2 (: 1),'m。't y3 (: 1),'k。't roaddist‘g’)标题(“身体旅行”),Ylabel(“x_b (m)的)次要情节(212)情节(t, p1 (:, 3),“b”、t、y₁(:3)“r”。, t, y2 (:, 3),'m。't y3 (:, 3),'k。't roaddist‘g’)标题('身体加速'),Ylabel(“a_b (m / s ^ 2)”)
次要情节(211)情节(t, p1 (:, 2),“b”、t、y₁(:,2),“r”。, t, y2 (:, 2),'m。't y3 (:, 2),'k。't roaddist‘g’)标题(“悬架挠度”),Xlabel('时间''),Ylabel(“s_d (m)的)次要情节(212)情节(t, 0(大小(t)),“b”,t,y1(:,4),“r”。, t, y2 (:, 4),'m。't y3 (:, 4),'k。't roaddist‘g’)标题(“控制力”),Xlabel('时间''),Ylabel(f (kN)”)传说('开环',“安慰”,'均衡',“处理”,“道路干扰”,'地点','东南')
观察到控制器强调控制器强调悬架偏转的乘客舒适度和最大的机身加速度最小。“平衡”设计实现了身体加速度和悬架偏转之间的良好折衷。
到目前为止,你设计的 满足性能目标的控制器名义上的执行器模型。如前所述,该模型只是真正的执行器的近似值,并且需要确保在模型错误和不确定性面前保持控制器性能。这就是所谓的强劲的性能.
下一个使用
- 用于设计一个控制器的控制器,实现整个执行器模型的鲁棒性能。使用不确定模型与Musyn函数合成鲁棒控制器qcaric (:: 2)
对应“平衡”性能(
).
[Krob, rpMU] = musyn (qcaric (:,: 2), n mea, ncont);
D-K迭代总结:----------------------------------------------------------------- 强劲的性能符合订单 ----------------------------------------------------------------- Iter K步峰μ适合D 1 1.193 1.125 1.139 4 2 3 0.9991 0.946 0.9559 1.091 - 1.025 1.033 - 4 4 4 0.9358 0.932 0.9348 4 5 6 0.9103 0.907 0.9096 0.9096 0.9057 0.9114 8 8 7 0.9091 - 0.90666获得的最佳健壮性能:0.906
使用强大的控制器模拟对道路凸起的标称响应克罗布
.这些反应与“平衡”的反应相似。
控制器。
%闭环模型(公称)Krob。u = {“sd”,“ab”};Krob。y =“u”;SIMKrob =连接(qcar行动。Krob名义,“r”,{“xb”;“sd”;“ab”;“fs”});%模拟p1 = lsim (qcar (: 1), roaddist, t);日元= lsim (SIMKrob (1:4, 1), roaddist, t);%绘制结果clf,次要情节(221)情节(t, p1 (: 1),“b”、t、y₁(:1),“r”t roaddist‘g’)标题(“身体旅行”),Ylabel(“x_b (m)的)次要情节(222)情节(t, p1 (:, 3),“b”、t、y₁(:3)“r”)标题('身体加速'),Ylabel(“a_b (m / s ^ 2)”)次要情节(223)情节(t, p1 (:, 2),“b”、t、y₁(:,2),“r”)标题(“悬架挠度”),Xlabel('时间''),Ylabel(“s_d (m)的)次要情节(224)情节(t, 0(大小(t)),“b”,t,y1(:,4),“r”)标题(“控制力”),Xlabel('时间''),Ylabel(f (kN)”)传说('开环',“稳健设计”,'地点','东南')
接下来模拟从不确定模型集中随机选择的100个执行器型号的道路凸起的响应行为
.
RNG('默认'),nsamp = 100;CLF.具有平衡H-Infinity控制器的%不确定闭环模型CLU =连接(qcar法案,K (:,:, 2),“r”,{“xb”,“sd”,“ab”});lsim (usample (CLU, nsamp),“b”,健身房。名义,“r”、roaddist t)标题(“名义上的“平衡”的设计”)传说(“不安”,“名义”,'地点','东南')
具有平衡鲁棒控制器的%不确定闭环模型CLU =连接(Krob qcar,行动,“r”,{“xb”,“sd”,“ab”});lsim (usample (CLU, nsamp),“b”,健身房。名义,“r”、roaddist t)标题(健壮的“平衡”设计的)传说(“不安”,“名义”,'地点','东南')
强大的控制器克罗布
减少模型不确定性引起的可变性,并提供更一致的性能。
强大的控制器克罗布
与工厂相比有相对较高的次序。您可以使用模型约简函数找到一个低阶控制器,以实现相同水平的鲁棒性能。用减少
生成不同阶数的近似。
%创建减少订单控制器的数组ns =订单(krob);役= 1:ns;Kred =减少(krob,办公室);
下一个使用robgain
计算每种降阶近似的鲁棒性能裕度。当闭环增益小于时,达到了性能目标
.稳健的性能保证金测量可以持续多重不确定性而不会降低性能(超过
).幅度为1或以上表示我们可以承受指定不确定性的100%。
%计算每个减少的控制器的鲁棒性能边际γ= 1;CLP =融通(qcaric (:,: 2), kr);为k=1:NS PM(k) = robgain(CLP(:,:,k),gamma);结束%比较降阶和全阶控制器的鲁棒性能.LowerBound PMfull =点(结束);情节(StateOrders[点。下界),'b-o',...StateOrders repmat (PMfull [1 NS]),“r”);网格标题(鲁棒性能裕度作为控制器顺序的函数)传说(“降阶”,“全部订单”,'地点','东南')
可以使用鲁棒性能大于1的最小控制器顺序。
或者,您可以使用musyn
直接调整低阶控制器。这通常比全阶控制器的后验约简更有效克罗布
.例如,调整三阶控制器以优化其鲁棒性能。
%CREATE可调3个订单控制器K =可调参数(“K”3 ncont n mea);闭环系统CL的%曲调鲁棒性能cl0 = lft(qcaric(:,:,2),k);[cl,rp] = musyn(cl0);
D-K迭代总结:----------------------------------------------------------------- 强劲的性能符合订单 ----------------------------------------------------------------- Iter K步峰μD适合10 2 D 1 1.189 1.104 1.12 1.076 1.062 1.073 10 3 0.9899 0.9702 0.9874 10 4 6 10 5 0.9189 0.9153 0.9212 0.9226 0.9222 0.9333 0.9199 0.9159 0.9255 10最好实现了稳健性能:0.915
调谐控制器具有性能RP = 0.92
,非常接近克罗布
.您可以看到它的Bode响应使用
K3 = getBlockValue (CL,“K”);波德(K3)