计算机仿真技术课件.ppt

上传人:小飞机 文档编号:1516959 上传时间:2022-12-02 格式:PPT 页数:211 大小:3.63MB
返回 下载 相关 举报
计算机仿真技术课件.ppt_第1页
第1页 / 共211页
计算机仿真技术课件.ppt_第2页
第2页 / 共211页
计算机仿真技术课件.ppt_第3页
第3页 / 共211页
计算机仿真技术课件.ppt_第4页
第4页 / 共211页
计算机仿真技术课件.ppt_第5页
第5页 / 共211页
点击查看更多>>
资源描述

《计算机仿真技术课件.ppt》由会员分享,可在线阅读,更多相关《计算机仿真技术课件.ppt(211页珍藏版)》请在三一办公上搜索。

1、第1章 计算机仿真技术,主要内容系统与系统模型仿真及计算机仿真三要素连续系统仿真概论计算机仿真软件,1.1 系统与系统模型,1.1.1 系统的概念在生活、工作等各个方面,我们都离不开系统这样一个话题,它是人们认识世界改造世界的过程中对某个事物、某个事件进行分析研究及改造的一个载体。作为计算机仿真技术的载体和研究对象,系统是计算机仿真技术中不可或缺的部分,只有确定好系统的内涵和外延才能够对科学研究及工程设计的各个方面进行回归综合、协同、集成等方面的工作,而对于研究对象的本身,由于各个专业、各个层次的研究目标不同,对于系统的定义往往千差万别,作为一般的定义系统可以定义为:相互关联又相互作用着的对象

2、的有机组合,该有机组合能够完成某项任务或实现某个预定的目标。,从以上定义可以看出作为科学研究及工程设计的系统主要有以下三个要素组成:(1)对象 (2) 属性 (3)活动以上这些就构成了系统的三个要素,系统可以完成某项任务或实现某个预定的目标,达到研究和设计的目的。例如控制某个加热的锅炉水温达到100。图1-1 加热炉温控系统框图系统的定义及分类千差万别,如果从工程应用的角度出发,我们可以将系统分为工程系统、非工程系统和综合系统。,1.1.2系统研究的方法随着科学研究和社会发展,人类在认识世界、改造世界的过程中逐渐走向深入,科学技术发展所面临的复杂程度日益加深,类似于阿基米德的金冠故事的科学发现

3、已经不是科学研究和工程设计的主流的方式。人们在进行科学研究和工程设计已经形成了一些行之有效的方法,通过这些方法我们可以对所要研究或设计的系统进行分析、综合与设计。这些方法归纳起来主要有理论解析法、直接实验法与仿真实验法三种方法。1.理论解析法所谓理论解析法,就是运用已掌握的理论知识对控制系统进行理论上的分析、计算。它是在进行理论学习的一个必然应用的方法,其通过理论的学习掌握有关的系统的客观规律,通过理论分析推导来对系统进行研究。,图1-2 单容水箱液位控制系统如图1-2所示的单容水箱液位控制系统,通过体积和液位的平衡关系,可以得到其数学模型。 (1.1)然后可以通过局部线性化得到如下所示的单容

4、水箱液位的传递函数模型 (1.2),2.直接实验法这种方法是我们古人常常采用的方法,譬如伽利略的自由落体实验。作为实验法往往是在系统本身上进行实验。实验者利用各种仪器仪表与装置,对系统施加一定类型的激励信号,利用系统的特性输出来进行系统动静态特性的研究。例如我们可以通过给电动机突然加上供电电压,来测量电机的阶跃特性。这种方法具有简明、直观与真实,针对性强,在一些小型系统系统分析与测试中经常采用。整体具有系统简单,经济消耗小等特点。但是,这种方法采用实际系统进行实验,其费用较高,系统构成复杂、不确定因素太多,并且其有些系统由于实现性、安全性等原因不允许进行直接的实验研究。应用的空间、时间受限较多

5、。 3.仿真实验法仿真实验法就是在模型上(物理的或数学的)所进行的系统性能分析与研究的实验方法,它所遵循的基本原则是相似原理。系统模型按照模型的形式可以分为物理模型和数学模型,还可以是两者的结合。,例如我们可以用包括欧姆定律、比例环节和惯性环节等来得到相关的控制规律,即系统的数学模型来进行研究。也可以对要设计的系统进行一定比例的缩放得到缩小或放大的物理模型或者具有一定特性替代的模型来进行间接地替代。也可以像计算机控制系统系统在线调试或火电站模型的模拟运行等数学和物理模型同时存在的混合系统。在物理模型上所做的仿真实验研究具有效果逼真、精度高等优点,由于相对费用较高,且一致性有时难以保证等问题。而

