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

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

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

系统辨识大作业最小二乘法及其相关估值方法应用

学院:自动化学院

专业:信息工程

学号: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)

(5.3.5) 于是

(5.3.6)

如果再获得1组新的观测值和,则又增加1个方程

(5.3.7)

式中

将式(5.3.1)和式(5.3.7)合并,并写成分块矩阵形式,可得

(5.3.8) 根据上式可得到新的参数估值

(5.3.9)

式中

根据矩阵求逆引理可以求得递推最小二乘法辨识公式

(5.3.19)

(5.3.20)

(5.3.21)

由于进行递推计算需要给出和初值和,通过计算证明,可以取初值:,,c是充分大的常数,为单位矩阵,则经过若干次递推之后能够得到较好的参数估计。

3. 辅助变量法

辅助变量法是一种可克服最小二乘有偏估计的一种方法,对于原辨识方程

(5.4.1)

当是不相关随机序列时,最小二乘法可以得到参数向量的一致无偏估计。但是,在实际应用中往往是相关随机序列。

假定存在着一个的矩阵满足约束条件

(5.4.2)

式中是非奇异的。用乘以式(5.4.1)等号两边得

(5.4.3) 由上式得

(5.4.4) 如果取

(5.4.5) 作为估值,则称为辅助变量估值,矩阵成为辅助变量矩阵,中的元素称为辅助变量。常用的辅助变量法有递推辅助变量参数估计法,自适应滤波法,纯滞后等。 4. 广义最小二乘法

广义最小二乘法是能克服最小二乘法有偏估计的另一种方法,这种方法计算比较复杂但效果比较好。

下面直接介绍广义最小二乘法的计算步骤:

(1)应用得到的输入和输出数据和,按模型

求出的最小二乘估计

(2)计算残差

(3)用残差代替,计算

(4)计算和

(5)应用得到的和按模型

用最小二乘法重新估计,得到的第2次估值。然后按步骤(2)计算残差,按步骤(3)重新估计,得到估值。再按照步骤(4)计算和,按照步骤(5)求的第3次估值。重复上述循环,之道的估值收敛为止。

5. 一种交替的广义最小二乘法求解技术(夏式法)

这种方法是夏天长提出来的,又称夏式法。以上讨论过的广义最小二乘法的特点在于系统的输入和输出信号反复过滤。一下介绍的夏式法是一种交替的广义最小二乘法求解技术,它不需要数据反复过滤,因而计算效率较高。这种方法可消去最小二乘估计中的偏差,而且由这种方法导出的计算方法也比较简单。

基于以上的几种方法,有

(5.7.1) 因而有

(5.7.2)

应用最小二乘法可得到参数估值

(5.7.3)

可以推出

(5.7.11)

上式中的第1项是最小二乘估计,第2项是偏差项,所以必须准确计算。

为了准确计算,可采用迭代的方法。

6. 专题解答

设但输入-单输出系统的差分方程为

取真实值,输入数据如下所示

k u(k) k u(k) k u(k)

1 1.147 11 -0.958 21 0.485

2 0.201 12 0.810 22 1.633

3 -0.787 13 -0.04

4 23 0.043

4 -1.159 14 0.947 24 1.326

5 -1.052 15 -1.474 25 1.706

6 0.866 16 -0.719 26 -0.340

7 1.152 17 -0.086 27 0.890

8 1.573 18 -1.099 28 1.144

9 0.626 19 1.450 29 1.177

10 0.433 20 1.151 30 -0.390

用的真实值利用查分方程求出作为测量值,为均值为0,方差为0.1,0.5的不相关随机序列。

(1) 用最小二乘法估计参数。

(2) 用递推最小二乘法估计。

(3) 用辅助变量法估计参数。

(4) 设,用广义最小二乘法估计参数。

(5) 用夏式法估计参数。

(6) 详细分析和比较所获得的参数辨识结果,并说明上述参数便是方法的优缺点。根据题目要求的解法,利用Matlab编程实现系统辨识的估值利用最小二乘法估计的结果如下:

最小二乘法

方差

0.0001 1.6280 0.7028 0.3971 3.449

1..6316 0.7059 0.3947 0.3494

1.6354 0.7120 0.3918 0.3463

1.6362 0.7082 0.3970 0.3527

1.6360 0.7165 0.3906 0.3534

1.6289 0.7046 0.3908 0.3437

0.001 1.1543 0.6766 0.4064 0.3304

1.5577 0.6371 0.3868 0.3249

1.6050 0.6860 0.3737 0.3244

1.6060 0.6816 0.3583 0.3167

1.6195 0.7030 0.3907 0.3366

1.5670 0.6572 0.3752 0.3140

0.01 1.3538 0.5010 0.3486 0.1709

0.8956 0.1637 0.4237 0.0697

1.0008 0.2036 0.4236 0.1268

1.3403 0.4707 0.3826 0.2615

1.0574 0.2289 0.3682 0.1317

1.1231 0.2963 0.3592 0.1506 0.1 1.1424 0.2710 0.3284 0.2216 1.0255 0.1736 0.3766 0.1844

0.8896 0.1109 0.3893 0.0813

0.8182 0.1114 0.4298 0.0923

0.8100 0.0153 0.4122 0.1352

0.7715 0.1311 0.4714 0.0640 0.5 0.9751 0.1017 0.0271 0.0792 0.8938 0.0740 0.3484 0.1634

0.1927 0.0197 0.3762 0.1521

0.5506 0.0392 0.6510 0.0584

0.7560 0.0494 0.3372 0.1437

0.9459 0.1377 0.3815 0.1853

部分程序运行结果

递推最小二乘法

方差 0.0001 1.6754 0.6787 0.5207 0.3924

1.3076 0.2900 0.0075 0.3284

1.5146 0.6963 1.1401 0.1639

1.5733 0.7782 0.4149 0.7110

1.1602 0.4753 0.6736 0.3159

1.2091 0.3192 0.5277 0.0275 0.001 1.4767 0.4040 0.2679 0.5512 1.6259 0.7594 0.3253 0.3780

1.5393 0.4757 0.1268 0.4346

1.1548 0.1700 0.1926 0.8251

0.8858 0.0760 0.3385 0.0406

1.4129 0.3127 0.0992 0.8380

0.01 1.3485 0.3445 0.3194 0.3710

1.1639 0.3296 0.7813 0.2162

1.9946 1.2323 1.4852 0.0304

1.3924 0.3543 0.3319 0.4572

1.3982 0.3608 0.7773 0.3152

1.6346 0.7229 0.5780 0.3947 0.1 1.5624 0.7132 0.4422 0.4112 1.7335 0.7152 0.0844 0.6399

1.4763 0.5366 0.3255 0.3116

1.4477 0.3489 0.2218 0.2265

1.6216 0.7082 0.6595 0.4275

1.5105 0.4000 0.0113 0.2213 0.5 1.7927 0.9411 0.2730 0.3471 1.5556 0.8877 0.5972 0.1217

1.7868 1.2538 1.1248 0.2100

1.5733 0.7434 0.3589 0.1387

1.3193 0.6084 1.2971 0.3029

1.5959 0.5386 0.0141 0.6947

部分程序运行结果:

辅助变量法

方差 0.0001 1.7799 0.8588 0.4147 0.4046

1.3076 0.2900 0.0075 0.3284

1.6735 0.7578 0.4060 0.3484

1.5812 0.6546 0.3771 0.3611

1.6657 0.7469 0.3772 0.3561

1.5281 0.6509 0.3645 0.3302 0.001 1.6295 0.6775 0.4082 0.3501 1.6425 0.7305 0.3937 0.3543

1.5595 0.6052 0.3563 0.3362

1.4145 0.4925 0.4021 0.2873

1.6371 0.7270 0.3681 0.3418

1.3539 0.4733 0.3906 0.2489

0.01 1.3451 0.4700 0.3822 0.2680

1.3657 0.4893 0.4349 0.2496

1.3702 0.5009 0.4388 0.2611

1.1884 0.3707 0.3457 0.1521

1.3636 0.5330 0.4135 0.2064

1.3158 0.4836 0.4562 0.2169 0.1 1.5545 0.6167 0.4104 0.3512 1.5900 0.6648 0.4098 0.3664

1.6610 0.7029 0.4001 0.3495

1.5104 0.6014 0.3968 0.3256

1.5620 0.6496 0.3950 0.3097

1.4418 0.5706 0.4183 0.2783 0.5 1.4952 0.5704 0.3769 0.3483 1.5592 0.6541 0.4387 0.3330

1.3637 0.5302 0.3865 0.1916

1.5543 0.6324 0.3208 0.2929

1.5385 0.5994 0.3661 0.3576

1.3511 0.4839 0.3412 0.2208

