下载此文档

系统辨识的Matlab实现方法(手把手).docx


文档分类:IT计算机 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
最近在做一个项目的方案设计,应各位老总的要求,只有系统框图和器件选型可不行, 为了凸显方案设计的高大上, 必须上理论分析, 炫一下“技术富”, 至于具体有多大实际指导意义, 那就不得而知了! 本人也是网上一顿百度,再加几日探索,现在对用 matlab 实现系统辨识有了一些初步的浅薄的经验,在此略做一小节。必须要指出的是,本文研究对象是经典控制论理最简单最常用的线性时不变的 siso 系统,而且是 2 阶的哦,也就是具有如下形式的传递函数: 12 1)( 22??? Ts sT sG?本文要做的就是,对于有这样传递函数的一个系统,要辨识得到其中的未知数 T,ξ!! 这可是控制系统设计分析的基础哦,没有系统模型,啥理论、算法都是白扯,在实际工程中非常重要哦! 经过总结研究,在得到系统阶跃响应实验数据之后(当然如果是其他响应, 也有办法可以辨识, 在此还是只讨论最简单的阶跃响应实验曲线, 谁让你我是菜鸟呢), 利用 matlab 至少可以有两种方法实现实现(目前我只会两种,呵呵)! 一、函数法二、 GUI 系统辨识工具箱下面分别作详细介绍! 一、函数法看官别着急,先来做一段分析(请看下面两排红* 之间部分) ,这段分析是网上找来的,看看活跃一下脑细胞吧,如果不研读一下,对于下面 matlab 程序,恐怕真的就是一头雾水咯! ******************************************************************************* G(s) 可以分解为: ) )(( 1)( 21 2?????ssT sG 其中,???? 1 1 1 1 22 21????????????T T 1?、2?都是实数且均大于零。则有: 211???T ,21 212???????传递函数进一步化为: ) )(( )( 21 21???????ss sG 因此,辨识传递函数就转化为求解 1?、2?。当输入为单位阶跃函数时, 对上式进行拉普拉斯反变换, 得系统时域下的单位阶跃响应为:tteety 212 1112 21)( ???????????????即tteety 212 1112 2)(1 ???????????????令1?=2?k )1(?k ,得tktek ek kty 221 11 )(1 ?????????????????????tktek ek k 2 )1(2111 ??对上式两边取以 e 为底的对数得????????????????tkek tk kty 2 )1(211 ln1 ln)(1 ln ??当?? t 时,?????????tkek 2 )1(11 ln ?0?, 则上式化简为?? tk kty 21 ln)(1 ln?????该式的形式满足直线方程 batty??)( * 其中, )( *ty =??)(1 lnty?,1 ln, 2????k kba?)1(?k 通过最小二乘算法实现直线的拟合, 得到a ,b 的值, 即可得到 1?、 2?的值,进而可得系统的传递函数。*************************************************** M atlab 程序代码: clc close all t=[1 3579 11131517 19]; y=[ ]; y2=log(1-y); plot(t,y2,'*'); grid on pm=polyfit(t,y2,1) value=polyval(pm,t); hold on plot(t,value,'r') title('\fontname{ 黑体}\fontsize{20}y(t)=at+b') w2=-pm(1) w1=w2/(1-exp(-pm(2))) T=1/sqrt(w1*w2) theta=(w1+w2)/(2*sqrt(w1*w2)) z=[]; p=[-w1 -w2]; k=w1*w2; sys=zpk(z,p,k) figure(2) step(sys,[0::20]); axis([0 200 ]) hold on plot(t,y,'r*') 打开 matlab ,新建一个 Function, 把上述程序段拷进去,保存,运行~~~~~~~~~ ,运行结果: 系统的传递函数为) 4797 .0 )( 126 .1( 54034 .0)(???SS SG 很顺利吧?先高兴一个!问题接着马上就来了,上面这个例子, 这个传递函数的极点刚好都是负实数, 因此辨识得很顺利, 但是如果系统是欠

系统辨识的Matlab实现方法(手把手) 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小667 KB
  • 时间2017-01-05