系统辨识及自适应控制实验.doc_第1页
系统辨识及自适应控制实验.doc_第2页
系统辨识及自适应控制实验.doc_第3页
系统辨识及自适应控制实验.doc_第4页
系统辨识及自适应控制实验.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络,如有侵权,请联系网站删除中南大学系统辨识及自适应控制实验指导老师 贺建军 姓名 史伟东 专业班级 测控1102班0909111814号 实验日期 2014年11月 实验一 递推二乘法参数辨识设被辨识系统的数学模型由下式描述:式中x(k)为方差为0.1的白噪声。要求:(1) 当输入信号u(k)是方差为1的白噪声序列时,利用系统的输入输出值在线辨识上述模型的参数;(2) 当输入信号u(k)是幅值为1的逆M序列时,利用系统的输入输出值在线辨识上述模型的参数;分析比较在不同输入信号作用下,对系统模型参数辨识精度的影响。(1)clear all; close all;a=1 -1.5 0.7 0.1;b=1 2 1.5;d=3; %对象参数na=length(a)-1;nb=length(b)-1; %计算阶次L=500; %数据长度uk=zeros(d+nb,1);yk=zeros(na,1); %输入输出初值u=randn(L,1); %输入采用方差为1的白噪声序列xi=sqrt(0.1)*randn(L,1); % 方差为0.1的白噪声干扰序列theta=a(2:na+1);b; %对象参数真值thetae_1=zeros(na+nb+1,1); %参数初值P=106*eye(na+nb+1);for k=1:L phi=-yk;uk(d:d+nb); %此处phi为列向量 y(k)=phi*theta+xi(k); %采集输出数据 %递推公式 K=P*phi/(1+phi*P*phi); thetae(:,k)=thetae_1+K*(y(k)-phi*thetae_1); P=(eye(na+nb+1)-K*phi)*P; %更新数据 thetae_1=thetae(:,k); for i=d+nb:-1:2 uk(i)=uk(i-1); end uk(1)=u(k); for i=na:-1:2 yk(i)=yk(i-1); end yk(1)=y(k);endplot(1:L,thetae); %line(1:L,theta,theta);xlabel(k);ylabel(参数估计a,b);legend(a_1,a_2,a_3,b_0,b_1,b_2);axis(0 L -2 2);(2)clear all;a=1 -1.5 0.7 0.1;b=1 2 1.5;d=2; %对象参数na=length(a)-1;nb=length(b)-1; %计算阶次L=20; %数据长度uk=zeros(d+nb,1);yk=zeros(na,1); %输入初值x1=1;x2=1;x3=1;x4=0;S=1;%移位寄存器初值,方波初值xi=rand(L,1);%白噪声序列theta=a(2:na+1);b; %对象参数真值for k=1:L phi(k,:)=-yk;uk(d:d+nb); % phi(k,:)为行向量,便于组成phi矩阵 y(k)=phi(k,:)*theta+xi(k); %采集输出数据 IM=xor(S,x4); if IM=0 u(k)=-1; else u(k)=1; end S=not(S);M=xor(x3,x4); %产生M序列 %更新数据 x4=x3;x3=x2;x2=x1;x1=M; for i=nb+d:-1:2 uk(i)=uk(i-1); end uk(1)=u(k); for i=na:-1:2 yk(i)=yk(i-1); end yk(1)=y(k);End实验二 最小方差自校正控制实验设二阶纯滞后被控对象的数学模型参数未知或慢时变,仿真实验时用下列模型:式中x(k)为方差为0.1的白噪声。要求:(1) 当设定输入yr(k)为幅值是10的阶跃信号时,设计最小方差直接自校正控制算法对上述对象进行闭环控制;(2) 1)当设定输入yr(k)为幅值是10的方波信号时,设计最小方差直接自校正控制算法对上述对象进行闭环控制;(3) 如果被控对象模型改为: 重复上述(1)、(2)实验,控制结果如何?分析原因。(1)clear all;close all;a=1 -1.5 0.7; b=2.5 1.5; c=1 0.5; d=4; %对象参数na=length(a)-1; nb=length(b)-1; nc=length(c)-1; %计算阶次nh=nb+d-1; ng=na-1; %nh 为多项式H 的阶次,ng 为多项式G 的阶次L=400;uk=zeros(d+nh,1);yk=zeros(d+ng,1);yek=zeros(nc,1); %最优输出预测估计初值yrk=zeros(nc,1);xik=zeros(nc,1);%xiek=zeros(nc,1); %白噪声估计值yr=10*ones(L/4,1);ones(L/4,1);ones(L/4,1);ones(L/4+d,1);% 期望输出xi=sqrt(0.1)*randn(L,1);%方差为0.1 的白噪声序列thetaek=ones(na+nb+d+nc,d);P=106*eye(na+nb+d+nc);for k=1:L time(k)=k; y(k)=-a(2:na+1)*yk(1:na)+b*uk(d:d+nb)+c*xi(k);xik;%采集输出数据 phie=yk(d:d+ng);uk(d:d+nh);-yek(1:nc); K=P*phie/(1+phie*P*phie); thetae(:,k)=thetaek(:,1)+K*(y(k)-phie*thetaek(:,1); P=(eye(na+nb+d+nc)-K*phie)*P; ye=phie*thetaek(:,d);%预测输出估计值 %提取辨识参数 ge=thetae(1:ng+1,k); he=thetae(ng+2:ng+nh+2,k); ce=1 thetae(ng+nh+3:ng+nh+nc+2,k); if abs(ce(2)0.9 ce(2)=sign(ce(2)*0.9; end if he(1)0 yek(1)=ye; yrk(1)=yr(k); xik(1)=xi(k); endendfigure(1);subplot(2,1,1);plot(time,yr(1:L),r:,time,y);xlabel(k);ylabel(y_r(k)、y(k);legend(y_r(k),y(k);axis(0 L -20 20);subplot(2,1,2);plot(time,u);xlabel(k);ylabel(u(k);axis(0 L -40 40);figure(2);subplot(2,1,1);plot(1:L,thetae(1:ng+1,:),1:L,thetae(ng+nh+3:ng+2+nh+nc,:);xlabel(k);ylabel(参数估计g,c);legend(g_0,g_1,c_1);axis(0 L -3 4);subplot(2,1,2);plot(1:L,thetae(ng+2:ng+2+nh,:);xlabel(k);ylabel(参数估计h);legend(h_0,h_1,h_2,h_3,h_4);axis(0 L 0 4);(2)clear all;close all;a=1 -1.5 0.7; b=2.5 1.5; c=1 0.5; d=4; %对象参数na=length(a)-1; nb=length(b)-1; nc=length(c)-1; %计算阶次nh=nb+d-1; ng=na-1; %nh 为多项式H 的阶次,ng 为多项式G 的阶次L=400;uk=zeros(d+nh,1);yk=zeros(d+ng,1);yek=zeros(nc,1); %最优输出预测估计初值yrk=zeros(nc,1);xik=zeros(nc,1);%xiek=zeros(nc,1); %白噪声估计值yr=10*ones(L/4,1);-ones(L/4,1);ones(L/4,1);-ones(L/4+d,1);% 期望输出xi=sqrt(0.1)*randn(L,1);%方差为0.1 的白噪声序列thetaek=zeros(na+nb+d+nc,d);P=106*eye(na+nb+d+nc);for k=1:L time(k)=k; y(k)=-a(2:na+1)*yk(1:na)+b*uk(d:d+nb)+c*xi(k);xik;%采集输出数据 phie=yk(d:d+ng);uk(d:d+nh);-yek(1:nc); K=P*phie/(1+phie*P*phie); thetae(:,k)=thetaek(:,1)+K*(y(k)-phie*thetaek(:,1); P=(eye(na+nb+d+nc)-K*phie)*P; ye=phie*thetaek(:,d);%预测输出估计值 %提取辨识参数 ge=thetae(1:ng+1,k); he=thetae(ng+2:ng+nh+2,k); ce=1 thetae(ng+nh+3:ng+nh+nc+2,k); if abs(ce(2)0.9 ce(2)=sign(ce(2)*0.9; end if he(1)0 yek(1)=ye; yrk(1)=yr(k); xik(1)=xi(k); endendfigure(1);subplot(2,1,1);plot(time,yr(1:L),r:,time,y);xlabel(k);ylabel(y_r(k)、y(k);legend(y_r(k),y(k);axis(0 L -20 20);subplot(2,1,2);plot(time,u);xlabel(k);ylabel(u(k);axis(0 L -40 40);figure(2);subplot(2,1,1);plot(1:L,thetae(1:ng+1,:),1:L,thetae(ng+nh+3:ng+2+nh+nc,:);xlabel(k);ylabel(参数估计g,c);legend(g_0,g_1,c_1);axis(0 L -3 4);subplot(2,1,2);plot(1:L,thetae(ng+2:ng+2+nh,:);xlabel(k);ylabel(参数估计h);legend(h_0,h_1,h_2,h_3,h_4);axis(0 L 0 4);(3-1)clear all;close all;a=1 -1.5 0.7; b=5 1.5; c=1 0.5; d=4; %对象参数na=length(a)-1; nb=length(b)-1; nc=length(c)-1; %计算阶次nh=nb+d-1; ng=na-1; %nh 为多项式H 的阶次,ng 为多项式G 的阶次L=400;uk=ones(d+nh,1);yk=ones(d+ng,1);yek=ones(nc,1); %最优输出预测估计初值yrk=ones(nc,1);xik=ones(nc,1);%xiek=zeros(nc,1); %白噪声估计值yr=10*ones(L/4,1);ones(L/4,1);ones(L/4,1);ones(L/4+d,1);% 期望输出xi=sqrt(0.1)*randn(L,1);%方差为0.1 的白噪声序列thetaek=ones(na+nb+d+nc,d);P=106*eye(na+nb+d+nc);for k=1:Ltime(k)=k;y(k)=-a(2:na+1)*yk(1:na)+b*uk(d:d+nb)+c*xi(k);xik;%采集输出数据phie=yk(d:d+ng);uk(d:d+nh);-yek(1:nc);K=P*phie/(1+phie*P*phie);thetae(:,k)=thetaek(:,1)+K*(y(k)-phie*thetaek(:,1);P=(eye(na+nb+d+nc)-K*phie)*P;ye=phie*thetaek(:,d);%预测输出估计值%提取辨识参数ge=thetae(1:ng+1,k);he=thetae(ng+2:ng+nh+2,k);ce=1 thetae(ng+nh+3:ng+nh+nc+2,k);if abs(ce(2)0.9ce(2)=sign(ce(2)*0.9;endif he(1)0yek(1)=ye;yrk(1)=yr(k);xik(1)=xi(k);endendfigure(1);subplot(2,1,1);plot(time,yr(1:L),r:,time,y);xlabel(k);ylabel(y_r(k)、y(k);legend(y_r(k),y(k);axis(0 L -20 20);subplot(2,1,2);plot(time,u);xlabel(k);ylabel(u(k);axis(0 L -40 40);figure(2);subplot(2,1,1);plot(1:L,thetae(1:ng+1,:),1:L,thetae(ng+nh+3:ng+2+nh+nc,:);xlabel(k);ylabel(参数估计g,c);legend(g_0,g_1,c_1);axis(0 L -3 4);subplot(2,1,2);plot(1:L,thetae(ng+2:ng+2+nh,:);xlabel(k);ylabel(参数估计h);legend(h_0,h_1,h_2,h_3,h_4);axis(0 L 0 4);(3-2)clear all;close all;a=1 -1.5 0.7; b=5 1.5; c=1 0.5; d=4; %对象参数na=length(a)-1; nb=length(b)-1; nc=length(c)-1; %计算阶次nh=nb+d-1; ng=na-1; %nh 为多项式H 的阶次,ng 为多项式G 的阶次L=400;uk=zeros(d+nh,1);yk=zeros(d+ng,1);yek=zeros(nc,1); %最优输出预测估计初值yrk=zeros(nc,1);xik=zeros(nc,1);%xiek=zeros(nc,1); %白噪声估计值yr=10*ones(L/4,1);-ones(L/4,1);ones(L/4,1);-ones(L/4+d,1);% 期望输出xi=sqrt(0.1)*randn(L,1);%方差为0.1 的白噪声序列thetaek=zeros(na+nb+d+nc,d);P=106*eye(na+nb+d+nc);for k=1:Ltime(k)=k;y(k)=-a(2:na+1)*yk(1:na)+b*uk(d:d+nb)+c*xi(k);xik;%采集输出数据phie=yk(d:d+ng);uk(d:d+nh);-yek(1:nc);K=P*phie/(1+phie*P*phie);thetae(:,k)=thetaek(:,1)+K*(y(k)-phie*thetaek(:,1);P=(eye(na+nb+d+nc)-K*phie)*P;ye=phie*thetaek(:,d);%预测输出估计值%提取辨识参数ge=thetae(1:ng+1,k);he=thetae(ng+2:ng+nh+2,k);ce=1 thetae(ng+nh+3:ng+nh+nc+2,k);if abs(ce(2)0.9ce(2)=sign(ce(2)*0.9;endif he(1)0yek(1)=ye;yrk(1)=yr(k);xik(1)=xi(k);endendfigure(1);subplot(2,1,1);plot(time,yr(1:L),r:,time,y);xlabel(k);ylabel(y_r(k)、y(k);legend(y_r(k),y(k);axis(0 L -20 20);subplot(2,1,2);plot(time,u);xlabel(k);ylabel(u(k);axis(0 L -40 40);figure(2);subplot(2,1,1);plot(1:L,thetae(1:ng+1,:),1:L,thetae(ng+nh+3:ng+2+nh+nc,:);xlabel(k);ylabel(参数估计g,c);legend(g_0,g_1,c_1);axis(0 L -3 4);subplot(2,1,2);plot(1:L,thetae(ng+2:ng+2+nh,:);xlabel(k);ylabel(参数估计h);legend(h_0,h_1,h_2,h_3,h_4);axis(0 L 0 4);实验三 模型参考自适应控制实验设被控对象模型参数未知或慢时变,但其状态变量完全可观测,仿真时取状态方程为:选择参考模型:状态完全可观测的模型参考自适应控制系统如下图所示:. (t)e(t)(t)控制器自适应规律为:,式中: , 为mm矩阵(m为输入个数)。当参考输入为 时,要求选择三组合适的P、R1和R2,实现对被控对象的控制,使被控对象的2个状态变量分别跟踪参考模型的2个状态变量,并分析P、R1和R2对控制系统性能的影响。clear all; close all;h=0.01;L=100/h;As=0 1;-5 -3;Bs=0;6;%对象参数Am=0 1;-10 -5;Bm=0;2;%参考模型参数Sz=size(Bs);n=Sz(1);m=Sz(2);%状态向量、输入维数P=3 1;1 1;%正定矩阵R1=7*eye(m);R2=5*eye(m);%自适应律参数矩阵F0=zeros(m,n);G0=zeros(m);%初值yr0=zeros(m,1);u0=zer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论