基于最小二乘法的系统辨识

合集下载

最小二乘法在系统辨识中的应用(包含相关的三种算法)

最小二乘法在系统辨识中的应用(包含相关的三种算法)
)]1()()()[() 1()(kkkzkkkfffhK) 1()]()([)(kkkkffffPhKIP1] 1)() 1()()[() 1()(kkkkkkffffffhPhhPK)]1()()( e)[() 1()(kkkkkkeeeeehK) 1()]()([)(kkkkeeeePhKIP1] 1)() 1()()[() 1()(kkkkkkeeeeeehPhhPK利用上述公式即可求得参数的估计值并能求出噪声模型的估计。
但是,数据向量)(kfh中的变量均需要按照(3.2.2)式计算,然而噪声模型)(1zC并不知道。
为此需要用迭代的方法来估计)(1zC。
令)()(1z)(1kvCke(3.2.5)置,2[k],)()]3(),2(),1([)(31ccckekekekeபைடு நூலகம்h(3.2.6)就把噪声模型(3.2.5)也化成最小二乘格式)()()(kvkkeeeh由于上式的噪声已是白噪声,所以再次利用最小二乘法可获得噪声模型参数e的无偏估计。
通过极小化(1.1.4)式来计算的方法称作最小二乘法,未知模型参数最可能的值是在实际观测值与计算值之累次误差的平方和达到最小处所得到的,这种模型输出能最好地接近实际过程的输出。
2、辨识原理考虑模型(1.1.2)式的辨识问题,其中)(kz和)(kh都是可观测的数据,是待估计参数,准则函数取(1.1.4)根据(1.1.3)的定义,准则函数)(J可写成二次型的形式)()()(HzHzllllJ(1.2.1)显然上式中的Hl代表模型的输出,或者说是过程的输出预报值。
)()() 1()()()()()(1111kkkkkiikkihhPhhhhP(2.2.3)令:
] ) 1(),2 (z),1 (z[1kzkz则:
] )i()()[1()() 1(1111111ikkkkkzikkhPzHHH于是有i111)()() 1() 1(kizikkhP(2.2.4)令] )k(),2 (z),1 (z[zkz利用(2.2.3)和(2.2.4)式,可得)]1()()()[()() 1()}()() 1()]()()(){[()]()() 1() 1()[(] )i()()[()()(1111ikkkzkkkkzkkkkkkkzkkkkzikkkkkkkhhphhhPPhPPhPzHHH(2.2.5)引进增益矩阵)(kK,定义为)()()(kkkhPK(2.2.6)则(2.2.5)式写成)]1()()()[() 1()(kkkzkkkhK(2.2.7)进一步把(2.2.3)式写成11)]()() 1([)(kkkkhhPP(2.2.8)为了避免矩阵求逆运算,利用矩阵反演公式可将(2.2.8)式演变成) 1()]()([)]()() 1([)(11kkkkkkkPhKIhhPP(2.2.9)将(2.2.9)式代入(2.2.6)式,整理后有1] 1)() 1()()[() 1()(kkkkkkhPhhPK(2.2.10)综合(2.2.7)、(2.2.9)、(2.2.10)式便得到最小二乘参数估计递推算法。

系统辨识相关分析最小二乘

系统辨识相关分析最小二乘

相关分析法辨识系统单位脉冲响应1辨识原理对于下图示的单输入单输出线性系统,其输入输出的因果关系可用卷积公式描述。

公式为:0()()()y t g x t d λλλ∞=-⎰把变量t 换成t +τ,上式两边同乘以x (t ),取时间的平均值,得11lim()(+)(){lim()(+)}22TTTTT T x t y t dt g x t x t dt d TTτλτλλ∞--→∞→∞=-⎰⎰⎰即 0()()()x y x R g R d τστλλ∞=-⎰上式即为维纳-霍夫方程,其给出了输入的自相关函数,输入、输出的互相关函数及脉冲响应函数三者之间的关系。

令x (t )为白噪声信号,则其自相关函数为:()(), ()()x x R k R k τδττλδτλ=-=-代入维纳-霍夫方程得:()()()()xy x R g R d kg τλτλλτ∞=-=⎰则有:()()xy R g kττ=这样,只要记录x(t)、y(t)的值,并计算它们的互相关函数,即可求得脉冲响应函数g(τ)。

在系统有正常输入的情形下,辨识脉冲响应的原理图如下图所示。

2辨识过程2.1预备实验以二阶系统22()2G s s s ++=作为辨识对象。

在实验前首先要进行预备实验,以了解系统特性。

通过简单阶跃响应确定系统过度过程时间T s 大约为11s ,如下图所示。

给系统施加不同周期的正弦信号,系统输出为输入的0.707倍时,确定截止频率f M 大约为0.318Hz 。

2.2选择二位式伪随机序列的参数(1)选择t 和N 由0.3Mt f ∆≤,得0.94t s ∆≤。

因为系统的时间常数1nT s ζω=,根据时间常数可按照0.050.1t T ∆= ()选择t ∆。

由二位式伪随机序列周期要大于系统过渡过程时间,若t ∆选择0.94s ,则由(1)s N t T -⨯∆≥,得12.7021N ≥;若t ∆选择0.195s ,则由(1)s N t T -⨯∆≥,得57.4103N ≥。

系统辨识之最小二乘法

系统辨识之最小二乘法

系统辨识之最小二乘法方法一、最小二乘一次性算法:首先对最小二乘法的一次性辨识算法做简要介绍如下:过程的黑箱模型如图所示:其中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 )}极小化下列准则函数:∑=-=Lk 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 TL 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 文件,实现上述算法。

最小二乘法辨识

最小二乘法辨识

T 1 T T 1 T ˆ E [ θ ] E [ θ ( Φ Φ ) Φ ξ ] θ E [( Φ Φ ) Φ ξ ]
LS无偏估计的充要条件为:
E [( Φ Φ )
T 1
Φ
T
ξ] 0
下面讨论无偏估计的充分条件。
y ( k ) a1 y ( k 1) a n y ( k n ) b 0 u ( k ) b1u ( k 1) b n u ( k n ) ( k )
最小二乘的最早思想: 未知量的最大可能的值是这样 一个数值,它是实际观测值和计算 值的差值的平方和达到最小的数值。
基本的最小二乘估计 解决问题:在模型阶次n已知的情况下,根据系 统的输入输出数据,估计出系统差分方程的各 项系数。 1.基于输入/输出数据的系统模型描述
SISO系统的差分方程为
x ( k ) a 1 x ( k 1) a n x ( k n ) b 0 u ( k ) b n u ( k n ) y (k ) x(k ) n(k )
(k ) n(k )
a n(k i)
i i 1
n
则当前输出为:
y ( k ) a1 y ( k 1) a n y ( k n ) b 0 u ( k ) b1u ( k 1) b n u ( k n ) ( k )
ˆ min J

下面我们推导θ估计值的计算方法。
J取得最小值,也即J为极值,则有:
J ˆ θ

0
ˆ T ˆ [ (Y Φ θ ) (Y Φ θ ) ] ˆ θ
0
T ˆ 2 Φ (Y Φ θ ) 0

第五章 最小二乘法辨识

第五章 最小二乘法辨识

服从正态分
❖ 4)有效性
❖ 定理4:假设 (k) 是均值为零,方差为 2I 的正态
白噪声,则最小二乘参数估计量
^
是有效估计
量,即参数估计误差的协方差达到Cramer-Rao不
等式的下界
E (^
^
)(
)T
2E
(
T N
N
) 1
M 1
❖ 其中M为Fisher信息矩阵。
4、适应算法
❖ 随着更多观测数据的处理,递推最小二乘法对线性 定常系统的参数估计并非越来越精确,有时会发现
❖ 现举例说明最小二乘法的估计精度 ❖ 例5.1:设单输入-单输出系统的差分方程为
y(k) a1y(k 1) a2 y(k 2) b1u(k 1) b2u(k 2) (k)
❖ 设 u(k)是幅值为1的伪随机二位式序列,噪声 (k)是 一个方差 2可调的正态分布 N(0, 2 )随机序列。
❖ 为了克服数据饱和现象,可以用降低旧数据影响的 办法来修正算法。而对于时变系统,估计k时刻的 参数最好用k时刻附近的数据估计较准确。否则新 数据所带来的信息将被就数据所淹没。
❖ 几种算法:渐消记忆法,限定记忆法与振荡记忆法
❖ 矩阵求逆引理:设A为 n n 矩阵,B和C为 n m 矩阵,
并且A, A和 BCT I CT都A是1B 非奇异矩阵,则有矩
阵恒等式
A BCT 1 A1 A1B(I CT A1B)1CT A1


