设计MPC控制器位置伺服机构
这个例子展示了如何设计一个模型预测控制器的位置伺服机构使用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海里。同时,电压源物理限制应用的电压范围|V|≤220 V。
构建植物模型
指定模型常数(MKS单位)。
Kt = 1280.2;%扭转刚度公里= 10;%电机常数Jm = 0.5;%电动机惯性Jl = 50 * Jm;%负载惯性N = 20;%齿轮传动比Bm = 0.1;%转子粘滞摩擦提单= 25;%负载粘滞摩擦R = 20;%电枢电阻
定义了状态矩阵的模型方程。
一个= [0 1 0 0;Kt / Jl提单/ 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 Kt / N 0]; D = [0; 0];
创建一个状态空间模型。
工厂= ss (A, B, C, D);
开放政策委员会设计师应用
mpcDesigner
进口植物配置和定义信号
在MPC设计师,在MPC设计师选项卡上,选择MPC结构。
在定义MPC结构通过导入对话框中,选择植物
工厂模型,将植物I / O通道分配给下面的信号类型:
被控变量——电压,V
测量输出负载角位置,θl
无边无际的输出转矩,T
点击进口。
MPC设计师进口指定的工厂和创建一个MPC控制器和一个模拟的场景:
mpc1
违约MPC控制器使用植物
作为其内部模型。scenario1
违约模拟场景。模拟结果显示在输入响应和输出响应情节。
植物、控制器和仿真场景是通过浏览器的数据,在左边MPC设计师。
定义输入和输出通道属性
在MPC设计师选项卡,结构部分中,点击I / O属性。
在对话框中,输入和输出通道规范为每个输入和输出通道:
指定一个有意义的的名字和单位。
保持名义价值在其默认值
0
。指定一个比例因子正常化的信号。选择的值接近预测的操作范围的信号:
通道名称 最小值 最大值 比例因子 电压
-220 V 220 V 440年
θ
-π弧度 π弧度 6.28
转矩
-78.5纳米 78.5纳米 157年
点击好吧更新频道属性并关闭对话框。
修改场景模拟角位置的阶跃响应
在场景节中,编辑场景下拉列表中,选择scenario1
修改默认的模拟场景。
在模拟场景中对话框,保持仿真时间的10
秒。
在参考信号表,保持默认配置第一通道。这些设置创建一个一步
的变化1
弧度的角位置在一个定位点时间的1
第二。
第二输出,在信号下拉列表中,选择常数
保持转矩定位点在其标称值。
点击好吧。
应用程序运行仿真与新场景设置和更新输入响应和输出响应情节。
指定控制器样品时间和视野
在调优选项卡,地平线节中,指定一个样品时间的0.1
秒。
为指定的样品时间,T年代,和所需的响应时间Tr= 2秒,选择一个预测地平线,p,比如:
因此,指定一个预测地平线的20.
。
指定一个控制层的5
。
当你更新样本时间和地平线的价值观,输入响应和输出响应情节自动更新。输入电压和转矩值超过规范中定义的约束系统模型。
指定的约束
在设计部分中,选择约束。
在约束对话框输入约束节中,指定最小值和马克斯电压值被控变量(MV)。
在输出约束节中,指定最小值和马克斯无边无际的输出扭矩值(UO)。
没有额外的约束,这是其他约束保持默认的最大和最小值,负
和正
分别
点击好吧。
响应图更新以反映新的约束。在输入响应情节,有不受欢迎的大输入电压的变化。
指定优化权重
在设计部分中,选择权重。
在“权重”对话框中,在输入重量表,增加了操纵变量率的重量。
调优重量的操纵变量(MV)0
。这个重量表明,控制器可以允许输入电压来改变它的限制范围内。增加率的重量限制被控变量变化的大小。
自从控制目标的角位置的负载跟踪其选点,调优重量测量输出1
。没有定位点应用扭矩,所以控制器可以允许第二个输出变化在其约束。因此,重量在无边无际的输出(UO)0
,使控制器忽略扭矩定位点。
点击好吧。
响应图更新以反映速率增加的体重。的输入响应与较小的电压变化平滑。
检查输出响应
在输出响应情节,右键单击θ图区域,并选择特征>峰值响应。
峰值输出响应发生在时间3秒的3%的最大超调。自参考信号阶跃变化在1秒,控制器的高峰时间2秒。
提高控制器的响应时间
单击并拖动闭环性能滑块来产生更多的权利咄咄逼人的响应。你向右拖动滑块的进一步,控制器响应越快。选择一个滑块位置的峰值响应发生在2.6秒。
最后控制器高峰时间是1.6秒。减少响应时间进一步结果过于激进的输入电压的变化。
生成并运行MATLAB脚本
在分析部分,单击出口控制器箭头。
下出口控制器,点击生成脚本
。
在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)。最小值=-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卡(101年mpc1 mpc1_RefSignal、mpc1_MDSignal选项);
在MATLAB窗口编辑器选项卡上,选择保存。
保存对话框,然后单击完成保存。
在编辑器选项卡上,单击运行。
脚本创建的控制器,mpc1
,运行仿真场景。输入和输出响应与仿真结果的应用。
验证控制器性能金宝app
如果你有一个仿真软件金宝app®系统模型,可以模拟控制器,验证其性能。
打开模型。
open_system (“mpc_motor”)
这个模型使用一个MPC控制器块来控制伺服机构工厂。的伺服机构模型块已经配置为使用植物
模型的MATLAB工作区。
的角的参考源块创建一个正弦参考信号的频率0.4
rad /秒和一个振幅π。
双击MPC控制器块。
在MPC控制器参数对话框中,指定一个MPC控制器从MATLAB工作区。使用mpc1
控制器使用生成的脚本创建的。
点击好吧。
在MATLAB命令行指定一个扭矩大小约束变量。
τ= 78.5;
模型使用这个值来约束限制扭矩输出范围的阴谋。
在仿真软件模型金宝app窗口中,点击运行模拟模型。
在角范围,输出响应,黄色,跟踪角位置选点,蓝色,密切。