具有不可测输出约束的直流伺服电机
本例展示了如何在电压和轴转矩约束下设计直流伺服机构的模型预测控制器。
有关使用显式MPC的类似示例,请参见带不可测输出约束的直流伺服电机显式MPC控制.有关此植物的相关示例,请参见位置伺服机构的MPC控制器设计.
定义直流伺服电机模型
的mpcmotormodel
函数返回示例所需的工厂模型。中定义了线性开环动力学模型植物
.的变量τ
是最大允许扭矩,这将被用作输出约束。
[plant,tau] = mpcmotormodel;
展示植物的基本特征。
大小(植物)潮湿(植物)
具有2个输出、1个输入和4个状态的状态空间模型。极点阻尼频率时间常数(rad/秒)(秒)8.23e-16 -1.00e+00 8.23e-16 -1.22e+15 -7.05e-01 + 7.31e+00i 9.59e-02 7.35e+00 1.42e+00 -7.05e-01 - 7.31e+00i 9.59e-02 7.35e+00 1.42e+00 -9.79e+00 1.00e+00 9.79e+00 1.02e-01
装置控制输入为直流电压,四个状态变量为负载和电机轴的角位置和速度。可测量的输出是负载的角位置。第二个输出,扭矩,是不可测量的。有关更多信息,请参见位置伺服机构的MPC控制器设计.
指定MPC控制器的输入和输出信号类型。
植物= setmpcsignals(植物,“MV”, 1“莫”, 1“UO”2);
指定MV约束
被操纵的变量被限制在+/- 220伏之间。由于工厂输入和输出具有不同的数量级,您还可以使用比例因子来促进MPC调优。比例因子的典型选择是上限/下限或操作范围。
MV = struct(“最小值”, -220,“马克斯”, 220,“ScaleFactor”, 440);
指定OV约束
+|tau|和-|tau|的扭矩约束仅在前三个预测步骤中施加。还要为两个输出(负载角度和扭矩)指定一个比例因子。
OV = struct(“最小值”,{负无穷变化,τ,τ;τ;负)},...“马克斯”,{正无穷,τ;τ,τ;正]},...“ScaleFactor”,{2π* 2 *τ});
指定调优权重
控制任务是为角位置获取零跟踪偏移。由于只有一个操纵变量,因此通过将轴扭矩的权重设置为零,允许轴扭矩在其约束范围内浮动。
权重= struct(“MV”0,“MVRate”, 0.1,机汇的, 0.1 [0]);
创建MPC控制器
创建具有采样时间的MPC控制器Ts
,预测视界10
步骤,并控制地平线2
步骤。
Ts = 0.1;mpcobj = mpc(plant,Ts,10,2,Weights,MV,OV);
计算闭环直流增益矩阵
计算闭环的稳态输出灵敏度。零值意味着被测量的设备输出可以跟踪所需的输出参考设定值。
cloffset (mpcobj)
——>转换模型到离散时间。假设测量的输出通道1没有任何扰动。——>”模式。“噪音”属性为空。假设每个测量输出都有白噪声。Ans = 0
使用模拟控制器sim卡
函数
使用sim卡
函数,在MATLAB中模拟线性植物模型的闭环控制。
disp (“现在模拟名义闭环行为”);Tstop = 8;%秒Tf = round(Tstop/Ts);%模拟迭代r = [pi*ones(Tf,1) 0 (Tf,1)];%参考信号[y1,t1,u1] = sim(mpcobj,Tf,r);
现在模拟名义闭环行为
阴谋的结果。
Subplot (3,1,1) stairs(t1,y1(:,1)) hold住在楼梯(t1, r (: 1))从标题(角位置的) subplot(3,1,2) stairs(t1,y1(:,2))“扭矩”) subplot(3,1,3) stairs(t1,u1) title(“电压”)
使用Simulink进行模拟金宝app
在Simulink中模拟闭环。金宝appMPC Controller块配置为使用mpcobj
作为控制器。
mdl =“mpc_motor”;open_system (mdl) sim (mdl)
闭环响应与MATLAB仿真结果一致。
参考文献
[1] A. Bemporad和E. Mosca,“利用引用管理实现不确定线性系统中的硬约束”,自动化,第34卷,no。4,页451-461,1998。
bdclose (mdl)