A
PN1
,B
N 1
,C
T N 1
,根据引理有
PN1
T N 1 N 1
1
❖ 算法中,^ N 为2n+1个存贮单元(ai ,bi ,i 1,2, , n), 而 PN 是 (2n 1) (2n 1)维矩阵,显然,将 N 换成 PN 后,存贮量大为减少(因为n为模型的阶数,一般 远远小于N)

应用最小二乘一次完成法和递推最小二乘法算法地系统辨识

应用最小二乘一次完成法和递推最小二乘法算法地系统辨识

1最小二乘法的理论基础1.1最小二乘法设单输入单输出线性定长系统的差分方程表示为:其中δ(k)为服从N(0,1)的随机噪声,现分别测出n+N 个输出输入值y(1),y(2),…,y(n+N),u(1),u(2),…,u(n+N),则可写出N 个方程,写成向量-矩阵形式()()()()()()()()1201121n n y k a y k a y k a y k n b u k b u k b u k n k ξ=-------++-++-+L L ()()()()()()()()()()()()()()()()()()10111121222112n n y n y n y u n u y n y n y u n u y n N y n N y N u n N u N a n a n b n N b ξξξ+--+⎡⎤⎡⎤⎢⎥⎢⎥+-+-+⎢⎥⎢⎥=⨯⎢⎥⎢⎥⎢⎥⎢⎥+-+--+⎢⎥⎢⎥⎣⎦⎣⎦⎡⎤⎢⎥+⎡⎤⎢⎥⎢⎥⎢⎥+⎢⎥+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦LLL L M M MMLL M M M(4.1.1)则式(1.1.1)可写为 (4.1.2)式中:y 为N 维输出向量;ξ为N 为维噪声向量;θ为(2n+1)维参数向量;Φ为N ×(2n+1)测量矩阵。

因此,式(4.1.1)是一个含有(2n+1)个未知参数,由N 个方程组成的联立方程组。

11y θφφξ--=-在给定输出向量y 和测量矩阵Φ的条件下求参数θ的估计,这就是系统辨识问题。

设 表示 θ 的估计值,ŷ表示y 的最优估计,则有 (4.1.3) 式中:()()()10ˆˆ1ˆˆ2ˆˆ,ˆˆˆn n ay n a y n y b y n N b θ⎡⎤⎢⎥+⎡⎤⎢⎥⎢⎥⎢⎥+⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦M M M ()()()()()()()()()()()()()()()()()()101122,,11112221n n a y n n y n a n y b y n N n N b y n y u n u y n y u n u y n N y N u n N u N ξξθξξφ⎡⎤⎢⎥++⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥++⎢⎥⎢⎥===⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥++⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦--+⎡⎤⎢⎥-+-+⎢⎥=⎢⎥⎢⎥-+--+⎢⎥⎣⎦M M M M L LL L M MMLL y φθξ=+ˆθˆˆyθ=Φ设e(k)=y(k)- ŷ(k), e(k)称为残差,则有e=y- ŷ=y-Φθ 最小二乘估计要求残差的平方和最小,即按照指数函数(4.1.4)求J对 的偏导数并令其等于0可得:(4.1.5)由式(4.1.5)可得的 θ 最小二乘估计:(4.1.6)J 为极小值的充分条件是:即矩阵ΦT Φ为正定矩阵,或者说是非奇异的。

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

系统辨识最小二乘法大作业 (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) 为最小来确定估值。

系统辨识最小二乘参数估计matlab

系统辨识最小二乘参数估计matlab

最小二乘参数估计摘要:最小二乘的一次性完成辨识算法(也称批处理算法),他的特点是直接利用已经获得的所有(一批)观测数据进行运算处理。

这种算法在使用时,占用内存大,离线辨识,观测被辨识对象获得的新数据往往是逐次补充到观测数据集合中去的。

在应用一次完成算法时,如果要求在每次新增观测数据后,接着就估计出系统模型的参数,则需要每次新增数据后要重新求解矩阵方程()Z l T l l Tl ΦΦΦ-∧=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参考文献: ................................................................................................... 错误!未定义书签。

系统辨识—最小二乘法_3

系统辨识—最小二乘法_3

---------------------------------------------------------------最新资料推荐------------------------------------------------------系统辨识—最小二乘法最小二乘法参数辨识 1 引言系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。

现代控制理论中的一个分支。

通过辨识建立数学模型的目的是估计表征系统行为的重要参数,建立一个能模仿真实系统行为的模型,用当前可测量的系统的输入和输出预测系统输出的未来演变,以及设计控制器。

对系统进行分析的主要问题是根据输入时间函数和系统的特性来确定输出信号。

