




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、預測控制作業(yè)程序調試8-1:考慮一個單輸入單輸出的對象,其傳遞函數(shù)為:解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸出與預測誤差曲線:% 將多項式的傳遞函數(shù)模型轉換為MPC傳遞函數(shù)模型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、用于線性回歸計算的輸入/出數(shù)據(jù)矩陣n=35;xreg,yreg = wrtreg(Sx,y,n);% 基于多變量最小二乘法的脈沖響應模型辨識ninput=1;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);結果如圖所示:8-2:考慮一個雙輸入單輸出的對象,其傳遞函數(shù)矩陣為:采樣時間為7秒解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸出與預測誤差曲線:num1=5.72;den1=60 1;g1=poly2tfd(num1,den1,0,14);num2=1.52;den2=25 1;g2 = poly2tfd
3、(num2,den2,0,15);%將MPC傳遞函數(shù)模型轉換為MPC狀態(tài)空間模型mod=tfd2mod(7,1,g1,g2);%將MPC狀態(tài)空間模型轉換為通用狀態(tài)空間模型A,B,C,D=mod2ss(mod);%將通用狀態(tài)空間模型轉換LTI對象的 狀態(tài)空間模型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;
4、Sx=scal(x,mx,stdx);% 生成用于線性回歸計算的輸入/出數(shù)據(jù)矩陣n=35;xreg,yreg = wrtreg(Sx,y,n);% 基于多變量最小二乘法的脈沖響應模型辨識ninput=2;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);結果如圖所示:8-3:考慮一個單輸入單輸出的對象,其傳遞函數(shù)為: 解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸出與預測誤差曲線% 將多項式的傳遞函數(shù)模型轉換為MPC傳遞函數(shù)模型num=1 1;den=1 3 6;h=tf(num,den);% 獲得脈沖信號xu
5、,t=gensig('pulse',2,10,0.1);x=u;% 求解LTI對象的單位脈沖響應yt=0:0.1:10;y,x1,t1=lsim(h,x,t);% 生成用于線性回歸計算的輸入/輸出數(shù)據(jù)矩陣n=30;xreg,yreg = wrtreg(Sx,y,n);% 基于部分最小二乘法的脈沖響應模型辨識ninput=2;lv=10;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);結果如圖所示:8-4:考慮一個單輸入單輸出的對象,其傳遞函數(shù)為: 解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸
6、出與預測誤差曲線: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,x1,t1=lsim(h,x,t);% 輸入脈沖信號x的歸一化處理ax,mx,stdx=autosc(x);mx=0;Sx=scal(x,mx,stdx);% 生成用于線性回歸計算的輸入/輸出數(shù)據(jù)矩陣n=35;xreg,yreg = wrtreg(Sx,y,n);%基于多變量最小二乘法的脈沖響應模型辨識ninput=1;plotopt=2;theta,yr
7、es=mlr(xreg,yreg,ninput,plotopt);%脈沖響應模型轉換為階躍響應模型theta=scal(theta,mx,stdx);nout=1;delt=1;model=imp2step(delt,nout,theta);plotstep(model);結果如圖所示:8-12:考慮如下的雙輸入雙輸出純時延對象,其傳遞函數(shù)距陣為:解:MATLAB程序如下:%將傳遞函數(shù)模型轉換為階躍響應模型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);g
8、22 = poly2tfd(-19.4,14.4 1,0,3);delt=3;ny=2;tfinal=90;model = tfd2step(tfinal, delt, ny, g11, g12,g21,g22); %進行模型預測控制器設計 plant=model; %預測時域長度為6 p=6;m=2; ywt=;uwt=1 1; %設置輸入約束和參考軌跡等控制器參數(shù) 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)
9、;plotall(y,u,delt)閉環(huán)系統(tǒng)的輸出和控制量變化曲線如圖所示:8-15:設系統(tǒng)的傳遞函數(shù)距陣為:解: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;
10、ulim=-inf -0.15 inf inf 0.1 100;ylim=;y,u,ym=scmpc(pmod,imod,ywt,uwt,m,p,tend,r,ulim,ylim);plotall(y,u,delt)閉環(huán)系統(tǒng)的輸出和控制量變化曲線如圖所示:在添加對輸出變量的約束后,再利用以下程序對系統(tǒng)進行模型預測控制器的設計,得到閉環(huán)控制系統(tǒng)輸出響應和控制量變化曲線如圖: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
11、,delt)8-16:考慮有如下傳遞函數(shù)距陣的多變量系統(tǒng)的狀態(tài)空間模型預測控制器設計問題 解:MATLAB程序如下:%在進行模型預測控制器設計之前,首先將系統(tǒng)模型轉換為狀態(tài)空間形式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=po
12、ly2tfd(4.9,13.2 1,0,3)dmod=tfd2mod(T,2,g13,g23);%建立疊加了擾動的混合系統(tǒng)模型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)得到閉環(huán)控制系統(tǒng)輸出響應和控制量變化曲線如圖:增加預測時域長度,同時減少控制時域長度后,再利用以下程序可得閉環(huán)系統(tǒng)的輸出和控制量變化曲線如圖
13、所示:P=10;M=3;Ks=smpccon(imod,ywt,uwt,M,P);y,u=smpcsim(pmod,imod,Ks,tend,r);plotall(y,u,T)進一步改變控制時域長度,采用控制量分塊的形式,即再利用以下程序可得到的閉環(huán)系統(tǒng)的輸出和控制量變化曲線M=2 3 4;Ks=smpccon(imod,ywt,uwt,M,P);y,u=smpcsim(pmod,imod,Ks,tend,r);plotall(y,u,T)增加輸入控制量的加權距陣系數(shù),即再利用以下程序可得模型預測閉環(huán)控制系統(tǒng)輸出控制量變化曲線uwt=1 1;P=5;M=P;Ks=smpccon(imod,yw
14、t,uwt,M,P); tend=30; r=1 0; y,u=smpcsim(pmod,imod,Ks,tend,r);plotall(y,u,T)再利用以下程序將輸出設定值均設為0,繪制閉環(huán)系統(tǒng)的輸出和控制量變化曲線,如圖所示: ulim=;Kest=;R=; z=; v=; w=1;y,u=smpcsim(pmod,imod,Ks,tend,r,ulim,Kest,z,v,w);plotall(y,u,T)利用以下程序采用估計器進一步改善系統(tǒng)性能,對應的系統(tǒng)輸出和控制量變化曲線如圖所示Kest,newmod=smpcest(imod,15,15,3 3);Ks=smpccon(newmo
15、d,ywt,uwt,M,P); y,u=smpcsim(pmod,newmod,Ks,tend,r,ulim,Kest,z,v,w);plotall(y,u,T)8-17:考慮如下的多變量系統(tǒng)解:MATLAB程序如下:g11=poly2tfd(12.8,16.7 0,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=1;ny=2;imod = tfd2mod(delt,ny, g11, g12,g21,g22);gw1=poly2t
16、fd(3.8,14.9 1,0,8)gw2=poly2tfd(4.9,13.2 1,0,3)pmod=addumd(imod,tfd2mod(delt,ny,gw1,gw2);%設計模型預測控制器P=6;M=2;ywt=;uwt=1 1;Ks=smpccon(imod,ywt,uwt,M,P);r=;ulim=;z=;v=;w=1;wu=;tend=30;y3,u3=smpcsim(pmod,imod,Ks,tend,r,ulim,z,v,w,wu);%設計狀態(tài)估計器Kest1=smpcest(pmod,1,0.001*eye(ny);Ks1=smpccon(pmod,ywt,uwt,M,P)
17、;y1,u1=smpcsim(pmod,pmod,Ks1,tend,r,ulim,Kest1,z,v,w,wu);plotall(y1,u1,delt)采用了狀態(tài)估計器的閉環(huán)系統(tǒng)輸出和控制量變化曲線如圖所示:下面進行簡化的狀態(tài)估計器設計tau=10 10;signoise=3 3;Kest2,newmod=smpcest(imod,tau,signoise);Ks2=smpccon(newmod,ywt,uwt,M,P);y2,u2=smpcsim(pmod,pmod,Ks1,tend,r,ulim,Kest1,z,v,w,wu);plotall(y2,u2,delt)采用簡化的狀態(tài)估計器的閉
18、環(huán)系統(tǒng)輸出和控制量曲線如圖所示:專業(yè):控制理論與控制工程學號:062030040姓名:陳孝凱程序調試8-1:考慮一個單輸入單輸出的對象,其傳遞函數(shù)為:解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸出與預測誤差曲線:% 將多項式的傳遞函數(shù)模型轉換為MPC傳遞函數(shù)模型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,std
19、x=autosc(x);mx=0;Sx=scal(x,mx,stdx);% 生成用于線性回歸計算的輸入/出數(shù)據(jù)矩陣n=35;xreg,yreg = wrtreg(Sx,y,n);% 基于多變量最小二乘法的脈沖響應模型辨識ninput=1;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);結果如圖所示:8-2:考慮一個雙輸入單輸出的對象,其傳遞函數(shù)矩陣為:采樣時間為7秒解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸出與預測誤差曲線:num1=5.72;den1=60 1;g1=poly2tfd(num1,den1
20、,0,14);num2=1.52;den2=25 1;g2 = poly2tfd(num2,den2,0,15);%將MPC傳遞函數(shù)模型轉換為MPC狀態(tài)空間模型mod=tfd2mod(7,1,g1,g2);%將MPC狀態(tài)空間模型轉換為通用狀態(tài)空間模型A,B,C,D=mod2ss(mod);%將通用狀態(tài)空間模型轉換LTI對象的 狀態(tài)空間模型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);% 輸
21、入脈沖信號x的歸一化處理ax,mx,stdx=autosc(x);mx=0 0;Sx=scal(x,mx,stdx);% 生成用于線性回歸計算的輸入/出數(shù)據(jù)矩陣n=35;xreg,yreg = wrtreg(Sx,y,n);% 基于多變量最小二乘法的脈沖響應模型辨識ninput=2;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);結果如圖所示:8-3:考慮一個單輸入單輸出的對象,其傳遞函數(shù)為: 解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸出與預測誤差曲線% 將多項式的傳遞函數(shù)模型轉換為MPC傳遞函數(shù)模型nu
22、m=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,x1,t1=lsim(h,x,t);% 生成用于線性回歸計算的輸入/輸出數(shù)據(jù)矩陣n=30;xreg,yreg = wrtreg(Sx,y,n);% 基于部分最小二乘法的脈沖響應模型辨識ninput=2;lv=10;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);結果如圖所示:8-4:考慮一個單輸入單輸出的對象,其傳遞函數(shù)為:
23、 解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸出與預測誤差曲線: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,x1,t1=lsim(h,x,t);% 輸入脈沖信號x的歸一化處理ax,mx,stdx=autosc(x);mx=0;Sx=scal(x,mx,stdx);% 生成用于線性回歸計算的輸入/輸出數(shù)據(jù)矩陣n=35;xreg,yreg = wrtreg(Sx,y,n);%基于多變量最
24、小二乘法的脈沖響應模型辨識ninput=1;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);%脈沖響應模型轉換為階躍響應模型theta=scal(theta,mx,stdx);nout=1;delt=1;model=imp2step(delt,nout,theta);plotstep(model);結果如圖所示:8-12:考慮如下的雙輸入雙輸出純時延對象,其傳遞函數(shù)距陣為:解:MATLAB程序如下:%將傳遞函數(shù)模型轉換為階躍響應模型g11=poly2tfd(12.8,16.7 1,0,1);g12 = poly2tfd(6.6,10.9 1
25、,0,7);g21 = poly2tfd(-18.9,21.0 1,0,3);g22 = poly2tfd(-19.4,14.4 1,0,3);delt=3;ny=2;tfinal=90;model = tfd2step(tfinal, delt, ny, g11, g12,g21,g22); %進行模型預測控制器設計 plant=model; %預測時域長度為6 p=6;m=2; ywt=;uwt=1 1; %設置輸入約束和參考軌跡等控制器參數(shù) r=1 1; tend=30;%仿真時間為30 ulim=-0.1 -0.1 0.5 0.5 0.1 100;ylim=;y,u,ym=cmpc(p
26、lant,model,ywt,uwt,m,p,tend,r,ulim,ylim);plotall(y,u,delt)閉環(huán)系統(tǒng)的輸出和控制量變化曲線如圖所示:8-15:設系統(tǒng)的傳遞函數(shù)距陣為:解: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;
27、 p=6;m=2; ywt=;uwt=1 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,ylim);plotall(y,u,delt)閉環(huán)系統(tǒng)的輸出和控制量變化曲線如圖所示:在添加對輸出變量的約束后,再利用以下程序對系統(tǒng)進行模型預測控制器的設計,得到閉環(huán)控制系統(tǒng)輸出響應和控制量變化曲線如圖:ulim=-inf -0.15 inf inf 0.1 100;ylim=0 0 inf inf;y,u,ym=scmpc(pmod,imod,y
28、wt,uwt,m,p,tend,r,ulim,ylim);plotall(y,u,delt)8-16:考慮有如下傳遞函數(shù)距陣的多變量系統(tǒng)的狀態(tài)空間模型預測控制器設計問題 解:MATLAB程序如下:%在進行模型預測控制器設計之前,首先將系統(tǒng)模型轉換為狀態(tài)空間形式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);%
29、定義擾動模型g13=poly2tfd(3.8,14.9 1,0,8)g23=poly2tfd(4.9,13.2 1,0,3)dmod=tfd2mod(T,2,g13,g23);%建立疊加了擾動的混合系統(tǒng)模型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)得到閉環(huán)控制系統(tǒng)輸出響應和控制量變化曲線如圖:增加預測時域長
30、度,同時減少控制時域長度后,再利用以下程序可得閉環(huán)系統(tǒng)的輸出和控制量變化曲線如圖所示:P=10;M=3;Ks=smpccon(imod,ywt,uwt,M,P);y,u=smpcsim(pmod,imod,Ks,tend,r);plotall(y,u,T)進一步改變控制時域長度,采用控制量分塊的形式,即再利用以下程序可得到的閉環(huán)系統(tǒng)的輸出和控制量變化曲線M=2 3 4;Ks=smpccon(imod,ywt,uwt,M,P);y,u=smpcsim(pmod,imod,Ks,tend,r);plotall(y,u,T)增加輸入控制量的加權距陣系數(shù),即再利用以下程序可得模型預測閉環(huán)控制系統(tǒng)輸出控
31、制量變化曲線uwt=1 1;P=5;M=P;Ks=smpccon(imod,ywt,uwt,M,P); tend=30; r=1 0; y,u=smpcsim(pmod,imod,Ks,tend,r);plotall(y,u,T)再利用以下程序將輸出設定值均設為0,繪制閉環(huán)系統(tǒng)的輸出和控制量變化曲線,如圖所示: ulim=;Kest=;R=; z=; v=; w=1;y,u=smpcsim(pmod,imod,Ks,tend,r,ulim,Kest,z,v,w);plotall(y,u,T)利用以下程序采用估計器進一步改善系統(tǒng)性能,對應的系統(tǒng)輸出和控制量變化曲線如圖所示Kest,newmod=
32、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:考慮如下的多變量系統(tǒng)解:MATLAB程序如下:g11=poly2tfd(12.8,16.7 0,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=1;ny=2;imod = tfd2m
33、od(delt,ny, g11, g12,g21,g22);gw1=poly2tfd(3.8,14.9 1,0,8)gw2=poly2tfd(4.9,13.2 1,0,3)pmod=addumd(imod,tfd2mod(delt,ny,gw1,gw2);%設計模型預測控制器P=6;M=2;ywt=;uwt=1 1;Ks=smpccon(imod,ywt,uwt,M,P);r=;ulim=;z=;v=;w=1;wu=;tend=30;y3,u3=smpcsim(pmod,imod,Ks,tend,r,ulim,z,v,w,wu);%設計狀態(tài)估計器Kest1=smpcest(pmod,1,0.0
34、01*eye(ny);Ks1=smpccon(pmod,ywt,uwt,M,P);y1,u1=smpcsim(pmod,pmod,Ks1,tend,r,ulim,Kest1,z,v,w,wu);plotall(y1,u1,delt)采用了狀態(tài)估計器的閉環(huán)系統(tǒng)輸出和控制量變化曲線如圖所示:下面進行簡化的狀態(tài)估計器設計tau=10 10;signoise=3 3;Kest2,newmod=smpcest(imod,tau,signoise);Ks2=smpccon(newmod,ywt,uwt,M,P);y2,u2=smpcsim(pmod,pmod,Ks1,tend,r,ulim,Kest1,z
35、,v,w,wu);plotall(y2,u2,delt)采用簡化的狀態(tài)估計器的閉環(huán)系統(tǒng)輸出和控制量曲線如圖所示:專業(yè):控制理論與控制工程學號:062030039姓名:曹景運程序調試8-1:考慮一個單輸入單輸出的對象,其傳遞函數(shù)為:解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸出與預測誤差曲線:% 將多項式的傳遞函數(shù)模型轉換為MPC傳遞函數(shù)模型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,
36、x,t=lsim(h,x,t);% 輸入脈沖信號x的歸一化處理ax,mx,stdx=autosc(x);mx=0;Sx=scal(x,mx,stdx);% 生成用于線性回歸計算的輸入/出數(shù)據(jù)矩陣n=35;xreg,yreg = wrtreg(Sx,y,n);% 基于多變量最小二乘法的脈沖響應模型辨識ninput=1;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);結果如圖所示:8-2:考慮一個雙輸入單輸出的對象,其傳遞函數(shù)矩陣為:采樣時間為7秒解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸出與預測誤差曲線:n
37、um1=5.72;den1=60 1;g1=poly2tfd(num1,den1,0,14);num2=1.52;den2=25 1;g2 = poly2tfd(num2,den2,0,15);%將MPC傳遞函數(shù)模型轉換為MPC狀態(tài)空間模型mod=tfd2mod(7,1,g1,g2);%將MPC狀態(tài)空間模型轉換為通用狀態(tài)空間模型A,B,C,D=mod2ss(mod);%將通用狀態(tài)空間模型轉換LTI對象的 狀態(tài)空間模型sys=ss(A,B,C,D);h=tf(sys);% 獲得脈沖信號xu,t=gensig('pulse',8,10,0.1);x=u u; % 求解LTI對象的單
38、位脈沖響應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);% 生成用于線性回歸計算的輸入/出數(shù)據(jù)矩陣n=35;xreg,yreg = wrtreg(Sx,y,n);% 基于多變量最小二乘法的脈沖響應模型辨識ninput=2;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);結果如圖所示:8-3:考慮一個單輸入單輸出的對象,其傳遞函數(shù)為: 解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應
39、模型預測輸出與預測誤差曲線% 將多項式的傳遞函數(shù)模型轉換為MPC傳遞函數(shù)模型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,x1,t1=lsim(h,x,t);% 生成用于線性回歸計算的輸入/輸出數(shù)據(jù)矩陣n=30;xreg,yreg = wrtreg(Sx,y,n);% 基于部分最小二乘法的脈沖響應模型辨識ninput=2;lv=10;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,p
40、lotopt);結果如圖所示:8-4:考慮一個單輸入單輸出的對象,其傳遞函數(shù)為: 解:采用下面的MATLAB程序對該對象進行脈沖響應模型辨識,脈沖響應模型預測輸出與預測誤差曲線: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,x1,t1=lsim(h,x,t);% 輸入脈沖信號x的歸一化處理ax,mx,stdx=autosc(x);mx=0;Sx=scal(x,mx,stdx);% 生成用于線性回歸計算的輸入/輸出數(shù)據(jù)矩
41、陣n=35;xreg,yreg = wrtreg(Sx,y,n);%基于多變量最小二乘法的脈沖響應模型辨識ninput=1;plotopt=2;theta,yres=mlr(xreg,yreg,ninput,plotopt);%脈沖響應模型轉換為階躍響應模型theta=scal(theta,mx,stdx);nout=1;delt=1;model=imp2step(delt,nout,theta);plotstep(model);結果如圖所示:8-12:考慮如下的雙輸入雙輸出純時延對象,其傳遞函數(shù)距陣為:解:MATLAB程序如下:%將傳遞函數(shù)模型轉換為階躍響應模型g11=poly2tfd(12
42、.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;tfinal=90;model = tfd2step(tfinal, delt, ny, g11, g12,g21,g22); %進行模型預測控制器設計 plant=model; %預測時域長度為6 p=6;m=2; ywt=;uwt=1 1; %設置輸入約束和參考軌跡等控制器參數(shù) r=1 1; tend=30;%仿真時間為30 ulim=-0.1
43、-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)閉環(huán)系統(tǒng)的輸出和控制量變化曲線如圖所示:8-15:設系統(tǒng)的傳遞函數(shù)距陣為:解: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 = tfd2mo
44、d(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,u,ym=scmpc(pmod,imod,ywt,uwt,m,p,tend,r,ulim,ylim);plotall(y,u,delt)閉環(huán)系統(tǒng)的輸出和控制量變化曲線如圖所示:在添加對輸出變量的約束后,再利用以下程序對系統(tǒng)進行模型預測控制器的設計,得到閉環(huán)控制系統(tǒng)輸出響應和控制量變化曲線如圖:ulim=-inf -0.15 inf inf 0.1 100;y
45、lim=0 0 inf inf;y,u,ym=scmpc(pmod,imod,ywt,uwt,m,p,tend,r,ulim,ylim);plotall(y,u,delt)8-16:考慮有如下傳遞函數(shù)距陣的多變量系統(tǒng)的狀態(tài)空間模型預測控制器設計問題 解:MATLAB程序如下:%在進行模型預測控制器設計之前,首先將系統(tǒng)模型轉換為狀態(tài)空間形式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)
46、;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,g13,g23);%建立疊加了擾動的混合系統(tǒng)模型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)得到閉環(huán)控制系統(tǒng)輸出響應和控制量變化曲線如圖:增加預測時域長度,同時減少控制時域長度后,再利用以下程序可得閉環(huán)系統(tǒng)的輸出和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 儀器設備培訓
- 提升民宿品牌形象的設計策略
- 化學藥品培訓課件
- 教育心理學在小學數(shù)學教學中的運用
- 提升展位吸引力的設計技巧
- 提升企業(yè)品牌知名度的市場活動策劃
- 打造專業(yè)級的技巧與經驗分享
- 新生兒腦出血后的護理
- 成功企業(yè)的企業(yè)文化剖析
- 教師如何有效利用在線教育資源
- 陜西2025中考試題及答案
- 供應風險管理制度
- 直播間貨盤管理制度
- 2025至2030中國心臟電生理標測、導航和記錄設備行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025泰山護理職業(yè)學院教師招聘考試試題
- 2025年重慶市中考歷史真題(原卷版)
- 吉林省國資委監(jiān)管企業(yè)招聘筆試真題2024
- 項目管理中的資源優(yōu)化配置
- 杭州市拱墅區(qū)部分校教科版六年級下冊期末考試科學試卷(原卷版)
- 2025年甘肅農墾集團招聘筆試參考題庫含答案解析
- 租房合同范本下載(可直接打印)
評論
0/150
提交評論