自适应控制程序..

上传人:206****923 文档编号:90477952 上传时间:2019-06-12 格式:DOC 页数:23 大小:290.51KB
返回 下载 相关 举报
自适应控制程序.._第1页
第1页 / 共23页
自适应控制程序.._第2页
第2页 / 共23页
自适应控制程序.._第3页
第3页 / 共23页
自适应控制程序.._第4页
第4页 / 共23页
自适应控制程序.._第5页
第5页 / 共23页
点击查看更多>>
资源描述

《自适应控制程序..》由会员分享,可在线阅读,更多相关《自适应控制程序..(23页珍藏版)》请在金锄头文库上搜索。

1、% M 序列及其逆序列的产生设M序列M(k)由如下4位移位寄存器产生:S(k)为方波序列,逆M序列IM(k)= M(k)S(k)clear all; close all;L=60; %序列长度x1=1;x2=1;x3=1;x4=0; %移位寄存器初值S=1; %方波初值for k=1:L IM=xor(S,x4); %进行异或运算,产生逆M序列 if IM=0 u(k)=-1; else u(k)=1; end S=not(S); %产生方波 M(k)=xor(x3,x4); %产生M序列 x4=x3;x3=x2;x2=x1;x1=M(k); %寄存器移位endsubplot(2,1,1);s

2、tairs(M);grid;axis(0 L/2 -0.5 1.5);xlabel(k);ylabel(M序列幅值);title(M序列);subplot(2,1,2);stairs(u);grid;axis(0 L -1.5 1.5);xlabel(k);ylabel(逆M序列幅值);title(逆M序列);%白噪声及有色噪声序列的产生设x(k) 为均值为0,方差为1的高斯白噪声序列,e(k)为有色噪声序列: 高斯白噪声序列 x(k)在Matlab中由rand()函数产生,程序如下:clear all; close all;L=500; %仿真长度d=1 -1.5 0.7 0.1; c=1

3、0.5 0.2; % 分子分母多项式系数nd=length(d)-1 ;nc=length(c)-1; %阶次xik=zeros(nc,1); %白噪声初值ek=zeros(nd,1);xi=randn(L,1); %产生均值为0,方差为1的高斯白噪声序列for k=1:L e(k)=-d(2:nd+1)*ek+c*xi(k);xik; %产生有色噪声 %数据更新 for i=nd:-1:2 ek(i)=ek(i-1); end ek(1)=e(k); for i=nc:-1:2 xik(i)=xik(i-1); end xik(1)=xi(k);endsubplot(2,1,1);plot(

4、xi);xlabel(k);ylabel(噪声幅值);title(白噪声序列);subplot(2,1,2);plot(e);xlabel(k);ylabel(噪声幅值);title(有色噪声序列);%批处理最小二乘参数估计(LS)考虑如下系统:式中x(k)为方差为1的白噪声。clear all;a=1 -1.5 0.7;b=1 0.5;d=3; %对象参数na=length(a)-1;nb=length(b)-1; %计算阶次L=500; %数据长度uk=zeros(d+nb,1);yk=zeros(na,1); %输入初值x1=1;x2=1;x3=1;x4=0;S=1;%移位寄存器初值,方

5、波初值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

6、 i=na:-1:2 yk(i)=yk(i-1); end yk(1)=y(k);endthetaevaluation=inv(phi*phi)*phi*y %计算参数估计值thetaevaluation = -1.5362 0.6802 1.00680.4864%遗忘因子递推最小二乘参数估计(FFRLS)考虑如下系统:式中x(k)为均值为0、方差为0.1的白噪声,对象时变参数为:取遗忘因子l=0.98,clear all; close all;a=1 -1.5 0.7;b=1 0.5;d=3; %对象参数na=length(a)-1;nb=length(b)-1; %计算阶次L=1000;%

7、数据长度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);lambda=0.98; %遗忘因子范围0.9 1for k=1:L if k=501 a=1 -1 0.4;b=1.5 0.2; %对象参数突变 end theta(:,k)=a(2:na+1);b; %对象参数真

8、值 phi=-yk;uk(d:d+nb); y(k)=phi*theta(:,k)+xi(k); %采样输出数据 %遗忘因子递推最小二乘公式 K=P*phi/(lambda+phi*P*phi); thetae(:,k)=thetae_1+K*(y(k)-phi*thetae_1); P=(eye(na+nb+1)-K*phi)*P/lambda; %更新数据 thetae_1=thetae(:,k); for i=d+nb:-1:2 uk(i)=uk(i-1); enduk(1)=u(k); for i=na:-1:2 yk(i)=yk(i-1); end yk(1)=y(k);endsub

9、plot(2,1,1);plot(1:L,thetae(1:na,:);hold on;plot(1:L,theta(1:na,:),k:);xlabel(k);ylabel(参数估计a);legend(a_1,a_2);axis(0 L -2 2);subplot(2,1,2);plot(1:L,thetae(na+1:na+nb+1,:);hold on;plot(1:L,theta(na+1:na+nb+1,:),k:);xlabel(k);ylabel(参数估计b);legend(b_0,b_1);axis(0 L -0.5 2); %增广递推最小二乘参数估计(ERLS)考虑如下系统:

10、式中x(k)为方差为0.1的白噪声。选择方差为1的白噪声作为输入信号u(k).clear all; close all;a=1 -1.5 0.7;b=1 0.5;c=1 -1 0.2;d=3; %对象参数na=length(a)-1;nb=length(b)-1;nc=length(c)-1; %计算阶次L=1000; %数据长度uk=zeros(d+nb,1);yk=zeros(na,1); %输入输出初值xik=zeros(nc,1); %噪声初值xiek=zeros(nc,1); %噪声估计初值u=randn(L,1); %输入采用方差为1的白噪声序列xi=sqrt(0.1)*randn

11、(L,1); % 方差为0.1的白噪声干扰序列theta=a(2:na+1);b;c(2:nc+1); %对象参数真值thetae_1=zeros(na+nb+1+nc,1); %参数初值,na+nb+1+nc为辨识参数个数P=106*eye(na+nb+1+nc);lambda=0.98; %遗忘因子范围0.9 1for k=1:L phi=-yk;uk(d:d+nb);xik; %测量向量 y(k)=phi*theta+xi(k); %采样输出数据phie=-yk;uk(d:d+nb);xiek; %估计的测量向量 %增广递推最小二乘公式 K=P*phie/(1+phie*P*phie);

12、 thetae(:,k)=thetae_1+K*(y(k)-phie*thetae_1); P=(eye(na+nb+1+nc)-K*phie)*P; xie=y(k)-phie*thetae(:,k); %白噪声估计值 %更新数据 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); for i=nc:-1:2 xik(i)=xik(i-1); xiek(i)=xiek(i-1); end xik(1)=xi(k); x

13、iek(1)=xie; endfigure(1)plot(1:L,thetae(1:na,:);xlabel(k);ylabel(参数估计a);legend(a_1,a_2);axis(0 L -2 2);figure(2)plot(1:L,thetae(na+1:na+nb+1,:);xlabel(k);ylabel(参数估计b);legend(b_0,b_1);axis(0 L 0 1.5);figure(3)plot(1:L,thetae(na+nb+2:na+nb+nc+1,:);xlabel(k);ylabel(参数估计c);legend(c_1,c_2);axis(0 L -2 2);递推最小二乘参数估计(RLS)考虑如下系统:式中x(k)为方差为0.1的白噪声。clear all; close all;a=1 -1.5 0.7;b=1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号