Instructor:JIANG,PING28四个例子:(1)计算下列线性方程的解:2.787.343.252.141.897.254.182.635.151.252.73.156.123.77.532.48.12.25.41.12x(2)绘制如下的图形:0.0667-0.76880.30960.9285xli1.mli2.m本课程介绍的主要功能:(1)科学计算数值计算符号表达式计算(2)图形与可视化二维图形的绘制与修饰控制三维图形的绘制特殊图形的绘制图形用户界面的开发目录前页后页(3)画出该连续系统的根轨迹。(自控P253))50)(20)(5()125.0()(20sssssKsG(4)完成以下控制系统的阶跃响应仿真曲线。li3.mli4.mdl(3)线性系统的分析与设计线性系统数学模型的表示与相互转换线性系统的时域分析线性系统的频域分析线性系统的校正(4)SIMULINK仿真环境目录前页后页6.5SIMULINK仿真环境SIMULINK仿真环境简介6.5.1SimulinkBasicsSIMULINK基础6.5.2CreatingSubsystemsandMaskingaSubsystem模块化与封装6.5.3复杂系统的综合仿真与M函数的组合仿真仿真模型的参数化从命令行运行Simulink仿真模型6.5.4WritingS-FunctionsS-function的设计目录前页后页SIMULINK仿真环境简介SIMULINK的名称表明了该系统的两个主要功能:Simu(仿真)和Link(连接),该软件是用鼠标在模型窗口上绘制出所需要的控制系统模型,然后利用SIMULINK提供的功能来对系统进行仿真和分析。目录前页后页SIMULINK是进行动态系统仿真、建模和分析的集成环境,支持线性和非线性系统,能在连续时间域、离散时间域或者二者的混合时间域里进行建模,同时它支持具有多种采样速率的系统仿真。SIMULINK与MATLAB语言的主要区别:SIMULINK与用户交互接口是基于Windows的图形化模型输入,而非语言的编程上,其结果是使得用户可以把更多的精力投入到系统模型的构建。目录前页后页所谓图形化模型输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。SIMULINK是MATLAB的进一步扩展,它不但实现了可视化的动态仿真,也实现了与MATLAB、c或者fortran甚至和硬件之间的相互数据传递,大大的扩展了它的功能。它已经成为教学和工业应用中对动态系统进行建模时采用得最广泛的软件包。目录前页后页SIMULINK中可方便利用多个工具箱,如:FuzzyLogicToolbox、NeuralNetworkBlockset、CommunicationsBlockset、SimPowerSystems等对模糊控制、神经网络、通信系统和电力系统等进行研究。6.5.1SIMULINKBasicsSIMULINK基础StartingSIMULINK启动SIMULINK目录前页后页BlockLibrary模块库CreatingaModel模型建立StartingSIMULINKOpeninganExistingModelCreatinganewmodel一、启动SIMULINK目录前页后页在MATLAB的工具栏中,按按钮就打开了模块库,是在桌面上出现一个称为SimulinkLibraryBrowser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。在MATLAB的命令窗口中键入SIMULINKStartingSIMULINKOpeninganExistingModelCreatinganewmodel目录前页后页建好的仿真模型为.mdl文件快捷按钮方式在模块库浏览器工具栏的open按钮菜单方式在FileOpen中打开;在命令窗口中直接输入模型文件名(不带扩展名)目录前页后页在模型库工具栏中点击New按钮可以creatanewmodel在MATLAB命令窗口菜单中FileNewModel,将建立一个新(空白)的模型窗口二、BlockLibrary模块库建立仿真模型,需将模型库中的模块搭接在一起以实现所需功能,所以应了解各个模块的作用。常用的模块库为以下几种:目录前页后页目录前页后页三、CreatingModels模型建立1.选择模块:打开模块库,用鼠标选中所需的模块,按住左键拖到所建的模型窗口;2.模块的操作1)选定、移动、删除、剪切和拷贝;2)标题修改:单击名称直接修改;标题显示在模块的上方FormatFlipName标题隐藏FormatHideName3)模块的翻转:FormatFlip/RotateBlock;可将模块分别旋转180/90˚。4)颜色:设定分别设定前景、背景和空白区的颜色;FormatForeground/Background/ScreenColor;5)模块内部参数修改:双击模块或点右键或Edit菜单,打开该模块的parameter对话框,进行参数修改。目录前页后页1、选择模块2、模块操作3、连线操作4、仿真参数设置5、保存模型6、运行分析结果模块的自动连接:选中源模块,按住Ctrl键点击目的模块3.连线的操作1)连接自动:选中源模块,按住Ctrl键点击目的模块手动:鼠标置于模块的输出端,出现十字光标,拖动到另一模块的输入端,就生成带箭头的连线;2)分支线:按住Ctrl键,在要分支的地方用鼠标拉出;在要分支的地方用右键拉出;由输入端拉线到分支点。3)线的弯折:按住Shift键,在要弯折的地方单击,出现小圆圈,即可随意拖动。4)线的标注:双击连线即可输入说明标签。5)线的粗细:FormatWidenonscalarlines线的粗细就会随信号而变,数值为细,向量为粗。目录前页后页4.仿真的配置(仿真方法与仿真参数的选择)选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,有四个页面来管理仿真的参数。Solver页:设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。WorkspaceI/O页:管理模型从MATLAB工作空间的输入和对它的输出。Diagnostics页:允许用户选择Simulink在仿真中显示的警告信息的等级。Advanced页:模型参数配置,优化等。目录前页后页5.保存模型模型保存为.mdl文件,可将所建的模块连接以及模块参数、仿真参数设置等都保存起来。6.仿真运行和结果分析SimulationStart或▶图标,就按仿真时间设置运行。仿真结果分析主要通过各种曲线的显示。常用的是Sink库里的Scope示波器或者输出到工作空间(ToWorkspace)去绘制曲线。目录前页后页1、连续模块(Continuous)目录前页后页3、离散模块(Discrete)2、Discontinuities(Nonlinear)非线性函数库Sinks信号接收器库Sources信号源库(1)Sources信号源库(2)User-DefinedFunctions(用户自定义模块)SimulinkExtrasSimulink库Continuous线性函数的模块库Discontinuities(Nonlinear)非线性函数库Discrete离散时间系统库Ports&Subsystems子系统和条件触发库Math一般数学函数库Signals&Systems信号与系统库Sinks信号接收器库Sources信号源库返回1、连续模块(Continuous)返回Integrator:输入信号积分Derivative:输入信号微分State-Space:线性状态空间系统模型Transfer-Fcn:线性传递函数模型Zero-Pole:以零极点表示的传递函数模型Memory:存储上一时刻的状态值TransportDelay:输入信号延时一个固定时间再输出VariableTransportDelay:输入信号延时一个可变时间再输出2、离散模块(Discrete)返回Discrete-timeIntegrator:离散时间积分器DiscreteFilter:IIR与FIR滤波器DiscreteState-Space:离散状态空间系统模型DiscreteTransfer-Fcn:离散传递函数模型DiscreteZero-Pole:以零极点表示的离散传递函数模型First-OrderHold:一阶采样和保持器Zero-OrderHold:零阶采样和保持器UnitDelay:一个采样周期的延时3、Function&Tables(函数和平台模块)Fcn:用自定义的函数(表达式)进行运算MATLABFcn:利用matlab的现有函数进行运算S-Function:调用自编的S函数的程序进行运算Look-UpTable:建立输入信号的查询表(线性峰值匹配)Look-UpTable(2-D):建立两个输入信号的查询表(线性峰值匹配)4、Math(数学模块)Sum:加减运算Product:乘运算DotProduct:点乘运算Gain:比例运算MathFunction:包括指数函数、对数函数、求平方、开根号等常用数学函数TrigonometricFunction:三角函数,包括正弦、余弦、正切等MinMax:最值运算Abs:取绝对值Sign:符号函数LogicalOperator:逻辑运算RelationalOperator:关系运算ComplextoMagnitude-Angle:由复数输入转为幅值和相角输出Magnitude-AngletoComplex:由幅值和相角输入合成复数输出ComplextoReal-Imag:由复数输入转为实部和虚部输出Real-ImagtoComplex:由实部和虚部输入合成复数输出5、Nonlinear(非线性模块)Saturation:饱和输出,让输出超过某一值时能够饱和。Relay:滞环比较器,限制输出值在某一范围内变化。Switch:开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。ManualSwitch:手动选择开关6、Signal&Systems(信号和系统模块)In1:输入端。Out1:输出端。Mux:将多个单一输入转化为一个复合输出。Demux:将一个复合输入转化为多个单一输出。Ground:连接到没有连接到的输入端。Terminator:连接到没有连接到的输出端。SubSystem:建立新的封装(Mask)功能模块7、Sinks(接收器模块)Scope:示波器。XYGraph:显示二维图形。ToWorkspace:将输出写入MATLAB的工作空间。ToFile(.mat):将输出写入数据文件。8、Sources(输入源模块)Constant:常数信号。Clock:时钟信号。FromWorkspace:来自MATLAB的工作空间。FromFile(.mat):来自数据文件。PulseGenerator:脉冲发生器。RepeatingSequence:重复信号。SignalGenerator:信号发生器,可以产生正弦、方波、锯齿波及随意波。SineWave:正弦波信号。Step:阶跃波信号。1、Solver页可以进行的设置有:选择仿真开始和结束的时间;选择解法器,并设定它的参数;选择输出项。1)仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的说来,执行一次仿真要耗费的时间