6、随着计算机技术和数学理论的飞速发展,人们越来越重视利用数学模型或非实物软件模型来对系统进行研究和设计。这样一类模型的研究实际上是利用了性能相似的原则来进行的,在一定的程度可以替代实际系统来进行“仿真”,是可信的。当然,采用何种的手段与方法建立高精度的数学模型并能够在计算机上可靠的计算、运行是这种方法成功与否的关键。,对于模型的实验应该说是在进行系统研究中的主要手段,选择在模型上进行实验的原因主要有以下原因: (1)系统尚未设计出来 (2)某些实验会对系统造成伤害 (3)难以保证实验条件的一致性 (4)费用高 (5)无法复原,1.1.3 模型的建立 1.模型不管采用何种相似形式,仿真的进行都是在

7、模型的基础上进行的,系统的仿真离不开相关的模型,而模型的好坏与否对系统的仿真是否真正能够和系统“相似”具有决定性的作用。对于不同的专业和研究特点,其模型应用的侧重点是不一样的,并且在系统仿真研究的不同阶段,其模型的应用也是不一样的。例如在系统的理论学习阶段模型侧重于数学模型,而在系统的应用实验阶段,物理模型是不可或缺的。另外,随着现代科学技术的发展,一些模型并不能用传统的数学模型来表示,而是需要采用描述性的语言来建立所谓的系统数学模型,例如模糊控制的模型。在科学研究的过程中,也需要先有理论模型分析、半实物模型实验分析和实物运行验证等阶段。一个好的模型是工程设计或科学研究的基础,建立一个好的数学

8、模型,需要对所要研究系统的内涵及外延有一个比较清晰的认识,从而使模型能够代表所研究的系统。模型可以是物理模型、数学模型、混合模型甚至是语言描述模型,在本书中主要讲述或应用数学模型。,2.数学模型的建立建立系统模型就是(以一定的理论依据)把系统的行为概括为数学的函数关系。下面以一种直线倒立摆建模的过程来说明建模的基本步骤:1)确定模型的结构,建立系统的约束条件,确定系统的实体、属性与活动。在忽略了空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和均匀质杆组成的系统,如下图所示: 图1-3 直线一级倒立摆模型,图1-4 小车及摆杆受力分析2)检测得到有关的模型数据。根据力学及运动等物理定律

9、,我们可知系统中主要包含以下参数: M-小车质量 m-摆杆质量 b-小车摩擦系数 l-摆杆转动轴心到杆质心的长度 F-下车受力 x -小车位置 摆杆与垂直向上方向的夹角 摆杆与垂直向下方向的夹角(考虑到摆杆的初始位置为竖直向下),3)运用适当理论建立系统的数学描述,即数学模型。这个系统可以通过拉格朗日方法建模,牛顿-欧拉方法建模等方法对系统进行建模,例如采用牛顿-欧拉方法建模时可以得到如下系统运行方程。 (1.3) 经过一定的化简最终得到系统的状态方程。设 ,则可以得到以小车加速度作为输入的系统状态方程: (1.4),4)检验所建立数学模型的准确性 在MATLAB中对该模型进行单位阶跃的仿真实

10、验来验证所建模型的准确性:A=0 1 0 0;0 0 0 0;0 0 0 1;0 0 48.3 0B=0;1;0;4.9C=1 0 0 0;0 0 1 0D=0;0IPS=ss(A,B,C,D)step(IPS) 图1-5 直线一级倒立摆模型的阶跃响应由图中可以看出该倒立摆系统模型符合倒立摆的特性。,1.2 仿真及计算机仿真三要素1.2.1 仿真的定义仿真实质是对一个系统由其他系统(模型)代替或模拟该系统来进行研究和设计,这就要求系统和替代系统(模型)之间要有可替代的条件,也就是说实际系统和仿真系统之间应该满足相似性原理。相似性原理贯穿仿真技术的始终,是仿真技术的基础也是所遵循得基本原则。在实

11、际的科学研究,工程实践的过程中,由于目的和方法不同,相似性的方式可以包含以下几个方面。(1)性能相似性能相似可以分为数学性能相似和物理性能相似。数学性能相似一般是通过原理抽象,利用各个学科内的各类定律和规律,通过数学模型来表征系统,并进行仿真计算研究。如图1-6所示的弹簧二阶阻尼系统和二阶电路系统,都可以通过各自的工作特点,进行理论分析,形成一个相似的二阶微分方程模型。,(1.5) 图1-6 弹簧二阶阻尼系统和二阶电路系统物理性能相似是指构成模型的元素和原系统的不同,但其性能相似。例如:可用一个电气系统来模拟热传导系统。在这个电气系统中电容代表热容量,电阻代表热阻,电压代表温差,电流代表热流。

12、也如图1-6所示的由二阶电路代替弹簧二阶阻尼系统对由弹簧及液压装置组成的机械悬挂系统进行仿真研究。,(2)几何相似根据相似原理把原来的实际系统放大可缩小。例如把12000吨水压机可用1200吨或120吨水压机作其模型,进行形变等仿真实验。万吨轮船或大型飞机也要用缩小的模型来进行流体力学方面的仿真研究。(3)环境相似一种是指通过模拟系统的运行环境,使人或设备能够及时感知当前环境的适应度,例如驾驶员培训模拟器,可以从视觉、听觉和触觉等方面使学员有一种身临其境的感觉。另一类本身模拟环境就是研究对象,从而研究环境的运行的情况。例如天气模拟系统。,1.2.2 计算机仿真的目的和作用,(1)优化设计作为工

