预测控制大作业

上传人:夏** 文档编号:502406164 上传时间:2023-09-28 格式:DOC 页数:38 大小:568.02KB
返回 下载 相关 举报
预测控制大作业_第1页
第1页 / 共38页
预测控制大作业_第2页
第2页 / 共38页
预测控制大作业_第3页
第3页 / 共38页
预测控制大作业_第4页
第4页 / 共38页
预测控制大作业_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《预测控制大作业》由会员分享,可在线阅读,更多相关《预测控制大作业(38页珍藏版)》请在金锄头文库上搜索。

1、预测控制作业程序调试8-1:考虑一个单输入单输出的对象,其传递函数为:解:采用下面的MATLAB程序对该对象进行脉冲响应模型辨识,脉冲响应模型预测输出与预测误差曲线:% 将多项式的传递函数模型转换为MPC传递函数模型num=1 1;den=1 3 6;h=tf(num,den);% 获得脉冲信号xu,t=gensig(pulse,2,10,0.1);x=u;% 求解LTI对象的单位脉冲响应yt=0:0.1:10;y,x,t=lsim(h,x,t);% 输入脉冲信号x的归一化处理ax,mx,stdx=autosc(x);mx=0;Sx=scal(x,mx,stdx);% 生成用于线性回归计算的输

2、入/出数据矩阵n=35;xreg,yreg = wrtreg(Sx,y,n);% 基于多变量最小二乘法的脉冲响应模型辨识ninput=1;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);结果如图所示:8-2:考虑一个双输入单输出的对象,其传递函数矩阵为:采样时间为7秒解:采用下面的MATLAB程序对该对象进行脉冲响应模型辨识,脉冲响应模型预测输出与预测误差曲线:num1=5.72;den1=60 1;g1=poly2tfd(num1,den1,0,14);num2=1.52;den2=25 1;g2 = poly2tfd(num2,den2

3、,0,15);%将MPC传递函数模型转换为MPC状态空间模型mod=tfd2mod(7,1,g1,g2);%将MPC状态空间模型转换为通用状态空间模型A,B,C,D=mod2ss(mod);%将通用状态空间模型转换LTI对象的 状态空间模型sys=ss(A,B,C,D);h=tf(sys);% 获得脉冲信号xu,t=gensig(pulse,8,10,0.1);x=u u; % 求解LTI对象的单位脉冲响应yt=0:0.1:10;y,x1,t1=lsim(h,x,t);% 输入脉冲信号x的归一化处理ax,mx,stdx=autosc(x);mx=0 0;Sx=scal(x,mx,stdx);%

4、 生成用于线性回归计算的输入/出数据矩阵n=35;xreg,yreg = wrtreg(Sx,y,n);% 基于多变量最小二乘法的脉冲响应模型辨识ninput=2;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);结果如图所示:8-3:考虑一个单输入单输出的对象,其传递函数为: 解:采用下面的MATLAB程序对该对象进行脉冲响应模型辨识,脉冲响应模型预测输出与预测误差曲线% 将多项式的传递函数模型转换为MPC传递函数模型num=1 1;den=1 3 6;h=tf(num,den);% 获得脉冲信号xu,t=gensig(pulse,2,10

5、,0.1);x=u;% 求解LTI对象的单位脉冲响应yt=0:0.1:10;y,x1,t1=lsim(h,x,t);% 生成用于线性回归计算的输入/输出数据矩阵n=30;xreg,yreg = wrtreg(Sx,y,n);% 基于部分最小二乘法的脉冲响应模型辨识ninput=2;lv=10;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);结果如图所示:8-4:考虑一个单输入单输出的对象,其传递函数为: 解:采用下面的MATLAB程序对该对象进行脉冲响应模型辨识,脉冲响应模型预测输出与预测误差曲线:num=1 1;den=1 3 6;h=t

6、f(num,den);% 获得脉冲信号xu,t=gensig(pulse,2,10,0.1);x=u;% 求解LTI对象的单位脉冲响应yt=0:0.1:10;y,x1,t1=lsim(h,x,t);% 输入脉冲信号x的归一化处理ax,mx,stdx=autosc(x);mx=0;Sx=scal(x,mx,stdx);% 生成用于线性回归计算的输入/输出数据矩阵n=35;xreg,yreg = wrtreg(Sx,y,n);%基于多变量最小二乘法的脉冲响应模型辨识ninput=1;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);%脉冲响应模型

7、转换为阶跃响应模型theta=scal(theta,mx,stdx);nout=1;delt=1;model=imp2step(delt,nout,theta);plotstep(model);结果如图所示:8-12:考虑如下的双输入双输出纯时延对象,其传递函数距阵为:解:MATLAB程序如下:%将传递函数模型转换为阶跃响应模型g11=poly2tfd(12.8,16.7 1,0,1);g12 = poly2tfd(6.6,10.9 1,0,7);g21 = poly2tfd(-18.9,21.0 1,0,3);g22 = poly2tfd(-19.4,14.4 1,0,3);delt=3;n

