系统辨识的Matlab实现方法

上传人:d****2 文档编号:169173690 上传时间:2022-11-14 格式:DOCX 页数:8 大小:111.93KB
收藏 版权申诉 举报 下载
系统辨识的Matlab实现方法_第1页
第1页 / 共8页
系统辨识的Matlab实现方法_第2页
第2页 / 共8页
系统辨识的Matlab实现方法_第3页
第3页 / 共8页
资源描述:

《系统辨识的Matlab实现方法》由会员分享,可在线阅读,更多相关《系统辨识的Matlab实现方法(8页珍藏版)》请在装配图网上搜索。

1、最近在做一个项目的方案设计,应各位老总的要求,只有系统框图和器件选型可 不行,为了凸显方案设计的高大上,必须上理论分析,炫一下“技术富”,至于具体 有多大实际指导意义,那就不得而知了!本人也是网上一顿百度,再加几日探索, 现在对用 matlab 实现系统辨识有了一些初步的浅薄的经验,在此略做一小节。必须要指出的是,本文研究对象是经典控制论理最简单最常用的线性时不变的siso 系统,而且是 2 阶的哦,也就是具有如下形式的传递函数:本文要做的就是,对于有这样传递函数的一个系统,要辨识得到其中的未知数 T,!这可是控制系统设计分析的基础哦,没有系统模型,啥理论、算法都是白扯, 在实际工程中非常重要

2、哦!经过总结研究,在得到系统阶跃响应实验数据之后(当然如果是其他响应,也有 办法可以辨识,在此还是只讨论最简单的阶跃响应实验曲线,谁让你我是菜鸟呢), 利用 matlab 至少可以有两种方法实现实现(目前我只会两种,呵呵)!一、函数法二、GUI系统辨识工具箱下面分别作详细介绍!函数法看官别着急,先来做一段分析(请看下面两排红*之间部分),这段分析是网上找来的,看看活跃一下脑细胞吧,如果不研读一下,对于下面mat lab程序,恐怕真的就是一头雾水咯!*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!

3、* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *T*T *T *p *T *T *T *T *T *TX*T *T *T *T *TSi *T *T *T qX *T *T *T *T *T *T *T *T *T *T *T *T *T *T *T *T *T *T *T *T

4、*T *T *T *T *T *T *T *T* *T*T*i *T *T *T *T *T *TSi *T *T *T *T *T *T *T *T *T *T PVi *T *T *T *T *T *T *TG(s)可以分解为:1G (s)=”T 2(s + o )(s + o )1213广T昇占冃 其中,3= 12 T3、1则有都是实数且均大于零。3 +31 22 331 2传递函数进一步化为: 因此,辨识传递函数就转化为求解312当输入为单位阶跃函数时,对上式进行拉普拉斯反变换,得系统时域下的单位阶跃响应为:33一21即 1 y (t) =2e-31t 1e-叱 t3 -321令 3

5、= k3(k1),得12对上式两边取以e为底的对数得当t 时,ln 1 一e 一 (k 一1) 3 2tk则上式化简为该式的形式满足直线方程其中,y*(t)n(1 - y(t) a = -3k2,b = lnE(k 1)通过最小二乘算法实现直线的拟合,得到a , b的值,即可得到3、3的值,进而 12可得系统的传递函数。Matlab 程序代码:clcclose allt=1 3 5 7 9 11 13 15 17 19;y=0.149086 0.5890067 0.830617 0.933990 0.973980 0.991095 0.995868 0.998680 0.999490 0.99

6、9850;y2=log(1-y);plot(t,y2,*);grid on pm=polyfit(t,y2,1) value=polyval(pm,t);hold on plot(t,value,r)tit le(fon tname黑体fon tsize20y( t)二a t+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:0.5:20);axis(0 20 0 1.2)hold o

7、nplot(t,y,r*)打开matlab,新建一个Function,把上述程序段拷进去,保存,运行,运行结果:系统的传递函数为很顺利吧?先高兴一个!问题接着马上就来了,上面这个例子,这个传递函数的 极点刚好都是负实数,因此辨识得很顺利,但是如果系统是欠阻尼系统,也就是如果传递函数的根是复数,那么上述函数段,就无能为力咯,会出现说“matlab无法 处理增益为复数情况之类”例如对于这个系统,若果用 simulink 做一下阶跃响应,再把实验数据代入上述函数 段,那就不行咯!怎么办呢,只能另辟蹊径了!二、(System Identification Tool)系统辨识工具箱早听说 matlab

8、博大精深,神通广大了,于是乎我确定肯定有更简单、直观、强 大的工具来完成这小儿科把戏。查资料琢磨之后,我做了个小实验,在simulink里 验证了该种方法。该方法的大原则是:在确定了系统的输入输出数据 两个列向量N X1形式,如果是1 XN,会提示出错)之后,设计好一定的辨识原则(比如说是2 阶?3 阶?,传递函数是零极点形式,还是带阻尼形式,等等),然后就交给强大的 matlab,得到辨识结果。Step by step, plz!Step1 、 建立模型获取系统输入输出数据图1图1系统的输入是阶跃信号,用Scope1监视,并输出到workspace (这步不会的 自己百度哦),采样周期是0.

