第一讲 Simulink建模与仿真基础_第1页
第一讲 Simulink建模与仿真基础_第2页
第一讲 Simulink建模与仿真基础_第3页
第一讲 Simulink建模与仿真基础_第4页
第一讲 Simulink建模与仿真基础_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电气工程学院朱学贵Simulink-从仿真走进现实0-初识Simulink——

一个简单的仿真实例在MATLAB的命令窗口输入Simulink,或单击MATLAB主窗口工具栏上的“Simulink”命令按钮即可启动Simulink。Simulink启动后会显示如图所示的Simulink模块库浏览器(SimulinkLibraryBrowser)窗口。1.模型元素一个典型的Simulinnk模型包括以下3种元素。● 信号源(Source)● 被模拟的系统模块● 信号输出(Sink)2.仿真步骤(1)建立系统仿真模型,包括添加模块、设置模块参数、进行模块连接等操作。(2)设置仿真参数。(3)启动仿真并分析仿真结果。3.仿真实例利用Simulink仿真曲线。正弦信号由信号源模块库(Sources)中的SineWave模块提供,求和用数学运算模块库(MathOperations)中的数学函数模块(Add)产生,再用信号输出模块库(Sinks)中的示波器模块(Scope)输出波形(1)打开一个名为untitled的模型编辑窗口(2)将所需模块添加到模型中。(3)用连线将各个模块连接起来组成系统仿真模型(4)设置模块参数并连接各个模块组成仿真模型。模型建好后,将模型以模型文件的格式(扩展名为.mdl)存盘。(5)设置系统仿真参数。(6)仿真操作。主要内容第一讲Simulink建模与仿真基础第二讲子系统封装技术与S_function基础第三讲Simulink在研究中的应用Simulink简介Simulink能做什么?模块介绍建模参数设置仿真练习第一讲Simulink建模与仿真基础1.1Simulink简介并行计算ParallelComputingToolboxMATLABDistributedComputingServer数学、统计与优化SymbolicMathToolboxPartialDifferentialEquationToolboxStatisticsToolboxCurveFittingToolboxOptimizationToolboxGlobalOptimizationToolboxNeuralNetworkToolboxModel-BasedCalibrationToolbox控制系统设计与分析ControlSystemToolboxSystemIdentificationToolboxFuzzyLogicToolboxRobustControlToolboxModelPredictiveControlToolboxAerospaceToolbox代码生成和验证MATLABCoderHDLCoderHDLVerifierFilterDesignHDLCoder应用发布MATLABCompilerMATLABBuilderNE(forMicrosoft.NETFramework)MATLABBuilderJA(forJavalanguage)MATLABBuilderEX(forMicrosoftExcel)SpreadsheetLinkEX(forMicrosoftExcel)MATLABProductionServer数据库访问与报告DatabaseToolboxMATLABReportGenerator

计算金融FinancialToolboxEconometricsToolboxDatafeedToolboxDatabaseToolboxSpreadsheetLinkEX(forMicrosoftExcel)FinancialInstrumentsToolbox计算生物BioinformaticsToolboxSimBiology

信号处理与通信SignalProcessingToolboxDSPSystemToolboxCommunicationsSystemToolboxWaveletToolboxFixed-PointToolboxRFToolboxPhasedArraySystemToolbox图像处理与计算机视觉ImageProcessingToolboxComputerVisionSystemToolboxImageAcquisitionToolboxMappingToolbox测试&测量DataAcquisitionToolboxInstrumentControlToolboxImageAcquisitionToolboxOPCToolboxVehicleNetworkToolbox

MATLAB家族产品定点建模SimulinkFixedPoint基于事件的建模Stateflow

SimEvents

物理建模Simscape

SimMechanics

SimDriveline

SimHydraulics

SimRF

SimElectronics

SimPowerSystems

快速原型和硬件再回路仿真xPCTargetxPCTargetEmbeddedOptionReal-TimeWindowsTarget验证、确认和测试SimulinkVerificationandValidationSimulinkDesignVerifierSystemTest

SimulinkCodeInspectorHDLVerifier仿真绘图与报告Simulink3DAnimationGaugesBlockset

SimulinkReportGenerator

控制系统设计与分析SimulinkControlDesignSimulinkDesignOptimizationAerospaceBlockset

信号处理与通信DSPSystemToolboxCommunicationsSystemToolboxSimRF

ComputerVisionSystemToolbox代码生成SimulinkCoderEmbeddedCoderHDLCoderSimulinkPLCCoderDOQualificationKit(forDO-178)IECCertificationKit(forISO26262andIEC61508)

