自适应控制广义预测控制大作业

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

自适应控制作业一、题目:受控对象的数学模型为1ppKxxuTT(T、K未知)其中,px、u——系统的状态和控制量选定参考模型1133mmxxr,mx、r——参考模型的状态和系统的输入。选用模型参考自适应控制方法,求py、my、前馈增益和反馈增益的波形。解:1、一阶模型参考自适应控制框图:mmksa0ctppksa0dtpymy0eur前馈增益:0ct参考模型输出:my反馈增益:0dt被控对象输出:py输出误差:0pmeyy控制信号:00putctrtdtyt2、一阶自适应控制系统结构图mmksa*0cppksa*0dpymy0eur12对象和模型的时域描述如下:1()()()()pppppKyaytkutytutTT11()()()()33mmmmmyaytkrtytrt选择如下控制规律:00putctrtdtyt,其中0ct和0dt是时变反馈增益。闭环系统为0000()()()()()()[()]()()()ppppppppppytaytkctrtkdtytakdtytkctrt当*001()3mppkctckk,*0031()3pmpppaaadtdkk1()()()()11()()()()33pppppmmmmmKyaytkutytutTTyaytyrtytrt若取11/2255/2ppksass,那么12pk,52pa,则*01233pck,*0311333ppadk3、SMULINK框图Yme0Ypdata4data3data212s+513s+1TransferFcnDtCtymypeStep1s1s21114、仿真图形与结果◆输入信号为阶跃信号()1.0,1.0rtsteptime时0102030405060708090100-5-4-3-2-1012345010203040506070809010000.10.20.30.40.50.60.70.80.91ym输出曲线yp输出曲线图1误差0e的输出曲线图2my、py的输出曲线012345678910012345678910012345678910012345678910图3前馈增益()ct输出曲线图4反馈增益()dt输出曲线二、设对象用下面的CARMA模型描述:120112()(1)(2)(2)(3)()(1)(2)式中()wek是方差为2w的零均值白噪声,121212,,,,,aabbcc未知并有缓慢时变,试设计一个最小方差控制器。解:①预测模型:2,2,1,11,12ABFAGBmnnnnnnm11(2)()()()()(2)ykFqykGqukk01012()(1)()(1)(2)(2)fykfykgukgukgukk②LSE模型01012()(2)(3)(2)(3)(4)()ykfykfykgukgukgukk()Tk[(2),(3),(2),(3),(4)]Tykykukukuk01012[,,,,]Tffggg③估计器2(0)0,(0)paI(1)()()(1)[()()(1)]()(1)()TTPkkkkykkkkpkk(1)()()(1)()[(1)]/()(1)()TTPkkkPkPkPkkPkk④控制器11()()()()()rkFqykukGq01120[()()(1)(1)(2)]/rkfykfykgukgukg⑤程序框图如下:输入2,;4akY数据区[(),(1),(2),(3),(4)]ykykykykykU数据区[(),(1),(2),(3),(4)]ukukukukuk右移一个时刻采样,得()yk,填入y数据进行常规控制,将()uk填入u数据k=k+1y,u数据区右移一个时刻置初值:2(0)0,(0)paI按步骤(2)LSE模型公式,构造数据向量()k采样,得()yk,填入y数据按步骤(3)估计器公式,计算()k()Pk按步骤(4)控制器,计算u(k)并输出,u(k)填入u数据区采样周期到否?YN采样周期到否?YNk=0YN根据以下的程序框图和所计算的模型进行MATLABE编程。编程的过程中,设定参考输入的方波信号可有两种方法。一种是利用循环设定固定值来产生方波,另一种方法为利用MATLABE命令square直接产生。其程序清单如下:clcclear%*****设定参考输入周期方波信号*****i=200;r=zeros(i,1);fort=1:iif(t21&t50)|(t=81&t110)|(t141&t170)|(t=201)r(t)=-1;elser(t)=1;endend%*****设定噪声信号w*****w=idinput(i,'rgs',[01],[-11]);%*****初始化参数*****%预先定维Y=zeros(i,1);u=zeros(i,1);x=zeros(1,4);%初始化theta,使其第一列为设定的初始值theta=zeros(4,i);theta(:,1)=[2;-1;1;0.5];%初始化遗忘因子rou和prou=0.99;p=2.^50*eye(4);T=1;%采样周期K=1;%比比例环节%初始化输入和控制信号Y(3)=1;Y(2)=2;u(1)=1;u(2)=-1;form=4:i%构造预测函数x(1,1)=Y(m-1);x(1,2)=Y(m-2);x(1,3)=u(m-2);x(1,4)=u(m-3);Y(m)=x*theta(:,m-3)+w(m);%利用常规控制手段-PI控制获取输入输出数据u(m)=K*(r(m)-Y(m)+(1/T)*(r(m-1)-Y(m-1)));end%初始化thetatheta(:,1)=[0;0;0;0];form=4:i%输入LSE模型u(m-1)=u(m);Y(m-1)=Y(m);x(1,1)=Y(m-1);x(1,2)=Y(m-2);x(1,3)=u(m-2);x(1,4)=u(m-3);Y(m)=x*theta(:,m-3)+w(m);%利用递推最小二乘法对未知参数进行辨识,并输出系数a1,a2,b1,b2结果k=p*x'*inv([rou+x*p*x']);theta(:,(m-1))=theta(:,(m-2))+k*(Y(m)-x*theta(:,(m-2)));p=(1/rou)*[p-k*x*p];%计算控制率uu(m)=(r(m)-theta(1,m-1)*Y(m)-theta(2,m-1)*Y(m-1))*inv(theta(3,m-1)*u(m-2)+theta(4,m-1)*u(m-3));endfigure;plot(-theta(1,3:i-1),'--');holdon;plot(-theta(2,3:i-1),'-.k');holdon;plot(theta(3,3:i-1),':r');holdonplot(theta(4,3:i-1),'-c')legend('a1','a2','b1','b2');title('未知系数矩阵的辨识');所得的结果如下:由于在系统中存在着噪声信号w,编程的过程中它是随机产生的,所以在仿真的过程中由于噪声信号的随机性,每次仿真的所得出的图形也不尽相同,但只要最后未知参数达到一稳定值则表明实现了最小方差控制器的功能,使系统达到了稳定。选择两个较好的仿真图形如上图,可以看出最后未知参数基本上都达到了稳定。上述程序是利用循环的方式产生方波,若利用命令直接产生则可将上述程序中的fort=1:iif(t21&t50)|(t=81&t110)|(t141&t170)|(t=201)r(t)=-1;elser(t)=1;endend改为t=0:.1:20;r=square(2*pi*0.03*t);即可。所得的较好的图形如下:

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功