对系统进行控制的主要问题是根据系统的特性设计控制输入,使输出满足预先规定的要求。

而系统辨识所研究的问题恰好是这些问题的逆问题。

通常,预先给定一个模型类={M}(即给定一类已知结构的模型),一类输入信号 u 和等价准则 J=L(y,yM)(一般情况下,J 是误差函数,是过程输出 y 和模型输出 yM 的一个泛函);然后选择使误差函数J 达到最小的模型,作为辨识所要求的结果。

系统辨识包括两个方面:结构辨识和参数估计。

在实际的辨识过程中,随着使用的方法不同,结构辨识和参数估计这两个方面并不是截然分开的,而是可以交织在一起进行的。

2 系统辨识的目的在提出和解决一个辨识问题时,明确最终使1 / 17用模型的目的是至关重要的。

它对模型类(模型结构)、输入信号和等价准则的选择都有很大的影响。

通过辨识建立数学模型通常有四个目的。

①估计具有特定物理意义的参数有些表征系统行为的重要参数是难以直接测量的,例如在生理、生态、环境、经济等系统中就常有这种情况。

这就需要通过能观测到的输入输出数据,用辨识的方法去估计那些参数。

②仿真仿真的核心是要建立一个能模仿真实系统行为的模型。

用于系统分析的仿真模型要求能真实反映系统的特性。

(完整)系统辨识—最小二乘法汇总,推荐文档

(完整)系统辨识—最小二乘法汇总,推荐文档

最小二乘法参数辨识201403027摘要:系统辨识在工程中的应用非常广泛,系统辨识的方法有很多种,最小二乘法是一种应用极其广泛的系统辨识方法.阐述了动态系统模型的建立及其最小二乘法在系统辨识中的应用,并通过实例分析说明了最小二乘法应用于系统辨识中的重要意义.关键词:最小二乘法;系统辨识;动态系统Abstract: System identification in engineering is widely used, system identification methods there are many ways, least squares method is a very wide range of application of system identification method and the least squares method elaborated establish a dynamic system models in System Identification applications and examples analyzed by the least squares method is applied to illustrate the importance of system identification.Keywords: Least Squares; system identification; dynamic system引言随着科学技术的不断发展,人们认识自然、利用自然的能力越来越强,对于未知对象的探索也越来越深入.我们所研究的对象,可以依据对其了解的程度分为三种类型:白箱、灰箱和黑箱.如果我们对于研究对象的内部结构、内部机制了解很深入的话,这样的研究对象通常称之为“白箱”;而有的研究对象,我们对于其内部结构、机制只了解一部分,对于其内部运行规律并不十分清楚,这样的研究对象通常称之为“灰箱”;如果我们对于研究对象的内部结构、内部机制及运行规律均一无所知的话,则把这样的研究对象称之为“黑箱”.研究灰箱和黑箱时,将研究的对象看作是一个系统,通过建立该系统的模型,对模型参数进行辨识来确定该系统的运行规律.对于动态系统辨识的方法有很多,但其中应用最广泛,辨识效果良好的就是最小二乘辨识方法,研究最小二乘法在系统辨识中的应用具有现实的、广泛的意义.1.1 系统辨识简介系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。

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

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

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

引入参数向量: = [ a0,a1,…,a n ]T经过N次试验,得出N个方程: y k = k T + k ; k=1、2…、N其中:k = [ 1,x1,x2,…,x N ]T方程组可用矩阵表示为: y = +其中:y = [ y1,y2,…,y N ] T = [ 1,2,…,N ] T估计准则:有=(y - )T( y - )J = y T y + T T - y T - T T y= y T y + T T - 2 T T y假设:(T)满秩,由根据矩阵值函数对矩阵变量的导数和数量函数对矩阵变量的导数可以得出以下两个公式:和有:和所以:解出参数估计向量:=(T)-1 T yLs至此,水泥的凝固放热量与水泥的成分关系模型即建立起来了。

使用最小二乘法法进行系统辨识的两种方法

使用最小二乘法法进行系统辨识的两种方法

