当前位置:文档之家› 系统辨识最小二乘模型阶次大全

系统辨识最小二乘模型阶次大全

系统辨识最小二乘模型阶次大全
系统辨识最小二乘模型阶次大全

A:仿真对象为:z(k)-1.5z(k-1)+0.7z(k-2)=u(k-1)+0.5u(k-2)+v(k)

B:最小二乘一次算法和递推算法程序:

clear

clc

Np=400;

u=[1 0 0 1 1 0 1 0 1 1];

for i=10:(Np-1)

u(i)=xor(u(i-4),u(i-9));

end%2úéúMDòáD

for j=10:(Np-1)

if mod(j,2)==0

y(j)=1;

else

y(j)=0;

end

u(i)=xor(u(i),y(j));

end%2úéú??MDòáD

v=randn(3,400);

z=[1,398]';

for i=3:400

z(i)=1.5*z(i-1)-0.7*z(i-2)+1*u(i-1)+0.5*u(i-2)+v(i);

end

H=zeros(400,4);

for i=3:400

H(i,1)=-z(i-1);

H(i,2)=-z(i-2);

H(i,3)=u(i-1);

H(i,4)=u(i-2);

end

theta1=inv(H'*H)*H'*z

i=1:400;

subplot(1,2,1)

plot(i,theta1(1,:),'r',i,theta1(2,:),'k',i,theta1(3,:),'g',i,theta1(4 ,:),'b')

title('惠一龙,一次最小二乘算法')

P=10^6*eye(4);

theta2=0.001*eye(4,1);

I=eye(4);

h=H';

for i=3:400

K=P*h(:,i)*[H(i,:)*P*h(:,i)+1]^(-1);

P=[I-K*H(i,:)]*P;

theta2=theta2+K*[z(i)-H(i,:)*theta2];

end disp('') theta2 i=1:400; subplot(1,2,2)

plot(i,theta2(1,:),'r',i,theta2(2,:),'k',i,theta2(3,:),'g',i,theta2(4,:),'b')

title('惠一龙,递推算法')

C :结果示意图:

0100200300400

-1.5

-0.5惠一龙,一次最小二乘算法0100200300400

惠一龙,递推算法

D :结果分析:

辨识结果误差较小。第一次编写最小二乘的程序,虽然花费了很多时间和心血,但是当结果运行出的时候,真的很有满足感,对自己的学习和编程能力也有了很大的信心。

这次编程出现最多和最让我头疼的应该就是 :

Inner matrix dimensions must agree.

通过对课本的仔细研读,终于顺利的解决了。

E :遗忘因子最小二乘算法和递推算法程序: clear clc

Np=400;

u=[1 0 0 1 1 0 1 0 1 1]; for i=10:(Np-1)

u(i)=xor(u(i-4),u(i-9));

end

for j=10:(Np-1)

if mod(j,2)==0

y(j)=1;

else

y(j)=0;

end

u(i)=xor(u(i),y(j));

end

L=400;

v=randn(3,L);

beta=0.99;

z=[1,L-2]';

for i=3:L

z(i)=1.5*z(i-1)-0.7*z(i-2)+1*u(i-1)+0.5*u(i-2)+v(i);

z(i)=beta^(L-i)*z(i);

end

H=zeros(400,4);

for i=3:L

H(i,1)=-z(i-1)*beta^(L-i);

H(i,2)=-z(i-2)*beta^(L-i);

H(i,3)=u(i-1)*beta^(L-i);

H(i,4)=u(i-2)*beta^(L-i);

end

theta1=inv(H'*H)*H'*z

i=1:400;

subplot(1,2,1)

plot(i,theta1(1,:),'r',i,theta1(2,:),'k',i,theta1(3,:),'g',i,theta1(4 ,:),'b')

title('惠一龙,遗忘因子一次完成算法')

P=10^6*eye(4);

theta2=0.001*eye(4,1);

I=eye(4);

h=H';

mu=beta*beta;

for i=3:L

K=P*h(:,i)*[H(i,:)*P*h(:,i)+mu]^(-1);

P=[I-K*H(i,:)]*P/mu;

theta2=theta2+K*[z(i)-H(i,:)*theta2];

end

theta2

i=1:400;

subplot(1,2,2)

plot(i,theta2(1,:),'r',i,theta2(2,:),'k',i,theta2(3,:),'g',i,theta2(4,:),'b')

title('惠一龙,遗忘因子递推算法')

F :结果示意图:

0100200300400

-1.5-0.5惠一龙,遗忘因子一次算法算法0100200300400

惠一龙,遗忘因子递推算法

G :结果分析:

在第一个程序的基础上,第二个程序就相对容易一些。只需要加入遗忘因子,让老数据的作用逐渐变小,对结果的影响变小即可。

H :加权最小二乘算法和递推算法程序

clear clc Np=400;

u=[1 0 0 1 1 0 1 0 1 1]; for i=10:(Np-1)

u(i)=xor(u(i-4),u(i-9)); end

for j=10:(Np-1) if mod(j,2)==0 y(j)=1;

else

y(j)=0;

end

u(i)=xor(u(i),y(j));

end

v=randn(3,400);

L=400;

z=[1,L-2]';

for i=3:400

z(i)=1.5*z(i-1)-0.7*z(i-2)+1*u(i-1)+0.5*u(i-2)+v(i);

end

H=zeros(400,4);

for i=3:400

H(i,1)=-z(i-1);

H(i,2)=-z(i-2);

H(i,3)=u(i-1);

H(i,4)=u(i-2);

end

Lambda=eye(400);

for i=1:400

for j=1:400

if i==j

Lambda(i,j)=100*i;

else

Lambda(i,j)=0;

end

end

end

theta1=inv(H'*Lambda*H)*H'*Lambda*z

i=1:400;

subplot(1,2,1)

plot(i,theta1(1,:),'r',i,theta1(2,:),'k',i,theta1(3,:),'g',i,theta1(4 ,:),'b')

title('惠一龙,加权一次最小二乘算法')

P=10^6*eye(4);

theta2=0.001*eye(4,1);

I=eye(4);

h=H';

for i=3:400

K=P*h(:,i)*[H(i,:)*P*h(:,i)+1/Lambda(i,i)]^(-1);

P=[I-K*H(i,:)]*P;

theta2=theta2+K*[z(i)-H(i,:)*theta2];

end

theta2

i=1:400; subplot(1,2,2)

plot(i,theta2(1,:),'r',i,theta2(2,:),'k',i,theta2(3,:),'g',i,theta2(4,:),'b')

title('惠一龙,加权递推算法')

I :结果示意图:

0100200300400

-1.5-0.5惠一龙,加权一次最小二乘算法0100200300400

惠一龙,加权递推算法

J :结果分析:

这个也相对容易一些,只是给予新数据较高的权值,即给予新数据较多的信任度。逐渐忽略老数据。

K :偏差补偿最小二乘算法程序

clear clc Np=480;

u=[1 0 0 1 1 0 1 0 1 1]; for i=10:(Np-1)

u(i)=xor(u(i-4),u(i-9)); end

for j=10:(Np-1)

if mod(j,2)==0

y(j)=1;

else

y(j)=0;

end

u(i)=xor(u(i),y(j));

end

L=480;

v=randn(1,L);

z=zeros(1,480);

for k=3:480

z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)+v(k);

end

theta0=[0.001 0.001 0.001 0.001]';

thetac0=[0.001 0.001 0.001 0.001]';

P0=10^6*eye(4);

theta=[theta0,zeros(4,479)];

thetac=[thetac0,zeros(4,479)];

J=0;

D=[1 0 0 0;0 1 0 0;0 0 0 0;0 0 0 0];

for i=3:480;

H=[-z(i-1),-z(i-2),u(i-1),u(i-2)]';

J=J+(z(i)-H'*theta0)^2/(1+H'*P0*H);

K=P0*H*inv(H'*P0*H+1);

theta1=theta0+K*(z(i)-H'*theta0);

P1=P0-K*H'*P0;

theta0=theta1;

theta(:,i)=theta1;

sigma=J/k*(1+thetac0'*D*theta1);

thetac1=thetac0+i*sigma*P1*D*thetac0;

thetac0=thetac1;

thetac(:,i)=thetac1;

P0=P1;

end

i=1:480;

plot(i,theta(1,:),'r',i,theta(2,:),'k',i,theta(3,:),'g',i,theta(4,:), 'b')

title('惠一龙,偏差补偿最小二乘算法')

theta=theta(:,L)

L:结果示意图

惠一龙,偏差补偿最小二乘算法

050100150200250300350400450500

M:做这个程序的时候,还是遇到了些困难。比如递推的顺序,一些初值的赋予,还有矩阵的维数等问题。相对而言,偏差补偿估计更接近于真值。

N:限定记忆算法程序

clear

clc

Np=480;

u=[1 0 0 1 1 0 1 0 1 1];

for i=10:(Np-1)

u(i)=xor(u(i-4),u(i-9));

end

for j=10:(Np-1)

if mod(j,2)==0

y(j)=1;

else

y(j)=0;

end

u(i)=xor(u(i),y(j));

end

v=randn(3,400);

z=[1,398]';

for i=3:400

z(i)=1.5*z(i-1)-0.7*z(i-2)+1*u(i-1)+0.5*u(i-2)+v(i);

end

P=10^6*eye(4,4);

theta=0.001.*ones(4,1);

I=eye(4,4);

L=100;

for i=3:L-1

H=[-z(i-1);-z(i-2);u(i-1);u(i-2)];

h=H';

K=P*H*[h*P*H+1]^(-1);

P=[I-K*h]*P;

theta=theta+K*[z(i)-h*theta];

end

for i=1:300;

h=H';

H=[-z(i+L-1);-z(i+L-2);u(i+L-1);u(i+L-2)];

K=P*H*inv(1+h*P*H);

P=(I-K*h)*P;

theta1=theta+K*(z(i)-h)*theta;

end

for i=1:300;

HH=[ -z(i+L);-z(i+L-1);u(i+L);u(i+L-1)];

K=P*HH*inv(1+HH'*P*HH);

theta=theta1+K*(z(i+L)-HH'*theta1);

P=(I-K*HH')*P;

end

i=1:400;

plot(i,theta(1,:),'r',i,theta(2,:),'k',i,theta(3,:),'g',i,theta(4,:), 'b')

title('惠一龙,限定记忆法')

theta

O:结果示意图:

惠一龙,限定记忆法

050100150200250300350400

P:结果分析

限定记忆法,每增加一个新的数据,就要去掉一个老数据。数据长度始终不变。首次编写这个程序,感觉有些凌乱。但是在理解算法的基础上,经过仔细的琢磨,还是完成了。

A:增广最小二乘法程序:

clear

clc

Np=400;

u=[1 0 0 1 1 0 0 1 1];

for i=10:Np-1

u(i)=xor(u(i-4),u(i-9));

end

for j=10:Np-1

if mod(j,2)==0

y(j)=1;

else

y(j)=0;

end

end

u(i)=xor(u(i),y(j));

v=randn(1,400);

z=[1,398]';

for i=3:400

z(i)=1.5*z(i-1)-0.7*z(i-2)+1*u(i-1)+0.5*u(i-2)+v(i)+1*v(i-1)-0.5*v(i-2);

end

H=zeros(400,6);

for i=3:400

H(i,1)=-z(i-1);

H(i,2)=-z(i-2);

H(i,3)=u(i-1);

H(i,4)=u(i-2);

H(i,5)=v(i-1);

H(i,6)=v(i-2);

end

P=10^6*eye(6);

theta=0.001*eye(6,1);

I=eye(6);

h=H';

for i=3:400

K=P*h(:,i)*[H(i,:)*P*h(:,i)+1]^(-1);

P=[I-K*H(i,:)]*P;

theta=theta+K*[z(i)-H(i,:)*theta];

end

theta

i=1:400;

plot(i,theta(1,:),'r',i,theta(2,:),'b',i,theta(3,:),'g',i,theta(4,:), 'k',...

i,theta(5,:),'m',i,theta(6,:),'y');

title('惠一龙,增广最小二乘法');

B:结果示意图

惠一龙,增广最小二乘法

050100150200250300350400

theta =

-1.5008

0.7008

1.0990

0.4861

1.1716

-0.50950

C:结果分析:

增广最小二乘法只是在最小二乘法的基础上,增加了噪声参数的估计。扩充了矩阵的维数。所以只需要改变H和Z的维数,就很容易的得到辨识结果。

D:广义最小二乘法程序:

clear

clc

Np=480;

u=[1 0 0 1 1 0 0 1 1];

for i=10:Np-1;

u(i)=xor(u(i-4),u(i-9));

end

for i=10:Np-1

if mod(i,2)==0;

y(i)=1;

else

y(i)=0;

u(i)=xor(u(i),y(i));

end

end

v=randn(1,400);

z=[1,398]';

e=[1,398]';

theta=0.001*eye(4,1);

P=10^6*eye(4);

thetae=0.001*eye(2,1);

Pe=eye(2);

I1=eye(4);

I2=eye(2);

for i=3:400;

e(i)=0*e(i-1)+0*e(i-2)+v(i);

z(i)=1.5*z(i-1)-0.7*z(i-2)+1*u(i-1)+0.5*u(i-2)+e(i);

Hf(i,:)=[-z(i-1),-z(i-2),u(i-1),u(i-2)];

hf=Hf';

Kf=P*hf (:,i)*(1+Hf(i,:)*P*hf(:,i))^(-1);

theta=theta+Kf*(z(i)-Hf(i,:)*theta);

P=(I1-Kf*Hf(i,:))*P;

He(i,:)=[-e(i-1),-e(i-2)];

he=He';

Ke=Pe*he(:,i)*(1+He(i,:)*Pe*he(:,i))^(-1);

thetae=thetae+Ke*(e(i)-He(i,:)*thetae);

Pe=(I2-Ke*He(i,:))*Pe;

end

theta

thetae

i=1:400;

plot(i,theta(1,:),'r',i,theta(2,:),'b',i,theta(3,:),'g',i,theta(4,:), 'k',...

i,thetae(1,:),'m',i,thetae(2,:),'y');

title('惠一龙,广义最小二乘法');

E:结果示意图:

惠一龙,广义最小二乘法

050100150200250300350400

theta =

-1.5004

0.7010

1.1731

0.4486

thetae =

-0.0018

0.0021

F:结果分析:

这种辨识方法,相当于对噪声先进行一次滤波。估计系统模型参数的同时,对噪声模型参数也进行估计,并进行迭代。以获得无偏的效果。

G:辅助变量选取x(i)=HH*theta算法程序(自适应滤波):

clear

clc

Np=480;

u=[1 0 0 1 1 1 0 0 1];

for i=10:Np

u(i)=xor(u(i-4),u(i-9));

end

for i=10:Np

if mod(i,2)==0

y(i)=1;

else

y(i)=0;

end

u(i)=xor(u(i),y(i));

end

z=[1,398]';

e=[1,398]';

v=randn(1,400);

for i=3:400

e(i)=v(i)+0.3*v(i-1)+0.5*v(i-2);

z(i)=1.5*z(i-1)-0.7*z(i-2)+1*u(i-1)+0.5*u(i-2)+e(i);

end

theta=0.001*eye(4,1);

P=10^6*eye(4);

I=eye(4);

x=zeros(1,398);

for i=3:400;

HH=[-x(i-1),-x(i-2),u(i-1),u(i-2)];

x(i)=HH*theta;

H=[-z(i-1),-z(i-2),u(i-1),u(i-2)];

K=P*HH'*(H*P*HH'+1)^(-1);

theta1=theta+K*(z(i)-H*theta);

P=(I-K*H)*P;

theta=theta1;

end

theta

i=1:400;

plot(i,theta(1,:),'r',i,theta(2,:),'k',i,theta(3,:),'g',i,theta(4,:), 'b')

title('惠一龙,辅助变量选取x(i)=HH*theta')

H:结果示意图:

050100150200250300350400

-1.5

-1

-0.5

0.5

1

1.5

惠一龙,辅助变量选取x(i)=HH*theta

theta = -1.4962 0.7007 1.0348 0.5776

I :结果分析: 选取辅助变量,可以在有色噪声下很容易的获得一致无偏估计。x(i)=HH*theta,一个自适应滤波器。则可以在激励信号与噪声无关的情况得到较为准确的估计。 J :辅助变量选取x(i)=u(i-nb)程序(纯滞后法): clear clc

Np=480;

u=[1 0 0 1 1 1 0 0 1]; for i=10:Np

u(i)=xor(u(i-4),u(i-9)); end

for i=10:Np

if mod(i,2)==0 y(i)=1; else

y(i)=0; end

u(i)=xor(u(i),y(i)); end

z=[1,398]';

e=[1,398]';

v=randn(1,400);

for i=3:400

e(i)=v(i)+0.3*v(i-1)+0.5*v(i-2);

z(i)=1.5*z(i-1)-0.7*z(i-2)+1*u(i-1)+0.5*u(i-2)+e(i);

end

theta=0.001*eye(4,1);

P=10^6*eye(4);

I=eye(4);

for i=5:400;

HH=[-u(i-2-1),-u(i-2-2),u(i-1),u(i-2)];

H=[-z(i-1),-z(i-2),u(i-1),u(i-2)];

K=P*HH'*(H*P*HH'+1)^(-1);

theta1=theta+K*(z(i)-H*theta);

P=(I-K*H)*P;

theta=theta1;

end

theta

i=1:400;

plot(i,theta(1,:),'r',i,theta(2,:),'k',i,theta(3,:),'g',i,theta(4,:), 'b')

title('惠一龙,辅助变量选取x(i)=u(i-nb)')

K:结果示意图:

惠一龙,辅助变量选取x(i)=u(i-nb)

050100150200250300350400

theta =

-1.5601

0.7674

1.1578

0.5578

L:结果分析:

辅助模型为纯滞后环节,同样以与噪声无关的输入持续激励,只需在自适应滤波程序中稍微改动辅助变量,即可获得辨识结果。

M:辅助变量选取x(i)=z(i-nd)程序:

clear

clc

Np=480;

u=[1 0 0 1 1 1 0 0 1];

for i=10:Np

u(i)=xor(u(i-4),u(i-9));

end

for i=10:Np

if mod(i,2)==0

y(i)=1;

else

y(i)=0;

end

u(i)=xor(u(i),y(i));

end

z=[1,398]';

e=[1,398]';

v=randn(1,400);

for i=3:400

e(i)=v(i)+0.3*v(i-1)+0.5*v(i-2);

z(i)=1.5*z(i-1)-0.7*z(i-2)+1*u(i-1)+0.5*u(i-2)+e(i);

end

theta=0.001*eye(4,1);

P=10^6*eye(4);

I=eye(4);

for i=5:400;

HH=[-z(i-2-1),-z(i-2-2),u(i-1),u(i-2)];

H=[-z(i-1),-z(i-2),u(i-1),u(i-2)];

K=P*HH'*(H*P*HH'+1)^(-1);

theta1=theta+K*(z(i)-H*theta);

P=(I-K*H)*P;

theta=theta1;

end

theta i=1:400;

plot(i,theta(1,:),'r',i,theta(2,:),'k',i,theta(3,:),'g',i,theta(4,:),'b')

title('惠一龙,辅助变量选取x(i)=z(i-nd)')

N :结果示意图:

050100150200250300350400

-1.5

-1

-0.5

0.5

1

惠一龙,辅助变量选取x(i)=z(i-nd)

theta =

-1.4910 0.6935 0.9568

0.5552

O :结果分析:

这个程序在做出前两个辅助变量算法的程序后,相对来说很简单了。只需要对辅助变量做简单的改变,即可得到辨识结果。 P :多级最小二乘法程序: clear clc L=400;

x=[1 0 0 1]; for i=5:L

x(i)=xor(x(i-1),x(i-4)); end

for i=1:L

u(i)=(1-2*x(i));

end

v=randn(L,1);

e=zeros(L,1);

for i=3:L

e(i)=-e(i-1)-0.41*e(i-2)+v(i);

end

z1=zeros(L,1);

for i=4:L

z1(i)=-0.9*z1(i-1)-0.15*z1(i-2)-0.02*z1(i-3)+0.7*u(i-1)-1.5*u(i-2)+e( i);

end

for i=6:L

H1(i-5,:)=[-z1(i-1),-z1(i-2),-z1(i-3),-z1(i-4),-z1(i-5),u(i-1),u(i-2) ,u(i-3),u(i-4)];

end

z1=z1(6:L);

theta1=inv(H1'*H1)*H1'*z1

e=theta1(1:5);

f=theta1(6:9);

z2=[theta1(6:9);0;0;0];

for i=1:7

for j=1:3

if i>j&&i-j<=4

H21(i,j)=-f(i-j);

else

H21(i,j)=0;

end

end

end

for i=1:7

for j=1:2

if i==j

H22(i,j)=1;

end

if i>j&&i-j<6

H22(i,j)=e(i-j);

else

H22(i,j)=0;

end

end

系统辨识最小二乘Matlab仿真

系统辨识和最小二乘参数估计Matlab仿真 一、系统辨识 在控制系统的分析中,首先要建立系统的数学模型,控制系统的数学模型是定量描述系统或过程内部物理量(或变量)之间关系的数学表达式。 一般来说,建立控制系统数学模型有两种基本方法: (1)机理建模(白箱模型):即根据系统内在运行机制、物料和能量守恒等物理学、化学规律建立系统的数学模型,一般步骤如下: Step1:根据系统工作原理及其在控制系统中的作用,确定输入和输出; Step2:根据物料和能量守恒等关系列写基本方程式; Step3:消去中间量; Step4:获得系统模型; (2)实验法建模(黑箱模型):即对于机理尚不清楚或机理过于复杂的系统,可以人为的对其施加某种测试信号,并记录其输出响应,或者记录正常运行时的输入输出数据,然后利用这些输入输出数据确定系统模型结构和参数。 多年来,系统辨识已经发展为一门独立学科分支,通过系统辨识建立一个对象的数学模型,通常包括两方面的工作:一是模型结构的确定(模型的类型、阶次),二是模型参数估计。 根据时间是否连续,参数模型又可以分为连续时间系统模型和离散时间系统参数模型,这两类模型均可采用输入输出模型和状态空间模型描述,离散系统采用差分方程描述,以单输入单输出(SISO)离散系统参数模型为例。 1.确定性模型 SISO系统确定性模型可表示为: u(k)和y(k)分别为输入和输出,d为纯延时。 2.随机性模型 如果受到随机扰动,则式子可写为: 为系统随机扰动,其结构如图:

系统辨识的一般步骤如图: 从图中可以看出,利用辨识的方法建立系统数学模型,从实验设计到模型获得,需要这些步骤。 二、最小二乘参数估计 1.批处理最小二乘 考虑以下CAR模型:

最小二乘法在系统辨识中的应用

最小二乘法在系统辨识中的应用 王文进 控制科学与控制工程学院 控制理论与控制工程专业 2009010211 摘要:在实际的工程中,经常要对一个系统建立数学模型。很多时候,要面对一个未知的系统,对于这些未知系统,我们所知道的仅仅是它们的一些输入输出数据,我们要根据这些测量的输入输出数据,建立系统的数学模型。由此诞生了系统辨识这门科学,系统辨识就是研究怎样利用对未知系统的输入输出数据建立描述系统的数学模型的科学。系统辨识在工程中的应用非常广泛,系统辨识的方法有很多种,最小二乘法是一种应用及其广泛的系统辨识方法。本文主要讲述了最小二乘估计在系统辨识中的应用。 首先,为了便于介绍,用一个最基本的单输入单输出模型来引入系统辨识中的最小二乘估计。 例如:y = ax + (1) 其中:y、x 可测,为不可测的干扰项,a未知参数。通过N 次实验,得到测量数据y k和x k ,其中k=1、2、3、…,我们所需要做的就是通过这N次实验得到的数据,来确定未知参数a 。在忽略不可测干扰项的前提下,基本的思想就是要使观测点y k和由式(1)确定的估计点y的差的平方和达到最小。用公式表达出来就是要使J最小: 确定未知参数a的具体方法就是令: J a = 0 , 导出 a 通过上面最基本的单输入单输出模型,我们对系统辨识中的最小二乘法有了初步的了解,但在实际的工程中,系统一般为多输入系统,下面就用一个实际的例子来分析。在接下来的表述中,为了便于区分,向量均用带下划线的字母表示。 水泥在凝固过程中,由于发生了一系列的化学反应,会释放出一定的热量。若水泥成分及其组成比例不同,释放的热量也会不同。 水泥凝固放热量与水泥成分的关系模型如下: y = a0+ a1x1+…+ a n x n + 其中,y为水泥凝固时的放热量(卡/克);x1~x2为水泥的几种成分。

系统辨识-最小二乘法MATLAB仿真

《系统辨识》基于MATLAB的最小二乘法(一阶)的仿真 clc clear % ①白噪声的生成过程如下:e=randn(1,500); e=e/std(e); e=e-mean(e); A=0; %白噪声的均值为0 B=sqrt(0.1); %白噪声的方差为0.1 e=A+B*e; %绘制白噪声图 k=1:500; subplot(4,1,1) %画四行一列图形窗口中的第一个图形 plot(k,e,'r'); xlabel('k'), ylabel('e');title('(0,1)均匀分布的随机序列') % ②生成M序列的过程如下:X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初始状态(0101), Yi寄存器的各级输出 m=500; %M序列的总长度 for i=1:m Y4=X4; Y3=X3; Y2=X2; Y1=X1; X4=Y3; X3=Y2; X2=Y1; X1=xor(Y3,Y4); %异或运算 if Y4==0 U(i)=-1; else U(i)=Y4; end end M=U; u=U; %绘制M序列图? i1=i k=1:1:i1; subplot(4,1,2) %画四行一列图形窗口中的第二个图形 plot(k,U,k,U,'rx') stem(M) xlabel('k') ylabel('M序列') title('移位寄存器产生的M序列') % ③参数估计的过程如下: %绘制参数估计的相关图形 z=zeros(1,500); %定义输出观测值的长度 for k=2:500 z(k)=0.9*z(k-1)+u(k-1)+e(k);%用理想输出值作为观测值 end subplot(4,1,3) %画四行一列图形窗口中的第三个图形 i=1:1:500; %横坐标的范围从1到500,步长为1 plot(i,z) %图形的横坐标是采样时刻i,纵坐标是输出观测值Z, 图形格式为连续曲线

系统辨识

一、 最小二乘法(LS ) 辨识系统Z(K+2)=1.5*Z(K+1)-0.7*Z(k)+u(K+1)+0.5*u(k)+v(k) 辨识参数 L T L L T L LS y X X X 1)(-Λ =θ 其中 MAT 程序 >> x=[0 1 0 1 1 0 1 1 1]; >> n=403; >> M=[]; >> for i=1:n temp=xor(x(4),x(9)); M(i)=x(9); for j=9:-1:2 x(j)=x(j-1); end x(1)=temp; end >> v=randn(1,400); >> z=[]; >> z(1)=-1; >> z(2)=0; >> for i=3:402 z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)+v(i-2); end >> H=zeros(400,4); >> for i=1:400 H(i,1)=-z(i+1); H(i,2)=-z(i); H(i,3)=M(i+1); H(i,4)=M(i); end >> Estimate=inv(H'*H)*H'*(z(3:402))' 辨识参数为: Estimate = -1.4916

1.0364 0.4268 >> 二、最小二乘递推法(RLS) 辨识Z(K+2)=1.5*Z(K+1)-0.7*Z(k)+u(K+1)+0.5*u(k)+v(k) 递推公式: 其中: MATLAB程序: >> x=[0 1 0 1 1 0 1 1 1]; n=403; M=[]; for i=1:n temp=xor(x(4),x(9)); M(i)=x(9); for j=9:-1:2 x(j)=x(j-1); end x(1)=temp; end v=randn(1,400); z=[]; z(1)=-1; z(2)=0; for i=3:402 z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)+v(i-2); end P=100*eye(4); Pstore=zeros(4,401); >> Pstore(:,1)=[P(1,1),P(2,2),P(3,3),P(4,4)]; >> Theta=zeros(4,401); Theta(:,1)=[3;3;3;3]; >> K=[10;10;10;10];

系统辨识最小二乘参数估计matlab

最小二乘参数估计 摘要: 最小二乘的一次性完成辨识算法(也称批处理算法),他的特点是直接利用已经获得的所有(一批)观测数据进行运算处理。这种算法在使用时,占用内存大,离线辨识,观测被辨识对象获得的新数据往往是逐次补充到观测数据集合中去的。在应用一次完成算法时,如果要求在每次新增观测数据后,接着就估计出系统模型的参数,则需要每次新增数据后要重新求解矩阵方程()Z l T l l T l ΦΦΦ-∧=1θ。 最小二乘辩识方法在系统辩识领域中先应用上已相当普及,方法上相当完善,可以有效的用于系统的状态估计,参数估计以及自适应控制及其他方面。 关键词: 最小二乘(Least-squares ),系统辨识(System Identification ) 目录: 1.目的 (1) 2.设备 (1) 3引言 (1) 3.1 课题背景 (1) 4数学模型的结构辨识 (2) 5 程序 (3) 5.1 M 序列子函数 ................................................................................. 错误!未定义书签。 5.2主程序............................................................................................... 错误!未定义书签。 6实验结果: ................................................................................................................................... 3 7参考文献: ................................................................................................. 错误!未定义书签。 1.目的 1.1掌握系统辨识的理论、方法及应用 1.2熟练Matlab 下最小二乘法编程 1.3掌握M 序列产生方法 2.设备 PC 机1台(含Matlab 软件) 3引言 3.1 课题背景 最小二乘理论是有高斯(K.F.Gauss )在1795年提出:“未知量的最大可能值是这样一个数值,它使各次实际观测值和计算值之间的差值的平方乘以度量其精度的数值以后的和最小。”这就是最小二乘法的最早思想。 最小二乘辨识方法提供一个估算方法,使之能得到一个在最小方差意义上与实验数据最

2003版系统辨识最小二乘法大作业

西北工业大学系统辩识大作业 题目:最小二乘法系统辨识

一、 问题重述: 用递推最小二乘法、加权最小二乘法、遗忘因子法、增广最小二乘法、广义最小二乘法、辅助变量法辨识如下模型的参数 离散化有 z^4 - 3.935 z^3 + 5.806 z^2 - 3.807 z + 0.9362 ---------------------------------------------- = z^4 - 3.808 z^3 + 5.434 z^2 - 3.445 z + 0.8187 噪声的成形滤波器 离散化有 4.004e-010 z^3 + 4.232e-009 z^2 + 4.066e-009 z + 3.551e-010 ----------------------------------------------------------------------------- = z^4 - 3.808 z^3 + 5.434 z^2 - 3.445 z + 0.8187 采样时间0.01s 要求:1.用Matlab 写出程序代码; 2.画出实际模型和辨识得到模型的误差曲线; 3.画出递推算法迭代时各辨识参数的变化曲线; 最小二乘法: 在系统辨识领域中 ,最小二乘法是一种得到广泛应用的估计方法 ,可用于动态 ,静态 , 线性 ,非线性系统。在使用最小二乘法进行参数估计时 ,为了实现实时控制 ,必须优化成参数递推算法 ,即最小二乘递推算法。这种辨识方法主要用于在线辨识。MATLAB 是一套高性能数字计算和可视化软件 ,它集成概念设计 ,算法开发 ,建模仿真 ,实时实现于一体 ,构成了一个使用方便、界面友好的用户环境 ,其强大的扩展功能为各领域的应用提供了基础。对 4324326.51411.5320120232320 Y s s s s G U s s s s ++++== ++++432 120120232320 E N W s s s s == ++++

系统辨识第五章作业

摘要 系统辨识是描述各种各样系统运动规律的一种方法论,是研究系统的一种有效工具。利用这个工具可以对我们要研究的系统进行定量描述。随着现代控制理论的迅速发展,系统辨识得到迅速而蓬勃发展,并已经成功运用与多种工程应用领域。但针对有色噪声干扰系统,传统的辨识方法不能得到良好的参数估计,而工程上大多系统都为有色噪声干扰系统。有色噪声干扰系统的一类系统为广义输出误差模型,本文对白噪声和有色噪声两种噪声干扰下运用最小二乘法,递推最小二乘法分别比较噪声的不同,以及进一步得出最小二乘法的适用性。进一步研究广义最小二乘法对有色噪声系统辨识的改进。 关键词:系统辨识;白噪声;有色噪声;最小二乘;递推最小二乘;广义最小二乘 ABSTRACT the law of motion of the system identification is to describe the various system and an effective tool for the system. It also can be used to study quantitative description of the system. With the rapid development of modern control theory,the development of system identification has been rapid and vigorous , and has been successfully applied to a variety of engineering applications. However, the traditional identification methods can't get good parameter estimation in engineering systems for colored noise . Colored noise jamming system is for generalized output error model.under two kinds of noise of white noise and color noise ,by using the least square method and the recursive least square method ,respectively to compare the different noise, and to further

系统辨识之最小二乘法

方法一、最小二乘一次性算法: 首先对最小二乘法的一次性辨识算法做简要介绍如下: 过程的黑箱模型如图所示: 其中u(k)和z(k)分别是过程的输入输出,)(1-z G 描述输入输出关系的模型,成为过程模型。 过程的输入输出关系可以描述成以下最小二乘格式: )()()(k n k h k z T +=θ (1) 其中z(k)为系统输出,θ是待辨识的参数,h(k)是观测数据向量,n(k) 是均值为0的随机噪声。 利用数据序列{z (k )}和{h (k )}极小化下列准则函数: ∑=-=L k T k h k z J 12])()([)(θθ (2) 使J 最小的θ的估计值^ θ,成为最小二乘估计值。 具体的对于时不变SISO 动态过程的数学模型为 )()()()()(11k n k u z B k z z A +=-- (3) 应该利用过程的输入、输出数据确定)(1-z A 和 )(1-Z B 的系数。 对于求解θ的估计值^θ,一般对模型的阶次 a n , b n 已定,且b a n n >;其次将(3)模 型写成最小二乘格式 )()()(k n k h k z T +=θ (4) 式中 ?????=------=T n n T b a b a b b b a a a n k u k u n k z k z k h ],,,,,,,[)](,),1(),(,),1([)(2121 θ (5)

L k ,,2,1 = 因此结合式(4)(5)可以得到一个线性方程组 L L L n H Z +=θ (6) 其中 ???==T L T L L n n n n L z z z z )](),2(),1([)](),2(),1([ (7) 对此可以分析得出,L H 矩阵的行数为),max(b a n n L -,列数b a n n +。 在过程的输入为2n 阶次,噪声为方差为1,均值为0的随机序列,数据长度)(b a n n L +>的情况下,取加权矩阵L Λ为正定的单位矩阵I ,可以得出: L T L L T L z H H H 1^ )(-=θ (8) 其次,利用在Matlab 中编写M 文件,实现上述算法。 此次算法的实现,采用6阶M 序作为过程黑箱的输入;噪声采用方差为1,均值为0的随机数序列;黑箱模型假设为:y(k)-1.5y(k-1)+0.7y(k-2)=2u(k-1)+0.5u(k-2),则系统输出为Z(k)-1.5Z(k-1)+0.7Z(k-2)=2U(k-1)+0.5U(k-2)+n (k );模型的阶次2,2==b a n n ;数据长度取L=200。 程序清单如下见附录:最小二乘一次性算法Matlab 程序 运行结果如下: 图1 最小二乘一次性算法参数真值与估计值 其中re 为真值,ans 为估计值^ θ 结果发现辨识出的参数与真值之间存在细微误差,这是由于系统噪声以及数据长度L 的限制引起的,最小二乘辨识法是一种无偏估计方法。 方法二、最小二乘递推算法: 最小二乘一次性算法计算量大,并且浪费存储空间,不利于在线应用,由此引出最小

系统辨识最小二乘法大作业 (2)

系统辨识大作业 最小二乘法及其相关估值方法应用 学院:自动化学院 学号: 姓名:日期:

基于最小二乘法的多种系统辨识方法研究 一、实验原理 1.最小二乘法 在系统辨识中用得最广泛的估计方法是最小二乘法(LS)。 设单输入-单输出线性定长系统的差分方程为 (5.1.1) 式中:为随机干扰;为理论上的输出值。只有通过观测才能得到,在观测过程中往往附加有随机干扰。的观测值可表示为 (5.1.2) 式中:为随机干扰。由式(5.1.2)得 (5.1.3) 将式(5.1.3)带入式(5.1.1)得 (5.1.4) 我们可能不知道的统计特性,在这种情况下,往往把看做均值为0的白噪声。 设 (5.1.5) 则式(5.1.4)可写成 (5.1.6) 在观测时也有测量误差,系统内部也可能有噪声,应当考虑它们的影响。因此假定不仅包含了的测量误差,而且包含了的测量误差和系统内部噪声。假定是不相关随机序列(实际上是相关随机序列)。 现分别测出个随机输入值,则可写成个方程,即 上述个方程可写成向量-矩阵形式 (5.1.7) 设 则式(5.1.7)可写为

(5.1.8) 式中:为维输出向量;为维噪声向量;为维参数向量;为测量矩阵。因此式(5.1.8)是一个含有个未知参数,由个方程组成的联立方程组。如果,方程数少于未知数数目,则方程组的解是不定的,不能唯一地确定参数向量。如果,方程组正好与未知数数目相等,当噪声时,就能准确地解出 (5.1.9) 如果噪声,则 (5.1.10) 从上式可以看出噪声对参数估计是有影响的,为了尽量较小噪声对估值的影响。在给定输出向量和测量矩阵的条件下求系统参数的估值,这就是系统辨识问题。可用最小二乘法来求的估值,以下讨论最小二乘法估计。 2.最小二乘法估计算法 设表示的最优估值,表示的最优估值,则有 (5.1.11) 写出式(5.1.11)的某一行,则有 (5.1.12) 设表示与之差,即 - (5.1.13)式中 成为残差。把分别代入式(5.1.13)可得残差。设 则有 (5.1.14) 最小二乘估计要求残差的平方和为最小,即按照指数函数 (5.1.15) 为最小来确定估值。求对的偏导数并令其等于0可得 (5.1.16) (5.1.17)

系统辨识—最小二乘法

最小二乘法参数辨识 1 引言 系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。现代控制理论中的一个分支。通过辨识建立数学模型的目的是估计表征系统行为的重要参数,建立一个能模仿真实系统行为的模型,用当前可测量的系统的输入和输出预测系统输出的未来演变,以及设计控制器。对系统进行分析的主要问题是根据输入时间函数和系统的特性来确定输出信号。对系统进行控制的主要问题是根据系统的特性设计控制输入,使输出满足预先规定的要求。而系统辨识所研究的问题恰好是这些问题的逆问题。通常,预先给定一个模型类μ={M}(即给定一类已知结构的模型),一类输入信号u和等价准则J=L(y,yM)(一般情况下,J是误差函数,是过程输出y和模型输出yM的一个泛函);然后选择使误差函数J达到最小的模型,作为辨识所要求的结果。系统辨识包括两个方面:结构辨识和参数估计。在实际的辨识过程中,随着使用的方法不同,结构辨识和参数估计这两个方面并不是截然分开的,而是可以交织在一起进行的。 2 系统辨识的目的 在提出和解决一个辨识问题时,明确最终使用模型的目的是至关重要的。它对模型类(模型结构)、输入信号和等价准则的选择都有很大的影响。通过辨识建立数学模型通常有四个目的。 ①估计具有特定物理意义的参数有些表征系统行为的重要参数是难以直接测量的,例如在生理、生态、环境、经济等系统中就常有这种情况。这就需要通过能观测到的输入输出数据,用辨识的方法去估计那些参数。 ②仿真仿真的核心是要建立一个能模仿真实系统行为的模型。用于系统分析的仿真模型要求能真实反映系统的特性。用于系统设计的仿真,则强调设计参数能正确地符合它本身的物理意义。 ③预测这是辨识的一个重要应用方面,其目的是用迄今为止系统的可测量的输入和输出去预测系统输出的未来的演变。例如最常见的气象预报,洪水预报,其他如太阳黑子预报,市场价格的预测,河流污染物含量的预测等。预测模型辨识的等价准则主要是使预测误差平方和最小。只要预测误差小就是好的预测模型,对模型的结构及参数则很少再有其他要求。这时辨识的准则和模型应用的目的是一致的,因此可以得到较好的预测模型。 ④控制为了设计控制系统就需要知道描述系统动态特性的数学模型,建立这些模型的目的在于设计控制器。建立什么样的模型合适,取决于设计的方法和准备采用的控制策略。 3 系统辨识的方法 经典方法: 经典的系统辨识方法的发展已经比较成熟和完善,他包括阶跃响应法、脉冲

基于最小二乘法的系统参数辨识

基于最小二乘法的系统参数辨识 吴令红,熊晓燕,张涛 太原理工大学机械电子研究所,太原 (030024) E-mail lhwu0818@https://www.doczj.com/doc/ba7269453.html, 摘要:系统辨识是自动控制学科的一个重要分支,由于其特殊作用,已经广泛应用于各种领域,尤其是复杂系统或参数不容易确定的系统的建模。过去,系统辨识主要用于线性系统的建模,经过多年的研究,已经形成成熟的理论。但随着社会、科学的发展,非线性系统越来越受到人们的关注,其控制与模型之间的矛盾越来越明显,因而非线性系统的辨识问题也越来越受到重视,其辨识理论不断发展和完善本。文重点介绍了系统参数辨识中最小二乘法的基本原理,并通过悬臂梁模型的辨识实例,具体说明了基于最小二乘法参数辨识在Matlab 中的实现方法。结果表明基于最小二乘法具有算法简单、精度较高等优点。 关键词:系统辨识;参数辨识;滑动平均模型(ARX);最小二乘法;Matlab 中图分类号:TH-9 1. 引言 所谓辨识就是通过测取研究对象在人为输入作用下的输出响应,或正常运行时的输入输出数据记录,加以必要的数据处理和数学计算,估计出对象的数学模型。这是因为对象的动态特性被认为必然表现在它的变化着的输入输出数据之中,辨识只不过是利用数学的方法从数据序列中提炼出对象的数学模型而已[1]。 最小二乘法是系统参数辨识中最基本最常用的方法。最小二乘法因其算法简单、理论成熟和通用性强而广泛应用于系统参数辨识中。本文基于悬臂梁的实测数据,介绍了最小二乘法的参数辨识在Matlab中的实现。 2. 系统辨识 一般而言,建立系统的数学模型有两种方法:激励分析法和系统辨识法。前者是按照系统所遵循的物化(或社会、经济等)规律分析推导出模型。后者则是从实际系统运行和实验数据处理获得模型。如图1所示,系统辨识就是从系统的输入输出数据测算系统数学模型的理论和方法。更进一步的定义是L.A.Zadeh曾经与1962年给出的,即“系统辨识是在输入和输出的基础上,从系统的一类系统范围内,确立一个与所实验系统等价的系统”。另外,系统辨识还应该具有3个基本要素,即模型类、数据和准则[5]。被辨识系统模型根据模型形式可分为参数模型和非参数模型两大类。所谓参数模型是指微分方程、差分方程、状态方程等形式的数学模型;而非参数模型是指频率响应、脉冲响应、传递函数等隐含参数的数学模型。在辨识工程中,模型的确定主要根据经验对实际对象的特性进行一定程度上的假设,如对象的模型是线性的还是非线性的、是参数模型还是非参数模型等。在模型确定之后,就可以根据对象的输入输出数据,按照一定的辨识算法确定模型的参数[4]。 y 图1 被研究的动态系统

基于最小二乘法的系统辨识的设计与开发(整理版)

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 基于最小二乘法的系统辨识的设计与开发(整理版)课程(论文)题目: 基于最小二乘法的系统辨识摘要: 最小二乘法是一种经典的数据处理方法。 最小二乘的一次性完成辨识算法(也称批处理算法),他的特点是直接利用已经获得的所有(一批)观测数据进行运算处理。 在系统辨识领域中, 最小二乘法是一种得到广泛应用的估计方法, 可用于动态系统, 静态系统, 线性系统, 非线性系统。 在随机的环境下,利用最小二乘法时,并不要求观测数据提供其概率统计方面的信息,而其估计结果,却有相当好的统计特性。 关键词: 最小二乘法;系统辨识;参数估计 1 引言最小二乘理论是有高斯( K.F.Gauss)在 1795 年提出: 未知量的最大可能值是这样一个数值,它使各次实际观测值和计算值之间的差值的平方乘以度量其精度的数值以后的和最小。 这就是最小二乘法的最早思想。 最小二乘辨识方法提供一个估算方法,使之能得到一个在最小方差意义上与实验数据最好拟合的数学模型。 递推最小二乘法是在最小二乘法得到的观测数据的基础上,用新引入的数据对上一次估计的结果进行修正递推出下一个参数估计值,直到估计值达到满意的精确度为止。 1 / 10

对工程实践中测得的数据进行理论分析,用恰当的函数去模拟数据原型是一类十分重要的问题,最常用的逼近原则是让实测数据和估计数据之间的距离平方和最小,这即是最小二乘法。 最小二乘法是一种经典的数据处理方法。 在随机的环境下,利用最小二乘法时,并不要求观测数据提供其概率统计方面的信息,而其估计结果,却有相当好的统计特性。 2 最小二乘法的系统辨识设单输入单输出线性定常系统的差分方程为: 1),()()() 1()(01knkubkubnkxakxakxnn ( 1)上式中: )(ku为输入信号;)(kx为理论上的输出值。 )(kx只有通过观测才能得到,在观测过程中往往附加有随机干扰。 )(kx的观测值)(ky可表示为 ( 2)将式( 2)代入式( 1)得 1()()() 1()(101kubkubnkyakyakyn (3) 我们可能不知道)(kn的统计特性,在这种情况下,往往把)(kn看做均值为 0 的白噪声。 设 ( 4)则式( 3)可以写成 (5) 在测量)(ku时也有测量误差,系统内部也可能有噪声,应当

系统辨识课件

第一章 目的:建立数学模型 1. 被控对象的数学模型不知道,复杂,无法用已知的定理、定律来推导→辨识 我们可以得到观测资料→辨识 辨识概念:如何从受到随即干扰的局部观测资料出发,用计算机进行处理,确定系统或过程的数学模型。 §1.1 过程和模型 1. 过程:工程系统、生物学系统、社会经济学系统等,工业生产过程。 数学模型是反映系统有关变量之间关系的一组数学描述,在一般情况下,系统模型表征了该系统的输入输出之间的关系,建立数学模型就是确立这种关系。系统辨识就是建立这种关系的一种理论和方法。 黑箱意味着存在一些未知东西。客观事物是复杂的,在人们认识的一定阶段,对于任何客体,我们总是有着许多情况不了解,还不能控制。把待认识的客体称为黑箱。 基本出发点:根据黑箱所表现出来的输入输出信息,建立与黑箱等价的过程外特征模型。 2.模型 1)模型含义:(1)表征过程的因果关系 (2)描述过程的运动规律 (3)把过程本质的部分压缩成有用的描述形式 模型所反映的内容将因其使用的目的而不同 模型:按照过程的目的所作的一种近似的描述

)()(.^ k z k z s a ?→? “几行必然”处处相等 2)模型表现的形式 图表——非参数模型,脉冲响应,频率响应 数学模型:用数学结构形式反映实际过程的行为特性 (差分方程、代数方程、微分方程、状态方程) 3)数学模型分类 线性与非线性、静态与动态、确定性与随机性 线性系统与关于参数空间线性的区别 2cx bx a y ++= y 与x 非线性,系统是非线性的,但y 对于参数对a 、b 、c 是线性的(参数空间特性)。 本质线性与非本质线性 把非线性模型——→线性模型 (本质线性) 2 1a 2a 1A Y L L = 21a a A 、、是参数,21L L 、是输入 2211log a log a logA logy L L ++= (22110 u a u a a y ++=) (处理必须是单调的,不会产生新的极点) 本书模型:集中参数、离散、定常、线性动态、随机 增加数学模型类型 [1.2.1] 3. 建模方法 ①机理建模(理论模型) 利用各种定理建立模型—→理论建模—→白箱理论 简单过程建模 ②辨识建模—→实验建模—→黑箱建模 精度高 [举例]1.2.2 ③灰箱建模 ①+② 原则:目的性、实在性、可辨识性、悭吝性(节省原理) §1.2辨识的定义 就是在输入和输出的基础上,从一组给定的模型类中,确定一个与所测系统等价的模型。 数据:辨识的基础(数据的获取必须引起重视) 三大要素 模型类:辨识的范围 准则:等价原理(准则必须重视) [例 1.2.2] 辨识也可以说是在某种准则的意义下,从一定模型中选出一个与数据拟合最好的模型。

系统辨识最小二乘法大作业

系统辨识最小二乘法大作业 系统辨识大作业最小二乘法及其相关估值方法应用 学院:自动化学院 专业:信息工程 学号:2007302171 姓名:马志强 日期:2010.11.14 基于最小二乘法的多种系统辨识方法研究 1. 最小二乘法的引出 在系统辨识中用得最广泛的估计方法是最小二乘法(LS)。 设单输入-单输出线性定长系统的差分方程为 (5.1.1) 式中:为随机干扰;为理论上的输出值。只有通过观测才能得到,在观测过程中往往附加有随机干扰。的观测值可表示为

(5.1.2) 式中:为随机干扰。由式(5.1.2)得 (5.1.3) 将式(5.1.3)带入式(5.1.1)得 (5.1.4) 我们可能不知道的统计特性,在这种情况下,往往把看做均值为0的白噪声。 设 (5.1.5) 则式(5.1.4)可写成 (5.1.6) 在观测时也有测量误差,系统内部也可能有噪声,应当考虑它们的影响。因此假定不仅包含了的测量误差,而且包含了的测量误差和系统内部噪声。假定是不相关随机序列(实际上是相关随机序列)。 现分别测出个随机输入值,则可写成个方程,即 上述个方程可写成向量-矩阵形式 (5.1.7) 设 则式(5.1.7)可写为 (5.1.8) 式中:为维输出向量;为维噪声向量;为维参数向量;为测量矩阵。因此式(5.1.8)是一个含有个未知参数,由个方程组成的联立方程组。如果,方程数少于未知数数目,则方程组的解是不定的,不能唯一地确定参数向量。如果,方程组正好与未知数数目相等,当噪声时,就能准确地解出 (5.1.9) 如果噪声,则

(5.1.10) 从上式可以看出噪声对参数估计是有影响的,为了尽量较小噪声对估值的影响。在给定输出向量和测量矩阵的条件下求系统参数的估值,这就是系统辨识问题。可用最小二乘法来求的估值,以下讨论最小二乘法估计。 2. 最小二乘法估计算法 设表示的最优估值,表示的最优估值,则有 (5.1.11) 写出式(5.1.11)的某一行,则有 (5.1.12) 设表示与之差,即 - (5.1.13) 式中 成为残差。把分别代入式(5.1.13)可得残差。设 则有 (5.1.14) 最小二乘估计要求残差的平方和为最小,即按照指数函数 (5.1.15) 为最小来确定估值。求对的偏导数并令其等于0可得 (5.1.16) (5.1.17) 由式(5.1.17)可得的最小二乘估计 (5.1.18) 3.递推最小二乘法 为了实现实时控制,必须采用递推算法,这种辨识方法主要用于在线辨识。 设已获得的观测数据长度为,将式(5.1.8)中的和分别用来代替, 即 (5.3.1) 用的最小二乘估计,则 (5.3.2)

系统辨识试验

2.用普通最小二乘法(OLS )法辨识对象数学模型 选择的仿真对象的数学模型如下 )()2(5.0)1()2(7.0)1(5.1)(k v k u k u k z k z k z +-+-=-+-- 其中,)(k v 是服从正态分布的白噪声N )1,0(。输入信号采用4阶M 序列,幅度为1。选择如下形式的辨识模型 )()2()1()2()1()(2121k v k u b k u b k z a k z a k z +-+-=-+-+ 设输入信号的取值是从k =1到k =16的M 序列,则待辨识参数LS θ?为LS θ?=L τL 1L τL z H )H H -(。其中,被辨识参数LS θ?、观测矩阵z L 、H L 的表达式为 ?? ?? ? ? ??????=2121? b b a a LS θ , ????????????=)16()4()3(z z z L z , ????????????------=)14()2()1()15()3()2()14()2()1()15()3()2(u u u u u u z z z z z z L H 程序框图如下所示:

参考程序: %ols u=[-1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,1,1]; %系统辨识的输入信号为一个周期的M 序列 z=zeros(1,16); %定义输出观测值的长度 for k=3:16 z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2); %用理想输出值作为观测值 end subplot(3,1,1) %画三行一列图形窗口中的第一个图形 stem(u) %画出输入信号u的经线图形 subplot(3,1,2) %画三行一列图形窗口中的第二个图形 i=1:1:16; %横坐标范围是1到16,步长为1 plot(i,z) %图形的横坐标是采样时刻i, 纵坐标是输出观测值z, 图形格式为连续曲线subplot(3,1,3) %画三行一列图形窗口中的第三个图形 stem(z),grid on%画出输出观测值z的经线图形,并显示坐标网格 u,z%显示输入信号和输出观测信号 %L=14%数据长度 HL=[-z(2) -z(1) u(2) u(1);-z(3) -z(2) u(3) u(2);-z(4) -z(3) u(4) u(3);-z(5) -z(4) u(5) u(4);-z(6) -z(5) u(6) u(5);-z(7) -z(6) u(7) u(6);-z(8) -z(7) u(8) u(7);-z(9) -z(8) u(9) u(8);-z(10) -z(9) u(10) u(9);-z(11) -z(10) u(11) u(10);-z(12) -z(11) u(12) u(11);-z(13) -z(12) u(13) u(12);-z(14) -z(13) u(14) u(13);-z(15) -z(14) u(15) u(14)] %给样本矩阵HL赋值 ZL=[z(3);z(4);z(5);z(6);z(7);z(8);z(9);z(10);z(11);z(12);z(13);z(14);z(15); z(16)]% 给样本矩阵zL赋值 %calculating parameters%计算参数 c1=HL'*HL; c2=inv(c1); c3=HL'*ZL; c=c2*c3 %计算并显示 %DISPLAY PARAMETERS a1=c(1), a2=c(2), b1=c(3), b2=c(4) %从中分离出并显示a1 、a2、 b1、 b2 %End

系统辨识-最小二乘法

5.3 Matlab源程序: %最小二乘估计 clear u=[ 1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.626 0.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.450 1.151 0.485 1.633 0.043 1.326 1.706 -0.340 0.890 0.144 1.177 -0.390]; n=normrnd(0, sqrt(0.1), 1, 31); %方差为0.1 z=zeros(1,30); for k=3:31 z(k)=-1.642*z(k-1)-0.715*z(k-2)+0.39*u(k-1)+0.35*u(k-2)+n(k)+1.642*n(k-1)+0.715 *n(k-2); end h0=[-z(2) -z(1) u(2) u(1)]'; HLT=[h0,zeros(4,28)]; for k=3:30 h1=[-z(k) -z(k-1) u(k) u(k-1)]'; HLT(:,k-1)=h1; end HL=HLT'; y=[z(3);z(4);z(5);z(6);z(7);z(8);z(9);z(10);z(11);z(12);z(13);z(14);z(15);z(16) ;z(17);z(18);z(19);z(20);z(21);z(22);z(23);z(24);z(25);z(26);z(27);z(28);z(29); z(30);z(31)];%求出FAI c1=HL'*HL; c2=inv(c1); c3=HL'*y; c=c2*c3; %display('方差=0.1时,最小二乘法估计辨识参数θ如下:'); a1=c(1) a2=c(2) b1=c(3) b2=c(4) %递推最小二乘法估计 clear u=[ 1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.626 0.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.450 1.151 0.485 1.633 0.043 1.326 1.706 -0.340 0.890 0.144 1.177 -0.390]; z(2)=0; z(1)=0; n=normrnd(0, sqrt(0.1), 1, 31); %方差为0.1

基于最小二乘法的系统参数辨识

基于最小二乘法的系统参数辨识 研究生二队李英杰 082068 摘要:系统辨识是自动控制学科的一个重要分支,由于其特殊作用,已经广泛应用于各种领域,尤其是复杂系统或参数不容易确定的系统的建模。过去,系统辨识主要用于线性系统的建模,经过多年的研究,已经形成成熟的理论。但随着社会、科学的发展,非线性系统越来越受到人们的关注,其控制与模型之间的矛盾越来越明显,因而非线性系统的辨识问题也越来越受到重视,其辨识理论不断发展和完善本。文重点介绍了系统参数辨识中最小二乘法的基本原理,并通过热敏电阻阻值温度关系模型的辨识实例,具体说明了基于最小二乘法参数辨识在Matlab中的实现方法。结果表明基于最小二乘法具有算法简单、精度较高等优点。 1. 引言 所谓辨识就是通过测取研究对象在人为输入作用下的输出响应,或正常运行时的输入输出数据记录,加以必要的数据处理和数学计算,估计出对象的数学模型。这是因为对象的动态特性被认为必然表现在它的变化着的输入输出数据之中,辨识只不过是利用数学的方法从数据序列中提炼出对象的数学模型而已[1]。最小二乘法是系统参数辨识中最基本最常用的方法。最小二乘法因其算法简单、理论成熟和通用性强而广泛应用于系统参数辨识中。本文基于热敏电阻阻值与温度关系数据,介绍了最小二乘法的参数辨识在Matlab中的实现。 2. 系统辨识 一般而言,建立系统的数学模型有两种方法:激励分析法和系统辨识法。前者是按照系统所遵循的物化(或社会、经济等)规律分析推导出模型。后者则是从实际系统运行和实验数据处理获得模型。如图1 所示,系统辨识就是从系统的输入输出数据测算系统数学模型的理论和方法。更进一步的定义是L.A.Zadeh 曾经与1962 年给出的,即“系统辨识是在输入和输出的基础上,从系统的一类系统范围内,确立一个与所实验系统等价的系统”。另外,系统辨识还应该具有3 个基本要素,即模型类、数据和准则[5]。被辨识系统模型根据模型形式可分为参数模型和非参数模型两大类。所谓参数模型是指微分方程、差分方程、状态方程等形式的数学模型;而非参数模型是指频率响应、脉冲响应、传递函数等隐含参数的数学模型。在辨识工程中,模型的确定主要根据经验对实际对象的特性进行一定程度上的假设,如对象的模型是线性的还是非线性的、是参数模型还是非参数模型等。在模型确定之后,就可以根据对象的输入输出数据,按照一定的辨识算法确定模型的参数[4]。 图1 被研究的动态系统 3. 最小二乘法(LS)参数估计方法 对于参数模型辨识结构,系统辨识的任务是参数估计,即利用输入输出数据估计这些参数,建立系统的数学模型。在参数估计中最常用的是最小二乘法(LS)、

系统辨识—最小二乘法汇总

最小二乘法参数辨识 201403027 摘要:系统辨识在工程中的应用非常广泛,系统辨识的方法有很多种,最小 二乘法是一种应用极其广泛的系统辨识方法.阐述了动态系统模型的建立及其最小二乘法在系统辨识中的应用,并通过实例分析说明了最小二乘法应用于系统辨识中的重要意义. 关键词:最小二乘法;系统辨识;动态系统 Abstract: System identification in engineering is widely used, system identification methods there are many ways, least squares method is a very wide range of application of system identification method and the least squares method elaborated establish a dynamic system models in System Identification applications and examples analyzed by the least squares method is applied to illustrate the importance of system identification. Keywords: Least Squares; system identification; dynamic system

引言 随着科学技术的不断发展,人们认识自然、利用自然的能力越来越强,对于未知对象的探索也越来越深入.我们所研究的对象,可以依据对其了解的程度分为三种类型:白箱、灰箱和黑箱.如果我们对于研究对象的内部结构、内部机制了解很深入的话,这样的研究对象通常称之为“白箱”;而有的研究对象,我们对于其内部结构、机制只了解一部分,对于其内部运行规律并不十分清楚,这样的研究对象通常称之为“灰箱”;如果我们对于研究对象的内部结构、内部机制及运行规律均一无所知的话,则把这样的研究对象称之为“黑箱”.研究灰箱和黑箱时,将研究的对象看作是一个系统,通过建立该系统的模型,对模型参数进行辨识来确定该系统的运行规律.对于动态系统辨识的方法有很多,但其中应用最广泛,辨识 效果良好的就是最小二乘辨识方法,研究最小二乘法在系统辨识中的应用具有现实的、广泛的意义. 1.1 系统辨识简介 系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。现代控制理论中的一个分支。通过辨识建立数学模型的目的是估计表征系统行为的重要参数,建立一个能模仿真实系统行为的模型,用当前可测量的系统的输入和输出预测系统输出的未来演变,以及设计控制器。对系统进行分析的主要问题是根据输入时间函数和系统的特性来确定输出信号。对系统进行控制的主要问题是根据系统的特性设计控制输入,使输出满足预先规定的要求。而系统辨识所研究的问题恰好是这些问题的逆问题。通常,预先给定一个模型类μ={M}(即给定一类已知结构的模型),一类输入信号u和等价准则J=L(y,yM)(一般情况下,J是误差函数,是过程输出y和模型输出yM的一个泛函);然后选择使误差函数J达到最小的模型,作为辨识所要求的结果。系统辨识包括两个方面:结构辨识和参数估计。在实际的辨识过程中,随着使用的方法不同,结构辨识和参数估计这两个方面并不是截然分开的,而是可以交织在一起进行的。 1.2系统辨识的目的 在提出和解决一个辨识问题时,明确最终使用模型的目的是至关重要的。它对模型类(模型结构)、输入信号和等价准则的选择都有很大的影响。通过辨识建立数学模型通常有四个目的。 ①估计具有特定物理意义的参数有些表征系统行为的重要参数是难以直接测量的,例如在生理、生态、环境、经济等系统中就常有这种情况。这就需要通过能观测到的输入输出数据,用辨识的方法去估计那些参数。 ②仿真仿真的核心是要建立一个能模仿真实系统行为的模型。用于系统分析的仿真模型要求能真实反映系统的特性。用于系统设计的仿真,则强调设计参数能正确地符合它本身的物理意义。 ③预测这是辨识的一个重要应用方面,其目的是用迄今为止系统的可测量的输入和输出去预测系统输出的未来的演变。例如最常见的气象预报,洪水预报,其他如太阳黑子预报,市场价格的预测,河流污染物含量的预测等。预测模型辨识的等价准则主要是使预测误差平方和最小。只要预测误差小就是好的预测

相关主题
文本预览
相关文档 最新文档