计算机仿真技术(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-03 17:01:12

点击下载

作者:瞿亮

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

计算机仿真技术

计算机仿真技术试读:

华信经管创新·市场营销系列国家精品课程教材计算机仿真技术瞿 亮 主编王 亚 凌志刚 王 石 王文洁 副主编王耀南 主审内容简介

随着计算机技术的不断发展,仿真技术的应用领域在不断扩大,越来越受到重视,而作为仿真工具的MATLAB是美国MathWorks公司推出的科学计算软件,是一种广泛应用于工程计算及数值分析领域的高级计算机仿真语言,目前,MATLAB已经成为国际上最流行的科学与工程计算的软件工具。

本书基于MATLAB2011版,介绍仿真的基础概念和方法,仿真工具MATLAB的环境、语法、数学运算和绘图功能,模块化建模的原理及基本算法;从应用领域的角度,介绍图像处理的基本内容和应用,控制系统的基本理论及仿真,电力系统仿真的理论和应用。

全书内容详实,结构清晰,力求做到理论与实践紧密结合。本书可作为高校电气类专业的高年级本科生与研究生仿真或计算机辅助设计课程的教材和参考书,也可作为电气类专业的工程技术人员及计算机开发人员的参考书。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。

图书在版编目(CIP)数据

计算机仿真技术/瞿亮主编.—北京:电子工业出版社,2013.5

ISBN 978-7-121-20048-9

I.①计… II.①瞿… III.①计算机仿真 IV.①TP391.9

中国版本图书馆CIP数据核字(2013)第062094号

责任编辑:田宏峰  特约编辑:蒲 玥

印  刷:三河市鑫金马印装有限公司

装  订:三河市鑫金马印装有限公司

出版发行:电子工业出版社

     北京市海淀区万寿路173信箱  邮编:100036

开  本:787×1092 1/16 印张:14.75 字数:377千字

印  次:2013年5月第1次印刷

印  数:4000册  定价:49.00元

凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。

质量投诉请发邮件至zlts@phei.com.cn,盗版侵权举报请发邮件至dbqq@phei.com.cn。

服务热线:(010)88258888。前  言

随着计算机技术的发展,计算机仿真得到非常广泛的应用,已成为科学研究的一种重要手段。对于所有理工科学生,掌握一门仿真工具,对于验证理论、设计以及分析系统而言,是非常重要的一种学习方法。在实际科研中几乎所有复杂系统都需要运用仿真技术进行系统的评估、设计和分析。

MATLAB作为当前国际最流行的面向工程与科学计算的高级语言,可轻易地实现C语言或FORTRAN语言几乎全部的功能,并设计出功能强大、界面优美、稳定可靠的高质量程序,编程效率和计算效率极高。MATLAB环境下的Simulink是当前众多仿真软件中功能最强大、最优秀、最容易使用的一个用于系统建模、仿真和分析的动态仿真集成环境工具,在各个领域都得到了广泛的应用。

本书介绍计算机仿真的基本概念原理,系统建模的方法和仿真算法、 MATLAB的语法、数学运算和数据可视化功能、Simulink动态建模、数字图像的处理、控制系统仿真、电力系统仿真的原理及应用,书中程序基于MATLAB2011版。

本书内容由浅入深,根据仿真技术近年来在电气类专业中的发展情况和当前最新版的MATLAB的使用情况,以及多年来在教学和科研上的经验,结合实例进行介绍。全书共分8章,第1章介绍仿真的基础知识,第2章介绍MATLAB的环境、语法、数学运算功能,第3章介绍MATLAB的绘图功能,第4章介绍图像处理的基本内容及应用,第5章介绍系统建模方法和仿真算法,第6章介绍动态可视化建模工具Simulink,第7章介绍控制系统的基本理论及仿真应用,第8章介绍电力系统仿真的原理及应用。考虑到系统仿真是一门实验性很强的学科,书中附有大量的示范程序。

本书的参考教学学时为32学时。在学习本课程之前,学生应已修过计算机程序设计语言、自动控制原理、电力系统理论、数字图像处理等课程。

本书可作为高校电气类专业的高年级本科生与研究生计算机仿真和计算机辅助设计课程的教材和参考书。也可作为电气类专业的工程技术人员及计算机开发人员的参考书。

由于MATLAB是一个涵盖内容丰富,而且功能完善的软件,我们不可能将其所有的功能一一介绍给读者,但本书涉及的内容基本覆盖了常用的分析工具和分析方法,并向读者详细阐述了MATLAB中实现这些方法的步骤。

本书由国内自动控制领域权威专家王耀南教授审阅,并提出了许多宝贵意见,此外蔡明杰、关培源、向杜君、姜艳君、贺佳俊也参与了部分编写工作,在此表示衷心的感谢。

由于作者水平有限,错误之处请读者不吝赐教,可以通过E-mai(lquliang2001@yahoo.com.cn)与作者联系。作 者2013年4月第1章 计算机仿真概述

仿真是20世纪40年代末伴随着计算机技术的发展而逐步形成的一类试验研究的新兴方法。最初,仿真主要应用于航空、航天、原子反应堆等少数领域。计算机技术和信息科学的迅猛发展,为仿真技术的应用提供了技术和物质基础,目前仿真已渗透到国民经济的多个领域,成为分析、研究各种系统,尤其是复杂系统的重要工具,它不仅用于工程领域,如机械、航空、航天、电力、冶金、化工、电子等方面,还广泛用于非工程领域,如交通管理、生产调度、库存控制、生态环境以及社会经济等方面。1.1 仿真的概念和方法

首先来看两个例子。(1)气囊弹射速度确定(1997年,美国) 。汽车安全气囊的弹射速度原来为220英里/小时,在加拿大一年统计:在6 000件事故中,救了4 000人,打死了2 000人;通过大量的仿真实验后,1997年12月美国众议院通过,速度调整为180英里/小时。(2)美国三种典型导弹研制过程仿真技术的作用,如表1-1-1所示。表1-1-1 导弹研制过程仿真技术的作用

在现实生活及工程应用中,大部分的试验对象是很复杂的,并且要考虑安全性、经济性以及进行实验研究的可能性等,这在现场实验中往往不易做到,甚至根本不允许这样做。例如,在研究导弹飞行、宇航、反应堆控制等系统时,不经模拟仿真实验就进行盲目实验,将对人类的生命和健康带来很大的危险,这时,就需要对实际系统构建物理模型或数学模型进行研究,然后把对模型实验研究的结果应用到实际系统中,也就是仿真研究。1.1.1 仿真的概念及分类

1.仿真的概念“仿真”一词译自英文Simulation,从字面上解释,表示“模拟真实世界”的意思。虽然人们很早就采用了利用模型来分析与研究真实世界的方法,但严格地讲,只有在20世纪40年代末,计算机(模拟计算机及数字计算机)的问世,才为建立模型及对模型进行试验提供了强有力的支持,仿真技术才获得了迅速的发展并逐步成为一门独立的学科。

仿真是以相似性原理、控制论、信息技术及相关领域的有关知识为基础,以计算机和各种专用物理设备为工具,借助系统模型对真实系统进行试验研究的一门综合性技术。它利用物理或数学方法来建立模型,类比模拟现实过程或者建立假想系统。以寻求过程的规律,研究系统的动态特性,从而达到认识和改造实际系统的目的。

系统仿真涉及相似论、控制论、计算机科学、系统工程理论、数值计算、概率论、数理统计、时间序列分析等多个学科。

相似性原理是仿真主要的理论依据。所谓相似,是指各类事物或对象间存在的某些共性,包括几何相似、性能相似、环境相似。例如,电路中的RLC振荡和机械中的弹簧振动都可以用相同的微分方程描述。

2.仿真分类

根据模型的属性,系统仿真分为物理仿真、数学仿真、半实物仿真。

1)物理仿真

按照真实系统的物理性质构造系统的物理模型,并在物理模型上进行实验的过程称为物理仿真。

物理仿真优点是:直观、形象,也称为“模拟” ;缺点是:模型改变困难,实验限制多,投资较大。

2)数学仿真

对实际系统进行抽象,并将其特性用数学关系加以描述而得到系统的数学模型,对数学模型进行实验的过程称为数学仿真。计算机技术的发展为数学仿真创造了环境,数学仿真也称为计算机仿真。

数学仿真优点是:方便、灵活、经济;缺点是:受限于系统建模技术,即系统数学模型不易建立。

3)混合仿真

将系统的物理模型和数学模型以及部分实物有机地组合在一起进行实验研究,称为混合仿真仿真,也称为半实物仿真。

这种方法结合了物理仿真和数学仿真各自的特点,常常被用于特定的场合及环境中。例如,汽车发动机试验、家电产品的研制开发、雷达天线的跟踪、火炮射击瞄准系统等都可采用半实物仿真。

实际上,在工程实践中,以上各种仿真往往用于工程中的不同阶段。在工程设计分析阶段采用数学仿真,易于更改设计,具有灵活性和经济性;在部件子系统研制阶段,采用半实物仿真以提高仿真可信度和测试部件或子系统的功能;在最后定型阶段为了验证全系统的功能特性,则需要进行全物理仿真。

按照仿真系统与实际系统时间尺度上的关系,又可将其分为如下几类。(1)实时仿真:仿真时钟与系统实际时钟完全一致,许多仿真应用需要满足实时性,这时往往需要实时操作系统或者专用实时仿真硬件的支持。(2)欠实时仿真:仿真时钟比实际时钟慢,当对仿真的实时性没有严格的要求时,仿真时钟比实际时钟慢,不影响仿真的目的,采取欠实时仿真则可节约很多资金。(3)超实时仿真:仿真时钟比实际时钟快,当实际系统周期太长时,若采用实际时钟就变得毫无意义,这时就要进行超实时仿真。对于大的、复杂的系统进行超实时仿真对计算机的计算速度要求是非常高的,如天气预报系统就需要超级计算机的支持。1.1.2 仿真的基本步骤

仿真步骤如图1-1-1所示,具体如下所述。图1-1-1 仿真步骤

1.根据仿真目的确定仿真方案

根据仿真目的确定相应的仿真结构和方法,规定仿真的边界条件与约束条件。

2.建立系统的数学模型

系统的数学模型是系统仿真的主要依据,是描述系统输入/输出变量以及内部各变量之间关系的数学表达式,描述系统各变量间静态关系采用静态模型,描述系统各变量间动态关系采用动态模型。例如,在控制系统中最常用的基本数学模型是微分方程与差分方程。

通常,根据系统的实际结构与系统各变量之间所遵循的物理、化学基本定律,如牛顿运动定律、基尔霍夫定律、动力学定律、焦耳-楞次定律等来列写变量间的数学表达式以建立系统的数学模型,这就是所谓用解析法来建立数学模型。

对于大多数复杂的系统,则必须通过实验的方法,利用系统辨识技术,考虑计算所要求的精度,略去一些次要因素,使模型既能准确地反映系统的动态本质,又能简化分析计算的工作,这就是所谓用实验法建立数学模型。

3.建立仿真模型

一般的数学模型都不能直接编制程序并用计算机求解,通常必须把数学模型转换成适宜编程并能在计算机上运行的模型——仿真模型。也就是需要通过一定的算法对原系统的数学模型进行离散化处理,就连续系统而言,就是建立相应的差分方程后再由计算机进行求解。

4.编制仿真程序

对于非实时仿真,可用高级语言依据相应的算法编程,而对于实时仿真往往采用汇编语言与高级语言共用的方式进行编程。

5.程序调试、验证模型、实验结果分析并确定实验方案

1)调试程序

调试程序的首要任务是检查并纠正程序的错误,使其在计算机上运行通过,并保证程序处于正确的工作状态。

2)验证模型

通过运行程序,用仿真实验数据与实际系统运行观测的数据结果相比较的方法,检验、确认模型能代表实际系统,可反映实际系统运行过程的特性。

3)根据实验结果的分析,确定实验方案

通过选择合理的参数实验范围,安排用较少的实验次数来达到预期的效果。如果结果不符合原有的设计要求,就应寻找原因并通过修改程序或修改仿真模型,反复多次运行程序直至达到设计要求。

应当注意,仿真研究是一个动态迭代过程,需要通过迭代过程逐步获取系统特性的信息。1.2 仿真技术的应用和发展1.2.1 仿真技术的应用

仿真技术的主要用途有(1)优化系统设计。在实际系统建立以前,通过改变仿真模型结构和调整系统参数来优化系统设计。例如,控制系统、数字信号处理系统的设计经常要靠仿真来优化系统性能。(2)系统故障再现,发现故障原因。实际系统故障的再现必然会带来某种危害性,这样做是不安全的和不经济的,利用仿真来再现系统故障则是安全的和经济的。(3)验证系统设计的正确性。(4)对系统及其子系统进行性能评价和分析,多为物理仿真,如飞机的疲劳试验。

此外,仿真可以作为教学设备来增强解析求解方法学的能力,用于训练的仿真模型使得学习成为可能,无须费用及现场指导。

目前仿真技术已应用到军事、生产制造等工程领域的各个方面。

1.军事领域

1)武器装备研制

仿真技术在武器装备研制过程中,使得在新武器研制计划开始前,能够充分利用仿真系统检验武器系统的设计方案和战术、技术性能的合理性,避免在实际研制过程中出现方案不合理的现象,从而缩短研制周期,并且可以支持技术评估、系统更新、样机研制,使得能够以较低的代价提高武器装备的战术性能。各用户(包括武器装备的研制部门、采购部门、训练部门和军事使用部门)可在合成环境中按需要综合应用各种仿真手段进行演习、训练和试验,鉴定现有的和研制中的武器装备的性能、战术部署和后勤保障。现在,在武器装备研制生产过程中,已规定将仿真系统列为必需的装备。

2)军事训练

分布式仿真系统通过联网技术将分散在各地的人,在回路中的仿真器、计算机生成的兵力,以及其他设备连接为一个整体,形成一个可以在时间和空间上互相耦合的虚拟战场合成环境,参与者可以自由地交互作用。这样,使过去主要依靠野战演习完成的任务可以利用计算机、仿真器和人工合成的虚拟环境来进行。技术的进一步发展还将把野外演习的部队和这种仿真器联系起来进行演习。利用仿真器产生动态的、直观的环境,配合仿真的地形、烟雾和“敌人”的武器装备,使部队能够进行生动逼真的军事演习。

