系统辨识最小二乘参数估计matlab
matlab基于最小二乘、全局化算法、遗传算法的参数识别

最小二乘法:%递推公式,更新 p0=p2;for n=2:N-1%%递推最小二乘法K0=p0*X(n,:)'*inv(1+X(n,:)*p0*X(n,:)');%计算KTheta_abs=Theta_abs+K0*(Y(n)-X(n,:)*Theta_abs);%计算估计值Theta ;p3=p0-K0*X(n,:)*p0;%计算P p0=p3;%误差平方和最小 Y1=X(n,:)*Theta_abs;%递推值 J=(Y(n,:)-Y1)*(Y(n,:)-Y1)'if (J<err)%设定平方误差最小,跳出循环 break; end; end对于()()()()()b n a n n k u b k u b n y a k y a k y b a -++=-+-+.......111 引进后移算子()()11-=-k y k y q 假定在初始条件0时z 变换得到()()()ab b n a n n n z a z a z b z b b z X z Y z H ----+++++==...1 (11110)ARX 模型有:()()⎪⎩⎪⎨⎧++=+++=------b b a n n n a n zb z b b q B za z a q A (11)101111 ()()()()()k v k u q B q k y q A d +=---11;()k v 为均值为0的噪声项 上式可以改写为()()()()l k k v i k u b i k z a k z ban i i n i i ,..,2,1,11=+-+--=∑∑==上式改写为最小二乘格式()())(k v k h k z T +=θ(3) 对于(3)式的l次观测构成一个线性方程组[][]⎪⎩⎪⎨⎧=------=Tn n Tba na b b b a a a n k u k u n k z k z k h ,...,,,,...,,)(),...,1(),(),...,1()(2121θ即 l l l V H Z +=θ.()()()[]()()()[]Tl Tl l v v v V l z z z Z ,...2,1,,...,2,1=()()()()()()()()()⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-------------=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=)()1()(21)2()1(10)1(021b a b a b a l n l u l u n l z l z n u u n z z n u u n z z l h h h H取极小化准则函数()()[]()()θθθL T L l lk T H z H z k h k z J --=-=∑=12,极小化()θJ ,求得参数θ的估计值θˆ,[]T n n na b b b a a a ˆ,...,ˆ,ˆ,ˆ,...,ˆ,ˆˆ2121=θ ()()[]()()θθθˆˆˆ12ll T l l lk T H Z H Z k h k z J --=-=∑=表示为了确定使准则最小的条件,将该式对各参数求导,并令其结果等于零:()()l T l lT l l l l Z H H H H Z H J 1ˆ,0ˆ2ˆ-==--=∂∂θθθ即,只要矩阵l H 是满秩的,l Tl H H 则是正定的,使准则为极小的条件得到满足,最小二乘估计的递推算法(RLS )最小二乘法,不仅占用大量内存,而且不适合于在线辨识,为了解决这个问题,把它转化为递推算法:修正项+=+kk θθˆˆ1 ()()()()()()()()()⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-------------=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=)()1()(21)2()1(10)1(021b a b a b a l n l u l u n l z l z n u u n z z n u u n z z l h h h H若令()1-=l T l l H H P ,则[][]l T l l T l l l l l T l l l P h Ph h I h P P h h P P 111111111+-+++-++++-=+=[][]lT l l l l l Tl l l l l T l l l l l P h K I P h P h h P K h z K 111111111111;1;ˆˆ++++++++++++-=+=-+=θθθ加权递推最小二乘(RWLS ):()()()()(),11k e k u z B k z z A +=--()()()(),11k v zC zD k e --=e(k)为有色噪声,v(k)为白噪声。
系统辨识最小二乘Matlab仿真