13、程设计和科学实验,往往希望系统能够以一种最优的形式运行,尤其是电气与自动化的系统的设计。在设计或运行调试过程中,可以通过计算机仿真技术,仿真实验得到系统的性能和参数,以便进行参数的调整和优化。例如在控制系统中,通过多次的参数计算仿真,保证系统可以有一个比较理想的动、静态特性。(2)经济性通过计算机仿真可以避免实际系统运行时所消耗的材料或能源,节省设计或研究的费用,另外,采用物理模型或实物实验,花费巨大,采用数学模型即计算机数学仿真可大幅度的降低成本并可重复使用。例如,在进行飞机制造的过程中,进行风洞实验时,常常采用缩小的飞机模型替代实际飞机,或者是采用专用软件进行造型分析。,(3)安全性利用计

14、算机仿真技术可以提高系统实验运行安全系数,减少由于系统试制阶段的状态不确定性而造成的人员或财物的损失。例如安全载人飞行器和核电站的危险性不允许人员在不成熟的情况下冒然进入现场操作运行,必须进行仿真。(4)预测性对于非工程系统,直接实验不可能,只能采用预测的方法。例如市场中的股票价格分析和天气预报等。(5)复原性通过仿真的手段复现一些场景或物体,从而使人们能够对一些事件进行模拟分析,实现事件评估或情景模拟。例如虚拟现实技术和安全事件分析评估等。,1.2.3计算机仿真系统的三要素由以上所述可知,计算机仿真主要有系统、模型、计算机三个部分组成,常常称为计算机仿真的三要素,三者之间形成如图所示的关系。

15、 图1-7 计算机仿真三要素及三个基本活动,通过专业理论知识的学习可以完成系统建模,形成的数学模型和实际系统的相似,但是由于计算机数据离散的要求和计算机仿真的实时性、可信性等要求,在进行计算机仿真时,需要考虑已经建立的数学模型是不是满足仿真的要求,还是要将系统模型转换为计算机系统认可的,具有一定相似性的计算机仿真模型。这需要进行专门的计算机仿真算法的研究,在本书主要侧重于用MATLAB的语言来完成计算机仿真的应用,对于计算机仿真算法不作太深入的探讨,在后面的学习中会简单介绍一下。计算机仿真三要素中,系统是根本,通过对系统的分析,通过系统建模建立相应的数学模型,然后通过计算机仿真的建模,在计算机

16、中进行仿真实验,研究分析系统,如果效果满意则仿真结束。如果不满意则分析原因,重新进行上述步骤。,1.2.4 仿真的分类1.按照模型性质分类 可以根据系统研究模型的性质分: (1)物理仿真按照物理性质构造系统的物理模型,并在模型上进行试验。(直观、形象) (2)数学仿真 一般是指在计算机上对系统的数学模型进行试验,在本书中基本上是以这一类模型为主。(经济方便) 3)混合仿真两者结合。,2.根据仿真时钟与实际时钟的比例关系分类在实际的仿真过程中,实际系统的运行和仿真运行的比例并不是1:1的形式出现,是应该根据系统的实时性创新的要求来进行选择,其推进的时钟是不同的。实时仿真,仿真时钟和实际时钟完全一

17、致。欠实时仿真,仿真时钟比实际时钟慢。超实时仿真,仿真时钟比实际时钟快。,3.按照信号类型:模拟、数字、混合 (1)模拟仿真由一些基本的模拟器件组成,它的输入、输出是连续变化的电压信号。采用并行运算,运算速度快,但精度不高。 (2) 数字仿真系统全部由数字器件构成,其处理也是按照离散数据来处理,其主要工具是数字计算机和相应的数字仿真软件。仿真精度高,仿真灵活方便,但是需要将模拟系统离散化,其算法和步长的选择很重要。 (3)混合仿真是模拟-数字计算机仿真,当以上两者都不满足要求时,可以考虑采用混合仿真的方式进行仿真。例如采用数字控制器控制一个加热锅炉的水温,系统中既有数字控制信号,也有模拟的温度

18、信号采集。,1.3 连续系统仿真概论在计算机仿真技术中也可以根据系统的数学模型特征将仿真分为连续系统仿真、离散系统仿真和混合系统仿真。 1.连续系统仿真系统的输入输出信号均为时间的连续函数,可用微分方程、状态方程等数学表达式来描述,按照数值求解的方法来进行仿真计算。这也是本书主要介绍的内容。 2.离散系统仿真系统的状态变化只是在离散时刻发生,且由某种随机事件驱动,称之为离散事件系统。多采用流程图或网络图表达。在分析上则采用概率及数理统计理论、随机过程理论来处理,例如理发店中的理发师及理发者的各种状态与活动。在本书没有涉及这部分内容,有兴趣的读者可参阅有关文献。 3.混合系统仿真是前两类仿真的综