Simulink家族产品Simulink的产生在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,则很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真。1990年,MathWorks软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具,并命名为SIMULAB,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。但因其名字与当时比较著名的软件SIMULA类似,所以1992年正式将该软件更名为SIMULINK。

Simulink含两层含义:“Simu”表示仿真(simulation);而link表示它能够进行系统连接,即:把一系列模块连接起来,构成复杂的系统模型。正是由于它的这些功能和特色,使得它成为计算机仿真领域首选的仿真环境。SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。近年学术文献中包含matlab的发文篇数合计41万篇,其中人文社会科学约2600篇、经济与管理科学约2.6万篇,更多用于工程科学、自然科学变化趋势更多文章对于MATLAB“用而不说”,实际应用量比统计大得多,特别是高水平文章计算机硬件和软件的发展为MATLAB广泛深入应用提供了条件统计数量增幅放缓,原因之一是现在对软件本身的关注降低,更注重软件的应用效果预计未来关于MATLAB的直接引用量保持现状,但会象我们离不开OFFICE一样,MATLAB正在成为我们研究中的必备工具。MATLAB可以作为一个最简单的数字计算器,也可以成为一个富有灵性的科研秘书!关键在于我们如何利用!软件本身

可视化、模块化、层次化、开放性对于我们

简在各取所需

难在要求专业功底深、操作性强、与现实脱节,走不出仿真的怪圈。1.2Simulink特点Simulink1)是MATLAB的重要组成部分;2)面向结构图方式的仿真环境;3)作为系统建模和仿真的工具。Simulink主要功能1)实现动态系统建模、仿真与分析;2)预先对系统进行仿真与分析,做适当的实时修改,达到仿真的最佳效果;3)调试及整定控制系统的参数,以提高系统的性能;4)提高开发系统的效率。Simulink可以搭建:(1)通信系统物理层和数据链路层;(2)动力学系统;(3)控制系统;(4)数字信号处理系统;(5)电力系统;(6)生物系统;(7)金融系统等。1.3

Simulink能做什么?A.Simulink的启动:打开Simulink库浏览器(1)用命令行方式启动Simulink。即在MATLAB的命令窗口中直接键入如下命令: >>simulink(2)用工具栏按钮启动Simulink。用鼠标单击MATLAB工具栏中Simulink按钮。(3)在MATLAB命令窗口中输入simulink3,结果是在桌面上出现一个用图标形式显示的Library:simulink3的Simulink模块库窗口。1.4Simulink的工作流程?A.

Simulink的启动:打开Simulink的空白模型窗(1)MATLAB命令窗口选择“File”—“New”—“Model”命令(2)单击“Simulink”工具栏中“新建模型”图标。(3)在Simulink命令窗口选择“File”—“New”—“Model”命B.利用Simulink进行系统仿真的步骤是:启动Simulink,打开Simulink模块库打开空白模型窗口;建立Smulink仿真模型;设置仿真参数,进行仿真;输出仿真结果。C.Simulink的退出关闭所有模型窗口和Simulink模块库窗口即可启动Simulink,建立系统模型的基本操作Simulink的仿真模型窗口界面由标题、功能菜单和用户模型编辑区三部分组成。在用户模型编辑区中,用户可以建立、编辑系统仿真模型的结构图。结构图中所需要的模块可直接从Simulink库浏览器窗口中拖拽复制。当用户完成Simulink系统模型的编辑之后,需要设置模块参数和系统仿真参数,最后就可以进行系统仿真。图

Simulink的模块库浏览器