3)先进概念与军事需求分析

在先进概念与军事需求分析方面(如使用新概念与先进技术的试验) ,对于未来军事行动中在条令、训练、指挥人员培养、组织、装备和士兵发展等方面的需求上,可以通过仿真和使用真实部队的士兵体验来评估技术综合集成的影响。

2.工业领域

同军事领域的需求和推动一样,由于工业系统的复杂性、大型化,出于安全性和经济性的考虑,仿真技术广泛应用于工业领域的各个部门。在大型复杂工程系统(项目)建设之前的概念研究与系统的需求分析过程中,仿真都发挥着越来越重要的作用。在电力工业中,随着单元发电机组容量的越来越大,系统变得越来越复杂,对它的经济运行、安全生产提出了更高的要求,仿真系统是实现这个目的的最佳途径。通过仿真系统可以优化运行过程,培训操作人员。电站仿真系统已成为电站建设与运行中必须配套的装备。核电站的运行必须安全,操作人员的技术素质、技能是保证安全运行的前提,仿真培训系统是提高操作人员素质、技能的有效手段。

在经济全球化、贸易自由化和社会信息化的今天,在技术更新速度加快的新形势下,制造业的经营战略发生了很大的变化,如何在最短的时间内,以最经济的手段开发出用户能够接受的产品,已成为今天市场竞争的焦点。虚拟制造是解决这个焦点问题的有效技术途径之一,它采用建模技术,在计算机及高速网络支持下,在计算机群组协同工作下,通过三维模型及动画实现产品设计、工艺规划、加工制造、性能分析、质量检验以及企业各级过程的管理与控制的仿真产品制造过程。虚拟制造是对已有的或未来的制造活动进行的仿真过程,所进行的过程是仿真的,所生产的产品也是仿真的。仿真技术将在制造企业中发挥更加重要的作用。

3.其他应用领域

在为武器系统研制、作战训练和工业过程服务的同时,仿真技术的应用正不断地向交通、教育、通信、社会、经济、娱乐等多个领域扩展。近年来,国内研制了能够表述交通流特征和交通流质量的交通仿真软件平台,可以对交通规划、交通控制设计、交通工程建设方案等进行预评估。例如,在引黄入晋输水工程中,建立了全系统运行仿真系统。利用仿真系统验证了工程设计,提出了现有工程设计中影响运行的重大问题,寻找调度运行最佳模式等。

在医学仿真方面,建立了有关人体的生物学模型和三维视觉模型,为深入开展人体生命机理研究和远程医疗工作提供了有力的工具。

为了满足大容量、高速度通信网络研究的需要,对通信仿真的方法和软件开展了广泛的研究,为提高通信网络的性能和网络方案的优化提供了重要的分析和验证工具。

此外,仿真技术和虚拟现实技术在娱乐业中也显示出广阔的发展前景。1.2.2 仿真技术的发展阶段

仿真技术的发展与控制工程、系统工程、计算机技术的发展密切相关。控制工程是计算机仿真技术较早的应用领域,其发展为系统仿真技术的形成和发展奠定了良好的基础。系统工程完善了建模与仿真的理论体系,使计算机仿真技术应用于非工程系统。计算机技术为计算机仿真的应用提供了强有力的工具和手段。

仿真研究的许多活动都是通过仿真软件来实现的,仿真软件是一类面向仿真用途的专用软件,其特点是面向问题、面向用户。近40年来,仿真软件充分吸收了仿真方法学、计算机、网络、图形/图像、多媒体、软件工程、自动控制、人工智能等技术所取得的新成果,从而得到了很大的发展。自1955年第一个仿真软件问世以来,按照新技术出现的时间顺序,可将仿真软件的发展分为以下六个阶段: 通用程序设计语言; 仿真程序包及初级仿真语言; 完善的商品化的高级仿真语言; 一体化(局部智能化)建模与仿真环境; 智能化建模与仿真环境; 支持分布交互仿真的综合仿真环境。1.2.3 仿真技术的发展趋势

由于仿真理论、方法的提高,仿真试验任务的扩大以及相关学科的发展,展望仿真技术今后的发展趋势主要有以下几个方向。

1.向广阔的时空发展

以现代复杂军事系统为例,它涉及战略、战术、技术决策系统,指挥、通信、运输系统,外层空间、内层空间、武器和运载系统,地面与空间各军兵种、我友协同作战系统与作战环境等。这种激烈对抗的军事系统,对时空一致、任务协同、实时性、实用性等的要求都很高,因而在这类复杂仿真系统中有很多复杂、艰巨的技术问题亟待解决。

