主要内容

DC伺服电动机,具有对未测量的输出限制

此示例显示了如何在电压和轴扭矩约束下设计用于DC伺服机构的模型预测控制器。

对于使用显式MPC的类似示例,请参阅具有对未测量输出约束的直流伺服电机的显式MPC控制

定义DC-伺服电机模型

线性开环动态模型定义为植物。多变的TAU是要用作输出约束的最大可接受扭矩。

[植物,tau] = mpcmotormodel;

为MPC控制器指定输入和输出信号类型。第二个输出扭矩,是不可测量的。

植物= setmpcsignals(植物,'mv',1,'莫',1,'uo',2);

指定MV约束

操纵变量受到+/- 220伏之间的约束。由于工厂输入和输出具有不同的数量级,因此您还使用比例因子来促进MPC调整。比例因子的典型选择是上限/下限或工作范围。

mv = struct('min',-220,'最大限度',220,'比例因子',440);

指定OV约束

扭矩约束仅在前三个预测步骤期间施加。

ov = struct('min',{ -  inf,[-tau; -tau; -tau; -inf]},......'最大限度',{inf,[tau; tau; tau; inf]},......'比例因子',{2 * pi,2 * tau});

指定调整权重

控制任务是为了获得角度位置的零跟踪偏移。由于只有一个操纵变量,允许轴扭矩通过将其重量设定为零而在其约束内浮动。

权重= struct('mv',0,'mvrate',0.1,'ov',[0.1 0]);

创建MPC控制器

使用采样时间创建MPC控制器TS.,预测地平线P.和控制地平线m

ts = 0.1;p = 10;m = 2;MPCOBJ = MPC(植物,TS,P,M,重量,MV,OV);

模拟控制器使用SIM功能

使用SIM模拟MATLAB线性植物模型的闭环控制功能。

DISP('现在模拟标称闭环行为');tstop = 8;%秒tf = round(tstop / ts);%模拟迭代r = [pi * on(tf,1)零(tf,1)];%参考信号[Y1,T1,U1] = SIM(MPCOBJ,TF,R);
现在模拟标称闭环行为 - >将模型转换为离散时间。假设没有添加到测量的输出通道#1中的干扰。- >“MPC”对象的“Model.Noise”属性为空。假设每个测量的输出通道上的白噪声。

情节结果。

子图(3,1,1)楼梯(T1,Y1(:1))保持楼梯(T1,R(:,1))保持离开标题('角度位置')子图(3,1,2)楼梯(T1,Y1(:,2))标题('扭矩')子图(3,1,3)楼梯(T1,U1)标题('电压'

模拟使用Simulink.万博1manbetx

要运行此示例,需要Simulink®。万博1manbetx

如果〜mpcchecktoolboxinstalled('万博1manbetxsimulink')disp('万博1manbetxSimulink(R)需要运行此示例。'返回结尾

模拟Simulink中线性植物模型的闭环控制。万博1manbetxMPC控制器块配置为使用mpcobj.作为其控制器。

mdl ='mpc_motor';Open_System(MDL)SIM(MDL)

闭环响应与MATLAB中的仿真结果相同。

参考

[1] A. Bemporad和E. MOSCA,“通过参考管理,”在不确定的线性系统中满足困难的限制“自动,卷。34,没有。4,第451-461,998。

BdClose(MDL)

相关话题