- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统辨识作业_梯度法最小二乘法
系统辨识
最小二乘算法
仿真对象为:,为服从N(0,1)分布的白噪声,输入信号采用4阶M序列% M array construction
Np=15;r=4;
X1=1;X2=1;X3=1;X4=1;
m_length = r*Np;
a=1;
for i=1:1:m_length
Y4=X4;Y3=X3;Y2=X2;Y1=X1;
X4=Y3;X3=Y2;X2=Y1;
X1=xor(Y3,Y4);
if Y4==0
M(i)=-a;
else
M(i)=a;
end
end
figure;
i=1:1:m_length;
plot(i,M);
% 白噪声
noise = zeros(1,m_length);
for i=1:1:m_length
temp = noise + 0.5*rands(1,m_length);
noise = temp;
end
noise = noise/12;
%noise = temp;
% parameter of system
n=2;d=1;a1=-1;a2=0.5;b1=1;b2=0.5;
S_U0=0.2;S_Y0=0.2;
% generate u,y
u0=ones(1,m_length)*S_U0;
U = M + u0 + noise;
figure;
i=1:1:m_length;
plot(i,U);
%formulation
y(1)=0;y(2)=0;y(3)=0;
Y(1)=S_Y0+y(1)+noise(1);Y(2)=S_Y0+y(2)+noise(2);Y(3)=S_Y0+y(3) +noise(3);
for k=4:m_length
y(k) = b1*U(k-1-d)+b2*U(k-2-d)-a1*y(k-1)-a2*y(k-2);
Y(k)=S_Y0+y(k)+noise(k);
end
figure;
i=1:1:m_length;
plot(i,Y);
%辨识
% premitive value
c=2;
P = (c^3)*eye(3*n+d);
sita(:,3) = [0,0,0,0,0,0,0];
alf = 0.995;
% M
%compute U0,Y0
sum_U = 0;sum_Y = 0;
for k=1:1:m_length
sum_U = sum_U + U(k);
sum_Y = sum_Y + Y(k);
end
t_U0 = sum_U/m_length;t_Y0 = sum_Y/m_length;
for k=1:1:m_length
t_u(k) = U(k) - t_U0;
t_y(k) = Y(k) - t_Y0;
end
figure;
i=1:1:m_length;
plot(i,t_u);
figure;
i=1:1:m_length;
plot(i,t_y);
v(1)=0;v(2)=0;v(3)=0;
for k=4:1:m_length
fai = [-t_y(k-1),-t_y(k-2),t_u(k-1-d),t_u(k-2-d),v(k-1),v(k-2),v(k-3)];
v(k) = t_y(k) - fai*sita(:,k-1);
W = P*fai;
dan = 1/(alf + fai*W);
sita(:,k) = sita(:,k-1) + dan*W*v(k);
P = ( P - dan * W*W)/alf;
end
仿真结果如下图所示:
则各个参数的估计值为:
梯度校正辨识方法
仿真对象为,其中为服从N(0,1)分布的白噪声,取初值,,。
所选的辨识模型为,观测数据长度取。
则matlab程序如下:
%确定性系统的递推梯度校正参数估计(RGC)
clear all; close all;
a=[1 -1.5 0.7]; b=[1 0.5]; d=3; %对象参数
na=length(a)-1; nb=length(b)-1; %na、nb为A、B阶次
L=400; %仿真长度
uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)
yk=zeros(na,1); %输出初值
u=randn(L,1); %输入采用白噪声序列
theta=[a(2:na+1);b]; %对象参数真值
thetae_1=zeros(na+nb+1,1); %参数估计初值
alpha=1; %范围(0,2)
c=0.1; %修正因子
for k=1:L
phi=[-yk;uk(d:
文档评论(0)