Simulink的模块库能够对系统模块进行有效的管理与组织,使用Simulink模块库浏览器可按照类型选择合适的系统模块、获得系统模块的简单描述以及查找系统模块等,并可直接将模块库中的模块拖动或者拷贝到用户的系统模型中以构建动态系统模型。1.5Simulink的模块库-LibraryBrowser通用用户模块组连续系统模块组非连续系统模块组离散系统模块组逻辑和位操作模块组查表模块组数学运算模块组模型检测模块组模块库功能说明模块库功能说明模型扩充模块组端口和子系统模块组信号特征模块组信号线路模块组输出/接收器模块组输入/信号源模块组用户自定义模块组附加数学与离散模块组信号源模块组输出模块组连续系统模块组离散系统模块组数学运算模块组查表模块组非连续系统模块组信号线路模块组端口与子系统模块组逻辑与位操作模块组模型检测模块组模型扩充模块组信号属性模块组用户自定义函数模块组分别介绍各类基本模块的功能连续系统模块组输入信号微分输入信号积分状态空间系统模型传递函数模型输入信号固定延时输入信号可变延时零极点模型输入信号定义延迟时间模块功能说明4).传递函数模块(TransferFcn)功能:用执行一个线性传递函数。5).零极点传递函数模块(Zero-Pole)功能:用于建立一个预先指定的零点、极点,并用延迟算子s表示的连续。6).存储器模块(Memory)功能:保持输出前一步的输入值。7).传输延迟模块(TransportDelay)功能:用于将输入端的信号延迟指定的时间后再传输给输出信号。8).可变传输延迟模块(VariableTransportDelay)功能:用于将输入端的信号进行可变时间的延迟。1).积分模块(Integrator):功能:对输入变量进行积分。说明:模块的输入可以是标量,也可以是矢量;输入信号的维数必须与输入信号保持一致。2).微分模块(Derivative)功能:通过计算差分∆u/∆t近似计算输入变量的微分。3).线性状态空间模块(State-Space)功能:用于实现以下数学方程描述的系统:磁滞回环库仑及粘性摩擦死区非线性动态死区非线性捕获穿越点/冲击非线性量化非线性速度限制/信号变化率限制动态限速/信号变化率动态限制继电器模块/滞环比较器饱和输出动态饱和输出归零模块/阈值过限清零

非连续系统模块组模块功能说明1.比率限幅模块(RateLimiter)功能:用于限制输入信号的一阶导数,使得信号的变化率不超过规定的限制值。2.饱和度模块(Saturation)功能:用于设置输入信号的上下饱和度,即上下限的值,来约束输出值。3.量化模块(Quantizer)功能:用于把输入信号由平滑状态变成台阶状态。4.死区输出模块(DeadZone)功能:在规定的区内没有输出值。5.继电模块(Relay)功能:继电模块(Relay)用于实现在两个不同常数值之间进行切换。6.选择开关模块(Switch)功能:根据设置的门限来确定系统的输出。差分环节离散微分环节离散滤波器离散状态空间离散传递函数离散零极点模型离散时间积分器一阶保持器整数延时离散系统模块组

模块功能说明输出上一步的输出值延时离散一阶传递函数离散传递函数离散零点传递函数单位采样周期的延时权重移动平均零阶保持器离散系统模块组

模块功能说明2.单位延迟模块(UnitDelay)功能:将输入信号作单位延迟,并且保持一个采样周期相当于时间算子z-1

。3.离散时间积分模块(DiscreteTimeIntegrator)功能:在构造完全离散的系统时,代替连续积分的功能。使用的积分方法有:向前欧拉法、向后欧拉法、梯形法。4.离散状态空间模块(DiscreteStateSpace)功能:用于实现如下数学方程描述的系统:5.离散滤波器模块(DiscreteFilter)功能:用于实现无限脉冲响应(IIR)和有限脉冲响应(FIR)的数字滤波器。6.离散传递函数模块(DiscreteTransferFcn)功能:用于执行一个离散传递函数。7.离散零极点传递函数模块(DiscreteZero-Pole)功能:用于建立一个预先指定的零点、极点,并用延迟算子z-1表示的离散系统。8.一阶保持器模块(FirstOrderHold)功能:在一定时间间隔内保持一阶采样。1.零阶保持器模块(Zero-Order-Hold)功能:在一个步长内将输出的值保持在同一个值上。绝对值加法代数约束赋值偏重复数转化为幅值和相角形式复数转化为实部和虚部形式除法点乘增益运算输入幅值和相角形式合成复数数学运算模块组模块功能说明常用数学函数矩阵串联最值运算函数最大最小值运算函数按指定顺序改变数组维数多项式函数乘法运算元素乘法运算输入实部和虚部形式合成复数信号维数改变取整运算

数学运算模块组模块功能说明符号函数正弦波函数增益可变函数若多维数组中某一维元素只有一则移出该维减法函数求和元素求和函数三角函数一元减法函数矩阵连接权重采样时间计算

