这个例子展示了如何设计一个模型预测控制器为直流伺服机构在电压和轴转矩约束下。
有关使用显式MPC的类似示例,请参见直流伺服电机的MPC显式控制,对未测输出有约束。
定义了线性开环动态模型植物
。变量牛头
将被使用作为输出约束的最大容许转矩。
(植物、τ)= 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,机汇的,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* 1 (Tf,1) 0 (Tf,1)];%的参考信号(y1, t1, u1) = sim (mpcobj, Tf, r);
现在模拟标称闭环行为——>转换模型离散时间。假设在测量的输出通道1上没有增加干扰。- - >”模型。“mpc”对象的“噪音”属性为空。假设每个测量的输出通道上都有白噪声。
绘图效果。
次要情节(1,1)楼梯(t1, y1 (: 1))上楼梯(t1, r (: 1))从标题(角位置的)次地块(3,1,2)楼梯(t1,y1(:,2))“扭矩”)副区(3,1,3)楼梯(T1,U1)称号(“电压”)
要运行此示例,需要Simulink®。金宝app
如果~ mpcchecktoolboxinstalled (“金宝app模型”)disp (运金宝app行这个例子需要Simulink(R)。)返回结束
在Simulink中模拟线性工厂模型的闭环控制。金宝appMPC控制器块被配置为使用mpcobj
作为控制器。
mdl =“mpc_motor”;open_system (mdl) sim (mdl)
闭环响应与MATLAB仿真结果一致。
[1] A. Bemporad和E.莫斯卡,“履行通过引用管理在不确定线性系统硬约束,”自动化,第34卷,不。4,第451-461页,1998年。
bdclose (mdl)