系统辨识和最小二乘参数估计Matlab仿真一、系统辨识在控制系统的分析中,首先要建立系统的数学模型,控制系统的数学模型是定量描述系统或过程内部物理量(或变量)之间关系的数学表达式。
一般来说,建立控制系统数学模型有两种基本方法:(1)机理建模(白箱模型):即根据系统内在运行机制、物料和能量守恒等物理学、化学规律建立系统的数学模型,一般步骤如下:Step1:根据系统工作原理及其在控制系统中的作用,确定输入和输出;Step2:根据物料和能量守恒等关系列写基本方程式;Step3:消去中间量;Step4:获得系统模型;(2)实验法建模(黑箱模型):即对于机理尚不清楚或机理过于复杂的系统,可以人为的对其施加某种测试信号,并记录其输出响应,或者记录正常运行时的输入输出数据,然后利用这些输入输出数据确定系统模型结构和参数。
多年来,系统辨识已经发展为一门独立学科分支,通过系统辨识建立一个对象的数学模型,通常包括两方面的工作:一是模型结构的确定(模型的类型、阶次),二是模型参数估计。
根据时间是否连续,参数模型又可以分为连续时间系统模型和离散时间系统参数模型,这两类模型均可采用输入输出模型和状态空间模型描述,离散系统采用差分方程描述,以单输入单输出(SISO)离散系统参数模型为例。
1.确定性模型SISO系统确定性模型可表示为:u(k)和y(k)分别为输入和输出,d为纯延时。
2.随机性模型如果受到随机扰动,则式子可写为:为系统随机扰动,其结构如图:系统辨识的一般步骤如图:从图中可以看出,利用辨识的方法建立系统数学模型,从实验设计到模型获得,需要这些步骤。
二、最小二乘参数估计1.批处理最小二乘考虑以下CAR模型:为白噪声,结构参数na、nb和d已知,参数估计的任务就是根据可测量的输入输出,确定如下参数:仿真实例:式中,为方差为1的白噪声,选用幅值为1的逆M序列作为输入,LS算法进行参数估计,仿真结果如图:仿真程序(Matlab):%批处理最小二乘参数估计(LS)clear all;a=[1 -1.5 0.7]'; b=[1 0.5]'; d=3; %对象参数na=length(a)-1; nb=length(b)-1; %na、nb为A、B阶次L=500; %数据长度uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)yk=zeros(na,1); %输出初值x1=1; x2=1; x3=1; x4=0; S=1; %移位寄存器初值、方波初值xi=randn(L,1); %白噪声序列theta=[a(2:na+1);b]; %对象参数真值for k=1:Lphi(k,:)=[-yk;uk(d:d+nb)]'; %此处phi(k,:)为行向量,便于组成phi矩阵y(k)=phi(k,:)*theta+xi(k); %采集输出数据IM=xor(S,x4); %产生逆M序列if IM==0u(k)=-1;elseu(k)=1;endS=not(S); M=xor(x3,x4); %产生M序列%更新数据x4=x3; x3=x2; x2=x1; x1=M;for i=d+nb:-1:2uk(i)=uk(i-1);enduk(1)=u(k);for i=na:-1:2yk(i)=yk(i-1);endyk(1)=y(k);endthetae=inv(phi'*phi)*phi'*y' %计算参数估计值thetae2.递推最小二乘在批处理最小二乘法时,由于每次处理的数据量较大,而且常常要求对象参数能够在线实时估计,解决的方法就是将其化成递推算法,其基本思想为:算法介绍:仿真实例:式中,为方差为0.1的白噪声,取初值,选择方差为1的白噪声作为输入信号u(k),采用RLS算法进行参数估计,仿真结果如图:仿真程序(Matlab):%递推最小二乘参数估计(RLS)clear all; close all;a=[1 -1.5 0.7]'; b=[1 0.5]'; d=3; %对象参数na=length(a)-1; nb=length(b)-1; %na、nb为A、B阶次L=400; %仿真长度uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)yk=zeros(na,1); %输出初值u=randn(L,1); %输入采用白噪声序列xi=sqrt(0.1)*randn(L,1); %白噪声序列theta=[a(2:na+1);b]; %对象参数真值thetae_1=zeros(na+nb+1,1); %thetae初值P=10^6*eye(na+nb+1);for k=1:Lphi=[-yk;uk(d:d+nb)]; %此处phi为列向量y(k)=phi'*theta+xi(k); %采集输出数据%递推最小二乘法K=P*phi/(1+phi'*P*phi);thetae(:,k)=thetae_1+K*(y(k)-phi'*thetae_1);P=(eye(na+nb+1)-K*phi')*P;%更新数据thetae_1=thetae(:,k);for i=d+nb:-1:2uk(i)=uk(i-1);enduk(1)=u(k);for i=na:-1:2yk(i)=yk(i-1);endyk(1)=y(k);endplot([1:L],thetae); %line([1,L],[theta,theta]); xlabel('k'); ylabel('参数估计a、b');legend('a_1','a_2','b_0','b_1'); axis([0 L -2 2]);。
利用Matlab进行系统辨识的技术方法

