




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第4章时域离散相似法仿真Matlab编程,4.1连续模型的离散化,线性连续状态空间模型为,(4.1-1),其采用零阶保持器的离散相似模型为,(4.1-2),其中,(4.1-3),2,用于离散相似的Matlab函数,连续模型转换为离散模型:G,H=c2d(A,B,T)T为采样周期可选参数离散相似:G,H,C,D=c2dm(A,B,C,D,T,选项)numd,dend=c2dm(num,den,T,选项),3,【例4.1.1】对下面的连续系统,在采样周期T=0.1时进行离散化,A=0,1;-2,-3;B=0;1;G,H=c2d(A,B,0.1);G=0.99090.0861-0.17220.7326H=0.00450.0861,经计算,可得,当T=0.1时,计算结果与c2d函数得到的结果一致。,4,4.2针对离散状态空间模型的仿真程序,离散状态空间模型为,对此模型编写仿真程序,只需要按模型方程迭代即可。,functiont,y=w_DiscreteSimu(tstart,tstop,h,x0,u0,G,H,C,D)%函数功能:对线性离散系统x(k+1)=G*X(k)+H*u(k),y(k)=C*x(k)+D*u(k)进行仿真%输入参数:tstart,tstop,h分别是起始时间、结束时间和仿真步%长,是标量%x0,u0是状态、输入的初值,都是列向量%G,H,C,D是线性离散状态空间模型的系数矩阵%输出参数:t是仿真结果的时间序列%y是仿真结果系统的输出序列,5,functiont,y=w_DiscreteSimu(tstart,tstop,h,x0,u0,G,H,C,D)t=tstart:h:tstop;%t数一个行序列cntt=size(t,2);%返回列数cnty=size(C,1);%返回y的维数y=zeros(cnty,cntt);%构造一个空矩阵,用来存储结果y0=C*x0+D*u0;y(:,1)=y0;%将y0作为输出的第1列curx=x0;%当前一步的xcuru=u0;%当前一步的ucury=y0;%当前一步的yfori=1:1:cntt-1curx=G*curx+H*curu;%计算下一步的状态cury=C*curx+D*curu;%计算输出y(:,i+1)=cury;%将输出加入到输出序列里end,离散状态空间模型仿真程序,6,【例4.2.1】对下面的连续系统,采用数值积分法和离散相似法仿真。,解:该系统连续状态空间模型矩阵为,其离散状态空间模型矩阵为,也可以采用c2d函数直接计算离散模型矩阵,7,仿真程序:用c2d进行模型变换,将数值积分与离散相似2种方法的结果对比。数值积分仿真的结果用plot函数绘图,表现连续的效果;离散模型仿真结果用stairs绘图,各数据点之间是零阶保持。,functionsimu4_2tstart=0;tstop=6;A=0,1;-2,-3;B=0;1;C=2,0;D=0;x0=0;0;u0=1;h=0.5;G,H=c2d(A,B,h);%得到离散模型矩阵%数值积分仿真t,y1=w_LinearSimu(tstart,tstop,h,x0,u0,A,B,C,D,RK4);%离散相似法仿真t,y2=w_DiscreteSimu(tstart,tstop,h,x0,u0,G,H,C,D);plot(t,y1,-r*);holdon;stairs(t,y2,:b+);holdoff;axis(0,6,0,1.2);xlabel(x);ylabel(y);legend(数值积分,离散相似);title(数值积分与离散相似仿真对比),8,在步长h=0.5时,两种方法的仿真结果及其接近。离散模型的每个计算点都在连续模型上,当步长h=1时,两种方法的结果出现偏差。离散模型的点不一定在连续模型上。,9,4.3面向环节离散化仿真(无非线性环节),【例4.3.1】将下面的系统按环节离散化仿真,解:将系统分为2个典型环节,如图所示,开环部分传函为,1】环节之间的连接方程,10,2】环节内部离散模型,(1)积分环节,(2)惯性环节,环节内部动态方程,环节输出方程,11,3】系统输出方程,面向环节离散化仿真时应该注意的问题应该依次计算各环节的输出,即计算出第1个环节,再利用第1个环节的输出计算第2个环节,依次下去。而不要一次计算出各环节的输入,再算出各环节的输出,这样相当于在每个环节之间存在一个步长的延迟环节,模型的准确性会大大降低。下面,我们将对这两种方式做仿真对比,进而说明此问题。,12,functiont,p=w_DisNodesSimu2(tstart,tstop,h,x0,y0,r0,W,W0,G,H,C,D,Q)%函数功能:面向环节离散化仿真,%环节输入方程:u(k)=W*x(k)+W0*r(k)%环节迭代方程:x(k+1)=G*x(k)+H*u(k)%环节输出方程y(k)=C*x(k)+D*u(k);%整个系统的输出方程p(k)=Q*y(k);%输入参数:tstart,tstop,h分别是起始时间、结束时间和仿真步长%x0,y0是每个环节状态和输出的初值,%r0为系统外部输入%输出参数:t是仿真结果的时间序列%p是仿真结果系统的输出序列,1、整体刷新计算的按环节仿真函数,整体刷新即根据环节连接方程计算每个环节的输入,再用计算出来的输入向量根据各环节的离散模型计算各环节的输出。各环节之间相当于并行运算。,13,functiont,p=w_DisNodesSimu2(tstart,tstop,h,x0,y0,r0,W,W0,G,H,C,D,Q)t=tstart:h:tstop;%t数一个行序列cntt=size(t,2);%返回列数cnty=size(Q,1);%返回y的维数p=zeros(cnty,cntt);%构造一个空矩阵,用来存储结果p(:,1)=Q*y0;%fori=1:1:cntt-1u=W*y0+W0*r0;x0=G*x0+H*u;y0=C*x0+D*u;p(:,i+1)=Q*y0;%将y0作为输出的第1列end,14,2、逐个环节刷新的仿真程序该函数所有参数与w_DisNodesSimu2的一样。逐个环节刷新是逐个根据环节的编号顺序,计算环节的输入,再计算输出,再计算下一个环节的输入和输出,依次进行,相当于环节之间串连运算。,functiont,p=w_DisNodesSimu(tstart,tstop,h,x0,y0,r0,W,W0,G,H,C,D,Q)t=tstart:h:tstop;%t数一个行序列cntnodes=size(W,1);%得到环节的个数cntt=size(t,2);%返回列数cnty=size(Q,1);%返回y的维数p=zeros(cnty,cntt);%构造一个空矩阵,用来存储结果p(:,1)=Q*y0;%fori=1:1:cntt-1forj=1:1:cntnodesu(j)=W(j,:)*y0+W0(j,:)*r0;x0(j)=G(j,j)*x0(j)+H(j,j)*u(j);y0(j)=C(j,j)*x0(j)+D(j,j)*u(j);end;p(:,i+1)=Q*y0;%将y0作为输出的第1列end,15,functionsimu4_3tstart=0;tstop=10;A=0,1;-2,-3;B=0;1;C=2,0;D=0;x0=0;0;u0=1;h=0.5;G,H=c2d(A,B,h);%得到离散模型矩阵t,y1=w_LinearSimu(tstart,tstop,h,x0,u0,A,B,C,D,RK4);t,y2=w_DiscreteSimu(tstart,tstop,h,x0,u0,G,H,C,D);%离散相似法仿真%面向环节离散化仿真W=0,-1;1,0;W0=1,0;Q=0,1;C=diag(1,1);D=zeros(2);G=diag(1,exp(-3*h);H=diag(2*h,(1-exp(-3*h)/3);y0=x0;t,y3=w_DisNodesSimu2(tstart,tstop,h,x0,y0,u0,W,W0,G,H,C,D,Q);plot(t,y1,-r);holdon;stairs(t,y2,:k+);stairs(t,y3,-b*);holdoff;axis(0,10,0,1.2);xlabel(x);ylabel(y);legend(数值积分,整体离散,按环节离散);title(各环节整体刷新(h=0.5));,仿真调用函数,数值积分的结果用plot绘图,离散模型仿真结果用stairs绘图。,16,整体刷新时相当于前后环节之间存在一个步长的延迟,导致模型不精确。,环节逐个刷新符合系统实际运算意义,模型比较精确,17,4.4面向环节离散化仿真(有非线性环节),环节划分原则1】线性环节都处理为1阶;2】非线性环节附加在线性环节的前面或后面,环节个数等于线性环节的个数。,一个环节的计算顺序1】根据环节之间的连接方程计算该环节的输入;2】根据前置非线性环节计算非线性环节的输出;3】前置非线性环节的输出作为线性环节的输入,计算线性环节的输出;4】线性环节的输出作为后置非线性环节的输入,计算整个环节的输出。,18,模型描述,1】环节之间连接方程,写出各环节的输入与其他环节的输出和系统输入之间的连续方程。,2】线性环节离散模型,3】其中,19,4】非线性环节模型描述根据非线性环节类型不同,分别用不同的参数描述,包括非线性环节类型和必要的参数。非线性环节作为线性环节的前置或后置环节。,5】整个系统的输出方程,仿真计算顺序根据环节编号顺序,计算一个环节,再计算下一个环节。不能整体计算每个环节的输入,再计算每个环节的输出,这样每个环节之间将产生滞后。,20,【例4.4.1】面向环节的非线性系统仿真,右图所示系统有一个饱和非线性环节和一个线性环节。饱和非线性不能用微分方程表示,因而不能对整个系统采用数值积分法仿真。采用按环节离散化仿真,首先将线性环节分解为两个基本环节,将非线性环节作为第1个线性环节的前置环节。,仿真中,取c=20,K1,r=25,21,1】各线性环节内部离散方程,(1)积分环节,(3)惯性环节,用矩阵表示为,22,2】各环节之间连接方程,3】系统输出为,4】饱和非线性环节作为第1个环节的前置环节,23,functiont,p=w_DisNodesSimuNonL(tstart,tstop,h,x0,y0,r0,W,W0,G,H,C,D,Q,NLBefore,NLBeforeParams,NLAfter,NLAfterParams)%函数功能:带有非线性环节的面向环节离散化仿真,%环节输入方程:u(k)=W*x(k)+W0*r(k)%环节迭代方程:x(k+1)=G*x(k)+H*u(k)%环节输出方程y(k)=C*x(k)+D*u(k);%整个系统的输出方程p(k)=Q*y(k);%输入参数:tstart,tstop,h分别是起始时间、结束时间和仿真步长,是标量%x0,y0是每个环节状态和输出的初值,%r0为系统外部输入%NLBefore是前置非线性环节的名称,如果没有就写None,NLBeforeParams是前置非线性环节的参数,每个环节%的参数占一行。%NLAfter是后置非线性环节的名称,如果没有就写None,NLAfterParams是后置非线性环节的参数,每个环节%的参数占一行。%输出参数:t是仿真结果的时间序列%p是仿真结果系统的输出序列,1、带非线性环节的按环节离散化仿真程序原型,24,functiont,p=w_DisNodesSimuNonL(tstart,tstop,h,x0,y0,r0,W,W0,G,H,C,D,Q,NLBefore,NLBeforeParams,NLAfter,NLAfterParams)t=tstart:h:tstop;%t数一个行序列cntnodes=size(W,1);%得到环节的个数cntt=size(t,2);%返回列数cnty=size(Q,1);%返回y的维数p=zeros(cnty,cntt);%构造一个空矩阵,用来存储结果p(:,1)=Q*y0;fori=1:1:cntt-1forj=1:1:cntnodesu(j)=W(j,:)*y0+W0(j,:)*r0;%根据环节之间的连接计算,u(j)=NonlinearNode(NLBefore(j),u(j),NLBeforeParams(j,:);%计算第j个环节的前置非线性环节的输出x0(j)=G(j,j)*x0(j)+H(j,j)*u(j);y0(j)=C(j,j)*x0(j)+D(j,j)*u(j);%根据线性部分计算线性部分的输出y0(j)=NonlinearNode(NLAfter(j),y0(j),NLAfterParams(j,:);%计算第j个环节的后置非线性环节的输出end;p(:,i+1)=Q*y0;%将y0作为输出的第1列end,25,2、典型非线性环节函数,functionu_out=NonlinearNode(NodeType,u_in,params)%函数功能:典型非线性环节的计算%输入参数:NodeType节点类型,可以取Saturation,Deadzone,Relay,RelayDeadzone,%None表示没有非线性环节%u_in,环节的输入;%params,环节的参数行向量%输出结果:u_out,环节的输出,26,switchNodeTypecaseSaturationc=params(1);k=params(2);if(k*u_in)cu_out=c;elseu_out=k*u_in;end;caseDeadzonec=params(1);k=params(2);if(u_inc)u_out=k*u_in;elseu_out=0;end;,caseRelayc=params(1);ifu_in0u_out=c;elseu_out=0;end;caseRelayDeadzonec=params(1);h=params(2);ifu_incu_out=c;elseu_out=0;end;otherwiseu_out=u_in;end;,函数NonlinearNode的主体,27,functionsimu_NonNodeststart=0;tstop=20;h=0.5;K=1;c=10;W=0,-1;1,0;W0=1,0;Q=0,1;C=diag(1,1);D=zeros(2);G=diag(1,exp(-h);H=diag(K*h,1-exp(-h);x0=0;0;u0=25;y0=x0;NLBefore=Satur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水泥搅拌桩施工技术培训大纲
- 台灯简笔画课件
- 展柜设计培训课件
- 课件最佳路径
- 广东国际贸易自考试题及答案
- 课件显示屏教学课件
- 广东工程估价自考试题及答案
- 拉架工考试题及答案
- 快递考试题及答案大全
- 课程方案考试题及答案
- 劳动课种植教学方案
- 2024年全国职业院校技能大赛高职组(环境检测与监测赛项)考试题库(含答案)
- 实验-大肠杆菌感受态细胞的制备及转化
- 2025年中考语文阅读复习:理解词语含义(含练习题及答案)
- GB/T 44421-2024矫形器配置服务规范
- 磷酸哌嗪宝塔糖的毒理学研究
- 【课件】2025届高三生物一轮复习备考策略研讨
- 灵芝培训课件
- 环形开挖预留核心土法
- 妇科医生进修汇报课件
- 《科室管理方案》课件
评论
0/150
提交评论