预测函数控制MATLAB程序.doc

上传人:laozhun 文档编号:2388660 上传时间:2023-02-17 格式:DOC 页数:9 大小:24KB
返回 下载 相关 举报
预测函数控制MATLAB程序.doc_第1页
第1页 / 共9页
预测函数控制MATLAB程序.doc_第2页
第2页 / 共9页
预测函数控制MATLAB程序.doc_第3页
第3页 / 共9页
预测函数控制MATLAB程序.doc_第4页
第4页 / 共9页
预测函数控制MATLAB程序.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《预测函数控制MATLAB程序.doc》由会员分享,可在线阅读,更多相关《预测函数控制MATLAB程序.doc(9页珍藏版)》请在三一办公上搜索。

1、预测函数控制MATLAB程序程序一:跟踪阶跃函数clear all;close all;Ts=0.5;%采样周期0.5sTr=1;H=10;%参考轨迹时间常数为1,预测时域优化长度为10Km=3;Tm=3;%预测模型的参数beta=exp(-Ts/Tr);alph=exp(-Ts/Tm);%对象离散化sys=tf(3,3,1);dsys=c2d(sys,Ts,z);num,den=tfdata(dsys,v);%预测模型离散化sysm=tf(Km,Tm,1);dsysm=c2d(sysm,Ts,z);numm,denm=tfdata(dsysm,v);u_1=0;y_1=0;ym_1=0;c=