数学运算模块组模块功能说明3.矢量的点乘模块(DotProduct)功能:矢量的点乘模块(DotProduct)用于实现输入信号的点积运算。4.增益模块(Gain)功能:增益模块(Gain)的作用是把输入信号乘以一个指定的增益因子,使输入产生增益。1.求和模块(Sum)功能:求和模块(Sum)用于对多路输入信号进行求和运算,并输出结果。2.乘法模块(Product)功能:乘法模块(Product)用于实现对多路输入的乘积、商、矩阵乘法或者模块的转置等。5.常用数学函数模块(MathFunction)功能:用于执行多个通用数学函数,其中包含exp、log、log10、square、sqrt、pow、reciprocal、hypot、rem、mod等。6.三角函数模块(TrigonometricFunction)功能:用于对输入信号进行三角函数运算,共有10种三角函数供选择。7.特殊数学模块特殊数学模块中包括求最大最小值模块(MinMax)、取绝对值模块(Abs)、符号函数模块(Sign)、取整数函数模块(RoundingFunction)等。8.数字逻辑函数模块数字逻辑函数模块包括复合逻辑模块(CombinationalLogic)、逻辑运算符模块(LogicalOperator)、位逻辑运算符模块(BitwiseLogicalOperator)等。9.关系运算模块(RelationalOperator)

关系符号包括:==(等于)、≠(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)等。10.复数运算模块复数运算模块包括计算复数的模与幅角(ComplextoMagnitude-Angle)、由模和幅角计算复数(Magnitude-AngletoComplex)、提取复数实部与虚部模块(ComplextoRealandImage)、由复数实部和虚部计算复数(RealandImagetoComplex)。数字显示浮动示波器输出端口示波器仿真停止信号终结端将数据写入文件保存将数据写入工作空间显示二维图形

输出模块组

模块功能说明1.示波器模块(Scope)功能:显示在仿真过程中产生的输出信号,用于在示波器中显示输入信号与仿真时间的关系曲线,仿真时间为x轴。2.二维信号显示模块(XYGraph)功能:在MATLAB的图形窗口中显示一个二维信号图,并将两路信号分别作为示波器坐标的x轴与y轴,同时把它们之间的关系图形显示出来。3.显示模块(Display)功能:按照一定的格式显示输入信号的值。可供选择的输出格式包括:short、long、short_e、long_e、bank等。4.输出到文件模块(ToFile)功能:按照矩阵的形式把输入信号保存到一个指定的MAT文件。第一行为仿真时间,余下的行则是输入数据,一个数据点是输入矢量的一个分量。5.输出到工作空间模块(ToWorkspace)功能:把信号保存到MATLAB的当前工作空间,是另一种输出方式。6.终止信号模块(Terminator)功能:中断一个未连接的信号输出端口。7.结束仿真模块(Stopsimulation)功能:停止仿真过程。当输入为非零时,停止系统仿真。带宽限幅白噪声频率递增正弦波仿真时间常数无限计数器有限计数器在规定的采样间隔产生仿真时间来源为数据文件来源为MATLAB的工作空间接地端口输入信号端口信号源模块组模块功能说明脉冲发生器斜坡信号产生正态分布的随机数生产规律性重复信号重复序列内插值重复阶梯序列创建信号普通信号源发生器正弦信号阶跃信号均匀分布随机数信号源模块组模块功能说明1.输入常数模块(Constant)功能:产生一个常数。该常数可以是实数,也可以是复数。2.信号源发生器模块(SignalGenerator)功能:产生不同的信号,其中包括:正弦波、方波、锯齿波信号。3.从文件读取信号模块(FromFile)功能:从一个MAT文件中读取信号,读取的信号为一个矩阵,其矩阵的格式与ToFile模块中介绍的矩阵格式相同。如果矩阵在同一采样时间有两个或者更多的列,则数据点的输出应该是首次出现的列。4.从工作空间读取信号模块(FromWorkspace)功能:从MATLAB工作空间读取信号作为当前的输入信号。5.随机数模块(RandomNumber)功能:产生正态分布的随机数,默认的随机数是期望为0,方差为1的标准正态分布量。6.带宽限制白噪声模块(BandLimitedWhiteNoise)功能:实现对连续或者混杂系统的白噪声输入。余弦函数查询表直接n维信号查表n维插值一维查表二维查表n维信号查表动态查询表预查询索引搜寻正弦函数查询表查表模块组

模块功能说明1.一维查表模块(Look-UpTable)

一维查表模块(Look-UpTable)实现对单路输入信号的查表和线性插值。2.二维查表模块(Look-UpTable2-D)功能:根据给定的二维平面网格上的高度值,把输入的两个变量经过查表、插值,计算出模块的输出值,并返回这个值。说明:对二维输入信号进行分段线性变换。3.自定义函数模块(Fcn)功能:用于将输入信号进行指定的函数运算,最后计算出模块的输出值。说明:输入的数学表达式应符合C语言编程规范;与MATLAB中的表达式有所不同,不能完成矩阵运算。4.MATLAB函数模块(MATLABFcn)功能:对输入信号进行MATLAB函数及表达式的处理。说明:模块为单输入模块;能够完成矩阵运算。注意:从运算速度角度,Mathfunction模块要比Fcn模块慢。当需要提高速度时,可以考虑采用Fcn

