控制系统计算机仿真
房建东
Email:fangjd@163.com
Address:内蒙古工业大学信息工程学院实验楼 3楼
电工电子教学中心
二 00四年二月
通过本课程的学习,使学生初步掌握当前流行
的演算式 MATLAB语言的基本知识,结合所学
课程, 数字信号处理,,, 信号与系统,,自
动控制原理, 等,学会运用 MATLAB语言进行
控制系统仿真和辅助设计的基本技能,为今后
从事科学研究打下较好的基础。
课程任务
第一章 计算机仿真和辅助设计概述
第二章 MATLAB语言基础
第三章 控制系统的数学描述与建模
第四章 控制系统的分析方法
第五章 控制系统设计与校正
第六章 SIMULINK仿真基础
第七章 MATLAB在电子信息领域应用简介
教学内容
考试形式及成绩评定
?考 勤, 随机点名 2次 10%
?作 业, 40%
?期末考试,50%
参考书目
教 材:
?,控制系统数字仿真与 CAD,机械工业出版社,
1999年,张晓华
参考书:
?,反馈控制系统设计与分析 —— MATLAB语言应用,
清华大学出版社,2000年,薛定宇
?,基于 MATLAB的系统分析与设计 —— 控制系统,,
西安电子科技大学出版社,1999年,楼顺天
?,精通 MATLAB6,5版,,北京航空航天大学出版社,
2003年,张志涌
CH1、计算机仿真和辅助设计概述
1.1 计算机应用与工程问题
? 自十九世纪以来工业革命至今,持续了二百年的科技进
展,使世人的生活水准大为提高。在我们即将迈入二十
一世纪的此时,回顾近年来的重大工程成就,影响世界
深远的为数不少,而依据美国国家工程学院在 1989年,
所选出的 25年的十大重大工程成就有:
? 微处理机 ;登陆月球 ;人造卫星的应用 ;电脑辅助设
计及制造;大型越洋客机;先进复合材料 ;电脑断层扫
描 ;基因工程 ;激光 ;光纤
?由于我们所面对的工程问题越来越复杂,过去
所依赖分析的技术已逐渐不敷使用。利用电脑
来分析及解决工程问题,已是当今工程师的必
要工具。如何善用电脑应用软件来帮助分析工
程问题,将是各位同学往后所要学习的重点,
也是这门课的目的。
1.2 工程问题的解决方式
解题五部曲
?简要的叙述问题
?描述输入 /输出的资讯
?利用简易数据将问题以手或计算器先行演算
?撰写 MATLAB程序
?以多组数据测试 MATLAB解 —— 计算机仿真与辅
助设计
1.3 计算机仿真和辅助设计的基本概念
一、计算机辅助设计与仿真的概念
1、计算机辅助设计的概念
? 计算机辅助设计( CAD)技术是利用计算机高速而精确
的计算能力、大容量存储和处理数据的能力,结合设计
者的综合分析、逻辑判断及创造性思维,用以加快设计
进程、缩短设计周期、提高设计质量的技术。
? 说明:计算机辅助设计从广义上来讲它包含了计算机仿
真的内容,从狭义上说它的主要工作是利用计算机的运
算能力来处理设计者手工处理所遇到的不便与繁琐。
2、计算机仿真的概念
仿真的定义
?仿真的基本思想是利用物理的或数学的模型
来类比模仿现实过程,以寻求对真实过程的
认识。它所遵循的基本原则是相似性原理。
计算机仿真的定义
?计算机仿真是基于所建立的系统仿真模型,
利用计算机对系统进行分析与研究的方法。
1、模型的定义
? 模型是对现实系统有关结构信息和行为的某种形式的
描述,是对系统的特征与变化规律的一种定量抽象,
是人们认识事物的一种手段或工具。
2、模型的分类
( 1)物理模型
? 指不以人的意志为转移的客观存在的实体,如:飞行
器研制中的飞行模型;船舶制造中的船舶模型等。
( 2)数学模型
? 是从一定的功能或结构上进行相似,用数学的方法来
再现原型的功能或结构特征。
三、计算机仿真模型
( 3)仿真模型
? 指根据系统的数学模型,用仿真语言转化为计算机可以实施
的模型。
四、计算机仿真的三要素及基本步骤(内容)
1、三要素
( 1)系统:研究的对象
( 2)模型:系统的抽象
( 3)计算机:工具与手段
2、基本步骤
? 建模 仿真实验 结果分析
仿 真 的 一 般 步 骤:
?建模与形式化,确定模型的边界,模型进行形式化处理
?仿真建模,选择合适的算法( 稳定性、计算精度、速度)
?程序设计,将仿真模型用计算机能执行的程序来描述 ( 包
括仿真实验的要求, 运行参数, 控制参数, 输出要求 )
?模型校验,程序调试, 检验所选仿真算法的合理
★ 检验模型计算的正确性
? 仿真运行,对模型进行实验
? 仿真结果分析,对系统性能作出评价, 模型可信性检验
★ 只有可信的模型才能作为仿真的基础
实际系统
建模与形式化
形式模型
仿真建模
程序设计
仿真模型校验
正确否? 否
仿真运行
仿真结果分析
是
正确否? 否
是
结束
仿 真 的 一 般 步 骤
可信否? 否
是
1.4仿真的分类
一、按模型分类
1、物理仿真:采用物理模型,有实物介入!
? 具有效果逼真,精度高等优点,但造价高或耗时长,
大多在一些特殊场合下采用(如导弹、卫星一类飞
行器的动态仿真,发电站综合调度仿真与培训系统
等),具有实时性、在线的特点。
2、数学仿真:采用数学模型
? 在计算机上进行,具有非实时性、离线的特点,经
济、快速、实用。
二、按计算机类型分类
1、模拟仿真:采用数学模型,在模拟计算机上进行的实
验研究。 50年代
? 描述连续物理系统的动态过程比较自然、逼真,具有
仿真速度快、失真小、结果可靠的优点,但受元器件
性能影响,仿真精度较低,对计算机控制系统的仿真
较困难,自动化程度低。
? 模拟计算机的核心是运算部分,它由我们熟知的“模
拟运算放大器”为主要部件所构成。
2、数字仿真:采用数学模型,在数字计算机上借助于数
值计算方法所进行的仿真实验。 60年代
?数字仿真的优点是计算与仿真的精度较高。理论上计
算机的字长可以根据精度要求来“随意”设计,因此
其仿真精度可以是无限,但是由于受到误差积累、仿
真时间等因素影响,其精度也不易定得太高。
?数字仿真对计算机控制系统的仿真较方便。仿真实验
的自动化程度较高,可方便地实现显示、打印等功能。
?计算速度比较低,在一定程度上影响到仿真结果的可
信度。但随着计算机技术的发展,“速度问题”会在
不同程度上有所改进与提高。
?数字仿真没有专用的仿真软件支持,需要设计人员用
高级程序语言编写求解系统模型及结果输出的程序。
3、混合仿真:结合了模拟仿真与数字仿真。
4、现代计算机仿真:采用先进的微型计算机,基
于专用的仿真软件、仿真语言来实现,其数值计
算功能强大,使用方便,易学。 80年代以来
1.5 仿真技术的应用与发展
一、仿真技术在工程中的应用
1、航空与航天工业
? 飞行器设计中的三级仿真体系:纯数学模拟(软件)、半
实物模拟、实物模拟或模拟飞行实验。
? 飞行员及宇航员训练用飞行仿真模拟器。
2、电力工业
? 电力系统动态模型实验:电力系统负荷分配、瞬态稳定性
以及最优潮流控制等。
? 电站操作人员培训模拟系统。
3、原子能工业
?模拟核反应堆
?核电站仿真器用来训练操作人员以及研究异常故
障的排除处理。
4、石油、化工及冶金工业
5、非工程领域
?医学
?社会学
?宏观经济与商业策略的研究
二、应用仿真技术的意义
1、经济
? 大型、复杂系统直接实验是十分昂贵的,如:空
间飞行器的一次飞行实验的成本约在 1亿美元左右,
而采用仿真实验仅需其成本的 1/10~1/5,而且设
备可以重复使用。
2、安全
? 某些系统(如载人飞行器、核电装置等),直接
实验往往会有很大的危险,甚至是不允许的,而
采用仿真实验可以有效降低危险程度,对系统的
研究起到保障作用。
3、快捷
? 提高设计效率:比如电路设计,服装设计等等。
4、具有优化设计和预测的特殊功能
? 对一些真实系统进行结构和参数的优化设计是非
常困难的,这时仿真可以发挥它特殊的优化设计
功能。
? 在非工程系统中(如社会、管理、经济等系统),
由于其规模及复杂程度巨大,直接实验几乎不可
能,这时通过仿真技术的应用可以获得对系统的
某种超前认识。
三、仿真技术的发展趋势
1、硬件方面:基于多 CPU并行处理技术的全数字仿真将有
效提高仿真系统的速度,大大增强数字仿真的实时性。
2、应用软件方面:直接面向用户的数字仿真软件不断推陈
出新,各种专家系统与智能化技术将更深入地应用于仿真
软件开发之中,使得在人机界面、结果输出、综合评判等
方面达到更理想的境界。
3、分布式数字仿真:充分利用网络技术,协调合作,投资
少,效果好。
4、虚拟现实技术:综合了计算机图形技术、多媒体技术、
传感器技术、显示技术以及仿真技术等多学科,使人置身
于真实环境之中。
1.6 计算机仿真软件
一、仿真软件的发展
1、程序编程阶段
? 所有问题(如:微分方程求解、矩阵运算、绘图等)
都是用高级算法语言(如 C,FORTRAN等)来编
写。
2、程序软件包阶段
? 出现了“应用子程序库”。
3、交互式语言阶段(仿真语言)
? 仿真语言可用一条指令实现某种功能,如“系统特
征值的求解”,使用人员不必考虑什么算法,以及
如何实现等问题。
4、模型化图形组态阶段
? 符合设计人员对基于模型图形化的描述。
二、几种仿真软件
1,PROTEL,PSPICE,EWB( MULTISIM):通
用的电子电路仿真软件,适合于元件级仿真。
2,SYSTEM VIEW:系统级的电路动态仿真软件
3,MATLAB:具有强大的数值计算能力,包含各种
工具箱,其程序不能脱离 MATLAB环境而运行,
所以严格讲,MATLAB不是一种计算机语言,而
是一种高级的科学分析与计算软件。
4,SIMULINK:是 MATLAB附带的基于模型化图形
组态的动态仿真环境。
三,MATLAB简介
? MATLAB是美国 math works公司推出的一个高性能的数值
计算和可视化软件, 它集数值分析, 矩阵运算, 信号处
理和图形显示于一体, 构成了一个方便的, 界面友好的
用户环境 。 MATLAB的推出得到了各个领域的广泛关注,
其强大的扩展功能为各个领域的应用提供了基础 。 由各
个领域的专家学者相继推出了 MATLAB工具箱, 其中主要
有信号处理, 控制系统, 神经网络, 图像处理等 。 借助
MATLAB的这些工具箱, 人们可直观, 方便地进行分析,
计算及设计工作, 从而大大节省了时间, 并能很快地设
计出更多的解决方案来确保未来更多的技术需要 。
1.MATLAB的发展历程和影响
? MATLAB名字由 MATrix和 LABoratory 两词的前三个字
母组合而成 。 那是 20世纪七十年代后期的事:时任美国
新墨西哥大学计算机科学系主任的 Cleve Moler教授出于
减轻学生编程负担的动机, 为学生设计了一组调用
LINPACK和 EISPACK库程序的, 通俗易用, 的接口, 此
即用 FORTRAN编写的萌芽状态的 MATLAB。
? 经几年的校际流传, 在 Little的推动下, 由 Little、
Moler,Steve Bangert合作, 于 1984年成立了 MathWorks
公司, 并把 MATLAB 正式 推向 市 场 。 从这 时 起,
MATLAB的内核采用 C语言编写, 而且除原有的数值计
算能力外, 还新增了数据图视功能 。
?MATLAB以商品形式出现后的短短几年, 就以其
良好的开放性和运行的可靠性, 使原先控制领域
里的封闭式软件包纷纷淘汰, 而改在 MATLAB平
台上重建 。 在时间进入 20世纪九十年代的时候,
MATLAB已经成为国际控制界公认的标准计算软
件 。 到九十年代初期, 在国际上 30几个数学类科
技应用软件中, MATLAB在数值计算方面独占鳌
头, 而 Mathematica和 Maple则分居符号计算软件
的前两名 。 Mathcad因其提供计算, 图形, 文字
处理的统一环境而深受中学生欢迎 。
? MathWorks公司于 1993年推出了基于 Windows平台的
MATLAB4.0。 4.x版在继承和发展其原有的数值计算和
图形可视能力的同时, 出现了以下几个重要变化:
? ( 1) 推出了 SIMULINK,一个交互式操作的动态系统
建模, 仿真, 分析集成环境 。
? ( 2) 推出了符号计算工具包 。 符号表达式 是代表数字,
函数, 算子和变量的 MATLAB字符串, 或字符串数组 。
不要求变量有预先确定的值, 符号方程式 是含有等号的
符号表达式 。 符号算术 是使用已知的规则和给定符号恒
等式求解这些符号方程的实践, 它与代数和微积分所学
到的求解方法完全一样 。 符号矩阵 是数组, 其元素是符
号表达式 。
符号计算工具包的主要功能有以下 8项:
(1)用符号定义各种数学运算和函数 (syms,symop)等,
(2)对这些函数式进行代数和三角运算, 包括因式分解 (factor),展
开 (expand),变量置换 (subs),复合函数 (compose)等;
(3)微分和积分运算 (diff,int)等:
(4)函数的整理和化简 (combine,simplify,simple)等;
(5)可变精度的运算, 如可以设置任意多个有效计算位数进行计算
(vpa,digits)等;
(6)解方程, 包括单变量的代数方程, 多变量非线性的联立代数方程
(solve),单变量微分方程, 多变量联立微分方程 (dsolve)等;
(7)线性代数和矩阵运算 (determ,linsolve)等;
(8)变换,包括拉普拉斯变换 (laplace)、傅立叶变换 (fourier)和 z
变换 (ztrans)等。
MATLAB在内
部把符号表达
式表示成字符
串, 以与数字
变量或运算相
区别;右表列
有几则符号表
达式例子以及
MATLAB等效
表达式 。
1
2xn
1
2y x?
c o s( ) sin ( )x x2 2?
M a bc d? ?
??
?
??
x
x dxa
b 3
1??
' 1/(2*x^n) '
y= ' 1/sqrt(2*x) '
' cos(x^2)-sin(2*x) '
M=sym( ' [a,b; c,d] ' )
符号表达式 MATLAB表达式
f=int( ' x^3/sqrt(1-x) ', ' a ', ' b ' )
?( 3) 构作了 Notebook 。 MathWorks公司瞄准应
用范围最广的 Word, 运用 DDE和 OLE,实现了
MATLAB与 Word的无缝连接, 从而为专业科技
工作者创造了融科学计算, 图形可视, 文字处理
于一体的高水准环境 。 从 1997年春的 5.0版起, 后
历经 5.1,5.2,5.3,6.0,6.1等多个版本的不断改
进, MATLAB“面向对象, 的特点愈加突出, 数
据类型愈加丰富, 操作界面愈加友善 。 2002年初
夏所推 6.5版的最大特点是:该版本采用了 JIT加
速器, 从而使 MATLAB朝运算速度与 C程序相比
肩的方向前进了一大步 。
2.MATLAB语言主要优点:
①, 功能强的数值运算 —— 在 MATLAB环境中, 有超
过 500种数学, 统计, 科学及工程方面的函数可使用,
函数的标示自然, 使得问 题和解答像数学式子一般
简单明了, 让使用者可全力发挥在解题方面, 而非浪
费在电脑操作上 。
②, 语言简单 —— MATLAB语言允许用户以数学形式的
语言编写程序, 比 BASIC,FORTRAN语言和 C语言等更
接近于书写计算公式的思维方式 。 由于它是用 C语言
开发的, 它的不多的几个程序流控语句同 C语言差别
甚微, 易于初学者掌握 。
?③, 先进的资料视觉化功能 —— MATLAB的物
件导向图形架构让使用者可执行视觉数据分析,
并制作高品质的图形,完成科学性或工程性图
文并茂的文章。
?④, 开放及可延伸的架构 —— MATLAB容许使
用者接触它大多数的数学原使码,检视运算法,
更改现存函数,甚至加入自己的函数使
MATLAB成为使用者所须要的环境。
?⑤ 丰富的程式工具箱 —— MATLAB的程式
工具箱融合了套装前软体的优点, 与一个灵
活的开放但容易操作之环境, 这些工具箱提
供了使用者在特别应用领域所需之许多函数 。
现有工具箱有:符号运算 ( 利用 Maple V的
计算核心执行 ), 影像处理, 统计分析, 讯
号处理, 神经网络, 模拟分析, 控制系统,
即时控制, 系统确认, 弧线分析, 最佳化,
模糊逻辑, 化学计量分析等 。
?⑥ 移植性和开放性好
MATLAB是用 C语言编写的, 而 C语言的可移植
性很好 。 于是 MATLAB可以很方便地移植到能运
行 C语言的操作平台上 。 MATLAB适合的工作平
台有; Windows系列, Unix,Linux。 除了内部函
数外, MATLAB所有的核心文件和工具箱文件都
是公开的, 都是可读可写的源文件, 用户可以通
过对源文件的修改和自己编程构成新的工具箱 。
?⑦ 语句简单, 内涵丰富
MATLAB语言中最基本最重要的成分是函数, 其
一般形式为 [a,b,c… ]=fun( d,e,f… ), 即一
个函数由函数名, 输入变量 d,e,f… 和输出变量
a,b,c… 组成, 同一函数名 F,不同数目的输入
变量 (包括无输入变量 )及不同数目的输出变量,
代表着不同的含义 。 这不仅使 MATLAB的库函数
功能更丰富, 而且大大减少了需要的磁盘空间,
使得 MATLAB编写的 M文件简单, 短小而高效 。
?⑧ 高效方便的矩阵和数组运算 ——MATLAB语言
像 FORTRAN和 C语言一样规定了矩阵的算术运算
符, 关系运算符, 逻辑运算符, 条件运算符及赋
值运算符, 而且这些运算符大部分可以毫无改变
地照搬到数组间的运算 。 另外, 它不需定义数组
的维数, 并结出矩阵函数, 特殊矩阵专门的库函
数, 使之在求解诸如信号处理, 建模, 系统识别,
控制, 优化等领域的问题时, 显得大为简捷, 这
是 其他高 级语 言所不 能比拟 的 。 高版本 的
MATLAB已逐步扩展到科学及工程计算的其他领
域 。 因此, 不久的将来, MATLAB一定能名副其
实地成为, 万能演算纸, 式的科学算法语言 。
?⑨ 方便的绘图功能 —— MATLAB的绘图是十分
方便的,它有一系列绘图函数 (命令 ),例如线
性坐标、对数坐标、半对数坐标及极坐标,均
只需调用不同的绘图画数 (命令 ),在图上标出
图题,XY轴标注,格 (栅 )绘制也只需调用相应
的命令,简单易行。另外,在调用绘图函数时
调整自变量可绘出不变颜色的点、线、复线或
多重线。这种为科学研究着想的设计是通用的
编程语言所不能及的 。
? MATLAB长于数值计算,能处理大量的数据,而且效率比
较高。 MathWorks公司在此基础上开拓了符号计算、文
字处理、可视化建模和实时控制能力,增强了 MATLAB的
市场竞争力,使 MATLAB成为市场主流的数值计算软件。
? MathWorks公司的系统设计解决方案为基于模型的系统
设计提供了从概念到应用的一套完整设计工具 ——
MATLAB产品组。 MATLAB产品组是支持从概念设计、算法
开发、建模仿真和实时实现的理想的集成环境。无论是
进行科学研究还是产品开发,MATLAB产品组都是必不可
少的工具。
3.MATLAB产品组
MATLAB产品组主要应用
? 数据分析
? 数值和符号计算
? 工程与科学绘图
? 控制系统设计
? 数字图象信号处理
? 财务工程
? 建模、仿真、原型开发
? 图形用户界面设计等
?MATLAB产品组被广泛地应用于包括信号与图像
处理, 控制系统设计, 通信, 系统仿真等诸多领
域 。 开放式的结构使 MATLAB产品组很容易针对
特定的需求进行扩充, 从而在不断深化对问题的
认识的同时, 提高自身的竞争力 。
? MATLAB产品组的一大特性是有众多的面向具
体应用的工具箱和仿真块, 包含了完整的函数集
用来对信号图像处理, 控制系统设计, 神经网络
等特殊应用进行分析和设计 。 其他的产品延伸了
MATLAB的能力, 包括数据采集, 报告生成和依
靠 MATLAB语言编程产生独立的 C/ C++代码等
等 。
MATLAB的主要产品构成是,
? ( 1) MATLAB
所有 MathWorks公司产品的数值分析和图形基础环境 。
MATLAB将 2D和 3D图形, MATLAB语言能力集成到
一个单一的, 易学易用的环境之中 。
? ( 2) MATLAB Toolbox
一系列专用的 MATLAB函数库, 解决特定领域的问题 。
工具箱是开放的可扩展的, 可以查看其中的算法, 或
开发自己的算法 。
? ( 3) MATLAB Compiler
将 MATLAB语言编写的 m文件自动转换成 C或 C++文件,
支持用户进行独立应用开发 。 结合 MathWorks提供的 C/
C++数学库和图形库, 用户可以利用 MATLAB快速地开
发出功能强大的独立应用 。
? ( 4) Simulink
结合了框图界面和交互仿真能力的非线性动态系统仿真
工具 。 它以 MATLAB的核心数学, 图形和语言为基础 。
? ( 5) Stateflow
与 Simulink框图模型相结合, 描述复杂事件驱动系统的
逻辑行为, 驱动系统在不同的模式之间进行切换 。
?( 6) Real-Time Workshop
直接从 Simulink框图自动生成 C或 Ada代码, 用于
快速原型和硬件在回路仿真, 整个代码生成可以
根据需要完全定制 。
?( 7) Simulink Blockset
专门为特定领域设计的 Simulink功能块的集合,
用 户 也 可 以 利 用 已 有 的 块 或 自 编 写 的 C 和
MATLAB程序建立自己的块 。
? MathWorks公司的系统设计解决方案为基于模型的系统
设计提供了从概念到应用的一套完整设计工具 。
MATLAB,Simulink,Stateflow,Real-Time Workshop
间的紧密集成可以使用户自由穿梭于建模, 分析, 仿真,
代码生成, 控制原型与实施之间 。 用户可以在每个设计
阶段进行不同的测试并且针对系统应用快速选取优化方
案 。
? Real-Time Workshop Embedded Coder 是 Real-Time
Workshop的扩展, 为受内存限制的离散时间系统生成 C
代码 。 Real-Time Workshop Embedded Coder是受 RAM、
ROM,CPU 所限制系统的理想工具 。 生成的代码灵活,
可靠, 高效, 易于管理并符合工业标准 。
四,simulink简介
?Simulink是 MATLAB的一个附加组件, 用来提供一
个系统的建模与动态仿真平台, 是一个进行动态
系统建模, 仿真和综合分析的集成软件包 。 它用
模块组合的方法来使用户能够快速, 准确地创建
动态系统的计算机模型, 可以处理的系统包括:
线性, 非线性系统;离散, 连续及混合系统;单
任务, 多任务离散事件系统, 特别对复杂的非线
性系统, 它的效果更明显 。
?Simulink模型可以用来模拟线性或非线性,
连续或离散或者两者的混合系统, 也就是
它可以用来模拟几乎所有可能遇到的动态
系统 。 它还支持系统是多采样率的, 即系
统的不同部分拥有不同的采样率 。 另外,
Simulink还提供一套图形动画的处理方法,
使用户可以方便地观察到仿真的整个过程 。
?对于建模, 在 SIMULINK 提供的图形用户界面
上, 只要进行鼠标的简单拖拉操作就可构造出
复杂的仿真模型 。 它外表以方块图形式呈现,
且采用分层结构 。 定义完一个模型后, 可通过
Simulink的菜单或在 MATLAB的命令窗输入命令
对它进行仿真, 然后可以借助模拟示波器或其
它的显示模块, 在运行仿真时观察到仿真的结
果 。 另外, 还可以在仿真时改变参数并且立即
就可看到有什么变化 。
?从分析研究角度讲, 这种 SIMULINK模型不仅能
让用户知道具体环节的动态细节, 而且能让用户
清晰地了解各器件, 各子系统, 各系统间的信息
交换, 掌握各部分之间的交互影响 。 另外,
Simulink没有单独的语言, 但它提供了 S函数规
则 。 S函数可以是一个 M文件, FORTRAN程序, C
或 C++语言程序等, 通过特殊的语言规则使之能
够被 Simulink模型或模块调用 。 它是 Simulink的
扩展工具, 使 Simulink更加充实, 完备, 具有更
强的处理能力 。
Simulink作为面向框图的仿真软件, 具有以下的功能:
(1)用方框图的绘制代替程序的编写 。 构成任何一个系统
框图有三个步骤, 即选定典型环节, 相互联接和给定环
节参数 。 这三步可以在一个图形界面上用鼠标和键盘来
完成 。
(2)仿真的建立和运行是智能化的 。 首先, 画好了框图并
存起来, 它就自动建立起了仿真的方程;其次, 在运行
时用户可以不给步长, 只给出要求的仿真精度, 软件会
自动选择能保证给定精度的最大步长, 使得在给定的精
度要求下系统仿真具有最快的速度 。
(3)输入输出信号来源形式的多样化 。 其输入信号可以是
各种信号发生器;也可以来自一个设定的记录文件;还
可以来自 MATLAB的工作空间 。 输出信号也类似, 这就扩
大了仿真系统与各种外部软件和硬件的接口能力 。
?Simulink模型仿真包含一系列常微分方程
(Ordinary Differential Equations ODEs)
的数值积分, Simulink工具箱为仿真提供了
许多种计算这些方程的求解器 。 由于不同动
态系统的行为差异, 所以在解决特定的问题
时, 某些求解器会比其它的更有效一些, 为
了得到精确且迅速的计算解, 应当选择合适
的解法, 并且设置合适的参数 。
?可供选择的有定步长和变步长的解法, 变步
长的解法在仿真期间会改变其步长, 它们提
供误差控制和过零点检测 。 定步长的求解器
在仿真期间采用相同的步长, 它们不提供误
差控制和过零点 。
?可供选择的变步长解法有:
ode45,ode23,ode113,ode23s和 discrete。
?可供选择的定步长解法有:
ode5,ode4,ode3,ode2,ode1和 discrete。
本章小结
? 仿真是对系统进行研究的一种实验方法,它的基本原则是
相似性原理。
? 数字仿真具有经济、安全、快捷的特点。
? 仿真是在模型上进行的,建立系统的模型是仿真的关键内
容。
? 系统模型可以分为物理模型、数学模型及仿真模型,据此
可将仿真分为物理仿真和数学仿真两大类。
? 系统、模型、计算机是数字仿真的三个基本要素,建模、
仿真实验及结果分析是三项基本内容。
? MATLAB与 SIMULINK是当今广泛为人们采用的控制系统
数字仿真与 CAD应用软件。
房建东
Email:fangjd@163.com
Address:内蒙古工业大学信息工程学院实验楼 3楼
电工电子教学中心
二 00四年二月
通过本课程的学习,使学生初步掌握当前流行
的演算式 MATLAB语言的基本知识,结合所学
课程, 数字信号处理,,, 信号与系统,,自
动控制原理, 等,学会运用 MATLAB语言进行
控制系统仿真和辅助设计的基本技能,为今后
从事科学研究打下较好的基础。
课程任务
第一章 计算机仿真和辅助设计概述
第二章 MATLAB语言基础
第三章 控制系统的数学描述与建模
第四章 控制系统的分析方法
第五章 控制系统设计与校正
第六章 SIMULINK仿真基础
第七章 MATLAB在电子信息领域应用简介
教学内容
考试形式及成绩评定
?考 勤, 随机点名 2次 10%
?作 业, 40%
?期末考试,50%
参考书目
教 材:
?,控制系统数字仿真与 CAD,机械工业出版社,
1999年,张晓华
参考书:
?,反馈控制系统设计与分析 —— MATLAB语言应用,
清华大学出版社,2000年,薛定宇
?,基于 MATLAB的系统分析与设计 —— 控制系统,,
西安电子科技大学出版社,1999年,楼顺天
?,精通 MATLAB6,5版,,北京航空航天大学出版社,
2003年,张志涌
CH1、计算机仿真和辅助设计概述
1.1 计算机应用与工程问题
? 自十九世纪以来工业革命至今,持续了二百年的科技进
展,使世人的生活水准大为提高。在我们即将迈入二十
一世纪的此时,回顾近年来的重大工程成就,影响世界
深远的为数不少,而依据美国国家工程学院在 1989年,
所选出的 25年的十大重大工程成就有:
? 微处理机 ;登陆月球 ;人造卫星的应用 ;电脑辅助设
计及制造;大型越洋客机;先进复合材料 ;电脑断层扫
描 ;基因工程 ;激光 ;光纤
?由于我们所面对的工程问题越来越复杂,过去
所依赖分析的技术已逐渐不敷使用。利用电脑
来分析及解决工程问题,已是当今工程师的必
要工具。如何善用电脑应用软件来帮助分析工
程问题,将是各位同学往后所要学习的重点,
也是这门课的目的。
1.2 工程问题的解决方式
解题五部曲
?简要的叙述问题
?描述输入 /输出的资讯
?利用简易数据将问题以手或计算器先行演算
?撰写 MATLAB程序
?以多组数据测试 MATLAB解 —— 计算机仿真与辅
助设计
1.3 计算机仿真和辅助设计的基本概念
一、计算机辅助设计与仿真的概念
1、计算机辅助设计的概念
? 计算机辅助设计( CAD)技术是利用计算机高速而精确
的计算能力、大容量存储和处理数据的能力,结合设计
者的综合分析、逻辑判断及创造性思维,用以加快设计
进程、缩短设计周期、提高设计质量的技术。
? 说明:计算机辅助设计从广义上来讲它包含了计算机仿
真的内容,从狭义上说它的主要工作是利用计算机的运
算能力来处理设计者手工处理所遇到的不便与繁琐。
2、计算机仿真的概念
仿真的定义
?仿真的基本思想是利用物理的或数学的模型
来类比模仿现实过程,以寻求对真实过程的
认识。它所遵循的基本原则是相似性原理。
计算机仿真的定义
?计算机仿真是基于所建立的系统仿真模型,
利用计算机对系统进行分析与研究的方法。
1、模型的定义
? 模型是对现实系统有关结构信息和行为的某种形式的
描述,是对系统的特征与变化规律的一种定量抽象,
是人们认识事物的一种手段或工具。
2、模型的分类
( 1)物理模型
? 指不以人的意志为转移的客观存在的实体,如:飞行
器研制中的飞行模型;船舶制造中的船舶模型等。
( 2)数学模型
? 是从一定的功能或结构上进行相似,用数学的方法来
再现原型的功能或结构特征。
三、计算机仿真模型
( 3)仿真模型
? 指根据系统的数学模型,用仿真语言转化为计算机可以实施
的模型。
四、计算机仿真的三要素及基本步骤(内容)
1、三要素
( 1)系统:研究的对象
( 2)模型:系统的抽象
( 3)计算机:工具与手段
2、基本步骤
? 建模 仿真实验 结果分析
仿 真 的 一 般 步 骤:
?建模与形式化,确定模型的边界,模型进行形式化处理
?仿真建模,选择合适的算法( 稳定性、计算精度、速度)
?程序设计,将仿真模型用计算机能执行的程序来描述 ( 包
括仿真实验的要求, 运行参数, 控制参数, 输出要求 )
?模型校验,程序调试, 检验所选仿真算法的合理
★ 检验模型计算的正确性
? 仿真运行,对模型进行实验
? 仿真结果分析,对系统性能作出评价, 模型可信性检验
★ 只有可信的模型才能作为仿真的基础
实际系统
建模与形式化
形式模型
仿真建模
程序设计
仿真模型校验
正确否? 否
仿真运行
仿真结果分析
是
正确否? 否
是
结束
仿 真 的 一 般 步 骤
可信否? 否
是
1.4仿真的分类
一、按模型分类
1、物理仿真:采用物理模型,有实物介入!
? 具有效果逼真,精度高等优点,但造价高或耗时长,
大多在一些特殊场合下采用(如导弹、卫星一类飞
行器的动态仿真,发电站综合调度仿真与培训系统
等),具有实时性、在线的特点。
2、数学仿真:采用数学模型
? 在计算机上进行,具有非实时性、离线的特点,经
济、快速、实用。
二、按计算机类型分类
1、模拟仿真:采用数学模型,在模拟计算机上进行的实
验研究。 50年代
? 描述连续物理系统的动态过程比较自然、逼真,具有
仿真速度快、失真小、结果可靠的优点,但受元器件
性能影响,仿真精度较低,对计算机控制系统的仿真
较困难,自动化程度低。
? 模拟计算机的核心是运算部分,它由我们熟知的“模
拟运算放大器”为主要部件所构成。
2、数字仿真:采用数学模型,在数字计算机上借助于数
值计算方法所进行的仿真实验。 60年代
?数字仿真的优点是计算与仿真的精度较高。理论上计
算机的字长可以根据精度要求来“随意”设计,因此
其仿真精度可以是无限,但是由于受到误差积累、仿
真时间等因素影响,其精度也不易定得太高。
?数字仿真对计算机控制系统的仿真较方便。仿真实验
的自动化程度较高,可方便地实现显示、打印等功能。
?计算速度比较低,在一定程度上影响到仿真结果的可
信度。但随着计算机技术的发展,“速度问题”会在
不同程度上有所改进与提高。
?数字仿真没有专用的仿真软件支持,需要设计人员用
高级程序语言编写求解系统模型及结果输出的程序。
3、混合仿真:结合了模拟仿真与数字仿真。
4、现代计算机仿真:采用先进的微型计算机,基
于专用的仿真软件、仿真语言来实现,其数值计
算功能强大,使用方便,易学。 80年代以来
1.5 仿真技术的应用与发展
一、仿真技术在工程中的应用
1、航空与航天工业
? 飞行器设计中的三级仿真体系:纯数学模拟(软件)、半
实物模拟、实物模拟或模拟飞行实验。
? 飞行员及宇航员训练用飞行仿真模拟器。
2、电力工业
? 电力系统动态模型实验:电力系统负荷分配、瞬态稳定性
以及最优潮流控制等。
? 电站操作人员培训模拟系统。
3、原子能工业
?模拟核反应堆
?核电站仿真器用来训练操作人员以及研究异常故
障的排除处理。
4、石油、化工及冶金工业
5、非工程领域
?医学
?社会学
?宏观经济与商业策略的研究
二、应用仿真技术的意义
1、经济
? 大型、复杂系统直接实验是十分昂贵的,如:空
间飞行器的一次飞行实验的成本约在 1亿美元左右,
而采用仿真实验仅需其成本的 1/10~1/5,而且设
备可以重复使用。
2、安全
? 某些系统(如载人飞行器、核电装置等),直接
实验往往会有很大的危险,甚至是不允许的,而
采用仿真实验可以有效降低危险程度,对系统的
研究起到保障作用。
3、快捷
? 提高设计效率:比如电路设计,服装设计等等。
4、具有优化设计和预测的特殊功能
? 对一些真实系统进行结构和参数的优化设计是非
常困难的,这时仿真可以发挥它特殊的优化设计
功能。
? 在非工程系统中(如社会、管理、经济等系统),
由于其规模及复杂程度巨大,直接实验几乎不可
能,这时通过仿真技术的应用可以获得对系统的
某种超前认识。
三、仿真技术的发展趋势
1、硬件方面:基于多 CPU并行处理技术的全数字仿真将有
效提高仿真系统的速度,大大增强数字仿真的实时性。
2、应用软件方面:直接面向用户的数字仿真软件不断推陈
出新,各种专家系统与智能化技术将更深入地应用于仿真
软件开发之中,使得在人机界面、结果输出、综合评判等
方面达到更理想的境界。
3、分布式数字仿真:充分利用网络技术,协调合作,投资
少,效果好。
4、虚拟现实技术:综合了计算机图形技术、多媒体技术、
传感器技术、显示技术以及仿真技术等多学科,使人置身
于真实环境之中。
1.6 计算机仿真软件
一、仿真软件的发展
1、程序编程阶段
? 所有问题(如:微分方程求解、矩阵运算、绘图等)
都是用高级算法语言(如 C,FORTRAN等)来编
写。
2、程序软件包阶段
? 出现了“应用子程序库”。
3、交互式语言阶段(仿真语言)
? 仿真语言可用一条指令实现某种功能,如“系统特
征值的求解”,使用人员不必考虑什么算法,以及
如何实现等问题。
4、模型化图形组态阶段
? 符合设计人员对基于模型图形化的描述。
二、几种仿真软件
1,PROTEL,PSPICE,EWB( MULTISIM):通
用的电子电路仿真软件,适合于元件级仿真。
2,SYSTEM VIEW:系统级的电路动态仿真软件
3,MATLAB:具有强大的数值计算能力,包含各种
工具箱,其程序不能脱离 MATLAB环境而运行,
所以严格讲,MATLAB不是一种计算机语言,而
是一种高级的科学分析与计算软件。
4,SIMULINK:是 MATLAB附带的基于模型化图形
组态的动态仿真环境。
三,MATLAB简介
? MATLAB是美国 math works公司推出的一个高性能的数值
计算和可视化软件, 它集数值分析, 矩阵运算, 信号处
理和图形显示于一体, 构成了一个方便的, 界面友好的
用户环境 。 MATLAB的推出得到了各个领域的广泛关注,
其强大的扩展功能为各个领域的应用提供了基础 。 由各
个领域的专家学者相继推出了 MATLAB工具箱, 其中主要
有信号处理, 控制系统, 神经网络, 图像处理等 。 借助
MATLAB的这些工具箱, 人们可直观, 方便地进行分析,
计算及设计工作, 从而大大节省了时间, 并能很快地设
计出更多的解决方案来确保未来更多的技术需要 。
1.MATLAB的发展历程和影响
? MATLAB名字由 MATrix和 LABoratory 两词的前三个字
母组合而成 。 那是 20世纪七十年代后期的事:时任美国
新墨西哥大学计算机科学系主任的 Cleve Moler教授出于
减轻学生编程负担的动机, 为学生设计了一组调用
LINPACK和 EISPACK库程序的, 通俗易用, 的接口, 此
即用 FORTRAN编写的萌芽状态的 MATLAB。
? 经几年的校际流传, 在 Little的推动下, 由 Little、
Moler,Steve Bangert合作, 于 1984年成立了 MathWorks
公司, 并把 MATLAB 正式 推向 市 场 。 从这 时 起,
MATLAB的内核采用 C语言编写, 而且除原有的数值计
算能力外, 还新增了数据图视功能 。
?MATLAB以商品形式出现后的短短几年, 就以其
良好的开放性和运行的可靠性, 使原先控制领域
里的封闭式软件包纷纷淘汰, 而改在 MATLAB平
台上重建 。 在时间进入 20世纪九十年代的时候,
MATLAB已经成为国际控制界公认的标准计算软
件 。 到九十年代初期, 在国际上 30几个数学类科
技应用软件中, MATLAB在数值计算方面独占鳌
头, 而 Mathematica和 Maple则分居符号计算软件
的前两名 。 Mathcad因其提供计算, 图形, 文字
处理的统一环境而深受中学生欢迎 。
? MathWorks公司于 1993年推出了基于 Windows平台的
MATLAB4.0。 4.x版在继承和发展其原有的数值计算和
图形可视能力的同时, 出现了以下几个重要变化:
? ( 1) 推出了 SIMULINK,一个交互式操作的动态系统
建模, 仿真, 分析集成环境 。
? ( 2) 推出了符号计算工具包 。 符号表达式 是代表数字,
函数, 算子和变量的 MATLAB字符串, 或字符串数组 。
不要求变量有预先确定的值, 符号方程式 是含有等号的
符号表达式 。 符号算术 是使用已知的规则和给定符号恒
等式求解这些符号方程的实践, 它与代数和微积分所学
到的求解方法完全一样 。 符号矩阵 是数组, 其元素是符
号表达式 。
符号计算工具包的主要功能有以下 8项:
(1)用符号定义各种数学运算和函数 (syms,symop)等,
(2)对这些函数式进行代数和三角运算, 包括因式分解 (factor),展
开 (expand),变量置换 (subs),复合函数 (compose)等;
(3)微分和积分运算 (diff,int)等:
(4)函数的整理和化简 (combine,simplify,simple)等;
(5)可变精度的运算, 如可以设置任意多个有效计算位数进行计算
(vpa,digits)等;
(6)解方程, 包括单变量的代数方程, 多变量非线性的联立代数方程
(solve),单变量微分方程, 多变量联立微分方程 (dsolve)等;
(7)线性代数和矩阵运算 (determ,linsolve)等;
(8)变换,包括拉普拉斯变换 (laplace)、傅立叶变换 (fourier)和 z
变换 (ztrans)等。
MATLAB在内
部把符号表达
式表示成字符
串, 以与数字
变量或运算相
区别;右表列
有几则符号表
达式例子以及
MATLAB等效
表达式 。
1
2xn
1
2y x?
c o s( ) sin ( )x x2 2?
M a bc d? ?
??
?
??
x
x dxa
b 3
1??
' 1/(2*x^n) '
y= ' 1/sqrt(2*x) '
' cos(x^2)-sin(2*x) '
M=sym( ' [a,b; c,d] ' )
符号表达式 MATLAB表达式
f=int( ' x^3/sqrt(1-x) ', ' a ', ' b ' )
?( 3) 构作了 Notebook 。 MathWorks公司瞄准应
用范围最广的 Word, 运用 DDE和 OLE,实现了
MATLAB与 Word的无缝连接, 从而为专业科技
工作者创造了融科学计算, 图形可视, 文字处理
于一体的高水准环境 。 从 1997年春的 5.0版起, 后
历经 5.1,5.2,5.3,6.0,6.1等多个版本的不断改
进, MATLAB“面向对象, 的特点愈加突出, 数
据类型愈加丰富, 操作界面愈加友善 。 2002年初
夏所推 6.5版的最大特点是:该版本采用了 JIT加
速器, 从而使 MATLAB朝运算速度与 C程序相比
肩的方向前进了一大步 。
2.MATLAB语言主要优点:
①, 功能强的数值运算 —— 在 MATLAB环境中, 有超
过 500种数学, 统计, 科学及工程方面的函数可使用,
函数的标示自然, 使得问 题和解答像数学式子一般
简单明了, 让使用者可全力发挥在解题方面, 而非浪
费在电脑操作上 。
②, 语言简单 —— MATLAB语言允许用户以数学形式的
语言编写程序, 比 BASIC,FORTRAN语言和 C语言等更
接近于书写计算公式的思维方式 。 由于它是用 C语言
开发的, 它的不多的几个程序流控语句同 C语言差别
甚微, 易于初学者掌握 。
?③, 先进的资料视觉化功能 —— MATLAB的物
件导向图形架构让使用者可执行视觉数据分析,
并制作高品质的图形,完成科学性或工程性图
文并茂的文章。
?④, 开放及可延伸的架构 —— MATLAB容许使
用者接触它大多数的数学原使码,检视运算法,
更改现存函数,甚至加入自己的函数使
MATLAB成为使用者所须要的环境。
?⑤ 丰富的程式工具箱 —— MATLAB的程式
工具箱融合了套装前软体的优点, 与一个灵
活的开放但容易操作之环境, 这些工具箱提
供了使用者在特别应用领域所需之许多函数 。
现有工具箱有:符号运算 ( 利用 Maple V的
计算核心执行 ), 影像处理, 统计分析, 讯
号处理, 神经网络, 模拟分析, 控制系统,
即时控制, 系统确认, 弧线分析, 最佳化,
模糊逻辑, 化学计量分析等 。
?⑥ 移植性和开放性好
MATLAB是用 C语言编写的, 而 C语言的可移植
性很好 。 于是 MATLAB可以很方便地移植到能运
行 C语言的操作平台上 。 MATLAB适合的工作平
台有; Windows系列, Unix,Linux。 除了内部函
数外, MATLAB所有的核心文件和工具箱文件都
是公开的, 都是可读可写的源文件, 用户可以通
过对源文件的修改和自己编程构成新的工具箱 。
?⑦ 语句简单, 内涵丰富
MATLAB语言中最基本最重要的成分是函数, 其
一般形式为 [a,b,c… ]=fun( d,e,f… ), 即一
个函数由函数名, 输入变量 d,e,f… 和输出变量
a,b,c… 组成, 同一函数名 F,不同数目的输入
变量 (包括无输入变量 )及不同数目的输出变量,
代表着不同的含义 。 这不仅使 MATLAB的库函数
功能更丰富, 而且大大减少了需要的磁盘空间,
使得 MATLAB编写的 M文件简单, 短小而高效 。
?⑧ 高效方便的矩阵和数组运算 ——MATLAB语言
像 FORTRAN和 C语言一样规定了矩阵的算术运算
符, 关系运算符, 逻辑运算符, 条件运算符及赋
值运算符, 而且这些运算符大部分可以毫无改变
地照搬到数组间的运算 。 另外, 它不需定义数组
的维数, 并结出矩阵函数, 特殊矩阵专门的库函
数, 使之在求解诸如信号处理, 建模, 系统识别,
控制, 优化等领域的问题时, 显得大为简捷, 这
是 其他高 级语 言所不 能比拟 的 。 高版本 的
MATLAB已逐步扩展到科学及工程计算的其他领
域 。 因此, 不久的将来, MATLAB一定能名副其
实地成为, 万能演算纸, 式的科学算法语言 。
?⑨ 方便的绘图功能 —— MATLAB的绘图是十分
方便的,它有一系列绘图函数 (命令 ),例如线
性坐标、对数坐标、半对数坐标及极坐标,均
只需调用不同的绘图画数 (命令 ),在图上标出
图题,XY轴标注,格 (栅 )绘制也只需调用相应
的命令,简单易行。另外,在调用绘图函数时
调整自变量可绘出不变颜色的点、线、复线或
多重线。这种为科学研究着想的设计是通用的
编程语言所不能及的 。
? MATLAB长于数值计算,能处理大量的数据,而且效率比
较高。 MathWorks公司在此基础上开拓了符号计算、文
字处理、可视化建模和实时控制能力,增强了 MATLAB的
市场竞争力,使 MATLAB成为市场主流的数值计算软件。
? MathWorks公司的系统设计解决方案为基于模型的系统
设计提供了从概念到应用的一套完整设计工具 ——
MATLAB产品组。 MATLAB产品组是支持从概念设计、算法
开发、建模仿真和实时实现的理想的集成环境。无论是
进行科学研究还是产品开发,MATLAB产品组都是必不可
少的工具。
3.MATLAB产品组
MATLAB产品组主要应用
? 数据分析
? 数值和符号计算
? 工程与科学绘图
? 控制系统设计
? 数字图象信号处理
? 财务工程
? 建模、仿真、原型开发
? 图形用户界面设计等
?MATLAB产品组被广泛地应用于包括信号与图像
处理, 控制系统设计, 通信, 系统仿真等诸多领
域 。 开放式的结构使 MATLAB产品组很容易针对
特定的需求进行扩充, 从而在不断深化对问题的
认识的同时, 提高自身的竞争力 。
? MATLAB产品组的一大特性是有众多的面向具
体应用的工具箱和仿真块, 包含了完整的函数集
用来对信号图像处理, 控制系统设计, 神经网络
等特殊应用进行分析和设计 。 其他的产品延伸了
MATLAB的能力, 包括数据采集, 报告生成和依
靠 MATLAB语言编程产生独立的 C/ C++代码等
等 。
MATLAB的主要产品构成是,
? ( 1) MATLAB
所有 MathWorks公司产品的数值分析和图形基础环境 。
MATLAB将 2D和 3D图形, MATLAB语言能力集成到
一个单一的, 易学易用的环境之中 。
? ( 2) MATLAB Toolbox
一系列专用的 MATLAB函数库, 解决特定领域的问题 。
工具箱是开放的可扩展的, 可以查看其中的算法, 或
开发自己的算法 。
? ( 3) MATLAB Compiler
将 MATLAB语言编写的 m文件自动转换成 C或 C++文件,
支持用户进行独立应用开发 。 结合 MathWorks提供的 C/
C++数学库和图形库, 用户可以利用 MATLAB快速地开
发出功能强大的独立应用 。
? ( 4) Simulink
结合了框图界面和交互仿真能力的非线性动态系统仿真
工具 。 它以 MATLAB的核心数学, 图形和语言为基础 。
? ( 5) Stateflow
与 Simulink框图模型相结合, 描述复杂事件驱动系统的
逻辑行为, 驱动系统在不同的模式之间进行切换 。
?( 6) Real-Time Workshop
直接从 Simulink框图自动生成 C或 Ada代码, 用于
快速原型和硬件在回路仿真, 整个代码生成可以
根据需要完全定制 。
?( 7) Simulink Blockset
专门为特定领域设计的 Simulink功能块的集合,
用 户 也 可 以 利 用 已 有 的 块 或 自 编 写 的 C 和
MATLAB程序建立自己的块 。
? MathWorks公司的系统设计解决方案为基于模型的系统
设计提供了从概念到应用的一套完整设计工具 。
MATLAB,Simulink,Stateflow,Real-Time Workshop
间的紧密集成可以使用户自由穿梭于建模, 分析, 仿真,
代码生成, 控制原型与实施之间 。 用户可以在每个设计
阶段进行不同的测试并且针对系统应用快速选取优化方
案 。
? Real-Time Workshop Embedded Coder 是 Real-Time
Workshop的扩展, 为受内存限制的离散时间系统生成 C
代码 。 Real-Time Workshop Embedded Coder是受 RAM、
ROM,CPU 所限制系统的理想工具 。 生成的代码灵活,
可靠, 高效, 易于管理并符合工业标准 。
四,simulink简介
?Simulink是 MATLAB的一个附加组件, 用来提供一
个系统的建模与动态仿真平台, 是一个进行动态
系统建模, 仿真和综合分析的集成软件包 。 它用
模块组合的方法来使用户能够快速, 准确地创建
动态系统的计算机模型, 可以处理的系统包括:
线性, 非线性系统;离散, 连续及混合系统;单
任务, 多任务离散事件系统, 特别对复杂的非线
性系统, 它的效果更明显 。
?Simulink模型可以用来模拟线性或非线性,
连续或离散或者两者的混合系统, 也就是
它可以用来模拟几乎所有可能遇到的动态
系统 。 它还支持系统是多采样率的, 即系
统的不同部分拥有不同的采样率 。 另外,
Simulink还提供一套图形动画的处理方法,
使用户可以方便地观察到仿真的整个过程 。
?对于建模, 在 SIMULINK 提供的图形用户界面
上, 只要进行鼠标的简单拖拉操作就可构造出
复杂的仿真模型 。 它外表以方块图形式呈现,
且采用分层结构 。 定义完一个模型后, 可通过
Simulink的菜单或在 MATLAB的命令窗输入命令
对它进行仿真, 然后可以借助模拟示波器或其
它的显示模块, 在运行仿真时观察到仿真的结
果 。 另外, 还可以在仿真时改变参数并且立即
就可看到有什么变化 。
?从分析研究角度讲, 这种 SIMULINK模型不仅能
让用户知道具体环节的动态细节, 而且能让用户
清晰地了解各器件, 各子系统, 各系统间的信息
交换, 掌握各部分之间的交互影响 。 另外,
Simulink没有单独的语言, 但它提供了 S函数规
则 。 S函数可以是一个 M文件, FORTRAN程序, C
或 C++语言程序等, 通过特殊的语言规则使之能
够被 Simulink模型或模块调用 。 它是 Simulink的
扩展工具, 使 Simulink更加充实, 完备, 具有更
强的处理能力 。
Simulink作为面向框图的仿真软件, 具有以下的功能:
(1)用方框图的绘制代替程序的编写 。 构成任何一个系统
框图有三个步骤, 即选定典型环节, 相互联接和给定环
节参数 。 这三步可以在一个图形界面上用鼠标和键盘来
完成 。
(2)仿真的建立和运行是智能化的 。 首先, 画好了框图并
存起来, 它就自动建立起了仿真的方程;其次, 在运行
时用户可以不给步长, 只给出要求的仿真精度, 软件会
自动选择能保证给定精度的最大步长, 使得在给定的精
度要求下系统仿真具有最快的速度 。
(3)输入输出信号来源形式的多样化 。 其输入信号可以是
各种信号发生器;也可以来自一个设定的记录文件;还
可以来自 MATLAB的工作空间 。 输出信号也类似, 这就扩
大了仿真系统与各种外部软件和硬件的接口能力 。
?Simulink模型仿真包含一系列常微分方程
(Ordinary Differential Equations ODEs)
的数值积分, Simulink工具箱为仿真提供了
许多种计算这些方程的求解器 。 由于不同动
态系统的行为差异, 所以在解决特定的问题
时, 某些求解器会比其它的更有效一些, 为
了得到精确且迅速的计算解, 应当选择合适
的解法, 并且设置合适的参数 。
?可供选择的有定步长和变步长的解法, 变步
长的解法在仿真期间会改变其步长, 它们提
供误差控制和过零点检测 。 定步长的求解器
在仿真期间采用相同的步长, 它们不提供误
差控制和过零点 。
?可供选择的变步长解法有:
ode45,ode23,ode113,ode23s和 discrete。
?可供选择的定步长解法有:
ode5,ode4,ode3,ode2,ode1和 discrete。
本章小结
? 仿真是对系统进行研究的一种实验方法,它的基本原则是
相似性原理。
? 数字仿真具有经济、安全、快捷的特点。
? 仿真是在模型上进行的,建立系统的模型是仿真的关键内
容。
? 系统模型可以分为物理模型、数学模型及仿真模型,据此
可将仿真分为物理仿真和数学仿真两大类。
? 系统、模型、计算机是数字仿真的三个基本要素,建模、
仿真实验及结果分析是三项基本内容。
? MATLAB与 SIMULINK是当今广泛为人们采用的控制系统
数字仿真与 CAD应用软件。