多变量最小二乘辨识 MATLAB代码

多变量最小二乘辨识

  • 码下此文章,只因在各大搜索都难以找到多变量最小二乘参数辨识MATLAB代码
  • 然后!希望我的课程作业可以帮助到还在苦苦寻找多变量最小二乘参数辨识MATLAB代码的你

在这里插入图片描述

1. 多重最小二乘参数辨识(RLS)
(理论有空更…一定一定一定咯咯咯)
在这里插入图片描述

%多重RLS仿真算法源程序
clear ;
clc;
Bushu = 1000;
Q = [1 0; 0 0.81]; A = [0.9 0;0.7 0.5];
randn('seed',1); %选定初始状态
e = sqrt(Q)*randn(2,Bushu); %Q的平方根与一个随机数相乘

%生成二维模型
y(:,1) = e(:,1);
for i = 2:Bushu
    y(:,i) = A*y(: , i-1)+e(:,i);  
end

%*****************************参数估计部分*************************%
Na = 1; %模型的待估参数Na
N = 2 ; %预估参数的维数N
Num = N * Na;
p0 = 10^5 * eye(Num);
fai(:,1) = [0,0]';
p(:,1:2) = 10^5*eye(2);
sita(1:4,1) = zeros(4,1); %因为矩阵A中有4个未知参数

for k = 1:N
    for i = 2:Bushu
        fai(:,i) = [y(1,i-1),y(2,i-1)]';
        
        sita((k-1)*Num+1 : k*Num , i) = sita((k-1) * Num+1 : k*Num , i-1) + ... 
            p(: ,Num * (i-2)+1 : Num* (i-1)) * fai(: , i) / (1 + fai(: , i)' * ...
            p(: , Num*(i-2)+1 : Num*(i-1)) * fai(: ,i)) * ...
            (y(k , i) - fai(: ,i)' * sita((k-1) * Num+1 : k*Num , i-1));
        
        p(: , Num*(i-1)+1:Num*i) = p(: , Num*(i-2)+1:Num*(i-1)) - ...
            p(: , Num*(i-2)+1:Num*(i-1)) * fai(:,i) * ...
            fai(: , i)' * p(: ,Num*(i-2)+1:Num*(i-1)) / (1+fai(:,i)' * ...
            p(: , Num * (i-2)+1:Num*(i-1)) * fai(: , i));
    end
end

%*****************************噪声估计部分*************************%
for k = 1:N
    for i = 1:Bushu
        emixiu(i) = y(k,i) - fai(: ,i)' *sita((k-1) * Num +1:k*Num, i);
    end
    
    taoe(k,1) = emixiu(1)^2;
    for i = 2:Bushu
        taoe(k,i) = taoe(k,i-1) +1 / i*[emixiu(i)^2-taoe(k,i-1)];
    end
end

%*****************************做图部分*************************%
t = 1:Bushu;
subplot(2,2,1);
plot(t,sita(1,t),'r', t,sita(2,t),'g', t,sita(3,t),'g', t,sita(4,t),'w');
axis([0 Bushu -0.5 1.5]);
line([0,Bushu], [0.9,0.9]); line([0,Bushu], [0,0]);
line([0,Bushu], [0.7,0.7]); line([0,Bushu], [0.5,0.5]);

subplot(2,2,2);
plot(t,taoe(1,t),'r', t,taoe(2,t),'g');
line([0,Bushu], [1,1]); line([0,Bushu], [0.81,0.81]);

  • 运行结果
    参数估计在这里插入图片描述
    噪声估计

当Bushu=1000即t=1000时,sita参数的多重RLS估值为,与理想的A相近。
在这里插入图片描述
(下次更新多维最小二乘参数辨识 …e了该干饭了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值