系统辨识之最小二乘法

合集下载

系统辨识之最小二乘法

系统辨识之最小二乘法

系统辨识之最小二乘法方法一、最小二乘一次性算法:首先对最小二乘法的一次性辨识算法做简要介绍如下:过程的黑箱模型如图所示:其中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 引言系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

用于系统设计的仿真,则强调设计参数能正确地符合它本身的物理意义。

③预测这是辨识的一个重要应用方面,其目的是用迄今为止系统的可测量的输入和输出去预测系统输出的未来的演变。

例如最常见的气象预报,洪水预报,其他如太阳黑子预报,市场价格的预测,河流污染物含量的预测等。

预测模型辨识的等价准则主要是使预测误差平方和最小。

系统辨识—最小二乘法_3

系统辨识—最小二乘法_3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最小二乘法

最小二乘法

y (k ) = x(k ) + v(k )
y (k ) +
x(k ) = y (k ) − v(k )
n i=0

n
i =1
ai y (k − i) =

biu ( k − i ) + v ( k ) +

n
i =1
aiv (k − i)
ξ (k ) = v(k ) +

n
i =1
a iv (k − i)
系统辨识——最小二 (n) L − y (1) u (n + 1) L y (n + 1) y (n + 2) − y (n + 1) L − y (2) u (n + 2) L = M M M M M y (n + N ) − y (n + N − 1) L − y ( N ) u (n + N ) L a1 a 2 u (1) M ξ (n + 1) u (2) an ξ (n + 2) + b0 M u ( N ) b1 ξ (n + N ) M bn
系统辨识——最小二乘算法 系统辨识——最小二乘算法
系统参数a 系统参数a
a 1.5 a1 a2
^
1
a1 = −1.5003
a2 = 0.7006
^
0.5
a1=-1.5, a2= 0.7
0 theta -0.5 -1 -1.5 -2 0
10
20
30 time steps
40
50

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

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

最小二乘法参数辨识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 系统辨识简介系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

方法一、最小二乘一次性算法:首先对最小二乘法的一次性辨识算法做简要介绍如下:过程的黑箱模型如图所示:其中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 文件,实现上述算法。

此次算法的实现,采用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 的限制引起的,最小二乘辨识法是一种无偏估计方法。

方法二、最小二乘递推算法:最小二乘一次性算法计算量大,并且浪费存储空间,不利于在线应用,由此引出最小二乘参数估计的递推算法,其基本思想是按观测次序一步一修正,即:^^^'(1)()[()()(1)]k K k z k h k k θθθ=-+--'11()()(1)()[()(1)()]k K k P k h k h k P k h k -Λ=--+'()[()()](1)P k I K k h k P k =--这里选取估计参数的初值为全0矩阵,P 矩阵设置参数为100的对角阵,增益阵K 初值设置为10。

程序清单如下见附录:最小二乘递推算法Matlab 程序。

程序运行结果如下:图2 最小二乘递推算法参数真值与估计值图3 最小二乘递推算法待估参数过渡过程附录:1. 最小二乘一次性算法Matlab 程序%最小二乘一次性算法%Z(k)=1.5*Z(k-1)-0.7*Z(k-2)+2*u(k-1)+0.5u(k-2)+v(k)% na=2,nb=2clearclctic %计时开始L=200; %数据长度%生成M序列6阶a1=1;a2=0;a3=1;a4=0;a5=1;a6=0;M=zeros(L,1);for i=1:1:LM(i)=a1;a1=a2;a2=a3;a3=a4;a4=a5;a5=a6;a6=xor(M(i),a1);end%噪声v=randn(1,L);% na=2, 设置测量输出z(1)到z(na)的值为0z=[];z(1)=0;z(2)=0;%产生输出序列z 从z(na+1)开始,即z(3)开始for i=3:Lz(i)=1.5*z(i-1)-0.7*z(i-2)+2*M(i-1)+0.5*M(i-2)+v(i-2); end%构造HL矩阵na=2;nb=2; %模型阶次,并找出最大者赋给max if na>nbmax=na;elsemax=nb;end%HL矩阵的的维数hang=L-max;lie=na+nb;%构建HL矩阵用z和M填充HL矩阵与na,nb的最大数max有关HL=zeros(hang,lie);a=na;for j=1:1:nafor i=1:1:hangHL(i,j)=-z(i+a-1);enda=a-1;endb=nb;for j=na+1:1:liefor i=1:1:hangHL(i,j)=M(i+b-1);endb=b-1;end%构建ZL矩阵ZL=zeros(hang,1);for i=1:1:hang;ZL(i)=z(i+max);end%参数估计值th=zeros(na+nb,1);th=inv((HL'*HL))*HL'*ZL;th;%比较估计误差re为真值,th为估计值re=[-1.5,0.7,2,0.5]th'toc %计时结束2. 最小二乘递推算法Matlab程序%最小二乘递推算法%Z(k)=1.5*Z(k-1)-0.7*Z(k-2)+2*u(k-1)+0.5u(k-2)+v(k)% na=2,nb=2clearclctic %计时开始L=200; %数据长度%生成M序列6阶a1=1;a2=0;a3=1;a4=0;a5=1;a6=0;M=zeros(L,1);for i=1:1:LM(i)=a1;a1=a2;a2=a3;a3=a4;a4=a5;a5=a6;a6=xor(M(i),a1);end%噪声v=randn(1,L);% na=2, 设置测量输出z(1)到z(na)的值为0z=[];z(1)=0;z(2)=0;%产生输出序列z 从z(na+1)开始,即z(3)开始for i=3:Lz(i)=1.5*z(i-1)-0.7*z(i-2)+2*M(i-1)+0.5*M(i-2)+v(i-2); endna=2;nb=2; %模型阶次,并找出最大者赋给max if na>nbmax=na;elsemax=nb;end%HL矩阵的的维数hang=L-max;lie=na+nb;%构建HL矩阵用z和M填充HL矩阵与na,nb的最大数max有关HL=zeros(hang,lie);a=na;for j=1:1:nafor i=1:1:hangHL(i,j)=-z(i+a-1);enda=a-1;endb=nb;for j=na+1:1:liefor i=1:1:hangHL(i,j)=M(i+b-1);endb=b-1;end%P是(na+nb)*(na+nb)维,K是(na+nb)*1维,h'是1*(na+nb)维%递推求解P=100*eye(na+nb);Pstore=zeros(na+nb,hang);Pstore(:,1)=[P(1,1),P(2,2),P(3,3),P(4,4)];th=zeros(na+nb,hang);% 预估参数初值矩阵K初值th(:,1)=[0.001;0.001;0.001;0.001];K=[10;10;10;10];for i=1:hangh=HL(i,:)';K=P*h*inv(h'*P*h+1);th(:,i+1)=th(:,i)+K*(z(i+na)-h'*th(:,i));P=(eye(na+nb)-K*h')*P;Pstore(:,i+1)=[P(1,1),P(2,2),P(3,3),P(4,4)];endre=[-1.5,0.7,2,0.5]th(:,hang+1)'toc %计时结束i=1:hang+1;figure(1)plot(i,th(1,:),i,th(2,:),i,th(3,:),i,th(4,:))title('待估参数过渡矩阵')figure(2)plot(i,Pstore(1,:),i,Pstore(2,:),i,Pstore(3,:),i,Pstore(4,:)) title('估计方差变化过程')。

相关文档
最新文档