该实例说明了如何为电压和轴转矩约束下的直流伺服机构设计模型预测控制器。
有关使用显式MPC的类似示例,请参见带输出约束的直流伺服电机显式MPC控制.
定义了线性开环动态模型植物
.变量TAU
是要用作输出约束的最大可接受扭矩。
(植物、τ)= mpcmotormodel;
指定MPC控制器的输入和输出信号类型。第二个输出,扭矩,是无法测量的。
植物= setmpcsignals(植物,“MV”,1,“莫”,1,“UO”2);
操纵变量被限制在+/- 220伏之间。由于工厂的输入和输出是不同数量级的,您还可以使用比例因子来促进MPC的调整。标度因子的典型选择是上限/下限或操作范围。
MV =结构(“最小值”, -220,“马克斯”, 220,“ScaleFactor”, 440);
扭矩约束仅在前三个预测步骤中施加。
OV =结构(“最小值”,{负无穷变化,τ,τ;τ;负)},...“马克斯”,{正无穷,τ;τ,τ;正]},...“ScaleFactor”,{2 * pi,2 * tau});
控制任务是使角位置的跟踪偏移量为零。由于您只有一个操纵变量,轴扭矩可以通过将其权重设置为零而在其约束范围内浮动。
重量=结构(“MV”0,“MVRate”, 0.1,'ov', 0.1 [0]);
创建带有采样时间的MPC控制器Ts
,预测地平线p
,控制视界米
.
ts = 0.1;p = 10;m = 2;MPCOBJ = MPC(植物,TS,P,M,重量,MV,OV);
sim卡
功能使用sim卡
模拟MATLAB线性植物模型的闭环控制功能。
DISP("现在模拟名义闭环行为");tstop = 8;%秒Tf =圆(Tstop / Ts);%模拟迭代r = [pi*ones(Tf,1) zeros(Tf,1)];%的参考信号(y1, t1, u1) = sim (mpcobj, Tf, r);
现在模拟名义闭环行为——>将模型转换为离散时间。假设对测量的输出通道#1没有增加任何干扰。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。
情节结果。
次要情节(1,1)楼梯(t1, y1 (: 1))在楼梯(t1, r (: 1))从标题(角位置的) subplot(3,1,2) stairs(t1,y1(:,2))'扭矩')子图(3,1,3)楼梯(T1,U1)标题(“电压”)
要运行此示例,需要Simulink®。万博1manbetx
如果~ mpcchecktoolboxinstalled (“万博1manbetx模型”) disp (运万博1manbetx行这个示例需要Simulink(R)。)返回结束
在Simulink中对线性被控对象模型进行闭环控制仿真。万博1manbetxMPC控制器块被配置为使用mpcobj.
作为控制器。
mdl =“mpc_motor”;open_system (mdl) sim (mdl)
闭环响应与MATLAB仿真结果一致。
[1] A. Bemporad和E. MOSCA,“通过参考管理,”在不确定的线性系统中满足困难的限制“自动化第34卷第3期4、1998年。
bdclose (mdl)