MATLAB工具箱与Simulink.ppt
第七章 MATLAB工具箱与Simulink MATLAB工具箱已经成为一个系列产品,MATLAB主工具箱和各种工具箱(toolbox)。simulink 是实现动态系统建模、仿真和分析的一个集成环境,把理论研究和工程实践有机的结合在一起。1/28/20231一、工具箱简介功能型工具箱 通用型 功能型工具箱主要用来扩充MATLAB的数值计算、符号运算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能够用于多种学科。1/28/20232领域型工具箱 专用型 领域型工具箱是学科专用工具箱,其专业性很强,比如控制系统工具箱(Control System Toolbox);信号处理工具箱(Signal Processing Toolbox);财政金融工具箱(Financial Toolbox)等等。只适用于相关专业。1/28/20233MATLAB常用工具箱MATLAB Main ToolboxMATLAB主工具箱Control System Toolbox控制系统工具箱Communication Toolbox通讯工具箱Financial Toolbox财政金融工具箱System Identification Toolbox系统辨识工具箱Fuzzy Logic Toolbox模糊逻辑工具箱Higher-Order Spectral Analysis Toolbox高阶谱分析工具箱1/28/20234Image Processing Toolbox图象处理工具箱LMI Control Toolbox线性矩阵不等式工具箱Model predictive Control Toolbox模型预测控制工具箱-Analysis and Synthesis Toolbox分析工具箱Neural Network Toolbox神经网络工具箱Optimization Toolbox优化工具箱Partial Differential Toolbox偏微分方程工具箱Robust Control Toolbox鲁棒控制工具箱1/28/20235Signal Processing Toolbox信号处理工具箱Spline Toolbox样条工具箱Statistics Toolbox统计工具箱Symbolic Math Toolbox符号数学工具箱Simulink Toolbox动态仿真工具箱Wavele Toolbox小波工具箱 等等1/28/20236例如:控制系统工具箱连续系统设计和离散系统设计状态空间和传递函数以及模型转换时域响应(脉冲响应、阶跃响应、斜坡响应)频域响应(Bode图、Nyquist图)根轨迹、极点配置1/28/20237优化工具箱线型规划和二次规划求函数的最大值和最小值多目标优化约束条件下的优化非线型方程求解1/28/20238信号处理工具箱数字和模拟滤波器设计、应用及仿真谱分析和估计FFT、DCT等变换参数化模型1/28/20239学科前沿最新的工具箱 模糊控制逻辑工具箱 友好的交互设计界面,自适应神经-模糊学习、聚类 神经网络工具箱 神经网络系统具有集体运算的能力和自适应的学习能力。具有很强的容错性和鲁棒性,善于联想、综合和推广。1/28/202310 MATLAB6功能扩充的工具箱有:控制系统工具箱、图象处理工具箱、神经元网络工具箱、信号处理工具箱、simulink仿真工具箱MATLAB6新增工具箱有:虚拟现实工具箱电力系统工具箱仪器仪表控制工具箱报告编辑工具箱 1/28/202311工具箱的扩充功能:用户可以修改工具箱中的函数,更为重要的是用户可以通过编制 m文件来任意地添加工具箱中原来没有的工具函数。此功能充分体现了MATLAB语言的开发性。1/28/202312二、通用工具箱1.MATLAB主工具箱前面课程所介绍的数值计算、符号运算、绘图以及句柄绘图都是MATLAB主工具箱的内容,是MATLAB的基本部分,也是我们课程的重点。MATLAB主工具箱位于:c:MATLABtoolboxMATLAB MATLAB主工具箱是任何版本的MATLAB都不可缺少的。1/28/202313除toolboxMATLAB之外的工具箱,在比较完整的专业版MATLAB语言中有20多个工具箱。这些工具箱是需要单独选择购买的。MATLAB主工具箱共有21个函数库datafun 数据分析函数库sounds 声音处理函数库dde 动态数据交换函数库elfun 初等数学函数库specmat 特殊矩阵函数库1/28/202314elmat 初等矩阵和时间函数库funfun 函数功能和数学分析函数库general 通用命令函数库graphics 通用图形函数库iofun 底层输入输出函数库lang 语言结构函数库matfun 矩阵线性代数函数库ops 运算符和逻辑函数库plotxy 二维绘图函数库plotxyz 三维绘图函数库1/28/202315color 颜色和光照函数库polyfun 多项式函数库sparfun 稀疏矩阵函数库strfun 字符串函数库demos MATLAB演示函数库MATLAB6新增函数库:uitools 图形界面函数库datatypes 数据类型函数库graphics 句柄绘图函数库graph3d 三维绘图1/28/202316 各函数库中的函数可用help 函数库名查询,或type 函数名方法查询例:help plotxyTwo dimensional graphics.Elementary X-Y graphs.plot -Linear plot.loglog -Log-log scale plot.semilogx -Semi-log scale plot.semilogy -Semi-log scale plot.fill -Draw filled 2-D polygons.1/28/202317Specialized X-Y graphs.polar -Polar coordinate plot.bar -Bar graph.stem -Discrete sequence or stem plot.stairs -Stairstep plot.errorbar -Error bar plot.hist -Histogram plot.rose -Angle histogram pass -Compass plot.feather -Feather plot.fplot -Plot et -Comet-like trajectory.1/28/202318Graph annotation.title -Graph title.xlabel -X-axis label.ylabel -Y-axis label.text -Text annotation.gtext -Mouse placement of text.grid -Grid lines.See also PLOTXYZ,GRAPHICS.1/28/202319 help specmat compan -Companion matrix.gallery -Several small test matrices.hadamard -Hadamard matrix.hankel -Hankel matrix.hilb -Hilbert matrix.invhilb -Inverse Hilbert matrix.magic -Magic square.pascal -Pascal matrix.toeplitz -Toeplitz matrix.vander -Vandermonde matrix.1/28/2023202.符号运算工具箱主要功能以符号为对象的数学。在大学教学中,符号数学是各专业都能用到的。符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。特点:运算对象可以是没赋值的符号变量 可以获得任意精度的解1/28/202321符号运算的功能符号表达式、符号矩阵的创建符号可变精度求解符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程1/28/2023223.Simulink动态仿真工具箱simulink工具箱简介simulink 是实现动态系统建模、仿真和分析的一个集成环境,使得MATLAB的功能得到进一步扩展,它可以非常容易的实现可视化建模,把理论研究和工程实践有机的结合在一起。大部分专用工具箱只要以MATLAB主包为基础就能运行,有少数工具箱(通讯工具箱、信号处理工具箱等)则要求有simulink工具箱的支持。1/28/202323由于MATLAB和simulink是集成在一起的,因此用户可以在两种环境下对自己的模型进行仿真、分析和修改。不用命令行编程,由方框图产生m文件(s函数)当创建好的框图保存后,相应的m文件就自动生成,这个.m文件包含了该框图的所有图形及数学关系信息。框图表示比较直观,容易构造,运行速度较快。1/28/202324Simulink优点适应面广:包括线性、非线性系统;离散、连续系统结构和流程清晰:以方块图形式呈现,仿真精细、贴近实际1/28/202325simulink 的模型:simulink模型在视觉上表现为方框图,在文件上则是扩展名为m的ASCII代码(MATLAB6是扩展名为mdl的ASCII代码);在数学上体现为一组微分方程或差分方程;在行为上模拟了物理器件构成的实际系统的动态特性。simulink 的一般结构:输入系统输出1/28/202326 仿真原理当在框图视窗中进行仿真的同时,MATLAB 实际上是运行保存于simulink内存中s函数的映象文件,而不是解释运行该m文件。s函数并不是标准m文件,它m文件的一种特殊形式。结构图创建方法一个动态系统的创建过程,就是一个方框图的绘制过程1/28/202327三、工具箱和工具箱函数的查询办法1.MATLAB的目录结构目录树c:MATLABbinc:MATLABexternc:MATLABsimulinkc:MATLABtoolboxcommc:MATLABtoolboxcontrolc:MATLABtoolboxsymbolic.1/28/202328MATLABbin 该目录包含MATLAB系统运行文件,MATLAB帮助文件及一些必需的二进制文件。MATLABextern 包含MATLAB与 C,FORTRAN 语言的交互所需的函数定义和连接库。MATLABsimulink 包含建立simulink MEX-文件所必需的函数定义及接口软件。MATLABtoolbox 各种工具箱,Math Works公司提供的商品化MATLAB工具箱有30多种。toolbox目录下的子目录数量是随安装情况而变的。1/28/2023292.工具箱MATLAB toolbox工具箱在windows下由目录检索得到。也可以在MATLAB下得到,启动MATLAB后 cd_.MATLAB缺省目录是bin,回到 MATLAB目录下 cd_toolbox 1/28/202330dir 工具箱清单.compiler fixpoint lmi nag qft .control fuzzy local ncd robust ada symbolic dspblks hosa MATLAB nnet signal uitools codegen fdident ident mpc optim simulink wavelet comm finance splines pde esmutools stats 1/28/2023313.工具箱函数清单的获得所有工具箱中都有函数清单文件contents.m,可用各种方法得到工具箱函数清单 执行在线帮助命令 help 工具箱名称 列出该工具箱中contents.m的内容,显示该工具箱中所有函数清单 例如:help symbolic help optim 函数的查询:help 函数名 1/28/202332 使用type命令得到工具箱函数的清单 type signalcontents type optimcontents 如果在当前工具箱目录下可用 help contents type contents 得到该工具箱的函数清单 由于contents.m为文本文件,可以通过任何文本编辑器打开阅读 如:edit、word、写字板、记事本1/28/2023334.MATLAB函数的查阅与定位which 函数名 给函数定位例如:which laplaced:MATLAB42toolboxsymboliclaplace.mwhich fft2d:MATLAB42toolboxMATLABdatafunfft2.mwhich polyd:MATLAB42toolboxMATLABpolyfunpoly.m1/28/202334which constrd:MATLAB42toolboxoptimconstr.mwhich plotplot is a built-in function.which 命令只能定位MATLAB的外部命令,而对内部命令是无效的。MATLAB内部函数只能通过contents.m工具箱清单文件来查询1/28/202335Simulink与系统仿真Simulink的产生1990年MathWorks公司为MATLAB增加了用于建立系统框图和仿真的环境1992年公司将该软件改名为SIMULINK Simulink可以搭建:(1)通信系统物理层和数据链路层;(2)动力学系统;(3)控制系统;(4)数字信号处理系统;(5)电力系统;(6)生物系统;(7)金融系统等。1/28/202336较为流行的版本有与MATLAB5.2配用的Simulink2.2与MATLAB5.3配用的Simulink3.0与MATLAB6.0配用的Simulink4.0与MATLAB7.0配用的Simulink6.0。1/28/202337Simulink的使用1.Simulink的启动(1)在MATLAB的命令窗口直接键入simulink。(2)工具栏上的Simulink模块库浏览器命令按钮(3)File菜单中选择New菜单项下的Model命令2.Simulink的退出关闭所有模型窗口和Simulink模块库窗口即可1/28/2023381/28/202339SIMULINK的模块库介绍SIMILINK模块库按功能进行分类,包括以下8类子库:Continuous(连续模块)Discrete(离散模块)Function&Tables(函数和平台模块)Math(数学模块)Nonlinear(非线性模块)Signals&Systems(信号和系统模块)Sinks(接收器模块)Sources(输入源模块)1/28/202340建模与仿真建模仿真的一般过程是:1.打开一个空白的编辑窗口;2.将模块库中模块复制到编辑窗口里,并依照给定的框图修改编辑窗口中模块的参数;3.将各个模块按给定的框图连接起来;4.用菜单选择或命令窗口键入命令进行仿真分析,在仿真的同时,可以观察仿真结果,如果发现有不正确的地方,可以停止仿真,对参数进行修正;5.如果对结果满意,可以将模型保存。1/28/202341例1 设计一个简单的模型,其功能是将一正弦信号输出到示波器中解题步骤:(1)新建一个模型窗口:(2)为模型添加所需模块:(3)连接相关模块,构成所需要的系统模型:(4)进行系统仿真:(5)观察仿真结果:1/28/202342例1 演示1/28/202343 Simulink的基本模块1.Simulink(系统仿真模块库)2.Communications Blockset(通信模块库)3.DSP Blockset(数字信号处理模块库)4.Control System Toolbox(控制系统模块库)1/28/202344Simulink模块库包含的子模块库(1)Commonly Used Blocks模块库,为仿真提供常用元件;(2)Continuous模块库,为仿真提供连续系统;(3)Discontinuous模块库,非连续系统元件;(4)Discrete模块库,为仿真提供离散元件;(5)Logic and Bit Operations模块库,提供逻辑运算和位运算的元件;(6)Lookup Tables模块库,线形插值查表模块库;(7)Math Operations模块库,提供数学运算功能元件;(8)Model Verification模块库,模型验证库;(9)Model-Wide Utilities模块库;(10)Ports and Subsystems模块库,端口和子系统;(11)Signals Attributes模块库,信号属性模块;(12)Signals Routing模块库,提供用于输入、输出和控制的相关信号及相关处理;(13)Sinks模块库,为仿真提供输出设备元件;(14)Sources模块库,为仿真提供各种信号源;(15)User-defined Functions模块库,用户自定义函数元件;(16)Additional Math&Discrete模块库。1/28/202345 功能模块的处理基本操作包括:1.选取模块2.复制与删除模块3.模块的参数和属性设置4.模块外形的调整 5.模块名的处理6.模块的连接7.在连线上反映信息1/28/202346 设置仿真参数仿真参数对话框设置如下仿真参数:Solver(算法)Data Import/Export(数据输入输出)Diagnostics(诊断)Optimization(优化)Hardware Implementation(硬件工具)Model Referencing(模块引用)1/28/202347设置仿真参数设置仿真参数1/28/2023481解题器(解题器(Solver)选项)选项(1)Simulation time组:设置仿真起止时间。(2)Solve options组:选择求解器,并为其指定参数。变步长算法(Variable-step)固定步长算法(Fixed-step)。1/28/2023492数据输入输出选项(数据输入输出选项(Data Import/Export)主要用来设置Simulink与MATLAB工作空间交换数值的有关选项。Load from workspace(从工作空间载入数据)Save to workspace(将输出保存到工作空间)Save options(保存选项)。1/28/2023503诊断选项(Diagnostics)用于设置系统对仿真过程中,可能会出现一些非正常事件做出何种反应,有以下几种:None:不做任何反应。Warning:提出警告,但警告信息不影响程序的运行。Error:提示错误,运行的程序停止。1/28/202351观察Simulink的仿真结果观察仿真结果的方法有以下几种:将仿真结果信号输入到输出模块“Scope”示波器、“XY Graph”二维X-Y图形显示器与“Display”数字显示器中,直接查看。将仿真结果信号输入到“To Workspace”模块中,再用绘图命令在MATLAB命令窗口里绘制出图形。将仿真结果信号返回到MATLAB命令窗口里,再利用绘图命令绘制出图形。1/28/202352应用举例例 仿真计算y(t)=sin(t)-sin(2t)。解题步骤:(1)运行Simulink并新建一个模型窗口(2)将所需模块添加到模型中(3)编辑模块组成模型(4)进行系统仿真参数设置(5)进行系统仿真(6)观察系统仿真结果 1/28/202353例63演示1/28/202354