淘先锋技术网

首页 1 2 3 4 5 6 7
%%%%%%基于阶跃响应模型的控制器设计与仿真
%例8-12 双输入双输出纯时延dmc控制仿真(输入有约束)
%将传递函数转换为阶跃响应模型
g11=poly2tfd(12.8,[16.7 1],0,1);g21=poly2tfd(6.6,[10.9,1],0,7);
g12=poly2tfd(-18.9,[21.0 1],0,1);g22=poly2tfd(-19.4,[14.4 1],0,3);
delt=3%定义采样周期
nout=2%稳定系统输出2个
tfinal=90%阶跃响应截断时间90;
model=tfd2step(tfinal,delt,nout,g11,g21,g12,g22);
%模型预测控制器设计
plant=model;%开环实际阶跃响应模型=辨识出来的开环对象的阶跃响应模型?????
p=6;%预测时域长度为6
m=2;%控制时域长度为2
ywt=[]%输出误差加权矩阵
uwt=[1 0;0 1]%定义输入误差矩阵
r=[1 1];%输出设定值和参考轨迹
tend=90;%仿真结束时间
ulim=[-0.1 -0.1 0.5 0.5 0.1 100];%输入变量约束矩阵 u1下限 u2下限 u1上限 u2上限 u1变化率 u2变化率
ylim=[];%输出没有约束
[y,u,ym]=cmpc(plant,model,ywt,uwt,m,p,tend,r,ulim,ylim);%dmc预测
plotall(y,u)
%两条曲线分别是u1(y1)和u2(y2)

%例8-13双输入双输出无约束dmc控制
g11=poly2tfd(12.8,[11.2 1],0,1);g21=poly2tfd(-1.2,[3.0,1],0,4);
g12=poly2tfd(6.6,[5.2 1],0,2);g22=poly2tfd(1.3,[5 1],0,5);
delt=3%定义采样周期
nout=2%稳定系统输出2个
tfinal=90%阶跃响应截断时间90;
model=tfd2step(tfinal,delt,nout,g11,g21,g12,g22);
%模型预测控制器设计
plant=model;%开环实际阶跃响应模型=辨识出来的开环对象的阶跃响应模型?????
p=6;%预测时域长度为6
m=2;%控制时域长度为2
ywt=[]%输出误差加权矩阵
uwt=[1 0;0 1]%定义输入误差矩阵
kmpc=mpccon(model,ywt,uwt,m,p)%利用阶跃响应模型完成dmc控制器设计
r=[0 1];%输出设定值和参考轨迹
tend=40;%仿真结束时间
[y,u,ym]=mpcsim(model,model,kmpc,tend,r);%dmc预测%%%%和上面的用法不一样,这个调取了已有的dmc控制器
plotall(y,u)

%例8-14单输入单输出模型预测控制器设计、由系统开环阶跃响应mpc模型以及基于阶跃响应的mpc控制器得到闭环系统mpc状态空间模型
g=poly2tfd(3,[4 1],0,4);%传递函数转为mpc传递函数
plant=tfd2step(50,2,1,g);%阶段响应时间50,采样周期2,系统稳定输出1%mpc传递函数转为mpc阶跃响应模型
%plotstep(plant)
%设计模型预测控制器
p=6;%预测时域长度为6
m=2;%控制时域长度为2
ywt=[]%输出误差加权矩阵
uwt=1%定义输入误差矩阵
kmpc=mpccon(plant,ywt,uwt,m,p)%利用mpc阶跃响应模型完成dmc控制器设计
%由系统开环阶跃响应mpc模型以及基于阶跃响应的mpc控制器,得到闭环系统mpc状态空间模型
[clmod,cmod]=mpccl(plant,plant,kmpc)
%dmc控制
r=3;%输出设定值和参考轨迹
tend=50;%仿真结束时间
[y,u,ym]=mpcsim(plant,plant,kmpc,tend,r);%dmc预测%%%%和上面的用法不一样,这个调取了已有的dmc控制器
plotall(y,u,2)