或者S函数模块。5.S-函数模块(S-Function)功能:按照Simulink标准,编写用户自己的Simulink函数。它能够将MATLAB语句、C语言等编写的函数放在Simulink模块中运行,最后计算模块的输出值。信号总线分配器信号总线生成器信号总线选择器数据存储数据存储读取数据存储写入分路器环境控制器读矩阵

信号线路模块组

模块功能说明写矩阵标签可视化索引向量手动选择开关信号合并在多输入中选择一输出的开关混路器选路器多路开关

信号线路模块组模块功能说明结构子系统单元子系统代码重用子系统使能使能和触发子系统使能子系统For循环控制子系统函数响应生成函数响应子系统条件操作If语句作用子系统

端口与子系统模块组模块功能说明输入端口模型输出端口子系统子系统样例条件选择Switch语句作用子系统触发操作触发子系统While循环控制系统

模块功能说明端口与子系统模块组位清零置位逐位操作组合逻辑与常量比较与零比较检测突变检测递减检测负下降沿检测非负下降沿逻辑与位操作模块组模块功能说明检测递增检测非负上升沿检测正上升沿提取位检测开区间动态检测开区间逻辑运算关系运算算术平移逻辑与位操作模块组模块功能说明参数确定检测离散的斜率检测动态区间范围检测动态下限检测动态变化范围检测动态上限检测分辨率检测静态区间范围检测静态下限检测静态变化范围检测静态上限模型检测模块组模块功能说明模块支持表文档模块模型信息基于时间的线性分析触发线性分析

模型扩充模块组

模块功能说明多路信号转化向量数据类型转换继承数据类型转换数据类型复制数据类型传送数据类型传送样例数据类型缩放信号属性模块组

模块功能说明显示信号初始状态信号探测比率变换信号转换信号特性检测权重采样时间信号带宽检测

信号属性模块组

模块功能说明嵌入MATLAB函数用户自定义函数M文件的S函数现有函数调用S函数建立S函数S函数样例

用户自定义函数模块组模块功能说明Simulink其他工具箱模块组

除了基本的模块组以外,还有许多其他工具箱模块组。包括:AerospaceBlockset航空航天模块库、CDMAReferenceBlockset

码分多址参考模块库、Comunications

Blockset通讯模块库、ControlSystemToolbox控制系统工具箱、Dials&GaugesBlockset刻度盘及量表模块库、FuzzyLogicToolbox模糊逻辑工具箱、ModelPredictiveControlToolbox模型预测控制工具箱、NeuralNetworkBlockset神经网络模块库、RFBlockset射频模块库、SignalProcessingBlockset信号处理模块、SimMechanics、SimPowerSystems、SimulinkControlDesign、SimulinkParameterEstimation参数估计、SimulinkResponseOptimization响应优化、VirtureReality等等。这些模块组或工具箱都是针对各领域的专用工具模块。

对于自动控制系统仿真,最常用的是以下几个:ControlSystemToolbox控制系统工具箱、FuzzyLogicToolbox模糊逻辑工具箱、ModelPredictiveControlToolbox模型预测控制工具箱、NeuralNetworkBlockset神经网络模块库、SignalProcessingBlockset信号处理模块、SimMechanics仿真机理、SimPowerSystems仿真动力系统

、SimulinkControlDesign“Simulink的控制设计”、SimulinkParameterEstimation“Simulink的参数估计”等。

SIMULINK专业模块库与模型窗口Simulink模块库

通信模块集

控制系统工具箱

DSP(数字信号处理)模块集

定点模块集

模糊逻辑工具箱

神经网络模块集

功率系统模块集

实时工作空间库

S-函数示例Simulink附加库

系统辨识模块集虚拟现实工具箱Simulink建模方法简介在SimulinkLibraryBrowser的库中选择了所需要的模块以后,可以将模块拖拽到模型窗口中,这样就建立了一个Simulink模型。例如:

1.6Simulink建模控制系统动态结构图模型建立1.模型窗口的建立2.模块的创建与操作(1)创建模块

(2)模块操作1)模块的选择

