系统辨识之经典辨识法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统辨识作业一
学院信息科学与工程学院专业控制科学与工程
班级控制二班
姓名
学号
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)中的y(t)移至右边,在[0,t]上积分,得
2()
3
(1-4) 定义:
1
( ) = ∫0[1 − ()] (1-5) 由式
(1-3)条件可知,当t→∞时,
(1-6)
同理,定义
2
(1-7)
由式(1-,3)条件可知,当t→∞时,
(1-8)
因此,可得
( ) = ∫0[ −1( ) − −1()] dt (1-9)
= (∞) (1-10)
② 当系统的传递函数存在零点时,传递函数如下:
=k
G(s)
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) = 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
= 01−h*(t)(i 1)!−−t)i−1dt +tj−=20 A i−−j
101−h*(t)−j!t) j dt(1-13) (
根据A C i = i ,可得:+ −1 −1 + ⋯ + 1 + 1
= (+ −1 −1 + ⋯ + 1+ 1)(1 + ∑∞=1 )。比较上式两边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
a1 110 LL 0 00 0b M2 AA12(1-14)
a2 = A1
ML 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 ,为无零点的模型,利用
10+6.5+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: