系统辨识大作业1201张青

系统辨识大作业1201张青
系统辨识大作业1201张青

《系统辨识》大作业

学号:12051124

班级:自动化1班

姓名:张青

信息与控制工程学院自动化系

2015-07-11

第一题

模仿index2,搭建对象,由相关分析法,获得脉冲响应序列?()g k ,由?

()g k ,参照讲义, 获得系统的脉冲传递函数()G z 和传递函数()G s ;应用最小二乘辨识,获得脉冲响应序列?

()g k ;同图显示两种方法的辨识效果图;应用相关最小二乘法,拟合对象的差分方程模型;构建时变对象,用最小二乘法和带遗忘因子的最小二乘法,(可以用辨识工具箱) 辨识模型的参数,比较两种方法的辨识效果差异;

答:根据index2搭建结构框图:

相关分析法:利用结构框图得到UY 和tout

其中的U 就是题目中要求得出的M 序列,根据结构框图可知序列的周期是

1512124=-=-=n p N 。

在command window 中输入下列指令,既可以得到脉冲相应序列()g k

aa=5;NNPP=15;ts=2; RR=ones(15)+eye(15); for i=15:-1:1

UU(16-i,:)=UY(16+i:30+i,1)'; end

YY=[UY(31:45,2)];

GG=RR*UU*YY/[aa*aa*(NNPP+1)*ts]; plot(0:2:29,GG) hold on

stem(0:2:29,GG,'filled') Grid;title('脉冲序列g(τ)')

最小二乘法建模的响应序列

由于是二阶水箱系统,可以假设系统的传递函数为2

21101)(s

a s a s

b b s G +++=

,已知)(τg ,求2110,,,a a b b

已知G (s )的结构,用长除法求得G(s)的s 展开式,其系数等于从 )( g 求得的各阶矩,然后求G(s)的参数。 得到结果: a1 =

-1.1561 a2 =

0.4283 b0 =

-0.0028 b1=

0.2961

在command window 中输入下列指令得到传递函数:

最小二乘一次算法相关参数

%最小二乘法一次完成算法 M=UY(:,1); z=UY(:,2); H=zeros(100,4); for i=1:100 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:102)) %结束

得到相关系数为:Estimate =

-0.7866 0.1388 0.5707 0.3115

带遗忘因子最小二乘法:

%带遗忘因子最小二乘法程序

M=UY(:,1);

z=UY(:,2);

P=1000*eye(5); %

Theta=zeros(5,200); %

Theta(:,1)=[0;0;0;0;0];

K=zeros(4,400); %

K=[10;10;10;10;10];

lamda=0.99;%遗忘因数

for i=3:201

h=[-z(i-1);-z(i-2);M(i);M(i-1);M(i-2)];

K=P*h*inv(h'*P*h+lamda);

Theta(:,i-1)=Theta(:,i-2)+K*(z(i)-h'*Theta(:,i-2));

P=(eye(5)-K*h')*P/lamda;

end

i=1:200;

figure(1)

plot(i,Theta(1,:),i,Theta(2,:),i,Theta(3,:),i,Theta(4,:),i,Theta(5,:) )

title('带遗忘因子最小二乘法')

grid

%结束

Estimate 可由仿真图得出,可知两种方法参数确定十分接近。

两种方法的辨识效果差异:

采用相关分析法和最小二乘法辨识出的脉冲响应图形可看出,用最小二乘法辨识出的图形更像脉冲响应,他在最后无偏差,衰减为零,其可实现无偏差估计。而相关分析法图形虽与相关分析的相近,但它最后有偏差。带遗忘因子的递推最小二乘辨识的参数平均值可随着实际参数变化而突变。但他对噪声比较敏感,只是参数围绕参数实际值上下波动,而辨识出参数的平均值接近实际值,而且比其他方法更加接近,并且可以防止数据饱和。

第二题

设SISO系统差分方程为(40分)

y(k) =

)

(

)2

(

)1

(

)2

(

)1

(

2

1

2

1

k

k

u

b

k

u

b

k

y

a

k

y

+

-

+

-

+

-

-

-

-

辨识参数向量为

θ=1[a2a1b2b ]T,

输入输出数据详见数据文件uy01.txt—uy03.txt。

)

(k

ξ

为噪声方差各异的白噪声或有色噪

声。

试求解:

1)用最小二乘及递推最小二乘法估计θ;

2)用辅助变量法及其递推算法估计θ;

3)用广义最小二乘法及其递推算法估计θ;

4)用夏氏偏差修正法、夏氏改良法及其递推算法估计θ;

5)用增广矩阵法估计θ;

6) 用极大似然法估计θ;

7)分析噪声

)