递推最小二乘法辨识与仿真现在有如下的辨识仿真对象:图中, )(k v 是服从N )1,0(分布的不相关随机噪声。

且)(1-zG )()(11--=z A z B ,)(1-z N )()(11--=zC zD , (1)⎪⎪⎩⎪⎪⎨⎧=+==+-=--------1)(5.00.1)()(7.05.11)(121112111z D z zz B z C z z a z A选择上图所示的辨识模型。

仿真对象选择如下的模型结构:)()2()1()2()1()(2121k w k u b k u b k y a k y a k y +-+-=-+-+可得系统模型为:)()2(5.0)1()2(7.0)1(5.1)(k w k u k u k y k y k y +-+-=-+-- 递推最小二乘法的推导公式如下:)]1(ˆ)()()[()1(ˆ)(ˆ--+-=k k k z k k k θh K θθτ )1()]()([)]()()1([)(11--=+-=--k k k k k k k τP h K I h h PP τ1]1)()1()()[()1()(-+--=k k k k k k h P h h P K τ相关程序如下:% exp053 %%递推最小二乘法程序%clear%清理工作间变量L=55;% M序列的周期y1=1;y2=1;y3=1;y4=0;%四个移位寄存器的输出初始值for i=1:L;%开始循环,长度为Lx1=xor(y3,y4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”x2=y1;%第二个移位积存器的输入是第3个移位积存器的输出x3=y2;%第三个移位积存器的输入是第2个移位积存器的输出x4=y3;%第四个移位积存器的输入是第3个移位积存器的输出y(i)=y4;%取出第四个移位积存器幅值为"0"和"1"的输出信号,if y(i)>0.5,u(i)=-0.03;%如果M序列的值为"1"时,辨识的输入信号取“-0.03”else u(i)=0.03;%当M序列的值为"0"时,辨识的输入信号取“0.03”end%小循环结束y1=x1;y2=x2;y3=x3;y4=x4;%为下一次的输入信号做准备end%大循环结束,产生输入信号uw=normrnd(0, sqrt(0.1), 1, 55);%加入白噪声figure(1);%第1个图形,伪随机序列stem(u),grid on%以径的形式显示出输入信号并给图形加上网格z(2)=0;z(1)=0;%取z的前两个初始值为零for k=3:55;%循环变量从3到55z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)+w(k);%给出理想的辨识输出采样信号endc0=[0.001 0.001 0.001 0.001,0.001]';%直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(5,5);%直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005;%相对误差E=0.000000005c=[c0,zeros(5,54)];%被辨识参数矩阵的初始值及大小e=zeros(5,55);%相对误差的初始值及大小for k=3:55; %开始求Kh1=[-z(k-1),-z(k-2),u(k-1),u(k-2),w(k)]'; x=h1'*p0*h1+1; x1=inv(x); %开始求K(k)k1=p0*h1*x1;%求出K的值d1=z(k)-h1'*c0; c1=c0+k1*d1;%求被辨识参数ce1=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%大循环结束c;%显示被辨识参数e;%显示辨识结果的收敛情况%分离参数a1=c(1,:); a2=c(2,:); b1=c(3,:); b2=c(4,:);d1=c(5,:);ea1=e(1,:); ea2=e(2,:); eb1=e(3,:); eb2=e(4,:);figure(2);%第2个图形i=1:55;%横坐标从1到55plot(i,a1,'r',i,a2,':',i,b1,'g',i,b2,':',i,b1,'k') %画出a1,a2,b1,b2的各次辨识结果title('系统辨识结果')%图形标题如果系统中的参数为:⎪⎪⎩⎪⎪⎨⎧+-=+==+-=----------211211121112.01)(5.00.1)()(7.05.11)(z z z D z zz B z C z z a z A 那么系统模型机构为:)2(2.0)1()()2(5.0)1()2(7.0)1(5.1)(-+--+-+-=-+--k w k w k w k u k u k y k y k y 相关程序如下: % exp054.m % %递推最小二乘法编程%clear%清理工作间变量 L=55;% M 序列的周期y1=1;y2=1;y3=1;y4=0;%四个移位寄存器的输出初始值 for i=1:L;%开始循环,长度为Lx1=xor(y3,y4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或” x2=y1;%第二个移位积存器的输入是第3个移位积存器的输出 x3=y2;%第三个移位积存器的输入是第2个移位积存器的输出 x4=y3;%第四个移位积存器的输入是第3个移位积存器的输出 y(i)=y4;%取出第四个移位积存器幅值为"0"和"1"的输出信号,if y(i)>0.5,u(i)=-0.03;%如果M序列的值为"1"时,辨识的输入信号取“-0.03”else u(i)=0.03;%当M序列的值为"0"时,辨识的输入信号取“0.03”end%小循环结束y1=x1;y2=x2;y3=x3;y4=x4;%为下一次的输入信号做准备end%大循环结束,产生输入信号uw=normrnd(0, sqrt(0.1), 1, 55);figure(1);%第1个图形,伪随机序列stem(u),grid on%以径的形式显示出输入信号并给图形加上网格z(2)=0;z(1)=0;%取z的前两个初始值为零for k=3:55;%循环变量从3到55z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)+w(k)-w(k-1)+0.2*w(k-2);%给出理想的辨识输出采样信号endc0=[0.001 0.001 0.001 0.001,0.001]';%直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(5,5);%直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005;%相对误差E=0.000000005c=[c0,zeros(5,54)];%被辨识参数矩阵的初始值及大小e=zeros(5,55);%相对误差的初始值及大小for k=3:55; %开始求Kh1=[-z(k-1),-z(k-2),u(k-1),u(k-2),w(k),w(k-1),w(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;%求被辨识参数ce1=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%大循环结束c;%显示被辨识参数e;%显示辨识结果的收敛情况%分离参数a1=c(1,:); a2=c(2,:); b1=c(3,:); b2=c(4,:);d1=c(5,:);d2=c(6,:);d3=c(7,:); figure(2);%第2个图形i=1:55;%横坐标从1到55plot(i,a1,'r',i,a2,':',i,b1,'g',i,b2,':',i,d1,'k',i,d2,':',i,d3,'*') %画出a1,a2,b1,b2的各次辨识结果title('系统辨识结果')%图形标题。

基于最小二乘法的电机参数辨识基于最小二乘法的电机参数辨识摘要基

基于最小二乘法的电机参数辨识基于最小二乘法的电机参数辨识摘要基

基于最小二乘法的电机参数辨识摘要:基于异步电机在两相坐标系里的状态方程,通过检测电机的定子电压、电流和转速信号,而不需要转子磁链信号,利用最小二乘法递推算法对电机参数进行了辨识,由于不需要转子磁链,这样通过观测得到的磁链就不会影响辨识的准确性,消除了参数计算和磁链观测之间的耦合,仿真结果和实验验证了辨识的准确性。

关键词:最小二乘法参数辨识异步电机1.引言20世纪70年代磁场定向原理的提出,使得交流传动的矢量控制技术理论上可以达到与直流传动相近的动、静态性能。

然而异步电机矢量控制需要对转子磁链进行准确的观测以实现对定子电流和转子磁场的定向控制,这就要求得到精确的电机参数,这些参数受温度、集肤效应和磁通饱和等影响,导致磁链观测结果不准确,使得实际的矢量控制效果难以达到理论分析的结果。

20世纪80年代中期Depenbrock教授提出的直接转矩控制(DTC)方法,磁链和转矩由滞环控制,系统的转矩响应比矢量控制要好一些,但 DTC也有它的局限性——要使用定子电阻来估算定子磁链。

定子电阻随着温度和电流频率的变化而变化,在低速时会极大地影响控制器的性能。

为了解决定子电阻变化的影响,出现了许多定子电阻的辨识方法。

主要有以下几种:采用全阶观测器的MRAS进行转速和定子电阻的同时辨识;采用转子磁通的参考值和估计值之间的偏差来调节定子电阻;此外,还有采用d轴电流的偏差进行定子电阻辨识的方法。

对电阻辨识方法,利用从电机的零序电压中提取的转子齿谐波电压信号计算转速,用该转速与无速度传感器控制中的估计转速比较,用这个误差来进行转子电阻的辨识,但是由于低速下转子齿谐波电压微弱,检测困难,限制了这种方法在低速下的应用;通过在电机的转子磁通轴上加低频脉动的电流使得转子磁通幅值产生波动,实现转子电阻和转速的同时辨识;在加减速过程中,磁通幅值发生变化时进行的转子电阻的辨识,不需要额外注入信号;在线辨识定子电阻,使转子电阻按一定比例随辨识的定子电阻改变的方法;这些方法都很难消除参数计算和磁链观测之间存在的耦合。

基于最小二乘法的系统辨识问题研究综述

基于最小二乘法的系统辨识问题研究综述

基于最小二乘法的系统辨识问题研究综述摘要:对基于最小二乘法的系统辨识方法进行了介绍。

首先对系统辨识概念以及最小二乘法原理进行了介绍,然后根据例子来说明怎样运用最小二乘法来解决实际辨识问题。

而且本文针对最小二乘存在的缺陷进一步阐述了一些改进型最小二乘法在系统辨识中的应用,最后对系统辨识的发展趋势做了预测。

关键字:系统辨识最小二乘法改进型最小二乘法发展趋势1引言系统辨识归根到底是一种数学建模的过程,而建模过程中运用的方法并不唯一,最小二乘法是较早被应用于系统辨识中的一类方法。

1962年,L. A. Zadeh 最先提出了系统辨识的定义[1]:“辨识就是在输入和输出数据的基础上,从一组给定的模型类中,确定一个与所测系统等价的模型。

”简单的来说,就是在现有数据的基础上,按照一个准则在一组模型类中选择一个与提供的数据拟合得最好的模型。

而根据最小二乘法的定义[2]:“最小二乘法是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配。

”其基本思想就是让实测数据和估计数据之间的平方和最小,这恰恰是系统辨识所需要解决的问题,所以最小二乘法很早就被用来求解辨识中需要的拟合数学模型。

本文在阐述最小二乘法理论的基础上对于其在系统辨识中的应用做了介绍,并指出实际应用中存在的不足,列举了几种改进型的最小二乘算法来改进系统辨识能力,最后给出了系统辨识的发展趋势。

2 基于最小二乘法的系统辨识的理论基础及应用2.1 系统辨识的理论基础从字面上讲,系统辨识( System Identification) 就是识别一个系统、辨识一个系统[3]。

系统通常是由表征系统输入输出关系的数学模型描述的,这个模型有其特定的结构和参数。

因此,系统辨识包含系统结构辨识( System Structure Identification) 和参数估计( Parameter Estimation) .系统结构(或模型结构) 就是系统数学表达式的形式。

基于最小二乘法的系统参数辨识

基于最小二乘法的系统参数辨识

基于最小二乘法的系统参数辨识研究生二队李英杰 082068摘要:系统辨识是自动控制学科的一个重要分支,由于其特殊作用,已经广泛应用于各种领域,尤其是复杂系统或参数不容易确定的系统的建模。

过去,系统辨识主要用于线性系统的建模,经过多年的研究,已经形成成熟的理论。

但随着社会、科学的发展,非线性系统越来越受到人们的关注,其控制与模型之间的矛盾越来越明显,因而非线性系统的辨识问题也越来越受到重视,其辨识理论不断发展和完善本。

文重点介绍了系统参数辨识中最小二乘法的基本原理,并通过热敏电阻阻值温度关系模型的辨识实例,具体说明了基于最小二乘法参数辨识在Matlab中的实现方法。

结果表明基于最小二乘法具有算法简单、精度较高等优点。

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

这是因为对象的动态特性被认为必然表现在它的变化着的输入输出数据之中,辨识只不过是利用数学的方法从数据序列中提炼出对象的数学模型而已[1]。

最小二乘法是系统参数辨识中最基本最常用的方法。

最小二乘法因其算法简单、理论成熟和通用性强而广泛应用于系统参数辨识中。

本文基于热敏电阻阻值与温度关系数据,介绍了最小二乘法的参数辨识在Matlab中的实现。

2. 系统辨识一般而言,建立系统的数学模型有两种方法:激励分析法和系统辨识法。

前者是按照系统所遵循的物化(或社会、经济等)规律分析推导出模型。

后者则是从实际系统运行和实验数据处理获得模型。

如图1 所示,系统辨识就是从系统的输入输出数据测算系统数学模型的理论和方法。

更进一步的定义是L.A.Zadeh 曾经与1962 年给出的,即“系统辨识是在输入和输出的基础上,从系统的一类系统范围内,确立一个与所实验系统等价的系统”。

另外,系统辨识还应该具有3 个基本要素,即模型类、数据和准则[5]。

被辨识系统模型根据模型形式可分为参数模型和非参数模型两大类。

最小二乘法和神经网络系统辨识的设计论文

最小二乘法和神经网络系统辨识的设计论文

摘要随着科学技术的发展,各门学科的研究方法进一步趋向定量化,人们在生产实践科学实验中对研究的复杂对象通常通过观测和计算定量判明其内在规律,为此必须建立所研究对象的数学模型,由此提出了系统辨识问题。

文中介绍经典辨识方法中应用较为广泛的最小二乘法辨识。

最小二乘通过极小化误差的二次方和函数确定模型参数。

详细分析了最小二乘法、最小二乘估计及其性质,通过对一给定系统利用Matlab求出模型参数表明该算法的有效性。

然而由于经典辨识方法对一些不能线性化的非线性系统进行辨识,我们提出了人工神经网络辨识系统。

它不需要预先知道被测系统的模型,通过直接学习系统的输入输出数据实现。

文中重点了分析BP网络辨识,并且在Matlab环境下应用BP神经网络建立时间序列人口预测模型,检测预测效果。

关键词:系统辨识最小二乘法神经网络AbstractWith the development of science and technology, research methods of each discipline tends to further quantitative, in the production practice of scientific experiments in the study of complex objects, usually through observation and calculation of quantitative ascertain its inherent law, this must be established to study mathematics model, which proposed a system identification problem.Describes the definition of system identification, the contents of step, classification, and introduces of the input signal of the system identification.Least squares by minimizing the quadratic error and functions to determine the model parameters. Detailed analysis of the least squares method, least squares estimation and its properties, and show that the effectiveness of the algorithm by using Matlab to calculate the model parameters for a given system.Since the classical identification method can not be linearized nonlinear system, helpless, artificial neural network recognition system. It does not need to know in advance the model of the system under test, and achieve through learning system input and output data.In this paper, the focus of the BP network identification and application of BP neural network time series of population projections model, testing the prediction effect.Keywords: System identification Least squares method Neural netwo目录目录摘要 (I)ABSTRACT ........................................................................................................ .II 目录 ................................................................................................................... I II 第一章绪论.. (1)1.1问题的提出及研究意义 (1)1.2系统辨识的发展和现状 (1)第二章系统辨识 (3)2.1辨识的定义 (3)2.2辨识的内容和步骤 (3)2.3辨识的分类 (4)2.3.1 离线辨识 (4)2.3.2在线辨识 (5)2.4辨识的输入信号 (5)2.4.1白噪声 (6)2.4.2伪随机二位式序列 (7)第三章最小二乘法辨识 (9)3.1最小二乘法 (9)3.2最小二乘估计算法 (12)3.3最小二乘估计的概率性质 (15)第四章基于神经网络的系统辨识 (19)4.1神经网络的简介 (19)4.1.1神经网络的结构和类型 (19)4.2BP网络辨识 (21)结论 (34)参考文献 (35)致谢 (36)第一章绪论1.1 问题的提出及研究意义在自然科学和社会科学的许多领域中,人们越来越重视对系统进行定量的系统分析系统综合仿真控制和预测。

系统辨识-最小二乘法

系统辨识-最小二乘法

5.3 Matlab源程序:%最小二乘估计clearu=[ 1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.6260.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.4501.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); %方差为0.1z=zeros(1,30);for k=3:31z(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);endh0=[-z(2) -z(1) u(2) u(1)]';HLT=[h0,zeros(4,28)];for k=3:30h1=[-z(k) -z(k-1) u(k) u(k-1)]';HLT(:,k-1)=h1;endHL=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(26);z(27);z(28);z(29); z(30);z(31)];%求出FAIc1=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)%递推最小二乘法估计clearu=[ 1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.6260.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.4501.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); %方差为0.1for k=3:31z(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);endc0=[0.001 0.001 0.001 0.001]'; %直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(4,4); %直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005; %取相对误差E=0.000000005c=[c0,zeros(4,30)]; %被辨识参数矩阵的初始值及大小e=zeros(4,30); %相对误差的初始值及大小for k=3:30; %开始求Kh1=[-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; %求被辨识参数ce1=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<=Ebreak; %如果参数收敛情况满足要求,终止计算endend%display('方差为0. 1递推最小二乘法辨识后的结果是:');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;endendfor i=3:31;if(c(2,i)==0)q2=c(2,i-1);break;endendfor i=3:31;if(c(3,i)==0)q3=c(3,i-1);break;endendfor i=3:31;if(c(4,i)==0)q4=c(4,i-1);break;endenda1=q1a2=q2b1=q3b2=q4%辅助变量递推最小二乘法估计clearna=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.6260.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.4501.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); %方差为0.1for k=3:31;h=[-y(k-1),-y(k-2),u(k-1),u(k-2)]';y(k)=h'*siitt+n(k)+1.642*n(k-1)+0.715*n(k-2);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);enda1=siit0(1)a2=siit0(2)b1=siit0(3)b2=siit0(4)clear%广义最小二乘估计clear;nn = normrnd(0,sqrt(0.1),1,31)'; %方差为0.1uk=[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)];endsiit=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(i-2); endfor i=1:29;fai(i,:)=[-e(i+1) -e(i)];endf=inv(fai'*fai)*fai'*e(3:31)';for i=3:31;yk(i)=yk(i)+f(1)*yk(i-1)+f(2)*yk(i-2);endyk(2)=yk(2)+f(1)*yk(1);for i=3:30;uk(i)=uk(i)+f(1)*uk(i-1)+f(2)*uk(i-2);enduk(2)=uk(2)+f(1)*uk(1);for j=1:30for i=1:29;A(i,:)=[-yk(i+1) -yk(i) uk(i+1) uk(i)];endsiit=inv(A'*A)*A'*yk(3:31)';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(i-2); endfor i=1:29;fai(i,:)=[-e(i+1) -e(i)];endf=inv(fai'*fai)*fai'*e(3:31)';k1(j)=f(1);k2(j)=f(2);for i=3:31;yk(i)=yk(i)+f(1)*(yk(i-1))+f(2)*(yk(i-2));endyk(2)=yk(2)+f(1)*yk(1);for i=3:30uk(i)=uk(i)+f(1)*uk(i-1)+f(2)*uk(i-2);enduk(2)=uk(2)+f(1)*uk(1);endsiit'%增广矩阵估计参数clearu=[ 1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.6260.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.4501.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); %方差为0.1z=zeros(7,30);zs=zeros(7,30);zm=zeros(7,30);zmd=zeros(7,30);%输出采样、不考虑噪声时系统输出、不考虑噪声时模型输出、模型输出矩阵的大小z(2)=0;z(1)=0;zs(2)=0;zs(1)=0;zm(2)=0;zm(1)=0;zmd(2)=0;zmd(1)=0;%给输出采样、不考虑噪声时系统输出、不考虑噪声时模型输出、模型输出赋初值for k=3:31z(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);endc0=[0.001 0.001 0.001 0.001]'; %直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(4,4); %直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005; %取相对误差E=0.000000005c=[c0,zeros(4,30)]; %被辨识参数矩阵的初始值及大小e=zeros(4,30); %相对误差的初始值及大小for k=3:30; %开始求Kh1=[-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; %求被辨识参数czs(k)=-1.642*z(k-1)-0.715*z(k-2)+0.39*u(k-1)+0.35*u(k-2);%系统在M序列的输入下不考虑扰动时的输出响应zm(k)=[-z(k-1),-z(k-2),u(k-1),u(k-2)]*[c1(1);c1(2);c1(3);c1(4)];%模型在输入下不考虑扰动时的的输出响应zmd(k)=h1'*c1;%模型在输入下的的输出响应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<=Ebreak; %如果参数收敛情况满足要求,终止计算endend%display('方差为0. 1递推最小二乘法辨识后的结果是:');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;endendfor i=3:31;if(c(2,i)==0)q2=c(2,i-1);break;endendfor i=3:31;if(c(3,i)==0)q3=c(3,i-1);break;endendfor i=3:31;if(c(4,i)==0)q4=c(4,i-1);break;endenda1=q1a2=q2b1=q3b2=q4%用夏氏偏差修正法估计参数clear;u=[ 1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.6260.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.4501.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); %方差为0.1z=zeros(1,30);for k=3:31z(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);endh0=[-z(2) -z(1) u(2) u(1)]';HLT=[h0,zeros(4,28)];for k=3:30h1=[-z(k) -z(k-1) u(k) u(k-1)]';HLT(:,k-1)=h1;endHL=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(26);z(27);z(28);z(29); z(30);z(31)];%求出FAIc1=HL'*HL;c2=inv(c1);c3=HL'*y;c=c2*c3;fai1_xiashi=HL;siit1_ls_guzhi=c;ka_ma=inv(fai1_xiashi'*fai1_xiashi)*fai1_xiashi';M_xiashi=eye(29)-fai1_xiashi*ka_ma;siit_N0_xshi=siit1_ls_guzhi;siit_bxs=[10,10,10,10]';for n=1:30e=zeros(29,1);e(3)=y(5)+siit_N0_xshi(1,1)*y(4)+siit_N0_xshi(2,1)*y(3)-siit_N0_xshi(3,1)*u(4)-siit_N0_xshi(4,1)*u(3);e(4)=y(6)+siit_N0_xshi(1,1)*y(5)+siit_N0_xshi(2,1)*y(4)-siit_N0_xshi(3,1)*u(5)-siit_N0_xshi(4,1)*u(4);e(5:29) = y(5:29) - fai1_xiashi(5:29,:) * siit_N0_xshi;ou_mei_ka=zeros(29,1);for i=1:29ou_mei_ka(i,:)=-e(i);endD_xiashi=ou_mei_ka'*M_xiashi*ou_mei_ka;f_xiashi=inv(D_xiashi)*ou_mei_ka'*M_xiashi*y(1:29);siit_b=ka_ma*ou_mei_ka*f_xiashi;siit_xiashi=siit1_ls_guzhi-siit_b;if norm(siit_b-siit_bxs)/norm(siit_bxs)<0.0001break ;endsiit_N0_xshi=siit_xiashi;siit_bxs=siit_b;endsiit1_xiashi=siit_xiashi;%display('利用夏氏修正法得出的辨识结果:');a1=siit1_xiashi(1)a2=siit1_xiashi(2)b1=siit1_xiashi(3)b2=siit1_xiashi(4)。

基于最小二乘法的系统辨识的设计与实现

基于最小二乘法的系统辨识的设计与实现

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 基于最小二乘法的系统辨识的设计与实现课程(论文)题目:基于最小二乘法的系统辨识摘要:最小二乘法是一种经典的数据处理方法。

最小二乘的一次性完成辨识算法(也称批处理算法),他的特点是直接利用已经获得的所有(一批)观测数据进行运算处理。

在系统辨识领域中, 最小二乘法是一种得到广泛应用的估计方法, 可用于动态系统, 静态系统, 线性系统, 非线性系统。

在随机的环境下,利用最小二乘法时,并不要求观测数据提供其概率统计方面的信息,而其估计结果,却有相当好的统计特性。

关键词:最小二乘法;系统辨识;参数估计 1 引言最小二乘理论是有高斯( K.F.Gauss)在 1795 年提出:未知量的最大可能值是这样一个数值,它使各次实际观测值和计算值之间的差值的平方乘以度量其精度的数值以后的和最小。

这就是最小二乘法的最早思想。

最小二乘辨识方法提供一个估算方法,使之能得到一个在最小方差意义上与实验数据最好拟合的数学模型。

递推最小二乘法是在最小二乘法得到的观测数据的基础上,用新引入的数据对上一次估计的结果进行修正递推出下一个参数估计值,直到估计值达到满意的精确度为止。

1 / 10对工程实践中测得的数据进行理论分析,用恰当的函数去模拟数据原型是一类十分重要的问题,最常用的逼近原则是让实测数据和估计数据之间的距离平方和最小,这即是最小二乘法。

最小二乘法是一种经典的数据处理方法。

在随机的环境下,利用最小二乘法时,并不要求观测数据提供其概率统计方面的信息,而其估计结果,却有相当好的统计特性。

2 最小二乘法的系统辨识设单输入单输出线性定常系统的差分方程为:1),()()() 1()(01knkubkubnkxakxakxnn ( 1)上式中:)(ku为输入信号;)(kx为理论上的输出值。

系统辨识第5章 线性动态模型参数辨识 最小二乘法

系统辨识第5章 线性动态模型参数辨识 最小二乘法

度函数
,则称uS(uk()为) “持续激励”信号。
● 定义4 一个具有谱密度 Fn (为z 1的) 平f1z稳1 信f2号z 2u(k)称fn为z nn 阶
“持续激励”Fn信(e号j ),2 S若u (对) 一0 切形如 Fn (e j ) 0
的滤波器,关系式
,意味着

● 定理2 设输入信号u(kR)u是(0)平稳R随u (1机) 信号,Ru (如n 果1)相关函数矩阵

式中
zL H L nL
nzHLLL[[zn(h(hh11TT)T),((,(zL12n())()22)),,,,znz(((LzLzL)(()]10]))1)
z(1 na ) z(2 na )
z(L na )
u(0) u(1)
u(L 1)
u(1 nb )
u(2
nb
)
u(L nb )
5.2 最小二乘法的基本概念
● 两种算法形式
① 批处理算法:利用一批观测数据,一次计算或经反复迭代,
以获得模型参数的估计值。

递推算法:在上次模型参数估计值
ˆ
(k
1)的基础上,根据当
前获得的数据提出修正,进而获得本次模型参数估计值ˆ (k ),
广泛采用的递推算法形式为
(k ) (k 1) K (k )h(k d )~z (k )
z(k ) h (k ) n(k )
式中z(k)为模型输出变量,h(k)为输入数据向量, 为模型参
数向量,n(k)为零均值随机噪声。为了求此模型的参数估计值, 可以利用上述最小二乘原理。根据观测到的已知数据序列
和{z(k)} ,{h极(k小)} 化下列准则函数
L
J ( ) [z(k ) h (k ) ]2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 最小二乘法的原理
3.1 最小二乘法一次完成推导 本文中以一个 SISO 系统为例说明最小二乘法的原理。 假设一个 SISO 系统如下图所示:
其离散传递函数为:
G( z 1 )

B(z 1) A( z 1 )

b1z 1 b2 z 2 bn z n 1 a1z 1 a2 z 2 an z n
的数据是实时采集的系统输入输出数据,应用递推算法对参数估计值进行不断修正,以 取得更为准确的参数估计值。由于在线辨识方法具有实时采集系统输入输出数据,实时
辨识模型参数,且占据计算机存储量小的优点,因此与离线辨识相比,在线辨识方法得到 了更为广泛的应用。在线辨识的参数估计的最小二乘递推算法如下:
^θ(k+1) = ^θ(k)+K(k+1)[y(k+1)-xT(k+1)^θ(k)]

N
)
bn
(6)

