该实例说明了如何利用模型预测控制器为位置伺服机构设计模型预测控制器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);
mpcDesigner
在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
修改默认模拟场景。
在“模拟场景”对话框中,指定a仿真时间的10
秒。
在参考信号表中,保留第一个通道的默认配置。这些设置将创建一步
的变化1
角度位置设定点在a处的弧度时间的1
第二。
对于第二个输出,在信号下拉列表中,选择常数
保持扭矩设定值在其标称值。
点击好吧.
应用程序使用新的场景设置运行模拟,并更新输入响应和输出响应情节。
在调优选项卡,地平线节中,指定一个样品时间的0.1
秒。
对于指定的采样时间,T年代,所需的响应时间为Tr= 2几秒钟,选择一个预测范围,p,比如:
因此,指定一个预测地平线的20.
.
指定一个控制层的5
.
更新采样时间和地平线值时输入响应和输出响应情节自动更新。输入电压和转矩值都超过了系统模型规范中定义的约束。
在设计部分中,选择约束.
在“约束”对话框中输入约束节中,指定最小值和马克斯操纵变量的电压值(MV)。
在输出约束节中,指定最小值和马克斯未测量输出(UO)的转矩值。
没有额外的约束,也就是说其他的约束保持默认的最大值和最小值,负
和Inf
分别
点击好吧.
响应图更新以反映新的约束。在输入响应图中,输入电压有不期望的大变化。
在设计部分中,选择权重.
在权重对话框中,在输入重量表,增加操纵变量率的重量.
调优重量为操纵变量(MV)0
.这个权重表示控制器可以允许输入电压在其限制范围内变化。增加率的重量限制操作变量更改的大小。
由于控制目标是使负载的角度位置跟踪其设定点,因此调整重量在测量的输出上为1
.没有施加扭矩的设定值,因此控制器可以允许第二个输出在其约束范围内变化。因此,重量关于未测量的输出(UO)为0
,使控制器忽略扭矩设定值。
点击好吧.
响应图更新以反映增加的速率权重。的输入响应更平滑,电压变化更小。
在输出响应打印,右键单击θPlot area, and select特点>峰值响应.
峰值输出响应发生在3秒的时间,最大超调量为3%。由于参考信号阶跃变化为1秒,控制器的峰值时间为2秒。
单击并拖动闭环性能滑块向右产生更多咄咄逼人的响应。向右拖动滑块越远,控制器响应越快。选择滑块位置,使峰值响应出现在2.7秒。
最终控制器峰值时间为1.7秒。进一步降低响应时间会导致输入电压变化过大。
在分析部分,单击出口控制器箭头.
下出口控制器,点击生成脚本
.
在生成MATLAB中®脚本对话框,勾选旁边的复选框scenario1
.
点击生成脚本.
该应用程序会导出植物模型的副本,plant_C
,以及仿真输入和参考信号。
此外,该应用程序在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)。最小值=-78.5; mpc1.OV(2).Max = 78.5;%%指定应用于权重的总体调整因子β= 1.2712;%%指定权重mpc1.Weights。MV = 0 *β;mpc1.Weights。米VRate = 0.4/beta; mpc1.Weights.OV = [1 0]*beta; mpc1.Weights.ECR = 100000;指定模拟选项选择= mpcsimopt ();选项。RefLookAhead =“关闭”;选项。米DLookAhead =“关闭”;选项。约束=“上”;选项。OpenLoop =“关闭”;% %运行仿真sim(mpc1, 101, mpc1_RefSignal, mpc1_MDSignal, options);
在MATLAB窗口中,在编辑器选项卡上,选择保存.
完成保存对话框,然后单击保存.
在编辑器选项卡上,单击运行.
脚本创建控制器,mpc1
,并运行模拟场景。输入和输出响应与应用程序的模拟结果相匹配。
如果你有Simulink万博1manbetx®系统模型,您可以模拟控制器并验证其性能。中不支持Simulink功能万博1manbetx万博1manbetxMATLAB在线™.
打开模型。
开放式系统(“mpc_motor”)
该模型使用MPC控制器块来控制伺服机构设备。这个伺服机构模型块已配置为使用植物
模型的MATLAB工作空间。
的角度基准源块产生频率为的正弦参考信号0.4
Rad /秒和振幅π.
双击MPC控制器块。
在“MPC控制器块参数”对话框中,指定一个MPC控制器从MATLAB工作空间。使用mpc1
使用生成的脚本创建的控制器。
点击好吧.
在MATLAB命令行中,指定一个扭矩大小约束变量。
τ= 78.5;
该模型使用这个值来绘制扭矩输出范围的约束限制。
在Simuli万博1manbetxnk模型窗口中,单击运行来模拟模型。
在角范围,输出响应,黄色,跟踪角位置设定值,蓝色,紧密。