第7章SIMULINK仿真操作7.1SIMULINK简介7.2SIMULINK的基本操作7.3SIMULINK的基本模块简介7.4连续系统建模7.5子系统的创建及封装技术7.6离散时间系统和混合系统7.7SIMULINK的分析工具7.8SIMULINK综合实例7.10SimPowerSystems电力系统专业模块简介7.9S函数的设计及应用7.11小结SIMULINK是MATLAB的一个软件包,是一个结合了框图界面和交互仿真能力的系统级设计和仿真工具。它以MATLAB的核心数学、图形和语言模块为基础,可以让用户毫不费力地完成算法开发、仿真或者模型验证,而不需要传递数据、重写代码或改变软件环境。本章以“实例”为主体,加上适量的归纳性表述。读者可以通过练习实例来掌握SIMULINK的一般使用规则和操作方法。鉴于SIMULINK的本质,这些示例涉及数学、物理和若干工程考虑,让读者从这些带背景性的示例体会SIMULINK的精妙之处。7.1SIMULINK简介SIMULINK是基于MATLAB的图形化仿真环境,它使用图形化的系统模块对动态系统进行描述,并在此基础上进行动态系统的求解。利用SIMULINK对动态系统进行仿真的核心在于,MATLAB计算引擎对系统微分方程和差分方程求解。SIMULINK与MATLAB是高度集成在一起的,因此,SIMULINK与MATLAB之间可以灵活地交互操作。SIMULINK是一个进行动态系统建模、仿真和综合分析的集成软件包。它可以处理的系统包括:线性、非线性系统;离散、连续及混合系统;单任务、多任务离散事件系统。在SIMULINK提供的图形用户界面GUI上,只要进行鼠标的简单拖曳操作就可构造出复杂的仿真模型。它外表以方块图形式呈现,且采用分层结构。从分析研究角度讲,这种SIMULINK模型不仅能让用户知道具体环节的动态细节,而且能让用户清晰地了解各器件、各子系统和各系统间的信息交换,掌握各部分之间的交互影响。SIMULINK中的工具包很多,覆盖通信、控制、信号处理、DSP和电力系统等诸多领域,所涉及的内容专业性极强。由于SIMULINK是基于MATLAaB环境之上的高性能系统及仿真平台。因此,必须首先运行MATLAB,然后才能启动SIMULINK并建立系统的仿真模型。7.1.1SIMULINK的窗体介绍图7-1两种启动SIMULINK方法的图示说明图7-2Simulink库浏览器窗口7.1.2一个MATLAB/SIMULINK库自带的演示实例图7-3同步电机的演示仿真模型图7-4同步电机的演示仿真模型的运行结果7.1.3创建一个MATLAB实例图7-5模型编辑窗口中工具栏图标的作用示意图【例7-1】信号源的示波显示示例,如图7-6所示。图7-6信号源示波器显示向量波形SineWaveSignalGeneratorScopeBand-LimitedWhiteNoise图7-7Mux属性设置图7-8添加模块【例7-2】演示“求和”模块的向量处理能力:输入扩展,如图7-9所示。图7-9输入的标量扩展【例7-3】演示“增益”模块的向量处理能力:参数扩展,如图7-10所示。图7-10模块参数的标量扩展1.选择模块集(库)7.2SIMULINK的基本操作图7-11打开的SIMULINK、SimpowerSystem、SIMULINKExtras模块集示意图(1)模块的选定(2)模块的复制(3)模块大小的改变(4)模块的旋转(5)模块颜色的改变(6)模块名的操作(7)模块参数的设置(8)模块的删除2.选择模块(1)线的连接(2)线的分支(3)线的折曲(4)线的删除(5)线的标注3.连接模块的操作4.模型的注释7.3SIMULINK的基本模块简介(1)连续系统模块库(Continuous)(s-1)s(s+1)Zero-PoleVariableTransportDelayTransportDelay1s+1TransferFcnx'=Ax+Buy=Cx+DuState-Space1sIntegratordu/dtDerivative图7-12连续系统模块库(Continuous)及其功能说明(2)断续函数模块库(Discontinuouies)WrapToZeroupuloySaturationDynamicSaturationRelayupuloRateLimiterDynamicRateLimiterQuantizerHitCrossingupuloyDeadZoneDynamicDeadZoneCoulomb&ViscousFrictionBacklash图7-13断续函数模块库(Discontinuouies)及其功能说明(3)离散系统模块库(Discrete)Zero-OrderHoldWeightedMovingAveragez1UnitDelayz-0.75zTransferFcnRealZeroz-0.75z-0.95TransferFcnLeadorLag0.05zz-0.95TransferFcnFirstOrder4DelaysTappedDelayMemory-4ZIntegerDelayFirst-OrderHoldKTsz-1Discrete-TimeIntegratory(n)=Cx(n)+Du(n)x(n+1)=Ax(n)+Bu(n)DiscreteState-Space11+0.5z-1DiscreteFilterK(z-1)TszDiscreteDerivative(z-1)z(z-0.5)DiscreteZero-Pole1z+0.5DiscreteTransferFcnz-1zDifference图7-14离散系统模块库(Discrete)及其功能说明(4)数学运算模块库(Mathoperations)u+TsWeightedSampleTimeMath-uUnaryMinussinTrigonometricFunctionSumofElementsSubtract1SliderGaintSineWaveFunctionSignfloorRoundingFunctionU(:)ReshapeReImReal-ImagtoComplexProductofElementsProductP(u)O(P)=5PolynomialuRymin(u,y)MinMaxRunningResettableminMinMaxHorizCatMatrixConcatenationeuMathFunction|.|Magnitude-AngletoComplex1GainDotProductDivideRe(u)Im(u)ComplextoReal-Imag|u|uComplextoMagnitude-Angleu+0.0Biasf(z)zSolvef(z)=0AlgebraicConstraintAdd|u|Abs图7-15数学运算模块库(Mathoperations)及其功能说明(5)查表模块库(LookupTables)sin(2*pi*u)SineukfPreLookupIndexSearchLookupTable2-DT(u)LookupTable(n-D)LookupTable(2-D)xxdatydatyLookupTableDynamic2-DT(k,f)Interpolation(n-D)usingPreLookup2-DT[k]DirectLookupTable(n-D)cos(2*pi*u)Cosine图7-16查表模块库(LookupTables)及其功能说明(6)User-DefinedFunctions模块库图7-17自定义模块模块库(User-DefinedFunctions)及其功能说明S-FunctionExamplessystemS-FunctionBuildersystemS-FunctionMATLABFunctionMATLABFcnmlfileM-fileS-Functionf(u)FcnuyfcnEmbeddedMATLABFunction(7)Sink模块库图7-18Sink模块库及其功能说明1Out1XYGraphsimoutToWorkspaceuntitled.matToFileTerminatorSTOPStopSimulationScopeFloatingScope0Display(8)信号路由模块库(SignalRouting)图7-19信号路由模块库(SignalRouting)及其功能说明SwitchSelectorMultiportSwitchMergeMergeManualSwitchIndexVector{A}GotoTagVisibility[A]Goto[A]FromSimRTWOutEnvironmentControllerADataStoreWriteADataStoreReadADataStoreMemoryBusBus:=signal1BusAssignment(9)LogicandBitOperations模块库图7-20LogicandBitOperations模块库及其功能说明Vy=Vu*2^-8Qy=Qu8Ey=EuShiftArithmetic=RelationalOperatorANDLogicalOperatorupuloIntervalTestDynamicIntervalTestExtractBitsUpperHalfExtractBitsU0&NOTU/z0DetectRisePositiveU=0&NOTU/z=0DetectRiseNonnegativeU=0&NOTU/z=0DetectFallNonpositiveU0&NOTU/z0DetectFallNegativeUU/zDetectIncreaseUU/zDetectDecreaseU~=U/zDetectChange=0CompareToZero=3CompareToConstantCombinatorialLogicBitwiseAND0xD9BitwiseOperatorSetbit0BitSetClearbit0BitClear(10)Port&Subsystems模块库图7-21Port&Subsystems模块库及其功能说明1Out1while{...}In1ICOut1WhileIteratorSubsystemIn1Out1TriggeredSubsystemActionIn1Out1SwitchCaseActionSubsystemu1case[1]:default:SwitchCaseSubsystemExamplesIn1Out1SubsystemEnterModelNameModelActionIn1Out1IfActionSubsystemu1if(u10)elseIffunction()In1Out1Function-CallSubsystemf()Function-CallGeneratorfor{...}In1Out1ForIteratorSubsystemIn1Out1EnabledandTriggeredSubsystemIn1Out1EnabledSubsystemIn1Out1CodeReuseSubsystemIn1Out1AtomicSubsystem1In1(11)Sources模块库UniformRandomNumberStepSineWaveSignal1SignalBuilderSignalGeneratorRepeatingSequenceStairRepeatingSequenceInterpolatedRepeatingSequenceRandomNumberRampPulseGeneratorGrounduntitled.matFromFilesiminFromWorkspace12:34DigitalClocklimCount