19、合,其一般在复杂的大系统仿真工程中实现。例如航天工程中的设备和人员的控制、运行操作等。,1.3.1连续系统仿真模型在实际的连续系统中,常见到的系统是线性时不变系统(LTI)系统,其模型有两类,一类是连续系统的模型,一类是离散化的连续系统的模型。 1.连续时间模型 微分方程 (1.6) 传递函数 (1.7)卷积函数模型 (1.8)状态空间描述 (1.9),2.离散时间模型 差分方程 (1.10) Z传递函数 (1.11) 卷积序列 (1.12)离散状态空间模型 (1.13),3.连续离散混合模型有些系统由于研究对象是一个连续变化的实际系统,而控制或驱动则由计算机来完成,系统建立相应的模型时则包含

20、连续部分和离散部分。系统模型中各个环节中有的空间为连续变量,而有的环节的状态变量为离散变量。系统组成如图1-8所示。图1-8 单闭环计算机控制系统框图,1.3.2 连续系统的仿真数字算法初步在连续系统中,对系统运动的描述往往是采用微分方程来进行描述,其基本形式如式1.14所示,其他模型形式是在其基础上的变换或推论。 (1.14)在物理世界中,系统的动态变化最后还是要归结到系统在时域的运行变化,也就是说系统的研究还是需要求解时域的变化及特性,这往往需要进行积分运算,而积分运算是一种连续累积运算。在计算机中由于计算机字长、存储空间、仿真时间等因素,计算机不能进行这样的累积运算,需要采用数字积分算法

21、来近似仿真运算。,数字积分算法是求解控制系统运动的微分方程模型的主要手段,其得到受控物理量的运动规律,当然这种方式也会受到一些假设条件、非必要因素忽略的影响,但是如果满足一定的精度条件,这种近似的仿真计算还是满足仿真需要的。在本节中将简单介绍一些常见的仿真算法,以便让读者对计算机仿真算法有一个初步的了解,而对于具体的仿真算法请参阅相关资料,在这里不再介绍。一阶微分方程微分方程式的基本组成,高阶微分方程一般也可以有一阶微分方程组成, 所谓数字积分算法,就是寻求式1.14中y在一系列离散点t0, t1, t2, tn的近似解y(1),y(2),y(n)。相邻两个点之间h =tn-tn-1,称为计算

22、步长或步距。根据 已知的初始条件y(0),y(-1),,采用不同的递推算法(即不同的数值积分算法)可逐步递推计算出各时刻的y的数值。常用的方法有欧拉法、梯形法、四阶龙格-库塔法、亚当姆斯法等。,1.3.3几种常用的积分法 1.欧拉法欧拉法是最简单的一种数值积分法。虽然它的计算精度较低,实际中很少采用,但其推导简单,能说明构造数值解法一般计算公式的基本思想。对于式1.14从微积分的知识中可以得到t0-t1的积分算式: (1.15) 该积分算式的集合意义如图1-9所示。 图1-9 欧拉法数值积分运算,式1-B的积分项是曲线f及t0,t1所包围的面积,当步长h =tn-tn-1足够小时,可以用矩形面

23、积加上初始值y(0)来近似,即 (1.16)其中y(t1)的近似值为y1,y(t0)的近似值为y0,然后依次类推就可以得到以下欧拉递推公式。 yn+1 = yn + h( yn,tn ) (1.17)该公式又称为矩形法。任何一个新的数值解yn+1都是基于前一个数值解yn以及它的一阶微分值f(yn,tn) (即此处的曲线切线)求得的。若已知初值y0,则可以进行迭代计算,求得式1.14在tt1, t2, tn 处的近似解y(t1),y(t2),y(tn)。,y1 = y0 + h( y0,t0 ),2.梯形法在上面的推导中,若用图中的梯形面积来近似式1.14中的积分项(如图1-10所示)。 图1-

