直流伺服电机的MPC显式控制,对未测输出有约束

该示例示出了如何使用明确的下MPC电压和轴转矩约束来控制DC伺服机构。

对于一个类似的例子,它使用传统的含蓄MPC,看直流伺服电机与约束的不可测输出

定义直流伺服电机型号

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

[植物,tau蛋白] = mpcmotormodel;

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

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

指定约束

操纵变量+/- 220伏之间的约束。自建厂以来,输入和输出是不同量级的,你还可以使用比例因子,以方便MPC调整。比例因子的典型的选择是上/下限或工作范围。

MV =结构(“最低”,-220,“最大”,220,'比例因子',440);

扭矩输出的限制期间的前三个预测步骤仅施加到限制明确MPC设计的复杂性。

OV =结构(“最低”{天道酬勤,[-tau; -tau; -tau; -Inf]},...“最大”{Inf文件,τ; tau蛋白; tau蛋白; Inf文件]},...'比例因子',{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”对象的“噪音”属性为空。假设每个测量的输出通道上都有白噪声。

指定控制器状态范围

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

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

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

range.Reference。最小值= (5;0);range.Reference。Max = (5; 0);

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

range.ManipulatedVariable.Min = MV.Min  -  1;range.ManipulatedVariable.Max = MV.Max + 1;

使用指定的范围创建显式MPC控制器。

mpcobjExplicit = generateExplicitMPC (mpcobj、范围)
区域发现/未知:75/0显式MPC控制器---------------------------------------------控制器采样时间:0.1(秒)多面体区域:75号的参数:6是溶液简化:否状态估计:默认卡尔曼增益---------------------------------------------类型“mpcobjExplicit.MPC”原始隐MPC的设计。键入“mpcobjExplicit.Range”为参数的有效范围。键入用于多参数QP计算中使用的选项“mpcobjExplicit.OptimizationOptions”。键入“mpcobjExplicit.PiecewiseAffineSolution”在每个解决方案区域和增益。

图的分段仿射分割

您可以审查明确MPC控制法的定义,分段仿射分区的任何2-d部分。要做到这一点,首先要创建一个参数结构,您可以指定2-d部分情节。

PARAMS = generatePlotParameters(mpcobjExplicit);

在这个例子中,我们用第一个状态函数来表示第二个状态函数。所有其他参数必须在它们各自的范围内的值处固定。

修正其他状态变量。

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

修复参考信号。

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

修复操作变量。

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

绘制指定的2-d部。

plotSection(mpcobjExplicit,则params);轴([ -  3 0.3 -2 2。]);网格标题('部分分区[X3的(T)= 0,X4(T)= 0,U(T-1)= 0,R(T)= PI]')包含('X1(t)的')ylabel ('X2(t)的'

模拟控制器使用SIM卡函数

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

Tstop = 8;%秒TF = ROUND(TSTOP / TS);%模拟迭代R = [PI 0];%基准信号[Y1,T1,U1] = SIM(mpcobj,TF,R);%仿真与传统MPC[Y2,T2,U2] = SIM(mpcobjExplicit,TF,R);%仿真明确MPC
——>转换模型离散时间。假设在测量的输出通道1上没有增加干扰。- - >”模型。“mpc”对象的“噪音”属性为空。假设每个测量的输出通道上都有白噪声。

仿真结果基本一致。

fprintf中('隐式和显式MPC轨迹的差异= %g\n'...范数(U2-U1)+规范(Y2-Y1));
隐式和显式MPC轨迹差= 4.60623e-12

模拟使用Simulink金宝app

要运行这个例子,Simulink®的需要。金宝app

如果〜mpcchecktoolboxinstalled('金宝appSIMULINK')disp (的金宝appSimulink(R)需要运行这个例子“。返回结束

在Simulink中模拟线性工厂模型的闭环控制。金宝app显式MPC控制器块被配置为使用mpcobjExplicit作为它的控制器。

MDL ='empc_motor';open_system(MDL)SIM(MDL)

闭环响应是相同的设计传统MPC控制器直流伺服电机与约束的不可测输出

控制使用次优明确MPC

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

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

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

比较不理想的明确MPC和明确MPC之间的闭环仿真结果。

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

仿真结果是不一样的。

fprintf中(“精确和次优明确的MPC的差异轨迹=%克\ N”...范数(U3-U2)+规范(Y3-Y2));
精确与次优的显式MPC轨迹之差= 439.399

阴谋的结果。

图副区(3,1,1)情节(T1,Y1(:,1),T3,Y3(:,1),'O'网格)标题(“角(弧度)”)图例(“显性”“次优显式”)副区(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.莫斯卡,“履行通过引用管理在不确定线性系统硬约束,”自动化卷。34,没有。4,第451-461,1998。

bdclose (mdl)

相关话题