主要内容

明确MPC控制倒立摆的车

这个例子使用一个显式模型预测控制器(显式MPC)来控制一个倒立摆车。

产品要求

这个例子需要仿真软件®控制设计™软件定义MP金宝appC结构线性化非线性仿真软件模型。

如果~ mpcchecktoolboxinstalled (“slcontrol”)disp (仿金宝app真软件控制设计需要运行这个例子。)返回结束

摆/车总成

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

该系统由一个变量力控制F在购物车。控制器需要保持摆直立而将车移动到一个新的职位或摆向前推动的脉冲干扰dF应用于倒立摆的上端。

这种植物是建模与仿真软件常用的块。金宝app

mdlPlant =“mpc_pendcartPlant”;load_system mdlPlant open_system ([mdlPlant“/摆和购物车系统”),“力”)

控制目标

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

  • 购物车是静止的x=0

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

控制目标是:

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

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

  • 当一个脉冲干扰的大小2应用于钟摆,购物车应该返回到原来位置的最大位移1。钟摆还应该回到位置角度位移峰值的正直的人15度(0.26弧度)。

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

控制结构

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

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

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

  • 一个无边无际的干扰:脉冲干扰dF

mdlMPC =“mpc_pendcartExplicitMPC”;open_system (mdlMPC)

虽然车速度x_dot和摆角速度theta_dot可从植物模型,使设计更现实的情况下,他们被排除在外是MPC测量。

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

线性植物模型

因为MPC控制器需要一个线性定常(LTI)预测模型,线性化模型植物模型在初始操作点。金宝app

指定输入和输出点线性化

io (1) = linio ([mdlPlant' / dF '),1“openinput”);io (2) = linio ([mdlPlant“楼”),1“openinput”);io (3) = linio ([mdlPlant“/摆和购物车系统”),1“openoutput”);io (4) = linio ([mdlPlant“/摆和购物车系统”),3,“openoutput”);

创建操作点的初始条件。

opspec = operspec (mdlPlant);

第一个状态是车的位置x,一个已知的初始状态为0。

opspec.States (1)。知道= true;opspec.States (1)。x = 0;

第三个状态是摆角θ,一个已知的初始状态为0。

opspec.States (3)。知道= true;opspec.States (3)。x = 0;

使用这些规范计算操作点。

选择= findopOptions (“DisplayReport”、假);op = findop (mdlPlant、opspec选项);

获得线性植物模型在指定的操作点。

工厂=线性化(op, mdlPlant io);工厂。InputName = {“dF”;“F”};工厂。OutputName = {“x”;“θ”};

研究线性化的两极。

极(植物)
ans = 0 -11.9115 -3.2138 5.1253

工厂有一个积分器和不稳定。

bdclose (mdlPlant)

传统的(隐性)MPC设计

工厂有两个输入,dFF,两个输出,xθ。在这个例子中,dF被指定为一个无边无际的扰动所使用的MPC控制器更好的抗干扰性。设置植物信号类型。

植物= setmpcsignals(植物,“ud”,1“mv”2);

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

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

有多大的力限制我们可以申请车,这是对被控变量指定为硬约束F

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

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

mpcobj.MV。ScaleFactor = 100;

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

mpcobj.Weights。MVRate = 1;

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

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

实现更激进的抗干扰性,提高状态估计量获得乘以违约收益因素的干扰模型10

更新输入扰动模型。

disturbance_model = getindist (mpcobj);setindist (mpcobj“模型”,disturbance_model * 10);
- - >将模型转换为离散时间。- - >”模型。干扰”属性是空的:假设无边无际的输入扰动# 1是集成的白噪声。假设没有干扰测量输出通道# 1。- - >输出假设扰动添加到测量输出通道# 2是集成的白噪声。- - >”模型。噪音”属性是空的。假设白噪声在每个测量输出。

更新输出扰动模型。

disturbance_model = getoutdist (mpcobj);setoutdist (mpcobj“模型”,disturbance_model * 10);
- - >将模型转换为离散时间。假设没有干扰测量输出通道# 1。- - >输出假设扰动添加到测量输出通道# 2是集成的白噪声。- - >”模型。噪音”属性是空的。假设白噪声在每个测量输出。

明确的政策委员会代

一个简单的隐式MPC控制器,不需要约束或体重变化在运行时,可以转换成一个显式的MPC控制器相同的控制性能。使用显式的MPC的关键好处是它避免了实时优化,因此,适用于工业应用需求快速样品时间。权衡是显式的MPC具有很高的内存占用,因为所有可行的最优解区域是离线的预先计算并存储运行时访问。金宝搏官方网站

从一个隐式生成一个显式的MPC控制器MPC控制器,定义范围植物状态等参数,引用和操纵变量。这些范围应包括操作空间的植物和控制器的设计,最好的知识。

范围= generateExplicitRange (mpcobj);range.State.Min (,) = -20;x %最大范围来自车位置range.State.Max (:) = 20;range.Reference。最小值= -20;x %最大范围来自车位置range.Reference。Max = 20;range.ManipulatedVariable。最小值= -200;range.ManipulatedVariable。Max = 200;
- - >将模型转换为离散时间。- - >”模型。噪音”属性是空的。假设白噪声在每个测量输出。

生成一个显式的MPC控制器定义的范围。

mpcobjExplicit = generateExplicitMPC (mpcobj、范围);
发现/未开拓的地区:92/0

使用显式的MPC控制器模型,指定明确的MPC控制器仿真软件模型块对话框。金宝app

闭环仿真

验证货币政策委员会设计的闭环仿真模型。金宝app

open_system ([mdlMPC/范围的])sim (mdlMPC)

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

与的结果进行比较一个倒立摆车的控制,隐式和显式MPC控制器提供相同的性能。

讨论

重要的是要指出,MPC控制器设计有其局限性。例如,如果你增加一步选点变化15,钟摆未能恢复直立位置在过渡。

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

避免钟摆下降一个简单的解决方法是通过添加软限制摆位移输出约束θ和减少ECR重量约束软化。

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

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

达到更远的距离在同一上升时间,控制器需要更精确的模型在不同角度改善预测。另一个例子Gain-Scheduled MPC控制倒立摆的车展示了如何使用增益调度MPC实现更远的距离。

关闭仿真软件模型。金宝app

bdclose (mdlMPC)

相关的话题