1、1MATLAB语言2本章目标本章目标 了解了解SimulinkSimulink基本模块的性质基本模块的性质 掌握系统仿真的方法掌握系统仿真的方法MATLAB语言3 6.1 6.1 SimulinkSimulink与系统仿真与系统仿真 6.2 6.2 SimulinkSimulink的使用的使用 6.3 6.3 SimulinkSimulink的基本模块的基本模块 6.46.4 功能模块的处理功能模块的处理 6.56.5 设置仿真参数设置仿真参数 6.66.6 观察观察SimulinkSimulink的仿真结果的仿真结果 6.7 6.7 自定义功能模块自定义功能模块MATLAB语言46.1 6.
2、1 SimulinkSimulink与系统仿真与系统仿真SimulinkSimulink的的产生产生19901990年年MathWorksMathWorks公司为公司为MATLABMATLAB增加了用于建立系统框增加了用于建立系统框图和仿真的环境图和仿真的环境19921992年公司将该软件改名为年公司将该软件改名为SIMULINK SIMULINK SimulinkSimulink可以搭建:可以搭建:(1 1)通信系统物理层和数据链路层;)通信系统物理层和数据链路层;(2 2)动力学系统;)动力学系统;(3 3)控制系统;)控制系统;(4 4)数字信号处理系统;)数字信号处理系统;(5 5)电
3、力系统;)电力系统;(6 6)生物系统;)生物系统;(7 7)金融系统等。)金融系统等。MATLAB语言56.2 6.2 SimulinkSimulink的使用的使用1.1.SimulinkSimulink的启动的启动(1)(1)在在MATLABMATLAB的命令窗口直接键入的命令窗口直接键入simulinksimulink。(2)(2)工具栏上的工具栏上的SimulinkSimulink模块库浏览器命令按钮模块库浏览器命令按钮(3)(3)FileFile菜单中选择菜单中选择NewNew菜单项下的菜单项下的ModelModel命令命令2.2.SimulinkSimulink的退出的退出关闭所有
4、模型窗口和关闭所有模型窗口和SimulinkSimulink模块库窗口即可模块库窗口即可6.2.16.2.1启动和退出启动和退出SimulinkSimulinkMATLAB语言66.2.26.2.2建模与仿真建模与仿真建模仿真的一般过程是:建模仿真的一般过程是:打开一个空白的编辑窗口;打开一个空白的编辑窗口;将模块库中模块复制到编辑窗口里,并依照要求修改编辑将模块库中模块复制到编辑窗口里,并依照要求修改编辑窗口中模块的参数;窗口中模块的参数;将各个模块按要求连接起来;将各个模块按要求连接起来;用菜单选择或命令窗口键入命令进行仿真分析,在仿真的用菜单选择或命令窗口键入命令进行仿真分析,在仿真的同
5、时,可以观察仿真结果,如果发现有不正确的地方,可同时,可以观察仿真结果,如果发现有不正确的地方,可以停止仿真,对参数进行修正;以停止仿真,对参数进行修正;如果对结果满意,可以将模型保存。如果对结果满意,可以将模型保存。MATLAB语言7例例6_1 6_1 设计一个简单的模型,其功能是将一正弦信号设计一个简单的模型,其功能是将一正弦信号sin(2sin(2t)t)输出到示波器中。输出到示波器中。解题步骤:解题步骤:n新建一个模型窗口:新建一个模型窗口:n为模型添加所需模块:为模型添加所需模块:n连接相关模块,构成所需要的系统模型:连接相关模块,构成所需要的系统模型:n修改模块参数,进行系统仿真:
6、修改模块参数,进行系统仿真:n观察仿真结果:观察仿真结果:MATLAB语言86.3 6.3 SimulinkSimulink的基本模块的基本模块1.1.SimulinkSimulink(系统仿真模块库)(系统仿真模块库)2.2.Communications Communications BlocksetBlockset(通信模块库)(通信模块库)3.3.DSP DSP BlocksetBlockset(数字信号处理模块库)(数字信号处理模块库)4.4.Control System ToolboxControl System Toolbox(控制系统模块库)(控制系统模块库)MATLAB语言9S
7、imulinkSimulink模块库包含的子模块库模块库包含的子模块库ContinuousContinuous模块库,为仿真提供连续系统;模块库,为仿真提供连续系统;DiscontinuousDiscontinuous模块库,非连续系统元件;模块库,非连续系统元件;DiscreteDiscrete模块库,为仿真提供离散元件;模块库,为仿真提供离散元件;Math OperationsMath Operations模块库,提供数学运算功能元件;模块库,提供数学运算功能元件;Model VerificationModel Verification模块库,模型验证库;模块库,模型验证库;Ports a
8、nd SubsystemsPorts and Subsystems模块库,端口和子系统;模块库,端口和子系统;Signals AttributesSignals Attributes模块库,信号属性模块;模块库,信号属性模块;Signals RoutingSignals Routing模块库,提供用于输入、输出和控制的相模块库,提供用于输入、输出和控制的相关信号及相关处理;关信号及相关处理;SinksSinks模块库,为仿真提供输出设备元件;模块库,为仿真提供输出设备元件;SourcesSources模块库,为仿真提供各种信号源;模块库,为仿真提供各种信号源;User-defined Func
9、tionsUser-defined Functions模块库,用户自定义函数元件;模块库,用户自定义函数元件;MATLAB语言10Continuous Continuous 库库DerivativeDerivative导数导数IntegratorIntegrator积分器积分器State SpaceState Space状态空间状态空间Transfer Transfer FcnFcn传递函数传递函数 Transport DelayTransport Delay传递延迟传递延迟Variable Transport DelayVariable Transport Delay可变传输延迟可变传输延迟
10、Zero-PoleZero-Pole零零-极点极点 MATLAB语言11DiscontinuitesDiscontinuites 库库Dead ZoneDead Zone提供输出为提供输出为0 0的区域的区域QuantizerQuantizer量化器量化器以指定的间隙离散输入以指定的间隙离散输入Rate LimiterRate Limiter限制信号的速度)限制信号的速度)RelayRelay继电器继电器SaturationSaturation限幅器限幅器限制信号的变化范围限制信号的变化范围Math Math 库库AbsAbs绝对值绝对值Complex to Magnitude-Angle C
11、omplex to Magnitude-Angle 求复数的辐角和模值求复数的辐角和模值Complex to Real-Image Complex to Real-Image 求复数的实部和虚部求复数的实部和虚部Dot ProductDot Product点乘点乘GainGain增益增益Logical OperatorLogical Operator逻辑运算逻辑运算 Magnitude-Angle to ComplexMagnitude-Angle to Complex将模和辐角合成复数将模和辐角合成复数Math FunctionMath Function数学函数数学函数MATLAB语言12M
12、atrix Gain矩阵增益MinMax求输入的最大或最小值Product乘积Real-Image to Complex将实部和虚部合成复数Relational Operator关系运算Reshape整形Rounding Function取整函数Sign符号函数 Slider Gain使用滑动器改变标量增益 Sum求和 Trigonometric Function求三角函数 MATLAB语言13Sinks Sinks 库库DisplayDisplay实时数据显示实时数据显示Floating ScopeFloating Scope浮点示波器浮点示波器Out1Out1输出端口输出端口ScopeSc
13、ope示波器示波器Stop SimulationStop Simulation停止仿真停止仿真To FileTo File向文件中写入数据向文件中写入数据To WorkspaceTo Workspace向工作空间中写入数据向工作空间中写入数据XY GraphXY Graph使用使用matlabmatlab的图形窗口显示信号的的图形窗口显示信号的X-YX-Y图图MATLAB语言14Sources Sources 库库Band-Limited White NoiseBand-Limited White Noise带限白噪声带限白噪声ClockClock时钟时钟ConstantConstant常量常
14、量Digital ClockDigital Clock数字时钟数字时钟 From WorkspaceFrom Workspace从工作空间读取数据从工作空间读取数据From FileFrom File从文件读数据从文件读数据GroundGround接地接地In1In1输入端输入端Pulse GeneratorPulse Generator脉冲产生器脉冲产生器.RampRamp斜变函数斜变函数Random NumberRandom Number随机信号产生器随机信号产生器Repeating SequenceRepeating Sequence重复序列重复序列Signal GeneratorSig
15、nal Generator信号发生器信号发生器Sine WaveSine Wave正弦波正弦波StepStep阶跃信号阶跃信号Uniform Random NumberUniform Random Number均匀分布随机信号均匀分布随机信号MATLAB语言156.46.4 功能模块的处理功能模块的处理一、编辑模块一、编辑模块1.1.添加模块添加模块:左击鼠标,拖到窗口;左击鼠标,拖到窗口;右击鼠标,选择右击鼠标,选择 Add to untitledAdd to untitled2.2.选取模块选取模块单击鼠标左键,便可选中一个模块;单击鼠标左键,便可选中一个模块;选取多个模块:选取多个模块:
16、1.1.一次一个地选择:一次一个地选择:Shift+Shift+左键左键2.2.使用范围框选择使用范围框选择3.3.选择整个模型选择整个模型3.3.在模型内复制模块在模型内复制模块CopyCopy命令命令Ctrl+Ctrl+左键左键4.4.删除模块删除模块选中模块后,选中模块后,按按DeleteDelete或或BackspaceBackspace键;键;选择选择“Edit”Edit”菜单下的菜单下的“Clear”Clear”MATLAB语言16二、修饰模块二、修饰模块1.1.调整模块的大小调整模块的大小2.2.调制模块位置调制模块位置3.3.调制模块方向调制模块方向FormatFormat菜单
17、菜单Flip Block:Flip Block:旋转旋转180180FormatFormat菜单菜单Rotate Block:Rotate Block:顺时针旋转顺时针旋转90904.4.调整模块颜色和效果调整模块颜色和效果FormatFormat菜单菜单Foreground color:Foreground color:修改模块的前景颜色修改模块的前景颜色FormatFormat菜单菜单Background color:Background color:修改模块的背景颜色修改模块的背景颜色FormatFormat菜单菜单Screen color:Screen color:修改模型的背景颜色修
18、改模型的背景颜色FormatFormat菜单菜单Show drop shadow:Show drop shadow:给模块添加阴影给模块添加阴影MATLAB语言17三、模块名字处理三、模块名字处理1.1.改变模块名字改变模块名字同一模型的同一层中,不允许有两个模块同名;同一模型的同一层中,不允许有两个模块同名;模块名和模块图标中的字体可以更改模块名和模块图标中的字体可以更改:Format:Format菜单菜单FontFont2.2.改变模块名字的位置改变模块名字的位置模块名的位置有规律;模块名的位置有规律;模块名只能从原始位置移到相对位置模块名只能从原始位置移到相对位置:Format Form
19、at菜单菜单Flip NameFlip Name3.3.改变是否显示模块名改变是否显示模块名FormatFormat菜单菜单Hide/Show nameHide/Show nameMATLAB语言18四、连接线四、连接线1.1.连接两个模块连接两个模块2.2.画支线画支线将鼠标指针置于起点处,按住将鼠标指针置于起点处,按住CtrlCtrl同时按下鼠标,将同时按下鼠标,将连线拖动到目标模块连线拖动到目标模块3.3.删除连线删除连线4.4.连线的标注连线的标注五、模块参数设置五、模块参数设置1.1.打开模块参数对话框打开模块参数对话框双击模块;双击模块;在模块上单击右键,选中在模块上单击右键,选中
20、“Block Parameters”Block Parameters”2.2.模块参数对话框模块参数对话框模块功能的说明模块功能的说明模块参数的设置模块参数的设置MATLAB语言196.5 6.5 设置仿真参数设置仿真参数1.1.打开仿真参数对话框打开仿真参数对话框SimulationSimulation菜单菜单Simulation parametersSimulation parameters2.2.仿真参数对话框仿真参数对话框SolverSolver(算法算法)Data Import/ExportData Import/Export(数据输入输出)(数据输入输出)DiagnosticsDi
21、agnostics(诊断)(诊断)OptimizationOptimization(优化)(优化)Hardware ImplementationHardware Implementation(硬件工具)(硬件工具)Model ReferencingModel Referencing(模块引用)(模块引用)MATLAB语言203 3解题器(解题器(SolverSolver)选项)选项Simulation timeSimulation time:设置仿真起止时间:设置仿真起止时间Solve optionsSolve options:选择求解器,并为其指定参数。:选择求解器,并为其指定参数。变步长算
22、法(变步长算法(Variable-stepVariable-step)功能:在模拟过程中自动调节步长的大小,以满足容许误差功能:在模拟过程中自动调节步长的大小,以满足容许误差的设置与零跨越的要求。的设置与零跨越的要求。默认设置默认设置ode45ode45(四(四/五阶龙格库塔法)五阶龙格库塔法)固定步长算法(固定步长算法(Fixed-stepFixed-step)功能:在模拟过程中固定步长的大小,不会自动修改步长以功能:在模拟过程中固定步长的大小,不会自动修改步长以满足容许误差的设置与零跨越的要求。满足容许误差的设置与零跨越的要求。默认设置默认设置ode5ode5(ode45ode45的固定步
23、长版本)的固定步长版本)MATLAB语言216.66.6 观察观察SimulinkSimulink的仿真结果的仿真结果S将仿真结果信号输入到输出模块将仿真结果信号输入到输出模块“Scope”Scope”示波器、示波器、“XY Graph”XY Graph”二维二维X-YX-Y图形显示器与图形显示器与“Display”Display”数字显数字显示器,直接查看。示器,直接查看。S将仿真结果信号输入到将仿真结果信号输入到“To Workspace”To Workspace”模块中,再用模块中,再用绘图命令在绘图命令在MATLABMATLAB命令窗口里绘制出图形。命令窗口里绘制出图形。S将仿真结果信
24、号返回到将仿真结果信号返回到MATLABMATLAB命令窗口里命令窗口里,再利用绘图,再利用绘图命令绘制出图形。命令绘制出图形。MATLAB语言22例例6_2 6_2 仿真计算仿真计算y(ty(t)=sin(t)-sin(2t)=sin(t)-sin(2t)。解题步骤:解题步骤:(1 1)运行)运行SimulinkSimulink并新建一个模型窗口并新建一个模型窗口 (2 2)将所需模块添加到模型中)将所需模块添加到模型中 (3 3)编辑模块组成模型)编辑模块组成模型 (4 4)进行系统仿真参数设置)进行系统仿真参数设置 (5 5)进行系统仿真)进行系统仿真 (6 6)观察系统仿真结果)观察系
25、统仿真结果 MATLAB语言23例例6_36_3一个典型线性反馈控制系统结构如图所示,用一个典型线性反馈控制系统结构如图所示,用SimulinkSimulink求出闭环系统的阶跃响应曲线求出闭环系统的阶跃响应曲线。MATLAB语言24 6_4.6_4.已知一闭环系统如下图,系统前向通道的传递函数已知一闭环系统如下图,系统前向通道的传递函数为为G G(s s),而且有一个),而且有一个-0.2,0.5-0.2,0.5的限幅环节,图中用的限幅环节,图中用N N表表示;反馈通道的增益为示;反馈通道的增益为1.51.5,为负反馈;阶跃输入经,为负反馈;阶跃输入经1.51.5倍倍的增益作用到系统。试利用
26、的增益作用到系统。试利用SimulinkSimulink对该闭环系统进行仿对该闭环系统进行仿真,要求观测其单位阶跃响应曲线。真,要求观测其单位阶跃响应曲线。NG(s)H(s)320.5200.11220sG sssssMATLAB语言256.7 6.7 自定义功能模块自定义功能模块 方法一:方法一:在设计好一个具有某一功能的在设计好一个具有某一功能的SimulinkSimulink程序时,用鼠标程序时,用鼠标把程序中所有的功能模块都选中,然后单击鼠标右键,选把程序中所有的功能模块都选中,然后单击鼠标右键,选取右键菜单中的取右键菜单中的create subsystemcreate subsyst
27、em,则可产生一个自定义则可产生一个自定义的功能模块;的功能模块;方法二:方法二:选中选中Ports&SubsystemsPorts&Subsystems模块库中的模块库中的SubsystemSubsystem,将其复,将其复制到设计区,双击设计区的制到设计区,双击设计区的SubsystemSubsystem就会出现设计区域。就会出现设计区域。在此进行设计,并把在此进行设计,并把inin和和outout两个模块放在输入和输出端,两个模块放在输入和输出端,返回上一层设计区域,就出现一个自定义的功能模块。返回上一层设计区域,就出现一个自定义的功能模块。MATLAB语言26例例6_5 6_5 自定义
28、一个功能模块,产生函数自定义一个功能模块,产生函数 的波形。的波形。1.1.新建一个设计区,在设计区里放置所需的功能函数模块;新建一个设计区,在设计区里放置所需的功能函数模块;Clock Clock、Sine WaveSine Wave、FcnFcn、Dot ProductDot Product、ScopeScope2.2.编辑模块组成模型;编辑模块组成模型;3.3.进行系统仿真;进行系统仿真;4.4.观察系统仿真结果。观察系统仿真结果。sinxx eMATLAB语言276_66_6:利用:利用simulinksimulink求解微分方程组。求解微分方程组。MATLAB语言286_7:电路图如
29、下,电路图如下,R=1.4R=1.4欧,欧,L=2L=2亨,亨,C=0.32C=0.32法。初始状态:法。初始状态:电感电流为零,电容电压为电感电流为零,电容电压为0.5V0.5V,t=0t=0时刻接入时刻接入1V1V的电压。的电压。用用simulinksimulink求解:求解:0t15s0t15s时,时,i(t)i(t)、v vo o(t)(t)的值,并且画的值,并且画出电流出电流i(t)i(t)与电容电压与电容电压v vo o(t(t)的的关系曲线。关系曲线。Vs=1Vt=0RLC+-)(ti)(tvoMATLAB语言29sivCVvR iiL建立的微分方程组为:建立的微分方程组为:MATLAB语言306_8:Van der Pol 方程方程已知已知u=1,初始条件为:,初始条件为:x1(0)=1,x2(0)=2。试。试用用simulink解此微分方程组。解此微分方程组。1222121(1)xxxxxx