主要内容

时变MPC控制倒立摆的车

这个例子展示了如何控制一个倒立摆车使用一个线性时变模型预测控制器(LTV MPC)。

摆/车总成

工厂对于这个示例如下摆/车装配,在哪里z车位置和吗θ摆角。

这个系统的被控变量是一个变量F购物车。力的范围是在-100年和100年之间(MKS单位承担)。控制器需要保持摆直立而将车移动到一个新的职位或摆向前推动的脉冲干扰dF应用于倒立摆的上端。

控制目标

假设的初始条件后摆/车组装:

  • 购物车是静止的z=0

  • 倒立摆是固定在直立位置θ=0

控制目标是:

  • 购物车可以移动到一个新的位置-20年20.与一步选点变化。

  • 跟踪这样的选点变化时,上升时间应小于4秒(性能)和应小于过头了10百分比(鲁棒性)。

  • 当一个脉冲干扰的大小4应用于钟摆,购物车和摆应该和小位移返回到原来位置。

直立的位置为倒立摆是一种不稳定的平衡,使控制更有挑战性的任务。

时变MPC的选择

一个倒立摆车的控制,一个单一的MPC控制器能够将车移到一个新职位-10年10。然而,如果你增加一步选点变化20.,钟摆未能恢复直立位置在过渡。

到达距离在同一上升时间越长,控制器适用于更大的力的车开始。结果,摆流离失所从更大的角度,其直立位置等60度。在这样的角度,植物动力学LTI预测模型获得的显著差异θ=0。结果,预测植物中的错误行为超过内置的MPC鲁棒性可以处理,和控制器无法正常执行。

为了避免钟摆下降,一个简单的解决方法是通过添加软输出约束限制摆位移θ和减少ECR重量(从默认值1 e5 100)软化的约束。

mpcobj.OV (2)。Min = -π/ 2;mpcobj.OV (2)。Max =π/ 2;mpcobj.Weights。ECR = 100;

然而,这些新的控制器设置不再可能达到更长的距离内所需的上升时间。换句话说,控制器性能是牺牲,以避免违反软输出约束。

把车移到一个新的位置-20年20.同时保持相同的上升时间,控制器需要更精确的模型在不同角度的控制器可以使用它们更好的预测。自适应MPC可以解决非线性控制问题通过更新线性时变模型在运行时。

控制结构

对于这个示例,使用单个LTV MPC控制器:

  • 一个操纵变量:变量的力量F

  • 两个测量输出:车的位置z和摆角θ

mdlMPC =“mpc_pendcartLTVMPC”;open_system (mdlMPC);

因为所有的植物状态是可衡量的,他们是直接用作自定义自适应估计州MPC块。

虽然购物车定位点位置变化(阶跃输入),摆角选点是常数(0=直立位置)。

线性时变植物模型

在每个控制区间,LTV MPC需要线性植物模型为每个预测步骤,从当前时间k时间k + p,在那里p是预测地平线。

在这个例子中,购物车和摆动态系统模型所描述的第一原则。该模型由一组微分和代数方程(拓扑)中定义的pendulumCT函数。更多细节,请参阅pendulumCT.m

连续的线性化电路块的仿真软件在运行时模型生万博1manbetx成LTV模型。在每个预测步骤,得到状态空间矩阵一个,B,C,D在连续时间使用雅可比矩阵,然后将它们转换为离散值。最初的植物状态x (k)从工厂直接测量。植物产生的输入序列包含最优移动MPC控制器在前面的控制区间。

自适应MPC设计

MPC控制器设计的名义均衡操作点。

x0 = 0 (4,1);情况= 0 (1,1);

分析获得线性植物模型利用常微分方程。

[~,~,A, B, C, D] = pendulumCT (x0,情况);工厂= ss (A, B, C (3 [1]:)、D (3 [1],:));%的位置和角度

控制不稳定的植物,控制器样品时间不能太大(可怜的抗干扰性)或太小(过度的计算负载)。同样,预测地平线不能太长(工厂不稳定模式将主宰)或太短(约束违反将不可预见的)。对于这个示例使用以下参数:

t = 0.01;PredictionHorizon = 60;ControlHorizon = 3;

创建MPC控制器。

mpcobj = mpc(汇集(植物、Ts), Ts, PredictionHorizon, ControlHorizon);
- - >“权重。ManipulatedVariables”属性是空的。假设默认的0.00000。- - >“权重。ManipulatedVariablesRate”属性是空的。假设默认的0.10000。- - >“权重。OutputVariables”属性是空的。假设默认的1.00000。输出(s) y1和零输出(s) y2体重

有限制多少力可以应用到车,这是使用硬约束指定的操纵变量F

mpcobj.MV。最小值= -100;mpcobj.MV。Max = 100;

是一种很好的做法规模工厂设计重量之前输入和输出。在本例中,由于被控变量的范围大于装置输出的范围由两个数量级,规模的MV输入One hundred.

mpcobj.MV。ScaleFactor = 100;

以提高控制器的鲁棒性,增加重量的MV变化率0.11

mpcobj.Weights。MVRate = 1;

为了达到平衡的性能,调整植物上的权重输出。第一个重量与车相关的位置z,第二个重量与角有关θ

mpcobj.Weights。OV = (0.6 - 1.2);

使用增益和输出扰动模型摆角。这是快速的短期变化。

setoutdist (mpcobj“模型”,(0;tf (1)));

使用自定义状态估计,因为所有的植物状态是可衡量的。

setEstimator (mpcobj“自定义”);

闭环仿真

验证货币政策委员会设计的闭环仿真模型。万博1manbetx

open_system ([mdlMPC/范围的]);sim (mdlMPC)
- - >”模型。噪音”属性是空的。假设白噪声在每个测量输出。

在非线性仿真,所有控制目标成功实现。

bdclose (mdlMPC);

另请参阅

相关的话题