




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、预测控制作业程序调试84:考虑一个单输入单输出的对象,其传递函数为:g($) =解:釆用下面的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预 测输出与预测误差曲线:%将多项式的传递函数模型转换为mpc传递函数模型num=l l;den=l 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=l;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);结果如图所示:15o1-50actual value (o) versus predicted value (+)102030405060outputopresction error70一enp_s8or05020304050sample number60708-2:考虑一个双输入单输出的对象,其传递函数矩阵为:5.72e-皿 1.52
3、*1"60s、+ l255 + 1采样时间为7秒解:采用下面的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预 测输出与预测误丼曲线:numl=5.72;denl=60 1;g 1 =poly2tfd(num 1 ,den 1,0,14);num2=1.52;den2=25 1;g2 = poly2tfd(num2,den2,0,15);%将mpc传递函数模型转换为mpc状态空间模型 mod=tfd2mod(7,1 ,g 1 ,g2);%将mpc状态空间模型转换为通用状态空间模型a,b,c,d=mod2ss(mod);%将通用状态空间模型转换lti对象的状态空间模型 sy
4、s=ss(a,b,c,d);h=tf(sys);%获得脉冲信号xu,t=gensig(,pulse,8,10,0.1);x=u u;%求解eh对象的单位脉冲响应y(=0:0.1:10;y,xl,tl=lsim(h,x,t);%输入脉冲信号x的归一化处理ax,mx,stdx=autosc(x);mx=0 0;sx=scal(x,mx,stdx);%生成用于线性回归计算的输入/出数据矩阵n=35;xreg,yreg = wrtreg(sx,y,n);%基于多变量最小二乘法的脉冲响应模型辨识ninput=2;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plot
5、opt);结果如图所示:150-5010203040sample number607050o1一enpsqr8-3:考虑一个单输入单输出的对象,其传递函数为:g(s)=s + 3s + 6 解:采用下面的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预测输出与预测误差曲线%将多项式的传递函数模世转换为mpc传递函数模型num=l l;den=l 3 6;h=tf(num,den);%获得脉冲滄号xu,t=gensig(,pulse,2,10,0.1);x=u;%求解lti对彖的单位脉冲响应yt=0:0.1:10;y,xl,tl=lsim(h,x,t);%生成用于线性回归计算的输入/
6、输出数据矩阵n=30;xreg,yreg = wrtreg(sx,y,n);%基于部分最小二乘法的脉冲响应模型辨识ninput=2;lv=l();plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);结果如图所示:actual value (o) versus predicted value (+)1020304050607080output腐咖嘶ion error5 15 0 51o.c a o 0-05 15 0 51o.c ao 0-0-enp一s8ct1020304050607080sample number8-4:考虑一个单输入单输出的
7、对象,其传递函数为:厂/八_$ + 1g ($) = 2s + 3s + 6解:采用卜面的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预 测输出与预测误差曲线:num=l l;den=l 3 6;h=tf(num,den);%获得脉冲滄号xu,t=gensig(,pulse,2,10,0.1);x=u;%求解lti对彖的单位脉冲响应yt=0:0.1:10;y,xl,tl=lsim(h,x,t);%输入脉冲信号x的归一化处理ax,mx,stdx=autosc(x);mx=0;sx=scal(x,mx,stdx);%生成用于线性回归计算的输入/输出数据矩阵n=35;xreg,yreg
8、 = wrtreg(sx,y,n);%基于多变量最小二乘法的脉冲响应模型辨识ninput=l;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);%脉冲响应模型转换为阶跃响应模型theta=scal(theta,mx,stdx);nout=l;delt=l;model=imp2step(delt?nout,theta); plotstep(model);结果如图所示:8-12:考虑如下的双输入双输出纯时延对象,其传递函数距阵为:g(s) =12&"16.75+1_18.9 宀 215+16.6严、10.95+1 -19.4 宀
9、14.45+1 丿解:matlab程序如下:%将传递函数模粮转换为阶跃响应模粮gll=poly2tfd(12.8,16.7 11,0,1);gl2 = poly2tfd(6.6,10.9 1,0,7);g21 =poly2tfd(-18.9,21.0 1,0,3);g22 = poly2tfd(-l 9.4, 14.4 1 ,0,3); delt=3;ny=2;tfinal=90;model = tfd2step(tfinal, delt, ny, g 11, gl2,g21,g22); %进行模型预测控制器设计plant=model;%预测时域长度为6p=6;m=2;ywt=;uwt=l 1
10、;%设置输入约束和参考轨迹等控制器参数r=l 1;tend=30;%仿真吋间为30ulim=-00.1 0.5 0.5 0.1 100;y,u,ym=cmpc(plant,model,ywt,uwt,m,p,tend,r,ulim,ylim);plotall(y,u,delt)闭环系统的输出和控制量变化曲线如图所示:0.160.050-0.051015202530time8-15:设系统的传递函数距阵为:g(s) =(12.8丘一'16.75+1一189幺一力215+16.6严、10.95+1 -19.4 宀14.45+1 丿解:matlab程序如下:gll=poly2tfd(12.8
11、,16.7 11,0,1);gl2 = poly2tfd(6.6,10.9 1,0,7);g21 =poly2tfd(-18.9,21.0 1,0,3);g22 = poly2tfd(-l 9.4, 14.4 1 ,0,3);delt=3;ny=2;imod = tfd2mod(delt, ny, gll, gl2,g21,g22);pmod=imod;p=6;m=2;ywt=;uwt=l 1;tend=30;r=0 1;ulim=-inf-0.15 inf inf 0.1 100;ylim=;y,u,ym=scmpc(pmod,imod,ywt,uwt,m,p,tend,r,ulim,yli
12、m); plotall(y,u,delt)闭环系统的输出和控制量变化曲线如图所示:outputs在添加对输出变量的约束后,再利用以下程序对系统进行模型预测控制器的 设计,得到闭环控制系统输出响应和控制量变化曲线如图:ulim=-inf -0.15 inf inf 0.1 100;ylim=|0 0 inf inf; y,u,ym=scmpc(pmod,imod,ywt,uwt,m,p,tendj,ulim,ylim);plotall(y,u,delt)8-16:考虑有如下传递函数距阵的多变量系统的状态空间模型预测控制器设计问g(s) =(12.8c16.7$+1 18.9/% 215+16.6
13、严 >10.95+1-19.4 严14.45+1 丿解:matlab程序如下:%在进行模型预测控制器设计z前,首先将系统模型转换为状态空间形式 t=2;gll=poly2tfd(12.8,16.7 1,0,1);gl2 = poly2tfd(6.6,10.9 1,0,7);g21 =poly2tfd(-18.9,21.0 l,0,3);g22 = poly2tfd(-19.4,14.4 l,0,3);umod = tfd2mod(t,2, gl 1, gl2,g21 ,g22);%定义扰动模型gl3=poly2tfd(3.8,14.9 l,0,8)g23=poly2tfd(4.9,13.
14、2 l,0,3)dmod=tfd2mod(t,2,g 13,g23);%建立叠加了扰动的混合系统模型pmod=addumd(umod,dmod);%考虑精确建模的情况imod=pmod;ywt=;uwt=;%预测时域和控制时域均为5p=5;m=p;ks=smpccon(imod,ywt,uwt,m,p);tend=3o;r=0 1;y,u=smpcsim(pmod,imod,ks,tender);plotall(y,u,t)得到闭环控制系统输出响应和控制量变化曲线如图:outputs210-1-21020253015 time增加预测时域长度,同时减少控制时域长度后,再利用以下程序可得闭环系
15、统的输岀和控制量变化曲线如图所示:p=10;m=3;ks=smpccon(imod,ywt,uwt,m,p); y9u=smpcsim(pmod,imod,ks,tender); plotall(y,u,t)进一步改变控制时域长度,采用控制量分块的形式,即再利用以下程序可得到的闭环系统的输出和控制量变化曲线m=2 3 4;ks=smpccon(imod,ywt,uwt,m5p); yu=smpcsirn(pmod,irnod,ks,tender); plotall(y,u,t)0.50.4 -0.3 i0.2 - 1'« 0.1 -i*i -ro «1«&
16、gt;'051015202530time增加输入控制量的加权距阵系数,即再利用以下程序可得模型预测闭环控制 系统输岀控制量变化曲线uwt= 1 1;p=5;m=p;ks=smpccon(imod,ywt,uwt,m,p);tend=30;r=h 0;y,u=smpcsim(pmod,imod,ks,tend,r); plotall(y,u,t)0.60.4 -0.20 二man ipulale3/ariables"°'2o51015202530time再利用以卜程序将输出设定值均设为0,绘制闭环系统的输出和控制量变化 曲线,如图所示:ulim=;kest=;
17、r=;z=l;v=;w=l;y9u=smpcsim(pmod,imod,ks,tendxulim,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,tendj,ulim,kest,z,v,w); plotall(y,u,t)8-17:考虑如下的多变量系统12&76.6 严、16.7+110.9s+118.9
18、3;一力-19.4 宀v215+114.45+1丿解:matlab程序如下:gll=poly2tfd(12.&16.7 0,0,1);gl2 = 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=l;ny=2;imod = tfd2mod(delt,ny, gl 1, gl2,g21 ,g22);gwl=poly2tfd(3.8,14.9 l,0,8)gw2=poly2tfd(4.9,13.2 11,0,3)pmod=addumd(imod,tfd
19、2mod(delt,ny,gw 1 ,gw2);%设计模型预测控制器p=6;m=2;ywt=;uwt=l 1;ks=smpccon(imod,ywt,uwt,m,p);g(s) =r=;ulim=;z=;v=;w=l;wu=;tend=30;y3,u3=smpcsim(pmod,imod,ks,tend,r,ulim,z,v,w,wu);%设计状态估计器kest 1 =smpcest(pmod, 1,0.001 *eye(ny);ksl =smpccon(pmod,ywt,uwt,m,p);y 1 ,u 1 =smpcsim(pmod,pmod,ks 1,tend,r,ulim,kest 1
20、,z,v,w,wu); plotall(yl,ul,delt)采用了状态估计器的闭环系统输出和控制量变化曲线如图所示:1.5outputs10.50-0.51015202530manipulate3/ariables下面进行简化的状态估计器设计tau=10 10; signoise=3 3;kest2,newmod=smpcest(imod,tau,signoise);ks2=smpccon(newmod,ywt,uwt,m,p);y2,u2=smpcsim(pmod,pmod,ks 1,tend,r.ulim,kest 1 ,z,v,w, wu); plotall(y2,u2,delt)采用
21、简化的状态估计器的闭环系统输出和控制量曲线如图所示:专业:控制理论与控制工程学号:062030040姓名:陈孝凯程序调试8-1:考虑一个单输入单输出的对象,其传递函数为:g(s、)=s + 3$ + 6 解:采用下而的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预 测输出与预测误差曲线:%将多项式的传递函数模型转换为mpc传递函数模型num=l l;den=l 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=isim(h,x,t);%输入脉冲信号x
22、的归一化处理ax,mx,stdx=autosc(x);mx=();sx=scal(x?mx,stdx);%生成用于线性冋归计算的输入/出数据矩阵n=35;xreg,yreg = wrtreg(sx,y,n);%基于多变量最小二乘法的脉冲响应模型辨识ninput=l;plotopt=2;theta,yres =mlr(xreg, yreg,ninput ,plotopt);结果如图所示:一enp 一 saqr1-50actual value (o) versus predicted value (+)102030405060outputoprecfiction error70o 05102030
23、40sample number506070o05 o8-2:考虑一个双输入单输出的对象,其传递函数矩阵为:5.72小处605 + 11.520-®255+1采样时间为7秒解:采用下面的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预 测输出与预测误差曲线:num 1 =5.72;den 1 =60 1;g 1 =poly2tfd(num 1 ,den 1,0,14);num2=l .52;den2=25 1;g2 = poly2tfd(num2,den2,0,15);%将mpc传递函数模型转换为mpc状态空间模型mod=tfd2mod(7,l ,g 1 ,g2);%将mp
24、c状态空间模型转换为通用状态空间模型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;%求解eti对象的单位脉冲响应y t=0:0.1:10;y,xl,tl=lsim(h,x,t);%输入脉冲信号x的归一化处理ax,mx,stdx=autosc(x);mx=0 0;sx=scal(x,mx,stdx);%生成用于线性回归计算的输入/出数据矩阵 n=35;xreg,yreg = wrtreg(sx,y,n);%基于
25、多变量最小二乘法的脉冲响应模型辨识 ninput=2;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);结果如图所示:1501005010203040506070sample number83:考虑一个单输入单输出的对象,其传递函数为:g(5)=解:采用下面的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预 测输出与预测误差曲线%将多项式的传递函数模型转换为mpc传递函数模型num=l lj;den=l 3 6;h=tf(num,den);%获得脉冲信号xu,t =gensig(,pulse,2,10,0.1);x=uj;%求解u
26、h对象的单位脉冲响应yt=0:0.1:10;y,xl,tl=lsim(h,x,t);%生成用于线性回归计算的输入/输出数据矩阵 n=3();xreg,yreg = wrtreg(sx,y,n);%基于部分最小二乘法的脉冲响应模型辨识ninput=2;lv=10;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);结果如图所示:actual value (o) versus predicted value (+)1-50-enp 一 s8cz8-4:考虑一个单输入单输出的对象,其传递函数为:k/c_3 + 1g(s) = 5 $ + 3$ + 6
27、解:采用下面的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预 测输出与预测误差曲线:num=l l;den=l 3 6;h=tf(num,den);%获得脉冲信号xu,t =gensig(,pulse,2,10,0.1);x=u;%求解lti对彖的单位脉冲响应yt=0:0.1:10;y,xl,tl=lsim(h,x,t);%输入脉冲信号x的归一化处理ax ,mx,stdx =autosc(x);mx=o;sx=scal(x,mx,stdx);%生成用于线性冋归计算的输入/输击数据矩阵n=35;xreg,yreg = wrtreg(sx,y,n);%基于多变量最小二乘法的脉冲响应模
28、型辨识ninput=l;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);%脉冲响应模型转换为阶跃响应模型theta=scal(theta,mx,stdx);nout=l;delt=l;model=imp2step(delt,nout,theta);plotstep(model);结果如图所示:8-12:考虑如下的双输入双输出纯时延对象,其传递函数距阵为:g(s) =12&"16.75+1一18.9幺-九215+16.6严、10.95+1 -19.4 严14.45+1 )解:matlab程序如下:%将传递函数模型转换为阶跃响
29、应模型gll=poly2tfd(12.8,16.7 1,0,1); gl2 = poly2tfd(6.6,10.9 1,0,7); g21=poly2tfd(-18.9,21.0 1,0,3);g22 = poly2tfd(-19.4,14.4 l,0,3);delt=3;ny=2;tfinal=90;model = tfd2step(tfinal, delt, ny, gll, gl2,g21,g22);%进行模型预测控制器设计plant=model;%预测时域长度为6p=6;m=2;ywt=;uwt=l 1;%设置输入约束和参考轨迹等控制器参数r=l 1;tend=3o;%仿真时间为30u
30、lim=-0j -0.1 0.5 0.5 0.1 100|;ylim=;y,u9yrn=cmpc(plant,modehywt,uwt5m,p,tendj,ulim,ylirn);plotall(y,u,delt)闭环系统的输出和控制量变化曲线如图所示:0.150.050-0.051020253015time8-15:设系统的传递函数距阵为:g(s) =12&"16.75+1_18.9 宀 215+16.6严、10.95+1 -19.4 宀14.45+1 丿解:matlab程序如下: gll=poly2tfd(12.8,16.7 1,0,1); gl2 = poly2tfd(
31、6.6,10.9 1,0,7); g21=poly2tfd(-18.9,21.0 1,0,3); g22 = poly2tfd(-19a14.4 1q3); delt=3;ny=2;imod = tfd2mod(delt, ny, gll, gl2,g21,g22); pmod=imod;p=6;m=2;ywt=;uwt=l 1;tend=3o;r=ro 1;ulim=-inf ()5 inf inf 0100;y,u,ym=scmpc(pmodjmod,ywt,uwt,m,p4end,r,ulim,ylim);plotall(y,u,delt)闭环系统的输出和控制量变化曲线如图所示:在添加对
32、输出变量的约束后,再利用以下程序对系统进行模型预测控制器的 设计,得到闭环控制系统输出响应和控制量变化曲线如图: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)outputsmanipulale3/ariables0-0 05-0.1-0 15-0.2-0 2551015202530time816:考虑有如下传递函数距阵的多变量系统的状态空间模型预测控制器设计问g(s) =(12&7 16.75
33、+118.9广九v 215+16.6 严、10.9$+1194一九14.45+1 丿解:matlab程序如下:%在进行模型预测控制器设计之前,首先将系统模型转换为状态空间形式t=2;gll=poly2tfd(12.8,16.7 1,0,1);gl2 = poly2tfd(6.6,10.9 1,0,7);g21 =poly2tfd(-18.9,21.0 1,0,3);g22 = poly2tfd(-19.4,14.4 l,0,3);umod = tfd2mod(t,2, gll, gl2,g21,g22);%定义扰动模型gl3=poly2tfd(3.8,14.9 l,0,8)g23=poly2t
34、fd(4.9,13.2 l,0,3)dmod=tfd2mod(t,2,g 13,g23);%建立叠加了扰动的混合系统模型pmod=addumd(umod,dmod);%考虑精确建模的情况imod=pmod;ywt=l;uwt=;%预测时域和控制时域均为5p=5;m=p;ks=smpccon(imod,ywt,uwt,m,p);tend=30;r=0 1;y9u=smpcsim(pmod,imod,ks,tender);plotall(y,u,t)得到闭环控制系统输出响应和控制量变化曲线如图:outputsmanipulatea variables增加预测时域长度,同时减少控制时域长度后,再利用
35、以下程序可得闭环系 统的输出和控制量变化曲线如图所示:p=10;m=3;ks=smpccon(imod,ywt,uwt,m,p); 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,imod9ks,tender);plotall(y,u,t)time增加输入控制量的加权距阵系数,即再利用以下程序可得模型预测闭环控制 系统输出控制量变化曲线uw
36、t=l 1;p=5;m=p;ks=smpccon(imod,ywt,uwt,m,p);tend=30;r=l 0;y,u=smpcsim(pmod,imod,ks,tend,r);plotall(y,u,t)再利用以下程序将输出设定值均设为0,绘制闭环系统的输出和控制量变化曲线,如图所示:ulim=;kest=;r=;z=;v=;w=l;y,u=smpcsim(pmod,imod,ks,tendj,ulim,kest,z,v,w);plotall(y,u,t)outputstime利用以下程序采用估计器进一步改善系统性能,对应的系统输岀和控制量变化曲 线如图所示kestnewmod=smpce
37、st(imod, 15,15,3 3); ks=smpccon(newmod,ywt,uwtmp);yu=smpcsim(pmod,newmod,ks,tend,r,ulim,kest,z,v,w); plotall(y,u,t)8-17:考虑如下的多变量系统g(s) =(12.8丘一'16.75+1一189幺一力215+16.6严、10.9s+l -19.4 宀14.45+1 丿解:matlab程序如下:gll =poly2tfd(l2.& 16.7 0,0,1);gl2 = poly2tfd(6.6,10.9 1,0,7);g21 =poly2tfd(-18.9,21.0
38、1,0,3);g22 = poly2tfd(-19.4,14.4 1,0,3);delt=l;ny=2;imod = tfd2mod(delt,ny, gll, gl2,g21,g22); gwl=poly2tfd(3.8,14.9 l,0,8) gw2=poly2tfd(4.9,13.2 l,0,3) pmod=addumd(imod,tfd2mod(delt,ny,gw 1 ,gw2);%设计模型预测控制器p=6;m=2;ywt=;uwt=l 1;ks=smpccon(imod,ywt,uwt,m,p);r=;ulim= i;z=;v=;w=l;wu=;tend=3o;y3,u3=smpc
39、sim(pmod,imod,ks,tend,r,ulim,z,v,w,wu); %设计状态估计器kestl =smpcest(pmod, 1,0.001 *eye(ny);ks 1 =smpccon(pmod,ywt,uwt,m,p);| y 1 ,u 1 |=smpcsim(pmod,pmod,ks 1,tend,r,ulim,kestl ,z,v,w,wu); plotall(yl,ul,delt)采用了状态估计器的闭环系统输出和控制量变化曲线如图所示:1015202530man ipulales/ariables卜面进行简化的状态估计器设计tau=10 10; signoise=3 3;
40、 kest2,newmod|=smpcest(imod,tau,signoise);ks2=smpccon(newmod5ywt,uwt,m,p); y2,u2=smpcsim(pmod,pmod,ks 1,tender,ulim.kest 1 ,z,v,w,wu); plotall(y2,u2,delt)采用简化的状态估计器的闭环系统输出和控制量曲线如图所示:1.5r10.5005o0.80.60.4outputs1015202530time0.2专业:控制理论与控制工程学号:062030039姓名:曹景运iwi程序调试8-1:考虑一个单输入单输出的对象,其传递函数为:g($) = $ +
41、3s + 6解:采用卜面的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预 测输出与预测误差曲线:%将多项式的传递函数模型转换为mpc传递函数模型num= 1 l;den=fl 3 6;h=tf(num,den);%获得脉冲信号xu,t=gensig(,pulse,2,l 0,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);%生成用于线性回归计算的输入/出数据矩阵n=35;xreg,yreg = wrtr
42、eg(sx,y,n);%基于多变量最小二乘法的脉冲响应模型辨识ninput=l;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);结果如图所示:一enp 一 saqr1-50actual value (o) versus predicted value (+)102030405060outputoprecfiction error70o 0510203040sample number506070o8-2:考虑一个双输入单输出的对象,其传递函数矩阵为:5.72e1456054-1 l.52ei5s255+1采样时间为7秒解:采用下面的matla
43、b程序对该对象进行脉冲响应模型辨识,脉冲响应模型预 测输出与预测误差曲线:num 1 =5.72;den 1 =60 1;g 1 =poly2tfd(num 1 ,den 1,0,14);num2=l .52;den2=25 1;g2 = poly2tfd(num2,den2,0,15);%将mpc传递函数模型转换为mpc状态空间模型mod=tfd2mod(7,l ,g 1 ,g2);%将mpc状态空间模型转换为通用状态空间模型a,b,c,d=mod2ss(mod);%将通用状态空间模型转换lti对象的状态空间模型sys 二 ss(a,b,c,d);h=tf(sys);%获得脉冲信号xfu,t
44、=gensig(,pulse, 8,10,0.1);x=u uj;%求解lti对彖的单位脉冲响应yt=0:0.1:10;y,xl,tl=lsim(h,x,t);%输入脉冲信号x的归一化处理ax,mx,stdx=autosc(x);mx=0 0;sx=scal(x,mx,stdx);%生成用于线性m归计算的输入/出数据矩阵 n=35;xreg,yreg = wrtreg(sx,y,n);%基于多变量最小二乘法的脉冲响应模型辨识 ninput=2;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);结果如图所示:102030405060sample
45、 number7083:考虑一个单输入单输出的对象,其传递函数为:g($)=s + 3s + 6 解:采用下面的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预测输出与预测误差曲线%将多项式的传递函数模型转换为mpc传递函数模型num=l l;den=l 3 6;h=tf(num,den);%获得脉冲信号xu,t =gensig(,pulse,2,10,0.1);x=u;%求解lti对彖的单位脉冲响应yt=0:0.1:10;y,xl,tl=lsim(h,x,t);%生成用于线性冋归计算的输入/输击数据矩阵n=30;xreg,yreg = wrtreg(sx,y,n);%基于部分最小
46、二乘法的脉冲响应模型辨识ninput=2;lv=10;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt); 结果如图所示:0 150.11-500.05102030::辽;辭0-0 0540506070-enp 一 s8qtactual value (o) versus predicted value (+)8-4:考虑一个单输入单输出的对象,其传递函数为:g(s) =解:采用下面的matlab程序对该对象进行脉冲响应模型辨识,脉冲响应模型预 测输出与预测误差曲线:num=l l;den=l 3 6;h=tf(num,den);%获得脉冲信号x
47、fu,t=gensig(,pulse,2,10,0.1);x=u;%求解lti对彖的单位脉冲响应yt=0:0.1:10;y,xl,tl=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=l;plotopt=2;f theta,yres=mlr(xreg,yreg,ninput,plotopt);%脉冲响应模型转换为阶跃响应模型theta=scal
48、(theta,mx,stdx);nout=l;delt=l;model=imp2step(delt,nout,theta); plotstep(model); 结果如图所示:8-12:考虑如下的双输入双输出纯时延对象,其传递函数距阵为:g(s) =12&"16.75+1一18.9幺-九215+16.6严、10.95+1 -19.4 严14.45+1 )解:matlab程序如下:%将传递函数模型转换为阶跃响应模型gll=poly2tfd(12.8,16.7 1,0,1);gl2 = poly2tfd(6.6,10.9 1,0,7); g21=poly2tfd(-18.9,21.
49、0 1,0,3);g22 = poly2tfd(-19.4,14.4 1,0,3);delt=3;ny=2;tfinal=90;model = tfd2step(tfinal, delt, ny, gll, gl2,g21,g22); %进行模型预测控制器设计plant=model;%预测时域长度为6p=6;m=2;ywt=;uwt=l 1;%设置输入约束和参考轨迹等控制器参数r=l 1;tend=30;%仿真时间为30ulim=-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,yli
50、m);plotall(y,u,delt)闭环系统的输出和控制量变化曲线如图所示:8-15:设系统的传递函数距阵为:g(s) =12&"6.6严16.75+110.95+1-18.9 严-19.4 宀v215+114.4s+l丿解:matlab程序如下:gll=poly2tfd(12.8,16.7 1,0,1);gl2 = 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, gl 1, gl2,g21,g22);pmod=imod;p=6;m=2;ywt=;uwt=l 1;tend=30;r=0 1;ulim=-inf -05infinfo100;ylim 二;y,u,ym=scmpc(pmodjmod,ywt,uwt,m,p,tend,r,ulim,ylim);plotall(y,u,delt)闭环系统的输出和控制量变化曲线如图所示:在添加对输出变量的约束后,再利用以下程序对系统进行模型预测控制器的 设计,得到闭环控制系统输出响应和控制量变化曲线如图:ulim=-inf -0.15 inf inf ().1 100;ylim=0 0 inf in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园燃气安全管理制度
- 校园硬化建设管理制度
- 校园财务安全管理制度
- 校外供餐单位管理制度
- 智能合约隐私计算-洞察及研究
- 农村绿色生态农业种植合作合同书
- 人员派遣合同书
- 项目投资合作协议及承诺书
- 混淆抗攻击机制-洞察及研究
- 生物化学蛋白质与基因工程试题集
- 《电力工程电缆设计规范》
- 给小学生科普人工智能
- 硬件工程师职业生涯规划
- 脊髓半切综合征学习课件
- 人教版二年级下册美术《重重叠叠》4课件
- 退费账户确认书
- Python数据分析与数据挖掘 课件 第6、7章 Pandas基础与应用、Matplotlib
- (最准确)工程勘察设计收费标准快速计算表(EXCEL)
- 达林顿管中文资料
- 中学教育惩戒规则实施方案
- 体外循环管理
评论
0/150
提交评论