主要内容

客机的容错控制

这个例子展示了如何调整一个固定结构的控制器为多个工作模式的工厂。

背景

这个例子讨论了客机在升降舵和副翼执行器发生故障时的容错飞行控制。飞行控制系统必须在标称运行和退化条件下保持稳定性,并满足性能和舒适度要求,在退化条件下,一些执行器由于控制面受损而不再有效。在任何情况下都必须减轻阵风。这个应用程序有时被调用可靠的控制因为必须在极端的飞行条件下保持飞机的安全。

飞机模型

在Simulink中对控制系统进行建模。金宝app

目录(fullfile (matlabroot,“例子”“控制”“主要”))%添加示例数据open_system (“faultTolerantAircraft”)

飞行器被建模为一个具有以下状态变量的刚性六阶状态空间系统(速度单位为mph,角速度单位为deg/s):

  • U: x轴速度

  • W: z轴速度

  • 问:俯仰率

  • V: y轴速度

  • p:滚转率

  • 接待员:偏航率

状态向量以及飞行路径组合角速率mu (deg/s)、攻角alpha (deg)和侧滑角beta (deg)均可用于控制。控制输入是右升降舵、左升降舵、右副翼、左副翼和方向舵的偏转。所有的偏转都是度数。电梯对称排列以形成攻角。副翼以反对称组合来产生滚转运动。这将导致3个控制动作,如Simulink模型中所示。金宝app

该控制器由内环的状态反馈控制和外环的MIMO积分作用组成。增益矩阵KiKx分别是3 × 3和3 × 6,因此控制器有27个可调参数。

执行器故障

我们使用9x5矩阵来编码标称模式和各种执行器故障模式。每一行对应一个飞行状态,零表示对应的偏转面故障。

OutageCases = [1 1 1 1 1;额定运行方式0 1 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;左升降舵和左副翼故障];

设计要求

控制器:

  1. 提供良好的跟踪性能在mu, alpha和beta在标称工作模式下与适当的三轴解耦

  2. 在风速为每小时10英里的情况下保持性能

  3. 在执行机构停机时限制稳定性和性能退化。

要表达第一个需求,您可以使用类似lqg的成本函数,它可以消除集成跟踪误差e以及控制努力u

$$ J = lim_{T \right \ inty} E \left({1 \ / T} int_0^T \| W_e \|^2 + | W_u u \|^2 dt \right)。$$

对角线的重量W_e美元W_u美元是交易响应性和控制努力的主要调整旋钮,强调某些渠道优于其他渠道。使用WeightedVariance要求表达这个成本函数,并放松性能权重W_e美元根据中断场景的因素2。

我们= diag([10 20 15]);吴=眼(3);名义跟踪要求SoftNom = TuningGoal。WeightedVariance (“选点”,{“e”“u”吴},blkdiag(我们),[]);SoftNom。模型= 1;%名义模型%跟踪停机条件的要求SoftOut = TuningGoal。WeightedVariance (“选点”,{“e”“u”}, blkdiag(我们/ 2,吴),[]);SoftOut。模型= 9;%故障场景

为了减轻阵风,限制误差信号的方差e因为白噪音工作组驱动阵风模型。同样,对中断场景使用不那么严格的要求。

名义阵风减轻需求HardNom = TuningGoal。方差(“工作组”“e”, 0.02);HardNom。模型= 1;停机条件下减少阵风的要求HardOut = TuningGoal。方差(“工作组”“e”, 0.1);HardOut。模型= 9;

名义飞行控制器调谐

设置风速为10英里/小时,初始化控制器的可调状态反馈和积分器增益。

GustSpeed = 10;Ki =眼(3);Kx = 0(3、6);

使用slTuner接口来设置调优任务。列出要调优的块,并通过变化指定九种飞行条件停机变量在Simulink模型中。金宝app因为你只能改变标量参数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);
Final: Soft = 22.6, Hard = 0.9998, Iterations = 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]);
Final: Soft = 25.7, Hard = 0.99919, Iterations = 427

最优性能(LQG成本的平方根$ J $)只比名义上的调优略差(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 (fullfile (matlabroot,“例子”“控制”“主要”))%删除示例数据

另请参阅

(金宝app仿真软件控制设计)|(金宝app仿真软件控制设计)||

相关的话题