2.向快速、高效与海量信息通道发展

对于大型复杂系统、分布系统、综合系统进行实时仿真,由于信息量庞大,必须对信息进行快速、高效传输、变换和处理。以多微处理机为基础的全数字并行仿真计算机系统将会有更多的发展。

3.向规范化模型校核、验证、确认技术发展

模型建立后,如果没有规范化模型校核、验证、确认来检验、评价模型的正确性和置信度,仿真的精度和可靠性是无法保证的。目前它已引起仿真界的高度重视。

4.向虚拟现实技术发展

虚拟现实是将真实环境、模型化物理环境、用户融为一体,为用户提供视觉、听觉、嗅觉和触觉感官以逼真感觉信息的仿真系统,使人感到如同身临其境的仿真环境中。

5.向高水平的一体化、智能化仿真环境发展

开展系统仿真科学研究,开发仿真系统技术,需要一体化、智能化仿真环境等有效的工具,由于PC的大量推广和应用,将会发展适合这类机型的仿真软件。

6.向广阔的应用领域扩展与其他有关的学科融合

由于仿真的对象越来越广阔和复杂,即应用领域越广泛,相关的学科就越多,而且日趋密切,特别是在非工程或混合工程系统中,仿真技术的应用将会迅速增长。

随着仿真技术的发展,仿真技术应用目的趋于多样化、全面化。最初仿真技术是作为对实际系统进行试验的辅助工具而应用的,而后又用于训练目的,现在仿真系统的应用包括系统概念研究、系统的可行性研究、系统的分析与设计、系统开发、系统测试与评估、系统操作人员的培训、系统预测、系统的使用与维护等各个方面,它的应用领域已经发展到军用以及与国民经济相关的多个重要领域。1.3 仿真工具MATLAB1.3.1 MATLAB的发展历史

MATLAB 名字由 Matrix 和 Laboratory 两词的前三个字母组合而成,意为“矩阵实验室” 。20世纪70年代后期,时任美国新墨西哥大学计算机科学系主任的 Cleve Moler 教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN语言编写的萌芽状态的MATLAB。

1983年春天,工程师John Little与Moler、Steve Bangert一起开发了第二代专业版MATLAB。1984年,MathWorks公司成立,MATLAB正式推向市场。

目前,MATLAB 已经成为国际上最流行的科学与工程计算的软件工具,现在的MATLAB 已经不仅仅是一个“矩阵实验室” ,它已经成为了一种具有广泛应用前景的全新的计算机高级编程语言,有人称它为“第四代”计算机语言,在科学运算、自动控制与科学绘图领域,MATLAB 语言长期保持了独一无二的地位。1.3.2 MATLAB的特点

MATLAB的五大功能是: 数值计算功能(Numeric Function) ; 符号计算功能(Symbolic Function) ; 图形和可视化功能(Graphic Function) ; 记事本功能(Notebook Function) ; 可视化建模和仿真功能(Simulink Function) 。

MATLAB用法简易、可灵活运用、程式结构强又兼具延展性,以下为其主要优点。(1)语言简洁紧凑,使用方便灵活。MATLAB程序的书写格式自由,数据的输入/输出语句简洁,很短的代码就可以完成其他语言要经过大量代码才能完成的、很复杂的工作。

例如,一条语句“A=[1 2 3;4 5 6;7 8 9]”就实现了对3×3矩阵的输入。(2)数值算法稳定可靠,库函数十分丰富。MATLAB的一个最大特点是强大的数值计算能力,它提供了许多调用十分方便的数学计算的函数,不必考虑数值的稳定性。

例如:(3)运算符丰富。MATLAB是用C语言编写的,所以MATLAB提供了和C语言几乎一样多的丰富的运算符,而且还重载了一些运算符,给它们赋予了新的含义。

例如:(4)MATLAB既具有结构化的控制语句,如if、for、while,又支持面向对象的程序设计。(5)语法限制不严格,程序设计自由度大。

例如,在MATLAB里可以不用先定义或声明变量就可以使用它们。(6)程序的可移植性好。MATLAB程序几乎不用修改就可以移植到其他的机型和操作系统中运行。(7)MATLAB的图形功能强大,支持数据的可视化操作,可方便地显示程序的运行结果。(8)具有强大的工具箱。MATLAB包含两个部分——核心部分和各种可选的工具箱。核心部分有几百个核心内部函数,工具箱则是由各个领域的高水平专家编写的,所以用户不必编写该领域的基础程序就可以直接进行更高层次的研究。例如,控制领域可以使用的工具箱就有Control System (控制工具箱) 、 System Identification (系统辨识工具箱) 、 Robust Control(鲁棒控制工具箱) 、Optimization(最优化工具箱)等。(9)源程序具有开放性,系统的可扩充能力强。除了内部函数外,所有的MATLAB核心文件和工具箱文件都提供了MATLAB源文件,用户可通过对源文件的修改生成自己所需要的工具箱。(10)MATLAB是解释执行语言。MATLAB程序不用编译生成可执行文件就可以运行,解释执行时程序执行的速度较慢,效率比C等高级语言要低,而且无法脱离MATLAB环境运行MATLAB程序,这是MATLAB的缺点。但是MATLAB的编程效率远远高于一般的高级语言,这可以使研究者把大量的时间花费在对控制系统的算法研究上,而不是浪费在大量的代码上。1.3.3 MATLAB的工具箱