24、10 梯形法数值积分运算则可直接得到如下梯形数值积分算法公式: yn+1=yn+ (yn,tn)+(yn+1,tn+1) (1.18)很显然,该公式的yn+1项是包含在公式的右边,其不能直接计算得到,需要采用其他算法(如欧拉法)得到等式右端的yn+1值才能够使计算进行下去。为了提高计算精度,可用梯形公式反复迭代。通常在工程问题中,为简化计算,只迭代一次。这样可得改进的欧拉公式,(1.19)上式中第一式称为预估公式,第二式称为校正公式。通常称这类方法为预估-校正方法,也称为改进的欧拉法。这种有预估值提前运算的算法,又被叫做隐式公式算法。3.龙格-库塔法将公式1.14在tn点展成泰勒级数 (1.2

25、0)如果去泰勒级数的前两项,则公式变成欧拉公式,如式1.21所示 (1.21),其去掉的部分就是级数的截断误差O(h2),其误差较大,如果要得到精度更高的近似解,必须取泰勒级数计算式中的高阶导数,但是其计算难度及计算量会大大增加。在实际的应用中,可以采取精度和计算难度的折中的方法,4阶龙格-库塔法就是其中一种最为常见的数值积分算法,它取泰勒级数的前五项,导数最高阶次是4阶,截断误差O(h5)。龙格-库塔法是利用曲线f上的几个点值确定其计算系数,因此其选择可以有多种组合方式,得到的龙格-库塔法也是不一样的。下面就是其中一种算法: (1.22),龙格-库塔法和欧拉法一样都属于单步法,只要给定方程的

26、初值若已知初值y0,就可以一步步求出近似解y(t1),y(t2),y(tn)。y(t1)的近似值为y1, y2, yn。单步法有下列优点:1)需要存储的数据量少,占用的存储空间少;2)只需要知道初值,即可启动递推公式进行运算,可自启动;3)容易实现变步长运算。4.亚当姆斯法 亚当姆斯法是线性多步法。在利用多步法计算y(tn+1)值时,必须已知除y(tn)外前几步的值,例如y(tn-1),y(tn-2)等。线性多步法不能自启动,需先用其他方法求出前几步的值才能利用进行数值积分的求解。线性多步法的递推计算公式可写为 (1.23)可以采用插值多项式来近似计算f(y,t),在tn-k-1到tn区间内等

27、间距取k个点,进行插值运算,求出上式中的待定的系数fi=f(yi,ti),i,i等,进而得到数值积分的值。根据牛顿后插公式进行插值,得到一个k-1次多项式逼近f(y,t),即,(1.24)其计算的几何意义如图1-11所示: 图1-11 亚当姆斯法数值积分运算常用的4阶亚当姆斯法显式公式为 (1.25),1.3.4 算法误差和稳定性问题算法误差主要包括两种误差:截断误差和舍入误差。 1.截断误差截断误差是指利用泰勒展开公式进行数值积分运算时,由于只取前几项而造成的计算误差。截断误差的阶次越高,其求解的精度越高。前面介绍的积分方法的截断误差为: 欧拉法:O(h2) 梯形法:O(h3) 四阶龙格库塔

28、法:O(h5) 亚当姆斯法:O(h6),2.舍入误差由于积分算法是由有限精度(字长)的计算机算术运算来实现的,所以必定要引入舍入误差。舍入误差会积累,它随着积分时间的增加和积分法阶次的增高而增加,并且它还随着积分步长的减小而变得愈加严重。这是因为对于给定的积分时间,使用更小的步长就意味着更多的积分步数。 3.稳定性问题稳定性是数值积分法中非常重要的概念。所谓稳定性问题是指误差的积累是否受到控制的问题。如果在迭代递推运算时,前面积累的舍入误差是收敛的,即对实际误差的影响是减弱的,则计算方法是稳定的;反之,影响是增长的、积累是发散的,则计算方法会变得不稳定,使得仿真计算结果是不可信的,仿真计算结果

29、失去意义。,通常,把数值积分法用于试验方程 (1.26)来判断积分算法的稳定性。若数值积分公式为 (1.27)则当差分方程满足稳定条件p|(h)|1时,算法才稳定。下面对几种数值积分法进行稳定性分析。 (1)欧拉法把欧拉公式yn+1=yn+hfn应用到上述试验方程,得到,对式(3.28)进行Z变换后得 (1.29)此差分方程的特征方程为 (1.30)根据差分方程稳定条件得 (1.31)式1.31称为欧拉公式的稳定性条件,它对h的限制构成了复平面上以(-1,0)为圆心的单位圆(图1-12),也称为欧拉公式的稳定区域。如果积分步长取得足够小使h落在稳定域内,则欧拉公式是稳定的。 图1-12 欧拉公

30、式的稳定区域,(2)梯形法梯形积分公式为 (1.32)代入测试方程,取z变换后得 (1.33)其特征根为 (1.34)即 (1.35)可见,若0,则|z|1,故梯形积分公式也为恒稳公式。以同样的方法对其他积分方法的稳定性进行分析,图1-13、图1-14描述了梯形法、龙格库塔法和亚当姆斯法的稳定域。,图1-13 1阶到4阶龙格-库塔法的稳定区域(区域内部) 图1-14 常用的1阶-4阶亚当姆斯法的稳定区域 对龙格库塔法,阶次k增大则稳定域略微增大。 对亚当姆斯法,阶次k增大则稳定域反而缩小。,4.步长的选择从数值计算观点看,步长越小,截断误差越小;但是由于步长减小将导致步数的增多,舍人误差积累就

