范文一:系统辨识
系统辨识
system identification
根据系统的输入输出时间函数来确定描述系统行为的数学模型。 现代控 制理论中的一个分支。通过辨识建立数学模型的目的是估计表征系统行为 的重要参数,建立一个能模仿真实系统行为的模型,用当前可测量的系统 的输入和输出预测系统输出的未来演变,以及设计控制器。对系统进行分 析的主要问题是根据输入时间函数和系统的特性来确定输出信号。对系统 进行控制的主要问题是根据系统的特性设计控制输入,使输出满足预先规 定的要求。而系统辨识所研究的问题恰好是这些问题的逆问题。通常,预 先给定一个模型类μ={M }(即给定一类已知结构的模型),一类输入信 号 u 和等价准则 J =L(y, yM)(一般情况下, J 是误差函数,是过程输出 y 和模型输出 yM 的一个泛函 ) ;然后选择使误差函数 J 达到最小的模型,作 为辨识所要求的结果。系统辨识包括两个方面:结构辨识和参数估计。在 实际的辨识过程中,随着使用的方法不同,结构辨识和参数估计这两个方 面并不是截然分开的,而是可以交织在一起进行的。
辨识的基本步骤为:①先验知识和建模目的的依据。先验知识指关于 系统运动规律、数据以及其他方面的已有知识。这些知识对选择模型结构、 设计实验和决定辨识方法等都有重要作用。用于不同目的的模型可能会有 很大差别。②实验设计。辨识是从实验数据中提取有关系统信息的过程, 设计实验的目标之一是要使所得到的数据能包含系统更多的信息。主要包 括输入信号设计,采样区间设计,预采样滤波器设计等。③结构辨识。即 选择模型类中的数学模型 M 的具体表达形式。除线性系统的结构可通过输 入输出数据进行辨识外 ,一般的模型结构主要通过先验知识获得。④参数 估计。知道模型的结构后,用输入输出数据确定模型中的未知参数。实际 测量都是有误差的,所以参数估计以统计方法为主。⑤模型适用性检验。 造成模型不适用主要有三方面原因:模型结构选择不当;实验数据误差过
大或数据代表性太差;辨识算法存在问题。检验方法主要有利用先验知识 检验和利用数据检验两类。
凡是需要通过实验数据确定数学模型和估计参数的场合都要利用辨识 技术,辨识技术已经推广到工程和非工程的许多领域,如化学化工过程、 核反应堆、电力系统、航空航天飞行器、生物医学系统、社会经济系统、 环境系统、生态系统等。适应控制系统则是辨识与控制相结合的一个范例, 也是辨识在控制系统中的应用。
范文二:系统辨识
南京邮电大学
毕 业 设 计(论 文) 题 目
专 业
学生姓名
班级学号
指导教师
评阅教师
指导单位
输出误差系统辨识算法实现 自动化 徐鹏鹏 B10050125 丁洁 自动化学院
年 月 日至 年 月 日 日期:
毕业设计(论文)原创性声明
本人郑重声明:所提交的毕业设计(论文),是本人在导师指导下,独立进行研究工作所取得的成果。除文中已注明引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。对本研究做出过重要贡献的个人和集体,均已在文中以明确方式标明并表示了谢意。
论文作者签名:
日期: 年 月 日
摘 要
系统辨识技术的发展迅速,是通过数代人的共同以及不懈努力,从一开始的简单线性模型和含噪声干扰模型的辨识,发展到如今的非线性,多率以及时变等复杂系统辨识算法和收敛性的研究。新型的辨识方法不断提出,为系统辨识这门科学不断注入新活力,开拓出适用于它自身的更多新的应用领域。
含有有色噪声干扰的输出误差类系统模型在随机系统模型中有典型的代表性。本文研究的是在有色噪声干扰下的输出误差类系统模型的辨识问题,推导相关算法并进行仿真。
关键词:输出误差模型;系统辨识;有色噪声;随机系统
ABSTRACT
The magnetic coupling resonant technology is a kind of mid-distance high-efficiency wireless power transmission technology, which has the advantage of high transmission efficiency and low condition requirement compared with the traditional technique of wireless energy transmission. So far, the domestic research is still in the exploration stage.
This paper establishes a system model which is based on magnetic coupling resonant wireless power transmission by basic experimental verification. This topic chooses the appropriate parameter by the magnetic coupling resonant wireless power transmission mechanism analysis and formula deduction. Then the hardware circuit is designed to drive the transmitting coil and the magnetic coupling resonant wireless power transmission experiment device is built. This device includes a switch driving circuit, the square wave generating circuit, enhancer and harmonic receiving circuit. The experiments validate the effectiveness of the magnetic coupling energy transmission and then the impact of resonant frequency and distance on the transmission power in the control variable method is analyzed.
Keywords :wireless power transmission; magnetic coupling; resonance; efficiency;
mutual induction
ABSTRACT . ................................................................... 4
第一章 绪论 . ............................................................... 1
1.1 课题背景 ............................................................ 1
1.2 课题研究的目的与意义 ............................... 错误!未定义书签。
1.3 系统辨识 ............................................................ 2
1.4 课题研究基本思路 .................................................... 3
1.5 论文章节安排 ....................................... 错误!未定义书签。
第二章 辨识的基本模型和方法 . ............................................... 5
2.1 辨识的基本模型 ...................................................... 5
2.2 辨识的基本方法 ...................................................... 9
2.3 辨识的基本问题 ...................................................... 9
2.4 .................................................... 错误!未定义书签。
2.5 .................................................... 错误!未定义书签。
2.6 本章小结 ........................................................... 10
第三章 输出误差系统的辨识 . ................................................ 11
3.1 引言 ............................................................... 11
3.2 输出误差系统模型的推导 ............................................. 11
3.3 输出误差系统的辨识算法 ............................................. 13
3.4 算法仿真与比较 ..................................... 错误!未定义书签。
3.5 本章小结 ........................................................... 19
第四章 总结与展望 . ........................................................ 20
4.1 工作总结 ........................................................... 20
4.2 展望 ............................................................... 20
4.3 .................................................... 错误!未定义书签。
4.4 小结 ............................................... 错误!未定义书签。
致 谢 . .................................................................... 21
参考文献 . .................................................................. 22
第一章 绪论
1.1研究目的与意义
系统辨识,就是对一个系统进行建模和辨识。系统一般是由一个数学模型通过输入输出的关系来描述的,而这个模型必定有其特定的结构和参数,因此,系统辨识包含了系统结构辨识和系统的参数估计[1]。
系统辨识在现代控制理论中占据非常重要的地位,是研究系统特性的有效方法之一。系统辨识是以控制论,随机过程及数理统计为基础而发展起来的一门学科。系统辨识既可以为自适应控制系统的分析、设计、仿真以及诊断等提供必要模型,也可以用于对社会经济系统做出分析、预测等的建模。简而言之,凡是需要通过实验数据确定估计参数和数学模型的问题或场合,都可以用系统辨识方法来解决。但是需要了解的是,建立的模型只是在一定准则下近似于对象的输入输出特性,其精确度取决于人们对该对象的认识深浅,对数据集合性质的了解以及所用的辨识方法是否合适。
从函数的角度来理解系统辨识:已知一个系统的输入为u (t ) ,输出为y (t ) ,那么系统辨识就是求系统的传递函数G (s ) ,也就是通过收集系统的各项数据,即输入输出,来确定系统的数学模型:
G (s ) Y (s ) (1.1) U (s )
如今,系统辨识已经广泛应用于工程、非工程的各大领域,例如人工智能、化工生物、航空航天等。对于研究系统辨识和推进系统辨识的发展,关系到我国科技实力的发展。其具体意义,可以从以下几点说明:
1.估计具有特定物理意义的参数:有些表征系统的行为参数,是很难进行直接的测量的,比如在生理、生态、环境、经济等领域的系统就常有这种情况。这时就需要通过系统辨识来对系统输入输出数据进行观测,并对参数进行估计。
2.仿真:仿真的核心目的是要求建立一个能够模仿真实系统行为的模型。仿真模型在不同的领域有不同的要求。对于系统分析,需要其能真实反映系统的特性。对于系统设计,则重点在于设计参数能正确地符合它本身的物理意义。
3.预测:预测是系统辨识应用的一个重要意义,其目的是用迄今为止测量出的系统的输入和输出去预测系统输出的未来的演变。例如最常见的天气预报,洪水预报,甚至于对市场价格的预测,也是通过系统辨识来实现的。
4. 控制:解决控制问题的基础就是系统辨识。设计控制系统就首先需要知道描述该系统的动态特性的数学模型,而建立这些模型的目的就在于设计控制器。
1.2研究现状
系统辨识起源于上世纪中期。在20世纪60年代的第一届国际自动控制联合会(IFAC )上就开始了系统辨识和参数估计的讨论会,并从此以后每三年一届,历届均吸引了大量资深工程师和科学家前来参加。随着对系统辨识研究的不断深入,以及其在控制技术,例如生物医学、航空航天、人工智能等领域的广泛应用,它已经密切关系到我国的科技实力的提高。同时,如今解决各类问题的系统辨识方法众多,但是其缺点都比较明显,即在其针对性强的同时,适用面过去狭窄,只适合解决一些简单的辨识问题。如果要解决复杂的辨识问题,其辨识精度还有待提高。我们几乎不可能找到一个统一的方法来解决所有的辨识问题,尤其是不确定性的复杂系统辨识。因此我们需要分门别类的去进行研究,将经典的辨识方法理论逐步完善,同时结合其他学科并形成与之相关的辨识方法,使之成为综合性的理论科学。这将是系统辨识未来的趋势。
1、系统辨识的研究现状
经典系统辨识方法已经发展的比较成熟和完善,其中包括了最小二乘法,极大似然法,脉冲相应法,阶跃响应法等等,其中的最小二乘法是其最基本以及运用最为广泛的方法,但是该算法是非一致的,其结果是有偏差的,而为了克服这些缺陷,慢慢形成了许多以其为基础的算法,如增广最小二乘法,广义最小二乘法,辅助模型最小二乘法等。
随着人类科学的进步,实际的系统也基本都演变为具有不确定性的复杂系统,因此经典的辨识方法的不足也越来越明显:
(1)最小二乘法往往需要输入信号已知,而且需要较丰富的变化,但是,这些在一些 动态系统中,往往无法得到保证。
(2)极大似然辨识方法的计算量较大,且可能得到的为损失函数局部最小值。
(3)经典辨识方法对于实际的一些复杂系统在某些情况下往往无能为力。
因此,近年来也渐渐涌现出一些现代系统辨识方法。
(1)子空间辨识方法[11]:该方法出现在90年代末,是解决确定多输入多输出的系统模型的有效方法之一。其研究成果一般出现在信号处理与控制领域。同时在航空领域等的应用也有非常不错的效果。近几年还应用在一些结构模态的参数辨识。该算法不需要确定很多系统的先验知识,而只需要确定系统的阶次,就可辨识系统的参数,并且阶次可以在辨识的过程中得到。另外,该方法不需要引入非线性的运算和迭代过程,过程简单而有效。
(2)偏差补偿最小二乘法:上文描述过最小二乘法得到的结果往往是有偏的,而偏差
补偿法就是为了避免经典最小二乘法的缺点,并针对其就有色噪声无法给出无偏一致估计而提出的辨识方法之一。
2、输出误差系统辨识方法的研究现状
输出误差系统作为一类工业过程中常见的系统,其辨识方法可以选择经典的最小二乘
估计算法[5 7]、梯度估计算法[8]、贝叶斯辨识方法(Bayesian identification method )[9]、最小均方估计算法、随机逼近估计算法[16]、极大似然辨识算法[10]等。
(1)最小二乘辨识算法:这是一种基本的参数估计方法,由德国数学家高斯于18世纪末首先提出,并广泛应用于系统辨识领域。该算法的准则函数必须采用模型输出和系统输出的误差平方和。该算法在系统辨识领域中是最基本的一种算法。它既可以用于动态系统辨识,也可以用于静态系统辨识;既可以用于离线估计[17],也可以用于在线估计;既可以用于线性系统,也可以用于非线性系统;既可以用于迭代算法,也可以用于递推算法。
针对不同的用途,有不同的最小二乘算法。例如对于方程误差类模型,可以使用递推最小二乘辨识算法。对于输出误差类模型,为了提高系统辨识精度,可以使用多新息最小二乘辨识算法和最小二乘迭代辨识算法。为了降低计算量,可以使用递推最小二乘辨识算法和递推最小二乘迭代辨识算法。
(2)梯度辨识方法:该算法的特点是算法中没有协方差矩阵,和最小二乘辨识算法相比,该算法的计算量更小,它的准则函数既可以采用模型输出和系统输出的误差的平方,也可以采用模型输出和系统输出误差的平方和。
梯度辨识方法是使用最速下降法[18],沿着准则函数负梯度的方向搜索参数估计,只能以迭代或递推的方式实现。
以上两种方法对于确定性系统的辨识以及方程误差类系统的辨识效果较好,而对于输出误差类系统辨识存在冗余,以及收敛性能较差等问题。
1.4 课题研究基本思路和章节安排
本课题拟针对一类输出误差系统,见图1.1。针对其不可测的中间变量,借助辅助模型,进行辨识。其基本思想是利用可测数据,构造一个辅助模型,用辅助模型的输出量代替系统的不可测变量。该方法是估计输出误差类系统的一种有效方法,主要是针对辨识模型信息向量的未知项而提出的。
图1.1 一类输出误差系统
输出误差辨识方法还可以结合最小二乘辨识算法、梯度辨识方法、多新息辨识方法、递阶辨识方法等,进行算法上的优化。总体方案拟分为三个步骤:
1、构建辅助模型;
2、推导辨识模型;
3、进行系统仿真和算法性能分析。
论文具体章节内容安排如下:
第二章介绍了辨识的基本模型和方法。
第三章根据输出误差系统进行推导并提出辨识算法和仿真。
第四章对输出误差系统辨识算法进行了总结与展望。
第二章 辨识的基本模型和方法
2.1 系统的数学表达
系统可分为确定性系统和随机系统[2]。当一些干扰噪声项被加到确定性系统中上,就构成了随机系统。随机系统,可以分为确定性部分和干扰部分,即系统和噪声项。
随机系统可分为以下几类用以下几类数学模型表达[3]:
1. 时间序列模型:该模型可分为三类:自回归模型,滑动平均模型和自回归滑动平均模型:
(1):自回归模型,简称AR 模型:
A (z ) y (t ) =v (t )
其特征为方程的一边为白噪声,差分方程为:
y (t ) +a 1y (t -1) +a 2y (t -2) +???+a n a y (t -n a ) =v (t )
(2):滑动平均模型,简称MA 模型:
y (t ) =D (z ) v (t )
其特征为方程的一边为观测项y (t ) ,差分方程为:
y (t ) =v (t ) +d 1v (t -1) +d 2v (t -2) +???+d n d v (t -n d )
(3):自回归滑动平均模型,简称ARMA 模型:
A (z ) y (t ) =D (z ) v (t )
差分方程为:
y (t ) +a 1y (t -1) +a 2y (t -2) +???+a n a y (t -n a ) =
v (t ) +d 1v (t -1) +d 2v (t -2) +???+d n d v (t -n d )
2. 方程误差类模型:该模型是在ARMA 模型的基础上,加入干扰噪声项e (t ) ,从 而得到的一类随机系统模型。用公式表示为:
A (z ) y (t ) =B (z ) u (t ) +e (t ) (2.1)
即 y (t ) =B (z ) u (t ) e (t ) + A (z ) A (z )
其中多项式B (z ) 、A (z ) 的根即为系统零、极点。
图2.1 方程误差类模型
由图2.1可以看出,噪声仅通过了系统的极点,即A (z ) ,而没有通过系统的零点,即
B (z ) ,即达到输出端。这在现实工业工程中的系统里是几乎无法实现的。此外,方程误差
类模型的实现往往还需要增加系统的阶次来提高系统辨识的精度。
这类模型的特征是其中包含项A (z ) y (t ) =B (z ) u (t ) 。
3. 输出误差类模型[4]:当e (t ) 为有色噪声或者白色噪声时,我们把模型称为输出误 差类模型。
y (t ) =
B (z )
u (t ) +e (t ) (2.2) A (z )
在现实工业环境中,输出误差类模型往往比方程误差类模型更适合来描述实际系统。因此,较易满足条件且待辨识参数较少的输出误差类模型经常被用于实际系统中。
图2.2 输出误差类系统
该模型的特征是含有项
B (z )
u (t ) 。 A (z )
2.2 辨识的基本模型
辨识模型,是为了辨识系统的参数,将系统的参数写成一个参数向量的形式,将系统的输入输出写成一个信息向量形式而得到的,也可以成为辨识表达式。
一般情况的单输入单输出线性系统[12]辨识模型可以表示为:
y (t ) =?T (t ) θ+v (t ) (2.3) 其中y (t ) 为系统输出,v (t ) 为随机干扰噪声,y (t ), v (t ) ∈R ,?(t ) =[?1(t ), ?2(t ), ???, ?n (t )]T ∈R n 是由系统的输入输出的数据写成的信息向量,
θ=[θ1, θ2, ???, θn ]T ∈R n 即待辨识系统的参数向量上标T 则表示系统的向量和矩阵转置,n 为
参数数目。
由公式(2.3)可得到下图2.3,输出为参数的线性组合形式,是辨识问题最基本的表达方式,即最小二乘格式,由于该辨识模型的参数向量用最小二乘法辨识最易,一般的线性系统和本质线性系统都可以化为这种格式。
图2.3 辨识模型示意图
在该模型中,y (t ) 和?(t ) 是观测量,假设y (t ) 和?(t ) 都可以测得,则最小二乘算法可以估计参数向量θ;假设部分不可测,则需要用辅助模型最小二乘算法,增广最小二乘算法或其他辨识算法来解决。
如果参数随时间t 而变化,参数向量即为θ(t ) =[θ1(t ), θ2(t ), ???, θn (t )]T ∈R n ,时变参数辨识模型为:
y (t ) =?T (t ) θ(t ) +v (t ) . (2.4) 下面介绍一些系统的辨识模型。 1. 线性系统辨识模型
(1)线性系统脉冲响应模型:
y (t ) =b 1u (t -1) +b 2u (t -2) +???+b n u (t -n ) +v (t )
?b 1??b ?
, u (t -n )]?2?+v (t )
?????b n ?
=[u (t -1), u (t -2),
对应辨识模型为
?y (t ) =?T (t ) θ+v (t ), ?
??(t ) =[u (t -1), u (t -2), , u (t -n )]T ∈R n ,
T n ?θ=[b , b , , b ]∈R . 12n ?
(2)时变系数差分方程描述的线性系统:
y (t ) +a 1(t ) y (t -1) +a 2y (t -2) =bu 1(t -1) +b 2u (t -2) , 对应辨识模型为
?y (t ) =?T (t ) θ(t ), ?T 4??(t ) =[-y (t -1), -y (t -2), u (t -1), u (t -2)]∈R ,
T 4?θ(t ) =[a , a , b , b ]∈R . 1212?
(3)线性动态系统(CAR 模型):
A (z ) y (t ) =B (z ) u (t ) +v (t ), 对应辨识模型为:
?y (t ) =?T (t ) θ+v (t ), ?T n ??(t ) =[-y (t -1), -y (t -2), , -y (t -n a ), u (t -1), u (t -2), , u (t -n b )]∈R ,
T n ?θ(t ) =[a , a , , a , b , b , , b ]∈R . 12n 12n a b ?2. 非线性系统辨识模型
(1)静态非线性系统[13]:
y =ax 2+bx +c
对应辨识模型为
?y =?T θ, ?2T 3??=[x , x ,1]∈R , ?θ=[a , b , c ]T ∈R 3. ?
(2)动态非线性系统:
y (t ) =a 1y (t -1) +a 2y (t -2) y (t -3) +b 1u (t ) +b 2u 2(t -1) +c +v (t ) ?a 1??a ??2?
2
=[y (t -1), y (t -2) y (t -3), u (t ), u (t -?b 1?+v (t )
???b 2???c ??
对应辨识模型为
?y (t ) =?T (t ) θ+v (t ),
??2T 5??(t ) =[y (t -1), y (t -2) y (t -3), u (t ), u (t -∈R ,
T 5?θ=[a , a , b , b , c ]∈R . 1212??
(3)非线性系统:
b [e t +u 2(t -3)]
y (t ) =2
u (t ) +a 1u (t -1) +a 2u (t -2)
对应辨识模型为
??y 1(t ) =?T (t ) θ, ?
T
??u 2(t ) u (t -1) u (t -2) ??
, t , t ∈R 3, ??(t ) =?t ?222
?e +u (t -3) e +u (t -3) e +u (t -3) ??
T ?
a a 1???θ=?, 1, 2?∈R 3.
??b b b ??
(4)状态空间[14]方程:
?x (t +1) =Ax (t ) +bu (t ) +w (t ),
?
y (t ) =cx (t ) +du (t ) +v (t ), ?
对应辨识模型为
Y (t ) =θT ?(t ) +e (t ).
2.3 辨识的基本方法
系统的辨识方法有很多种类,按实时性可以分为在线估计方法和离线估计方法。按计算方式可以分为递推估计方法、迭代估计方法和一次完成算法。按属性特征可以分为最小均方估计算法、最小二乘估计算法、随机逼近估计算法、梯度估计算法、有理分式传递函数模型辨识方法、频域模型辨识方法、极大似然辨识方法、贝叶斯辨识方法、小波模型辨识方法、状态空间模型辨识方法、时变参数估计方法、时不变参数估计方法以及随机参数估计方法等。在前文已经对最小二乘估计方法和梯度估计方法做了一些介绍。下面就再简单介绍下有理分式传递函数模型辨识方法和状态空间模型辨识方法。
1. 有理分式传递函数模型辨识方法
针对一类双率系统,其模型和单率SISO 系统类似,可以采用最为常见的模型来表示,如使用ARX 模型的参数化,从而得到的辨识模型直观且易用,可以直接用来预测与控制。
同时由丁锋提出的双率系统辅助模型辨识算法,可直接进行对系统中的单率系统辨识,因为无法获得一些采样点上的必要数据,因此需借助辅助模型来估计缺少的测量数据。
其中,有理分式传递函数模型辨识方法包含了最小二乘辨识方法和梯度辨识方法等。 (1)最小二乘辨识算法:这是一种基本的参数估计方法,由德国数学家高斯于18世纪末首先提出,并广泛应用于系统辨识领域。该算法的准则函数必须采用模型输出和系统输出的误差平方和。该算法在系统辨识领域中是最基本的一种算法。它既可以用于动态系统辨识,也可以用于静态系统辨识;既可以用于离线估计,也可以用于在线估计;既可以用于线性系统,也可以用于非线性系统;既可以用于迭代算法,也可以用于递推算法。
针对不同的用途,有不同的最小二乘算法。例如对于方程误差类模型,可以使用递推最小二乘辨识算法。对于输出误差类模型,可以使用辅助模型最小二乘辨识算法。为了提高系统辨识精度,可以使用多新息最小二乘辨识算法和最小二乘迭代辨识算法。为了降低计算量,可以使用递推最小二乘辨识算法和递推最小二乘迭代辨识算法。
(2)梯度辨识方法:该算法的特点是算法中没有协方差矩阵,和最小二乘辨识算法相比,该算法的计算量更小,它的准则函数既可以采用模型输出和系统输出的误差的平方,也可以采用模型输出和系统输出误差的平方和。
梯度辨识方法是使用最速下降法,沿着准则函数负梯度的方向搜索参数估计,只能以迭代或递推的方式实现。
2. 状态空间模型辨识方法
根据状态空间模型的表述,我们选择输出误差类系统模型的结构,该结构即使是在非白噪声干扰的情况下,也可获得一致估计。状态空间模型辨识方法主要为子空间的估计方法。
2.4 辨识的基本问题[15]
辨识的基本问题有:参数可辨识性问题、系统可辨识性问题、参数估计收敛性问题以及输入信号的持续激励问题。
参数的可辨识性问题和系统的可辨识性问题可以归纳为可辨识性问题。在数学的系统模型中,如果每一个参数都能从观测数据确定,就可以说参数是可辨识的。如果系统的输入输出都能从观测数据确定,就可以说系统是可辨识的。
对于在某个实验中取得的输入输出数据以及参数估计算法,最先要考虑的就是是否可以得到唯一的参数估计值,这就是可辨识性问题。只有确定为可辨识了,估计算法才有效。
如何更好的应用辨识方法,实现系统的辨识,就需要更多的实践来验证。
2.5 本章小结
本章主要介绍了辨识的基本模型的种类,以及各种辨识方法的优缺点和各自针对的模型与系统。由其对输出误差类模型辨识所用的多新息辨算法和辅助模型辨识方法做了一定的介绍。为下文对输出误差模型辨识做了一定的准备工作。
第三章 输出误差系统的辨识
3.1 引言
输出误差系统,即一种含有噪声干扰的随机系统。其辨识模型信息向量参数化后既有未知无噪声输出,即未知真实输出,也有不可测噪声输出。对于输出误差模型,递推最小二乘方法无法对其参数给出一致估计。目前可采用递推增广最小二乘法等传统算法进行辨识。
输出误差模型描述的系统见图3.1,数学表达式如下:
B (z ) y (t ) =u (t ) +v (t ) (3.1)
A (z )
其中{u (t )}和{y (t )}分别为系统的输入和输出序列。{v (t )}为零均值方差σ2的随机噪声序
B (z )
列, G (z ) =为系统传递函数,A (z ) 和B (z ) 为单位后移算子z -1多项式:
A (z )
A (z ) =1+a 1z -1+a 2z -2++a n a z -n a ,
B (z ) =b 1z -1+b 2z -2+
+b n b z -n b .
假设阶次n a 和n b 已知,则令n =n a +n b 且t ≤0时,y (t ) =0, u (t ) =0, v (t ) =0.
3.1 输出误差模型描述的系统
其中x (t ) 是系统的真实输出或不可测的无噪声输出。y (t ) 是x (t ) 的含噪声量测。其目的是根据输入输出数据{u (t ), y (t )},系统参数a i , b i 即为辨识的主要对象。
3.2递推增广最小二乘辨识算法
上述模型可采用递推增广最小二乘算法进行辨识,为得到一致的参数估计,增广最小二乘算法是使用增加参数向量与信息向量维数来实现。主要思路如下:式(3.1)两边同时乘以A (z ) ,得到
A (z ) y (t ) =B (z ) u (t ) +A (z ) v (t ), (3.2)
式中,{u (t )}与{y (t )}分别为系统的输入输出的序列,{v (t )}为零均值方差是σ2的随机噪声
的序列,z -1是单位的后移算子[z -1y (t ) =y (t -1), zy (t ) =y (t +1)],A (z ), B (z ) 为单位的后移算子
z -1的多项式:
A (z ) =1+a 1z -1+a 2z -2+ B (z ) =b 1z -1+b 2z -2+
+a n a z -n a ,
+b n b z -n b ,
式(3.2)为一个特殊的CARMA 模型,该式子右边第二项可看做是有色噪声项,增广最小二乘法是处理CARMA 模型中包含的有色噪声的一种辨识算法,即在信息向量内加入噪声的回归项,在参数向量内加入噪声的模型参数。根据式(3.2)可得: y (t ) =[1-A (z )]y (t ) +B (z ) u (t ) +A (z ) v (t ). 将多项式A (z ), B (z ) 的表达式代入上式中,同时利用移位算子性质可得到: y (t ) =(-a 1z -1-a 2z -2- +(b 1z -1+b 2z -2+
-a n a z -n a ) y (t ) +b n b z -n b ) u (t ) a n a z -n a ) v (t )
-a n a y (t -n a )
+(1+a 1z -1+a 2z -2+
=-a 1y (t -1) -a 2y (t -2) - +bu 1(t -1) +b 2u (t -2) +
+b n b u (t -n b )
+a n a v (t -n a )
2n a +n b
+v (t ) +a 1v (t -1) +a 2v (t -2) +
该模型参数向量和信息向量定义如下:
θ=[a 1, a 2,
, a n a , b 1, b 2, , b n b , a 1, a 2,
, a n a ]T ∈
,
?(t ) =[-y (t -1), -y (t -2),
则有
, -y (t -n a ), u (t -1), u (t -2), , u (t -n b ),
v (t -1), v (t -2),
, v (t -n a )]T ∈R 2n a +n b .
y (t ) =?T (t ) θ+v (t ). (3.3) 上述即为CARMA 模型所描述的系统的辨识模型。
辨识目标:用系统的输入输出数据{u (t ), y (t )}来估计系统(3.1)的参数a i , b i 。由式(3.3),根据最小二乘算法的原理,对准则函数进行极小化: J (θ) =∑v (i ) =∑{A (z ) y (i ) -B (z ) u (i ) -[A (z ) -1]v (i )}2
2i =1t
t t
i =1
=∑[y (i ) -?T (i ) θ]2,
i =1
即可得到递推最小二乘法,可估计出模型(3.2)的参数向量θ:
?(t ) =θ?(t -1) +L (t )[y (t ) -?T (t ) θ?(t -1)], (3.4) θ
L (t ) =
P (t -1) ?(t )
, (3.5) T
1+?(t ) P (t -1) ?(t )
P (t ) =[I -L (t ) ?T (t )]P (t -1), P (0)=p 0I . (3.6) 但是,因为上面三个公式中,右边?(t ) 含有不可测噪声v (t -i ) ,使该算法(3.4)-(3.6)不能
实现。我们可以通过将噪声项v (t ) 用相应估计代替来解决,这样即得到了估计CARMA 模型(3.3)参数的递推增广最小二乘算法。
上式需要辨识2n a +n b 个参数,而系统实际的参数数量为n a +n b ,其中未知参数a i 出现两次,成为冗余,为该算法计算过程增加了多余的计算量。
式(3.1)还可以采用偏差补偿最小二乘法[?]来进行辨识,该方法虽然可用来进行参数无偏估计,但是算法过于复杂,计算量大,而且收敛性不能得到保证。
综合上述几种因素,亟需采用更有效的辨识方法。下面将提出使用一类辅助,来解决输出误差系统辨识的有效性问题。
3.3 辅助模型的最小二乘辨识算法
本节引入辅助模型,能有效改善式(3.1)的参数辨识问题。定义中间变量:
B (z ) x (t ) =u (t ).
A (z )
首先定义参数向量θ和信息向量?(t ) :
θ=[a 1, a 2, , a n , b 1, b 2, b n ]T ∈R n +n ,
a
b
a
b
?(t ) =[-x (t -1), -x (t -2), , -x (t -n a ), u (t -1), u (t -2), , u (t -n b )]T ∈R n +n .
a
b
将上式改为差分方程:
x (t ) +a 1x (t -1) +a 2x (t -2) +
+a n a x (t -n a )
=bu 1(t -1) +b 2u (t -2) +
或者
+b n b u (t -n b ).
x (t ) =?T (t ) θ.
从而可以得到输出误差系统辨识模型:
y (t ) =x (t ) +v (t )
=?T (t ) θ+v (t ). (3.7)
极小化准则函数得:
J 0=∑[y (i ) -?T (i ) θ]2,
i =1t
可以得到递推最小二乘算法:
?(t ) =θ?(t -1) +P (t ) ?(t )[y (t ) -?T (t ) θ?(t -1)], (3.8) θ
P (t -1) ?(t ) ?T (t ) P (t -1)
P (t ) =P (t -1) -. (3.9) T
1+?(t ) P (t -1) ?(t )
该算法无法用于模型(3.7)的辨识,因为其信息向量?(t ) 中含有未知中间变量x (t -i ), i =1,2, , n a . 假设x (t ) 已知,利用数据{u (t ), x (t )}的最小二乘方法可得到参数θ的一致无偏估计。难以辨识参数向量θ是因为x (t ) 为未知的。假设x (t ) 用以下辅助模型的输出x a (t ) 来代替,见图3.3,
B (z )
x a (t ) =P a (z ) u (t ) =a u (t )
A a (z )
或
x a (t ) =?a T (t ) θa (t ), (3.10)
图3.3 带辅助模型的输出误差系统
基于上述思想的辨识方法成为辅助模型辨识方法,假设使x a (t ) 无限逼近x (t ) ,则可以将辅
?(t ) 。 助模型的输出x a (t ) 作为x (t ) 的估计:x
关键问题是,怎样构造辅助模型(3.10),通过数据{u (t ), y (t )}来获得x (t ) 的估计x a (t ) ,同时保证x a (t ) 收敛于x (t ) :x a (t ) →x (t ) ,这样G (z ) 的辨识问题就可以通过x a (t ) 得到解决,而不是通过x (t ) 。
辨识算法的收敛性能和具体形式由辅助模型的选择方式所决定。
?(t ) 来代表参数θ的估计,把θ?(t ) 当作辅助模型参数变量θ(t ) ,用x (t -i ) 来代替假设θa a
?(t ) ,并把??(t ) 当作辅助模型信息向量?a (t ) ,得到: x (t -i ) 之后的信息变量?(t ) ,记为?
?(t ), ?T (t ) θx (t ) =?
a
?(t ) =[-x a (t -1), -x a (t -2), , -x a (t -n a ), u (t -1), u (t -2), , u (t -n b )]T ∈R n +n . ?
a
b
对准则函数进行极小化:
?) =[y (i ) -??]2 ?T (i ) θJ (θ∑
i =1t
从而得到估计参数θ的辅助模型的递推最小二乘法。
?(t ) =θ?(t -1) +L (t )[y (t ) -??(t -1)] (3.11) ?T (t ) θθ
?(t ) P (t -1) ?
?(t ) =L (t ) =P (t ) ? (3.12) T
?(t ) P (t -1) ??(t ) 1+?
?(t ) ??T (t ) P (t -1) P (t -1) ?
P (t ) =P (t -1) -T
?(t ) p (t -1) ??(t ) 1+?
?T (t )]P (t -1), P (0)=p 0I (3.13) =[I -L (t ) ?
?(t ) =[-x a (t -1), -x a (t -2), , -x a (t -n a ), u (t -1), u (t -2), , u (t -n b )]T (3.14) ?
?(t ) (3.15) ?T (t ) θx a (t ) =?
这里的辅助模型为:
?(t ) ?T (t ) θx a (t ) =?a T (t ) θa (t ) =?
辅助模型辨识算法是联合系统的真实输出和系统参数并同时估计的一种联合辨识算法,它随t 的增加而递阶交互的估计计算过程。由于计算参数估计时需要用辅助模型输出x a (t ) ,
?(t ) ,计算辅助模型输出x (t ) 时又要用参数估计θ因此计算辅助模型输出x (t ) 可以当作x (t )
a
a
?(t ) 。
的估计x
辅助模型的递推最小二乘算法计算步骤如下:
?(0)=1/p , p =106, x (-i ) =1/p , i =0,1,2, 1. 初始化:使t =1。初值P (0)=p 0I , θ00a 0
?(t ) 。 2. 收集u (t ) 和y (t ) 的数据,根据公式(3.14)构造?
3. 根据公式(3.12)计算出L (t ) ,根据公式(3.13)计算出P (t ) 。
?(t ) 。 4. 根据公式(3.11)刷新估计θ
5. 根据公式(3.15)计算出x a (t ) 。
6. t +1 ,转到步骤2,继续递推计算。
?(t ) 流程图如下: 辅助模型的递推最小二乘算法计算参数估计θ
, n a -1.
?(t ) 流程图 3.4 计算辅助模型的递推最小二乘算法参数估计θ
3.4 辅助模型的随机梯度辨识算法
3.5 仿真比较
1、递推增广最小二乘法的仿真
A (z ) y (t ) =B (z ) x (t ) +v (t )
A (z ) =1+a 1z -1+a 2z -2=1-1.60z -1+0.80z -2B (z ) =b 1z -1+b 2z -2=0.412z -1-0.309z -2
b m =[a 1, a 2, b 1, b 2]T =[-1.60,0.80,0.412, -0.309]T
图3.5 ARX/CAR模型示意图
仿真时,输入序列x (t ) 并采用正态分布随机变量,v (t ) 是零均值的高斯白噪声,
b m =[a 1, a 2, b 1, b 2]T 是被估参数的真值,加入变量b m 并作为被估计参数的估计值,此时我们用被估技参数误差δ来评价参数的估计方法优劣,其中被估计参数误差为
δ=b m -b m /b m 。当t 取不同的数值时,被估计参数得到不同的估计值,由于被估计参数
组数较多,我们取部分典型被估计参数组来作为输出值并进行分析。
此仿真试验中,白噪声的序列v (t ) 的方差为σ2,改变其方差σ2可以改变、控制系统噪信比。系统噪信比δns 的定义如下:噪信比在系统输入为零时,即只有噪声能作用于系统时,系统其对应的输出值的均方差和零噪声输入时系统其对应输出值的均方差之比。通过系统仿真,我们可以得到如下结果:
0.40.350.30.25
δ
0.20.150.10.050
05001000
t
150020002500
图3.6 RLS算法参数估计误差δ随t 变化曲线
表3.1 递推增广最小二乘算法估计参数及其误差(σ2=0.102)
根据上述实验结果可知,当递推计算步骤增加,即当t 增大时,被估计参数的误差总体上会变得越来越小,并且当t 足够大时,继续增大t ,被估计参数的误差变化将不明显。由上述分析可知,递推最小二乘算法中,适当增加递推计算步骤,有利于提高被估计参数的精度。
2、辅助模型递推最小二乘法仿真实例
针对一类仿真对象(OE模型)
B (z ) ?
y (t ) =u (t ) +v (t ), ?A (z )
??-1-2-1-2
?A (z ) =1+a 1z +a 2z =1+0.412z +0.309z
?B (z ) =b z -1+b z -2=0.6804z -1+0.6303z -2,
12
?T T ??θ=[a 1, a 2, b 1, b 2]=[0.412,0.309,0.6804,0.6303].
进行仿真时,输入{u (t )}使用零均值单位方差为不相关的可测随机信号序列,{v (t )}使用零均值方差是σ2的白噪声序列,通过改变σ2来控制噪信比δns ,针对输出误差系统模型,噪信比的定义为:
δns =
根据测量的数据{u (t ), y (t )},使用辅助模型的递推最小二乘法来估计该系统的参数,可
?(t ) 是θ的知不同的噪声方差或者噪声比时,仿真结果如下所示,θ是系统模型的参数,θ估计。
0.14
0.12
0.1
0.08
δ
0.060.040.020
05001000
t
150020002500
图3.8AM-RLS 算法参数估计误差δ随t 变化曲线
表3.2 辅助模型递推最小二乘算法估计参数及其误差(σ=0.10)
2
2
3、辅助模型递推随机梯度法仿真实例
4、两种算法的比较总结:
(1)基于辅助模型辨识算法可以直接利用系统的输入输出数据来进行辨识,而不需要进行模型转换。同时可以估计出无噪声污染的系统输出,有利于对输出误差系统进行控制。
(2)相对于传统的递推增广最小二乘算法,即为输出误差类模型同时乘以多项式A (z ) 之后采用的辨识方法,辅助模型辨识方法的采用无需引入新参数,因此计算量没有增加,能快速有效的辨识输出误差系统。
(3)对于辅助模型的选择较灵活,上述介绍的是直接选择系统原来的模型来作为辅助模型,同时也可以选择相应的FIR 模型来作为辅助模型而产生辅助变量进行辨识。
3.5 本章小结
本章根据具体的模型,进行仿真和数据分析,运用不同的辨识方法进行仿真,并对比,来分析两种算法的优缺点。来进一步的对第二章介绍的各种辨识算法做更为深入的理解。
第四章 总结与展望
4.1 工作总结
1. 基于辨识算法,结合辅助模型的辨识方法,推导一类含有有色噪声干扰的输出误差系统的辨识方法,并将标量新息扩展为向量与矩阵,用多新息理论来辨识系统的参数,根据仿真结果得出,增加系统的新息长度可以有效提高算法的辨识精度和收敛速度。
2. 在系统的输入输出数据已知的条件下,推导出迭代辨识方法,算法的每一次迭代计算都使用了包含系统输入输出数据在内的所有可测数据,结合交互估计的理论与递阶辨识的原理,在每一步迭代计算中,参数的估计可依赖于噪声的估计,同时噪声的估计可通过前一步的迭代得到的参数估计计算。根据仿真结果得出,这一类算法的辨识精度和收敛速度与数据长度成正比。
4.2 展望
系统辨识技术的发展迅速,是通过数代人的共同以及不懈努力,从一开始的简单线性
模型和含噪声干扰模型的辨识,发展到如今的非线性,多率以及时变等复杂系统辨识算法和收敛性的研究。新型的辨识方法不断提出,为系统辨识这门科学不断注入新活力,开拓出适用于它自身的更多新的应用领域。现如今,非线性系统的辨识方法慢慢成为了人们研究的热点,关于wiener 模型,Hammerstein 模型以及他们相结合的一类模型的辨识问题研究相关文献纷纷涌现,系统辨识这门科学正呈现多向发展,齐头并进的繁荣景象。本文提出的一系列针对线性系统辨识方法的介绍一样适用于非线性系统中的线性部分的辨识问题。
致 谢
本研究及学位论文是在我的导师丁洁导师亲切关怀和悉心指导下完成的。她为我开拓研究思路,精心点拨。丁老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,使我终身受益。在此谨向老师致以诚挚的谢意和崇高的敬意。
感谢南京邮电大学的其他老师在近4年的时间里对我的指导和帮助,他们以慈祥的长者和渊博的学者身份对我的学业和生活都给予了很大的帮助。
在此,我还要感谢在一起愉快地度过大学生活的各位同学,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本论文的顺利完成。
在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长,同学,朋友给了我无言的帮助,在这里请接受我诚挚的谢意! 最后我还要感谢培养我长大含辛茹苦的父母,谢谢您们!
参考文献
[1] 李秀英, 韩志刚. 非线性系统辨识方法的新进展[J]. 自动化技术与应用, 2005, 23(10): 5-7.
[2] 侯晓秋, 陈志学. 一类非线性随机系统的自适应预测控制[J]. 电气传动自动化, 2012, 34(01): 14-18.
[3] 丁锋. 系统辨识(2): 系统描述的基本模型[J]. 南京信息工程大学学报, 自然科学版, 2011, 02: 97-117.
[4] 张勇, 杨慧中. 有色噪声干扰输出误差系统的偏差补偿递推最小二乘辨识方法[J]. 自动化学报, 2007, 33(10): 1053-1060.
[5] 丁锋. 系统辨识(5): 迭代搜索原理与辨识方法[J]. 南京信息工程大学学报, 自然科学版, 2012, 30: 471-510.
[6] 陈晓伟, 丁锋. 有色噪声系统的迭代辨识与递推辨识方法仿真比较研究[J]. 系统仿真学报, 2008, 20(21): 5758-5762.
[7] Gu X, Yuan Z, Qiu Z. Unbiased Least Square Estimation for Bearings-Only Target Tracking Algorithm Using Bistatic Sonar [J]. Journal of Data Acquisition and Processing, 2010, 25(01): 107-110.
[8] Xue YC, Qian JX. Variable Parameter Gradient Estimation Algorithm with Local Polynomial Approximation [J]. Journal of Circuits and Systems, 2002, 07(01): 23-27.
[9] Ren XF, Huang SX. Logic and Cognitive Problems of Bayesian Reasoning [J]. Journal of Zhejiang University (Humanities and Social Sciences), 2012, 42(4): 106-113.
[10] Chen H, Zhao W. Identification of Several Classes of Stochastic Nonlinear Systems [J]. Journal of Systems Science and Mathematical Sciences. 2011, 31(9): 1019-1044.
[11] 温之建, 潘立登. 子空间辨识方法的研究与改进[J]. 北京化工大学学报, 2004, 31(3): 99-101.
[12] 匡森, 张谦, 范玉璋, 余发山. 单输入输出线性系统相对通用极点配置法[J]. 中原工学院学报,2003, 14(1): 11-14.
[13] 王伟, 杨建军. 一类具有分离静态非线性系统的控制方法[J]. 控制理论与应用, 2002, 19(4): 575-578.
[14] 衷路生. 状态空间模型辨识方法研究. 中南大学. 2011, 12.
[15] 丁锋. 系统辨识(3):辨识精度与辨识基本问题[J]. 南京信息工程大学学报, 自然科学版, 2011, 2: 194-226.
[16] 丁锋. 辨识方法的计算效率(2):迭代算法[J]. 南京信息工程大学学报(自然科学版). 2012, 5: 386-401.
[17] 丁锋. 系统辨识(1):辨识引导[J]. 南京信息工程大学学报, 自然科学版, 2011, 1: 1-22.
[18] 李鸿仪. 理想化最速下降法及其逼近实例[J]. 上海第二工业大学学报. 2011, 28(1): 8-13.
附录
%递推最小二乘法
clear
format short g
M='The RLS algorithm for the ARX model'; FF=1;
sigma=0.1;
Length=3000;Length1=3100; na=2;nb=2;n=na+nb;
a=[1,-1.6,0.8];b=[0,0.412,-0.309];d=[1]; par0=[a(2:na+1),b(2:nb+1)]'; p0=1e6;P=eye(n)*p0;r=1;
par1=ones(n,1)*1e-6;xa=ones(n,1)/p0;%设定初值 %产生正态随机变量
for i=1:Length r1=rand(1); while r1==0 r1=rand(1); end
r2=rand(1); if i==1
eta=[sqrt(-2*log(r1))*cos(2*pi*r2),sqrt(-2*log(r1))*sin(2*pi*r2)]; else
eta=[eta;sqrt(-2*log(r1))*cos(2*pi*r2),sqrt(-2*log(r1))*sin(2*pi*r2)]; end end %生成模型
rand('state',5);
u=eta(:,1);v=eta(:,2)*sigma;clear eta; Gz=tf(b,a,1);Gn=tf(d,a,1); y=lsim(Gz,u)+lsim(Gn,v); jj=0;j1=0; for t=n:Length jj=jj+1;
varphi=[-xa(t-1:-1:t-na);u(t-1:-1:t-nb)]; L=P*varphi/(FF+varphi'*P*varphi); P=P-L*varphi'*P;
par1=par1+L*(y(t)-varphi'*par1); delta=norm(par1-par0)/norm(par0); xa(t)=varphi'*par1; ls(jj,:)=[jj,par1',delta];
if (jj==100)|(jj==200)|mod(jj,500)==0 j1=j1+1;
ls_100(j1,:)=[jj,par1',delta*100]; end end ls_100 %作图
jk=20:10:2500
plot(jk,ls(jk,n+2));
xlabel('\it t');ylabel('{\it \delta}');
%基于辅助模型递推最小二乘辨识算法 clear
format short g
M='The RLS algorithm for the ARX model'; FF=1;
sigma=0.1;
Length=3000;Length1=3100; na=2;nb=2;n=na+nb;
a=[1,0.412,0.309];b=[0,0.6804,0.6303];d=[1]; par0=[a(2:na+1),b(2:nb+1)]'; p0=1e6;P=eye(n)*p0;r=1; par1=ones(n,1)*1e-6;设定初值 %产生正态随机变量
for i=1:Length r1=rand(1); while r1==0 r1=rand(1); end
r2=rand(1); if i==1
eta=[sqrt(-2*log(r1))*cos(2*pi*r2),sqrt(-2*log(r1))*sin(2*pi*r2)]; else
eta=[eta;sqrt(-2*log(r1))*cos(2*pi*r2),sqrt(-2*log(r1))*sin(2*pi*r2)]; end end %生成模型
rand('state',40);
u=eta(:,1);v=eta(:,2)*sigma;clear eta; Gz=tf(b,a,1);Gn=tf(d,a,1); y=lsim(Gz,u)+lsim(Gn,v); jj=0;j1=0;
for t=20:Length jj=jj+1;
南京邮电大学2010届本科生毕业设计(论文)
varphi=[-y(t-1:-1:t-na);u(t-1:-1:t-nb)];
L=P*varphi/(FF+varphi'*P*varphi);
P=P-L*varphi'*P;
par1=par1+L*(y(t)-varphi'*par1);
delta=norm(par1-par0)/norm(par0);
ls(jj,:)=[jj,par1',delta];
if (jj==100)|(jj==200)|mod(jj,500)==0
j1=j1+1;
ls_100(j1,:)=[jj,par1',delta*100];
end
end
ls_100
%作图
jk=20:10:2500
plot(jk,ls(jk,n+2));
xlabel('\it t');ylabel('{\it
\delta}'); 26
范文三:系统辨识MATLAB
系统辨识作业
方法一 : 递推最小二乘法
[NUM]=xlsread('shuju' , 'B4:B257');
u=NUM;
[NUM1]=xlsread('shuju' , 'C4:C257');
z=NUM1;
N=length(u);
c0=[0.001,0.001,0.001,0.001]'; %直接给出被辨识参数的初始值,取一个充分小的实 向量
p0=10^7*eye(4,4); %初始状态 P0也采用直接取方式,取一个充分大的实数单位矩阵 E=0.00000005; %相对误差 E 参考值
c=[c0,zeros(4,253)]; %被辨识参数矩阵的初始值及大小
e=zeros(4,254); %相对误差的初始值及大小
%开始递推运算
for k=3:N;
h1=[-z(k-1),-z(k-2),u(k-1),u(k-2)]'; %求 h1
x=h1'*p0*h1+1;
x1=inv(x);
k1=p0*h1*x1;%求 k1
c1=c0+k1*(z(k)-h1'*c0); %求 c
e1=(c1-c0)./c0;%求参数的相对变化
e(:,k)=e1; %把当前相对变化的列向量加入误差矩阵的最后一列
c0=c1; %新获得的参数作为下一次递推的旧参数
c(:,k)=c1; %把当前所辨识参数的 c1列向量加入辨识参数矩阵的最后一列
p1=p0-k1*h1'*p0; %求 p1值
p0=p1; %把当前值给下次用
if norm(e1)<>
break ; %若参数收敛满足要求,终止计算
end
end
%分离参数
a1=c(1,:);a2=c(2,:);b1=c(3,:);b2=c(4,:);
ea1=e(1,:);ea2=e(2,:);eb1=e(3,:);eb2=e(4,:);
figure(1); %画第 1个图形
i=1:254; %横坐标从 1到 254
plot(i,a1,'k' ,i,a2, 'b' ,i,b1, 'r' ,i,b2, 'g' ) %画出 a1, a2, b1, b2的各次辨识 结果
legend('a1' , 'a2' , 'b1' , 'b2' );
xlabel('k' );
ylabel(' 辨识参数 ' ); %标注纵轴变量
title(' 最小二乘各次递推参数估计值 ' ) %图形标题
a1=c(1,254)
a2=c(2,254)
b1=c(3,254)
b2=c(4,254)
figure(2); %画第 2个图形
i=1:254; %横坐标从 1到 254
plot(i,ea1,'k' ,i,ea2, 'b' ,i,eb1, 'r' ,i,eb2, 'g' ); %画出 a1, a2, b1, b2的各 次辨识结果的收敛情况
legend('ea1' , 'ea2' , 'eb1' , 'eb2' );
xlabel('k' ) %标注横轴变量
ylabel(' 参数误差 ' ) %标注纵轴变量
title(' 参数的误差收敛情况 ' ) %图形标题
ea1=e(1,254)
ea2=e(2,254)
eb1=e(3,254)
eb2=e(4,254)
最小二乘递推辨识结果:
a1 = -0.6418 a2 =-0.3451 b1 = 0.0015 b2 =-0.0014 ea1 =-1.4483e-004 ea2 =3.5589e-004
eb1 = -0.0020 eb2 = -0.0021
二、似然法辨识
v=randn(254,1); %产生正态分布随机数
V=0; %计算噪声方差
for i=1:254
V=V+v(i)*v(i);
end
V1=V/254;
N=xlsread('shuju.xls' ) ; %取数据作为输入输出矩阵
A=N([1 : 254],[1,2,3]);
x=A(:,2);
y=A(:,3);
u=x';
z=y';%得到输入输出数据
o1=0.001*ones(6,1);p0=eye(6,6); %赋初值
zf(1)=0.1;zf(2)=0.1;vf(2)=0.1;vf(1)=0.1;uf(2)=0.1;uf(1)=0.1;
%迭代计算参数值和误差值
for k=3:254
h=[-z(k-1);-z(k-2);u(k-1);u(k-2);v(k-1);v(k-2)];
hf=h;
K=p0*hf*inv(hf'*p0*hf+1);
p=[eye(6,6)-K*hf']*p0;
v(k)=z(k)-h'*o1;
o=o1+K*v(k) ;
p0=p;
o1=o;
a1(k)=o(1);
a2(k)=o(2);
b1(k)=o(3);
b2(k)=o(4);
d1(k)=o(5);
d2(k)=o(6);
e1(k)=abs(a1(k)+1.2);
e2(k)=abs(a2(k)-0.6);
e3(k)=abs(b1(k)-1.0);
e4(k)=abs(b2(k)-0.5);
e5(k)=abs(d1(k)+1.0);
e6(k)=abs(d2(k)-0.2);
zf(k)=z(k)-d1(k)*zf(k-1)-d2(k)*zf(k-2);
uf(k)=u(k)-d1(k)*uf(k-1)-d2(k)*uf(k-2);
vf(k)=v(k)-d1(k)*vf(k-1)-d2(k)*vf(k-2);
hf=[-zf(k-1);-zf(k-2);uf(k-1);uf(k-2);vf(k-1);vf(k-2)];
end
%数
%绘图
figure(1)
k=1:254;
plot(k,a1,'k:',k,a2, 'b' ,k,b1, 'r' ,k,b2, 'm:',k,d1, 'g' ,k,d2, 'k' ); xlabel('k' )
ylabel(' 参数辨识 ' )
legend('a1=-1.2,', 'a2=0.6', 'b1=1.0', 'b2=0.5', 'd1=-1.0', 'd2=0.2'); %图 标炷
title(' 递推极大使然 RML');
figure(2)
k=1:254;
plot(k,e1,'k' ,k,e2, 'b' ,k,e3, 'r' ,k,e4, 'm' ,k,e5, 'g' ,k,e6, 'k' );
xlabel('k' ) ;
ylabel(' 误差过度过程 ' ) ; title(' 误差曲线 ' )
三、增广法辨识
z=xlsread('shuju' , 'B4:B257');
u=xlsread('shuju' , 'C4:C257');
v=randn(1,254);
c0=[0.001 0.001 0.001 0.001 0.001 0.001 0.001]'; %直接给出被辨识参数的初始 值 , 即一个充分小的实向量
p0=10^6*eye(7,7); %直接给出初始状态 P0,即一个充分大的实数单位矩阵
E=0.00000000005; %相对误差 E=0.000000005
c=[c0,zeros(7,253)]; %被辨识参数矩阵的初始值及大小
e=zeros(7,254); %相对误差的初始值及大小
for k=3:254; %开始求 K
h1=[-z(k-1),-z(k-2),u(k-1),u(k-2),v(k),v(k-1),v(k-2)]'; %为求 K(k)作准备
x=h1'*p0*h1+1;
k1=p0*h1*(inv(x)); %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]; %find p(k)
p0=p1; %给下次用
if e<>
break ; %若收敛情况满足要求,终止计算
end %判断结束
end %循环结束
%分离变量
a1=c(1,:); a2=c(2,:); b1=c(3,:); b2=c(4,:); %分离出 a1、 a2、 b1、 b2 d1=c(5,:); d2=c(6,:); d3=c(7,:); %分离出 d1、 d2、 d3
ea1=e(1,:); ea2=e(2,:); eb1=e(3,:); eb2=e(4,:); %分离出 a1、 a2、 b1、 b2的收敛情况
ed1=e(5,:); ed2=e(6,:); ed3=e(7,:); %分离出 d1 、 d2 、 d3的收敛情况
figure(1); %画第二个图形
i=1:254;
plot(i,a1,'r' ,i,a2, 'r:',i,b1, 'b' ,i,b2, 'b:',i,d1, 'g' ,i,d2, 'g:',i,d3, 'g +') %画出各个被辨识参数
title('Parameter Identification with Recursive Least Squares Method' ) %标题
figure(2);
i=1:254; %画出第三个图形
plot(i,ea1,'r' ,i,ea2, 'r:',i,eb1, 'b' ,i,eb2, 'b:',i,ed1, 'g' ,i,ed2, 'g:',i ,ed2, 'r+') %画出各个参数收敛情况
title('Identification Precision') %标题
figure(3);
subplot(4,1,1); %画出第四个图形,第一个子图
i=1:254;
plot(i,zs(i),'r' ) %画出被辨识系统在没有噪声情况下的实际输出响应
subplot(4,1,2); i=1:254;plot(i,z(i),'g' ) %第二个子图,画出被辨识系统的采样 输出响应
subplot(4,1,3); i=1:254;plot(i,zm(i),'b' ) %第三个子图,画出模型含有噪声的输 出响应
subplot(4,1,4); i=1:254;plot(i,zs(i),'b' ) %第四个子图,画出模型去除噪声后的 输出响应
范文四:系统辨识
作业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);
Result = [Rxy ghat g]; %list form
disp(' -------------------------------------------');
disp(' i Rxy(iDel) ghat g' ); disp(' -------------------------------------------'); disp(num2str(Result));
disp(' -------------------------------------------');
调用产生M 序列的getPRBS 函数
function Out=getPRBS(n,a,del,total); %Get PRBS signal
%parameters are n registers, a, altitude of m sequence, del, clock pulse, total, the length of m-sequence to be required
Out = []; % Make Empty Out for storing binary sequence % Initialize n Registers for i = 1:n R(i) = 1; end
if (R(n)==1) Out(1) =-a; end
if (R(n)==0) Out(1)=a; end for i=2:total
temp=R(1);
R(1)= xor(R(n-2),R(n)); %modulo 2 adder j=2;
while j<=n %registers="" shift="" temp1="R(j);" r(j)="temp;" j="">=n>
temp=temp1; end if (R(n)==1) Out(i) =-a; end if (R(n)==0)
Out(i)=a; end end
3. 运行结果
一阶RC 系统输入输出曲线图
time
A m p i t i t u d e
图1.2 一阶RC 电路M 序列辨识响应图
表1-I 输入输出相关函数、脉冲估计值、真实脉冲输出表
-------------------------------------------------------------------------------------------
i Rxy(iDel) ghat g
--------------------------------------------------------------------------------------------
0 -0.0319183 2.86143 10 1 0.529696 10.4984 8.60708 2 0.43794 9.01697 7.40818 3 0.358965 7.74186 6.37628 4 0.290991 6.64436 5.48812 5 0.232485 5.69973 4.72367 6 0.182129 4.88668 4.0657 7 0.138787 4.18689 3.49938 8 0.101482 3.58456 3.01194 9 0.0693728 3.06614 2.5924 10 0.0417366 2.61993 2.2313 11 0.0179498 2.23588 1.9205 12 -0.0025236 1.90531 1.65299
--------------------------------------------------------------------------------------------
续表1-I 输入输出相关函数、脉冲估计值、真实脉冲输出表
-------------------------------------------------------------------------------------------
i Rxy(iDel) ghat g
-------------------------------------------------------------------------------------------
13 -0.0201452 1.6208 1.42274 14 -0.0353123 1.37591 1.22456 15 -0.0483668 1.16514 1.05399 16 -0.0596028 0.983723 0.90718 17 -0.0692738 0.827577 0.780817 18 -0.0775977 0.693181 0.672055 19 -0.0847621 0.577505 0.578443 20 -0.0909286 0.477942 0.497871 21 -0.0962361 0.392248 0.428521 22 -0.100804 0.31849 0.368832 23 -0.104736 0.255006 0.317456 24 -0.108121 0.200364 0.273237 25 -0.111033 0.153334 0.235177 26 -0.11354 0.112855 0.202419 27 -0.115698 0.078014 0.174224 28 -0.117556 0.0480262 0.149956 29 -0.119154 0.0222155 0.129068 30 -0.12053 0 0.11109
-----------------------------------------------------------------------------
选取5级移位寄存器作为输入信号合理。原因是由5级移位寄存器产生的信号既拥有了较好的随机特性,其周期特性又能与本题中的系统相吻合。由其产生的信号能够较好的激发出系统的输入输出特性。
作业2
已知系统的差分方程为:
y (k ) -1.5y (k -1) +0.7y (k -2) =u (k -1) +0.5y (k -2) +ε(k ) -ε(k -1) +0.2ε(k -2) 其中ε(k ) 是均值为0,σ=7.2并服从正态分布的不相关随机噪声,u (k ) 采用4级移位寄存器产生的幅度为1的M 序列,?=1ms 。数据长度取N=240,请绘出Newton-Raphson 方法求参数的极大似然估计程序流程图并附上Matlab 程序。
1. 程序流程图
图2.1 程序流程图
2. 程序清单
clc
close all
sigma=7.2;%均方差
epsilon=0.001;%迭代终止条件 total=16; N=240;
V=sigma*randn(total,1); %噪声 %M序列产生
y1=1;y2=1;y3=1;y4=0; for i=1:15
x1=xor(y3,y4); x2=y1; x3=y2; x4=y3; y(i)=y4;
if y(i)>0.5,u(i)=-1; else u(i)=1; end
y1=x1;y2=x2;y3=x3;y4=x4; end
%最小二乘一般算法, 产生初始估计值a1,a2,b1,b2; z=zeros(1,total); for k=3:total
z(k)=1.5*z(k-1)+0.7*z(k-2)+u(k-1)+0.5*u(k-2)+V(k); end
%给样本系数矩阵
H=[-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)];
Z=[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)]; c=inv(H'*H)*H'*Z;
a1=c(1);a2=c(2);b1=c(3);b2=c(4); d1=0.1; d2=0.1;
theta=[a1,a2,b1,b2,d1,d2]';%参数估计初值 v(1)=0;v(2)=0;
d_theta1=zeros(6,1); d_theta2=zeros(6,1);
v_da1(1)=0;v_da2(1)=0;v_db1(1)=0;v_db2(1)=0;v_dd1(1)=0;v_dd2(1)=0; v_da1(2)=0;v_da2(2)=0;v_db1(2)=0;v_db2(2)=0;v_dd1(2)=0;v_dd2(2)=0; j=1;
bef=zeros(6,1); %执行算法
while sum(abs(theta-bef))>epsilon %采集输入输出 for i=1:N+3 x1=xor(y3,y4); x2=y1; x3=y2; x4=y3; y(i)=y4;
if y(i)>0.5,u(i)=-1; else u(i)=1; end
y1=x1;y2=x2;y3=x3;y4=x4; end
y(1)=0;y(2)=0;
V=sigma*randn(N+3,1); %噪声 y(1)=1;y(2)=0.01; for k=3:N+3
y(k)=1.5*y(k-1)-0.7*y(k-2)+u(k-1)+0.5*u(k-2)+V(k)-V(k-1)+0.2*V(k-2); end J_d=0; JJ_d=0;
a1=theta(1);a2=theta(2); b1=theta(3);b2=theta(4); d1=theta(5);d2=theta(6); for k=3:N+3
v(k)=y(k)+a1*y(k-1)+a2*y(k-2)-b1*u(k-1)-b2*u(k-2)-d1*v(k-1)-d2*v(k-2);%求取v(k) v_da1(k)=y(k-1)-d1*v_da1(k-1)-d2*v_da1(k-2); v_da2(k)=y(k-2)-d1*v_da2(k-1)-d2*v_da2(k-2); v_db1(k)=-u(k-1)-d1*v_db1(k-1)-d2*v_db1(k-2); v_db2(k)=-u(k-2)-d1*v_db2(k-1)-d2*v_db2(k-2); v_dd1(k)=-v(k-1)-d1*v_dd1(k-1)-d2*v_dd1(k-2); v_dd2(k)=-v(k-2)-d1*v_dd2(k-1)-d2*v_dd2(k-2);
d_theta=[v_da1(k),v_da2(k),v_db1(k),v_db2(k),v_dd1(k),v_dd2(k)]'; J_d=J_d+v(k)*d_theta;
JJ_d=JJ_d+d_theta'*d_theta; end
bef=theta;
theta=theta-inv(JJ_d)*J_d; v(1)=v(N+1);v(2)=v(N+2);
v_da1(1)=v_da1(N+1);v_da2(1)=v_da2(N+1);v_db1(1)=v_db1(N+1); v_db2(1)=v_db2(N+1);v_dd1(1)=v_dd1(N+1);v_dd2(1)=v_dd2(N+1); v_da1(2)=v_da1(N+2);v_da2(2)=v_da2(N+2);v_db1(2)=v_db1(N+2); v_db2(2)=v_db2(N+2);v_dd1(2)=v_dd1(N+2);v_dd2(2)=v_dd2(N+2); %求取误差
error1(j)=-1.5-theta(1); error2(j)=0.7-theta(2); error3(j)=1-theta(3); error4(j)=0.5-theta(4); error5(j)=-1-theta(5); error6(j)=0.2-theta(6); v_error(j)=v(N+2); j=j+1; end
theta %输出估计参数 %作图 figure(1); plot(error1) hold on plot(error2) hold on plot(error3) hold on plot(error4) hold on
plot(error5,'r' ) hold on
plot(error6,'r' )
title(' 参数估计误差' ) xlabel(' 迭代次数' ) ylabel(' 误差' ) hold off figure(2);
plot(-1.5-error1,'b' ); hold on
plot(0.7-error2,'c' ) hold on
plot(1-error3,'g' ) hold on
plot(0.5-error4,'y' ) hold on
plot(-1-error5,'m' ) hold on
plot(0.2-error6,'r' )
legend('a1' , 'a2' , 'b1' , 'b2' , 'd1' , 'd2' ,-1) title(' 参数估计值变化' ) xlabel(' 迭代次数' ) ylabel(' 参数' ) hold off
3. 程序运行结果
表3-I 模型参数辨识结果
被估参数 真实值 估计值
a1 -1.5 -1.4711
a2 0.7 0.6817
b1 1.01 0.9687
b2 0.5 0.5875
d1 -1.0 -0.9526
d2 0.2 0.191
参数估计值的变化过程曲线如图3.2所示,参数误差估计曲线如图3.3所示。
参数估计值变化
1
0.5
参数
-0.5-1
-1.5x 10
4
迭代次数
图2.2 参数估计值变化过程曲线
从两图和表中可以看出,本题所用的Newton-Raphson 方法求参数的极大似然估计能够较好地辨识出系统的参数。
参数估计误差
4
3
2
误差1
-1
-2迭代次数x 104
图2.3 误差估计曲线
作业3
对于动态系统为
y (k ) +0.5y(k -1) -0.2y(k -2) =1.2u(k -1) +0.3u(k -2) +ε(k ) -ε(k -1) +0.8ε(k -2) 上式中,ε(k ) 均值为0,方差为1, 并服从正态分布的不相关随机噪声,u(k)为幅值为1的伪随机M 序列,请利用递推极大似然估计法对系统参数进行辨识,递推停止条件为N=1500。
答:
1. 递推极大似然估计参数辨识设计方法
1. 初始化系统,初始化仿真数据;
2. 生成M 序列作为系统的输入,即辨识信号;
3. 用输入信号激励系统产生输出信号序列;
4. 初始化递推极大似然估计参数辨识法的参数,设定初始值θ0, P 0, v 0 ,构
∧
造初始向量ψ(0),并设置?1=ψ(0),N =0
5. 计算v k , r k , P k , θk 看是否满足条件,满足条件停止。否则转到6;
6. 采集数据构造?k , k =k +1,转到5。 ∧
?=θ?+r =θ?+K ε?θN +1N N +1N N +1N +1
K N +1=P N h f (N +1)
1+h T
f (N +1) P N h f (N +1)
P N h f (N +1) h (N +1) P N
1+h T
f (N +1) P N h f (N +1) T f P N +1=P N -
??N +1=y (N +1) -h T (N +1) θεN
2. 程序清单
主程序
a(1)=1;b(1)=0;c(1)=1;d(1)=0;u(1)=d(1);z(1)=0;z(2)=0; %初始化 四级移位寄存器的第1,2,3,4级寄存器输出
for i=2:1500 %产生m 序列u(i)
a(i)=xor(c(i-1),d(i-1));
b(i)=a(i-1);
c(i)=b(i-1);
d(i)=c(i-1);
if d(i)==0
u(i)=-1;
else
u(i)=d(i);
end
end
u; %若取去‘;’可以在程序运行中观测到m 序列
v=randn(1500,1);%产生正态分布随机数
V=0; %计算随机方差
for i=1:1500
V=V+v(i)*v(i);
end
V1=V/1500;
for k=3:1500 %?根据v 和u 计算
z(k)=-0.5*z(k-1)+0.2*z(k-2)+1.2*u(k-1)+0.3*u(k-2)+v(k)-v(k-1)+0.8*v(k-2);
end
o1=0.001*ones(6,1);p0=eye(6,6); %?赋初值o1即为theta1
zf(1)=0.1;zf(2)=0.1;vf(2)=0.1;vf(1)=0.1;uf(2)=0.1;uf(1)=0.1;
%迭代计算参数值和误差值
for k=3:1500
h=[-z(k-1);-z(k-2);u(k-1);u(k-2);v(k-1);v(k-2)];
hf=h;
K=p0*hf*inv(hf'*p0*hf+1);
p=[eye(6,6)-K*hf']*p0;
v(k)=z(k)-h'*o1;
o=o1+K*v(k);
p0=p;
o1=o;
a1(k)=o(1);
a2(k)=o(2);
b1(k)=o(3);
b2(k)=o(4);
d1(k)=o(5);
d2(k)=o(6);
e1(k)=abs(a1(k)-0.5);
e2(k)=abs(a2(k)+0.2);
e3(k)=abs(b1(k)-1.2);
e4(k)=abs(b2(k)-0.3);
e5(k)=abs(d1(k)+1.0);
e6(k)=abs(d2(k)-0.8);
zf(k)=z(k)-d1(k)*zf(k-1)-d2(k)*zf(k-2);
uf(k)=u(k)-d1(k)*uf(k-1)-d2(k)*uf(k-2);
vf(k)=v(k)-d1(k)*vf(k-1)-d2(k)*vf(k-2);
hf=[-zf(k-1);-zf(k-2);uf(k-1);uf(k-2);vf(k-1);vf(k-2)];
end
o1 %若取去‘;’可以在程序运行中观测到参数
V1
%绘图
subplot(4,1,1) %4行1列第一个图,参数变化过程
k=1:1500;
plot(k,a1,'k:',k,a2, 'b' ,k,b1, 'r' ,k,b2, 'm:',k,d1, 'g' ,k,d2, 'k' );
xlabel('k' )
ylabel('paramerter' )
legend('a1=0.5', 'a2=-0.2', 'b1=1.2', 'b2=0.3', 'd1=-1.0', 'd2=0.8'); %图标注
title('The parameter idendification of the RML');
subplot(4,1,2) %第二个图,误差
k=1:1500;
plot(k,e1,'k:',k,e2, 'b' ,k,e3, 'r' ,k,e4, 'm:',k,e5, 'g' ,k,e6, 'k' );
xlabel('k' )
ylabel('error' )
title(' 误差曲线' );
subplot(4,1,3) %第三个图,系统输入信号M 序列
k=1:1500;
plot(k,u);
xlabel('k' )
ylabel('input' )
title(' 系统输入信号' );
subplot(4,1,4) %第四个图,系统所加随机噪声
k=1:1500;
plot(k,v);
xlabel('k' )
ylabel('random noise')
title(' 系统所加的随机噪声' );
3. 运行结果
运行结果由图3.1所示。从运行曲线图中可以看出,递推极大似然估计法能够较好地辨识出系统的参数。
图3.1 运行结果
范文五:系统辨识
系统辨识理论综述
郭金虎
【摘要】全面论述了系统辨识理论的提出背景以及理论成果,总结了系统辨识理论的基本原理、基本方法以及基本内容,并对其应用及发展做了全面的讨论。
【关键词】系统辨识;准则函数
1概述
系统辨识问题的提出是由于随着科学技术的发展,各门学科的研究方法进一步趋向定量化,人们在生产实践和科学实验中,对所研究的复杂对象通常要求通过观测和计算来定量的判明其内在规律,为此必须建立所研究对象的数学模型,从而进行分析、设计、预测、控制的决策。例如,在化工过程中,要求确定其化学动力学和有关参数,已决定工程的反应速度;在热工过程中,要求确定如热交换器这样的分布参数的系统及动态参数;在生物系统方面,通常希望获得其较精确的数学模型,一般描述在生物群体系统的动态参数;为了控制环境污染,希望得到大气污染扩散模型和水质模型;为进行人口预报,做出相应的决策,要求建立人口增长的动态模型;对产品需求量、新型工业的增长规律这类经济系统,已经建立并继续要求建立其定量的描述模型。其他如结构或机械的振动、地质分析、气象预报等等,都涉及系统辨识和系统参数估计,这类要求正在不断扩大。
2系统辨识的基本原理
2.1系统辨识的定义和基本要素
实验和观测是人类了解客观世界的最根本手段。在科学研究和工程实践中,利用通过实验和观测所得到的信息,或掌握所研究对象的特性,这种方式的含义即为“辨识”。关于系统辨识的定义,1962年,L.A.Zadeh 是这样提出的:“系统辨识就是在输入和输出数据观测的基础上,在指定的一组模型类中,确定一个与所测系统等价的模型”。1978年,L.Ljung 也给出了一个定义:“辨识既是按规定准则在一类模型中选择一个与数据拟合得最好的模型”。可用图2-1来说明辨识建模的思想。
图2-1 系统辨识的原理
图中规定代价函数(或称等价准则)为J y , y g ,它是误差e 的函数,系统原型G 0和系统模型G g 在同一激励信号u 的作用下,产生系统原型输出信号y 和系统模型输出信号()y g ,二者误差为e 。经等价准则计算后,去修正模型参数,然后再反复进行,知道误差满足代价函数最小为止,器数学表述为
J (y , y g )=f (e ) (2-1)
其中f (e )为准则函数表达式。诶辨识的目的为:找出一个模型G g ∈φ,而φ为给定模型类。使之
J (y , y g )→min (2-2)
则有
G g =G 0 (2-3)
此时,即称为系统被辨识。
这个定义明确了系统辨识过程的3大要素:①输入输出数据(u,y,yg ); ②模型类(Gk ); ③等价准则()。而模型的精度由J()决定,也即由e 决定。其中,数据是辨识的基础;准则是辨识的优化目标;模型类是寻找模型的范围。从上述可知,辨识的实质就是从一组模型类中选择一个模型,按照某种准则,使之呢个最好的拟合所研究的实际过程的动态特性。
2.2系统辨识的等价准则
在系统辨识过程中,一个很重要的概念是,要检验在各种可能的相同输入下,要求它的输出近似相等,即系统的“等价”,它是用来衡量模型接近实际过程的标准。而通常被识对象和模型的等价性是通过引入评价函数定义的,这个评价函数称为等价准则函数。对某种相同的输入u ,若实际系统的输出为y ,模型G g 的输出为y g ,而被识对象和模型输出这两个输出量之间的偏差值(误差)e =y -y g 是,通常采用的准则函数如下。
连续信号下,其准则函数为
J (y , y g )=??y (t )-y g (t )?dt =?e 2(t )dt (2-4) ??t -T t -T t 2t
数据离散的情况下,其准则函数为
J (y , y g )=∑y -y g =e (2-5) 2
k A 2
在给定的模型类中,当模型G g 使准则函数最小是,定义G g 与对象等价。因此,辨识就是求使准则函数最小的模型G g 的最优化问题。若模型类采用参数模型描述时,便是就归结为参数最优化问题。
3系统辨识的基本方法
根据对系统的组成、结构和支配系统运动的机理的了解程度,可以将建模方法分为如下3类:
(1)机理建模
利用各个专业学科领域提出来的物质和能量的守恒性和连续性原理、组成系统的结构形式,建立描述系统的数学关系,这样的建模方法也称为“白箱问题”。如此建立的数学模型,称为机理模型。
(2)系统辨识(实验建模)
从理论上,这是一种在没有任何可利用的验前信息(即相关学科专业知识与相关数据)的情况下,应用所采集系统的输入和输出数据提取信息进行建模的方法。这是一种实验建模的方法,这种建模方法也称为“黑箱问题”。这样建立的数学模型称为辨识模型,也称为实验模型。
(3)机理分析和系统辨识相结合的建模方法
这种建模方法适用于系统的运动机理不是完全未知的情况。这时,可以利用系统的运动机理和运动经验确定出模型的结构(如状态方程的维或差分方程的阶),也可能分析出部分参数的大小或可能的取值范围,再根据采集到的系统输入或输出的数据,有系统辨识方法来估计和修正模型中的参数,使其精确化。这样的建模方法也称为“灰箱问题”。实际中应用的辨识方法,严格的说,对“黑箱问题”一般是无法解决的,通常提到的系统辨识,往往是指的“灰箱问题”。
4系统辨识的基本内容及步骤
一般来说,若建立某一系统的数学模型的目的已经十分明确,同时对该系统已具备了一定的验前知识,就可以进行辨识该系统的数学模型及参数,其内容为包括实验设计、模型结构辨识、模型参数辨识以及模型验证四部分。
(1)实验设计
实验设计包括扰动信号的选择,采样方法和间隔的决定,采样区段(采样数据长度的设
计)以及辨识方式(离线、在线及开环、闭环的考虑)等。
(2)模型结构辨识
模型类型和结构的选定是决定建立数学模型质量的关键性一步,且模型类型和结构的选定,又是系统辨识过程中最复杂最困难的一项工作,它与建模的目的、对所辨识系统的验前知识的掌握程度等密切相关。
(3)模型参数辨识
参数模型的类型和结构选定以后,下一步是对模型中的未知参数进行估计。在所有的现实情况中,当对被识系统进行观测时,所得到的数据就会手袋随机性干扰和噪声的影响。因此,必须对所得到的观测数据采用统计的方法加以处理,设法滤去随机干扰的影响,从而得到参数值的好的估计结果。
(4)模型验证
一个系统的模型被识别出以后,它是否可以接受和利用,它在多大程度上反映出被识系统的特性(模型的有效性),这是必须经过验证的。模型的验证工作必须与模型的选择联系起来,也需要与在建模过程中所做的各种假定联系起来。
5系统辨识的应用与发展
系统辨识获得如此蓬勃发展的来由,主要取决于20世纪60年代工程上广泛应用了各种自动控制系统,这些系统包括最简单的继电控制系统到利用辅助变量的复杂的回路控制系统。在这一时期,自动控制理论的发展达到了一个较高水平,当时经典的控制概念受到新兴的现代控制理论的挑战。随后,计算机技术的快速发展和成本的降低,使得无论是使用计算机作为离线科学计算工具还是作为在线监测控制装置,都开始得到了广泛的应用。而且,值得注意的问题是,现代控制理论研究和应用是以被控对象的数学模型为前提的,有时他要对被控对象所受到的噪声的特性有所了解。在现代控制理论的研究中,往往要求系统的数学模型具备特定的形式,以适合理论分析的需要。然而,在获得这些模型的研究中,却出现了如何确定被控对象的数学模型的各种困难,理论和实际之间出现了相当大的距离。因此在当时,这正是现代控制理论在许多领域中远没有得到充分应用的原因之一。尽管“理论”能够以非常精巧的方法提出一个控制问题的最优解,但是要实现这个控制,西药对被控系统的动态特性给予一个合适的数学描述。在这样的背景下,系统辨识问题便愈来愈受到人们的重视,它成为了发展系统应用理论,认识实际对象特性并研究和控制实际对象工作中不可缺少的一个重要手段。
当然,系统辨识理论和应用之所以得到发展的更主要原因还在于,在科学技术的发展进程中,各门学科的研究方法进一步趋向定量化发展,人们在生产实际和科学实验中,对所研究的较复杂的对象往往要求通过观测和计算来定量地判明其内在规律。为此必须建立所研究对象的数学模型,从而进行分析、设计、预测、控制的决策。因此,系统辨识对研究对象的定量化描述的特点,使得这门学科在它的起源的自动控制学科之外也得到迅速发展。除前述的应用外,其范围现在已大大超出建立这门学科的科学家的想象。如对产品需求量、新型工业的增长规律这类经济系统,已经建立并继续要求建立其定量的描述模型;其它如结构或机械的振动、地质分析、气象预报等等也都涉及系统辨识的理论和方法,而且这类需求还正在不断扩大。
当前,系统辨识理论一发展成为系统理论中的一个重要分支。系统辨识理论中,对于单变量线性系统辨识的理论和方法,目前已做了大量的研究,也得到了许多理论和应用成果。但是,对于多变量系统的辨识,尤其是它的结构辨识,则还处于不能令人满意的状态。系统辨识理论的发展,一方面有赖于其他理论(如系统结构理论、稳定性理论、模式识别、学习理论等等)的发展,从而加深对系统没在性质的理解,并提供新的估算方法。另一方面,又必须根据客观实际中提出的新问题(如实验设计、准则函数的选取、模型的验证等),在理论和实践的统一上加以解决,从而充实理论和推动学科的发展。