系统辨识之经典辨识法

系统辨识之经典辨识法
系统辨识之经典辨识法

- --

系统辨识作业一

学院信息科学与工程学院专业控制科学与工程

班级控制二班

姓名

学号

2018 年 11 月

系统辨识

所谓辨识就是通过测取研究对象在认为输入作用的输出响应,或正常运行时的输入输出数据记录,加以必要的数据处理和数学计算,估计出对象的数学模型。

辨识的内容主要包括四个方面:

①实验设计;

②模型结构辨识;

③模型参数辨识;

④模型检验。

辨识的一般步骤:根据辨识目的,利用先验知识,初步确定模型结构;采集数据;然后进行模型参数和结构辨识;最终验证获得的最终模型。

根据辨识方法所涉及的模型形式来说,辨识方法可以分为两类:一类是非参数模型辨识方法,另一类是参数模型辨识方法。

其中,非参数模型辨识方法又称为经典的辨识方法,它主要获得的是模型是非参数模型。在假定过程是线性的前提下,不必事先确定模型的具体结构,广泛适用于一些复杂的过程。经典辨识方法有很多,其中包括阶跃响应法、脉冲响应法、相关分析法和普分析法等等,本次实验所采用的辨识方法为阶跃响应法和脉冲响应法。

1.阶跃响应法

阶跃响应法是一种常用非参数模型辨识方法。常用的方法有近似法、半对数法、切线法、两点法和面积法等。本次作业采用面积法求传递函数。

1.1面积法

①当系统的传递函数无零点时,即系统传递函数如下:

G(S) = a a a a+a a?1a a1?1+?+a1a+1

(1-1) 系统的传递函数与微分方程存在着一一对应的关系,因此,可以通过求取微分方程的系数来辨识系统的传递函数。在求得系统的放大倍数K后,要得到无因次阶跃响应y(t)(设τ=0),其中y(t)用下式描述:

a a a(a)a?1

(a)

a a aa aa aa (1-2) 面积法原则上可以求出n为任意阶

的个系数。以n为3为例。有:

a3a(a) a2a(a) aa(a)

{aa|a→∞ =aa|a→∞ =aa|a→∞ = 0 (1-3)

a(a)|a→∞ = 1

将式(1)中的y(t)移至右边,在

[0,t]上积分,得

a2a(a)

a3 aa aa (1-4) 定义:

a1(a) = ∫0a[1 ? a(a)]aa (1-5) 由式(1-3)条件可知,

当t→∞时,

a aa (1-6)

同理,定义

a2aa (1-7)

由式(1-,3)条件可知,当t→∞时,

a aa (1-8)

因此,可得

a a(a) = ∫0a[a a?1(a) ? a a?1a(a)] dt (1-9)

a a= a a(∞) (1-10)

②当系统的传递函数存在零点时,传递函数如下:

G(s)

=k

b s mmn +ba s mn-1-1s mn-1-1 ++LL ++a sbs11 +1+1,(n m)(1-11)

a s n +

其中,K h= ( ) / U0定

1

G(s)=K

P(s)

其中,

P(s) = b sa s n mn ++ba s mn-1-1s mn-1-1

++LL ++a sbs11 +1+1 = +1 i=1 C s i i(1-

12)m

根据[1?h*(t)]的Laplace变换,求出一阶面积A1,确定L[h(*1 t ]),并定义二

阶面积A2 ,以此类推,得到i 阶面积A i 。进一步利用e?st 拉氏变换,得到

L[1?h*(t ])=M s i i ,进而得到A i 的值:

i=0

A i = 01?h*(t) (i 1)!??t)i?1dt +tj?=20 A i??j 10

1?h*(t)(?j!t) j dt(1-13) (

根据A C i = i ,可得:a a a a+ a a?1a a?1 + ? + a1a + 1

= (a a a a+ a a?1a a?1 + ? + a1a + 1)(1 + ∑∞a=1 a a a a)。比较上式两边s的各次

幂,便可得到a, b, A之间的关系,如下:

b1 A n A n?1 L A n m? +1?1 A n+1

b2 A n+1 A n L A n m? +2

A n+2 =?

M L L L L M

b m A n m+ ?1 A n m+ ?2 L A n A n m+

b1

a1110 LL 0 00 0b M2 +AA12(1-14)

a2 = A1

M L L L L L M

b m A n

a n A n?1 A n?2 L A1 10

由此可知,根据式(1-12)、(1-13)、(1-14)便可得到辨识传递函数的参数a, b。

1.2实验过程1.

2.1无零点模型系统假设系统的传递函数模型为G(s) = 2 1 ,为无零点的模型,利用

10a+6.5a+1

Matlab 编程,分别在没有噪声和有噪声两种情况下进行辨识,比较辨识结果。

1.没有噪声时,程序如下:

clear;

%==================获得原传递函数方程

=======================% num=[1]; den=[10 6.5 1];

%=====================产生阶跃采样序列

======================% T=0.2; %采样周期

t=0:T:30; %采样时间 L=length(t); %数据长度

h=step(num,den,t); %原传递函数的阶跃响应

K=h(L) %系统增益

%======================面积法求解参数

======================% s1=0; for i=1:L s1=s1+(1-h(i))*T;

F(i)=s1; end a1=s1; s2=0;

for i=1:L s2=s2+(F(i)-

a1*h(i))*T; end a2=s2;

num1=[1]; den1=[a2 a1 1];

disp('原传递函数为:')

G1=tf(num,den)

disp('通过辨识得到的传递函数为:')

G2=tf(num1,den1)

%=============原传递函数和辨识函数的阶跃响应对比图=============% step(G1,'b-',G2,'r-.')

title('原系统与辨识后所得到系统阶跃响应对比') legend('原响应曲线','辨识响应曲线') (1)当采样周期T=0.2秒,采样时间t=30s时,行程序后得到原传递函数G1和辨识得到的传递函数G2如图1.1:

图1.1

原系统和辨识后系统的阶跃响应对比图如下:

图1.2

(2)

当采样周期T=0.2秒,采样时间t=50s时,行程序后得到原传递函数G1和辨识得到的传递函数G2如下:

图1.3

原系统和辨识后系统的阶跃响应对比图如下:

相关主题
相关文档
最新文档