这个例子说明如何使用来设计的位置伺服系统模型预测控制器MPC设计。
位置伺服机构由直流电动机、齿轮箱、弹性轴和负载组成。
表示该系统的微分方程是
哪里,
V是施加的电压。
Ť是作用于负载的转矩。
为负荷角速度。
为电机轴角速度。
剩下的项是常数参数。
对于伺服机构模型参数不变
象征 |
值(国际标准单位) |
定义 |
---|---|---|
ķŤ | 1280.2 |
抗扭刚度 |
ķ中号 | 10 |
电机常数 |
Ĵ中号 | 0.5 |
电机惯量 |
Ĵ大号 | 50Ĵ中号 |
负载惯性 |
ρ | 20. |
变速比 |
β中号 | 0.1 |
电动机粘性摩擦系数 |
β大号 | 25 |
载荷粘性摩擦系数 |
[R | 20. |
电枢电阻 |
如果你把状态变量定义为
那么你可以模拟伺服机构作为LTI状态空间系统。
控制器必须设置负载的角度位置,θ大号在通过调整所施加的电压期望值,V。
然而,由于弹性轴具有有限的剪切强度,Ť必须保持在一定的范围内|Ť|≤78.5牛米。同时,电压源物理上限制了施加的电压在这个范围内|V|≤220伏。
指定模型常数。
Kt = 1280.2;%抗扭刚度公里= 10;%电机常数Jm = 0.5;%电机惯性Jl = 50 * Jm;%负载惯性N = 20;%齿轮传动比Bm = 0.1;%转子粘滞摩擦提单= 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 +公里^ 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
测量的输出 - 负载角位置,θ大号
未测量输出-扭矩,Ť
点击定义和进口。
MPC设计将指定的工厂导入数据浏览器。属性中还添加了以下内容数据浏览器:
MPC1
- 默认MPC控制器使用创建的厂
作为它的内部模型。
scenario1
- 默认仿真场景。这个模拟的结果显示在输入响应和输出响应情节。
在MPC设计选项卡,在结构体部分中,点击I / O属性。
在输入输出通道规格对话框中,对于每个输入输出通道:
指定一个有意义的的名字和单元。
保持名义价值默认值为0
。
指定一个比例因子对信号进行常态化。选择一个接近信号预测运行范围的值:
通道名称 | 最小值 | 最大值 | 比例因子 |
---|---|---|---|
电压 |
-220 V | 220伏 | 440 |
θ |
-π弧度 | π弧度 | 6.28 |
转矩 |
-78.5纳米 | 78.5纳米 | 157 |
点击好吧更新信道特性和关闭对话框。
在场景部分,编辑场景下拉列表中,选择scenario1
修改默认模拟场景。
在“模拟场景”对话框中,指定a仿真时间的10
秒。
在参考信号表中,保持第一个通道的默认配置。这些设置创建一个一步
的变化1
角度位置设定点a处的弧度时间的1
第二。
对于第二个输出,在信号下拉列表中,选择常数
保持转矩设定在其标称值。
点击好吧。
该应用程序运行的新方案设置和更新的模拟输入响应和输出响应情节。
在调优选项卡,在地平线部分中,指定一个样品时间的0.1
秒。
对于指定的采样时间,Ť小号的,并且期望的响应时间Ť[R= 2几秒钟,选择一个预测范围,p,比如:
因此,指定预测范围的20.
。
指定一个控制范围的五
。
当更新采样时间和水平值时,输入响应和输出响应情节自动更新。输入电压和转矩值都超过了系统模型规范中定义的约束条件。
在设计部分中,选择约束。
在约束对话框中,在输入约束部分指定最小值和马克斯操纵变量(MV)的电压值。
在输出约束节中,指定最小值和马克斯未测量输出(UO)的扭矩值。
有没有额外的限制,这是其他约束保留默认的最大值和最小值,负
和正
分别
点击好吧。
响应图更新以反映新的约束。在输入响应积,有在输入电压不希望的大的变化。
在设计部分中,选择权重。
在权重对话框,在输入权重表,增加操纵变量率的重量。
调谐重量对于被操作变量(MV)为0
。该重量表示控制器可以允许输入电压到其约束范围内变化。增加率的重量限制的操作变量的大小变化。
由于控制目标是为了负荷的角度位置跟踪它的设定值,调整重量所测量的输出是1
。没有给定值对于所施加的扭矩,因此,控制器可允许第二输出到它的限制范围内变化。因此,重量上的未测量输出(UO)为0
,使得控制器可以忽略转矩设定值。
点击好吧。
响应曲线更新,以反映增加的速度的重量。该输入响应与较小的电压变化平滑。
在输出响应情节,右键单击θ绘图区,并选择特征>峰值响应。
峰值输出响应发生在3秒时,最大超调值为3%。由于参考信号的阶跃变化为1秒,因此控制器的峰值时间为2秒。
单击并拖动闭环性能滑块向右产生更多咄咄逼人的响应。滑块越向右拖动,控制器的响应就越快。选择一个滑块位置,使峰值响应发生在2.7秒。
最终控制峰值时间是1.7秒。减少过于激进的输入电压的变化的响应时间进一步结果。
在分析部分中,单击出口控制器箭头。
下出口控制器,点击生成脚本
。
在生成MATLAB中®脚本对话框,勾选旁边scenario1
。
点击生成脚本。
该应用程序导出一份植物模型,plant_C
,到MATLAB工作空间,以及仿真输入和参考信号。
此外,应用程序在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).Min = -220;mpc1.MV(1)最大= 220;指定OV的约束条件mpc1.OV(2)。最小值=-78.5; mpc1.OV(2).Max = 78.5;指定应用于权重的总体调整系数。的β= 1.2712;% %指定权重mpc1.Weights。MV = 0 *β;mpc1.Weights。中号V[Rate = 0.4/beta; mpc1.Weights.OV = [1 0]*beta; mpc1.Weights.ECR = 100000;指定模拟选项选项= mpcsimopt();options.RefLookAhead =“关闭”;选项。中号DLookAhead =“关闭”;选项。约束='上';options.OpenLoop =“关闭”;%%模拟运行sim(mpc1, 101, mpc1_RefSignal, mpc1_MDSignal, options);
在MATLAB窗口中编辑器选项卡,选中保存。
完成保存对话框,然后单击保存。
在编辑器选项卡,单击运行。
该脚本创建控制器,MPC1
,并运行仿真场景。输入和输出响应与应用程序的模拟结果相匹配。
如果你有一个Simulink金宝app®模型的系统,您可以模拟您的控制器并验证其性能。金宝app仿真软件功能不支持金宝appMATLAB在线™。
打开模型。
open_system (“mpc_motor”)
这款机型采用了MPC控制器控制伺服机构装置的块。该伺服机构模型块已经被配置为使用厂
从MATLAB工作区建立模型。
该角的参考源块创建具有的频率的正弦参考信号0.4
rad/sec和的振幅π。
双击MPC控制器块。
在MPC控制器模块参数对话框,指定MPC控制器从MATLAB工作区。使用MPC1
使用生成的脚本创建的控制器。
点击好吧。
在MATLAB命令行中,指定一个力矩大小约束变量。
τ= 78.5;
模型使用这个值来约束限制扭矩输出范围的阴谋。
在Simuli金宝appnk模型窗口,单击运行模拟模型。
在角范围,输出响应,黄色,密切跟踪角度位置的设定值,蓝色,。