客机的容错控制
这个例子展示了如何针对工厂的多种运行模式调优固定结构控制器。
背景
本例涉及的是客机在电梯和副翼执行器发生故障时的容错飞行控制。飞行控制系统必须保持稳定,满足性能和舒适度的要求,在名义运行和退化条件下,一些执行机构由于控制表面损坏而不再有效。在任何情况下都必须减轻阵风。这个应用程序有时被称为可靠的控制因为飞机必须在极端飞行条件下保持安全。
飞机模型
控制系统在Simulink中建模。万博1manbetx
目录(fullfile (matlabroot,“例子”,“控制”,“主要”))%添加示例数据open_system (“faultTolerantAircraft”)
该飞机被建模为一个刚性六阶状态空间系统,具有以下状态变量(速度单位为mph,角速率单位为deg/s):
U: x体轴速度
W: z-体轴速度
Q:螺距率
V: y轴速度
P:横摇率
R:偏航角速度
状态矢量可用于控制以及飞行路径的倾斜角速率mu (deg/s),迎角(deg)和侧滑角(deg)。控制输入是右升降舵、左升降舵、右副翼、左副翼和舵的偏转。所有的挠度都是以度为单位的。电梯被对称组合以产生迎角。副翼反对称组合以产生滚转运动。这导致了3个控制动作,如Simulink模型所示。万博1manbetx
该控制器由内环的状态反馈控制和外环的MIMO积分动作组成。增益矩阵Ki
而且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 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倍。
We = diag([10 20 15]);Wu =眼(3);标称跟踪要求SoftNom = TuningGoal。WeightedVariance (“选点”,{“e”,“u”}, blkdiag(We,Wu), []);SoftNom。模型= 1;%名义模型停机条件的跟踪要求SoftOut =调优目标。WeightedVariance (“选点”,{“e”,“u”}, blkdiag(We/2,Wu), []);SoftOut。模型= 2:9;%停机场景
为了缓解阵风,限制误差信号的方差e
因为白噪音工作组
驱动风阵风模型。同样,对停机场景使用不那么严格的要求。
%名义阵风缓解要求HardNom = TuningGoal。方差(“工作组”,“e”, 0.02);HardNom。模型= 1;停机条件下的阵风缓解要求。HardOut =调优目标。方差(“工作组”,“e”, 0.1);HardOut。模型= 2:9;
名义飞行控制器调谐
设置阵风速度为10英里/小时,初始化控制器的可调状态反馈和积分器增益。
GustSpeed = 10;Ki =眼睛(3);Kx = 0 (3,6);
使用slTuner
接口设置调优任务。列出要调优的块,并通过改变停机
变量在Simulink模型中。万博1manbetx因为您只能更改标量参数slTuner
的每个条目所取的值停机
向量。
OutageData = struct(...“名字”,{“停机(1)”,“中断(2)”,“停机(3)”,“停机(4)”,“停机(5)”},...“价值”,mat2cell(OutageCases,9,[1 1 1 1 1]);ST0 = slTuner(“faultTolerantAircraft”,{“吻”,“Kx”}, OutageData);
使用systune
根据标称要求调整控制器增益。把缓解阵风作为一个硬约束。
[ST,fSoft,gHard] = systune(ST0,SoftNom,HardNom);
最终:软= 22.6,硬= 0.99972,迭代= 300
检索增益值并模拟步进命令的响应,,
对于名义飞行条件和降级飞行条件。所有模拟都包含了阵风效应,红色曲线为标称响应。
Ki = getBlockValue(ST,“吻”);Ki = Ki.d;Kx = getBlockValue(ST,“Kx”);Kx = Kx.d;倾斜角度设定点模拟plotResponses (OutageCases 1 0,0);
攻角设定值模拟plotResponses (OutageCases 0 1 0);
侧滑角设定点模拟plotResponses (OutageCases 0 0 1);
名义响应良好,但性能恶化时,面对执行机构停电是不可接受的。
飞行受损时的控制器调整
为了提高可靠性,重新调整控制器增益,以满足名义工厂的名义要求,以及所有八种停电场景的放松要求。
[ST,fSoft,gHard] = systune(ST0,[SoftNom;SoftOut],[HardNom;HardOut]);
最终:软= 25.7,硬= 0.99643,迭代= 511
最佳性能(LQG成本的平方根)仅略差于名义调优(26 vs. 23)。检索增益值并重新运行模拟(红色曲线为标称响应)。
Ki = getBlockValue(ST,“吻”);Ki = Ki.d;Kx = getBlockValue(ST,“Kx”);Kx = Kx.d;倾斜角度设定点模拟plotResponses (OutageCases 1 0,0);
攻角设定值模拟plotResponses (OutageCases 0 1 0);
侧滑角设定点模拟plotResponses (OutageCases 0 0 1);
该控制器现在为本例中考虑的所有中断场景提供了可接受的性能。该设计可以通过添加诸如最小稳定裕度和增益限制等规格来进一步细化,以避免执行器速率饱和。
rmpath (fullfile (matlabroot,“例子”,“控制”,“主要”))%删除示例数据
另请参阅
systune (slTuner)
(万博1manbetxSimulink控制设计)|slTuner
(万博1manbetxSimulink控制设计)|TuningGoal。WeightedVariance
|TuningGoal。方差