8、y=2;tfinal=90;model = tfd2step(tfinal, delt, ny, g11, g12,g21,g22); %进行模型预测控制器设计 plant=model; %预测时域长度为6 p=6;m=2; ywt=;uwt=1 1; %设置输入约束和参考轨迹等控制器参数 r=1 1; tend=30;%仿真时间为30 ulim=-0.1 -0.1 0.5 0.5 0.1 100;ylim=;y,u,ym=cmpc(plant,model,ywt,uwt,m,p,tend,r,ulim,ylim);plotall(y,u,delt)闭环系统的输出和控制量变化曲线如图所示:8-

9、15:设系统的传递函数距阵为:解:MATLAB程序如下:g11=poly2tfd(12.8,16.7 1,0,1);g12 = poly2tfd(6.6,10.9 1,0,7);g21 = poly2tfd(-18.9,21.0 1,0,3);g22 = poly2tfd(-19.4,14.4 1,0,3);delt=3;ny=2;imod = tfd2mod(delt, ny, g11, g12,g21,g22);pmod=imod; p=6;m=2; ywt=;uwt=1 1; tend=30; r=0 1; ulim=-inf -0.15 inf inf 0.1 100;ylim=;y,

10、u,ym=scmpc(pmod,imod,ywt,uwt,m,p,tend,r,ulim,ylim);plotall(y,u,delt)闭环系统的输出和控制量变化曲线如图所示:在添加对输出变量的约束后,再利用以下程序对系统进行模型预测控制器的设计,得到闭环控制系统输出响应和控制量变化曲线如图:ulim=-inf -0.15 inf inf 0.1 100;ylim=0 0 inf inf;y,u,ym=scmpc(pmod,imod,ywt,uwt,m,p,tend,r,ulim,ylim);plotall(y,u,delt)8-16:考虑有如下传递函数距阵的多变量系统的状态空间模型预测控制器

11、设计问题 解:MATLAB程序如下:%在进行模型预测控制器设计之前,首先将系统模型转换为状态空间形式T=2;g11=poly2tfd(12.8,16.7 1,0,1);g12 = poly2tfd(6.6,10.9 1,0,7);g21 = poly2tfd(-18.9,21.0 1,0,3);g22 = poly2tfd(-19.4,14.4 1,0,3);umod = tfd2mod(T,2, g11, g12,g21,g22);%定义扰动模型g13=poly2tfd(3.8,14.9 1,0,8)g23=poly2tfd(4.9,13.2 1,0,3)dmod=tfd2mod(T,2,g

12、13,g23);%建立叠加了扰动的混合系统模型pmod=addumd(umod,dmod);%考虑精确建模的情况imod=pmod;ywt=;uwt=;%预测时域和控制时域均为5P=5;M=P;Ks=smpccon(imod,ywt,uwt,M,P); tend=30; r=0 1; y,u=smpcsim(pmod,imod,Ks,tend,r);plotall(y,u,T)得到闭环控制系统输出响应和控制量变化曲线如图:增加预测时域长度,同时减少控制时域长度后,再利用以下程序可得闭环系统的输出和控制量变化曲线如图所示:P=10;M=3;Ks=smpccon(imod,ywt,uwt,M,P)

13、;y,u=smpcsim(pmod,imod,Ks,tend,r);plotall(y,u,T)进一步改变控制时域长度,采用控制量分块的形式,即再利用以下程序可得到的闭环系统的输出和控制量变化曲线M=2 3 4;Ks=smpccon(imod,ywt,uwt,M,P);y,u=smpcsim(pmod,imod,Ks,tend,r);plotall(y,u,T)增加输入控制量的加权距阵系数,即再利用以下程序可得模型预测闭环控制系统输出控制量变化曲线uwt=1 1;P=5;M=P;Ks=smpccon(imod,ywt,uwt,M,P); tend=30; r=1 0; y,u=smpcsim(

14、pmod,imod,Ks,tend,r);plotall(y,u,T)再利用以下程序将输出设定值均设为0,绘制闭环系统的输出和控制量变化曲线,如图所示: ulim=;Kest=;R=; z=; v=; w=1;y,u=smpcsim(pmod,imod,Ks,tend,r,ulim,Kest,z,v,w);plotall(y,u,T)利用以下程序采用估计器进一步改善系统性能,对应的系统输出和控制量变化曲线如图所示Kest,newmod=smpcest(imod,15,15,3 3);Ks=smpccon(newmod,ywt,uwt,M,P); y,u=smpcsim(pmod,newmod,Ks,tend,r,ulim,Kest,z,v,w);plotall(y,u,T)8-17:考虑如下的多变量系统解:MATLAB程序如下:g11=poly2tfd(12

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号