31、会增加,如图1-15所示。因此要兼顾截断误差和舍入误差两个方面选取合理的步长。从控制理沦观点来看,步长的选择与控制系统的频带及构成仿真系统环节数的多少等因素有关,要根据仿真精度给出一个计算步长的解析公式是困难的。在实际工作中,通常根据被仿真系统的响应速度由经验确定。一般要求步长小于系统的时间常数的110。若系统变量的变化频率为f0,则与步长T相对应的间隔频率f1应在f0的20倍100倍之间选择。 图1-15 误差与步长的关系,1.4 计算机仿真软件,1.4.1计算机仿真软件发展从计算机软件的应用、智能化、网络化的角度出发,计算机仿真软件的历史可以分为五个阶段。 1.通用程序设计语言 2.仿真程

32、序包及初级仿真语言 3.完善的商品化的高级仿真语言 4.一体化、智能化建模与仿真环境 5.支持分布交互仿真(DIS)的综合仿真环境,1.4.2 以数学模型为基础的仿真软件 1.MATLAB 2.Mathmatica 3.MathCAD 4.Maple 5.SciLab 6.Ansys,1.4.3 以硬件模型为基础的仿真软件 1.Multisim 2.Pspice 3.ADAMS 4.Proteus,第2章 MATLAB基础知识,2.1 MATLAB 简介2.1.1 MATLAB概述用MATLAB编程运算与进行科学计算的思路和表达方式完全一致,所以使用MATLAB进行数学运算就像在草稿纸上演算数

33、学题一样方便。因此,使用MATLAB语言时,简单直接,逻辑衔接性强,使科研或工程专业人员不在拘泥于语言编程本身,而省出更多的时间来专注于科研和工程的专业技术工作。MATLAB“语言”、“演算”化的数值计算,强大的矩阵处理及绘图功能,以及灵活的可扩充性和产业化的开发思路,使得MATLAB在科学计算、自动控制、嵌入式系统、数字信号处理、通信系统、机电系统等领域得到了深入广泛的应用。,2.1.2 MATLAB的构成,MATLAB是一个功能强大的软件,其可以分成基本部分、Simulink和工具箱等三部分。其中基本部分包含:MATLAB语言、编程环境、句柄图形、数学函数库、应用程序接口等部分;Simul

34、ink是MATLAB的一个应用的扩展,它允许用户在屏幕上通过图形化模块的方式来模拟一个系统,它提供了Simulink扩展和Simulink模块集。工具箱是MATLAB应用扩展的主要部分,其为用户提供了丰富而实用的资源。它涉及到数学、控制、通信、信号处理、图像处理、经济和地理等多个学科。,2.1.3 MATLAB的特点及优势MATLAB作为科学计算语言,是一种直译式的高级语言,与Fortran和C等通用性的语言相比,MATLAB的语法规则更简单,更重要的是其贴近人思维方式的编程特点,使得用MATLAB编写程序有如在纸上列公式和求解,而遇到矩阵或数据分析坐标画图时,则更能显示其优势。所以Mtala

35、b已经成为大学工科学生必修的计算机语言之一,在国内外的许多科研院所得到广泛的应用。其主要有以下特点和优势: (1) 起点高(2)人机界面适合科技人员(3)强大简易的作图功能(4)智能化程度高(5)功能丰富,可扩展性强,2.1.4 部分MATLAB常见窗口界面,在安装完成后双击MATLAB图标,即启动MATLAB应用程序,如图2-1所示为软件默认的主界面显示窗口,主要包括命令窗口及其菜单与工具栏、当前工作路径窗口、工作空间窗口以及历史命令窗口等。 图2-1 MATLAB软件默认显示的主界面(Default Display),2.2 MATLAB的基本操作,2.2.1 MATLAB语言结构MATL

36、AB演算式的操作主要是在命令窗口中完成的,其语言的赋值格式也是和其他常见语言一样,是遵循源在右,目的在左的方式进行,也就是如下格式: 变量名=表达式;其中,等号右边的表达式可由操作符或其他字符、函数和变量组成,它可以是MATLAB允许的数学或矩阵运算,也可以包含MATLAB下的函数调用;等号左边的变量名为MATLAB语句右边表达式的返回值语句所赋值的变量的名字。通过命令窗口的命令提示符的位置输入该格式的命令或函数,MATLAB就可以完成表达式所表示的运算,并将运算的结果赋值到变量名指定的变量中存储到工作空间中。,2.2.2 MATLAB 常用命令,在MATLAB运行时,通过在命令窗口输入一些常

37、用命令,可以对工作空间,变量等进行管理,另外有些命令实现帮助文件调用、文件查找等功能。 1. 变量操作命令(1) who,whos 命令(2) clear 命令。(3)save,load命令。(4)exist 命令,2. 其他常见命令,(1)clc 命令(2)what命令 (3)format 命令(4)help命令(5)lookfor 命令(6)demo 命令,2.3 MATLAB变量及运算,2.3.1 矩阵变量及元素(1)矩阵变量 MATLAB以矩阵作为变量的基本形式,在进行编程、仿真计算工作时需要将矩阵直接输入到MATLAB中去,其中最方便的是将矩阵直接输入,也可以由原有的矩阵生成新的矩阵

