求MATLAB系统识别工具箱
求MATLAB系统识别工具箱!小妹要做毕设,急用啊!谢谢!
[ 本帖最后由 xinyuxf 于 2007-7-22 16:37 编辑 ] <H3 13pt 0cm"><FONT size=5>系统辨识</FONT></H3>
<P 0cm 0cm 0pt; TEXT-INDENT: 18pt"><B>系统辨识简介</B>:<p></p></P>
<P 0cm 0cm 0pt; TEXT-INDENT: 18pt">系统辨识是利用观测到的系统输入输出数据构造系统数学模型的方法。<FONT face="Times New Roman"> </FONT>系统辨识的内容包括:模型结构的确定、参数估计、模型验证等。系统辨识的一般步骤见图一。<p></p></P>
<P 0cm 0cm 0pt; TEXT-INDENT: 27pt; TEXT-ALIGN: center" align=center><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path connecttype="rect" gradientshapeok="t" extrusionok="f"></v:path><lock aspectratio="t" v:ext="edit"></lock></v:shapetype><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P 0cm 0cm 0pt; TEXT-INDENT: 27pt; TEXT-ALIGN: center" align=center>图<FONT face="Times New Roman"> </FONT>一</P>
<P 0cm 0cm 0pt; TEXT-INDENT: 18pt">首先,我们通过设计试验来采集到包含系统特征的输入数据和输出数据。<p></p></P>
<P 0cm 0cm 0pt; TEXT-INDENT: 18pt">其次,确定待辨识的动态模型结构,其结构可以归结为确定系统的阶数和输出量对于输入量的滞后时间的问题。<FONT face="Times New Roman"> <p></p></FONT></P>
<P 0cm 0cm 0pt; TEXT-INDENT: 18pt">接下来,进行参数估计,当已知或者假设模型结构后,模型未知部分是动态模型的参数,需要根据输入、输出数据估计这些参数,所以称为参数估计。参数估计是系统辨识的中心内容。<FONT face="Times New Roman"> <p></p></FONT></P>
<P 0cm 0cm 0pt; TEXT-INDENT: 18pt">最后,进行模型验证,验证辨识出的模型与实际过程的特性的一致性。最终模型应当是在满足精度的要求下,尽可能简单的数学模型。 <p></p></P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman"> </FONT>参数的估计问题:</P>
<P 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P 0cm 0cm 0pt; TEXT-ALIGN: center" align=center>图<FONT face="Times New Roman"> </FONT>二</P>
<P 0cm 0cm 0pt; TEXT-INDENT: 21pt">图二简单的表示了一个系统,其数学表达式为<v:shape><FONT face="Times New Roman"> <v:imagedata></v:imagedata></FONT></v:shape>其中<v:shape><FONT face="Times New Roman"> <v:imagedata></v:imagedata></FONT></v:shape>,<FONT face="Times New Roman">u:</FONT>表示系统的输入,<FONT face="Times New Roman">e</FONT>表示外界的扰动,<FONT face="Times New Roman">y</FONT>是系统的输出,<FONT face="Times New Roman">G</FONT>是系统的传递函数,<FONT face="Times New Roman">H</FONT>为外界干扰的传递函数。上式只是简单的说明,实际上,系统有许多不同的数学模型,而不同的数学模型含有不同的参数。常见的数学模型有:<FONT face="Times New Roman">ARM</FONT>模型(式<FONT face="Times New Roman">1</FONT>),<FONT face="Times New Roman">ARMAX</FONT>模型(式<FONT face="Times New Roman">2</FONT>),<FONT face="Times New Roman">OE(Output-Error)</FONT>模型(式<FONT face="Times New Roman">3</FONT>),<FONT face="Times New Roman">ARX</FONT>模型(式<FONT face="Times New Roman">4</FONT>),<FONT face="Times New Roman">State-Space</FONT>模型(式<FONT face="Times New Roman">5</FONT>),<FONT face="Times New Roman">BJ</FONT>模型(<FONT face="Times New Roman">Box-Jenkins</FONT>)<FONT face="Times New Roman">(</FONT>式<FONT face="Times New Roman">6)</FONT>等,具体模型如下:</P>
<P 0cm 0cm 0pt"><v:shape><v:imagedata></v:imagedata></v:shape><FONT face="Times New Roman"></FONT>(<FONT face="Times New Roman">1</FONT>)</P>
<P 0cm 0cm 0pt"><v:shape><v:imagedata></v:imagedata></v:shape><FONT face="Times New Roman"> </FONT>(<FONT face="Times New Roman">2</FONT>)</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman"> </FONT><v:shape><FONT face="Times New Roman"> <v:imagedata></v:imagedata></FONT></v:shape><FONT face="Times New Roman"> </FONT>(<FONT face="Times New Roman">3</FONT>)</P>
<P 0cm 0cm 0pt"><v:shape><v:imagedata></v:imagedata></v:shape><FONT face="Times New Roman"> </FONT>(<FONT face="Times New Roman">4</FONT>)</P>
<P 0cm 0cm 0pt"><v:shape><v:imagedata></v:imagedata></v:shape><FONT face="Times New Roman"> </FONT>(<FONT face="Times New Roman">5</FONT>)</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman"> </FONT><v:shape><FONT face="Times New Roman"> <v:imagedata></v:imagedata></FONT></v:shape><FONT face="Times New Roman"> </FONT>(<FONT face="Times New Roman">6</FONT>)</P>
<P 0cm 0cm 0pt; TEXT-INDENT: 10.5pt; mso-char-indent-count: 1.0"><FONT face="Times New Roman"></FONT>其中,状态空间模型即可表示为单输入-单输出模型,也可表示为多输入-多输出模型。</P>
<P 0cm 0cm 0pt"><B>柴油机模型简介</B>【<FONT face="Times New Roman">1</FONT>】:</P>
<P 0cm 0cm 0pt; TEXT-INDENT: 21pt">柴油机的结构为喷油泵-能功转换-发动机串联形式。喷油泵是一个双入单出环节。一方面<FONT face="Times New Roman">,</FONT>当供油齿条的位移变化时<FONT face="Times New Roman">,</FONT>将带动柱塞转动以调整供油时间<FONT face="Times New Roman">,</FONT>使供油量发生变化;另一方面<FONT face="Times New Roman">,</FONT>由于喷油泵自身的速度特性<FONT face="Times New Roman">,</FONT>转速的变化也将引起供油量的变化。因此<FONT face="Times New Roman">,</FONT>喷油泵的传递函数可描述为一阶惯性环节串联一个积分环节</P>
<P 0cm 0cm 0pt; TEXT-INDENT: 21pt"><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P 0cm 0cm 0pt">式中<FONT face="Times New Roman">,</FONT>k<FONT face="Times New Roman">1</FONT>为喷油泵系数<FONT face="Times New Roman">;</FONT>τ<FONT face="Times New Roman">1</FONT>为喷油泵时间常数。</P>
<P 0cm 0cm 0pt">能功转换环节的传递函数可描述为<FONT face="Times New Roman">:</FONT>G<FONT face="Times New Roman">2(</FONT>s<FONT face="Times New Roman">)=</FONT>k<FONT face="Times New Roman">2,</FONT>k<FONT face="Times New Roman">2</FONT>为油量转换系数。对于发动机<FONT face="Times New Roman">,</FONT>根据达朗贝尔原理<FONT face="Times New Roman">,</FONT>传递函数可描述为一阶惯性环节加一个纯滞后环节:</P>
<P 0cm 0cm 0pt"><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P 0cm 0cm 0pt">式中<FONT face="Times New Roman">,</FONT>k<FONT face="Times New Roman">3</FONT>为发动机系数<FONT face="Times New Roman">;</FONT>τ<FONT face="Times New Roman">2</FONT>为发动机时间常数<FONT face="Times New Roman">;</FONT>τ<FONT face="Times New Roman">3</FONT>为供油齿条至扭矩变化的滞后时间。于是<FONT face="Times New Roman">,</FONT>柴油机的传递函数:</P>
<P 0cm 0cm 0pt"><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P 0cm 0cm 0pt">式中<FONT face="Times New Roman">,</FONT>k′p<FONT face="Times New Roman">=</FONT>k<FONT face="Times New Roman">1</FONT>k<FONT face="Times New Roman">2</FONT>k<FONT face="Times New Roman">3;</FONT>s为拉普拉斯变换中的复变量。</P>
<P 0cm 0cm 0pt">因此<FONT face="Times New Roman">,</FONT>可用三阶等效线性模型代替柴油机的高阶真实模型。待辨识模型的差分方程有以下结构:</P>
<P 0cm 0cm 0pt"><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P 0cm 0cm 0pt">式中<FONT face="Times New Roman">, </FONT><v:shape><v:imagedata><FONT face="Times New Roman"></FONT></v:imagedata></v:shape>为柴油机的转速;<v:shape><FONT face="Times New Roman"> <v:imagedata></v:imagedata></FONT></v:shape>为柴油机的齿条位移;d<FONT face="Times New Roman">=1</FONT>时为系统滞后。</P>
<P 0cm 0cm 0pt"><B><FONT face="Times New Roman">MATLAB</FONT></B><B>中辨识工具箱</B>(<FONT face="Times New Roman">6.5</FONT>版为例)</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">MATLAB</FONT>为我们提供了系统辨识工具箱,使用起来非常简单,首先,我们在<FONT face="Times New Roman">MATLAB</FONT>命令窗口中输入<FONT face="Times New Roman"> ident </FONT>就可以打开工具箱,界面如图三</P>
<P 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P 0cm 0cm 0pt; TEXT-ALIGN: center" align=center>图<FONT face="Times New Roman"> </FONT>三</P>
<P 0cm 0cm 0pt">图中,</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">Data</FONT>:我们要加载的数据,就是我们测量的输入数据和输出数据,加载后<FONT face="Times New Roman">Data</FONT>下方的空方格就会显示我们加载的输入数据的图标;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">Time plot</FONT>:导入数据之后,通过图形方式画出我们导入的数据;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">Time plot</FONT>:对导入的数据指定范围以进行数据剔除;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">Operation</FONT>:我们对所选的输入数据进行简单的操作,如滤波,信道的选择等;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">Estimate</FONT>:参数估计,包括选择模型及设置模型等;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">Model</FONT>:从<FONT face="Times New Roman">MATLAB</FONT>工作空间导入模型;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">Models View</FONT>:辨识出的系统的模型,利用同一组数据,我们可以进行不同数学模型的辨识,以得到不同的数学模型;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">To Workspace</FONT>为将得到的模型导入到<FONT face="Times New Roman">MATLAB</FONT>的工作空间;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">To LTI View</FONT>为将得到的模型导入到<FONT face="Times New Roman">LTI View,</FONT>进行观察;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">Validation Data</FONT>:为数据经检查后,有用的数据;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">Trash</FONT>:在辨识过程中将不需要的数据删除,类似“回收站”,以后需要的时候可以恢复;</P>
<P 0cm 0cm 0pt">使用工具箱:</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">1 </FONT>首先,将采集到的数据加载<FONT face="Times New Roman">MATLAB</FONT>的工作空间,</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">2 </FONT>选择<FONT face="Times New Roman">Data</FONT>在下拉菜单中,选择<FONT face="Times New Roman">Import</FONT>将弹出对话框,如图四,<FONT face="Times New Roman">Input</FONT>中填上我们导入到<FONT face="Times New Roman">MATLAB</FONT>工作空间中的输入数据的变量名,<FONT face="Times New Roman">Output:</FONT>中填上我们导入到<FONT face="Times New Roman">MATLAB</FONT>工作空间中的输出数据的变量名,<FONT face="Times New Roman">Data name</FONT>为将这些数据备份后的新的名称,默认为<FONT face="Times New Roman">mydata</FONT>,我们在辨识过程中使用这些数据,<FONT face="Times New Roman">Starting time</FONT>:开始时间,<FONT face="Times New Roman">Samp interc</FONT>:设置采样间隔,设置完成后,点击<FONT face="Times New Roman">import</FONT>后关闭;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">3 </FONT>完成第二步之后,在<FONT face="Times New Roman">Data View</FONT>将会出现导入数据的图标,同时,下方的<FONT face="Times New Roman">Time plot </FONT>、<FONT face="Times New Roman">Time plot</FONT>复选框变为可用,我们选中后<FONT face="Times New Roman">Time plot</FONT>,双击导入数据图标,将会画出我们导入数据的波形,以便我们处理数据;</P>
<P 0cm 0cm 0pt"><B><p><FONT face="Times New Roman"> </FONT></p></B></P>
<P 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><v:shape><v:imagedata><FONT face="Times New Roman"></FONT></v:imagedata></v:shape></P>
<P 0cm 0cm 0pt; TEXT-ALIGN: center" align=center>图<FONT face="Times New Roman"> </FONT>四</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">4 </FONT>选择<FONT face="Times New Roman">Estimate,</FONT>在下拉菜单中,选择<FONT face="Times New Roman">Parametic Models,</FONT>出现图五</P>
<P 0cm 0cm 0pt; TEXT-ALIGN: center" align=center><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P 0cm 0cm 0pt; TEXT-ALIGN: center" align=center>图<FONT face="Times New Roman"> </FONT>五</P>
<P 0cm 0cm 0pt">在<FONT face="Times New Roman">Structure</FONT>中选择我们需要的模型结构,<FONT face="Times New Roman">Orders</FONT>里设置模型<FONT face="Times New Roman">,Name</FONT>为模型命名,设置完成后,点击<FONT face="Times New Roman">Estimate</FONT>进行辨识;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">5 </FONT>检查获得模型,如果很好就停止,否则去第三步,重新设置模型,甚至重新选择模型,进行辨识,有必要时,重新采集数据。</P>
<P 0cm 0cm 0pt"><B>柴油机系统的辨识<p></p></B></P>
<P 0cm 0cm 0pt">辨识步骤:</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">1 </FONT>收集试验采集的输入数据和输出数据;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">2 </FONT>检查数据,选择数据的有用部分,剔除明显的错误数据,必要时用滤波器(频域);</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">3 </FONT>选择柴油机的模型结构,由柴油机简介部分可知,采用<FONT face="Times New Roman">ARX</FONT>模型,阶数为<FONT face="Times New Roman">3</FONT>,时延为<FONT face="Times New Roman">1</FONT>;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">4 </FONT>导入数据,选择<FONT face="Times New Roman">ARX</FONT>模型,进行辨识;</P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">5 </FONT>检查模型,如果模型很好,就停止,反之,到第二步重新开始,直至辨识出合适的模型。</P>
<P 0cm 0cm 0pt"><p><FONT face="Times New Roman"> </FONT></p></P>
<P 0cm 0cm 0pt"><p><FONT face="Times New Roman"> </FONT></p></P>
<P 0cm 0cm 0pt"><p><FONT face="Times New Roman"> </FONT></p></P>
<P 0cm 0cm 0pt"><p><FONT face="Times New Roman"> </FONT></p></P>
<P 0cm 0cm 0pt"><p><FONT face="Times New Roman"> </FONT></p></P>
<P 0cm 0cm 0pt"><p><FONT face="Times New Roman"> </FONT></p></P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman"></FONT> </P>
看不见图啊!
二楼的老兄,能把你的这些资料的原始文件发到我的邮箱吗?<BR><a href="mailthuangtao009@163.com" target="_blank" >huangtao009@163.com</A><BR>先谢谢了! 二楼的同学能不能把系统识别的工具箱发个给我呀,谢谢, 赞下二楼的! 我也正在找这方面的资料啊!二楼能把你的一些资料发到我的邮箱吗?
fane123@gmail.com
谢谢! 我也发现我的matlab里竟然也没有这个工具箱
刚好最近要用! 二楼的大哥,能不能把你那个MATLAB系统识别的资料发我一下啊,非常感谢,我的邮箱:yaojun19851125@163.com
页:
[1]