这个例子展示了如何对植物的多个操作模式调的固定结构控制器。
这与在电梯和副翼执行器客机经受断电容错飞行控制例如交易。飞行控制系统必须保持在两个标称操作,并且其中一些致动器不再对控制表面损伤有效由于降解条件下的稳定性和满足性能和舒适性的要求。阵风必须在所有条件下得到缓解。此应用程序有时也被称为可靠的控制因为必须在极端的飞行条件下保持飞机的安全。
在Simulink中对控制系统进行建模。万博1manbetx
目录(fullfile (matlabroot,'例子','控制','主要的'))%添加示例数据open_system(“faultTolerantAircraft”)
飞行器被建模为具有以下的状态变量的刚性第六阶状态空间系统(单元是速度英里和度/ s的角速率):
U:X-体轴速度
W: z轴速度
问:俯仰率
ν:Y型体轴速度
p:滚转率
R:偏航率
状态向量以及飞行路径组合角速率mu (deg/s)、攻角alpha (deg)和侧滑角beta (deg)均可用于控制。控制输入是右升降舵、左升降舵、右副翼、左副翼和方向舵的偏转。所有的偏转都是度数。电梯对称排列以形成攻角。副翼以反对称组合来产生滚转运动。这将导致3个控制动作,如Simulink模型中所示。万博1manbetx
该控制器由内环的状态反馈控制和外环的MIMO积分作用组成。增益矩阵文
和Kx的
是3×3和3×6,分别,所以控制器具有27个的可调参数。
我们使用9X5矩阵来编码标称模式和致动器的各种故障模式。每行对应于一个飞行状态,零指示相应偏转表面的中断。
OutageCases = [...1 1 1 1 1;...额定运行方式0 1 1 1 1;...右电梯故障1 0 1 1 1 1;...%电梯停机1 1 0 1 1;...右副翼故障1 1 1 0 1;...%左侧副翼停运1 0 0 1 1;...左升降舵和右副翼失灵0 1 0 1 1;...右升降舵和右副翼故障0 1 1 0 1;...右升降舵和左副翼故障1 0 1 0 1;...离开%和电梯左侧副翼停运];
控制器:
提供良好的跟踪性能在mu, alpha和beta在标称工作模式下与适当的三轴解耦
在风速为每小时10英里的情况下保持性能
在执行机构停机时限制稳定性和性能退化。
为了表达第一个要求,你可以使用LQG般的成本函数惩罚综合跟踪误差e
以及控制努力u
:
对角线的重量和对于交易的响应速度和控制力度,在其他重点强调某些渠道为主调旋钮。使用WeightedVariance
要求表达这个成本函数,并放松性能重量根据中断场景的因素2。
我们= DIAG([10 20 15]);吴=眼(3);%标称跟踪要求SoftNom = TuningGoal。WeightedVariance (“选点”{“e”,“u”吴},blkdiag(我们),[]);SoftNom。模型= 1;%标称模型对于停运情况%跟踪要求SoftOut = TuningGoal。WeightedVariance (“选点”{“e”,“u”},blkdiag(我们/ 2,吴),[]);SoftOut.Models = 2:9;%中断情形
对于阵风减轻,限制误差信号的方差e
因为白噪音工作组
驱动阵风模型。同样,对中断场景使用不那么严格的要求。
名义阵风减轻需求HardNom = TuningGoal.Variance('WG',“e”,0.02);HardNom.Models = 1;对于停运情况%阵风减缓需求HardOut = TuningGoal.Variance('WG',“e”, 0.1);HardOut。模型= 9;
设置风速为10英里/小时,初始化控制器的可调状态反馈和积分器增益。
GustSpeed = 10;淇=眼(3);KX =零(3,6);
使用slTuner
界面来设置优化任务。列出,待调整的块,并指定通过改变九个飞行条件停机
变量在Simulink模型。万博1manbetx因为你只能改变标量参数slTuner
独立地指定由的每个条目所采取的值停机
向量。
OutageData =结构(...“名字”{'中断(1)','中断(2)','中断(3)','断电(4)',“停机(5)”},...“价值”,mat2cell(OutageCases,9,[1 1 1 1]));ST0 = slTuner (“faultTolerantAircraft”{“吻”,“Kx”}, OutageData);
用systune
调整控制器增益受名义要求。对待阵风减缓的硬约束。
[圣,fSoft gHard] = systune (ST0, SoftNom HardNom);
决赛:软= 22.6,硬= 0.9998,迭代= 301
检索增益值并模拟进入步进命令的响应μ,α,β
对于名义和退化的飞行条件。所有的模拟包括阵风的影响,而红色曲线是标称响应。
Ki = getBlockValue(圣,“吻”);Ki = Ki.d;Kx = getBlockValue(圣,“Kx”);KX = Kx.d;%银行角度设定模拟plotResponses (OutageCases 1 0,0);
角%的攻设定模拟plotResponses(OutageCases,0,1,0);
%侧滑角设定值模拟plotResponses(OutageCases,0,0,1);
名义响应是好的,但在面临执行机构停机时,性能的恶化是不可接受的。
为了提高可靠性,重新调整控制器增益,以满足标称电站的标称要求,以及所有八种停电场景的放松要求。
[圣,fSoft gHard] = systune (ST0 [SoftNom; SoftOut], [HardNom; HardOut]);
决赛:软= 25.7,硬= 0.99919,迭代= 427
最佳性能(LQG成本的平方根)只比名义上的调优略差(26 vs. 23)。检索增益值并重新运行模拟(红色曲线是标称响应)。
Ki = getBlockValue(圣,“吻”);Ki = Ki.d;Kx = getBlockValue(圣,“Kx”);KX = Kx.d;%银行角度设定模拟plotResponses (OutageCases 1 0,0);
角%的攻设定模拟plotResponses(OutageCases,0,1,0);
%侧滑角设定值模拟plotResponses(OutageCases,0,0,1);
现在控制器提供了在这个例子中考虑的所有停运的情况可接受的性能。该设计可以通过添加规格如最小稳定性裕度和增益限制,以免致动器速率饱和进一步细化。
rmpath(完整文件(matlabroot,'例子','控制','主要的'))%删除例如数据
systune (slTuner)
(万博1manbetx仿真软件控制设计)|slTuner
(万博1manbetx仿真软件控制设计)|TuningGoal。WeightedVariance
|TuningGoal。方差