(k

ξ

特性;

答:1.基本最小二乘法:

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt') filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

%最小二乘法,取b0=0

n = 2;%根据题目,本系统为2阶系统

L = length(Data);%辨识所需数据的总长度

N = L-n;%构造测量矩阵的数据长度

FIA = zeros(N,2*n);%构造测量矩阵

for i = 1:N %测量矩阵赋值

for l = 1:n*2

if(l>n)

FIA(i,l) = Data(n+2+i-l,1);

else

FIA(i,l) = -Data(n+i-l,2);

end

end

end

Y = Data(n+1:n+N,2);%输出数据矩阵

thita = inv(FIA'*FIA)*FIA'*Y;%计算参数矩阵

disp('使用最小二乘算法所得结果如下:')

%辨识参数数据输出如下:

lsa1 = thita(1),lsa2 = thita(2),lsb1 = thita(3),lsb2 = thita(4)

实验结果:

Uy1.txt uy2.txt uy3.txt

2.递推最小二乘法:

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt') filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

%递推最小二乘法

n = 2;%根据题目已知该系统阶数为2

L = length(Data);

%为辨识参数向量赋初值,这里均取为0.001

for a = 1:1:n*2

thita0(a,1) = 0.001;

end

%直接给出矩阵Pn的初始状态P0

P0 = 10^9*eye(n*2,n*2);

thita = [thita0,zeros(n*2,L)];%需辨识参数矩阵的初值及大小

for i = n+1:1:L %这里i从第n+1个数开始

for m = 1:n*2 %输入矩阵赋值

if(m<=n)

FIA1(m,1) = -Data(i-m,2);

else

FIA1(m,1) = Data(i-m+2,1);

end

end

X = FIA1'*P0*FIA1+1;%引入中间变量X为K递推公式中的求逆项,1维K1 = P0*FIA1/X;

D1 = Data(i,2)-FIA1'*thita0;

P1 = P0-K1*K1'*X;%求出P(K)矩阵

P0 = P1;%作为下次迭代初值

thita1 = thita0+K1*D1;%估值补偿公式,thita1为求被辨识的参数向量thita0 = thita1;%所得的参数向量作为下次迭代初值

end

disp('递推最小二乘法所得结果如下:')

Dta1=thita1(1),Dta2=thita1(2),Dtb1=thita1(3),Dtb2=thita1(4) %显示被辨识参数

实验结果:

Uy1.txt uy2.txt uy3.txt

3.辅助变量法:

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt')

filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

%使用递推辅助变量法对2阶系统进行辨识,取b0=0

n = 2;L = length(Data);N = L-n;

%分别取出输入、输出数据u,y

U = Data(1:L,1);Y = Data(1:L,2);

%首先使用最小二乘法,粗略得到初始的被辨识参数向量

fzOL = [-Y(2:L-1),-Y(1:L-2),U(2:L-1),U(1:L-2)];

Y1 = Data(3:L,2);%构造输出向量,也用于辅助变量法的输出向量thita = inv(fzOL'*fzOL)*fzOL'*Y1;%得到初始参数向量

%获得初值,以下使用辅助变量法

for i=1:400

Yf = fzOL*thita;%辅助模型输出

%构造辅助变量矩阵,改变新的矩阵中的输出量,输入量不变Zfz = fzOL;

Zfz(2:N,1) = -Yf(1:(N-1),1);

Zfz(3:N,2) = -Yf(1:(N-2),1);

thita = inv(Zfz'*fzOL)*Zfz'*Y1;%求取被估计参数的辅助变量估值end

disp('使用辅助变量法,得到如下辨识结果:')

Fza1=thita(1),Fza2=thita(2),Fzb1=thita(3),Fzb2=thita(4)

实验结果:

Uy1.txt uy2.txt uy3.txt

4.递推辅助变量法:

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt') filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

%使用递推辅助变量法对2阶系统进行辨识,取b0=0

n = 2;L = length(Data);

%分别取出输入、输出数据u,y

U = Data(1:L,1);Y = Data(1:L,2);

N = 498;

n0 = 100;

% 取前100个数据利用最小二乘辨识

FIA = [-Y(2:n0-1),-Y(1:n0-2),U(2:n0-1),U(1:n0-2)];

Y1 = Data(3:n0,2);%构造输出向量,也用于辅助变量法的输出向量thita = inv(FIA'*FIA)*FIA'*Y1;%得到初始参数向量

Z = [-Y(2:n0-1) -Y(1:n0-2) U(2:n0-1) U(1:n0-2)];

thita = inv(Z'*FIA)*Z'*Y1;

P0 = inv(Z'*FIA);

%后面的数据计算,使用递推辅助变量法

for n = n0+1:N

Y11 = [Y(1); Y(2); Z*thita];

Zn = [-Y11(n-1) -Y11(n-2) U(n-1) U(n-2)];

Z = [Z; Zn];

kesy = [-Y(n-1); -Y(n-2); U(n-1); U(n-2)];

K = P0*Zn'/(1+kesy'*P0*Zn');

P1 = P0 - K*kesy'*P0;

P0 = P1;

thita = thita + K*(Y(n) - kesy'*thita);

end

disp('递推辅助变量法辨识结果:');

Dfa1=thita(1),Dfa2=thita(2),Dfb1=thita(3),Dfb2=thita(4)

实验结果:

Uy1.txt uy2.txt uy3.txt

5.广义最小二乘法:

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt')

filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

%使用广义最小二乘法,辨识2阶系统的参数

n = 2;

L = length(Data);

N = L-n;

for m=1:1:300

%分别取出输入、输出数据u,y

U = Data(1:L,1); Y = Data(1:L,2);

%首先使用最小二乘法,求系统参数向量初值

gyOL = [-Y(2:L-1),-Y(1:L-2),U(2:L-1),U(1:L-2)];%LS测量矩阵

Zgy1 = Data(3:L,2);%输出矩阵y

thita = inv(gyOL'*gyOL)*gyOL'*Zgy1;%参数向量初值

Gya1=thita(1);Gya2=thita(2);Gyb1=thita(3);Gyb2=thita(4);

%得到初值后,以下使用广义最小二乘法进行辨识,由残差代替噪声误差E(1) = Y(1);%k=1时,残差的值

E(2) = Y(2)+Gya1*Y(1)-Gyb1*U(1);%k=2时,残差的值

for i = 3:N+n %残差公式如下:

E(i)= Y(i)+Gya1*Y(i-1)+Gya2*Y(i-2)-Gyb1*U(i-1)-Gyb2*U(i-2);

end

E1 = E(n+1:n+N)';

omiga(1:N,1) = -E(n:n+N-1)';omiga(1:N,2) = -E(n-1:n+N-2)';

%fl表示由残差代替噪声项,而辨识得到的滤波器的估计参数

fl=inv(omiga'*omiga)*omiga'*E1;

%得到fl后,计算经过滤波的u,y数据;其中,k=1,2时:

Data(1,1)=U(1);

Data(1,2)=Y(1);

Data(2,2)=Y(2)+fl(1)*Y(1);

Data(2,1)=U(2)+fl(1)*U(1);

%k>=3时:

for k=3:N+n

Data(k,1) = U(k)+fl(1)*U(k-1)+fl(2)*U(k-2);

Data(k,2) = Y(k)+fl(1)*Y(k-1)+fl(2)*Y(k-2);

end

end

disp('由广义最小二乘法得到的辨识结果如下:')

Gya1=thita(1),Gya2=thita(2),Gyb1=thita(3),Gyb2=thita(4)

实验结果:

Uy1.txt uy2.txt uy3.txt

6.递推广义最小二乘法:

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt') filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

u1=Data(:,1);

y1=Data(:,2);

n=2;

N=500-n;

n0=50;

%用前50组数据利用lsm估计出初值

%构造矩阵phi

phi(:,1)=-y1(n:n+n0-1);

phi(:,2)=-y1(n-1:n+n0-2);

phi(:,3)=u1(n:n+n0-1);

phi(:,4)=u1(n-1:n+n0-2);

y(:,1)=y1(n+1:n+n0);

seta=(inv(phi'*phi))*phi'*y;

seta0=seta;

f0=[0 0]';

p10=inv(phi'*phi);

p20=10^6*eye(2,2);

y(1:i,1)=y1(n+1:n+i); u(1:i,1)=u1(n+1:n+i); %计算残差

e=y-phi*seta0; %f 估计

omega=[-e(n+i-2) -e(i+1-1)]';

K2=p20*omega*inv(1+omega'*p20*omega); f1=f0+K2*(e(n+i-2)-omega'*f0); p2=p20-K2*omega'*p20; p20=p2; f0=f1; %滤波

yy(1:i,1)=y1(n:n+i-1); yy(1:i,2)=y1(n-1:n+i-2); uu(1:i,1)=u1(n:(n+i-1)); uu(1:i,2)=u1((n-1):(n+i-2));

yg=y+yy*f1; %yg(k)=y(k)+f(1)*y(k-1)+f(2)*y(k-2) ug=u+uu*f1; %ug(k)=u(k)+f(1)*u(k-1)+f(2)*u(k-2) % seta 估计

ksai=[-yg(n+i-2) -yg(n+i-3) ug(n+i-2) ug(n+i-3)]'; K1=p10*ksai*inv(1+ksai'*p10*ksai);% K(N+1)值 p1=p10-K1*ksai'*p10; % P(N+1)值 p10=p1;

seta1=seta0+K1*(y1(n+i+1)-ksai'*seta0); % seta(N+1)值 seta0=seta1; % 构造新phi 阵

phi(1:i+1,1)=-y1(n:n+i-1+1); phi(1:i+1,2)=-y1(n-1:n+i-2+1); phi(1:i+1,3)=u1(n:n+i-1+1); phi(1:i+1,4)=u1(n-1:n+i-2+1); end

disp('递推广义最小二乘法辨识结果:');

a1=seta0(1),a2=seta0(2),b1=seta0(3),b2=seta0(4) 实验结果:

Uy1.txt uy2.txt uy3.txt

7.夏氏偏差修正法:

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt') filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

%使用夏氏修正法,对2阶系统进行参数辨识

n = 2;L = length(Data);N = L-n;

U = Data(:,1);

Y = Data(:,2);

%首先使用最小二乘法,求系统参数向量初值

glOL =[-Y(2:L-1),-Y(1:L-2),U(2:L-1),U(1:L-2)];

Zgl1 = Data(3:L,2);

Sgl1 = glOL'*glOL;Sgl2=inv(Sgl1);Sgl3=glOL'*Zgl1;

Xsthita = Sgl2*Sgl3;%计算参数矩阵

%得到初值后,以下使用夏氏修正法进行参数辨识:

thitab0 = 0;%设偏差项的偏差初值为0

Fa = Sgl2*glOL';

M = eye(N)-glOL*Sgl2*glOL';

F = eye(N);

if(F>=10^-6*eye(N))

E1 = Zgl1-glOL*Xsthita;%计算残差E

omiga(2:N,1) = -E1(1:N-1);

omiga(3:N,2) = -E1(1:N-2);

D = omiga'*M*omiga;

Fx = inv(D)*omiga'*M*Zgl1;

thitab = Fa*omiga*Fx;

Xsthita = Xsthita - thitab;

F = thitab - thitab0;

thitab0 = thitab;

end

disp('夏氏修正法')

Xsa1 = Xsthita(1),Xsa2 = Xsthita(2),Xsb1 = Xsthita(3),Xsb2 = Xsthita(4)

实验结果:

Uy1.txt uy2.txt uy3.txt

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt') filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

%最小二乘法,取b0=0

n = 2;%根据题目,本系统为2阶系统

L = length(Data);%辨识所需数据的总长度

N = L-n;%构造测量矩阵的数据长度

FIA = zeros(N,2*n);%构造测量矩阵

for i = 1:N %测量矩阵赋值

for l = 1:n*2

if(l>n)

FIA(i,l) = Data(n+2+i-l,1);

else

FIA(i,l) = -Data(n+i-l,2);

end

end

end

Y = Data(n+1:n+N,2);%输出数据矩阵

thita = inv(FIA'*FIA)*FIA'*Y;%计算参数矩阵

thitaLS = thita;%最小二乘估值

m = inv(FIA'*FIA)*FIA';

for i = 1:1:1000%构造Omega

Err = Y-FIA*thitaLS;%计算残差E

omiga(2:N,1) = -Err(1:N-1);

omiga(3:N,2) = -Err(1:N-2);

F = inv(omiga'*omiga)*omiga'*Err;

thita = thitaLS-m*omiga*F;

end

disp('使用夏氏改良法辨识结果为:')

Xga1 = thita(1),Xga2 = thita(2),Xgb1 = thita(3),Xgb2 = thita(4)

实验结果:

Uy1.txt uy2.txt uy3.txt

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt')

filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

%这里选用450组数据进行递推迭代

n = 2;N = 450-n;

U = Data(:,1);

Y = Data(:,2);

%初始赋值如下:

beta = [0 0 0 0 0 0]';P0= 10^10*eye(6,6);

E1 = 0;E2 = 0;

%循环迭代

for i = 3:N

E1 = Y(n+i)-beta(1)*Y(n+i-1)-beta(2)*Y(n+i-2)-beta(3)*Y(n+i-1)-beta(4)*U(n+i-2);

E2 = Y(n+i-1)-beta(1)*Y(n+i-2)-beta(2)*Y(n+i-3)-beta(3)*U(n+i-2)-beta(4)*U(n+i-3); FIA = [-Y(n+i) -Y(n+i-1) U(n+i) U(n+i-1) -E1 -E2]';

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

P1 = P0-K*FIA'*P0;

P0 = P1;

beta1 = beta+K*(Y(n+i+1)-FIA'*beta);

beta = beta1;

end

disp('取450组数据进行递推夏氏辨识的结果为:');

Dxa1=beta(1),Dxa2=beta(2),Dxb1=beta(3),Dxb2=beta(4)

实验结果:

Uy1.txt uy2.txt uy3.txt

10.增广矩阵法:

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt') filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

%使用增广矩阵法进行2阶系统的参数辨识

n = 2;L = length(Data);

U = Data(1:L,1);Y = Data(1:L,2);

for i = 1:3*n %首先给辨识参数向量赋初值,这里取thita0为0

thita0(i,1) = 0;

end

P0 = 10^10*eye(3*n,3*n);%然后设定初始状态P0为充分大的对角阵

ERR0 = 0.00000000001;%收敛情况指标,相对误差ERR0

thita = [thita0,zeros(3*n,L)];%设定参数向量的初值及大小

zs = zeros(L,1);%构造初始噪声矩阵

hn = [0,0,0,0,0,0]';

for j = n+1:1:L

zs(j-1) = Y(j-1)-hn'*thita0;

hn = [-Y(j-1),-Y(j-2),U(j-1),U(j-2),zs(j-1),zs(j-2)]';

K = P0*hn*inv(hn'*P0*hn+1);%计算修正矩阵K

thita0 = thita0+K*[Y(j)-hn'*thita0];

P0 = P0-K*hn'*P0;%计算状态矩阵P(N)

thita(:,j) = thita0;

E = abs((thita(:,j-1)-thita0)./thita0);

if E<=ERR0 break;%根据设定的误差限,判断何时跳出

end

end

Zgma1=thita0(1),Zgma2=thita0(2),Zgmb1=thita0(3),Zgmb2=thita0(4), Zgmc1=thita0(5),Zgmc2=thita0(6)

Uy1.txt uy2.txt uy3.txt

11.极大似然法:

%首先将TXT中的数据装载在Matlab中:

clear;clc;

Wbs = 0;

while Wbs<1

disp('从下列文件中选择所需加载文件:uy1.txt uy2.txt uy3.txt')

filename = input('输入所需打开文件名:\','s');

[Wbs,Message] = fopen(filename,'r');%打开文件;

end

Data = fscanf(Wbs,'%g %g',[2 inf]);%生成数据矩阵

Data = Data';

n = 2;L = length(Data);N = L-n;

U = Data(:,1);Y = Data(:,2);

mthita = zeros(3*n,1);%给被辨识参数矩阵赋初始值

%用最小二乘法求初始的被辨识参数矩阵

OL = [-Y(2:L-1),-Y(1:L-2),U(2:L-1),U(1:L-2)];

Z1 = Data(3:L,2);

thita = inv(OL'*OL)*OL'*Z1;

mthita(1:2*n,1) = thita;

%得到出之后,使用牛顿—拉布森极大似然法编程

E = zeros(L,1);J = 0;sgma0 = 1;

Ea1 = zeros(L,1);Ea2 = zeros(L,1);

Eb1 = zeros(L,1);Eb2 = zeros(L,1);

Ec1 = zeros(L,1);Ec2 = zeros(L,1);

%给J的梯度和Hassian矩阵赋初始值

Ethita = zeros(3*n,1);

fd = zeros(3*n,1);

Hassian = zeros(3*n,3*n);

for p = 1:500

Ja1 = mthita(1);Ja2 = mthita(2);Jb1 = mthita(3);Jb2 = mthita(4);Jc1 = mthita(5);Jc2 = mthita(6);

for i = n+1:L

y2(i) = -Ja1*Y(i-1)-Ja2*Y(i-2)+Jb1*U(i-1)+Jb2*U(i-2)+Jc1*E(i-1)+Jc2*E(i-2);

E(i) = Y(i)-y2(i);

J = 0.5*(E(i)^2);

sgma = (1/N)*(E(i)^2);

end

for j = n+1:1:L

Ea1(j) = Y(j-1)-[Jc1,Jc2]*[Ea1(j-1),Ea1(j-2)]'; Ea2(j) = Y(j-2)-[Jc1,Jc2]*[Ea2(j-1),Ea2(j-2)]';

Eb1(j) = -U(j-1)-[Jc1,Jc2]*[Eb1(j-1),Eb1(j-2)]';Eb2(j) = -U(j-2)-[Jc1,Jc2]*[Eb2(j-1),Eb2(j-2)]';

Ec1(j) = -E(j-1)-[Jc1,Jc2]*[Ec1(j-1),Ec1(j-2)]';Ec2(j) = -E(j-2)-[Jc1,Jc2]*[Ec2(j-1),Ec2(j-2)]';

Ethita = [Ea1(j),Ea2(j),Eb1(j),Eb2(j),Ec1(j),Ec2(j)];

fd = fd+E(j)*Ethita';%迭代计算J的梯度矩阵

Hassian = Hassian + Ethita'*Ethita;%迭代计算Hassian矩阵

end

%用牛顿-拉卜森法计算被辨识的参数的估值

mthita = mthita - inv(Hassian)*fd;

JFIA = (sgma-sgma0)/sgma0;

sgma0 = sgma;

%跳出迭代的判断

if JFIA<0.000000001 break

end

end

disp('极大似然法(牛顿-拉卜森方法),得到的结果为:')

Ja1 = mthita(1),Ja2 = mthita(2),Jb1 = mthita(3),Jb2 = mthita(4),Jc1 = mthita(5),Jc2 = mthita(6)

实验结果:

Uy1.txt uy2.txt uy3.txt

12.分析噪声)(k 特性:

RLS 法:当噪声比较小时,辨识精度较高;当噪声比较大时,收敛点可能

不唯一,参数估计值往往是有偏的;但是运用此方法时,数据要充分多,否则辨识精度明显下降;另外噪声模型阶次不宜过高,也会影响精度,所以误差的原因主要是数据量的大小以及噪声模型阶次。

IV 法:辨识效果较好,能适应较大的范围的噪声特性。对初值 P(0) 敏感,

可用LS 法起步,否则没有可靠的收敛性;对数据 u(k) 在 z(k) 的直流分量敏感,对z(k)的直流分量不敏感。所以误差的主要原因是初值P(0)以及数据计算过程产生的误差。 ELS 法:ELS 是极大似然法的一种近似形式,当数据长度较小时,辨识精 度可能优于极大似然法,但数据长度较大时,精度低于极大似然法。

第三题

以上题的结果为例,进行:(10分)

1. 分析比较各种方法估计的精度;

2. 分析其计算量;

3. 分析噪声方差的影响;

4. 比较白噪声和有色噪声对辨识的影响。

答:

1. 分析比较各种方法估计的精度;

最小二乘估计虽然不能满足量测方程中的每一个方程,使每个方程都有偏差,但它使所有方程偏差的平方和达到最小,兼顾了所有方程的近似程度,使整体误差达到最小。辅助变量法、最小二乘法、极大似然法对输入输出模型有相同的精度.

增广最小二乘法所得结果中b2误差较大;

辅助变量法辨识精度高于最小二乘法

夏氏法辨识精度较高;克服有偏估计。

2. 分析其计算量;

最小二乘估计计算量大、存储大;

增广最小二乘递推算法,扩充了最小二乘法的参数向量和数据向量的维数,把噪声模型的辨识同时考虑进去,所以计算量较大;

递推广义LS中的计算分为二部分:

第一部分:按递推LS法,随N增大不断计算参数所以计算量较大,

第二部分:在递推过程中,由于是变化的故而需要不断计算;

辅助变量法: (1) 计算与基本最小二乘估计同样简单;

(2) 辨识精度高于最小LS估计法;

(3) 是一种无偏估计方法;

(4) 参数估计时需构造辅助变量矩阵。

夏氏法:(1)无偏的估计方法;

(2)计算量较广义LS的要小许多;

(3)不需进行I/O数据的反复过滤,计算效率高;

(4)其递推算法可推广至MIMO系统,而广义LS 法则不行;

(5)是一种循环迭代方法,收敛速度较LS要慢;

(6)估计结果较好,可分为夏式修正法和夏式改良法两种

极大似然;计算量较小。

3. 分析噪声方差的影响;

噪声越大,对最小二乘法辨识效果影响较大,对于增广递推最小二乘法,抗噪声能力较强。

通过编程计算,获得在噪声方差比较小的情况下,各种方法所获得的估值比较理想,但随着噪声方差的增大,估值的偏差随之增大,横向比较看来夏式法与广义最小二乘法能够

更好地还原参数值,当观测值足够多时,各种方法都能很好地反映参数真实值。

4. 比较白噪声和有色噪声对辨识的影响。

由于所用的输出观测值有有色噪声成分和白噪声成分,所以辨识结果有误差,且用最小二乘法计算得到的参数估计误差较大。但是有色噪声误差明显大于白噪声。

系统辨识大作业1201张青

《系统辨识》大作业 学号:12051124 班级:自动化1班 姓名:张青 信息与控制工程学院自动化系 2015-07-11

第一题 模仿index2,搭建对象,由相关分析法,获得脉冲响应序列?()g k ,由? ()g k ,参照讲义, 获得系统的脉冲传递函数()G z 和传递函数()G s ;应用最小二乘辨识,获得脉冲响应序列? ()g k ;同图显示两种方法的辨识效果图;应用相关最小二乘法,拟合对象的差分方程模型;构建时变对象,用最小二乘法和带遗忘因子的最小二乘法,(可以用辨识工具箱) 辨识模型的参数,比较两种方法的辨识效果差异; 答:根据index2搭建结构框图: 相关分析法:利用结构框图得到UY 和tout 其中的U 就是题目中要求得出的M 序列,根据结构框图可知序列的周期是 1512124=-=-=n p N 。 在command window 中输入下列指令,既可以得到脉冲相应序列()g k :

aa=5;NNPP=15;ts=2; RR=ones(15)+eye(15); for i=15:-1:1 UU(16-i,:)=UY(16+i:30+i,1)'; end YY=[UY(31:45,2)]; GG=RR*UU*YY/[aa*aa*(NNPP+1)*ts]; plot(0:2:29,GG) hold on stem(0:2:29,GG,'filled') Grid;title('脉冲序列g(τ)') 最小二乘法建模的响应序列 由于是二阶水箱系统,可以假设系统的传递函数为2 21101)(s a s a s b b s G +++= ,已知)(τg ,求2110,,,a a b b

系统辨识研究生期末结课作业-中北大学-余红英老师

BP神经网络 (一)定义 误差反向传播的BP算法简称BP算法,其基本思想是梯度下降法。它采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差均方值为最小。 (二)BP网络特点 1)是一种多层网络,包括输入层、隐含层和输出层; 2)层与层之间采用全互连方式,同一层神经元之间不连接; 3)权值通过δ学习算法进行调节; 4)神经元激发函数为S函数; 5)学习算法由正向传播和反向传播组成; 6)层与层的连接是单向的,信息的传播是双向的。 (三)BP主要应用 回归预测(可以进行拟合,数据处理分析,事物预测,控制等)、分类识别(进行类型划分,模式识别等),但无论那种网络,什么方法,解决问题的精确度都无法打到100%的,但并不影响其使用,因为现实中很多复杂的问题,精确的解释是毫无意义的,有意义的解析必定会损失精度。 (四)BP网络各种算法的应用范围 1)Traingd:批梯度下降训练函数,沿网络性能参数的负梯度方向调整网络的权值和阈值;

2)Traingdm:动量批梯度下降函数,也是一种批处理的前馈神经网络训练方法,不但具有更快的收敛速度,而且引入了一个动量项,有效避免了局部最小问题在网络训练中出现; 3)Trainrp:有弹回的BP算法,用于消除梯度模值对网络训练带来的影响,提高训练的速度(主要通过delt_inc和delt_dec来实现权值的改变); 4)Trainlm:Levenberg-Marquardt算法,对于中等规模的BP神经网络有最快的收敛速度,是系统默认的算法.由于其避免了直接计算赫赛矩阵,从而减少了训练中的计算量,但需要较大内存量.; 5)traincgb:Plwell-Beale算法:通过判断前后梯度的正交性来决定权值和阈值的调整方向是否回到负梯度方向上来; 6)trainscg:比例共轭梯度算法:将模值信赖域算法与共轭梯度算法结合起来,减少用于调整方向时搜索网络的时间。 一般来说,traingd和traingdm是普通训练函数,而traingda,traingdx,traingd,trainrp,traincgf,traincgb,trainsc g,trainbgf等等都是快速训练函数.总体感觉就是训练时间的差别比较大,还带有精度的差异。 (五)实例及其仿真分析(BP网络底层代码的实现) 1)程序 %% 读入数据 xlsfile='student.xls'; [data,label]=getdata(xlsfile);

系统辨识之经典辨识法

系统辨识作业一 学院信息科学与工程学院专业控制科学与工程 班级控制二班 姓名 学号

2018 年 11 月 系统辨识 所谓辨识就是通过测取研究对象在认为输入作用的输出响应,或正常运行时 的输入输出数据记录,加以必要的数据处理和数学计算,估计出对象的数学模型。 辨识的内容主要包括四个方面: ①实验设计; ②模型结构辨识; ③模型参数辨识; ④模型检验。 辨识的一般步骤:根据辨识目的,利用先验知识,初步确定模型结构;采集 数据;然后进行模型参数和结构辨识;最终验证获得的最终模型。 根据辨识方法所涉及的模型形式来说,辨识方法可以分为两类:一类是非参 数模型辨识方法,另一类是参数模型辨识方法。 其中,非参数模型辨识方法又称为经典的辨识方法,它主要获得的是模型是 非参数模型。在假定过程是线性的前提下,不必事先确定模型的具体结构,广泛 适用于一些复杂的过程。经典辨识方法有很多,其中包括阶跃响应法、脉冲响应法、相关分析法和普分析法等等,本次实验所采用的辨识方法为阶跃响应法和脉 冲响应法。 1.阶跃响应法 阶跃响应法是一种常用非参数模型辨识方法。常用的方法有近似法、半对数法、切线法、两点法和面积法等。本次作业采用面积法求传递函数。 1.1面积法 ① 当系统的传递函数无零点时,即系统传递函数如下: G(S) = + ?11?1+?+ 1+1 (1-1) 系统的传递函数与微分方程存在着一一对应的关系,因此,可以通过求取 微分方程的系数来辨识系统的传递函数。在求得系统的放大倍数K后,要得到无 因次阶跃响应y(t)(设τ=0),其中y(t)用下式描述: () ?1 () (1-2) 面积法原则上可以求出n为任意阶的个系数。以n为3为例。有: 3() 2() () {| →∞ =| →∞ =| →∞ = 0 (1-3) ()| →∞ = 1

最优估计大作业1.

最优估计大作业 姓名:李海宝 学号:S314040186 导师:刘胜 专业:控制科学与工程

模糊逻辑卡尔曼滤波器在智能AUV导航系统中的自适应调 整 摘要 本论文基于全球定位系统(GPS)和几个惯性导航系统(INS)传感器描述了对于自主水下航行器(AUV)应用的一种智能导航系统的执行过程。本论文建议将简单卡尔曼滤波器(SKF)和扩展卡尔曼滤波器(EKF)一前一后地用于融合INS 传感器的数据并将它们与GPS数据结合到一起。传感器噪声特性里潜在的变化会引起SKF和EKF的初始统计假定的调整,本论文针对这一问题着重突出了模糊逻辑方法的使用。当这种算法包含实际传感器噪特性的时候,SKF和EKF只能维持他们的稳定性和性能,因此我们认为这种自适应机制同SKF与EKF一样有必要。此外,在提高导航系统的可靠性融合过程期间,故障检测和信号恢复算法也需在此要讨论。本论文建议的这种算法用于使真实的实验数据生效,这些数据都是从Plymouth大学和Cranfield大学所做的一系列AUV实验(运行低成本的锤头式AUV)中获得的。 关键词:自主水下航行器;导航;传感器融合;卡尔曼滤波器;扩展卡尔曼滤波器;模糊逻辑 1.引言 对于以科学、军事、商业为目的应用,如海洋勘察、搜索未爆弹药和电缆跟踪检查,AUV的发展需要相应导航系统的发展。这样的系统提供航行器位置和姿态的数据是很有必要的。在这样的系统中对精度的要求是最重要的:错误的位置和姿态数据会导致收集数据的一个毫无意义的解释,或者甚至AUV的一个灾难性故障。 越来越多来自整个世界的研究团队正利用INS和GPS来研发组合导航系统。然而,他们的工作中几乎都没有明确几个INS传感器融合的本质要求,这些传感器用于确保用户保持精度或甚至用来防止在与GPS融合之前导航系统这部分的完全失败。例如,金赛和惠特科姆(2003)使用一个切换机制来防止INS的完全失败。虽然这个方法简单易行,但是可能不适合用于维持一个确定的精度等级。 出于多传感器数据融合和集成的目的,几种估计方法在过去就已经被使用过。为此,SKF/EKF和它们的变形在过去就已经是流行的方法,并且一直到现在都对开发算法感兴趣。然而,在设计SKF/EKF过程中,一个显著的困难经常会被

系统辨识与自适应控制作业

系统辨识与自适应控制 学院: 专业: 学号: 姓名:

系统辨识与自适应控制作业 一、 对时变系统进行参数估计。 系统方程为:y(k)+a(k)y(k-1)=b(k)u(k-1)+e(k) 其中:e(k)为零均值噪声,a(k)= b(k)= 要求:1对定常系统(a=0.8,b=0.5)进行结构(阶数)确定和参数估计; 2对时变系统,λ取不同值(0.9——0.99)时对系统辨识结果和过程进行 比较、讨论 3对辨识结果必须进行残差检验 解:一(1): 分析:采用最小二乘法(LS ):最小二乘的思想就是寻找一个θ的估计值θ? , 使得各次测量的),1(m i Z i =与由估计θ? 确定的量测估计θ??i i H Z =之差的平方和最小,由于此方法兼顾了所有方程的近似程度,使整体误差达到最小,因而对抑制误差是有利的。在此,我应用批处理最小二乘法,收敛较快,易于理解,在系统参数估计应用中十分广泛。 作业程序: clear all; a=[1 0.8]'; b=[ 0.5]'; d=3; %对象参数 na=length(a)-1; nb=length(b)-1; %na 、nb 为A 、B 阶次 L=500; %数据长度 uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i) yk=zeros(na,1); %输出初值 x1=1; x2=1; x3=1; x4=0; S=1; %移位寄存器初值、方波初值 xi=randn(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); %产生逆M 序列 if IM==0 u(k)=-1; else u(k)=1; end S=not(S); M=xor(x3,x4); %产生M 序列

系统辨识作业2

系统辨识作业 学院: 专业: 姓名: 学号: 日期:

系统辨识作业: 以下图为仿真对象 图中,v(k)为服从N(0,1)正态分布的不相关随即噪声,输入信号采用循环周期Np>500的逆M 序列,幅值为1,选择辨识模型为: )()2()1()2()1()(2121k v k u b k u b k z a k z a k z +-+-=-+-+ 加权因子1)(=Λk ,数据长度L=500,初始条件取I P 610)0(= ,????????? ???=001.0001.0001.0)0(? θ 要求:(1)采用一次完成最小二乘法对系统进行辨识,给出数据u(k)和z(k), 及L H ,L Z 和θ 和)?(θ J 的值。 (2)采用递推最小二乘法进行辨识,要给出参数收敛曲线以及新息)(~k Z ,残差)(k ε,准则函数)(k J 随着递推次数K 的变化曲线。 (3)对仿真对象和辨识出的模型进行阶跃响应对比分析以检验辨识结果的实效。 1、一次完成法对系统进行辨识: 估计L T L L T L LS Z H H H 1)(?-=θ ,其中 []2121,,,b b a a LS =θ ????? ? ??????=L L Z Z Z Z 21 ????????????------------=????????? ???=)2()1()2()1()0()1()0()1()1()0()1() 0()()2()1(L u L u L z L z u u z z u u z z L h h h H L 一次完成算法对系统辨识的Matlab 程序见附录: 部分输入、输出数据如下,全部的输入输出数据用图1.1所示 输入数据u(k)=Columns 1 through 16 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0

系统辨识大作业论文Use

中南大学 系统辨识大作业 学院:信息科学与工程学院 专业:控制科学与工程 学生姓名:龚晓辉 学号:134611066 指导老师:韩华教授 完成时间:2014年6月

基于随机逼近算法的系统辨识设计 龚晓辉1, 2 1. 中南大学信息科学与工程学院,长沙410083 2. 轨道交通安全运行控制与通信研究所, 长沙410083 E-mail: csugxh@https://www.360docs.net/doc/0a4800335.html, 摘要:本文对系统辨识的基本原理和要素进行了详细阐述,介绍和分析了系统辨识中常用的最小二乘算法,极大似然法,神经网络算法和随机逼近算法。随机逼近算法只需利用输入输出的观测来辨识系统参数,在实际中有重要运用。本文对随机逼近算法进行了详细说明。同时,针对一个三阶系统设计了KW随机逼近算法进行了参数辨识,并且和递推最小二乘法进行了对比。实验证明在实际辨识过程中两种算法各有优缺点。 关键词: 系统辨识, 随机逼近法, 递推最小二乘法 1.引言 在我们所学的线性系统理论中,都是在系统模型已知的情况来设计控制率,使系统达到稳定性,准确性和快速性的要求。然而,在实际系统中,对象的模型往往是未知的。而且,非线性是普遍存在的,线性系统只是对非线性系统的一种近似。因此,了解对象准确的模型,对设计控制器及其重要。在一些实际对象中,如导弹,化学过程,生物规律,药物反应,以及社会经济等,这些对象使用机理分析法比较困难,但是通过使用辨识技术可以建立系统精确的模型,确定最优控制率[1]。如今,系统辨识技术已经在航空航天,海洋工程,生物学等各个领域获得了广泛运用。 2.系统辨识的基本思想与常用方法 辨识的目的是为了获得对象模型。对象的模型有多种表现形式,它包括直觉模型,图表模型,数学模型,解析模型,程序模型和语言模型。这些模型之间可以相互转换。我们在建立系统模型时,需要遵循目的性,实在性,可辨识性,悭吝性的基本原则。目的性指的是建模的目的要明确,实在性指的是模型的物理概念要明确。可辨识性指的是模型结构合理,输入信号持续激励,数据量充足。悭吝性指的是被辨识参数的个数要尽量少。 辨识对象模型要遵循上面的基本原则。它是将对象看成一个黑箱。从含有噪声的输入输出数据中,按照一个准则,运用辨识理论,从一组给定的模型中,确定一个与所测系统等价的模型,是现代控制理论的一个分支。系统辨识由数据、模型类和准则三要素组成。数据是由观测实体而得,它不是唯一的,受观测时间、观测目的、观测手段等影响。模型类就是模型结构,它也不是唯一的,受辨识目的、辨识方法等影响。而准则是辨识的优化目标,用来衡量模型接近实际系统的标准。它也不是唯一的,受辨识目的、辨识方法的影响。由于存在多种数据拟合

系统辨识与自适应控制论文

XXXXXXXXXX 系统辨识与自适应控制课程论文 题目:自适应控制综述与应用 课程名称:系统辨识与自适应控制 院系:自动化学院 专业:自动化 班级:自动化102 姓名: XXXXXX 学号: XXXXXXXXX 课程论文成绩: 任课教师: XXXXX 2013年 11 月 15 日

自适应控制综述与应用 一.前言 对于系统辨识与自适应控制这门课,前部分主要讲了系统辨识的经典方法(阶跃响应法、频率响应法、相关分析法)与现代方法(最小二乘法、随机逼近法、极大似然法、预报误差法)。对于系统辨识,简单的说就是数学建模,建立黑箱系统的输入输出关系;而其主要分为结构辨识(n)与参数辨识(a、b)这两个任务。 由于在课上刘老师对系统辨识部分讲的比较详细,在此不再赘述,下面讨论自适应控制部分的相关内容。 对于自适应控制的概念,我觉得具备以下特点的控制系统,可以称为自适应控制系统: 1、在线进行系统结构和参数辨识或系统性能指标的度量,以便得到系统当前状态的改变情况。 2、按一定的规律确定当前的控制策略。 3、在线修改控制器的参数或可调系统的输入信号。 二.自适应控制综述 1.常规控制系统与自适应控制系统比较 (1)控制器结构不同 在传统的控制理论与控制工程中,常规控制系统的结构主要由控制器、控制对象以及反馈控制回路组成。 而自适应控制系统主要由控制器、控制对象、自适应器及反馈控制回路和自适应控制回路组成。 (2)适用的对象与条件不同 传统的控制理论与控制工程中,当对象是线性定常、并且完全已知的时候,才能进行分析和控制器设计。无论采用频域方法,还是状态空间方法,对象一定是已知的。这类方法称为基于完全模型的方法。在模型能够精确地描述实际对象时,基于完全模型的控制方法可以进行各种分析、综合,并得到可靠、精确和满意的控制效果。 然而,有一些实际被控系统的数学模型是很难事先通过机理建模或离线系统辨识来确知的,或者它们的数学模型的某些参数或结构是处于变化之中的.对于这类事先难以确定数学模型的系统,通过事先整定好控制器参数的常规控制往往难以对付。 面对上述系统特性未知或经常处于变化之中而无法完全事先确定的情况,如何设计一个满意的控制系统,使得能主动适应这些特性未知或变化的情况,这就 是自适应控制所要研究解决的问题.自适应控制的基本思想是:在控制系统的运行过程中,系统本身不断地测量被控系统的状态、性能和参数,从而“认识”或“掌握”系统当前的运行指标并与期望的指标相比较,进而作出决策,来改变控制器的结构、参数或根据自适应规律来改变控制作用,以保证系统运行在某种意义下的最优或次优状态。按这种思想建立起来的控制系统就称为自适应控制系统。

自适应控制大作业

自适应控制结课作业 班级: 组员: 2016年1月

目录 1 遗忘因子递推最小二乘法 (1) 1.1最小二乘理论 (1) 1.2带遗忘因子的递推最小二乘法 (1) 1.2.1白噪声与白噪声序列 (1) 1.2.2遗忘因子递推最小二乘法 (2) 2.2仿真实例 (3) 2 广义最小方差自校正控制 (5) 2.1广义最小方差自校正控制 (5) 2.2仿真实例 (6) 3 参考模型自适应控制 (9) 3.1参考模型自适应控制 (9) 3.2仿真实例 (12) 3.2.1数值积分 (12) 3.2.2仿真结果 (12) 参考文献 (16)

1 遗忘因子递推最小二乘法 1.1最小二乘理论 最小二乘最早的想法是高斯在1795年预测行星和彗星运动轨道时提出来的,“未知量的最大可能的值是这样一个数值,它使各次实际观测和计算值之间的差值的平方乘以度量其精确度的数值以后的和为最小”。这一估计方法原理简单,不需要随机变量的任何统计特性,目前已经成为动态系统辨识的主要手段。最小二乘辨识方法使其能得到一个在最小方差意义上与实验数据最好拟合的数学模型。由最小二乘法获得的估计在一定条件下有最佳的统计特性,即统计结果是无偏的、一致的和有效的。 1.2带遗忘因子的递推最小二乘法 1.2.1白噪声与白噪声序列 系统辨识中所用到的数据通常含有噪声。从工程实际出发,这种噪声往往可以视为具有理想谱密度的平稳随机过程。白噪声是一种最简单的随机过程,是由一系列不相关的随机变量组成的理想化随机过程。白噪声的数学描述如下:如果随机过程()t ξ均值为0,自相关函数为2()σδτ,即 2()()R ξτσδτ= 式中,()δτ为单位脉冲函数(亦称为Dirac 函数),即 ,0 ()0,0τδττ∞=?=? ≠?,且-()1d δττ∞ ∞ =? 则称该随机过程为白噪声,其离散形式是白噪声序列。 如果随机序列{}()V k 均值为零,且两两互不相关,即对应的相关函数为: 2,0 ()[()()]0,0v n R n E v k v k n n σ?==+=?=? 则这种随机序列称为白噪声序列。其谱密度函数为常数2(2)σπ。白噪声序列的功率在π-到π的全频段内均匀分布。 建立系统的数学模型时,如果模型结构正确,则模型参数辨识的精度将直接依赖于输入信号,因此合理选用辨识输入信号是保证能否获得理想的辨识结果的

系统辨识

作业1 如图1.1所示一阶系统,系统传递函数为G(s)=1/(0.1s+1),如果采用M序列作为输入信号进行系统辨识,采用5级移位寄存器产生M序列作为输入信号,取M序列的时钟脉冲△=15ms,a=2辨识该系统的脉冲响应。并说明取5级移位寄存器合理与否。 图1.1 一阶RC系统 答: 1.解题步骤 1.初始化参数,设置模型参数,设置产生M序列的各个关键参数; 2.利用产生伪随机二进制序列信号的函数getPRBS产生M序列,并作为 系统输入; 3.通过系统模型,产生系统输出,并将输入输出画在同一图中; 4.计算系统输入输出相关函数R xy; 5.计算系统脉冲估计值ghat和系统真实脉冲输出g 2.程序清单 主程序 clc; close all; clear all; %% Initialization R = 100e3; % system initialization resistance=100k ohm C = 1e-6; % capacitance=1uf tc = R*C; % Time Constant % generate M-sequence n=5; a=2; % Level of the PRBS

del = 15e-3; % clock pulse period N=2^n-1; % Period of M sequence total=2*N; % Generate m-sequence using the 'getPRBS' function Out = getPRBS(n,a,del,total); % Generate response y(t) of the system s = tf('s'); G = 1/(tc*s+1); tf = total*del; tim = 0:del:tf-del; y = lsim(G, Out, tim); %plot input and output of the system figure stairs(tim,Out); axis([0 1.0 -2.5 2.5]); hold on plot(tim,y,'r'); hold off % Compute Rxy(i*del) sum = 0.0; Rxy = []; iDel_vec=[]; for i=1:N tau=i-1; iDel_vec=[iDel_vec;tau*del]; for j=1:N sum=sum+sign(Out(j))*y(j+tau); end Rxy_i = (a/N)*sum; sum=0.0; Rxy = [Rxy; tau Rxy_i]; end % Compute ghat & g ind = length(Rxy); C = -Rxy(ind, 2); S = (N+1)*a^2*del/N; Rxy_iDel = Rxy(:,2); ghat=(Rxy_iDel+ C )/S; ghat(1)=2*ghat(1); g = 10*exp(-10.*iDel_vec);

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 == ++++

系统辨识

系 统 辨 识 作 业 系统辨识作业: ?已知某系统为单输入/单输出系统,其测量噪声为有色噪声,分布未知。 现给出一个实验样本(如下表所示),求该系统模型。 说明: 可采用GLS ,ELS ,IV 等,要定阶,要比较仅用RLS 的计算结果 一、问题分析 在估计模型参数时需要已知模型的阶数,但是由于本系统模型阶数也是未知的,所以本系统需要先由输入/输出数据通过辩识得出系统的阶数。然后根据辨识的系统阶数再分析求解系统模型。 二、模型阶数的辨识 按照品质指标“残差平方总和”定阶,如高阶系统模型相应的系数为零,则可退化成相应的低阶系统即低阶模型可视为高阶模型的特例。理论上高阶模型的精度不低于低阶模型,但是考虑到计算机的舍入误差的影响,过高的阶数亦能引起模型精度的下降。一般说低阶模型描述粗糙,高阶模型精度高,但是代价亦大。根据逼近的观点,定阶往往是考虑多种因素的折衷。定阶一般是按照假设——检验的步骤进行的,检验过程中往往带有主观成分。 一般说来低阶模型描述粗糙,高阶模型精度高。残差平方总和J(n)是模型阶数的函数 在不同的模型阶数的假设下,参数估计得到的J(n)值亦不同。定阶的最简单办法是直接用J(n)。设模型阶数的“真值”为n 0 ,当n < n 0 时随着n 的增加,J(n)值将明显的下降;而当n ≥ n 0 时随着n 的增加,J(n)值变化将不显著。因此,由J(n)曲线随着n 的增加最后一次陡峭下降的n 值定做n 的估计值。用数理统计的检验方法,判断n 的增加使得J(n)值改善是否明显。 讨论如下 (1).当n=1时程序如下: clear u=zeros(100,1);%构造输入矩阵 z=zeros(100,1);%构造输出矩阵 u=[-0.93249 0.34935 0.76165 -0.9964 -0.38894 -0.12288 0.021565 -0.49555 -0.61624 -1.912 0.22207 -0.31231 -0.17866 -1.8356 -0.26472 1.7642 -1.0418 1.1146 -2.0856 0.8152 1.5094 -0.5822 0.61097 0.35521 2.5907 1.5843 -0.9603 -0.27341 0.39947 0.17493 -1.7451 0.8112 1.2645 1.5682 0.63959 -0.47757 0.99697 0.058774 -0.16174 -1.2928 -0.04722 0.73182 -0.19644 0.091783 -1.1908 -0.90716 0.85388 0.33836 0.74074 0.54181 0.15676 -0.50569 -0.17521 1.3255 -2.488 0.50261 -1.1533 0.36407 0.65283 -0.05983 ∑=-=N k T K k y n J 12 ) )(()(θ?

系统辨识大作业加学习心得

论文 系统辨识 姿态角控制 1.系统辨识概述 辨识、状态估计和控制理论是现代控制理论三个相互渗透的领域。辨识和状态估计离不开控制理论的支持,控制理论的应用又几乎不能没有辨识和状态估计技术。随着控制过程复杂性的提高,控制理论的应用日益广泛,但其实际应用不能脱离被控对象的数学模型。然而在大多数情况下,被控对象的数学模型是不知道的,或者在正常运行期间模型的参数可能发生变化,因此利用控制理论去解决实际问题时,首先需要建立被控对象的数学模型。系统辨识正是适应这一需要而形成的,他是现代控制理论中一个很活跃的分支。社会科学和自然科学领域已经投入相当多的人力去观察、研究有关的系统辨识问题。 系统辨识是建模的一种方法,不同的学科领域,对应着不同的数学模型。从某种意义上来说,不同学科的发展过程就是建立他的数学模型的过程。辨识问题可以归结为用一个模型来表示可观系统(或将要改造的系统)本质特征的一种演算,并用这个模型吧对客观系统的理解表示成有用的形式。当然可以刻有另外的描述,辨识有三个要素:

数据,模型类和准则。辨识就是按照一个准则在一组模型类中选择一个与数据拟合得最好的模型。总而言之,辨识的实质就是从一组模型类中选择一个模型,按照某种准则,使之能最好地拟合所关心的实际过程的静态或动态特性。 通过辨识建立数学模型的目的是估计表征系统行为的重要参数,建立一个能模仿真实系统行为的模型,用当前可测量的系统的输入和输出预测系统输出的未来演变,以及设计控制器。对系统进行分析的主要问题是根据输入时间函数和系统的特性来确定输出信号。对系统进行控制的主要问题是根据系统的特性设计控制输入,使输出满足预先规定的要求。而系统辨识所研究的问题恰好是这些问题的逆问题。通常,预先给定一个模型类{}M(即给定一类已知结构的模型),一类输入信号u和等价准则(,)JLyyM(一般情况下,J是误差函数,是过程输出y和模型输出yM的一个泛函);然后选择是误差函数J达到最小的模型,作为辨识所要求的结果。系统辨识包括两个方面:结构辨识和参数估计。在实际的辨识过程中,随着使用的方法不同,结构辨识和参数估计这两个方面并不是截然分开的,而是可以交织在一起进行的 一、控制对象 本文采用了控制不同电机转速组合的方法,对四轴旋翼蝶形飞行器进行姿态控制,使四旋翼蝶形飞行器在不同姿态下飞行时具有较好的性能。为了实现四轴旋翼蝶形飞行器的飞行控制,对飞行的控制系统进行了初步的设计,并给出了设计流程。同时利用matlab对四轴旋翼

系统辨识作业解析

PROBLEM:PROGRAMME TESTING Given the following SISO systems described by transfer-function containing 4 polynomials: 121212 12121212 11 1.50.71.0.511 1.50.711 1.50.72.0.510.21 1.50.7A q F q q q B q q q C q D q q q A q F q q q B q q q C q q q D q q q Input signal u(t) is the Maximum Length PRBS with amplitude 1a and trend 0.0001t u t t , other parmateres of M-PRBS will be determined by the examined-students. Disturbance e t is the Gaussian-distribution white noise with zero mean and variances ,Let 0.2and 1.2respectively. 1.For every system , generate input-output signals by means of MATLAB, select the data length L=1000. 2.Suppose ,now, you view the system a s a black-box ,you don ’t know anything about it including order and parameters. The unique information is just above data. Please identify the process model, B/F, based on the data and using MATLAB package. Take reference of the examples in the texbook 17.3 to get preliminary models, further models and final choice of model by proper identification method. https://www.360docs.net/doc/0a4800335.html,pare the obtained models with the true system(original transfer-function). Compare the models obtained under different conditions with each other. Note:The examined-student should give a clear procedure of solving problems and offer flow-chart,etc. e u(t) + y(t) B F C D

系统辨识最小二乘法大作业 (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 辨识的对象模型 假设有一理想数学模型,它的离散化方程如下式所示: () 1.8(1)0.3(2) 1.2(1)(2)()y k y k y k u k u k e k +-+-=-+-+ 式中,()e k 是服从正态分布的白噪声)1,0(N ,()k u 为系统输入,()k y 为系统输出。 现在输入信号采用4阶M 序列,其幅值为1。假设系统的模型阶次是已知的,即 1212()(1)(2)(1)( 2)()y k a y k a y k bu k b u k e k +-+-=-+-+。 下面采用递推最小二乘参数辨识。 2 递推最小二乘参数辨识方法 简单的最小二乘参数辨识一次性方法计算复杂,不能够进行在线辨识,而且 所需要的计算存储空间很大,而很多计算都是重复的计算。为了解决这个问题,并实现在线的实时辨识,引入递推的最小二乘参数辨识。 递推最小二乘参数辨识的整体思想是,最新辨识出来的参数是建立在上次辨识的参数基础上,根据最新得到的辨识数据,对辨识的参数添加了一个参数增量。下面利用数学语言对递推最小二乘参数辨识方法进行描述。 根据最小二乘原理,用N 次观测数据,得出参数向量θ的最小二乘估计l θ? 1()()T T N N N H H H Y N θ-= (1) 其中,?N θ表示根据N 次观测数据所得到的最小二乘值计量,下表N 表示该符号代表N 次观测数据构成的矩阵。 ()[(1),(2),...,()]T Y N y y y N = (2) N H =(0) .....(1)(0).....(1)(1).....(2)(1).....(2). .(1).....()(1).....()y y n u u n y y n u u n y N y N n u N u N n ----????----?? ???? ?? ??------?? (3)然后令1()T N N N P H H -=,且N P 是一方阵,它的维数取决于未知数的个数,而与观 测次数无关。则 1 1111T N N N N P P h h --+++??=+? ? (4) 式中1N h +表示第1N +次观测数据。 利用矩阵反演公式计算(4)式

系统辨识第五章作业

摘要 系统辨识是描述各种各样系统运动规律的一种方法论,是研究系统的一种有效工具。利用这个工具可以对我们要研究的系统进行定量描述。随着现代控制理论的迅速发展,系统辨识得到迅速而蓬勃发展,并已经成功运用与多种工程应用领域。但针对有色噪声干扰系统,传统的辨识方法不能得到良好的参数估计,而工程上大多系统都为有色噪声干扰系统。有色噪声干扰系统的一类系统为广义输出误差模型,本文对白噪声和有色噪声两种噪声干扰下运用最小二乘法,递推最小二乘法分别比较噪声的不同,以及进一步得出最小二乘法的适用性。进一步研究广义最小二乘法对有色噪声系统辨识的改进。 关键词:系统辨识;白噪声;有色噪声;最小二乘;递推最小二乘;广义最小二乘 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

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

系统辨识最小二乘法大作业 系统辨识大作业最小二乘法及其相关估值方法应用 学院:自动化学院 专业:信息工程 学号: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)

相关文档
最新文档