38、。在输入过程中须遵循以下规则:中括号 把所有矩阵元素括起来。同一行的不同元素之间数据元素用空格或逗号间隔。用分号(;)指定一行结束。也可分成几行输入,用回车代替分号。数据元素可是表达式,系统将自动计算。 可以通过以下实例得到不同的矩阵输入方法。,(2)矩阵元素采用下标来表示矩阵元素,其基本形式如A(i,j),i和j表示元素在矩阵中的行和列的位置,可以直接调取元素对其修改,矩阵中元素也可进行数值计算。 A=1,2,3;4,5,6;7,8,9A = 1 2 3 4 5 6 7 8 9 A(1,1) ans = 1 A(2,3)ans = 6,(3)多维数组多维数组迎合了许多多维的科学计算。在MAT

39、LAB中数据的逻辑形式可以表现出多维,但物理上在内存中的形式却是很简单按列存放的。可以将二维以后的数据按照页的概念理解,每页都看成一个二维的矩阵。其生成和元素的访问都和二维的矩阵类似。如图2-8所示。 图2-8 多维数组矩阵,2.3.2 矩阵的基本运算,矩阵运算是MATLAB语言最基本的运算功能,MATLAB对于矩阵运算的处理与线性代数中的方法相同。线性代数中矩阵的加、减及乘均有定义,而除没有定义,采用矩阵逆的方式来进行矩阵的除运算。在MATLAB中专门定义了矩阵的除法并且定义了与左逆和右逆相相应的左除和右除。对于MATLAB中的单个的数值可以将其看做11的矩阵。MATLAB基本运算符如表2-

40、3所示。 表2-3 MATLAB基本运算符,2.4 常用函数和初等矩阵计算,函数是计算机语言完成特定计算或功能的主要单元,其功能多种多样,使用灵活方便。MATLAB包含很多函数库,内容丰富,在本节中我们仅仅介绍一下常用的一些函数,在以后章节再介绍其他的一些函数。在MATLAB中函数调用的基本格式下所示: 变量名=函数名(参数)2.4.1 常用函数有些函数式数学计算中常见的,是MATLAB内核的一部分,用起来比较高效,但是不容易看到这些函数的源程序。这部分函数是常用函数,这里只列举一小部分,见表2-7。,表2-7 常用函数,在使用函数应该注意以下几个问题:函数一定是出现在等式的右边。每个函数对其