y(n 1)
y
=

y(n
2)


y(n

N
)
a1



,
bn

,
b0

bn
(n 1)

=


(n
2)

(n N )
取泛函 J ( ) 为
N
J ( ) (Y )2 e2 (n i) eT e (Y )T (Y ) i 1
最小二乘法原理既是使 J ( ) 最小,对其求极值得:
J


[(Y
)T (Y
)] 0
由此可得系统的最小二乘法估计值为:
关键词:最小二乘法;系统辨识;参数估计
1 引言
最小二乘理论是有高斯(K.F.Gauss)在 1795 年提出:“未知量的最大可能值是这样 一个数值,它使各次实际观测值和计算值之间的差值的平方乘以度量其精度的数值以后 的和最小。”这就是最小二乘法的最早思想。
最小二乘辨识方法提供一个估算方法,使之能得到一个在最小方差意义上与实验数 据最好拟合的数学模型。递推最小二乘法是在最小二乘法得到的观测数据的基础上,用 新引入的数据对上一次估计的结果进行修正递推出下一个参数估计值,直到估计值达到 满意的精确度为止。
得到渐消记忆的最小二乘递推算法如下:
^θ(k+1) = ^θ(k)+K(k+1)[y(k+1)-xT(k+1)^θ(k)] K(k+1) = P(k)x(k+1)[λ+xT(k+1)P(k)x(k+1)]-1 P(k+1) =1λ[P(k)-K(k+1)xT(k+1)P(k)]
递推初值:^θ(0) =任意值;P(0) =α 2 I,α取计算机容许的最大值。
课程(论文)题目:基于最小二乘法的系统辨识 : 摘要 最小二乘法是一种经典的数据处理方法。最小二乘的一次性完成辨识算法(也称批处理算
法),他的特点是直接利用已经获得的所有(一批)观测数据进行运算处理。在系统辨识领域中,最 小二乘法是一种得到广泛应用的估计方法,可用于动态系统,静态系统,线性系统,非线性系统。在随 机的环境下,利用最小二乘法时,并不要求观测数据提供其概率统计方面的信息,而其估计结果, 却有相当好的统计特性。
到式 3.5 中,写成矩阵的形式为:
Y e
3.6
y(n)
y(n 1) y(1) u(n) u(1)




