第八章SIMULINK交互式仿真集成环境第八章SIMULINK交互式仿真集成环境8.1快速入门8.2模型的创建8.3连续系统建模8.4子系统的创建、封装及受控执行8.5离散时间系统和混合系统8.6常用工具箱简介8.1快速入门SIMULINK是一个进行动态系统建模、仿真和综合分析的集成软件包。它可以处理的系统包括:线性、非线性系统;离散、连续及混合系统;单任务、多任务离散事件系统。在SIMULINK提供的图形用户界面GUI上,只要进行鼠标的简单拖拉操作就可构造出复杂的仿真模型。它外表以方块图形式呈现,且采用分层结构。•从建模角度讲,这既适于自上而下(Top-down)的设计流程(概念、功能、系统、子系统、直至器件),又适于自下而上(Bottum-up)逆程设计。•从分析研究角度讲,这种SIMULINK模型不仅能让用户知道具体环节的动态细节,而且能让用户清晰地了解各器件、各子系统、各系统间的信息交换,掌握各部分之间的交互影响。8.1快速入门在SIMULINK环境中,用户将观察到现实世界中非线性因素和各种随机因素对系统行为的影响。在SIMULINK环境中,用户可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化。在MATLAB5.3版中,可直接在SIMULINK环境中运作的工具包很多,已覆盖通信、控制、信号处理、DSP、电力系统等诸多领域,所涉内容专业性极强。本讲由浅入深地讲述SIMULINK对各种数学、工程问题的建模、仿真和分析的基本方法,采用“算例”作为主体,配以适量的归纳性表述。例8_1_1:信号发生器和示波器。例8_1_2:实现两个正弦信号的相乘。例8_1_1:信号发生器和示波器。返回通过这个例子,对于系统仿真工具箱的使用有一个比较具体的认识。首先从源模块库内拖出三个信号发生器模块。然后对它们分别进行设置:一个为噪声源,另外两个为正弦波,频率分别为0.2Hz和0.6Hz。接着从Simulink—Math模块库内拖出一个加法器,将它的输入端设置为三个。最后从输出模块库内拖出一个示波器。将上述五个模块连接在一起。进行系统仿真。例8_1_2:实现两个正弦信号的相乘。计算)10sin()sin()(tttx将两个正弦源的频率设置为1Hz和10Hz,信号幅度均为1V;要求显示两个正弦波以及相乘后的波形,因此要求示波器有三个输入端。进行系统仿真。仿真参数设置:•仿真时间设置:0到2s。•仿真步长设置:定步长(Fixed--Step)。•仿真算法设置:龙格--库塔法的5阶算法(ode5)。返回8.2模型的创建和模型文件8.2.1SIMULINK模型是什么?SIMULINK模型有以下几层含义:•在视觉上表现为直观的方框图;•在文件上则是扩展名为mdl的ASCII代码;•在数学上表现为一组微分方程或差分方程;•在行为上则模拟了实际系统的动态特性。SIMULINK模型通常包含三种“组件”:•信源(Sources):可以是常数、时钟、白噪声、正弦波、阶梯波、扫频信号、脉冲生成器、随机数产生器等信号源;•系统(System):即指被研究系统的SIMULINK方框图;•信宿(Sink):可以是示波器、图形记录仪等。对于具体的SIMULINK模型而,不一定完全地包含这三大组件。例如:研究初始条件对系统影响就不必包含信源组件。8.2模型的创建和模型文件8.2.2SIMULINK模型的创建创建模型文件;选择对象;模块的操作;连线的操作;常用的Source库信源常用的Sink库信宿对模型的注释;仿真的配置8.3连续系统建模线性系统建模举例例8.3-1:复位积分器的功用示例。例8.3_2:积分模块直接构造微分方程求解模型。例8.3_3:直接利用传递函数模块求解方程。在仿真启动时,积分器从零开始对0.5t进行积分。当复位口信号t-5=0瞬间,积分器被重置为零。此后,再对0.5(t-5)进行积分。假设从实际自然界(力学、电学、生态等)或社会中,抽象出有初始状态为0的二阶微分程,是单位阶跃函数。本例演示如何用积分器直接构搭求解该微分方程的模型。)(2.04.02.0tuxxx)(tu对二阶微分程进行拉氏变换:)(2.0)(4.0)(2.0)(2sUsXssXsXs4.02.02.0)()()(2sssUsXsG可以得到:例8.3-1例8.3-2例8.3-38.3连续系统建模,非线性系统8.3连续系统建模,非线性系统8.4子系统的创建、封装及受控执行利用SIMULINK的封装(Mask)功能,可以定做一个模块或一个子系统的对话框和图标。引用子系统的理由是:研究分析系统时,进行概念抽象(Abstractionofconcepts)的需要;为提高工作效率和可靠性,实施模块“重用(Reuse)”的需要。仿真建模中子系统的作用,类似于MATLAB指令运行中的M函数文件。前面介绍了如何利用库标准模块建立被研究系统的仿真模型。下面着重介绍如何利用“分层”思想建立比较复杂的仿真模型,介绍建立这种分层模型所需的各种子系统(Subsystem)。封装的一个重要用途是帮助用户创建一个对话框来接受参数。这样就无需打开子系统中各个模块的对话框,然后再逐个输入参数。8.4封装子系统的创建及受控执行8.4封装子系统的创建及受控执行8.4封装子系统的创建及受控执行8.4.2条件执行子系统在SIMULINK模块库中,有两个特殊模块:Enable模块和Trigger模块。如果把这种模块放到某个子系统中,则该子系统是否起作用将取决于外界的某个条件(状态或事件)是否满足,这样就构成了所谓的条件执行子系统(ConditionallyExecutedSubsystem)。常用的条件执行子系统有:使能子系统(EnabledSubsystem);触发子系统(TriggedSubsystem);触发使能子系统(TriggedandEnabledSubsystem)。使能子系统例8.4_3:利用使能原理构成一个半波整流器。本例演示使能子系统的创建及工作机理。(1)打开SIMULINK的新建模型窗口。(2)从SIMULINK库中提取三个模块Sinewave、Subsystem、Scope到新建窗。然后进行文件保存操作,并起文件名为exm084_3s(这保存操作只为以后调用方便,并非必要)。(3)双击空子系统模块Subsystem,打开其结构模型窗。(4)从SIMULINK库中拷贝In输入口模块、Out输出口模块、Enable使能模块到子系统的结构模型窗;把In模块的输出直接送到Out模块的输入端;Enable模块无须进行任何连接,且本例采用它的缺省设置;便实现了题目所需使能子系统。(5)完成exm084_3s窗口中各模块间的连接。(6)双击示波器模块,打开显示窗。然后选择exm084_3s窗口菜单项【Simulation:Start】,就可看到半波整流后的波形。使能子系统触发子系统把触发模块和使能模块装置在同一个子系统中,就构成触发使能子系统。该系统的行为方式与触发子系统相似,但只有当使能信号为“正”时,触发事件才起作用。触发子系统8.5离散时间系统和混合系统多速率离散时间系统:计算机就是这样的系统。它的CPU、串行/并行控制器、磁盘驱动器、输入键盘就采用不同的工作速率。再如通信系统也是多速率系统。离散-连续混合系统:在现代控制系统中,通常被控的对象是连续时间的(物理)子系统,而控制器是由逻辑控制器或计算机构成的离散子系统。对于这种离散-连续混合系统,模型参数设置页中的几乎所有Solver解算方法都能采用。可以使该模型及其所有子系统按采样速率着色:连续时间部分用黑色;离散时间部分用红色;离散、连续混合的子系统被着黄色。8.5离散时间系统和混合系统8.6常用工具箱简介具有16种功能强大的应用工具箱。我们常用工具箱有SIMULINK、COMM、DSP等。MATLAB5.3版中的16种工具箱返回1Simulink库CommunicationsBlockset(通信模块集)ControlSystemToolbox(控制系统工具箱)Dials&GaugesBlockset(面板和仪表模块集)DSPBlockset(数字信号处理模块集)Fixed-PointBlockset(定点模块集)FuzzyLogicToolbox(模糊逻辑工具箱)NCDBlockset(非线性控制设计模块集)NeuralNetworkBlockset(神经网络模块集)MPCBlockset(MPC模块集)PowerSystemBlockset(电源系统模块集)Real-TimeWindowsTarget(实时窗口目标库)Real-TimeWorkshop(实时工作空间库)Stateflow(状态流程库)SimulinkExtras(Simulink附加库)SystemIDBlockset(系统辨识模块集)Simulink库返回Sources库Sinks库Discrete库Continuous库Math库Nonlinear库Signals&Systems库Functions&Tables库Sources库返回Band-LimitedWhiteNoise(限带白噪声)ChirpSignal(扫频信号)Clock(时钟)Constant(常量)DigitalClock(数字时钟)DiscretePulseGenerator(离散脉冲生成器)FromWorkspace(从工作空间读取数据)FromFile(从文件读数据)PulseGenerator(脉冲生成器)Ramp(倾斜)RandomNumber(随机数产生器)RepeatingSequence(重复序列)Sources库(续)SignalGenerator(信号发生器)SineWave(正弦波)Step(阶跃)UniformRandomNumber(均匀分布随机数)返回Sinks库Display(显示)Scope(示波器)StopSimulation(停止仿真)ToFile(写入文件)ToWorkspace(写到工作空间)XYGraph(显示平面图形)返回Discrete库DiscreteFilter(离散滤波器)DiscreteStateSpace(离散状态空间)Discrete-TimeIntegrator(离散时间积分器)DiscreteTransferFcn(离散传递函数)DiscreteZero-Pole(数字零极点函数)First-OrderHold(一阶保持)Zero-OrderHold(零阶保持)UnitDelay(单位延迟)返回Continuous库Derivative(导数)Integrator(积分器)Memory(记忆)StateSpace(状态空间)TransferFcn(传递函数)TransportDelay(传递延迟)VariableTransportDelay(可变传输延迟)Zero-Pole(零-极点)返回Math库Abs(绝对值)AlgebraicConstraintCombinatorialLogic(组合逻辑)ComplextoMagnitude-AngleComplextoReal-ImageDotProduct(点乘)Gain(增益)LogicalOperator(逻辑运算)Magnitude--AngletoComplex()MathFunction(数学函数)MatrixGain(矩阵增益)MinMax(最大最小值)返回Math库(续)Product(乘积)Real--ImagetoComplexRelationalOperator(关系运算)RoundingFunction(圆整函数)Sign(符号)SliderGain(滑块增益)Sum(和)TrigonometricFunction(三角函数)返回Nonlinear库Backlash模块CoulombandViscousFric