41、自变量的个数和格式都有一定的要求,如使用三角函数时要注意角度的单位是“弧度”而非“度”。例如sin(1)表示的不是sin1而是sin57.28578。函数允许嵌套,例如:可使用形如sqrt(abs(sin(225*pi/180)的形式。,2.4.2 初等矩阵计算 (1)矩阵转置 运算符: (2)求逆矩阵 运算函数:inv 矩阵A可逆,则矩阵A的逆矩阵是唯一的。 (3)求特征值 运算函数:eig 设A为n阶矩阵, 是一个数,如果方程Ax=x存在非零解向量,则称为A的一个特征值,相应的非零向量x称为特征值对应的特征向量。,(4)求特征多项式 运算函数:poly (5)求方阵的行列式 运算函数:de

42、t(6)求解线性方程组 线性方程组的一般矩阵形式表示如下: AXB(XAB)若方程组有解,则X=AB(XB/A),可以利用矩阵运算求出方程式的解。,2.5.1 二维平面图形绘制二维图形函数有多种,表2-9给出了二维绘图及图形修饰等函数的小结。本小节将对一些常用的函数进行简单介绍。 表2-9 常见二维绘图函数,2.5.2 三维立体图形(1)三维曲线 和二维图形相对应,MATLAB提供了plot3函数,可以在三维空间中绘制三维曲线,它的格式类似于plot,不过多了z方向的数据。llot3使用格式如下: plot3(x1,y1,z1,x2,y2,z2)其中x1,y1,z1,x2,y2,z2等分别为维

43、数相同的向量,分别存储着曲线的三个坐标值,该函数的使用方式和plot类似,也可以采用多种颜色或线型来区分不同的数据组,只需在每组变量后面加上相关字符串即可实现该功能。,(2)三维曲面图在MATLAB中要绘制三维曲面,可以使用mesh(x,y,z)或surf(x,y,z)函数来实现。函数mesh为数据点绘制网格线,图形中的每一个已知点和其附近的点用直线连接。函数surf和函数mesh的用法类似,但它可以着色表面图,图形中的每一个已知点和其相邻点用平面连接。,2.5.3 其他图形函数绘图MATLAB除了提供前面所讲的绘图函数plot以外,还提供了其它常用的绘图函数,如表2-14。 表2-14 其他

44、常见绘图函数,2.5.4 符号表达式绘图符号表达式是MATLAB的一个特殊的数学表达方式,这部分内容将在以后的章节中讲述。为和其他常见绘图方法比较,特把符号表达式绘图部分放到此处讲述。MATLAB提供了两个函数ezplot和fplot。 (1)fplot函数fplot用来绘制数学函数,其调用格式为: fplot(fun,lims)其中fun就是所要绘制的函数,可以是定义函数的M文件名,也可以是以x为变量的可计算字符串;其中的lims如下:lims=XMIN XMAX YMIN YMAX限定了x、y轴上的绘图空间。,(2)ezplot函数ezplot无需数据准备,直接画出函数图形,其基本格式为e

45、zplot(f)。其中f 是字符串或代表数学函数的符号表达式,只有一个符号变量,可以是x,缺省情况下x轴的绘图区域为-2*pi,2*pi,但我们可用ezplot(f,xmin, xmax)或ezplot(f,xmin,xmax)来明确给出x的范围,而不使用缺省值-2*pi,2*pi。,2.5.5 动画MATLAB除了显示静态的数据图像外,还支持动画的制作和放映,采用动态图像的方式展现数据的特征变化等,但其制作过程比单纯制作静态图形复杂得多,也需要更多的函数来支持。本小节举两个例子,简单介绍一下。例1:x=0:pi/1000:2*pi; y=sin(x); comet(x,y)该例子利用come

46、t函数,动态绘制正弦曲线。,例2:z=peaks(40);surf(z);azimuth,elevation=view; rot=0:1:200;for i=1:length(rot)view(azimuth+rot(i) elevation)drawnowend该例子利用三维图形视角的变化,动态展现图形立体。,2.6 常见人机交流和输入输出函数2.6.1注释语句的输入和显示注释语句是计算机软件编程中常见的一种功能,MATLAB用程序的语句和程序进行注释,以便仿真计算或编程过程中加强对代码功能的了解。利用除了在程序中加强对代码或程序的了解外,在MATLAB程序代码中,在程序的前几行的注释说明,

47、可以通过help指令在命令窗口显示出来。使得我们不用打开程序就可以得到程序的功能等。若要查看程序中的注释语句则,输入: Help 文件名,2.6.2输入函数(1)单变量输入语句 格式:变量名input(提示语句) 例如:x=input(请输入数值:) 例:用一M文件接受键盘输入的数据并求其平方值。 %This program is for square n=input(enter a number) n*n (2)多行输入语句 格式:keyboard 说明:程序在此处暂停执行,用户可输入多行命令,最后输入 return返回。,(3)输入菜单的使用 格式:变量名menu(提示,s1,s2,) 注

48、:s1,s2为菜单选项。 该语句常用于需要用户控制程序的流向的场合。 例如:r=menu(用户选择,顺序,分支,循环) 若用户选择分支,则r=2。 图2-21 Menu命令操作 返回结果为菜单的选项的序号。,2.6.3数字与字符串的输出 (1)格式化显示语句 格式: 变量名=sprintf(格式字符,N1,N2) 注:格式字符如下 %e指数格式 %f小数格式 %g在%e和%f中自动选择较短格式 %d十进制数的格式 %m.nf域宽m位,小数n位 (2) 非格式化显示语句 格式: disp(s) 注:s为字符串或数字变量,第3章M文件和MATLAB开发环境 3.1 MATLAB的M文件 MATLA

49、B提供了两种源程序格式:文本文件和函数文件。这两种具有相同的扩展名,均为“.m”又称M文件。通过编写M文件,用户可以像编写批处理命令一样,将多个MATLAB命令和函数集中在一个文件中,实现结构化的程序设计,降低代码重复率,实现特定的复杂的仿真计算功能,并且可以方便调用、又便于修改。M文件本身是一个文本性文件,可以再多个文本编辑软件中编辑,在MATLAB中则是通过M文件编辑器建立完成,M文件编辑器窗口,如图3-1所示。值得注意是MATLAB的M文件不能以中文汉字命名,同时在文件中除了注释文字之外不能出现全角字符形式。,图3-1 M文件编辑器窗口,3.1.1 文本文件 文本文件的创建与执行 1)在

50、Edit的标签页中,点击New 图标可以选择Script则可打开一个新的文件编辑标签页,在这个标签页中可以编辑生成一个新的M文件; 2)点击Open图标打开已存在的M文件; 3) 点击Save 图标将编辑好的M文件保存,可以给文件起一个与文件内容有关的名字,而不是默认的Untitle.m; 4)在命令窗口中直接输入待执行文件的文件名或点击FILE菜单中的Run图标执行已编辑好的M文件。,3.1.2 函数文件函数文件是另一种格式的M文件,它是MATLAB程序设计的主流。一般情况下,使用函数文件格式编程,其新建、打开、保存等操作与文本文件相同,但是其格式和运行与文本文件不同。在一般情况下不能直接输

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号