基本操作包括:1).模块的选择2).模块复制3).模块的旋转与翻转4).模块的连接5).模块的插入6).模块的名称操作2)模块复制

①在选定模块处,按住鼠标右键并拖动至适当位置②选定模块,在工具栏中选择“Copy”与“Paste”按钮④按住“Ctrl”键,按下鼠标左键,将选定的模块拖动至适当的位置。③在选定的模块处点击鼠标右键,在弹出的菜单中选择“Copy”与“Paste”选项3)模块的旋转与翻转旋转翻转4)模块的连接。

5)模块的插入

6)模块的名称操作

(3)连接分支线

(4)连接线的折曲和折点的移动连接线折曲:选中已存在的连接线,将鼠标指针指到待折处,先按住“Shift”键,再按下鼠标左键,拖动至合适处,释放鼠标左键。折点移动:选中折线,将鼠标指针指到待移动的折点处,当鼠标指针变为一个小圆圈时,按下鼠标左键并拖动折点至希望处,释放鼠标左键。3.模块内部参数的修正1)传递函数的分子、分母多项式系数行向量的输入,是按降幂排列的顺序从高到低依次输入。2)如多项式缺项,必须将对应系数0输入,不能遗漏。3)在参数设置时,任何MATLAB工作内存中已有的变量、合法表达式、MATLAB语句等都可以填写在编辑框中。4)模块图标的大小是可以用鼠标操作调整的。因此假如传递函数表达式太长,原方框容纳不下,可以用鼠标把它拉到适当的大小,使整个方框图图标美观易读。值得指出的几点是:4.模型文件的保存5.结构图模型的建立举例例

某一单位反馈系统的开环传递函数为试绘制其系统结构图模型,并以“sy1”文件名保存。运行Simulink模型之前,如果不采用系统默认参数,就必须对各种仿真参数进行设置,尤其对复杂系统的仿真,仿真参数的合理设置尤为重要。

解算器(Solver)设置仿真数据输入/输出(DataImport/Export)设置仿真优化(Optimization)设置诊断参数(Diagnostics)设置硬件实现(HardwareImplementation)设置模型引用(ModelReferencing)设置实时代码生成工具(Real-TimeWorkshop)设置

包括1.7仿真算法与控制参数选择1.参数设置

缺省时,Simulink的算法为变步长ode45,仿真时间为:起始0秒,终止10秒。从菜单栏Simulation→ConfigurationParameters,或直接按快捷键“Ctrl+E”可以打开这一界面,根据自己的要求,重新进行设置。(1)Solver(解题器)参数设置(2)DataImport/Export(数据输入、输出)参数设置(3)Diagnostics(诊断)参数设置

(4)HardwareImplementation(硬件实现)参数设置(5)Modelreferencing(模型参考)设置(6)Real-Timeworkshop(实时工作间)参数设置基本的参数设置:(1)解算器(Solver)设置

解算器设置是进行仿真工作前必须的步骤,如何设定参数是根据解决问题的要求而决定的,以便使Simulink发挥最佳的仿真效果。

解算器仿真时间仿真解法误差容忍度输出设置“Startime”:仿真的起始时间,单位是“秒”“Stoptime”:仿真的停止时间,单位是“秒”1)“Simulationtime”选项组:用于设置仿真时间系统实际运行时间与设置输入的时间“秒”数不会一致,因为时间运行时间与计算机的性能、模型复杂程度、解题所选择的算法及步长、要解决问题的误差要求等诸多因素有关。2)“Solveroptions”选项组:用于选择算法的操作,选择框,

可变步长仿真算法

type│Variable-step(可变步长)Fixed-step(固定步长)固定步长仿真算法

仿真解法变步长解法定步长解法discrere:针对无连续状态系统的特殊解法ode45:基于Dormand-Prince4-5阶的Runge-Kutta公式ode23:基于Bogachi-Shampine2-3阶的Runge-Kutta公式ode113:变阶次Adams-Bashforth-Moulton解法(差分代替2阶导数,亚当斯-巴什福思

-莫尔顿)ode15s:钢性系统的变阶次多步解法ode23s:钢性系统的固定阶次单步解法discrere:针对无连续状态系统的特殊解法ode5:ode45确定步长的函数解法ode4:使用固定步长的经典4阶的Runge-Kutta公式的函数解法ode3:ode25的确定步长的函数解法ode2:使用固定步长的经典2阶的Runge-Kutta公式的函数解法ode1:固定步长的Euler解法①“Relativetolerance”(相对误差):指误差相对于状态的值,是一个百分比,默认值为1e-3,表示状态的计算值要精确到0.1%②“Absolutetolerance”(绝对误差):表示误差值的门限,或者是在状态值为零的情况下可以接受的误差。如果它被设成了auto,那么Simulink为每一个状态设置初始绝对误差为1e-6。3)仿真精度定义(2)仿真数据输入/输出(DataImport/Export)设置

