主要内容

无测输出约束直流伺服电机

该实例说明了在电压和轴转矩约束下,如何设计直流伺服机构的模型预测控制器。

有关使用显式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) zero (Tf,1)];%参考信号[y1,t1,u1] = sim(mpcobj,Tf,r);
现在模拟标称闭环行为

阴谋的结果。

子地块(3,1,1)楼梯(t1,y1(:,1))等待楼梯(t1, r (: 1))标题(角位置的) subplot(3,1,2) stairs(t1,y1(:,2)) title(“扭矩”) subplot(3,1,3) stairs(t1,u1) title(“电压”

使用Simulink进行模拟万博1manbetx

在Simulink中进行闭环仿真。万博1manbetxMPC Controller块被配置为使用mpcobj作为它的控制器。

mdl =“mpc_motor”;open_system (mdl) sim (mdl)

闭环响应与MATLAB仿真结果一致。

参考文献

[1] A. Bemporad和E. Mosca,“利用引用管理实现不确定线性系统中的硬约束”,自动化第34卷第4期。4,第451-461页,1998。

bdclose (mdl)

相关的话题