部分程序运行结果:

广义最小二乘法

方差 0.0001 1.6451 0.7182 0.3895 0.3503

1.6468 0.7205 0.3866 0.3492

1.6308 0.7038 0.3852 0.3457

1.6467 0.7188 0.3898 0.3544

1.6411 0.7156 0.3898 0.3477

1.6441 0.7185 0.3896 0.3488 0.001 1.7027 0.7678 0.4059 0.3761 1.6477 0.7166 0.3973 0.3643

1.6391 0.7113 0.3836 0.3504

1.6586 0.7166 0.3791 0.3672

1.6831 0.7472 0.3994 0.3731

1.5964 0.6850 0.3655 0.3231

0.01 1.6826 0.7469 0.3859 0.3600

1.7245 0.7696 0.3565 0.3642

1.6577 0.7186 0.3910 0.3820

1.6656 0.7263 0.3425 0.3413

1.6903 0.7392 0.3633 0.3838

1.6942 0.7439 0.3834 0.3880 0.1 0.8996 0.1515 0.4435 0.0604 1.0380 0.3044 0.3410 0.0464

1.6571 0.6569 0.4589 0.4259

1.2180 0.4584 0.3152 0.1030

0.1957 0.0974 0.2164 0.1035

1.6859 0.7232 0.4144 0.4404 0.5 1.4053 0.6703 0.3672 0.1372 1.5783 0.6148 0.3512 0.4173

1.0233 0.0658 0.2035 0.4060

1.5973 0.8103 0.3544 0.2131

1.6191 0.6709 0.3111 0.4866

1.0804 0.2210 0.7500 0.5185

部分程序运行结果:

夏式法

方差

1.6367 0.7090 0.3910 0.3511 0.0001

1.6451 0.7184 0.3876 0.3472

1.3618 0.2159 0.8205 0.5851

1.6291 0.7075 0.3911 0.3464

1.6173 0.6929 0.3955 0.3439

1.6307 0.7066 0.3912 0.3449 0.001 1.5314 0.6407 0.4016 0.3092 1.5632 0.6575 0.4204 0.3319

1.6172 0.6946 0.3925 0.3258

1.5670 0.6489 0.4016 0.3233

1.5326 0.6243 0.3995 0.3070

1.6251 0.6946 0.3621 0.3360

0.01 0.8815 0.1089 0.3734 0.0440

1.3763 0.4972 0.4121 0.2654

1.5027 0.5952 0.3854 0.3277

1.3421 0.4268 0.3978 0.2790

1.2454 0.3024 0.3669 0.2525

1.3361 0.4741 0.4999 0.2900

0.1 0.6639 0.1074 0.6847 0.0827

1.1406 0.3154 0.4259 0.2367

0.1791 0.2916 0.9454 0.2126

1.2068 0.3827 0.7460 0.3220

0.6412 0.0704 0.5802 0.0877

1.0384 0.2878 0.7493 0.3793

0.9330 0.0752 0.9741 0.5882 0.5

0.6291 0.1686 0.4679 0.7869

0.5986 0.2792 0.2605 0.2008

0.4441 0.8033 0.7442 1.7667

0.6216 0.1440 0.5821 0.4906

0.6576 0.0999 1.0002 0.0263

部分程序运行结果:

结论:通过编程计算,获得在噪声方差比较小的情况下,各种方法所获得的估值比较理想,但随着噪声方差的增大,估值的偏差随之增大,横向比较看来夏式法与广义最小二乘法能够更好地还原参数值,当观测值足够多时,各种方法都能很好地反映参数真实值。 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);

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(2 6

);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);

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

c0=[0.001 0.001 0.001 0.001]'; %直接给出被辨识参数的初始值,即一个充分小的实向量

p0=10^6*eye(4,4); %直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005; %取相对误差E=0.000000005

c=[c0,zeros(4,30)]; %被辨识参数矩阵的初始值及大小

e=zeros(4,30); %相对误差的初始值及大小

for k=3:30; %开始求K

h1=[-z(k-1),-z(k-2),u(k-1),u(k-2)]';

x=h1'*p0*h1+1; x1=inv(x); %开始求K(k)

k1=p0*h1*x1;%求出K的值

d1=z(k)-h1'*c0; c1=c0+k1*d1; %求被辨识参数c

e1=c1-c0; %求参数当前值与上一次的值的差值

e2=e1./c0; %求参数的相对变化

