主要内容

明确的MPC控制不稳定极点的飞机

这个例子展示了如何使用显式的MPC与饱和执行器控制不稳定的飞机。

例如控制相同的植物使用传统MPC控制器,明白了MPC控制不稳定极点的飞机

定义飞机模型

以下线性定常模型来源于线性化的纵向动力学飞机在3000英尺的高度和速度0.6马赫,[1]。开环模型状态空间矩阵有以下:

-32.174 (-0.0151 - -60.5651 = 0;-0.0001 -1.3411 0.9929 0;0.00018 43.2541 -0.86939 0;0 0 1 0);B = [-2.516 - -13.136;-0.1689 - -0.2514;-17.251 - -1.5766;0 0];C = [0 1 0 0;0 0 0 1); D = [0 0; 0 0];

输入、状态和输出的线性模型表示偏离各自名义值的非线性模型的操作点。

在这里,状态变量是:

  • 前进速度(米/秒)

  • 攻角(度)

  • 球场速度(度/秒)

  • 螺旋角(度)

电梯,襟副翼操纵变量的角度,在度。攻击和俯仰角度测量输出调节。

创建工厂,并指定初始状态为零。

工厂= ss (A, B, C, D);x0 = 0 (4,1);

开环系统是不稳定的。

潮湿(植物)
极点频率衰减时间常数(rad /秒)(-7.50秒)e 03 1.34 + 5.56 e-02i e-01 5.61 e-02 1.33 e + 02 -7.50 e 03 - 5.56 5.61 1.34 e-02i e-01 e-02 1.33 e + 02 5.45 e + 00 -1.00 -1.83 5.45 e + e + 00 00 e-01 -7.66 e + 00 1.00 1.30 7.66 e + e + 00 00 e-01

MPC控制器设计

获得一个显式的MPC控制器,首先必须设计一个传统(隐性)模型预测控制器,能够实现控制目标。

MV约束

被操纵的变量都是+ / - 25度之间的约束。使用规模因素促进MPC调优。典型的选择规模因素上/下限的操作范围。

MV =结构(“最小值”{-25、-25},“马克斯”25},{25日,“ScaleFactor”,{50,50});

OV规模因素

指定工厂的规模因素输出。

OV =结构(“ScaleFactor”,{60 60});

权重

控制的任务是获得零炮检距分段常数引用,同时避免不稳定由于输入饱和。因为MV和OV变量已经爬在MPC控制器,MPC权重无量纲和应用扩展MV和OV值。

对于这个示例,强调跟踪指定的攻角较大的重量比用于螺旋角。

重量=结构(“MV”[0 0],“MVRate”(0.1 - 0.1),机汇的,200年[10]);

构建传统MPC控制器

创建一个MPC控制器与模型指定的工厂,样品时间为0.05秒。(20 Hz), 10步的预测地平线,地平线控制2步骤,和先前指定的重量、约束和规模的因素。

mpcobj = mpc(植物,0.05,10、2、重量、MV, OV);

计算闭环直流增益矩阵

计算稳态输出灵敏度的闭环。零值意味着测量装置的输出可以跟踪所需的输出参考定位点。

cloffset (mpcobj)
- - >将模型转换为离散时间。- - >输出假设干扰# 1添加到测量输出集成的白噪声。- - >输出假设扰动添加到# 2集成白噪声测量输出。- - >”模型。噪音”是空的。假设白噪声在每个测量输出。ans e-11 * 0.1086 -0.0057 0.1222 -0.0355 = 1.0

明确的政策委员会

它可以证明,约束MPC控制器的状态空间分割成许多多面区域,在每个区域MPC控制律是一个特定的affine-in-the-state-and-reference函数,用系数取决于该地区。明确的MPC计算所有这些地区,和它们的相对控制法律,离线。在线,控制器只是选择并应用预先计算的解决方案相对于当前的地区,所以它没有解决约束的二次优化问题在每个控制步骤。明确MPC的更多信息,请参阅明确的政策委员会

产生明确的MPC控制器

明确MPC相当于执行显式的分段仿射版本的MPC控制律由传统的MPC控制器。生成一个显式的MPC控制器从传统MPC控制器,您必须为每个控制器状态指定范围,参考信号,操纵变量和测量的干扰。这样做确保了二次规划问题是解决这些定义的空间范围。如果在运行时其中一个独立变量超出它的范围,控制器返回一个错误状态和操纵变量设置为他们最后的值。因此,重要的是,你不要低估这些范围。

生成合适的范围,获得一些信息在控制器状态。

显示输入和输出扰动模型的大小

控制器的输入和输出扰动模型,使用getindistgetoutdist,分别。

大小(getindist (mpcobj))大小(getoutdist (mpcobj))
输出为0的状态空间模型,0输入,和0。2输出状态空间模型,2个输入,和2个州。

没有输入扰动模型,而输出扰动模型有2个州。

显示控制器的初始状态

显示控制器初始状态,使用mpcstate

mpcstate (mpcobj)
MPCSTATE对象和字段植物:[0 0 0 0]干扰:[0 0]噪音:[1 x0双]LastMove:[0 0]协方差:[6 x6双)

正如预期的那样,使用的植物模型卡尔曼估计有4个州,扰动模型增加了另一个2个,还有2个需要的最后价值操纵变量,共有8个州。

获得一系列结构初始化