矩阵形式。MATLAB把矩阵的第一列默认为时间向量,后面的每一列对应每一个输入端口,矩阵的第一行表示某一时刻各输入端口的输入状态。另外,也可以把矩阵分开来表示,即MATLAB默认的表示方法[t,u],其中t是一维时间列向量,表示仿真时间,u是和t长度相等的n维列向量(n表示输入端口的数量),表示状态值。例如,在命令窗口中定义t和u:t=(0:0.1:10)';u=[sin(t),cos(t).*sin(t),exp(-2*t).*sin(t)];Input选项:用于将MATLAB空间已存的数据导入Simulink模型的“输入模块(In)”中,数据类型包括:数组、时间表达式、结构体和时间串等。如果Simulink模型中使用了“输入模块”,就必须选中该选项并填写所导入数据的变量名,缺省变量名为[t,u],t为时间,u为该时间对应的数值。“Loadformworkspace”选项组:从MATLAB工作空间导入数据仿真数据输入/输出,用来设置仿真模型与工作空间Workspace之间的数据的输入/输出。

Initialstate选项:用于设置由Input选项导入Simulink

模型输入模块(In)变量的初始值,与Input选项配合使用。将迫使模型从MATLAB工作空间获取模型中全部模块所有状态变量的初始值。Time选项:用于设置保存于MATLAB工作空间中的仿真运行时间变量名。选中此选项,可将仿真运行时间变量以指定的变量名(缺省名为tout)保存于MATLAB工作空间。“Savetoworkspace”选项组:将仿真结果数据保存至MATLAB工作空间中States选项:用于设置保存于MATLAB工作空间中的状态变量名。选中此选项,可将仿真过程中Simulink模型中的状态变量值以指定的变量名(缺省名为xout)保存于MATLAB工作空间。Output选项:用于设置保存于MATLAB工作空间中的输出数据变量名。如果Simulink模型中使用了“输出模块(Out)”,就必须选中该选项并填写保存于MATLAB工作空间中的输出数据变量名(缺省名为yout)。Finalstate选项:用于设置保存于MATLAB工作空间中的最终状态变量名。选中此选项,可将Simulink模型中的最终状态变量值以指定的变量名(缺省名为xFinal)保存于MATLAB工作空间。

Limitdatapointtolast选项:用于限定可存取的数据。选中此选项后,可设定保存变量接受数据的长度,缺省值为1000。如果输入数据长度超过设定值,那么最早的“历史”数据被删除。“Saveoptions”选项组:数据保存选项,需要与Savetoworkspace选项组配合使用。Decimation选项:用于设置降频程度系数,降频系数的默认值为1,表示每一个点都返回状态与输出值。Format选项:用于设置数据保存格式。保存数据有三种的格式选择:带时间的构架(StructureWithTime)结构体(Structure)数组(Array)Outputoptions选项:用于设置产生附加输出信号数据,只适用于变步长解算器。输出选项Refineoutput平滑输出Produceadditionaloutput产生附加输出Producespecifiedoutputonly仅产生特殊的输出(3)诊断参数(Diagnostics)设置

在Simulink中可能出现一些错误情况,这就需要事先设置出现各类错误时发出警告的等级。提醒用户仿真模型中所存在的问题。通过选择不同的诊断提示方式对仿真模型进行代数环、过零等检测,有利于仿真之前发现仿真模型中所存在的问题。当然这些检测需要花费大量的时间,一般情况下,可以使用默认的属性设置。但是在建立仿真模型的时候,应该要特别关注代数环和过零检测两个问题。用于设置系统对仿真过程中,可能会出现一些非正常事件做出何种反应,有以下几种:None:不做任何反应。Warning:提出警告,但警告信息不影响程序的运行。Error:提示错误,运行的程序停止。诊断参数设置界面,主要用来设置仿真模型的警告和错误的提示。(4)硬件实现

(HardwareImplementation)设置

硬件实现设置界面,主要用于定义硬件的特性(包括硬件支持的字长等)。这里的硬件是指将来要用来运行模型的物理硬件。这些设置可以帮助用户在模型实际运行目标系统(硬件)之前通过仿真检测到以后在目标系统上运行可能会出现的问题,如溢出问题等。(5)模型参考(ModelReferencing)设置