y(n
1)
y(n)
y(2)
u(n 1)

u(2)




y(n N ) y(n N 1) y(N ) u(n N ) u(N )
3.4
令(k) [ y(k 1) y(k 2) y(k n) u(k 1) u(k 2) u(k n)]T
[a1 a2 an b1 b2 bn ]
则式 3.4 可以写为:
y(k) T (k) e(k)
3.5
将上述式子扩展到 N 个输入、输出观测值{ u(k), y(k) },k=1,2,…,N+n。将其代入
分别测出 n+N 个输出输入值 y(1), y(2), y(n N ),u(1),u(2),,u(n N ) ,则可以写
出 N 个方程,即 y(n 1) a1 y(n) a2 y(n 1) an y(1) b0u(n 1) b1u(n) bnu(1) (n 1) y(n 2) a1 y(n 1) a2 y(n) an y(2) b0u(n 2) b1u(n 1) bnu(2) (n 2) y(n N ) a1 y(n N 1) a2 y(n N 2) an y(N )
=
(x
T m
x
m
)
1
其最优性准则函数为:
m
J = e2 (i) i 1
其中 m 为数据采集的次数,e 为残差向量。由于上述递推算法无法反映参数随时间变化 的特点,新数据被大量的老数据所淹没,对于慢时变参数的辨识来说,这必然得不到跟
踪参数变化的实时估计,因此又进一步有了改进的最小二乘递推算法,即带遗忘因子的 渐消记忆的递推算法,该算法贬低老数据的作用,强调新数据的作用,选取遗忘因子λ,
在观测过程中往往附加有随机干扰。 x(k) 的观测值 y(k) 可表示为
y(k) x(k) n(k)
(2)
将式(2)代入式(1)得 y(k) a1y(k 1) an y(k n) b0u(k) b1u(k 1)
n
bnu(k n) n(k) ai n(k i)
2 最小二乘法的系统辨识
设单输入—单输出线性定常系统的差分方程为: x(k) a1x(k 1) an x(k n) b0u(k) bnu(k n), k 1,2,3, (1)
上式中: u(k) 为输入信号; x(k) 为理论上的输出值。 x(k) 只有通过观测才能得到,
(3)
i 1
我们可能不知道 n(k) 的统计特性,在这种情况下,往往把 n(k) 看做均值为 0 的白噪
声。 设
n
(k) n(k) ain(k i) i 1
则式(3)可以写成 y(k) a1y(k 1) an y(k n) b0u(k) b1u(k 1)
bnu(k n) (k)
(4) (5)
在测量 u(k) 时也有测量误差,系统内部也可能有噪声,应当考虑它们的影响。
因此假定 (k) 不仅包含了 x(k) 的测量误差,而且还包含了 u(k) 的测量误差和系统
内部噪声。假定 (k) 是不相关舱机序列(实际上 (k) 是相关随机序列)。
参考程序
%





