内容发布更新时间 : 2024/11/15 4:15:54星期一 下面是文章的全部内容请认真阅读。
达工程,信号分析,振动理论,时序分析与建模,化学统计学,优化设计等领域,并表现出一般高级语言难以比拟的优势。
3.3 Matlab建模与仿真
长期以来,仿真领域的研究重点在仿真模型建立这一环节上,即在系统模型建立以后,要设计一种算法以使系统模型等为计算机所接受,然后再将其编制成程序在计算机上运行,因此,建模通常需要很长一段时间,同时仿真结果的分析必须依赖有关专家,而对决策者缺乏直接的指导。Matlab 提供的动态系统仿真工具 Simulink 可有效解决上述仿真技术问题。 在 Simulink 中,建立系统模型,可以随意改变仿真参数,即时得到修改后的仿真结果。 Matlab中的分析与可视化工具多种多样且易于操作。利用 Simulink 对动态系统做适当仿真和分析,可以在实际做出系统之前进行,以便对不符合要求的系统进行适时校正,增强系统性能,减少系统反复修改的时间,实现高效开发系统的目标。 动态仿真结果用图形方式显示在示波器的窗口或将数据以数字方式显示出来。 常用的 3 种示波器为Scope,XY Graph和Display。
3.4 Simulink仿真工具
为了准确地把一个控制系统的复杂模型输入给计算机,然后对之进行进一步的分析与仿真,MathWorks公司为MATLAB提供了新的控制系统模型图形输入与仿真工具,并定名为Simulink。
MATLAB软件的Toolbox工具箱与Simulink仿真工具,为控制系统的计算与仿真提供了一个强有力的工具,使控制系统的计算与仿真的传统方式发生了革命性的变化。MATLAB已经成为国际、国内控制领域内最流行的计算与仿真软件。
Simulink有两个明显的功能:仿真与连接,亦即可以利用鼠标器在模型窗口上画出所需的控制系统模型,然后利用该软件提供的功能来对系统直接进行仿真。很明显,这种做法使得一个很复杂系统的输入变得相当容易。Simulink的出现,更使得Matlab为控制系统的仿真与其在CAD中的应用打开了崭新的局面。
Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,不仅界面友好且支持更灵活的模型描述手段。用户既可直接用方块图来输入仿真模型,也可用Matlab语言编写M-文件来输入。既可以纯图形方式输入,也可以纯文本方式来输入。还可将上述两种方法交叉混合使用。既可对连续系统也可对离散系统进行仿真,还适合于采样保持系统。同时,它也具有能在仿真进行的过程中动态改变仿真参数的功能。因此可以不难理解它自推出以后,就一直受到欧美和日本等国家或地区的控制界学者的青睐。
Simulink为用户提供了方框图进行建模的图形接口,采用这种结构画模型就像你用笔和纸来画一样容易。它与传统的仿真软件包用微分和差分方程建模相比,具有更直观、方便、灵活的优点。Simulink包含有Sinks(输出方式)、Source(输入源)、Linear(线性环节)、Nonlinear(非线性环节)、Connections(连接与接口)和Extra (其它环节)子模型库,而且每个子模型库中包含有相应的功能模块。用户也可以定制和创建用户自已的模块。
16
用Simulink创建的模型可以具有递阶结构,因此用户可以采用从上到下或从下到上的结构创建模型。用户可以从最高级开始观看模型,然后用鼠标双击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。
在定义完一个模型以后,用户可以通过Simulink的菜单或Matlab命令窗口键入命令来对它进行仿真。菜单方式对于交互工作非常方便,而命令行方式对于运行一类仿真非常有用。采用Scope模块和其它的画图模块,在仿真进行的同时,就可观看到仿真结果。除此之外,用户还可以在改变参数后能迅速观看系统中发生的变化情况。仿真的结果还可以存放到Matlab的Workspace(工作空间)里做事后处理。
由于Matlab和Simulink是集成在一起的,因此用户可以在这两种环境下对自已的模型进行仿真、分析和修改。
3.5控制系统计算机仿真的过程
控制系统仿真,就是以控制系统的模型为基础,主要用数学模型代替实际的控制系统,以计算机为工具,对控制系统进行实验和研究的一种方法。
通常控制系统仿真的过程按以下步骤进行: 第一步,建立自控系统的数学模型
系统的数学模型,是描述系统输入、输出变量以及内部各变量之间关系的数学表达式。描述系统诸变量间静态关系的数学表达式,称为静态模型;描述自控系统诸变量间动态关系的数学表达式,称为动态模型。常用最基本的数学模型是微分方程与差分方程,
根据系统的实际结构与系统各变量之间所遵循的物理、化学基本定律,例如牛顿定律、克希霍夫定律、运动动力学定律、焦耳楞次定律等来列写出变量间的数学模型。这是解析法建立数学模型。
对于很多复杂的系统,则必须通过实验方法并利用系统辨识技术,考虑计算所要求的精度,略去一些次要因素,使模型既能准确地反映系统的动态本质,又能简化分析计算的工作。这是实验法建立数学模型。
控制系统的数学模型是系统仿真的主要依据。 第二步,建立自控系统的仿真模型
原始的自控系统的数学模型比如微分方程,并不能用来直接对系统进行仿真。还得将其转换为能够对系统进行仿真的模型。
对于连续控制系统而言,有像微分方程这样的原始数学模型,在零初始条件下进行拉普拉斯变换,求得自控系统传递函数数学模型。以传递函数模型为基础,等效变换为状态空间模型,或者将其图形化为动态结构图模型,这些模型都是自控系统的仿真模型。
对于离散控制系统而言,有像差分方程这样的原始数学模型以及类似连续系统的各种模型,这些模型都可以对离散系统直接进行仿真。
第三步,编制自控系统仿真程序
17
对于非实时系统的仿真,可以用一般的高级语言,例如Basic、Fortran或C等语言编制仿真程序。对于快速的实时系统的仿真,往往用汇编语言编制仿真程序。当然也可以直接利用仿真语言。
如果应用MATLAB的Toolbox工具箱及其Simulink仿真集成环境作仿真工具,这就是MATLAB仿真。控制系统的MATLAB仿真是控制系统计算机仿真一个特殊软件工具的子集。
第四步,进行仿真实验并输出仿真结果
进行仿真实验,通过实验对仿真模型与仿真程序进行检验和修改,而后按照系统仿真的要求输出仿真结果。
18
4 Simulink环境中的系统模型、仿真结果及分析
双闭环控制系统在实际工程中应用极其广泛,现对一个直流拖动双闭环V-M调速系统的进行仿真设计。
晶闸管—直流电机双闭环调速系统(V-M系统)的Simulink动态结构图,如图4所示。图中直流电机数据有:
Pnom=10kW,Unom=220V,Inom=53.5A,nnom=1500r/min,电枢电阻Ra=0.31Ω,路总电
阻R=0.4Ω,电枢回路电磁时间常数Ta=0.0128s,三相桥平均失控时间Ts=0.00167s;触发整流装置的放大系数Ks=20;系统运动部分飞轮矩相应的机电时间常数Tm=0.042s,系统测速反馈系数Kt=0.0067Vmin/r,系统电流反馈系数Ki=0.072V/A,电流环滤波时间常数
Toi=0.002s;转速环滤波时间常数Ton=0.01s。忽略系统的非线性,分别对系统的电流内环
与转速外环进行稳态与动态的计算及仿真如下。
图4 双闭环调速系统的Simulink动态结构图
Fig4 double closed loop rotation regulation system
of Simulink dynamic structure diagram
首先,计算额定磁通下的电机电动势转速比:
Ce?Unom?InomRa?0.1356V?min/r
nnom然后选择电流环和转速环类型。在双闭环直流调速系统中,电流环的主要作用就是保证电机起动时获得允许的最大电流,保持电枢电流在动态过程中不超过允许值,突加控制作用时超调量越小越好。根据自动控制理论,将电流环设计成典型I型系统,因为典型I型系统动态跟随性能的超调量很小,符合电流环的设计要求;而转速环在系统中主要发挥其抗扰动作用,根据自动控制理论,将转速环设计成典型II型系统,因为典型II型系统动态抗扰性能的动态速降?nmax%小,符合转速环的设计要求。
为保证电流调节器和转速调节器的运算放大器工作在线性特性段以及保护调速系统
19
[3]
[1]
[2]
[1]
的各个元件、部件与装置不致损坏,在电流调节器和转速调节器的输出端都设置了限幅装置。
4.1电流环的MATLAB计算及仿真
4.1.1电流环校正前后给定阶跃响的MATLAB计算及仿真
因为电流检测信号中常含有交流分量,所以须添加低通滤波器,但是由低通滤波器产生的反馈滤波同时也给反馈信号带来延迟,为平衡这一延滞作用,在给定信号通道也添加一个与反馈滤波相同时间数的惯性环节,使得给定信号与反馈信号经过同样的延滞。其传递函数为:
1
Tois?1按照把电流环设计成I型系统的要求,根据自动控制理论,电流调节器应选择比例积分调节器,即PI调节器,其传递函数为:
WACR(s)=KpiTis?10.0128s?1=,Kpi=0.32,Ti=0.0128=Ta Tis0.04s电流环的校正主要是对晶闸管整流与移相触发装置的放大倍数Ks进行校正,校正前
Ks=20,构成动态结构图模型mx010.mdl;校正后Ks=30,构成动态结构图模型mx010a.mdl。
其他参数不变,校正前、后的动态结构图模型只是Ks的值不一样,所以在此只给出校正后的mx010a.mdl文件的动态结构图的模型,如图4-1-1A所示。
图4-1-1A 带参数电流环的Simulink的模型为mx010a.mdl文件
Fig4-1-1A the belt parameter current loop Simulink model
is the mx010.mdl document
在程序文件方式下执行以下的MATLAB程序L157.m: % MATLAB PROGRAM L157.m
[a1,b1,c1,d1]=linmod('mx010');s1=ss(a1,b1,c1,d1); figure(1);step(s1);hold on
[a2,b2,c2,d2]=linmod('mx010a');s2=ss(a2,b2,c2,d2); figure(2);step(s2)
[y,t]=step(s1);[mp,tf]=max(y);cs=length(t);
20