《系统辨识》作业

   日期:2020-11-16     浏览:172    评论:0    
核心提示:作业一 递推最小二乘法参数辨识设被辨识系统的数学模型由下式描述:式中x(k)为方差为0.1的白噪声。要求: 当输入信号u(k)是方差为1的白噪声序列时,利用系统的输入输出数据在线辨识上述模型的参数; 当输入信号u(k)是幅值为1的逆M序列时,利用系统的输入输出数据在线辨识上述模型的参数; 当输入信号u(k)是单位阶跃信号时,利用系统的输入输出数据在线辨识上述模型的参数; 分析比较在不同输入信号作用下,对系统模型参数辨识精度的影响。【参考代码】%最...

作业一      递推最小二乘法参数辨识

设被辨识系统的数学模型由下式描述:

式中x(k)为方差为0.1的白噪声。要求:

  1. 当输入信号u(k)是方差为1的白噪声序列时,利用系统的输入输出数据在线辨识上述模型的参数;

  2. 当输入信号u(k)是幅值为1的逆M序列时,利用系统的输入输出数据在线辨识上述模型的参数;

  3. 当输入信号u(k)是单位阶跃信号时,利用系统的输入输出数据在线辨识上述模型的参数;

分析比较在不同输入信号作用下,对系统模型参数辨识精度的影响。
 

解:

 

代码待完善,还没修改完

【参考代码】

方差为1的白噪声序列

%递推最小二乘参数估计(RLS)
clear all; close all;
 
a=[1 -1.5 0.7 0.1]'; 
b=[1 2 1.5]'; d=2; %对象参数
na=length(a)-1; nb=length(b)-1; %na=3、nb=2为A、B阶次
 
L=400; %仿真长度
uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)
yk=zeros(na,1); %输出初值
u=randn(L,1); %输入采用白噪声序列
xi=sqrt(1)*randn(L,1); %白噪声序列  方差=1
 
theta=[a(2:na+1);b]; %对象参数真值
 
thetae_1=zeros(na+nb+1,1); %thetae初值
P=10^6*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);
end
plot([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 1.5]);

 

 

②幅值为1的逆M序列

%递推最小二乘参数估计(RLS)
clear all; close all;
 
a=[1 -1.5 0.7 0.1]'; 
b=[1 2 1.5]'; d=2; %对象参数
na=length(a)-1; nb=length(b)-1; %na=3、nb=2为A、B阶次
 
L=400; %仿真长度
uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)
yk=zeros(na,1); %输出初值
%u=randn(L,1); %输入采用白噪声序列
xi=sqrt(1)*randn(L,1); %白噪声序列  方差=1

theta=[a(2:na+1);b]; %对象参数真值
 
thetae_1=zeros(na+nb+1,1); %thetae初值
P=10^6*eye(na+nb+1); 

%M序列及逆M序列的产生
%M序列长度 L=400; %仿真长度
x1=1; x2=1; x3=1; x4=0; %移位寄存器初值xi-1、xi-2、xi-3、xi-4
S=1; %方波初值

for k=1:L
    M(k)=xor(x3,x4); %进行异或运算,产生M序列
    IM=xor(M(k),S); %进行异或运算,产生逆M序列
    if IM==0
        u(k)=-1;
    else
        u(k)=1;
    end
    
    S=not(S); %产生方波
    
    x4=x3; x3=x2; x2=x1; x1=M(k); %寄存器移位
	
	
	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);
	
end

plot([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 4]);

③单位阶跃信号

%递推最小二乘参数估计(RLS)
clear all; close all;
 
a=[1 -1.5 0.7 0.1]'; 
b=[1 2 1.5]'; d=2; %对象参数
na=length(a)-1; nb=length(b)-1; %na=3、nb=2为A、B阶次
 
L=400; %仿真长度
uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)
yk=zeros(na,1); %输出初值

u=ones(L,1);%输入采用单位阶跃信号

xi=sqrt(1)*randn(L,1); %白噪声序列  方差=1
 
theta=[a(2:na+1);b]; %对象参数真值
 
thetae_1=zeros(na+nb+1,1); %thetae初值
P=10^6*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);
end
plot([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 1.5]);

 

 

作业二      最小方差自校正控制实验

设二阶纯滞后被控对象的数学模型参数未知或慢时变,仿真实验时用下列模型:

式中x(k)为方差为0.1的白噪声。要求:

  1. 当设定输入yr(k)为幅值是10的阶跃信号时,设计最小方差直接自校正控制算法对上述对象进行闭环控制;

  2. 当设定输入yr(k)为幅值是10的方波信号时,设计最小方差直接自校正控制算法对上述对象进行闭环控制;

  3. 如果被控对象模型改为:

                                              

     重复上述(1)、(2)实验,控制结果如何?分析原因。

 

【参考代码】

%最小二乘参数估计
clear all;

 

 

作业三     模型参考自适应控制实验

设被控对象模型参数未知或慢时变,但其状态变量完全可观测,

仿真时取状态方程为:

 

选择参考模型:

 

状态完全可观测的模型参考自适应控制系统如下图所示:

控制器自适应规律为:

 

【参考代码】

%最小二乘参数估计
clear all;

 

 

 

 

 

 

 

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服