MATLAB最重要的特征是它拥有解决特定应用问题的程序组,也就是工具箱(Toolbox) ,如符号处理工具箱、控制系统工具箱、神经网络工具箱、模糊逻辑工具箱、通信工具箱和数据采集工具箱等许多专用工具箱。总的来说,迄今所有的几十个工具箱大致可分为两类:功能型工具箱和领域型工具箱。功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能用于多种学科;而领域型工具箱是专业性很强的,如控制工具箱、金融工具箱等。

MATLAB工具箱具有很强的专门知识要求,它是为设计人员在运用某一专门理论解决问题时所提供的有效快捷的工具。对于大多数用户来说,要想灵活高效地运用这些工具箱,通常都需要学习相应的专业知识。只有在掌握了其理论的基础上才能够明白工具箱中每一个函数的意义、所要达到的目的和所要解决的问题,才能够正确地使用它们。

此外,开放性也是MATLAB最重要和最受人欢迎的特点之一。除内部函数外,所有的MATLAB主包文件和各工具箱文件都是可读可改的源文件,因为工具箱实际上是由一组复杂的MATLAB函数(M文件)组成的,它扩展了MATLAB的功能,用以解决特定的问题,因此用户可以通过对源文件进行修改和加入自己编写的文件去构建新的专用工具箱。

MATLAB/Simulink的主要产品及其相互关系如图1-3-1所示。

对于用户而言,除了可以使用随MATLAB版本所附带的大量工具箱之外,MATLAB还有其他很多工具箱,这其中很多工具箱是免费的,而且这些工具箱覆盖的专业更加广泛。读者要了解这方面内容,可以到Mathsworks公司的相关网页上去查找。图1-3-1 MATLAB/Simulink的主要产品及其相互关系1.3.4 Notebook

Notebook是MATLAB将Microsoft Word和MATLAB集成在一起的一个工具,它不仅具备Word的全部功能,而且还具备MATLAB强大的数学处理能力和数据可视化能力。

Notebook允许用户把在Word文档中创建的命令送到后台MATLAB中执行,然后将计算结果和绘制的图形送回到Word,并插入到文档中。MATLAB Notebook是“活”的笔记本,在该笔记本中的计算命令可随时修改、随时计算并生成图形。对于撰写科技报告、论文、专著的科技工作者,讲授、编写理工科讲义的教师,演算理工科习题的广大学生,MATLAB Notebook都是非常有用的。

1.Notebook的安装

首先安装Word,然后启动MATLAB,在其命令窗口输入“notebook-setup”此时,用户根据所用Word版本,在最后一行提示后面输入对应序号,并按回车键。MATLAB会自动寻找winword.exe的安装路径,并在该路径下寻找模板文件normal.dot。如果找到了,则出现提示“Notebook setup is complete” ,表示Notebook安装结束。

启动Notebook有两种方法:从Word中启动或从MATLAB命令窗口直接输入“notebook”启动。

2.Notebook的使用

安装启动后,Word界面和通常的Word界面主要有两点区别:(1)在菜单栏中多了一个Notebook菜单项,Notebook的许多操作都可以通过该菜单项的命令来完成。(2)在“文件”菜单项下多了一个New M-book命令项。如果在M-book模板下要建立新的M-book文档,可以选择该命令。

在Word中,通过菜单项对需要用MATLAB进行计算或绘图的语句进行操作,可直接在Word中看到执行结果、显示的格式及背景等参数也可通过菜单设置。1.4 本书学习方法

计算机仿真技术涵盖的知识面很广,包括数学知识、专业知识和仿真语言。本书主要针对电气类专业,以MATLAB为仿真工具进行介绍。限于篇幅,涉及的专业知识和数学知识只做简要的介绍,详细内容读者可参考有关书籍,以求更深一步的了解。

MALAB从根本上讲是一种函数型的语言。从语法的角度来看,MATLAB通俗易懂,主要是学习大量函数及模块的应用。了解函数及模块的数学意义和包含的专业知识,熟练掌握函数和模块的使用方法,结合专业知识进行建模仿真,是学习仿真技术的主要内容。