9、1s,得到输入变量u (101X1的矩阵);本人在系统的 阶跃响应上叠加了一白噪声,当然也可以不加噪声,加了噪声就是期望更真实的模 拟实际情况,白噪声参数设置见图 2图2同样在Scope2监视,也将结果输出到workspace,得到响应数据y (同样也是101 X1 的矩阵)Step 2、进入辨识工具箱&设置辨识规则直接在comma nd wi ndow输入ide nt,回车,进入辨识工具箱图3图3点击import下拉菜单,选时域数据time domai n data,见图4图4在下图5红色圈区域输入之前得到的系统输入和输出数据,u和y图5在下图 6 绿色圈内输入数据的一些信息,因为之前模型中

10、,阶跃起点我是放在 0s处的,这里也设置0,如果前面模型仿真是1s,这里应该也是1s;采样时间是0.1s, 根据实际情况设置统一哦图6设置完之后,点击import此时界面变成图7图7如果在下图 8 勾选红框这个选项,就会出现我们刚才设定输入输出数据的曲线,如图 9 所示,其他勾选项是频域的分析和显示,暂不用它。图8图9看看与我们实际设置的输入输出是否符合,如果符合,那么我们离成功就不远咯, 如果发现异常,那再好好检查一遍,直到确保数据导入没有问题!下面两段红色斜杠之间的内容,对于本实验,可以直接跳过,看一下对后续复杂模型的处理有好处哦,也算全面熟悉一下工具。/到这接着选 preprocess

11、也就是对数据进行预处理了,下拉菜单中有很多种处理 方法和手段,有这个心思的人可以挨个试一下功能。图 10图 10预处理的对象是 working data 中的数据,每进行一种预处理在左边就会有新的 数据生成,这时只要将新的数据移动到 working data 的那个方框,就可以将 working data 换成你所想处理的数据了,可以这样多次进行处理,得到你最终想用来辨识的 数据和用于验证的数据(不需要的数据可以拖到那个trash里面删除,就是回收站 了,也可以从回收站中找回的)接下来就是辨识了,首先把辨识用的数据拖到 working data 那个方框,再把验 证的数据拖到 validati

12、on data 那个方框,这个 validation data 就是最原始数据 稍作处理得到的一个更接近理论模型的对象数据,在这实验里,本人用的就是默认 数据,也就是不做任何 preprocess 处理。/点下拉菜单estimate,选你想要的模型,在弹出的对话框中设定参数,图11图 11这里边的模型种类比较多,有线性的、非线性的、状态空间的、经典传递函数形 式的等等,我们所选的就是图中红色方框process models,单击。弹出如下界面图n传o递函00数0000-Inf InfFit:(1 4-Tp1 Process ModelsPara mete rKn ownValueinitial

13、 GuessBoundsMode=lTransfer FunctionAuto-Inf InfJK exp(-Tdl-s)Auto0 001 InfJ0.001 Inf0.001 IniRd lesAutoInitial Guessq Auto-selectedFrom existin g molnrtisl GusbbDistu rbance Medel:Focus:Options.IterationDisplayStop IterationsZero极点个 数及其 他是否有零点、有 延迟、有积分? 根据勾选,传函 自动调整NoneInitial state:AutoSimulationCD

14、variance:EstimateImprovementP1DEstimateCloseHelpName:图 12在本实验中,我们做如下设置,见图13 红框标出部分。图 13然后点击最下方Estimate,就有模型生成了。图14图 14先勾选上图绿色框选项,看到了什么?给出了拟合率, bestfits98.72 有木有? 传递函数具体的数值,双击上图红色框,见图 15?图 15在右边的数据栏中;也就是 model views 中了,下面有很多可以选择,每选一个 就可以生成一幅对应的图,是由用于验证的数据生成的。把模型拖到 to workspace 那个方框,再去看workspace,多的那个变量就是你所辨识出的模型了 注意:在某个模型或某组数据上点一下,线变细了就不会在图中显示出来了!最后再一次提出,上述分析并不一定完全正确,可能有些概念并不清晰可靠,当然还有很多功能并没有被发掘,可以确定的是解决这个问题的两个大方向没有问题若想做到精益求精,还需要再仔细研究斟酌哦!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!