matlab参数识别

上传人:M****1 文档编号:467128776 上传时间:2023-03-04 格式:DOC 页数:29 大小:671.50KB
返回 下载 相关 举报
matlab参数识别_第1页
第1页 / 共29页
matlab参数识别_第2页
第2页 / 共29页
matlab参数识别_第3页
第3页 / 共29页
matlab参数识别_第4页
第4页 / 共29页
matlab参数识别_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《matlab参数识别》由会员分享,可在线阅读,更多相关《matlab参数识别(29页珍藏版)》请在金锄头文库上搜索。

1、最小二乘法:%递推公式,更新p0=p2;for n=2:N-1%递推最小二乘法K0=p0*X( n,:)* in v(1+X( n,:)*p0*X( n,:);%计算KTheta_abs=Theta_abs+K0*(Y(n)-X(n,:)*Theta_abs);%计算估计值 Theta;p3=p0-K0*X( n,:)*p0;%计算 Pp0=p3;% 误差平方和最小丫仁X(n ,:)*Theta_abs;%递推值J=(Y( n,:)-Y1)*(Y( n,:)-Y1)if (Jverr)%设定平方误差最小,跳出循环break;end;end对于 y(k )+qy(k 1 ). +ana(y -)

2、=du(k )+. +bhbu(k 入) 引进后移算子qyk二yk1假定在初始条件0时z变换得到H f Y (Z) _ 5 + 廿 + bnbZbH Z1ZnTX (z)1 + az + . + anazarXS型有:A(q* )=1 +印乙+ . + anazTB qJ =bb廿.bnbzbAqyk =q“Bquk v k ; v k为均值为0的噪声项上式可以改写为 z k 二-a qz ki 亠biU ki 亠v k , k 二 1,2,.,1i z!i 二上式改写为最小二乘格式z k = hT k v(k) ( 3)对于 (3 ) 式的I次观测构成一个线性方程组h(k) = Lz(k 1

3、),.,z(k na),u(k 1),.,u(k 斑)TT即71 -弍,a2,., ana,乙二 HR Vi .乙二 Iz1,z2,.,zl T,V| v1,v2,.vl Th2-zO z(l na) uOu1nb z(1)_z(2 -na) u(1 )u(2 -nb )z(l)z(l na)u(l1)u(l nb)_取极小化准则函数J 一7 “ _hT k J 七_HcTz_HlV,极小化Jr,求得参 k .4数b的估计值& ”=&逐,纸冒必必】J h二z k -hT k ? - Zl -HT乙hH表示为了确定使准则最小的条件,将该式 k 4对各参数求导,并令其结果等于零:2H|Z|-H|=

4、0,即?= H|THi H|T Zi,只要矩阵 Hi是满秩的, HH|则是正定的,使准则为极小的条件得到满足,最小二乘估计的递推算法(RLS)最小二乘法,不仅占用大量内存,而且不适合于在线辨识,为了解决这个问题, 把它转化为递推算法:彳“=彳修正项1(1)1 一-z(0)-z(1-na) u(0) u(1-nb)1h(2 )z(1)z(2 na) u(1 )u(2 nb )H i =:土(1 )z(l) z(l na)u(l1)u(l -nb)_若令 p =(htHi r,则 p+=p +几*|十=卩| 一Pihfi 卄|+严nip 彳 1 =彳 K| 1 k 1 - hlp| !K| 1T;

5、1 + hi 十P 十hi + -Ki 爪 pPhi 1P 1 口加权递推最小二乘(RWLS):e(k)为有色噪声,v(k)为白噪声。Az4 z k = B z4 u k ek,ek=Dz: f c(z。取 Az4 二Cz* , Dz,=1彳.1 =彳 Ki i Zi i h| iK ;K| 1 =1W| 11 hi i Ri 1 hi 1=I -Ki 1h|T1Rhi iRi当噪声为有色噪声时,采用增广最小二乘法:其思路采用CARMA模型。在实际应用中噪声v(k)有两种形式:?k =zk -1? k -1 ;V?k=zkk1 matlab最小二乘法拟合a,Jm=lsqcurvefit(fu

6、n,aO,x,y);fu n 不支持句柄函数 a0为最优化的初始值,fun为数据原型函数。x = lsqcurvefit(fun,xO,xdata,ydata,lb,ub); lb x 0 :收敛 0 :函数调用次数或迭代次数达到最大值(该值在 options中指定) 0:不收敛5) out:包含以下数据的一个结构变量 fun cCou nt函数调用次数 iteratio ns实际迭代次数 cgiterations实际PCG迭代次数(大规模计算用) algorithm实际使用的算法 stepsize最后迭代步长(中等规模计算用) firstorderopt一阶最优条件满足的情况(大规模计算用)

7、6) lam :上下界所对应的Lagrange乘子7) jac :结果(x点)处的雅可比矩阵输入参数其中输入变量的含义为: x0为初始解(缺省时程序自动取x0=0) t,y:拟合数据 v1,v2:参数待求x的上下界 options :包含算法控制参数的结构Lin eSearchType线搜索方法(,cubicpoly?,?quadcubic?缺 省值)opt=optimset(oldopts ,n ewopts)可以设定的参数比较多,对isqnonlin和isqcurvefit,常用的有以下一些参数:Diag no sties是否显示诊断信息(o n或off)Display 显示信息的级别(o

8、ff , iter , final, notify) LargeScale是否采用大规模算法(on或off)缺省值为on Maxlter最大迭代次数TolFun函数计算的误差限TolX决策变量的误差限Jacobian目标函数是否采用分析Jacobi矩阵(on ,off)MaxFunEvals目标函数最大调用次数LevenbergMarquardt 搜索方向选用 LM 法(,on?), GN 法(,off?,缺省值) LineSearchType 线搜索方法(,cubicpoly?,?quadcubic?缺省值) LargeScale: on | off Leve nbergMarquardt:

9、 on | off 例子1用matlab实现对f (申=msin申+几 sin?0,设 m =4, = k =0.4厂2 J1尤sin2申1首先编写m文件fun cti onf =lsq(x,xdata)f=x(1)*si n(xdata)+0.5*x (2) *si n(2*xdata)./(1-x (2) A2*si n(xdata).A2).A0.52利用Isqcurvefit函数调用m文件m=4;k=0.4o=0:0.01*pi:2*pi;xdata=o;ydata=m*si n(o)+0.5*k*si n( 2*o)./(1-(kA2*si n(o).A2).A0.5;x0 = 0;

10、 0;x,res norm = lsqcurvefit(lsq,x0,xdata,ydata)结果得到:x(1)= 4.0000;x (2)=0.4000;res norm = 6.3377e-0162 nlinfitm=4;k=0.4;o=0:0.005*pi:2*pi;xdata=o;ydata=m*si n(o)+0.5*k*si n( 2*o)./(1-(kA2*si n(o).A2).A0.5;x0 = 0; 0;beta = nli nfit(xdata,ydata,lsq,x0)例子1.1用fminunc函数;cleark1=13;k2=1.3;k3=9.1;xdata=0:pi

11、/100:pi;ydata= k1*exp(k2*xdata)+k3*si n(xdata);F =(x:)n orm(x(1).*exp(x (2) .*xdata)+x (3) .*si n(xdata)-ydata); lb=10;1;8;ub=20;10;15;x0=1 1 1;x,fr = fmi nun c(F,x0)%fmi nuncx,fr = fminsearch(F,x0)%fminsearch模拟退火ub)%遗传options= saoptimset(Display , iter, TolFun,1e-30 ); x,fval,exitFlag,output = simu

12、lannealbnd(F,x0,lb,ub,options)% x,fval = ga(F,x0,lb,例子 1.2 用遗传算法的参数识别 k1=13;k2=1.3;k3=9.1;xdata=0:pi/100:pi;ydata= k1*exp(k2*xdata)+k3*sin(xdata);F =(x)norm(x(1).*exp(x(2).*xdata)+x(3).*sin(xdata)-ydata); x,fval = ga(F,3,10;1;8, 20;10;15) %ee=norm(E);% 使用差平方和最小原则;或者使用 sum(abs(E);%ee=norm(E)/sqrt(n);

13、% 使用 rms准则例子1.3利用multistart 方法 k1=13;k2=1.3;k3=9.1;xdata=0:pi/100:pi;ydata= k1*exp(k2*xdata)+k3*sin(xdata);F =(x)norm(x(1).*exp(x(2).*xdata)+x(3).*sin(xdata)-ydata); ms=MultiStart;opts=optimset(Algorithm,interior-point, LargeScale,off); problem=createOptimProblem(fmincon,x0,10,1,8,objective,F,lb ,1,

14、0,1,ub,20,10,15,options,opts);xminm,fminm,flagm,outptm,manyminsm=run(ms,problem,200) 例子 1.4 利用 globalsearchk1=13;k2=1.3;k3=9.1; xdata=0:pi/100:pi;ydata= k1*exp(k2*xdata)+k3*sin(xdata);F =(x)norm(x(1).*exp(x(2).*xdata)+x(3).*sin(xdata)-ydata); gs = GlobalSearch(Display,iter); opts=optimset(Algorithm,interior-point);problem=createOptimProblem(fmincon,x0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号