模型参考设置界面,主要用于生成目标代码、建立仿真以及定义当此模型中包含其他模型或其他模型引用该模型时的一些选项参数值。

1)Rebuildoptionsforallreferencedmodels选项组:所有参考模型重建选项Rebuildoptions选项:用于设置是否要在当前模型更新、运行仿真和生成代码之前重建仿真和Real-TimeWorkshop目标。Modeldependencies用于定义存放初始化模型参数的命令以及为模型提供数据的文件名或文件的路径。2)Optionsforreferencingthismodel

选项组:totalnumberofinstancesallowedpertopmodel选项:用于设置在其他模型中可以引用多少个该模型。Passscalarrootinputsbyvalue选项:通过数值来传递该模型的标量输入选中此项后,别的模型在调用该模型时就会通过数值来传递该模型的标量输入,否则就通过参考(如输入的地址)来传递输入。选中此项就会允许模型从速度快的寄存器或局部存储单元读取数据,而不是从它的实际输入位置来读取。如果模型的输入在同一个时间步内发生改变,那么选中此项就会导致仿真出错。Minimizealgebraicloopoccurrences选项:最大限度地减少发生代数环选中此项后,Simulink就试图消除模型中的一些代数环。(6)实时工作间(Real-TimeWorkshop)设置

在该环境下可直接从Simulink模型生成可移植的程序源代码,并自动生成能在多种环境中(包括实时系统和单机仿真)实时执行程序。Real-TimeWorkshop主要用来进行实时控制、实时仿真、交互式实时参数调整与生成可移植的C语言代码等。在该该界面中允许用户选择目标语言模板、系统目标文件等,如果选择了Generatecodeonly(只生成代码)选项,则实时工具只将Simulink模型翻译成目标语言代码,不进行编译、生成可执行文件。实时工作间设置界面,它是Simulink的一个重要功能模块,也是一种实时开发环境。

2.运行模型用户在选择适当的算法并且设置好仿真参数后,就可以运行Simulink仿真模型了。有两种方法可以启动仿真:1)选择Simulation→Start;2)点击图标“”。

注意:缺省时,示波器历史数据只保存最后的5000个。如果我们希望显示完整的仿真曲线,就需要将“Limitdatatolast5000”前面复选框中的“√”去掉。观察仿真结果(1)仿真结果输出到显示模块

1)示波器(Scope)显示。

将数据显示在其独立窗口中,是一个用途非常广泛是显示模块,它以图形的方式直接显示输入数据,在很多情况下,无需对输出结果进行定量分析,便可以从其仿真输出曲线中获知系统的运行规律。

Scope模块的工具栏按钮命令功能介绍

设置Y轴个数设置显示的时间范围选择轴的标注方法确定显示频度(每隔n-1个数据点显示一次)确定显示点的时间间隔(缺省为0表示连续显示)示波器属性对话框General页

通过Scope模块窗口的工具栏中选择Parameters按钮,打开示波器参数设置界面参数设置主要是针对示波器窗口的坐标系与曲线显示方面的Numberofaxes选项:示波器窗口内的坐标系个数,默认值为1;当设置为2时,相当模型结构图中示波器图标的输入端就为两个输入端口;Axes选项组:Timerange选项:信号显示从0开始的时间区间,默认设置为10,若设置为n,则信号显示的时间区间为[0,n];Ticklabels选项:有三种选择:坐标系标注标志(all);坐标系不标注标志(none);坐标系底部标注标志(bottomaxisonly);floatingscope选项:选中此项,则示波器为浮动状态,模型结构图中示波器的输入端将与系统模型的连线会断开。选择“Decimation”是设置数据的显示频度,默认值为1,表示每点都显示;设置为n时,则为隔(n-1)点显示一次;选择“Sampletime”是设置显示点的采样时间间隔,默认值为0,表示显示连续信号,若设置为-1,则表示显示方式取决与输入信号;若设置大于0的数,则表示显示离散信号的时间间隔。Sampling选项组:示波器属性对话框Datahistory页设定缓冲区接受数据的长度,勾选为缺省状态,其值为5000确定示波器数据是否保存到MATLAB工作空间。若勾选则为保存,且需确定变量名和保存格式(缺省时,不被勾选)设置主要是针对示波器的数据存储与传送方面的Savedatatoworkspace选项:用来把示波器缓冲区存储的数据送到MATLAB工作空间,默认值是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论