第六讲matlab工具箱matlab工具箱已经成为一个系列产品,matlab主工具箱和各种工具箱(toolbox)。一、工具箱简介•功能型工具箱——通用型功能型工具箱主要用来扩充matlab的数值计算、符号运算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能够用于多种学科。•领域型工具箱——专用型领域型工具箱是学科专用工具箱,其专业性很强,比如控制系统工具箱(ControlSystemToolbox);信号处理工具箱(SignalProcessingToolbox);财政金融工具箱(FinancialToolbox)等等。只适用于本专业。Matlab常用工具箱•MatlabMainToolbox——matlab主工具箱•ControlSystemToolbox——控制系统工具箱•CommunicationToolbox——通讯工具箱•FinancialToolbox——财政金融工具箱•SystemIdentificationToolbox——系统辨识工具箱•FuzzyLogicToolbox——模糊逻辑工具箱•Higher-OrderSpectralAnalysisToolbox——高阶谱分析工具箱•ImageProcessingToolbox——图象处理工具箱•LMIControlToolbox——线性矩阵不等式工具箱•ModelpredictiveControlToolbox——模型预测控制工具箱•μ-AnalysisandSynthesisToolbox——μ分析工具箱•NeuralNetworkToolbox——神经网络工具箱•OptimizationToolbox——优化工具箱•PartialDifferentialToolbox——偏微分方程工具箱•RobustControlToolbox——鲁棒控制工具箱•SignalProcessingToolbox——信号处理工具箱•SplineToolbox——样条工具箱•StatisticsToolbox——统计工具箱•SymbolicMathToolbox——符号数学工具箱•SimulinkToolbox——动态仿真工具箱•SystemIdentificationToolbox——系统辨识工具箱•WaveleToolbox——小波工具箱等等例如:控制系统工具箱•连续系统设计和离散系统设计•状态空间和传递函数以及模型转换•时域响应(脉冲响应、阶跃响应、斜坡响应)•频域响应(Bode图、Nyquist图)•根轨迹、极点配置优化工具箱•线型规划和二次规划•求函数的最大值和最小值•多目标优化•约束条件下的优化•非线型方程求解信号处理工具箱•数字和模拟滤波器设计、应用及仿真•谱分析和估计•FFT、DCT等变换•参数化模型学科前沿最新的工具箱模糊控制逻辑工具箱友好的交互设计界面,自适应神经-模糊学习、聚类以及Sugeno推理神经网络工具箱神经网络系统具有集体运算的能力和自适应的学习能力。具有很强的容错性和鲁棒性,善于联想、综合和推广。matlab6功能扩充的工具箱有:•控制系统工具箱、图象处理工具箱、神经元网络工具箱、信号处理工具箱、simulink仿真工具箱Matlab6新增工具箱有:•虚拟现实工具箱•电力系统工具箱•仪器仪表控制工具箱•报告编辑工具箱工具箱的扩充功能:用户可以修改工具箱中的函数,更为重要的是用户可以通过编制m文件来任意地添加工具箱中原来没有的工具函数。此功能充分体现了matlab语言的开发性。二、通用工具箱1.Matlab主工具箱•前面课程所介绍的数值计算、符号运算、绘图以及句柄绘图都是matlab主工具箱的内容,是matlab的基本部分,也是我们课程的重点。•Matlab主工具箱位于:c:\matlab\toolbox\matlab•matlab主工具箱是任何版本的matlab都不可缺少的。•除toolbox\matlab之外的工具箱,在比较完整的专业版matlab语言中有20多个工具箱。这些工具箱是需要单独选择购买的。•matlab主工具箱共有21个函数库datafun——数据分析函数库sonnds——声音处理函数库dde——动态数据交换函数库elfun——初等数学函数库specmat——特殊矩阵函数库elmat——初等矩阵和时间函数库funfun——函数功能和数学分析函数库general——通用命令函数库graphics——通用图形函数库iofun——底层输入输出函数库lang——语言结构函数库matfun——矩阵线性代数函数库ops——运算符和逻辑函数库plotxy——二维绘图函数库plotxyz——三维绘图函数库color——颜色和光照函数库polyfun——多项式函数库sparfun——稀疏矩阵函数库strfun——字符串函数库demos——matlab演示函数库matlab6新增函数库:uitools——图形界面函数库datatypes——数据类型函数库graphics——句柄绘图函数库graph3d——三维绘图各函数库中的函数可用help函数库名查询,或type函数名方法查询例:helpplotxyTwodimensionalgraphics.ElementaryX-Ygraphs.plot-Linearplot.loglog-Log-logscaleplot.semilogx-Semi-logscaleplot.semilogy-Semi-logscaleplot.fill-Drawfilled2-Dpolygons.SpecializedX-Ygraphs.polar-Polarcoordinateplot.bar-Bargraph.stem-Discretesequenceorstemplot.stairs-Stairstepplot.errorbar-Errorbarplot.hist-Histogramplot.rose-Anglehistogramplot.compass-Compassplot.feather-Featherplot.fplot-Plotfunction.comet-Comet-liketrajectory.Graphannotation.title-Graphtitle.xlabel-X-axislabel.ylabel-Y-axislabel.text-Textannotation.gtext-Mouseplacementoftext.grid-Gridlines.SeealsoPLOTXYZ,GRAPHICS.helpspecmatcompan-Companionmatrix.gallery-Severalsmalltestmatrices.hadamard-Hadamardmatrix.hankel-Hankelmatrix.hilb-Hilbertmatrix.invhilb-InverseHilbertmatrix.magic-Magicsquare.pascal-Pascalmatrix.toeplitz-Toeplitzmatrix.vander-Vandermondematrix.2.符号运算工具箱•主要功能以符号为对象的数学。•在大学教学中,符号数学是各专业都能用到的。•符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。•特点:运算对象可以是没赋值的符号变量可以获得任意精度的解符号运算的功能•符号表达式、符号矩阵的创建•符号可变精度求解•符号线性代数•因式分解、展开和简化•符号代数方程求解•符号微积分•符号微分方程例如:z='a*t^2+b*t+c';r=solve(z,‘t’)——对缺省变量求解r=[1/2/a*(-b+(b^2-4*a*c)^(1/2))][1/2/a*(-b-(b^2-4*a*c)^(1/2))]对任意变量求解r=solve(z,'b')r=-(a*t^2+c)/tr=solve(z,'c')r=-a*t^2-b*tr=solve(z,'a')r=-(b*t+c)/t^23.Simulink动态仿真工具箱simulink工具箱简介•simulink是实现动态系统建模、仿真和分析的一个集成环境,使得matlab的功能得到进一步扩展,它可以非常容易的实现可视化建模,把理论研究和工程实践有机的结合在一起。•大部分专用工具箱只要以matlab主包为基础就能运行,有少数工具箱(通讯工具箱、信号处理工具箱等)则要求有simulink工具箱的支持。•由于matlab和simulink是集成在一起的,因此用户可以在两种环境下对自己的模型进行仿真、分析和修改。•不用命令行编程,由方框图产生m文件(s函数)•当创建好的框图保存后,相应的m文件就自动生成,这个.m文件包含了该框图的所有图形及数学关系信息。•框图表示比较直观,容易构造,运行速度较快。Simulink优点•适应面广:包括线性、非线性系统;离散、连续系统•结构和流程清晰:以方块图形式呈现,•仿真精细、贴近实际simulink的模型:simulink模型在视觉上表现为方框图,在文件上则是扩展名为m的ASCII代码(matlab6是扩展名为mdl的ASCII代码);在数学上体现为一组微分方程或差分方程;在行为上模拟了物理器件构成的实际系统的动态特性。simulink的一般结构:输入系统输出仿真原理•当在框图视窗中进行仿真的同时,matlab实际上是运行保存于simulink内存中s函数的映象文件,而不是解释运行该m文件。•s函数并不是标准m文件,它m文件的一种特殊形式。结构图创建方法•一个动态系统的创建过程,就是一个方框图的绘制过程•具体步骤:•在matlab命令窗口键入simulink信号源库离散模块库非线性模块库其它模块库仿真连接模块库线性模块库输出模块库•选则Fine菜单New选项,出现一个新窗口,即可绘制结构图。例:模拟一个微分方程x=-2x+uuxx-2x..•方框图绘制完毕,一个动态系统模型也就创建好了。•选择File菜单Save保存图形,就自动生成一个可在matlab命令窗口运行的m文件。•然后就可用simulation菜单中start开始仿真了。仿真结果:[t,x,y]=sim('sim5',20);plot(t,y)plot(t,yout)三、工具箱和工具箱函数的查询办法1.matlab的目录结构•目录树c:\matlab\binc:\matlab\externc:\matlab\simulinkc:\matlab\toolbox\comm\c:\matlab\toolbox\control\c:\matlab\toolbox\symbolic\...•matlab\bin——该目录包含matlab系统运行文件,matlab帮助文件及一些必需的二进制文件。•matlab\extern——包含MATLAB与C,FORTRAN语言的交互所需的函数定义和连接库。•matlab\simulink——包含建立simulinkMEX-文件所必需的函数定义及接口软件。•matlab\toolbox——各种工具箱,MathWorks公司提供的商品化matlab工具箱有30多种。toolbox目录下的子目录数量是随安装情况而变的。2.工具箱•matlabtoolbox工具箱在windows下由目录检索得到。•也可以在matlab下得到,启动matlab后cd_..——matlab缺省目录是bin,回到matlab目录下cd_toolboxdir——工具箱清单.compilerfixpointlminagqft..controlfuzzylocalncdrobustadasymbolicdspblkshosamatlabnnetsignaluitoolscodegenfdidentidentmpcoptimsimulinkwaveletcommfinancesplinespdeesmutoolsstats3.工具箱函数清单的获得•所有工具箱中都有函数清单文件contents.m,可用