MATLAB中的函数有以下特点,读者在学习中应注意。(1)函数数量很大,而且大多函数都牵涉到高等数学或相关专业的知识。(2)绝大多数函数都有多种格式,表现为函数的参数和返回参数有多种变化形式,本书不可能一一列出,读者在使用中可以通过查看软件提供的帮助,找到自己需要的函数以及它们的各种用法。(3)本书是基于MATLAB2011版编写的,不同版本的个别函数的使用方法会有所不同,读者可参考帮助说明。

计算机仿真是一门实验性很强的学科,读者应结合课堂理论学习内容,多进行上机操作。第2章 数 学 运 算

数学建模及运算是仿真中最重要的一个环节,强大的数学运算功能是MATLAB的特色之一。MATLAB包含了许多数学函数,从求和、正弦、余弦等基本函数到矩阵求逆、傅里叶变换等复杂函数,各领域的专家学者们开发的数值计算程序,使用了安全、成熟的算法,保证了最快的运算速度和可靠的结果。2.1 MATLAB的集成环境

启动MATLAB后,进入主窗口集成环境(见图2-1-1) ,包括MATLAB主窗口、命令窗口(Command Window) 、工作空间窗口(Workspace Window) 、历史命令窗口(Command History Window) 、工作空间浏览器(Workspace Browser) 、路径浏览器(Current Directory Browser) 、内存数组编辑器(Array Editor) 、M文件编辑/调试器(Editor/Debugger) 、帮助窗口(Help)等。图2-1-1 MATLAB集成环境

1.主窗口

MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些子窗口外,还包括菜单栏和工具栏等。

2.命令窗口

命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。

3.历史命令窗口

历史命令窗口会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,方便用户查询。通过双击命令还可运行历史命令。如果要清除历史记录,可以选择Edit菜单中的Clear Command History。

4.工作空间浏览器

工作空间窗口保存目前内存中所有的MATLAB变量的变量名、数据结构、字节数以及类型等信息,可对变量进行观察、编辑、保存和删除。

启动MATLAB后,会自动建立一个工作空间,工作空间在MATLAB运行期间一直存在,关闭MATLAB后工作空间自动消失。运行MATLAB程序时,程序中的变量被加入到工作空间中。除非用特殊的命令删除某变量,否则该变量在关闭MATLAB之前一直存在。某个时刻的工作空间中的所有变量可以保存到一个文件中,当下次启动MATLAB后,可用相关的命令把保存的工作空间的所有变量调入到当前工作空间。

关于工作空间变量管理的命令如下。(1)who、whos:查看工作空间中的变量情况;(2)clear:清除工作空间中的变量;(3)size,length:求取变量的大小;(4)exist:查询在当前的工作空间中是否存在一个变量;(5)save:将工作空间中的变量保存到文件中;(6)load:从文件中加载变量。

5.程序编辑/调试器

在程序编辑/调试器中可以建立、编辑、存储M文件,可以运行和调试(如断点、单步、跟踪、查看)程序。在命令编辑器中,不同的文本内容以不同的颜色显示。MATLAB关键字为蓝色,注释语句为绿色,正在输入的字符串为红色,输入完毕的字符串为褐色,其他文本为黑色。文本的彩色显示便于程序的编辑和调试。

6.内存数组编辑器

利用内存数组编辑器可以输入大数组。首先,在命令窗口创建新变量;然后,在工作空间浏览器中修改变量的值,

7.路径浏览器

路径浏览器能够修改MATLAB的搜索路径并查看任一路径下的所有文件。只有在当前工作目录或搜索路径下的文件、函数可以被运行或调用。 MATLAB工作时根据MATLAB搜索路径,依次从各目录上搜索所需调用的文件、函数、数据。例如,当在命令控制窗口中输入一个字符x时,MATLAB按以下顺序搜索:(1)把x作为一个变量进行搜索,在当前工作空间中查找变量x。(2)把x作为一个内置函数进行搜索,查找函数x并执行。(3)查找当前目录中的M文件x.m。(4)查找当前搜索路径中的M文件x.m。

如果搜索路径中存在同名函数,则只会发现并执行路径中的第一个函数。

要查询某一命令是在搜寻路径的何处,可用which命令。

例如:

一般来说,MATLAB默认当前工作目录为MATLAB\work。用户可在MATLAB桌面上的当前工作目录设定区进行修改。

8.帮助窗口

在MATLAB菜单中有帮助系统和系统演示DEMO。由于MATLAB有大量的函数和工具箱,并且这些函数、工具箱随着软件版本的升级还在不断地扩充。对用户来说,借助于MATLAB自身的帮助及演示系统寻求函数、工具箱的使用方法,是掌握MATLAB的重要方法。

在命令窗口中输入help命令就可以在命令窗口显示相关内容的帮助,

例如,查找包含积分这个关键词的所有命令。

MATLAB 6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。2.2 MATLAB语法

