该实例说明了如何利用模型预测控制器为位置伺服机构设计模型预测控制器MPC设计师。
位置伺服机构由直流电机、齿轮箱、弹性轴和负载组成。
表示这个方程组的微分方程是
在那里,
V为施加电压。
T为作用于负载的转矩。
是负载角速度。
为电机轴角速度。
其余项为常数参数。
伺服机构模型的常数参数
象征 |
数值(国际单位制) |
释义 |
---|---|---|
kT | 1280.2 |
抗扭刚度 |
k米 | 10 |
运动常数 |
J米 | 0.5 |
电动机惯性 |
Jl | 50J米 |
负载惯性 |
ρ | 20 |
齿轮传动比 |
β米 | 0.1 |
电机粘滞摩擦系数 |
βl | 25 |
载荷粘性摩擦系数 |
R | 20 |
电枢电阻 |
如果将状态变量定义为
然后您可以将伺服机制建模为LTI状态空间系统。
控制器必须设置负载的角度位置,θl,通过调整施加电压,使其达到所需的值,V。
然而,由于弹性轴具有有限的剪切强度,扭矩,T,必须保持在范围内|T|≤78.5 Nm.此外,电压源物理上将施加的电压限制在该范围内|V|≤220 v。
指定模型常量。
Kt=1280.2;%扭转刚度公里= 10;%运动常数Jm=0.5;%电动机惯性Jl=50*Jm;%负载惯性N = 20;%传动比Bm=0.1;转子粘滞摩擦%Bl=25;载荷粘性摩擦R=20;%电枢电阻
定义由模型方程导出的状态空间矩阵。
A = [0 1 0 0;-Kt/Jl -Bl/Jl Kt/(N*Jl) 0;0 0 0 1;Kt/(Jm*N) 0 -Kt/(Jm*N^2) -(Bm+Km^2/R)/Jm];B = [0;0;0;公里/ (R * Jm)];C = [1 0 0 0;Kt 0 -Kt/N 0]; D = [0; 0];
创建状态空间模型。
工厂= ss (A, B, C, D);
设计人
在MPC设计师,在MPC设计师选项卡上,选择MPC结构。
在“通过导入定义MPC结构”对话框中,选择植物
电厂模型,并将电厂I/O通道分配给以下信号类型:
操纵可变电压,V
测量输出-负载角位置,θl
未测量输出-扭矩,T
点击定义和导入。
MPC设计师将指定的设备导入到数据浏览器。以下内容也添加到数据浏览器:
mpc1
—使用创建的默认MPC控制器植物
作为其内部模型。
scenario1
—默认仿真场景。仿真结果显示在输入响应和输出响应情节。
上MPC设计师选项卡,结构部分,单击I / O属性。
在“输入和输出通道规格”对话框中,对于每个输入和输出通道:
指定一个有意义的名称和单位。
保持名义价值默认值为0
。
指定一个比例因子用于标准化信号。选择一个近似信号预测工作范围的值:
频道名称 | 最小值 | 最大值 | 比例因子 |
---|---|---|---|
电压 |
–220伏 | 220 V | 440 |
西塔 |
- - - - - -π弧度 | π弧度 | 6.28 |
扭矩 |
–78.5纳米 | 78.5纳米 | 157 |
点击好啊更新通道属性并关闭对话框。
在脚本节中,编辑场景下拉列表中,选择scenario1
修改默认模拟场景。
在“模拟方案”对话框中,指定仿真时间属于10
秒。
在参考信号表中,保留第一个通道的默认配置。这些设置将创建步
变更1
角度位置设定点的弧度时间属于1
第二
对于第二个输出,在信号下拉列表中,选择常数
保持扭矩设定值在其标称值。
点击好啊。
应用程序使用新的场景设置运行模拟,并更新输入响应和输出响应情节。
上调谐选项卡,地平线节中,指定一个采样时间属于0.1
秒。
对于指定的采样时间,T年代,所需的响应时间为Tr= 2秒,选择一个预测范围,p,以便:
因此,指定一个预测地平线属于20
。
指定一个控制层属于5
。
更新采样时间和地平线值时输入响应和输出响应绘图自动更新。输入电压和扭矩值均超过系统型号规格中定义的约束。
在设计节,选择约束条件。
在“约束”对话框中的输入约束节中,指定分钟和马克斯操纵变量的电压值(MV)。
在输出约束第节,指定分钟和马克斯未测量输出(UO)的扭矩值。
没有额外的约束,也就是说其他的约束保持默认的最大值和最小值,-Inf
和Inf
分别
点击好啊。
响应图将更新以反映新的约束。在输入响应图中,输入电压有不期望的大变化。
在设计节,选择权重。
在权重对话框中,在输入重量表,增加操纵变量费率权重。
调优重量对于操纵变量(MV)为0
。这个权重表示控制器可以允许输入电压在其限制范围内变化。增加费率权重限制操作变量更改的大小。
由于控制目标是使负载的角度位置跟踪其设定点,因此调整重量在测量的输出上为1
。没有施加扭矩的设定值,因此控制器可以允许第二个输出在其约束范围内变化。因此,重量关于未测量的输出(UO)为0
,使控制器能够忽略扭矩设定点。
点击好啊。
响应图更新以反映增加的速率权重。的输入响应更平滑,电压变化更小。
在输出响应打印,右键单击西塔Plot area, and select特点>峰值响应。
峰值输出响应发生在3秒的时间,最大超调量为3%。由于参考信号阶跃变化为1秒,控制器的峰值时间为2秒。
单击并拖动闭环性能向右滑动以生成一个更大的侵略性的响应。向右拖动滑块越远,控制器响应越快。选择滑块位置,使峰值响应出现在2.7秒。
最终控制器峰值时间为1.7秒。进一步降低响应时间会导致输入电压变化过大。
在分析部分,单击输出控制器箭头。
在下面输出控制器点击生成脚本
。
在MATLAB中生成®脚本对话框,勾选旁边的复选框scenario1
。
点击生成脚本。
应用程序将导出工厂模型的副本,植物
,以及仿真输入和参考信号。
此外,该应用程序在MATLAB编辑器中生成以下代码。
创建带有采样时间的MPC控制器对象mpc1 = mpc(plant_C, 0.1);%%指定预测范围mpc1。PredictionHorizon = 20;%%指定控制层mpc1.ControlHorizon=5;%%指定输入和输出的标称值mpc1.Model.Nominal.U=0;mpc1.Model.Nominal.Y=[0;0];%%指定输入和输出的比例因子mpc1.MV(1)。ScaleFactor = 440;mpc1.OV(1)。ScaleFactor = 6.28;mpc1.OV(2)。ScaleFactor = 157;%%指定MV和MV速率的约束mpc1.MV(1)。分钟=-220; mpc1.MV(1).Max = 220;%%为OV指定约束mpc1.OV(2).Min=-78.5;mpc1.OV(2).Max=78.5;%%指定应用于权重的总体调整系数β= 1.2712;%%指定权重mpc1.Weights.MV=0*beta;mpc1.Weights.MVRate=0.4/beta;mpc1.Weights.OV=[10]*beta;mpc1.Weights.ECR=100000;%%指定模拟选项选择= mpcsimopt ();选项。RefLookAhead =“关”;options.MDLookAhead=“关”;选项。限制=“上”;选项。OpenLoop =“关”;% %运行仿真sim卡(mpc1、101、mpc1\u参考信号、mpc1\u参考信号、选项);
在MATLAB窗口中,在编辑选项卡上,选择拯救。
完成保存对话框,然后单击拯救。
在编辑选项卡上,单击跑。
脚本创建控制器,mpc1
,并运行模拟场景。输入和输出响应与应用程序的模拟结果相匹配。
如果你有一个Simulink万博1manbetx®系统模型,您可以模拟控制器并验证其性能。中不支持Simulink功能万博1manbetx万博1manbetxMATLAB在线™。
打开模型。
开放式系统(“mpc_电机”)
该模型使用MPC控制器块来控制伺服机构设备。这个伺服机构模型块已配置为使用植物
从MATLAB工作空间中建立模型。
的角度基准源块产生频率为的正弦参考信号0.4
rad/sec,振幅为π。
双击MPC控制器块。
在“MPC控制器块参数”对话框中,指定一个MPC控制器从MATLAB工作区。使用mpc1
使用生成的脚本创建的控制器。
点击好啊。
在MATLAB命令行中,指定转矩幅值约束变量。
tau=78.5;
模型使用此值绘制扭矩输出范围上的约束限制。
在Simuli万博1manbetxnk模型窗口中,单击跑来模拟模型。
在角范围,输出响应,黄色,密切跟踪角度位置设定点,蓝色。