明确的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控制器,您必须为每个控制器状态指定范围,参考信号,操纵变量和测量的干扰。这样做确保了二次规划问题是解决这些定义的空间范围。如果在运行时其中一个独立变量超出它的范围,控制器返回一个错误状态和操纵变量设置为他们最后的值。因此,重要的是,你不要低估这些范围。
生成合适的范围,获得一些信息在控制器状态。
显示输入和输出扰动模型的大小
控制器的输入和输出扰动模型,使用getindist
和getoutdist
,分别。
大小(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)
另请参阅
功能
generateExplicitMPC
|generateExplicitRange
|generateExplicitOptions
|简化
|generatePlotParameters
|plotSection
|mpcmoveExplicit
|sim卡