复杂联接的闭环系统的数字仿真_第1页
复杂联接的闭环系统的数字仿真_第2页
复杂联接的闭环系统的数字仿真_第3页
复杂联接的闭环系统的数字仿真_第4页
复杂联接的闭环系统的数字仿真_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 复杂联接的闭环系统的数字仿真 班级:2008级电牵一班 姓名:* 班号:*摘要:实际工程中常常给出的是结构框图形式的控制系统数学模型,对此类型形式的系统进行仿真分析,主要是根据“二次模型”编写适当的程序语句,使之能自动求解各个环节变量的动态变化情况,从而得到关于系统输出各变量的有关数据、曲线等。以对系统进行性能分析和设计。关键字:数字仿真 系统结构图 Simulink建模与仿真 目 录引言-3 第一章 复杂联接的闭环系统的编程仿真-4 1.1典型环节的二次模型-4 1.2系统的连接矩阵-5 1.3系统的求解-6 1.4程序框图-7 1.5复杂闭环闭环系统的程序实现-9 第二章 复杂联接的闭环

2、闭环系统的simulink仿真-142.1仿真模型的建立-14 2.2仿真波形-15第三章 仿真结果分析-17第四章 simulink仿真与程序仿真的比较-18第五章 心得体会-19第六章 参考文献-20引 言控制系统仿真是控制工程领域进行科学研究和控制器设计所采取的重要方法之一。通常系统仿真可分为物理仿真,数字仿真及数字物理混合仿真3种类型。物理仿真采用几何相似原理仿制一个与实际系统工作原理及工作特性相同但体积不同的物理模型进行仿真实验。而数字仿真按照性能相似原理,建立实际系统的数学模型,并借助计算机及编程语言进行仿真分析。数字仿真成本低,设计方便,灵活性强,危险性小,是目前科学研究与教学的

3、重要辅助方法。控制系统的数字仿真课程是控制理论、计算数学和计算机等知识的交叉,它是分析和设计各种复杂系统的强有力的工具。 而MATLAB作为当前国际控制界最流行的面向工程与科学计算的高级语言,它可轻易地再现C或FORTRAN语言几乎全部的功能,并设计出功能强大、界面优美、稳定可靠的高质量程序来,而且编程效率和计算效率极高。 MATLAB环境下的Simulink 是当前众多仿真软件中功能最强大、最优秀、最容易使用的一个用于系统建模、仿真和分析的动态仿真集成环境工具箱,且在各个领域都得到广泛的应用。第一章 复杂联接的闭环系统的编程仿真1.1典型环节的二次模型化复杂连接闭环系统数字仿真的基本思路是:

4、与实际系统的结构图相对应,在计算机程序中叶应该勾出方便表示各个实际环节的典型环节,并将环节之间的 连接关系输入计算机,由计算机程序自动形成闭环状态方程,运用数值积分方法求解响应。因此可知,选定典型环节也很重要,要使其即具有代表性,又不至于造成输入数据复杂繁琐。考察控制系统常见环节,可有如下几种情况:(1) 比例环节: G(s)=K(2) 积分环节: G(s)=(3) 比例积分: G(s)=(4) 惯性环节: G(s)=(5) 一阶超前滞后环节: G(s)=(6) 二阶振荡环节: G(s)=可见,除了二阶振荡环节外,都是一阶环节,完全可以用一个通用一阶环节表示。如图所示典型一阶环节 即式中为环节

5、i的输出;为环节i的输入;n为系统中的环节数。而二阶振荡环节,可以化为如图所示方式连接而成的等效结构图。 K K - 设:输入向量U=,其中各分量表示各环节输入量;输出向量Y=,各分量表示各环节输出量;模型参数阵为A=; B= C=; D=于是系统中所有环节输出输入关系统一用矩阵表示如下: 1.2系统的连接矩阵如图所示为复杂联接的闭环系统框图G1(S)G2(S)G3(S)G4(s)G5(S)G6(S)G7(S)G8(S)G9(s)r y1 u2 y2 y3 u4 y4 y5 u6 u7 y7 U1 _ u3 _ u5 _ y6 y8 u8 G10(S) y9 u9 由于各环节之间存在相互作用,