利用Matlab进行系统辨识的技术方法在Matlab中进行系统辨识的技术方法主要有参数估计法和非参数估计法两种。
1.参数估计法:参数估计法是通过拟合已知输入和输出数据的数学模型来估计系统的参数。
常用的参数估计方法包括最小二乘法(OLS)、最小二乘法(LSE)、最小二乘法(MLE)和极大似然估计法(MLE)等。
a) 最小二乘法(OLS):OLS方法通过最小化实际输出与模型预测输出之间的误差平方和来估计系统参数。
在Matlab中,可以使用lsqcurvefit函数来实现最小二乘法的系统辨识。
b) 最小二乘法(LSE):LSE方法是通过最小化实际输出与模型预测输出之间的误差平方和来估计系统参数。
在Matlab中,可以使用lsqnonlin函数来实现最小二乘法的系统辨识。
c) 最小二乘法(MLE):MLE方法是通过最大化似然函数来估计系统参数。
在Matlab中,可以使用mle函数来实现最大似然估计法的系统辨识。
2.非参数估计法:非参数估计法不需要事先指定系统的数学模型,而是直接根据输入和输出数据的统计特性进行系统辨识。
常用的非参数估计方法包括频域方法、时域方法和时频域方法等。
a) 频域方法:频域方法通过对输入和输出数据进行频谱分析来估计系统的频率响应。
常用的频域方法包括傅里叶变换、功率谱密度估计和频率响应函数估计等。
在Matlab中,可以使用fft函数和pwelch函数来实现频域方法的系统辨识。
b) 时域方法:时域方法通过对输入和输出数据进行时间序列分析来估计系统的时域特性。
常用的时域方法包括自相关函数估计和互相关函数估计等。
在Matlab中,可以使用xcorr函数来实现时域方法的系统辨识。
c) 时频域方法:时频域方法结合了频域方法和时域方法的优势,可以同时估计系统的频率响应和时域特性。
常用的时频域方法包括短时傅里叶变换和小波变换等。
在Matlab中,可以使用spectrogram函数和cwt函数来实现时频域方法的系统辨识。
用matlab实现最小二乘递推算法辨识系统参数

用matlab实现最小二乘递推算法辨识系统参数自动化系统仿真实验室指导教师:学生姓名班级计082-2 班学号撰写时间:全文结束》》-3-1 成绩评定:一.设计目的1、学会用Matlab实现最小二乘法辨识系统参数。
2、进一步熟悉Matlab的界面及基本操作;3、了解并掌握Matlab中一些函数的作用与使用;二.设计要求最小二乘递推算法辨识系统参数,利用matlab编程实现,设初始参数为零。
z(k)-1、5*z(k-1)+0、7*z(k-2)=1*u(k-1)+0、5*u(k-2)+v(k); 选择如下形式的辨识模型:z(k)+a1*z(k-1)+a2*z(k-2)=b1*u(k-1)+b2*u(k-2)+v(k);三.实验程序m=3;N=100;uk=rand(1,N);for i=1:Nuk(i)=uk(i)*(-1)^(i-1);endyk=zeros(1,N); for k=3:N yk(k)=1、5*yk(k-1)-0、7*yk(k-2)+uk(k-1)+0、5*uk(k-2);end%j=100;kn=0;%y=yk(m:j);%psi=[yk(m-1:j-1);yk(m-2:j-2);uk(m-1:j-1);uk(m-2:j-2)];%pn=inv(psi*psi);%theta=(inv(psi*psi)*psi*y);theta=[0 ;0;0;0];pn=10^6*eye(4);for t=3:Nps=([yk(t-1);yk(t-2);uk(t-1);uk(t-2)]);pn=pn-pn*ps*ps*pn*(inv(1+ps*pn*ps));theta=theta+pn*ps*(yk(t)-ps*theta);thet=theta;a1=thet(1);a2=thet(2);b1=thet(3);b2= thet(4);a1t(t)=a1;a2t(t)=a2;b1t(t)=b1;b2t(t)=b2;endt=1:N;plot(t,a 1t(t),t,a2t(t),t,b1t(t),t,b2t(t));text(20,1、47,a1);text(20,-0、67,a2);text(20,0、97,b1);text(20,0、47,b2);四.设计实验结果及分析实验结果图:仿真结果表明,大约递推到第步时,参数辨识的结果基本到稳态状态,即a1=1、5999,b1=1,c1=0、5,d1=-0、7。
Matlab最小二乘系统辨识

