主要内容

带输出约束的直流伺服电机显式MPC控制

这个例子展示了如何使用显式MPC控制直流伺服机构在电压和轴扭矩约束下。

有关使用传统隐式MPC的类似示例,请参见具有输出量约束的直流伺服电机

定义直流伺服电机型号

定义了线性开环动态模型植物.变量τ为作为输出约束的最大允许转矩。

(植物、τ)= mpcmotormodel;

指定MPC控制器的输入和输出信号类型。第二个输出,扭矩,是无法测量的。

植物= setmpcsignals(植物,“MV”,1,“莫”,1,“UO”2);

指定的约束

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

MV =结构(“最小值”, -220,“马克斯”, 220,“ScaleFactor”, 440);

为了限制显式MPC设计的复杂性,仅在前三个预测步骤中施加扭矩输出约束。

OV =结构(“最小值”,{正无穷,τ,τ;τ;负)},...“马克斯”,{正无穷,τ;τ,τ;正]},...“ScaleFactor”,{2π* 2 *τ});

指定优化权重

控制任务是使角位置的跟踪偏移量为零。由于您只有一个操纵变量,轴扭矩可以通过将其权重设置为零而在其约束范围内浮动。

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

创建MPC控制器

创建带有采样时间的MPC控制器Ts,预测地平线p,控制视界

t = 0.1;p = 10;m = 2;mpcobj = mpc(植物、t、p、m,重量、MV, OV);

生成显式MPC控制器

显式MPC执行传统隐式MPC控制器定义的MPC控制律的等效显式分段仿射。为了从隐式MPC控制器生成显式MPC控制器,必须为每个控制器状态、参考信号、操纵变量和测量扰动指定范围,以便在这些范围定义的参数集中解决多参数二次规划问题。

创建一个范围结构,您可以随后为每个参数指定范围。

范围= generateExplicitRange (mpcobj);
——>模型转换为离散时间。假设对测量的输出通道#1没有增加任何干扰。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。

指定控制器状态的范围

MPC控制器状态依次包括被控对象模型、扰动模型和噪声模型的状态。当状态与物理参数不对应时,设置状态变量的范围有时很困难。在这种情况下,为了收集状态范围数据,建议使用典型参考信号和干扰信号运行多个开环仿真。

range.State.Min (,) = -1000;range.State.Max (,) = 1000;

通常你知道在电厂标称工作点使用的参考信号的实际范围。用于生成显式MPC控制器的范围必须至少与实际范围一样大。注意,扭矩参考范围固定在0因为它的权值为零。

range.Reference.Min = (5; 0);range.Reference.Max = (5; 0);

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

range.ManipulatedVariable.Min = MV。分钟- 1;range.ManipulatedVariable.Max = MV。Max + 1;

创建具有指定范围的显式MPC控制器。

mpcobjExplicit = generateExplicitMPC (mpcobj、范围)
发现/未开拓的地区:75/0明确MPC控制器  --------------------------------------------- 控制器样品时间:0.1(秒)多面区域:75数量的参数:6是解决方案简化:没有状态估计:默认卡尔曼增益  --------------------------------------------- “mpcobjExplicit类型。为原始的隐式MPC设计。“mpcobjExplicit类型。'的有效参数范围。“mpcobjExplicit类型。OptimizationOptions'用于多参数QP计算的选项。“mpcobjExplicit类型。piecewiseaffinsolution '的区域和增益在每个解决方案。

绘制分段仿射划分

你可以回顾任何由显式MPC控制律定义的分段仿射划分的二维部分。为此,首先创建一个参数结构,您可以在其中指定要绘制哪个2-D区域。

params = generatePlotParameters (mpcobjExplicit);

在本例中,您将绘制第一个状态变量与第二个状态变量的关系图。所有其他参数必须固定在其各自范围内的值。

修正其他状态变量。

params.State.Index = [3 4];params.State.Value = [0 0];

修复参考信号。

params.Reference.Index = [1 2];params.Reference.Value = [pi 0];

解决操纵变量。

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

绘制指定的二维剖面。

plotSection (mpcobjExplicit params);轴([-。3.3 -2 -2]);网格标题(分区的部分(x3 (t) = 0 x4 (t) = 0, u (t - 1) = 0, r (t) =π)”)包含(“x1 (t)”) ylabel (“x2 (t)”

模拟控制器使用sim卡函数

比较隐式MPC和显式MPC控制器的闭环仿真结果。

Tstop = 8;%秒Tf =圆(Tstop / Ts);%模拟迭代R = [0];%的参考信号(y1, t1, u1) = sim (mpcobj, Tf, r);%仿真与传统MPC(y2, t2, u2) = sim (mpcobjExplicit, Tf, r);%模拟显式MPC
——>模型转换为离散时间。假设对测量的输出通道#1没有增加任何干扰。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。

仿真结果是一致的。

流(隐式MPC轨迹和显式MPC轨迹的区别= %g\n'...规范(u2-u1) +规范(y2-y1));
隐式MPC轨迹与显式MPC轨迹之差= 7.57032e-12

使用仿真软件模拟万博1manbetx

要运行此示例,需要Simulink®。万博1manbetx

如果~ mpcchecktoolboxinstalled (“万博1manbetx模型”) disp (运万博1manbetx行这个示例需要Simulink(R)。返回结束

在Simulink中对线性被控对象模型进行闭环控制仿真。万博1manbetx显式MPC控制器块被配置为使用mpcobjExplicit作为控制器。

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

闭环响应与设计的传统MPC控制器相同具有输出量约束的直流伺服电机

次最优显式MPC控制

要减少内存占用,可以使用简化函数来减少分段仿射解区域的数量。例如,可以删除切比雪夫半径小于0.08.然而,您所付出的代价是控制器的性能是次优的。

mpcobjExplicitSimplified =简化(mpcobjExplicit,“半径”, 0.08)
要分析的区域:75/ 75——>删除37个区域。明确的MPC控制器  --------------------------------------------- 控制器样品时间:0.1(秒)多面区域:38号参数:6是解决方案简化:是的状态估计:默认卡尔曼增益  --------------------------------------------- “mpcobjExplicitSimplified类型。为原始的隐式MPC设计。“mpcobjExplicitSimplified类型。'的有效参数范围。“mpcobjExplicitSimplified类型。OptimizationOptions'用于多参数QP计算的选项。“mpcobjExplicitSimplified类型。piecewiseaffinsolution '的区域和增益在每个解决方案。

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

比较了次优显式MPC和显式MPC的闭环仿真结果。

[y3,t3,u3] = sim(mpcobjExplicitSimplified, Tf, r);
——>模型转换为离散时间。假设对测量的输出通道#1没有增加任何干扰。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。

模拟结果是不一样的。

流(精确和次优显式MPC轨迹之间的差异= %g\n'...规范(u3-u2) +规范(y3-y2));
精确和次最优显式MPC轨迹之间的差异= 439.399

阴谋的结果。

图次要情节(3、1、1)的阴谋(t1, y1 (: 1), t3、y3 (: 1),“o”网格)标题(“角(rad)”)传说(“明确”“次优显式”次要情节(3、1、2)情节(t1, y1 (:, 2), t3、y3 (:, 2),“o”网格)标题(“转矩(Nm)”)传说(“明确”“次优显式”次要情节(3,1,3)情节(t1, u1, t3, u3,“o”网格)标题(“电压(V)”)传说(“明确”“次优显式”

次优显式MPC的仿真结果略差。

参考文献

[1] A. Bemporad和E. Mosca,“通过引用管理实现不确定线性系统中的硬约束”自动化第34卷第3期4、1998年。

bdclose (mdl)

相关的话题