6、不是孤立的,只要与其他环节有连接关系,就要受到相应变化的影响。因此把各环节的的关系描述出来还不够,要进行数值积分法求解,还必须把各环节之间的相互作用关系清楚地表达出来,这种表达是通过连接矩阵实现的。图中G1(s)、 G2(s) 、 G3(s)、 G4(s) G5(s)、G6(s)、G7(s)表示七个典型环节,G8(s)、 G9(s)、G10(s)为环节间直接作用的比例系数。各个环节输入与输出的关系为 凡是与其他环节没有连接关系的环节,其输入的系数均为0;凡与其他环节有连接关系的环节,其输入的系数不全为0;凡与参考输入连接的环节,的系数不为0。而的系数为0,则表示参考输入不与该环节相连。由式中可

7、见,除只与参考输入有直接联系外,其余各环节输入都有可能与其他环节输出有关。所以联接矩阵为: 输入联接矩阵为: 列出矩阵形式方程:1.3系统的求解和连接矩阵确定后,在通过进一步推导闭环状态方程,才能得到完整的仿真模型,以便利用数值积分公式计算求解。把各环节的的输入与输出的矩阵形式代入所有环节输出与输入矩阵形式方程 可得: 简洁表达式:式中:两边进行拉普拉斯反变换,求得系统闭环状态方程时域表达式为: 其中:为闭环系统的系数阵和输入阵。由于参考输入量为=1(t)时,则=0,所以列出最后的闭环求解方程为: 仿真模型一旦确立,就要选定数值求解方法,一般包括欧拉法,龙格库塔法等,下面介绍四阶龙格库塔法:

8、基于平均斜率的思想,可考虑多找几个点,先求出每个点的斜率,再用加权平均的方法求得一个等效的斜率,并用此斜率计算下一个点的近似值,这就是四阶龙格库塔法的基本思想。计算公式如下: 式中:可见,是按照一定规律找到的4个点上函数的斜率,计算公式就是根据四点斜率加权得到的数值解公式。1.4程序框图 为保证精度,又不至于输出太多点,数值求解过程分两层循环,内循环保证精度,步长可取小。外循环每循环一次,输出数据一次,以便分析。开 始 输入系统参数 连接阵非零元素,初值 运行参数:,输入幅值 形成及阵 形成闭环求解方程: 四阶龙格库塔法求解 计算结果? 输出结果结 束 N Y 复杂连接闭环系统的仿真程序框图1

9、.5复杂闭环闭环系统的程序实现源程序: %面向复杂连接闭环系统程序的仿真程序 %数据输入 p=1 0.01 1 0 ; 0 0.085 1 0.17 ; 1 0.01 1 0 ; 0 0.051 1 0.15 ; 1 0.0067 70 0 ; 1 0.15 0.21 0 ; 0 1 130 0 ; 1 0.01 0.1 0 ; 1 0.01 0.0044 0 ; %各环节参数输入 WIJ=1 0 1; 2 1 1; 2 9 -1; 3 2 1; 4 3 1; 4 8 -1; 5 4 1; 6 5 1; 6 7 -0.212; 7 6 1; 8 6 1; 9 7 1; %连接矩阵非零元素输入