2、1;%设定值for k=1:1:100 time(k)=k*Ts; %经z变换后的离散化对象 y(k)=-den(2)*y_1+num(2)*u_1; ym(k)=-denm(2)*ym_1+numm(2)*u_1; %修正后的过程输出值ypav(k)=y(k) ypav(k)=y(k) %控制器输出 u(k)=(c-ypav(k)*(1-betaH)+ym(k)*(1-alphH)/(Km*(1-alphH); %参数更新 u_1=u(k); y_1=y(k); ym_1=ym(k); endfigure(1);plot(time,c,b,time,y,r);axis(0 50 0 1.2)

3、xlabel(time(s);ylabel(c,y);程序二:跟踪阶跃加扰动后响应clear all;close all;Ts=0.5;%采样周期0.5sTr=1;H=10;%参考轨迹时间常数为1,预测时域优化长度为10Km=3;Tm=3;%预测模型的参数beta=exp(-Ts/Tr);alph=exp(-Ts/Tm);%对象离散化sys=tf(3,3,1);dsys=c2d(sys,Ts,z);num,den=tfdata(dsys,v);%预测模型离散化sysm=tf(Km,Tm,1);dsysm=c2d(sysm,Ts,z);numm,denm=tfdata(dsysm,v);u_1=

4、0;y_1=0;ym_1=0;c=1;%设定值for k=1:1:40 time(k)=k*Ts; %经z变换后的离散化对象 y(k)=-den(2)*y_1+num(2)*u_1; ym(k)=-denm(2)*ym_1+numm(2)*u_1; %控制器输出 u(k)=(c-y(k)*(1-betaH)+ym(k)*(1-alphH)/(Km*(1-alphH); %参数更新 u_1=u(k); y_1=y(k); ym_1=ym(k); endfor k=41:1:44 time(k)=k*Ts; c=1.2; %经z变换后的离散化对象 y(k)=-den(2)*y_1+num(2)*u

5、_1; ym(k)=-denm(2)*ym_1+numm(2)*u_1; %控制器输出 u(k)=(c-y(k)*(1-betaH)+ym(k)*(1-alphH)/(Km*(1-alphH); %参数更新 u_1=u(k); y_1=y(k); ym_1=ym(k); endfor k=45:1:140 time(k)=k*Ts; c=1; %经z变换后的离散化对象 y(k)=-den(2)*y_1+num(2)*u_1; ym(k)=-denm(2)*ym_1+numm(2)*u_1; %控制器输出 u(k)=(c-y(k)*(1-betaH)+ym(k)*(1-alphH)/(Km*(1

6、-alphH); %参数更新 u_1=u(k); y_1=y(k); ym_1=ym(k); endfigure(1);plot(time,y,r);axis(0 70 0 1.2);xlabel(time(s);ylabel(c,y);程序三:跟踪斜坡函数clear all;close all;Ts=0.5;%采样周期0.5sTr=1;H1=4;H2=5;%参考轨迹时间常数为1,预测步长H1为4,H2为5Km=15;Tm=15;%预测模型的参数beta=exp(-Ts/Tr);alph=exp(-Ts/Tm);%对象离散化sys=tf(5,5,1);dsys=c2d(sys,Ts,z);nu

7、m,den=tfdata(dsys,v);%预测模型离散化sysm=tf(Km,Tm,1);dsysm=c2d(sysm,Ts,z);numm,denm=tfdata(dsysm,v);u_1=0;y_1=0;ym_1=0;s1=0;s2=0;G1(H1)=Km*(1-alphH1);G1(H2)=Km*(1-alphH2);for i=1:1:H1-1 s1=s1+i*alph(H1-1-i);end;for j=1:1:H2-1 s2=s2+i*alph(H2-1-i);end; G2(H1)=Km*(1-alph)*s1;G2(H2)=Km*(1-alph)*s2;for k=1:1:2

8、00 time(k)=k*Ts; c(k)=time(k);%设定值 %c(k+H1)=(k+H1)*Ts; %c(k+H2)=(k+H2)*Ts; %经z变换后的离散化对象 y(k)=-den(2)*y_1+num(2)*u_1; ym(k)=-denm(2)*ym_1+numm(2)*u_1; %修正后的过程输出值ypav(k)=y(k) %ypav(k)=y(k); %yr(k+H1)=e(k+H1)-betaH1*(c(k)-ypav(k)其中的e(k+H1)应该为c(k+H1) %即yr(k+H1)=c(k+H1)-betaH1*(c(k)-ypav(k) %X1=yr(k+H1)-

9、alphH1*ym(k)-e(k+H1) yr(k+H1)=(k+H1)*Ts-betaH1*(k+0)*Ts-y(k); yr(k+H2)=(k+H2)*Ts-betaH2*(k+0)*Ts-y(k); e(k+H1)=y(k)-ym(k); e(k+H2)=y(k)-ym(k); X1=yr(k+H1)-alphH1*ym(k)-e(k+H1); X2=yr(k+H2)-alphH2*ym(k)-e(k+H2); %控制器输出 u(k)=(G2(H2)*X1-G2(H1)*X2)/(G1(H1)*G2(H2)-G1(H2)*G2(H1); %参数更新 u_1=u(k); y_1=y(k);

10、 ym_1=ym(k); endfigure(1);plot(time,c,b-,time,y,r-);%axis(0 50 0 1.2)xlabel(time(s);ylabel(c,y);程序四:跟踪设定曲线clear all;close all;Ts=0.5;%采样周期0.5sTr=1;H1=4;H2=5;%参考轨迹时间常数为1,预测步长H1为4,H2为5Km=15;Tm=15;%预测模型的参数beta=exp(-Ts/Tr);alph=exp(-Ts/Tm);%对象离散化sys=tf(5,5,1);dsys=c2d(sys,Ts,z);num,den=tfdata(dsys,v);%预

11、测模型离散化sysm=tf(Km,Tm,1);dsysm=c2d(sysm,Ts,z);numm,denm=tfdata(dsysm,v);u_1=0;y_1=0;ym_1=0;s1=0;s2=0;G1(H1)=Km*(1-alphH1);G1(H2)=Km*(1-alphH2);for i=1:1:H1-1 s1=s1+i*alph(H1-1-i);end;for j=1:1:H2-1 s2=s2+i*alph(H2-1-i);end; G2(H1)=Km*(1-alph)*s1;G2(H2)=Km*(1-alph)*s2;for k=1:1:80 time(k)=k*Ts; c(k)=ti

12、me(k);%设定值 %c(k+H1)=(k+H1)*Ts; %c(k+H2)=(k+H2)*Ts; %经z变换后的离散化对象 y(k)=-den(2)*y_1+num(2)*u_1; ym(k)=-denm(2)*ym_1+numm(2)*u_1; %修正后的过程输出值ypav(k)=y(k) %ypav(k)=y(k); %yr(k+H1)=e(k+H1)-betaH1*(c(k)-ypav(k)其中的e(k+H1)应该为c(k+H1) %即yr(k+H1)=c(k+H1)-betaH1*(c(k)-ypav(k) %X1=yr(k+H1)-alphH1*ym(k)-e(k+H1) yr(

13、k+H1)=(k+H1)*Ts-betaH1*(k+0)*Ts-y(k); yr(k+H2)=(k+H2)*Ts-betaH2*(k+0)*Ts-y(k); e(k+H1)=y(k)-ym(k); e(k+H2)=y(k)-ym(k); X1=yr(k+H1)-alphH1*ym(k)-e(k+H1); X2=yr(k+H2)-alphH2*ym(k)-e(k+H2); %控制器输出 u(k)=(G2(H2)*X1-G2(H1)*X2)/(G1(H1)*G2(H2)-G1(H2)*G2(H1); %参数更新 u_1=u(k); y_1=y(k); ym_1=ym(k); endfor k=81

14、:1:160 time(k)=k*Ts; c(k)=40;%设定值 y(k)=-den(2)*y_1+num(2)*u_1; ym(k)=-denm(2)*ym_1+numm(2)*u_1; yr(k+H1)=40-betaH1*(40-y(k); yr(k+H2)=40-betaH2*(40-y(k); e(k+H1)=y(k)-ym(k); e(k+H2)=y(k)-ym(k); X1=yr(k+H1)-alphH1*ym(k)-e(k+H1); X2=yr(k+H2)-alphH2*ym(k)-e(k+H2); u(k)=(G2(H2)*X1-G2(H1)*X2)/(G1(H1)*G2(

15、H2)-G1(H2)*G2(H1); u_1=u(k); y_1=y(k); ym_1=ym(k); endfor k=161:1:200 time(k)=k*Ts; c(k)=-1.5*k*Ts+160; y(k)=-den(2)*y_1+num(2)*u_1; ym(k)=-denm(2)*ym_1+numm(2)*u_1; yr(k+H1)=-1.5*(k+H1)*Ts+160-betaH1*(c(k)-y(k); yr(k+H2)=-1.5*(k+H2)*Ts+160-betaH2*(c(k)-y(k); e(k+H1)=y(k)-ym(k); e(k+H2)=y(k)-ym(k);

16、X1=yr(k+H1)-alphH1*ym(k)-e(k+H1); X2=yr(k+H2)-alphH2*ym(k)-e(k+H2); u(k)=(G2(H2)*X1-G2(H1)*X2)/(G1(H1)*G2(H2)-G1(H2)*G2(H1); u_1=u(k); y_1=y(k); ym_1=ym(k); endfor k=200:1:300 time(k)=k*Ts; c(k)=10; y(k)=-den(2)*y_1+num(2)*u_1; ym(k)=-denm(2)*ym_1+numm(2)*u_1; yr(k+H1)=10-betaH1*(c(k)-y(k); yr(k+H2)

17、=10-betaH2*(c(k)-y(k); e(k+H1)=y(k)-ym(k); e(k+H2)=y(k)-ym(k); X1=yr(k+H1)-alphH1*ym(k)-e(k+H1); X2=yr(k+H2)-alphH2*ym(k)-e(k+H2); u(k)=(G2(H2)*X1-G2(H1)*X2)/(G1(H1)*G2(H2)-G1(H2)*G2(H1); u_1=u(k); y_1=y(k); ym_1=ym(k); endfigure(1);plot(time,c,b-,time,y,r-);axis(0 150 0 45)xlabel(time(s);ylabel(c,y);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号