MATLAB语言从根本上讲是一种函数型的语言。相对目前其他高级语言而言,MATLAB的语法简单易学,有关变量、运算符及流程控制语法大多与流行语言相似。2.2.1 变量

1.命名规则

MATLAB中所有变量的数据类型都是复数矩阵,因此在变量使用之前,不需要指定变量的数据类型,也不必事先声明变量。

在MATLAB中,所有的数据均以矩阵的形式存储,每个矩阵的单元可以是数值类型、逻辑类型、字符类型或者其他任何数据类型。

标量可以用1×1矩阵来表示;一组n个数据可以用1×n矩阵来表示;多维数组可以用多维矩阵来表示。可用命令whos来显示数据的类型、存储空间等信息。

MATLAB变量的命名规则如下: 变量名必须是不包含有空格的单个词; 变量名区分字母大小写; 变量最多不超过31个字符,第31个字符之后的字符将被忽略; 变量名必须以字母打头,之后可以是任意字母、数字或下划线。

由于许多标点符号在MATLAB中具有特殊含义,所以变量名中不允许使用。

例如:其中,矩阵中各行元素由分号分隔,而同行不同元素由逗号或空格分隔。

MATLAB中数值的记述采用习惯的十进制表示法,对很大及很小的数可采用科学记数法,如1.3e+18表示1.3乘以10的18次方。所有的数都按双精度浮点方式保存。如需将计算结果以不同的精确度的数字格式显示,可以在命令视窗上的功能菜单上的Options下选Numerical Format,或者直接在命令视窗输入以下的各个数字显示格式的命令,以π值为例,不同显示精度见表2-2-1。表2-2-1 数字的显示精度

2.数值类型

数值类型包括整数、浮点数、复数、inf、nan。inf和-inf分别表示正无穷大和负无穷大,除法运算中除数为0或者运算结果溢出都会导致inf或-inf的运行结果。在MATLAB中用nan(Not a Number)来表示一个既不是实数也不是复数的数值。

字符串在MATLAB中被看成一个行向量,由一对单引号给定,每个字符构成向量的元素。例如,str='hello'等价于str=['h','e','l','l','o']。

系统默认变量在MATLAB启动时由系统自动生成,用户在编写命令和程序时,应避免使用如表2-2-2所示的系统变量。

3.矩阵的创建及元素操作

MATLAB的基本运算单元就是矩阵,因此矩阵创建和矩阵元素操作是数学运算的基础。简单矩阵可直接插入数据元素,复杂矩阵的创建有很多方法。表2-2-2 系统默认变量与常数 利用冒号表达式建立一个向量; 用特殊函数生成矩阵; 利用数组编辑器输入大数组; 大矩阵可由方括号中的小矩阵或向量聚合建立; 针对复杂的矩阵建立一个M文件,供以后使用; 利用外部数据文件装入到指定矩阵。

构造矩阵时,如果矩阵的数据类型不同,则MATLAB会自动对某些元素进行类型转换,然后生成的矩阵具有相同的类型。获取矩阵的元素也有多种方法,常用的有 用编号索引; 使用线性索引; 使用冒号; 使用end关键字。

例如,矩阵A = [2 6 9; 4 2 8; 3 0 1],若想得到矩阵A第3行第2列的元素值,可以使用编号索引A (3,2)或使用线性索引A (6)。

MATLAB中冒号运算符具有很多功能,既可以创建矩阵,也可以访问矩阵的特定行、列或元素。

当冒号用于创建向量时:(1)m:n表示向量[m,m+1,m+2,…,n],当m>n时,将产生一个空向量。(2)m:k:n表示向量[m,m+k,m+2k,…,m+i*k],其中i=fix(n−m)/k;fix为取整函数。

例如,对矩阵的元素操作:(1)提取矩阵A的第n行第m列的元素,表示为A(n, m)。(2)提取矩阵A的第n行的所有元素,表示为A(n, :)。(3)提取矩阵A的第m列的所有元素,表示为A(:, m)。(4)将矩阵A的第n行第m列的元素重新赋值b,表示为A(n, m)=b。(5)将矩阵A的第n行的所有元素重新赋值b,表示为A(n, :)=b。(6)将矩阵A的第m列的所有元素重新赋值b,表示为A(:, m)=b。(7)将矩阵A的第n行第m列的元素删除,表示为A(n, m)=[ ]。(8)将矩阵A的第n行的所有元素删除,表示为A(n, :)=[ ]。(9)将矩阵A的第m列的所有元素删除,表示为A(:, m)=[ ]。(10)提取矩阵A第二行开始后的所有元素A(2:end,:)

有很多创建特殊矩阵的函数,如表2-2-3所示。表2-2-3 创建特殊矩阵的函数【例2-2-1】产生一个在区间[10,20]内均匀分布的4阶随机矩阵。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载