10、n=9; %系统阶次 y0=1; %阶跃输入幅值 yt0=0 0 0 0 0 0 0 0 0; %各环节初值 h=0.001; %计算步长 T=0; T0=0; Tf=1.5; %形成闭环各系数矩阵 A=diag(p(:,1); B=diag(p(:,2); C=diag(p(:,3); D=diag(p(:,4); m=length(WIJ(:,1); %求非零元素个数 w0=zeros(n,1); w=zeros(n,n); for k=1:m if (WIJ(k,2)=0; w0(WIJ(k,1)=WIJ(k,3); else w(WIJ(k,1),WIJ(k,2)=WIJ(k,3);

11、end; end; Q=B-D*w; Qn=inv(Q); R=C*w-A; V1=C*w0; Ab=Qn*R; b1=Qn*V1; for nout=1:9 %数值积分求解(四阶龙格-库塔算法) Y=yt0' y=Y(nout); t=T0; N=round(Tf-T0)/h); for i=1:N k1=Ab*Y+b1*y0; k2=Ab*(Y+h*k1/2)+b1*y0; k3=Ab*(Y+h*k2/2)+b1*y0; k4=Ab*(Y+h*k3)+b1*y0; Y=Y+h*(k1+2*k2+2*k3+k4)/6; y=y,Y(nout); T=T,t+h; t=t+h; end

12、; %储存各环节输出数据 switch nout case 1 t1=T; y1=y;T=0; case 2 t2=T;y2=y;T=0; case 3 t3=T;y3=y;T=0; case 4 t4=T;y4=y;T=0; case 5 t5=T; y5=y;T=0; case 6 t6=T; y6=y;T=0; case 7 t7=T; y7=y;T=0; case 8 t8=T;y8=y;T=0; case 9 t9=T;y9=y;T=0; end u1=y0; u2=y1-y9; u3=y2; u4=y3-y8; u5=y4; u6=y5-0.212*y7; u7=y6; u8=y6

13、; u9=y7; end % 各环节数据输出 subplot(4,4,1); plot(t1,y1);title('y1的响应曲线'); subplot(4,4,2); plot(t2,y2);title('y2的响应曲线'); subplot(4,4,3); plot(t3,y3);title('y3的响应曲线'); subplot(4,4,4); plot(t4,y4);title('y4的响应曲线'); subplot(4,4,5); plot(t5,y5);title('y5的响应曲线'); subplot

14、(4,4,6); plot(t6,y6);title('y6的响应曲线'); subplot(4,4,7); plot(t8,y8);title('y8的响应曲线'); subplot(4,4,8); plot(t9,y9);title('y9的响应曲线'); subplot(2,1,2); plot(t7,y7);title('y7的响应曲线'); 仿真程序的调试结果 各环节输出波形一览每一个输入信号和输出信号的波形 只要把源程序中% 各环节数据输出以下的程序改为: subplot(4,4,1); plot(t1,y1);tit

15、le('y1的响应曲线');subplot(4,4,2); plot(t2,y2);title('y2的响应曲线');subplot(4,4,3); plot(t3,y3);title('y3的响应曲线');subplot(4,4,4); plot(t4,y4);title('y4的响应曲线'); subplot(4,4,5); plot(t5,u1);title('u1的响应曲线');subplot(4,4,6); plot(t6,u2);title('u2的响应曲线');subplot(4,4,

16、7); plot(t8,u3);title('u3的响应曲线');subplot(4,4,8); plot(t9,u4);title('u4的响应曲线'); subplot(4,4,9); plot(t1,y5);title('y5的响应曲线');subplot(4,4,10); plot(t2,y6);title('y6的响应曲线');subplot(4,4,11); plot(t3,y8);title('y8的响应曲线');subplot(4,4,12); plot(t4,y9);title('y9的响

17、应曲线'); subplot(4,4,13); plot(t5,u5);title('u5的响应曲线');subplot(4,4,14); plot(t6,u6);title('u6的响应曲线');subplot(4,4,15); plot(t8,u8);title('u8的响应曲线');subplot(4,4,16); plot(t9,u9);title('u9的响应曲线'); 运行调试就可以得出G1(s),G2(s),G3(s),G4(s),G5(s),G6(s),G8(s),G9(s)输入信号和输出信号的波形;波形如

18、下:subplot(2,1,1); plot(t1,u1);title('输入信号u7'); subplot(2,1,2); plot(t1,y1);title('输出信号y7');运行上面的程序即可得出输入信号u7和输出信号y7的波形,图形如下: u7输入波形和y7的输出波形第二章 复杂联接的闭环闭环系统的simulink仿真2.1仿真模型的建立仿真图如下:参数设置: 仿真步长为:0.001;仿真时间为1.5s 2.2仿真波形 subplot(4,4,1); plot(ScopeData.time,ScopeData.signals(2).values);ti

19、tle('输出信号y1'); subplot(4,4,2); plot(ScopeData1.time,ScopeData1.signals(2).values);title('输出信号y2'); subplot(4,4,3); plot(ScopeData2.time,ScopeData2.signals(2).values);title('输出信号y3'); subplot(4,4,4); plot(ScopeData3.time,ScopeData3.signals(2).values);title('输出信号y4'); s

20、ubplot(4,4,5); plot(ScopeData.time,ScopeData.signals(1).values);title('输入信号u1'); subplot(4,4,6); plot(ScopeData1.time,ScopeData1.signals(1).values);title('输入信号u2'); subplot(4,4,7); plot(ScopeData2.time,ScopeData2.signals(1).values);title('输入信号u3'); subplot(4,4,8); plot(ScopeD

21、ata3.time,ScopeData3.signals(1).values);title('输入信号u4'); subplot(4,4,9); plot(ScopeData4.time,ScopeData4.signals(2).values);title('输出信号y5'); subplot(4,4,10); plot(ScopeData5.time,ScopeData5.signals(2).values);title('输出信号y6'); subplot(4,4,11); plot(ScopeData7.time,ScopeData7.s

22、ignals(2).values);title('输出信号y8'); subplot(4,4,12); plot(ScopeData8.time,ScopeData8.signals(2).values);title('输出信号y9'); subplot(4,4,13); plot(ScopeData4.time,ScopeData4.signals(1).values);title('输入信号u5'); subplot(4,4,14); plot(ScopeData5.time,ScopeData5.signals(1).values);tit

23、le('输入信号u6'); subplot(4,4,15); plot(ScopeData7.time,ScopeData7.signals(1).values);title('输入信号u8'); subplot(4,4,16); plot(ScopeData8.time,ScopeData8.signals(1).values);title('输入信号u9'); 建立一个M文件,运行上面的程序,即可得到下面的波形,即G1(s),G2(s),G3(s),G4(s),G5(s),G6(s),G8(s),G9(s)输入信号和输出信号的波形 各环节输入

24、输出的波形一览 u7输入和y7的输出波形(示波器6) subplot(2,1,1); plot(ScopeData6.time,ScopeData6.signals(1).values) title('输入信号u7') subplot(2,1,2); plot(ScopeData6.time,ScopeData6.signals(2).values) title('输出信号y7') 第三章 仿真结果分析从上面的仿真结果可以知道,两种方法最好得出的波形基本一致,说明编程仿真的正确性。任何复杂连接结构的线性控制系统都是由有一些简单的线性环节组合而成的,按照它们之间相

25、互连接的拓扑关系列出连接矩阵,可以得到能清晰简洁地描述复杂连接系统的“仿真模型”。具有典型闭环结构形式的系统,“二次模型化”过程简单明了。在仿真模型的基础上,采用MATLAB语言,可以很方便地编程实现数值积分法求解系统动态响应,但无法观察系统中间变量的变化规律,也很难分析非线性环节的影响。具有复杂连接闭环结构形式的系统,可以用形式的一阶环节作为典型环节,再运用拓扑描述中联接矩阵的表达方法而得到此类系统结构仿真模型,然后再通过数值积分法求取各环节动态响应。但必须注意,所确定的典型环节中,参数,以保证系统仿真求解的基本条件。 第四章 simulink仿真与程序仿真的比较simulink是MATLA

26、B里的重要软件工具之一,其主要功能是实现动态系统建模、仿真和分析,从而在实际系统做出来之前,可以预先对系统进行仿真与分析,并可以对系统做适当的实时修正或者按照仿真的最佳效果来调试及整定控制系统的参数,以提高系统的性能,减少系统设计过程中反复修改的时间,实现高效率地开发系统的目标。Simulink是一个集成化、智能化、图形化的建模与仿真工具,它摆脱了MATLAB命令进行仿真技术需要大量命令及其使用方法的缺点。在simulink中只需要了解系统及其数学模型的基本概念,利用鼠标进行模型选择、连接以及参数设置就可以进行仿真和分析。综上simulink仿真特色有:1)、传统的系统微分方程或差分方程等数学

27、模型,非常抽象而且不易理解。Simulink建模直接绘制控制系统的动态模型结构图,具有简单、准确而快捷的特点。这种直觉的图形化形式,非常直观,容易理解,不仅大大简化了设计流程、减轻设计负担、减低设计成本、提高工作效率,而且使抽象深奥的数学模型变成工程技术语言控制系统方框图,好看好懂又好用。2)、实际的鼠标操作时用其点击和拖拽功能。根据实际工程中控制系统的具体构成,利用simulink提供的模块,连成一个完整的simulink动态结构图。各个环节可按simulink特定的方法设定或改变其参数,以期与实际控制系统相对应。3)、simulink内置有各种分析工具:多种仿真算法、系统线性化、寻找平衡点等,都是非常先进而实用的。采用scope 示波器模块与其它的画图模块,可以在仿真进行的同时就可以观察仿真结果。MATLAB命令有两种执行方式:一种是交互式命令执行方式,另一种是M文件的程序执行方式。命令执行方式是在命令窗口逐条输入命令,MATLAB逐条解释执行,这种方式虽然操作简单、直观、但速度慢,执行过程不能保留。程序执行方式是将有关命令编成程序存储在一个M文件中,当运行程序后,MATLAB就会自动依次执行该文件中的命令,直至全部

温馨提示

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

评论

0/150

提交评论