机电系统动态性能的计算机仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.机电系统动态性能的计算机仿真4.1 概述
机电系统计算机仿真是目前对复杂机电系统进行分析的重要手段与方法。在进行机电系统分析综合与设计工作过程中,除了需要进行理论分析外,还要对系统的特性进行实验研究。系统性能指标与参数是否达到预期的要求?它的经济性能如何?这些都需要在系统设计中给出明确的结论。对于那些在实际调试过程中存在很大风险或实验费用昂贵的系统,一般不允许对设计好的系统直接进行实验,然而没有经过实验研究是不能将设计好的系统直接放到生产实际中去的,因此就必须对其进行模拟实验研究。当然在有些情况下可以构造一套物理模拟装置来进行实验,但这种方法十分费时而且费用又高,而在有的情况下物理模拟几乎是不可能的。近年来随着计算机的迅速发展,采用计算机对机电系统进行数学仿真的方法已被人们采纳。所谓机电系统计算机仿真就是以机电系统的数学模型为基础,借助计算机对机电系统的动静态过程进行实验研究。这里讲的机电系统计算机仿真是指借助数字计算机实现对机电系统的仿真分析。这种实验研究的特点是:将实际系统的运动规律用数学表达式加以描述,它通常是一组常微分方程或差分方程,然后利用计算机来求解这一数学模型,以达到对系统进行分析研究的目的。
对机电系统进行计算机仿真的基本过程包括:首先建立系统的数学模型,因为数学模型是系统仿真的基本依据,所以数学模型极为重要。然后根据系统的数学模型建立相应的仿真模型,一般需要通过一定的算法或数值积分方法对原系统的数学模型进行离散化处理,从而建立起相应的仿真模型,这是进行机电系统仿真分析的关键步骤;最后根据系统的仿真模型编制相应的仿真程序,在计算机上进行仿真实验研究并对仿真结果加以分析。
机电系统计算机仿真的应用与发展已经过了近40年的历程,进入20世纪80年代以来,随着微型计算机技术以及软件技术的飞速发展与广泛应用,使得机电系统计算机仿真获得了实质性的发展,并使其走进广大的机电系统生产、设计、研究的第一线。目前在该领域应用最为广泛的软件包就是美国Mathworks公司开发的MATLAB语言软件。虽然它最初并非是为机电系统仿真与设计开发的,但是它的强大的矩阵运算功能与图形处理及绘制能力,以及在MATLAB平台上开发出来的各种工具箱,和面向结构图的SIMULINK 系统分析环境,为机电系统计算机仿真提供了强有力的软件工具,从而为机电系统计算机仿真与辅助设计开辟新的方法与途径提供了充分的条件。
考虑到部分读者不具备MATLAB基础知识,因此,在本书的附录一中对MATLAB
语言基础知识作了简单的介绍。
4.2面向微分方程的连续系统仿真与MATLAB实现
对于控制系统的最基本数学描述就是微分方程,因此有必要在介绍机电系统计算机仿真时对这种方法加以介绍。实际上在前面章节已经介绍了几种典型数值积分方法以及它们的MATLAB实现。数值积分的数学基础就是微分方程(状态方程),如果一个系统以微分方程的形式加以描述,就可以利用前面的知识对该系统进行仿真研究,有关这部分内容本章就不再加以讨论了。这里将介绍如何利用MATLAB中为用户所提供的常微分方程解函数ode和对微分方程进行求解计算,以及在面向微分方程的系统仿真研究中如何应用M函数。
4.2.1 基于ode函数的面向微分方程的系统仿真
1. 常微分方程解函数ode的基本格式
(l)ode函数的基本分类。在 MATLAB 5.x中 ode函数可以分为两类五种形式。一类是应用于非刚性微分方程求解,如ode45;另一类属于求解刚性微分方程的ode 解函数,如ode23s.他们的具体形式如下:
1 ode45函数用于求解非刚性微分方程.它属于中阶龙格一库塔法;
2 ode23函数用于求解非刚性微分方程,它属于底阶龙格-库塔法;
3 ode113函数用于求解非刚性微分方程的变阶法;
4 ode15s函数用于求解刚性微分方程的变阶法;
5 ode23s函数用于求解刚性微分方程的低阶法。
(2)ode函数的基本格式。上还这五种 ode函数的格式基本上一样.这里主要以最常用的ode45函数为例加以介绍,其结果多数也可用于其他ode函数。ode45的基本格式主要有以下几种。
① [t,y]=ode45('F',tspan,y0)
其中:'F'是ode文件名字符串;
tspan= [T0 TFINAL]为一个向量,它指定了积分的启始时刻和结束时刻; y0为积分运算的初始条件。
该函数对微分方程系统
()y t F
y,
='从T0到TFINAL时间段进行积分。函数()y t F,返
回一个列向量。在解向量Y中的每一行与列向量T的返回时间相对应。为了在指定的时刻点T0,T1,…,TFINAL得到解,则使用tspan=[T0,T1,…,TFINAL]。
② [t , y]=ode45('F', tspan , y0,options )
该函数的解如同前一格式,只是在这里用选项options 中的参数来代替前一格式中的缺省值,options 中的参数变量由函数odeset 予以建立。最常使用的选项参数是标量相对容差'RelTol'(缺省值为1e-3)与绝对容差向量'AbsTol'(缺省的全部向量元素均为1e-6)。
(3)odeset 函数的基本格式。odeset 函数用来建立或改变options 选项结构,其基本格式为
options=odeset ('namel',valuel ,'name2',value2,…)
通过该odeset 函数建立积分器选项options 的结构,在options 中所命名的属性具有指定值,对于任何未指定的属性均为缺省值。
options =odeset (oldopts ,'namel', valuel ,…)
通过该odeset 函数改变现存选项结构oldopts 。
options=odeset (oldopt , newopts )
通过该odeset 函数将现有选项结构oldopts 与新选项结构newopts 结合在一起,新选项中的属性将覆盖对应原有属性。
2.机电系统仿真的ode 函数实现
由ode 函数可知,当已知系统由微分方程()y t F y ,='加以描述时,并建立以'F'
作为ODE 文件名,则可应用
[t ,y]=ode45('F',tspan ,y0)
实现对系统的求解分析。这里所讲的ODE 文件实际就是M 函数文件,因此对于以高阶微分方程加以描述的系统,首先应将其写成一组一阶微分方程的形式,当然如果系统是以状态方程描述的,即可直接对其编写M 函数文件。函数文件的特征就是文件第一行一定是以function 开始,而且在函数文件中的变量均为局部变量,同时由函数文件构造的功能函数可以像MAT-LAB 的其他函数一样进行调用。实际上在ode 函数[t ,y]=ode45('F',tspan ,y0)中,对以'F'作为文件名的ODE 文件就是这类函数文件。下面通过实例说明对系统仿真过程中的具体应用。
例4-1 之已知一三阶系统,其状态方程表达式为
BU AX X +=
其中
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=182424109121094A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=12482.B