基于Matlab仿真线性与非线性动态系统建模教学方法探讨.docVIP

基于Matlab仿真线性与非线性动态系统建模教学方法探讨.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Matlab仿真线性与非线性动态系统建模教学方法探讨

基于Matlab仿真线性与非线性动态系统建模教学方法探讨   [摘要]本文采用Matlab仿真产生模拟的可用于线性与非线性动态系统建模的输入输出数据。根据这些数据,设计程序生成建模所需的数据矩阵。同时给出了最小二乘法、最大似然估计、BP神经网络、RBF神经网络建模的样例程序。为学生熟悉、比较及应用各种线性与非线性动态系统建模方法提供了条件。   [关键词]动态系统建模 仿真 人工神经网络   在讲授完线性与非线性动态系统建模方法基本理论以后,需要让学生进行上机实验[1]以达到以下目的:1进一步加深理解学习的基本理论;2各种参数的选择对建模效果的影响;3各种建模方法的优缺点及适用场合。为了达到这些目的,我们模拟实际应用时的情况,提供给学生模拟的输入输出数据,以便学生利用这些数据,进行编程建立模型。同时我们编程实现基于最小二乘法、最大似然估计、BP神经网络、RBF神经网络的动态系统建模方法[2,3],学生可以利用这些Matlab程序进行各种方法的学习、各种情况下建模效果的对比,以及各种方法的适用场合的对比。   一、 基于Matlab仿真的线性动态系统最小二乘法建模的教学   假设系统的差分方程为:y(k)=-a1y(k-1)-a2y(k-2)-…-any(k-n)+b0u(k)+b1u(k-1)+…+bmu(k-m)+e(k)。其中y(k)为输出,u(k)为输入,e(k)为模型残差。假定建模用的数据序列从y(k)开始,则构建以下数据矩阵及数据向量:   如果模型残差为白噪声(实际情况多为有色噪声,但当噪声强度不大时,可近似当作白噪声处理),则根据最小二乘法,由这 组数据估计得到的参数 。   以上的最小二乘法需要输入(u(K-m),u(K-1),…,u(K+N-1))和输出(y(K-n),y(K-n+1),…,y(K+N-1))数据,我们可用以下的Matlab程序(程序1)产生模拟的输入输出数据(程序中采用了一个简单的二阶离散系统,学生实验时可换成需要的模型),并形成数据矩阵及数据向量。   程序1:   clear all   K=3;%残差序列开始序号   N=1000;%共N组数据   n=2;%对应   m=2;%对应   u=randn(1,K+N-1)*0.1;%随机产生输入数据   for i=1:1:n   y(i)=0;%设定初始状态   end   for k=n+1:1:K+N-1   y(k)=0.2*y(k-1)+0.5*y(k-2)+u(k)+0.3*u(k-1);%根据输入计算输出   end   y=y+randn(1,K+N-1)*0.001; %在求得的单位阶跃响应上叠加噪声用以模拟测量误差   X=zeros(N,n+m+1);   for i=K:1:K+N-1   for j=1:1:n   X(i-K+1,j)=y(i-j);%构成矩阵X   end   for j=n+1:1:n+m+1   X(i-K+1,j)=u(i-j+n+1); %构成矩阵X   end   end   for i=K:1:K+N-1   Y(i-K+1)=y(i);%构成向量Y   end   save X X;   save Y Y;   save N N;   运行程序1将生产数据矩阵X(保存在X.mat中)及数据向量Y(保存在Y.mat中)。以下是根据最小二乘法估计参数的程序(程序2)。   程序2:   clear all   load X;   load Y;   XT=X;   sita=(XT*X)^(-1)*XT*Y%计算得到估计的参数sita   运行程序2,将得到估计的参数sita。如某一次运行中sita=[0.2004,0.4998,0.9998,0.2995,-0.0005]T,与模型中的值(见程序1)a1=0.2,a2=0.5,b0=1,b1=0.3,b2=0非常接近。   二、 基于Matlab仿真的线性动态系统最大似然估计建模的教学   在模型残差为白噪声的假设下,最大似然估计和最小二乘法在估计参数时是相同的,但最大似然估计还能估计出噪声的强度,程序3为相应的程序。   程序3:   clear all   load X;   load Y;   load N;   XT=X;   sita=(XT*X)^(-1)*XT*Y   Z=Y-X*sita;   StdV=sqrt(Z*Z/N)%估计标准差   运行程序3,得到和程序2一样的参数估计值,除此之外,还能得到噪声的标准差(或方差)。如某一次的运行结果为StdV=0.0011,和模型中值(见程序1)0.001非常接近。   三、 基于Matlab仿真的非线性动态系统BP神经网络建模的教学   基于神经网络的非线性动态系统

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档