主要内容

具有不稳定极点飞行器的显式MPC控制

这个例子展示了如何使用显式模型预测控制控制不稳定飞机的饱和作动器。

有关使用传统MPC控制器控制同一工厂的示例,请参见具有不稳定极点的飞机的MPC控制

定义飞机模型

飞行器线性开环动力学模型具有如下状态空间矩阵:

A = [-0.0151 -60.5651 0 -32.174;-0.0001 -1.3411 0.9929 0;0.00018 43.2541 -0.86939 0;0 0 10 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];

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

plant = ss(A,B,C,D);X0 = 0 (4,1);

操纵变量是升力角和襟副翼角。攻角和俯仰角是测量输出,需要进行调节。

系统的开环响应不稳定。

极(植物)
Ans = -7.6636 + 0.0000i 5.4530 + 0.0000i -0.0075 + 0.0556i -0.0075 - 0.0556i

MPC控制器设计

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

MV约束

两个被操纵的变量都被限制在+/- 25度之间。由于工厂输入和输出具有不同的数量级,您还可以使用比例因子来促进MPC调优。比例因子的典型选择是上限/下限或操作范围。

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

OV约束

两种植物的输出都有限制,以限制在第一个预测水平步的欠冲。另外,为输出指定比例因子。

OV = struct(“最小值”,{[-0.5;负]、[-100;负)},“马克斯”,{[0.5;正]、[正]100;},“ScaleFactor”, {1200});

权重

控制任务是在避免由于输入饱和引起的不稳定的情况下,对分段常数参考值实现零偏移。由于在MPC控制器中MV和OV变量都已缩放,因此MPC权重是无量纲的,并应用于缩放后的MV和OV值。在本例中,使用相同的OV权值对两个输出进行相等的惩罚。

权重= struct(“MV”[0 0],“MVRate”(0.1 - 0.1),机汇的10 [10]);

构造传统MPC控制器

用指定的工厂模型、采样时间和视界创建MPC控制器。

Ts = 0.05;%采样时间P = 10;%预测水平M = 2;%控制水平mpcobj = mpc(plant,Ts,p,m,Weights,MV,OV);

生成显式MPC控制器

显式MPC执行传统MPC控制器定义的MPC控制律的等效显式分段仿射版本。要从传统的MPC控制器生成显式MPC控制器,必须为每个控制器状态、参考信号、操纵变量和测量扰动指定范围。这样做可以确保多参数二次规划问题在由这些范围定义的参数空间中得到解决。

获取一个用于初始化的范围结构

若要获得可以为每个参数指定范围的范围结构,请使用generateExplicitRange命令。

range = generateExplicitRange(mpcobj);
——>转换模型到离散时间。假设添加到测量输出通道#1的输出扰动是集成白噪声。假设添加到测量输出通道#2的输出扰动是集成白噪声。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。

为控制器状态指定范围

MPC控制器状态按顺序包括来自植物模型、扰动模型和噪声模型的状态。当状态与物理参数不对应时,设置状态变量的范围有时很困难。在这种情况下,建议使用典型的参考信号和干扰信号进行多次开环植物模拟,以收集反映状态范围的数据。

range.State.Min(:) = -10000;range.State.Max(:) = 10000;

指定参考信号的范围

通常你知道在工厂的标称工作点上使用的参考信号的实际范围。用于生成显式MPC控制器的范围必须至少与实际范围一样大。

range.Reference.Min = [-1;-11];range.Reference.Max = [1;11];

指定操作变量的范围

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

range.ManipulatedVariable.Min = [MV(1).Min;MV(2)。Min] - 1;range.ManipulatedVariable.Max = [MV(1).Max;MV(2)。Max] + 1;

构造显式MPC控制器

使用generateExplicitMPC命令获取前面指定的参数范围的显式MPC控制器。

mpcobjExplicit = generateExplicitMPC(mpcobj, range);显示器(mpcobjExplicit)
发现/未开拓的地区:483/0明确MPC控制器  --------------------------------------------- 控制器样品时间:0.05(秒)多面区域:483数量的参数:10是解决方案简化:没有状态估计:默认卡尔曼增益  --------------------------------------------- “mpcobjExplicit类型。MPC’的原始隐式MPC设计。“mpcobjExplicit类型。Range'表示有效的参数范围。“mpcobjExplicit类型。OptimizationOptions'用于多参数QP计算的选项。“mpcobjExplicit类型。pieceaffinresolution '用于每个解决方案中的区域和增益。

要连接对应增益相同且并集为凸集的区域对,请使用简化命令使用“准确”方法。这种做法可以在不牺牲性能的情况下减少显式MPC控制器的内存占用。

mpcobjExplicitSimplified =简化(mpcobjExplicit, mpcobjExplicit,“准确”);显示器(mpcobjExplicitSimplified)
区域分析:471/471明确MPC控制器  --------------------------------------------- 控制器样品时间:0.05(秒)多面区域:471数量的参数:10是解决方案简化:是的状态估计:默认卡尔曼增益  --------------------------------------------- “mpcobjExplicitSimplified类型。MPC’的原始隐式MPC设计。“mpcobjExplicitSimplified类型。Range'表示有效的参数范围。“mpcobjExplicitSimplified类型。OptimizationOptions'用于多参数QP计算的选项。“mpcobjExplicitSimplified类型。pieceaffinresolution '用于每个解决方案中的区域和增益。

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

分段仿射分割

您可以查看由显式MPC控制律定义的分段仿射分区的任何2-D部分。

获得用于初始化的plot参数结构

若要获得参数结构,可以在其中指定要绘制的2-D部分,请使用generatePlotParameters函数。

params = generatePlotParameters(mpcobjExplicitSimplified);

为2-D绘图指定参数

在这个例子中,你绘制了俯仰角(第四个状态变量)和它的参考信号(第二个参考信号)。所有其他参数必须固定在各自范围内的值。

修正其他状态变量。

params.State.Index = [1 2 3 5 6];params.State.Value = [0 0 0 0 0];

修正其他参考信号。

params.Reference.Index = 1;params.Reference.Value = 0;

修复操纵变量。

params.ManipulatedVariable.Index = [1 2];params.ManipulatedVariable.Value = [0 0];

绘制二维剖面

使用plotSection命令绘制前面定义的2-D部分。

plotSection (mpcobjExplicitSimplified params);轴([-10 10 -10 10])俯仰角(x_4)) ylabel (俯仰角参考(r_2)

使用Simulink®进行模拟金宝app

要运行此示例,需要Simulink®。金宝app

如果~ mpcchecktoolboxinstalled (“金宝app模型”) disp (运金宝app行此示例需要Simulink(R)。返回结束

在Simulink中模拟线性植物模型的闭环控制。金宝app要做到这一点,对于MPC控制器块,设置显式MPC控制器财产mpcobjExplicitSimplified

mdl =“empc_aircraft”;open_system (mdl) sim (mdl)

所设计的闭环响应与传统MPC控制器相同具有不稳定极点的飞机的MPC控制

参考文献

[1] P. Kapasouris, M. Athans,和G. Stein,“带饱和执行器的不稳定装置反馈控制系统设计”,IFAC Symp非线性控制系统设计,佩加蒙出版社,第302—307页,1990年

[2] A. Bemporad, A. Casavola, E. Mosca,“基于预测参考管理的约束线性系统非线性控制”,IEEE®反式。自动控制, AC-42卷,no。3, pp. 340-349, 1997。

bdclose (mdl)

相关的话题