z(k)=0.1*z(k-1)-0.5*z(k-2)+0.6*z(k-3)+u(k-1)+0.5*u(k-2)-0.2*u(k-3)+v(k)/800%
对工程实践中测得的数据进行理论分析,用恰当的函数去模拟数据原型是一类十分 重要的问题,最常用的逼近原则是让实测数据和估计数据之间的距离平方和最小,这即 是最小二乘法。最小二乘法是一种经典的数据处理方法。在随机的环境下,利用最小二 乘法时,并不要求观测数据提供其概率统计方面的信息,而其估计结果,却有相当好的 统计特性。
N (2n 1) 测量矩阵。因此 N<2n+1,方程数少于未知数数目,则方程组的解是不定的,
不能唯一的确定参数向量。如果 N=2n+1,方程数正好与未知数数目相等,当噪声 =0
时,就能准确的解出
1y
如果噪声 0 ,则
1y 1
从上式可以看出噪声 对参数估计有影响,为了尽量减小噪声 对 估值的影响,应取 N>(2n+1),即方程数大于未知数数目。在这种情况下,不能用解方程的办法来求 ,而要 采用数理统计的办法,以便减小噪声对 估值的影响。在给定输出向量 y 和测量矩阵 的条件下求系统参数 的估值,这就是系统辨识问题。可用最小二乘法来就 的估值。
3.1
输入输出的关系为:
u(k) G(z 1 ) e(k) y(k)Байду номын сангаас
3.2
进一步,我们可以得到:
y(k) A(z 1 ) u(k) B(z 1 ) e(k)
3.3
其中,扰动量 e(k) 为均值为 0,不相关的白噪声。 将式 3.3 写成差分方程的形式: y(k) a1 y(k 1) a2 y(k 2) an y(k n) b1u(k 1) b2u(k 2) bnu(k n) e(k)
其最优性准则函数为:
m
J = mie2 (i) i 1
其中加权系数 0<λ≤1。λ通常在 0.9 与 0.99 之间取值。
5 参考文献
[1].郭利辉,朱励洪,基于 MATLAB 的最小二乘法系统辨识与仿真,许昌学院学报,第 29 卷 第 2 期,2010 年 [2].程婵娟,系统辨识的线性规划方法研究,2009 年 [3].吴进华,基于 BP 神经网络的非线性动态系统辨识方法,2009 年 [4].刘静纨,最小二乘法在系统辨识中的应用,北京建筑工程学院学报,第 20 卷 第 3 期,2004 年9月 [5].王浩宇等,系统辨识及自适应控制系统算法仿真实现,控制工程,第 15 卷增刊,2008 年 [6].徐洪泽等,基于遗传算法的系统辨识方法可靠性分析,模式识别与人工智能,第 13 卷 第 4 期,2000 年 [7].黄文梅等,系统分析与仿真,长沙:国防科技大学出版社,1999 年 [8].李言俊,张科,系统辨识理论及应用,北京:国防工业出版社,2009 年
相关文档
最新文档