Matlab最⼩⼆乘系统辨识原理还是⽐较简单的,不赘述,程序⾥⾯的注释也写的⽐较清楚了%仿真对象:y(k)-1.5y(k-1)+0.7y(k-2)=v(k)+u(k)-0.8u(k-1)%辨识模型:y(k)+a1 y(k-1)+a2 y(k-2)=v(k)+b1 u(k)+b2 u(k-1)%数据长度取n=20000,加权矩阵为I,v(k)是服从正态分布的⽩噪声N(0,1),u(k)=sin(k)%待估计参数K=[a1 a2 a3 a4]';准则函数J(K)=(Yn-HnK)'(Yn-HnK);%将辨识模型写为:y(k)=v(k)+a1 y(k-1)+a2 y(k-2)+b1 u(k)+b2 u(k-1)% =v(k)+KHn%Hn=|y(2) y(1)|% |y(3) y(2)|% |.........|clearclose alldata_length=20002;%% 产⽣⽩噪声和输⼊v=randn(1,data_length);v=v./max(v);u=zeros(1,data_length);for k=1:data_lengthu(k)=sin(k);end%% 获得观测值y=zeros(1,data_length);for k=3:data_lengthy(k)=1.5*y(k-1)-0.7*y(k-2)+v(k)+u(k)-0.8*u(k-1);end%% 构造Hn和Y矩阵Hn=zeros(data_length-2,2);count=1;for k=1:10000Hn(k,2)=y(count);count=count+1;Hn(k,1)=y(count);Hn(k,4)=u(count);Hn(k,3)=u(count+1);end%% 求解参数Y=y(3:data_length)';c1=Hn'*Hn;c2=inv(c1);c3=Hn'*Y;K=c2*c3%% 将辨识得到的参数代⼊,得估计输出y_e=zeros(1,data_length);for k=3:data_lengthy_e(k)=K(1)*y_e(k-1)+K(2)*y_e(k-2)+v(k)+K(3)*u(k)+K(4)*u(k-1);end%% 画出实际输出和辨识输出,进⾏对⽐plot((1:data_length),y');title('实际输出')hold onplot((1:data_length),y_e');title('辨识输出')figuresubplot(2,1,1)plot((1:data_length),y');title('实际输出')subplot(2,1,2)plot((1:data_length),y_e');title('辨识输出')。
系统辨识最小二乘参数估计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参考文献: ................................................................................................... 错误!未定义书签。
基于MATLAB的最小二乘法参数辨识与仿真_石贤良

展开后可得 z ( k ) = - a1 z ( k - 1 ) - a2 z ( k - 2 ) - . . . - ana z ( k - na ) + b 1u ( k - 1 ) + b2 u ( k - 2 ) + . . . + bnb z ( k - nb ) 模型 ( 1) 可化成最小二乘格式: S z ( k ) = h ( k ) H+ n ( k ) ( 2) S 记 H= [ a 1, a2, . . . a na b 1, b1, . . . , bnb ] 为待估计 的参数。 h( k ) = [ - z ( k - 1 ), . . . , - z ( k - na ), u ( k - 1 ), . . . , u( k - nb ) ] , 对于 k= 1 , 2 , . . . . L ( L 为数 据长度 ) , 方程 ( 2) 构成一个线性方程组, 写成 zL ( k ) = H L ( k ) H+ nL ( k ) z ( 1) ZL = h ( 1)
# 46#
微
处
理
机
2005 年
快速准确地估计出系统参数, 而且在对模型结构或 外部噪声干扰发生较大变化的情况下 , 也能获得较 好的辨识结果。在参数辨识仿真过程中 , 可根据实 验要求, 使用 M 语言编程不同的算法, 方便简捷。
表 1 最小二乘递推算法的辨识结果 ( N iose pow er= 0. 1) 参数 真值 估计值 图 3 被封装的最小二乘递推算法函数 a1 1. 5 1. 5004 a2 1 1. 003 a3 b1 b2 0 . 5 - 1. 5 - 0. 5 0. 5002 - 1. 498 - 0. 5001
matlab最小二乘法求参数

matlab最小二乘法求参数
matlab最小二乘法是一种常见的参数估计方法,可以在一组数据中找到最优的拟合曲线或拟合函数参数。
具体步骤如下:
1. 定义模型函数和目标函数
首先,需要定义一个模型函数,用于描述数据之间的关系。
例如,假设要拟合的函数是一条直线,可以定义模型函数为 y=a*x+b,其中a和b是待求参数,x和y是数据点。
然后,根据最小二乘法的原理,需要定义目标函数,即误差的平方和。
对于直线拟合,可以定义目标函数为 sum((y-a*x-b).^2)。
2. 求解参数
使用matlab内置的最小二乘法函数,可以快速求解出最优的参数值。
使用该函数的格式为[p,r]=polyfit(x,y,n),其中x和y是数据点的横纵坐标,n是多项式的阶数(对于直线拟合,n=1),p是拟合函数的系数,r是残差向量。
3. 绘制拟合曲线
得到拟合函数的系数之后,可以根据模型函数和参数值,绘制出拟合曲线。
使用matlab的plot函数,可以将拟合曲线和原始数据点一同绘制在同一张图中,以方便比较和分析。
总之,matlab最小二乘法是一种强大的参数估计方法,可用于解决各种数据拟合问题。
通过掌握其原理和使用方法,可以更好地应对实际应用中的数据分析需求。
- 1 -。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
H=zeros(300,6);%定义一个H“0”矩阵
fori=4:300
H(i,:)=[-z(i-1) -z(i-2) -z(i-3) u(i-1) u(i-2) u(i-3)];%用循环产生H矩阵
z1(i,:)=[z(i)];%用循环产生z矩阵
end
%计算参数%
c=inv(H'*H)*H'*z1%带入公式书上3.1.23
clc
clear%清理工作间变量
L=300;% M序列的周期
x1=1;x2=1;x3=1;x4=0;x5=1;x6=0;%四个移位积存器的输出初始值
fork=1:L;%开始循环,长度为L
u(k)=xor(x3,x4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”
x6=x5;x5=x4;x4=x3;x3=x2;x2=x1;x1=u(k);
zz5(i,:)=[z(i)];
end
aa5=inv(H5'*H5)*H5'*zz5
bb(5)=(zz5-H5*aa5)'*(zz5-H5*aa5)/L;
AIC(5)=L*log(bb(5))+4*n;
x=min(AIC)
fori=1:5
if(AIC(i)==x)
N=i%所辨识出的阶次N
end
end
end%大循环结束,产生输入信号u
plot(u)%绘图M序列
v=randn(300,1);%随机误差干扰
z=zeros(1,300);
fork=4:300
z(k)=0.10*z(k-1)+0.55*z(k-2)+0.40*z(k-3)+0.70*u(k-1)+0.90*u(k-2)-3.50*u(k-3)+v(k)/400;%用理想输出值作为观测值
bb(1)=(zz1-H1*aa1)'*(zz1-H1*aa1)/L;
AIC(1)=L*log(bb(1))+4*n;
n=2;%假设为2阶
fori=3:300
H2(i,:)=[-z(i-1) -z(i-2) u(i-1) u(i-2)];
zz2(i,:)=[z(i)];
end
aa2=inv(H2'*H2)*H2'*zz2
-3.5001
3
4数学模型的结构辨识
4.1根据汉格尔矩阵估计模型的阶次
设一个可观可控的SISO过程的脉冲响应序列为{个g(1),g(2),……g(L)},可以通过汉格尔(Hankel)矩阵的秩来确定系统的阶次。
令Hankel阵为:
,其中 决定 阵地维数,k可在1至 间任意选择。则有 。
如果 (过程的真实阶次),那么Hankel阵的秩等于 。因此可以利用Hankel阵的奇异性来确定系统的阶次 。
4.2根据残差平方和估计模型的阶次
SISO过程的差分方程模型的输出残差为 ,数据长度L, 为 阶时的数据矩阵, 为 阶时的参数的估计量, 为模型阶次估计值, 为真实阶次,则残差平方和函数 :
残差平方和有这样的性质:当L足够大时,随着 增加 先是显著地下降,当 > 时, 值显著下降的现象就终止。这就是损失函数法来定阶的原理。
end
aa3=inv(H3'*H3)*H3'*zz3
bb(3)=(zz3-H3*aa3)'*(zz3-H3*aa3)/L;
AIC(3)=L*log(bb(3))+4*n;
n=4;%假设为4阶
fori=5:300
H4(i,:)=[-z(i-1) -z(i-2) -z(i-3) -z(i-4) u(i-1) u(i-2) u(i-3) u(i-4)];
最小二乘辩识方法在系统辩识领域中先应用上已相当普及,方法上相当完善,可以有效的用于系统的状态估计,参数估计以及自适应控制及其他方面。
关键ቤተ መጻሕፍቲ ባይዱ:
最小二乘(Least-squares),系统辨识(System Identification)
目录:
1.目的
1.1掌握系统辨识的理论、方法及应用
1.2熟练Matlab下最小二乘法编程
1.3掌握M序列产生方法
2.设备
PC机1台(含Matlab软件)
3引言
3.1 课题背景
最小二乘理论是有高斯(K.F.Gauss)在1795年提出:“未知量的最大可能值是这样一个数值,它使各次实际观测值和计算值之间的差值的平方乘以度量其精度的数值以后的和最小。”这就是最小二乘法的最早思想。
最小二乘辨识方法提供一个估算方法,使之能得到一个在最小方差意义上与实验数据最好拟合的数学模型。递推最小二乘法是在最小二乘法得到的观测数据的基础上,用新引入的数据对上一次估计的结果进行修正递推出下一个参数估计值,直到估计值达到满意的精确度为止。
plot(1:5,[AIC(1) AIC(2) AIC(3) AIC(4) AIC(5)])
6实验结果:
c =
-0.1000
-0.5500
-0.4000
0.6998
0.8999
-3.5001
a1 =
-0.1000
a2 =
-0.5500
a3 =
-0.4000
b1 =
0.6998
b2 =
0.8999
b3 =
4.3根据AIC准则估计模型的阶次
具体的定阶用法是:对不同阶次首先用极大似然法估计参数,然后计算似然函数值及 值,找到使 的 作为 。
5程序
%待辨识系统 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%
a1=c(1),a2=c(2),a3=c(3),b1=c(4),b2=c(5),b3=c(6)%辨识出参数
%系统阶次辨识AIC算法%
bb=zeros(5,1);
n=1;%假设为1阶
fori=2:300
H1(i,:)=[-z(i-1) u(i-1)];
zz1(i,:)=[z(i)];
end
aa1=inv(H1'*H1)*H1'*zz1
zz4(i,:)=[z(i)];
end
aa4=inv(H4'*H4)*H4'*zz4
bb(4)=(zz4-H4*aa4)'*(zz4-H4*aa4)/L;
AIC(4)=L*log(bb(4))+4*n;
n=5;%假设为5阶
fori=6:300
H5(i,:)=[-z(i-1) -z(i-2) -z(i-3) -z(i-4) -z(i-5) u(i-1) u(i-2) u(i-3) u(i-4) u(i-5)];
最小二乘参数估计
摘要:
最小二乘的一次性完成辨识算法(也称批处理算法),他的特点是直接利用已经获得的所有(一批)观测数据进行运算处理。这种算法在使用时,占用内存大,离线辨识,观测被辨识对象获得的新数据往往是逐次补充到观测数据集合中去的。在应用一次完成算法时,如果要求在每次新增观测数据后,接着就估计出系统模型的参数,则需要每次新增数据后要重新求解矩阵方程 。
bb(2)=(zz2-H2*aa2)'*(zz2-H2*aa2)/L;
AIC(2)=L*log(bb(2))+4*n;
n=3;%假设为3阶
fori=4:300
H3(i,:)=[-z(i-1) -z(i-2) -z(i-3) u(i-1) u(i-2) u(i-3)];
zz3(i,:)=[z(i)];