e(:,k)=e2; %把当前相对变化的列向量加入误差矩阵的最后一列c0=c1; %新获得的参数作为下一次递推的旧参数

c(:,k)=c1; %把辨识参数c 列向量加入辨识参数矩阵的最后一列p1=p0-k1*k1'*[h1'*p0*h1+1]; %求出 p(k)的值

p0=p1; %给下次用

if e2<=E

break; %如果参数收敛情况满足要求,终止计算

end

end

%display('方差为0.0001递推最小二乘法辨识后的结果是:'); a1=c(1,:);

a2=c(2,:);

b1=c(3,:);

b2=c(4,:);

%display('a1,a2,b1,b2经过递推最小二乘法辨识的结果是:'); for i=3:31;

if(c(1,i)==0)

q1=c(1,i-1);

break;

end

end

for i=3:31;

if(c(2,i)==0)

q2=c(2,i-1);

break;

end

end

for i=3:31;

if(c(3,i)==0)

q3=c(3,i-1);

break;

end

end

for i=3:31;

if(c(4,i)==0)

q4=c(4,i-1);

break;

end

end

a1=q1;

a2=q2;

b1=q3 ;

b2=q4;

%clear

%辅助变量递推最小二乘法估计

na=2;

nb=2;

siitt=[1.642 0.715 0.39 0.35]';

siit0=0.001*eye(na+nb,1);

p=10^6*eye(na+nb);

siit(:,1)=siit0;

y(2)=0;y(1)=0;

x(1)=0;x(2)=0;

j=0;

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.01), 1, 31);

for k=3:31;

h=[-y(k-1),-y(k-2),u(k-1),u(k-2)]';

5*n(k-2); y(k)=h'*siitt+n(k)+1.642*n(k-1)+0.71

hx=[-x(k-1),-x(k-2),u(k-1),u(k-2)]';

kk=p*hx/(h'*p*hx+1);

p=[eye(na+nb)-kk*h']*p;

siit(:,k-1)=siit0+kk*[y(k)-h'*siit0];

x(k)=hx'*siit(:,k-1);

j=j+(y(k)-h'*[1.642 0.715 0.39 0.35]')^2;

e=max(abs((siit(:,k-1)-siit0)./siit0));

ess(:,k-2)=siit(:,k-1)-siitt;

siit0=siit(:,k-1); end

a1=siit0(1);

a2=siit0(2);

b1=siit0(3);

b2=siit0(4);

clear

%广义最小二乘估计

clear;

nn = normrnd(0,sqrt(0.5),1,31)';

uk=[1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.626 0.433 -0.958 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 1.144 1.177 -0.390];

yk(1)=0;

yk(2)=0;

for i=1:29;

yk(i+2)=-1.642*yk(i+1)-0.715*yk(i)+0.39*uk(i+1)+0.35*uk(i)+nn(i+2)+1.

642*nn(i+1)+0.715*nn(i);

end;

for i=1:29;

A(i,:)=[-yk(i+1) -yk(i) uk(i+1) uk(i)]; end

siit=inv(A'*A)*A'*(yk(3:31)+nn(2:30)')';

e(1)=yk(1);

e(2)=yk(2)+siit(1)*yk(1)-siit(3)*uk(1); for i=3:31;

e(i)=yk(i)+siit(1)*yk(i-1)+siit(2)*yk(i-2)-siit(3)*uk(i-1)-

siit(4)*uk

系统辨识大作业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

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

最小二乘法在系统辨识中的应用 王文进 控制科学与控制工程学院 控制理论与控制工程专业 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为水泥的几种成分。

系统辨识之经典辨识法

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

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过程中,一个显著的困难经常会被

系统辨识-最小二乘法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];

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

系统辨识最小二乘参数估计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年提出:“未知量的最大可能值是这样一个数值,它使各次实际观测值和计算值之间的差值的平方乘以度量其精度的数值以后的和最小。”这就是最小二乘法的最早思想。 最小二乘辨识方法提供一个估算方法,使之能得到一个在最小方差意义上与实验数据最

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

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对四轴旋翼

系统辨识之最小二乘法

方法一、最小二乘一次性算法: 首先对最小二乘法的一次性辨识算法做简要介绍如下: 过程的黑箱模型如图所示: 其中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 系统辨识的方法 经典方法: 经典的系统辨识方法的发展已经比较成熟和完善,他包括阶跃响应法、脉冲

系统辨识作业解析

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/583788915.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

相关文档
最新文档