创建一系列结构,您可以为每个州指定范围,参考,和操纵变量,使用generateExplicitRange

范围= generateExplicitRange (mpcobj);

为控制器状态指定范围、引用和操纵变量

MPC控制器状态包括从植物模型,扰动模型,噪声模型,最后一个值的操纵变量,在秩序。设置一个状态变量的范围有时是困难的时候不对应一个物理参数。在这种情况下,多个运行的开环仿真植物典型的参考和干扰信号,包括模型不匹配,建议收集数据,以反映美国的范围。

对于这个示例,高估了实际状态变量的变化范围如下。

range.State.Min (:) = (-600 -90 -50 -90 -90 -90);range.State.Max (:) = (1600 90 50 90 90 90);

指定范围的参考信号

通常你知道所使用的参考信号的实际范围的名义操作点。范围用于生成一个显式的MPC控制器必须至少一样大的实际范围。

range.Reference。最小值=(1;-11年);range.Reference。Max = [11] 1;;

为操纵变量指定范围

如果操纵变量约束,范围用于生成一个显式的MPC控制器必须至少一样大这些限制。

range.ManipulatedVariable。Min = [MV (1) .Min;MV (2)。分钟]- 1;range.ManipulatedVariable。Max = [MV (1) .Max;MV (2)。马克斯]+ 1;

建立明确的MPC控制器

使用generateExplicitMPC命令来获得明确的MPC控制器与先前指定的参数范围。

empcobj = generateExplicitMPC (mpcobj、范围);显示器(empcobj)
发现/未开拓的地区:81/0明确MPC控制器- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -控制器样品时间:0.05(秒)多面区域:81数量的参数:10是解决方案简化:没有状态估计:默认卡尔曼增益- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -“empcobj类型。MPC的原始隐MPC的设计。“empcobj类型。范围的参数的有效范围。“empcobj类型。OptimizationOptions”选项用于不确定型QP计算。“empcobj类型。PiecewiseAffineSolution”区域,并获得在每个解决方案。

加入对相应地区的收益是相同的,其联盟是一个凸集,使用简化命令“准确”方法。这种做法可以减少内存占用的显式MPC控制器不牺牲性能。

empcobjSimplified =简化(empcobj,“准确”);显示器(empcobjSimplified)
区域分析:77/77明确MPC控制器- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -控制器样品时间:0.05(秒)多面区域:77数量的参数:10是解决方案简化:是的状态估计:默认卡尔曼增益- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -“empcobjSimplified类型。MPC的原始隐MPC的设计。“empcobjSimplified类型。范围的参数的有效范围。“empcobjSimplified类型。OptimizationOptions”选项用于不确定型QP计算。“empcobjSimplified类型。PiecewiseAffineSolution”区域,并获得在每个解决方案。

分段仿射区域的数量已经减少了。

沿着给定的部分情节分段仿射分区

你可以画一个2 d部分的控制器状态空间,看看这一部分地区。对于这个示例,图的2 d部分定义的状态空间螺旋角(第四状态变量)与它的引用(第二参考信号)。所以你必须首先创建一个情节结构修复所有的其他州(和参考信号)在各自特定的值范围。

创建一个情节结构的初始化参数

创建一个参数结构,您可以指定2 d部分情节之后,使用generatePlotParameters函数。

plotpars = generatePlotParameters (empcobjSimplified);

指定索引的所有状态变量除了第四(这意味着第四状态变量可以不同)。然后指定一个值为零的固定状态变量。

plotpars.State。指数= (1 2 3 5 6);plotpars.State。值= (0 0 0 0 0);

指定索引的第一参考信号(因此离开第二个允许不同),并修复它的价值为零。

plotpars.Reference。指数= 1;plotpars.Reference。值= 0;

解决两个操纵变量为零。

plotpars.ManipulatedVariable。指数= (1 - 2);plotpars.ManipulatedVariable。值= [0 0];

绘制二维部分

使用plotSection前面定义的命令绘制二维部分。

plotSection (empcobjSimplified plotpars);轴([-10 -10 10])网格包含(螺旋角(x_4)”)ylabel (对螺旋角的参考(r_2) ')

使用仿真软件模拟金宝app

植物模拟闭环控制的线性模型在仿真软件。金宝app为此,MPC控制器块,设置明确的MPC控制器财产empcobjSimplified。在这个例子中,该属性已经设置。

mdl =“empc_aircraft”;open_system (mdl)

使用仿真软件模拟系统从命令行金宝appsim卡命令。

sim (mdl)

打开范围显示飞机的操纵变量和输出响应

open_system (“empc_aircraft / MV”)open_system (“empc_aircraft /攻角响应”)open_system (“empc_aircraft /螺旋角响应”)

闭环反应是相同的传统特色的MPC控制器设计MPC控制不稳定极点的飞机

引用

[1]p . Kapasouris m·阿赞和g·斯坦,“设计反馈控制系统的不稳定的植物与饱和执行器”,Proc, IFAC计算机协会。在非线性控制系统设计,帕加马出版社,pp.302——307, 1990

a [2] a . Bemporad Casavola, e·莫斯卡“非线性控制约束线性系统通过预测参考管理”,IEEE®反式。自动控制,AC-42卷,不。3、340 - 349年,1997页。

bdclose (mdl)

另请参阅

功能

对象

相关的例子

更多关于