动态仿真设计课件_第1页
动态仿真设计课件_第2页
动态仿真设计课件_第3页
动态仿真设计课件_第4页
动态仿真设计课件_第5页
已阅读5页,还剩209页未读 继续免费阅读

下载本文档

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

文档简介

2022/12/111Ch7.2动态仿真设计研究机电系统动态特性或对其控制,需先数学建模,再模型仿真分析,再实验仿真基础是相似性2022/12/101Ch7.2动态仿真设计研究机电系统动12022/12/1121仿真基本概念仿真类型:实物仿真数学仿真(解析模型、统计模型、表上作业演练)混合仿真2022/12/1021仿真基本概念仿真类型:22022/12/113仿真过程及步骤仿真一般过程:建模——实验——分析主要步骤:系统问题描述——系统分析——系统建模(数学模型或方框流程图)——数据收集与统计检验——构造仿真模型——仿真程序编制与验证——仿真模型确认——仿真实验设计——仿真模型运行——仿真结果分析——仿真总结2022/12/103仿真过程及步骤仿真一般过程:建模——实32022/12/1142机电系统建模1).模型分类:按系统模型分类2022/12/1042机电系统建模1).模型分类:42022/12/115按系统状态特征:离散型、连续型;按系统是否含随机因素:确定性模型、随机性模型;按是否具有时变性:静态、动态2022/12/105按系统状态特征:离散型、连续型;52022/12/1162)机电系统数学模型线性定常系统:线性时变系统:可用叠加原理非线性系统处理方法:线性化处理;忽略非线性因素;按非线性方法进行处理2022/12/1062)机电系统数学模型线性定常系统:62022/12/117(1)机械传动系统建模①机械移动系统机械移动系统力学模型

2022/12/107(1)机械传动系统建模72022/12/118两连体系统

(a)系统方框图(b)简化后的系统方框图两连体系统的动力模型2022/12/108两连体系统(a)系统方框图82022/12/119②机械转动系统同步齿形带驱动装置示意图同步齿形带驱动装置系统方框图2022/12/109②机械转动系统同步齿形带驱动装置示意92022/12/1110(2)电路网络系统建模①无源网络(a)无源网络(b)无源网络动态结构图基本无源网络框图2022/12/1010(2)电路网络系统建模①无源网络102022/12/1111②有源网络(a)比例-积分电路(b)比例-积分电路动态结构基本有源网络框图2022/12/1011②有源网络(a)比例-积分电路112022/12/1112(3)伺服电动机动力模型①电枢控制式直流电动机电枢控制式直流电动机原理图2022/12/1012(3)伺服电动机动力模型①电枢控122022/12/1113②磁场控制式直流电动机磁场控制式直流电动机原理图2022/12/1013②磁场控制式直流电动机磁场控制式直132022/12/1114③交流伺服电动机磁场控制式交流电动机原理图2022/12/1014③交流伺服电动机磁场控制式交流电动142022/12/1115机械系统和电系统存在着相似性。机械系统——电系统网络——电系统传递函数——机械结构的传递函数;系统——环节——求出各环节的传递函数——画出系统方块图——求出系统的传送函数

连续系统——应用拉普拉斯——求得系统的传递函数——拉普拉斯反变换——求出系统的时间响应;计算机控制(离散系统——应用Z变换把s域的超越方程或离散系统——z的代数方程——离散系统的脉冲传递函数——Z变换法求出离散系统的时间响应2022/12/1015机械系统和电系统存在着相似性。152022/12/11167.3Simulink概述

2022/12/10167.3Simulink概述16微分模块(Derivative)2).单位延迟模块(UnitDelay)5).离散滤波器模块(DiscreteFilter)Planar——平面副;c)在Math选项中,选择Sum,参数设为[+-],Universal——球销副;6).离散传递函数模块(DiscreteTransferFcn)功能:对输入变量进行积分。然后用鼠标展开UsingSimulink\BlockReference\SimulinkBlockLibraries就可以看到Simulink的所有模块。•转换库(Transformations)函数与表格模块库(Function&Table)主要实现各种一维、二维或者更高维函数的查表,另外用户还可以根据自己需要创建更复杂的函数。接收/传输信号模块(From/Goto)与MATLAB中的表达式有所不同,不能完成矩阵运算。约束与驱动——Constrains&Drivers5).继电模块(Relay)8信号源模块库(Sources)8).可变传输延迟模块(VariableTransportDelay)功能:用于将输入端的信号延迟指定的时间后再传输给输出信号。SimMechanics建模与示例分路器模块(Demux)2022/12/1117工作平台启动Simulink,通常有两种方法:(1)在MATLAB命令窗口中直接输入Simulink命令;(2)在MATLAB工具栏上单击Simulink按钮,如图7.1所示。

图7.1启动Simulink这样就可打开了Simulink的SimulinkLibraryBrower(库模块浏览器)。在菜单栏中执行File/New/Model命令,就建立了一个名为untitled的模型窗口。在建立了空的模块窗口后,用户可以在此窗口中创建自己需要的Simulink模型。微分模块(Derivative)2022/12/1017工作172022/12/11181.SIMULINK左键双击2.或者此处输入SIMULINK,后回车2022/12/10181.SIMULINK2.或者此处输入182022/12/1119左键双击2022/12/1019左键双击192022/12/1120图7.2库模块浏览器

图7.3新建的空白模块窗口

2022/12/1020图7.2库模块浏览器图7.3新建202022/12/1121连续模块输入模块输出模块2022/12/1021连续模块输入模块输出模块212022/12/1122连续模块微分状态空间积分传递函数输入延迟输入信号给定延迟输入不定量延迟零、极点模型2022/12/1022连续模块微分状态空间积分传递函数输入222022/12/1123输入模块2022/12/1023输入模块232022/12/1124输出模块2022/12/1024输出模块242022/12/1125

Simulink的仿真原理1Simulink仿真模块通常,Simulink仿真系统包括输入(Input)、状态(states)和输出(Output)三个部分。·输入模块:即信号源模块,包括常数字信号源和用户自定义信号;·状态模块:即被模拟的系统模块,是系统建模的核心和主要部分;·输出模块:即信号显示模块,它能以图形方式、文件格式进行显示注意:在设计一个模型时,必须先确定这三个部分的意,以及它们之间的联系;Simulink的仿真模型并非一定要完全包括这三个部分,它可以缺少其中一个或者两个;Simulink的状态模块可以是连续的、离散的,或者它们二者的结合。2022/12/1025Simulink的仿真原理1Si252022/12/11262Simulink仿真过程1).初始化阶段①对模型的参数进行估计,得到它们实际计算的值。②展开模型的各个层次;③按照更新的次序对模型进行排序;④确定那些显式化的信号属性,并检查每个模块是否能够接受连接它们输入端的信号;⑤确定所有非显式的信号采样时间模块的采样时间;⑥分配和初始化存储空间,以便存储每个模块的状态和当前值的输出。2).模型执行阶段模型仿真是通过数值积分来进行完成的,计算数值积分可以采用以下两步来进行:①按照秩序计算每个模块的积分;②根据当前输入和状态来决定状态的微分,得到微分矢量,然后把它返回给解法器,以计算下一个采样点的状态矢量。在每一个时间步中,Simulink依次解决下列问题:

·按照秩序更新模块的输出;

·按照秩序更新模块的状态;

·检查模块连续状态的不连续点;

·计算下一个仿真时间步的时间。2022/12/10262Simulink仿真过程2).模26当需要提高速度时,可以考虑采用Fcn或者S函数模块。接收/传输信号模块(From/Goto)revolute——单自由度转动副;3).离散时间积分模块(DiscreteTimeIntegrator)在连续模块(Continuous)库中包括了常见的连续模块,这些模块如图所示。非线性系统处理方法:线性化处理;D)从Simulink的Sink中拖拽示波器1次拖至Untitled模块窗口——SimMechanics3函数与表格模块库(Function&Table)检验仿真精度的方法是:通过修改仿真的相对误差限和绝对误差限,并在一个合适的时间跨度反复运行仿真,对比仿真结果有无大的变化,如果变化不大,表示解是收敛的。1).输入常数模块(Constant)4数学模块库(Math)Universal——球销副;输入信号——计算机指令8).可变传输延迟模块(VariableTransportDelay)功能:对输入变量进行积分。2.数字信号处理模块集(DSPBlockset)5).离散滤波器模块(DiscreteFilter)c)在Math选项中,选择Sum,参数设为[+-],2022/12/11271连续模块库(Continuous)

在连续模块(Continuous)库中包括了常见的连续模块,这些模块如图所示。

7.

3.3Simulink模块库在库模块浏览器中单击Simulink前面的“+”号,就能够看到Simulink的模块库,如图7.2所示。

当需要提高速度时,可以考虑采用Fcn或者S函数模块。2022022/12/11281).积分模块(Integrator):功能:对输入变量进行积分。说明:模块的输入可以是标量,也可以是矢量;输入信号的维数必须与输入信号保持一致。2).微分模块(Derivative)功能:通过计算差分∆u/

∆t近似计算输入变量的微分。3).线性状态空间模块(State-Space)功能:用于实现以下数学方程描述的系统:4).传递函数模块(TransferFcn)功能:用执行一个线性传递函数。5).零极点传递函数模块(Zero-Pole)功能:用于建立一个预先指定的零点、极点,并用延迟算子s表示的连续。6).存储器模块(Memory)功能:保持输出前一步的输入值。7).传输延迟模块(TransportDelay)功能:用于将输入端的信号延迟指定的时间后再传输给输出信号。8).可变传输延迟模块(VariableTransportDelay)功能:用于将输入端的信号进行可变时间的延迟。2022/12/10281).积分模块(Integrato282022/12/11292离散模块库(Discrete)

离散模块库(Discrete)主要用于建立离散采样的系统模型,包括的主要模块,如图所示。1).零阶保持器模块(Zero-Order-Hold)功能:在一个步长内将输出的值保持在同一个值上。2022/12/10292离散模块库(Discrete)12022/12/11302).单位延迟模块(UnitDelay)功能:将输入信号作单位延迟,并且保持一个采样周期相当于时间算子z-1

。3).离散时间积分模块(DiscreteTimeIntegrator)功能:在构造完全离散的系统时,代替连续积分的功能。使用的积分方法有:向前欧拉法、向后欧拉法、梯形法。4).离散状态空间模块(DiscreteStateSpace)功能:用于实现如下数学方程描述的系统:5).离散滤波器模块(DiscreteFilter)功能:用于实现无限脉冲响应(IIR)和有限脉冲响应(FIR)的数字滤波器。6).离散传递函数模块(DiscreteTransferFcn)功能:用于执行一个离散传递函数。7).离散零极点传递函数模块(DiscreteZero-Pole)功能:用于建立一个预先指定的零点、极点,并用延迟算子z-1表示的离散系统。8).一阶保持器模块(FirstOrderHold)功能:在一定时间间隔内保持一阶采样。2022/12/10302).单位延迟模块(UnitDel302022/12/11313函数与表格模块库(Function&Table)

函数与表格模块库(Function&Table)主要实现各种一维、二维或者更高维函数的查表,另外用户还可以根据自己需要创建更复杂的函数。该模块库包括多个主要模块、如图7.7所示。2022/12/10313函数与表格模块库(Functio312022/12/11321).一维查表模块(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模块中运行,最后计算模块的输出值。2022/12/10321).一维查表模块(Look-Up2022/12/11334数学模块库(Math)

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

关系符号包括:==(等于)、≠(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)等。10).复数运算模块复数运算模块包括计算复数的模与幅角(ComplextoMagnitude-Angle)、由模和幅角计算复数(Magnitude-AngletoComplex)、提取复数实部与虚部模块(ComplextoRealandImage)、由复数实部和虚部计算复数(RealandImagetoComplex)。2022/12/10356).三角函数模块(Trigono352022/12/11365非线性模块(Nonlinear)非线性模块(Nonlinear)中包括一些常用的非线性模块,如图7.9所示。2022/12/10365非线性模块(Nonlinear)功能:用于对输入信号进行三角函数运算,共有10种三角函数供选择。⑥分配和初始化存储空间,以便存储每个模块的状态和当前值的输出。功能:用于实现如下数学方程描述的系统:environmentport(a)系统方框图(b)简化后的系统方框图首先启动Simulink命令,建立一个空的模块窗口“untitled”,然后利用Simulink提供的模块库,在此窗口中创建自己需要的Simulink模型。5).离散滤波器模块(DiscreteFilter)——选择并将增益函数Gain拖至Untitled模块窗口按系统状态特征:离散型、连续型;使用的积分方法有:向前欧拉法、向后欧拉法、梯形法。如果绝对误差过大,会使仿真在接近零区域运行的仿真时间太小。与MATLAB中的表达式有所不同,不能完成矩阵运算。解决的办法是修改绝对误差参数或者修改初始的状态。(1)绘制仿真框图由于Simulink在仿真过程中,始终都要检查模型的类型安全性。说明:输入的数学表达式应符合C语言编程规范;功能:矢量的点乘模块(DotProduct)用于实现输入信号的点积运算。功能:按照矩阵的形式把输入信号保存到一个指定的MAT文件。通常,Simulink仿真系统包括输入(Input)、状态(states)和输出(Output)三个部分。乘法模块(Product)2022/12/11371.)比率限幅模块(RateLimiter)功能:用于限制输入信号的一阶导数,使得信号的变化率不超过规定的限制值。2).饱和度模块(Saturation)功能:用于设置输入信号的上下饱和度,即上下限的值,来约束输出值。3).量化模块(Quantizer)功能:用于把输入信号由平滑状态变成台阶状态。4).死区输出模块(DeadZone)功能:在规定的区内没有输出值。5).继电模块(Relay)功能:继电模块(Relay)用于实现在两个不同常数值之间进行切换。6).选择开关模块(Switch)功能:根据设置的门限来确定系统的输出。功能:用于对输入信号进行三角函数运算,共有10种三角函数供选2022/12/11386信号与系统模块库(signals&Systems)信号与系统模块库(signals&Systems)包括的主要模块如图7.11所示。2022/12/10386信号与系统模块库(signals382022/12/11391).Bus信号选择模块(BusSelector)功能:用于得到从Mux模块或其它模块引入的Bus信号。2).混路器模块(Mux)功能:把多路信号组成一个矢量信号或者Bus信号。3).分路器模块(Demux)功能:把混路器组成的信号按照原来的构成方法分解成多路信号。4).信号合成模块(Merge)功能:把多路信号进行合成一个单一的信号。5).接收/传输信号模块(From/Goto)功能:接收/传输信号模块(From/Goto)常常配合使用,From模块用于从一个Goto模块中接收一个输入信号,Goto模块用于把输入信号传递给From模块。6).初始值设定模块(IC)功能:初始值设定模块(IC)用于设定与输出端口连接的模块的初始值。2022/12/10391).Bus信号选择模块(Bus392022/12/11407信号输出模块(Sinks)

信号输出模块(Sinks)包括的主要模块如图7.12所示。图7.12输出显示模块库2022/12/10407信号输出模块(Sinks)图7.2022/12/11411).示波器模块(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)功能:停止仿真过程。当输入为非零时,停止系统仿真。2022/12/10411).示波器模块(Scope)4)2022/12/11428信号源模块库(Sources)信号源模块库(Sources)包括的主要模块如图7.13所示。图7.13信号源模块库2022/12/10428信号源模块库(Sources)图2022/12/11431).输入常数模块(Constant)功能:产生一个常数。该常数可以是实数,也可以是复数。2).信号源发生器模块(SignalGenerator)功能:产生不同的信号,其中包括:正弦波、方波、锯齿波信号。3).从文件读取信号模块(FromFile)功能:从一个MAT文件中读取信号,读取的信号为一个矩阵,其矩阵的格式与ToFile模块中介绍的矩阵格式相同。如果矩阵在同一采样时间有两个或者更多的列,则数据点的输出应该是首次出现的列。4).从工作空间读取信号模块(FromWorkspace)功能:从MATLAB工作空间读取信号作为当前的输入信号。5).随机数模块(RandomNumber)功能:产生正态分布的随机数,默认的随机数是期望为0,方差为1的标准正态分布量。6).带宽限制白噪声模块(BandLimitedWhiteNoise)功能:实现对连续或者混杂系统的白噪声输入。7).其它模块除以上介绍的常用模块外,还包括其模块。各模块功能可通过以下方法查看:先进入Simulink工作窗口,在菜单中执行Help/SimulinkHelp命令,这时就会弹出Help界面。然后用鼠标展开UsingSimulink\BlockReference\SimulinkBlockLibraries就可以看到Simulink的所有模块。查看相应的模块的使用方法和说明信息即可。

2022/12/10431).输入常数模块(Constant2022/12/1144仿真模型的建立与模块参数与属性的设置1.仿真模块的建立首先启动Simulink命令,建立一个空的模块窗口“untitled”

,然后利用Simulink提供的模块库,在此窗口中创建自己需要的Simulink模型。具体方法:在模块库浏览器中找到所需模块,选中该模块后右击鼠标,把它加入到一个模型窗口中即可完成模块的建立。

图7.14添加模块

2022/12/1044仿真模型的建立与模块参数与属性的设置442022/12/11452.模块参数与属性的设置

方法:在所建立的模型窗口中,选中相应的模块,单击右击鼠标,在弹出的快捷菜单中单击“Blockparameters”选项(如图7.15所示),即可打开该模块的参数设置对话框,如图7.16(a)所示。右击鼠标,在弹出的快捷菜单中单击“BlockProperties”选项,即可打开该模块的属性设置对话框,如图7.16(b)所示。图7.15Blockparamenters选项

2022/12/10452.模块参数与属性的设置图7.15452022/12/11463.模块的连接

一般情况下,每个模块都有一个或者多个输入口或者输出口。输入口通常是模块的左边的“>”符号;输出口是右边的“>”符号。

模块的连接方法:把鼠标指针放到模块的输出口,这时,鼠标指针将变为“+”十字形;然后,拖运鼠标至其它模块的输入口,这时信号线就变成了带有方向箭头的线段。此时,说明这两个模块的连接成功,否则需要重新进行连接。4.运行仿真在运行仿真之前,首先保存已设置和连接的模型,然后就可以运行仿真。2022/12/10463.模块的连接一般情况下,46f)将各环节移位连接,完成仿真框图模型建立2).信号源发生器模块(SignalGenerator)双击示波器,选parameter,在general选项卡页面,取出floatingscope选线——即可与两个jointsenosor模块相连接功能:用于实现如下数学方程描述的系统:输入口通常是模块的左边的“>”符号;4).离散状态空间模块(DiscreteStateSpace)功能:用执行一个线性传递函数。2.数字信号处理模块集(DSPBlockset)3).从文件读取信号模块(FromFile)•扩展离散库(AdditionalDiscrete)载荷设置界面3Simulink概述线性状态空间模块(State-Space)Simulink的仿真模型并非一定要完全包括这三个部分,它可以缺少其中一个或者两个;模型的类型安全性是指从该模型产生的代码不出现上溢或者下溢现象,当产生溢出现象时,系统将出错误。revolute——单自由度转动副;(2)在同一窗口复制模块双击示波器,选parameter,在general选项卡页面,取出floatingscope选线——即可与两个jointsenosor模块相连接8).可变传输延迟模块(VariableTransportDelay)磁场控制式直流电动机原理图2022/12/11471.Simulink仿真注意(1)Simulink的数据类型由于Simulink在仿真过程中,始终都要检查模型的类型安全性。模型的类型安全性是指从该模型产生的代码不出现上溢或者下溢现象,当产生溢出现象时,系统将出错误。查看模块的数据类型的方法是:在模型窗口的菜单中执行Format/PortDataTypes命令,这样每个模块支持的数据类型就显示出来了。要取消数据类型的查看方式,单击PortDataTypes去掉其前面的勾号即可。仿真注意与技巧图7.23查看模块支持的数据类型f)将各环节移位连接,完成仿真框图模型建立2022/12/1472022/12/1148(2)数据的传输在仿真过程中,Simulink首先查看有没有特别设置的信号的数据类型,以及检验信号的输入和输出端口的数据类型是否产生冲突。如果有冲突,Simulink将停止仿真,并给出一个出错提示对话框,在此对话框中将显示出错的信号以及端口,并把信号的路径以高亮显示。遇到该情形,必须改变数据类型以适应模块的需要。(3)提高仿真速度

Simulink仿真过程,仿真的性能受诸多因素的影响,包括模型的设计和仿真参数的选择等。对于大多数问题,使用Simulink系统默认的解法和仿真参数值就能够比较好地解决。因素及解决方法:(1)仿真的时间步长太小。针对这种情况可以把最大仿真步长参数设置为默认值auto。(2)仿真的时间过长。可酌情减小仿真的时间。(3)选择了错误的解法。针对这种情况可以通过改变解法器来解决。(4)仿真的精度要求过高。仿真时,如果绝对误差限度太小,则会使仿真在接近零的状态附近耗费过多时间。通常,相对误差限为0.1%就已经足够了。(5)模型包含一个外部存储块。尽量使用内置存储模块。2022/12/1048(2)数据的传输(3)提高仿真速度2022/12/1149(4)改善仿真精度检验仿真精度的方法是:通过修改仿真的相对误差限和绝对误差限,并在一个合适的时间跨度反复运行仿真,对比仿真结果有无大的变化,如果变化不大,表示解是收敛的。说明仿真的精度是有效的,结果是稳定的。如果仿真结果不稳定,其原因可参是系统本身不稳定或仿真解法不适合。如果仿真的结果不精确,其原因很可能是:(1)模型有取值接近零的状态。如果绝对误差过大,会使仿真在接近零区域运行的仿真时间太小。解决的办法是修改绝对误差参数或者修改初始的状态。(2)如果改变绝对误差限还不能达到预期的误差限,则修改相对误差限,使可接受的误差降低,并减小仿真的步长。2022/12/1049(4)改善仿真精度492022/12/11502.Simulink仿真技巧■连接分支信号线先连接好单根信号线,然后将鼠标指针放在已经连接好的信号线上,同时按住“Ctrl”键,拖动鼠标,连接到另一个模块。这样就可以根据需由一个信号源模块,引出多条信号线。如图7.28所示。图7.28引出多条信号线示例

■模块的编辑技巧(1)调整模块大小

(2)在同一窗口复制模块(3)删除模块(4)编辑模块标签2022/12/10502.Simulink仿真技巧图7.502022/12/1151其它应用模块集和Simulink扩展库1.通信模块集(CommunicationsBlockset)图7.31通信模块集中的模块库2022/12/1051其它应用模块集和Simulink扩展512022/12/11522.数字信号处理模块集(DSPBlockset)3.电力系统模块集(PowerSystemBlockset)2022/12/10522.数字信号处理模块集(DSPBl2022/12/11534.Simulink扩展库

•扩展信号输出模块库(AdditionalSinks)图7.35扩展信号输出模块库2022/12/10534.Simulink扩展库•532022/12/1154•扩展离散库(AdditionalDiscrete)•扩展线性库(AdditionalLinear)图7.36扩展离散库图7.37扩展线性库2022/12/1054•扩展离散库(Additional542022/12/1155•转换库(Transformations)图7.38转换模块库•触发模块库(FlipFlops)图7.39触发模块库2022/12/1055•转换库(Transformatio552022/12/1156•线性化库(Linearization)图7.40线性化库•宇航模块库(AirspaceBlocks)图7.41宇航模块库2022/12/1056•线性化库(Linearizatio56与MATLAB中的表达式有所不同,不能完成矩阵运算。(2)在同一窗口复制模块主动件及从动件许可的驱动及坐标系①电枢控制式直流电动机终止信号模块(Terminator)(a)系统方框图(b)简化后的系统方框图功能:用于实现如下数学方程描述的系统:3函数与表格模块库(Function&Table)1连续模块库(Continuous)•扩展信号输出模块库(AdditionalSinks)(2)如果改变绝对误差限还不能达到预期的误差限,则修改相对误差限,使可接受的误差降低,并减小仿真的步长。固定端——ground在建立了空的模块窗口后,用户可以在此窗口中创建自己需要的Simulink模型。使用的积分方法有:向前欧拉法、向后欧拉法、梯形法。12输出显示模块库3Simulink概述电枢控制式直流电动机原理图信号合成模块(Merge)5).S-函数模块(S-Function)(3)选择了错误的解法。2022/12/1157仿真实例1)问题简述机器人驱动系统:输入信号——计算机指令输出信号——电机转动角度滤波部分——二阶延迟环节位置控制器——PID速度和电流控制器——PID与MATLAB中的表达式有所不同,不能完成矩阵运算。20222022/12/11582)电流环仿真分析a)打开MatLab——打开SIMULIK窗口

——new——弹出Untitled模块窗口b)单击Continuious——将传递函数Transferfcn拖至Untitled模块窗口2022/12/10582)电流环仿真分析a)打开MatLa2022/12/1159双击弹出框图参数输入窗口2022/12/1059双击弹出框图参数输入窗口592022/12/1160分子分母公差2022/12/1060分子分母公差602022/12/1161分子——[1];分母——[0.410]10.4s+s22022/12/1061分子——[1];分母——[0.41612022/12/1162Untitled模块窗口变成了2022/12/1062Untitled模块窗口变成了622022/12/1163分子——[1];分母——[0.021]1同理,再建1/(0.02s+1)0.02s+12022/12/1063分子——[1];分母——[0.02632022/12/1164c)在Math选项中,选择Sum,参数设为[+-],——选择并将增益函数Gain拖至Untitled模块窗口参数为122022/12/1064c)在Math选项中,选择Sum,参642022/12/1165d)在Souce选项中,选择并将阶跃函数Step拖至Untitled模块窗口2022/12/1065d)在Souce选项中,选择并将阶跃652022/12/1166e)在Sink选项中,选择并将示波器函数Scope拖至Untitled模块窗口2022/12/1066e)在Sink选项中,选择并将示波器662022/12/1167f)将各环节移位连接,完成仿真框图模型建立2022/12/1067f)将各环节移位连接,完成仿真框图模672022/12/1168g)单击Untiled菜单中的Simulation中的Start,开始仿真。设置Scope参数y:2,X:5,后双击

Scope可得单位阶跃相应曲线2022/12/1068g)单击Untiled菜单中的Sim682022/12/11697.4机构系统建模与仿真分析——SimMechanics必须在6.1版本以上支持下运行2022/12/10697.4机构系统建模与仿真分析——S692022/12/11701.打开方式:1)Simulink——SimMechanics2022/12/10701.打开方式:702022/12/11712)mechlib刚体运动副约束与驱动检测与驱动载荷辅助工具2022/12/10712)mechlib刚运动副约束检测载712022/12/11722.bodes——刚体刚体参数:质量位置方向坐标等机器环境两个独立机器的非物理联接;或联接两个没有惯性和运动副、没有约束不传输运动、力或力矩的子机器环境共享环境机器参数、约束、线性化、可视化环境机架固定端2022/12/10722.bodes——刚体刚参数:机两个722022/12/1173固定端——ground2022/12/1073固定端——ground732022/12/1174Body

——

刚体2022/12/1074Body

——

刚体742022/12/11753.运动副模块组revolute——单自由度转动副;Prismatic——单自由度移动副;Spherical——球面副;Planar——平面副;Universal——球销副;Cylinder——圆柱副;Screw——螺旋副;Six-DoF——六自由度等拆分运动副——DisassembledJoints无质量联接运动副——MasslessConnectors2022/12/10753.运动副模块组revolute752022/12/11762022/12/107676功能:保持输出前一步的输入值。如果仿真的结果不精确,其原因很可能是:除以上介绍的常用模块外,还包括其模块。(3)伺服电动机动力模型具体方法:在模块库浏览器中找到所需模块,选中该模块后右击鼠标,把它加入到一个模型窗口中即可完成模块的建立。当输入为非零时,停止系统仿真。environmentport3函数与表格模块库(Function&Table)2).单位延迟模块(UnitDelay)(1)模型有取值接近零的状态。在库模块浏览器中单击Simulink前面的“+”号,就能够看到Simulink的模块库,如图7.该模块库包括多个主要模块、如图7.线性状态空间模块(State-Space)3新建的空白模块窗口功能:继电模块(Relay)用于实现在两个不同常数值之间进行切换。d)在Souce选项中,选择并将阶跃函数Step拖至数学模块库(Math)包括多个数学运算模块,如图7.(2)在同一窗口复制模块功能:对输入信号进行MATLAB函数及表达式的处理。功能:保持输出前一步的输入值。2022/12/1177功能:保持输出前一步的输入值。2022/12/1077772022/12/11782022/12/1078782022/12/11792022/12/1079792022/12/1180典型运动副2022/12/1080典型运动副802022/12/11812022/12/1081812022/12/1182棱柱副参数设定界面传感器或驱动器数量设置许可的运动或坐标系2022/12/1082棱柱副传感器或驱动器数量设置许可的运822022/12/11834.约束与驱动——Constrains&Drivers静力学约束驱动模块齿轮约束平行约束曲线约束直线驱动角位移驱动距离驱动速度驱动2022/12/10834.约束与驱动——Constra832022/12/11842022/12/1084842022/12/1185约束设置界面驱动设置界面传感器或驱动器数量主动件及从动件许可的驱动及坐标系传感器数量主动件及从动件参数2022/12/1085约束设置界面852022/12/11864.检测与驱动模块2022/12/10864.检测与驱动模块862022/12/11872022/12/1087872022/12/1188检测与传感器设置界面力矩力2022/12/1088检测与传感器设置界面力矩力882022/12/11895.载荷模块2022/12/10895.载荷模块892022/12/1190载荷设置界面刚度系数阻尼系数自然长度位置、速度、受力2022/12/1090载荷设置界面刚度系数阻902022/12/11916.辅助工具模块2022/12/10916.辅助工具模块912022/12/1192辅助工具设置界面连接物体数目及位置2022/12/1092辅助工具设置界面连接物体数目及位置922022/12/1193SimMechanics建模与示例1.建模基本方法1)选择机器环境、固定端(必须至少有一个)、刚体及运动副;2)定义刚体与运动副的相对位置及连接方式:固定端——运动副——刚体——运动副——刚体——。。。。。。——刚体——固定端一个刚体可由两个以上的运动副构成运动分支,但一个运动副必须只能且仅能与两个刚体相连3)设置刚体特性:质量、特性、位置及固定端和参考坐标系;4)设置运动副特性:平移轴、旋转轴及胶点5)旋转、连接并设置约束和驱动模块2022/12/1093SimMechanics建模与示例932022/12/1194SimMechanics建模与示例6)选择、连接并设置对应的驱动与检测模块,还可将检测、驱动模块与非SimMechanics模块相连,但普通SimMechanics模块不行7)封装子系统,已构成功能更强大的系统2022/12/1094SimMechanics建模与示例942022/12/1195SimMechanics建模与示例2022/12/1095SimMechanics建模与示例952022/12/1196(1)绘制仿真框图1)建立仿真框图雏形A)选择并拖拽bodys中机械环境图标1次、固定图标2次、刚体坐标3次;B)选择并拖拽Joints中Revolute图标4次;C)选择并拖拽检测与驱动模块组中的JointSensor图标2次——检测杆2两个端点3和2的运动轨迹;D)从Simulink的Sink中拖拽示波器1次2022/12/1096(1)962022/12/11972022/12/1097972022/12/11982)完善模型坐标轴——铰接点4指向铰接点1,垂直纸面向上为z轴正方向;双击ground1,选择showmachineenvironmentport——增加与机器环境的连接端口;2022/12/10982)完善模型982022/12/1199双击revolute3和2,将numberofsensor/actuatorports的默认值0修改为1——自动输出一个新端口2022/12/1099双击revolute3和2,将num992022/12/11100双击示波器,选parameter,在general选项卡页面,取出floatingscope选线——即可与两个jointsenosor模块相连接2022/12/10100双击示波器,选parameter,1002022/12/11101旋转(Ctrl_R)、更名、连接各模块,可得simulink框图雏形框图雏形2022/12/10101旋转(Ctrl_R)、更名、连接各1012022/12/11102(2)设置模型参数1)设置机械环境2022/12/10102(2)设置模型参数1)设置机械环境1022022/12/111032)机架参数设置Ground2参数设置:输入节点4坐标值(-0.434,0.04,0)Ground1参数设置:输入节点4坐标值(0.434,0.04,0)2022/12/101032)机架参数设置1032022/12/111043)旋转副设置双击revolute4,绕z轴旋转,设为[0,0,1];坐标系设为world,base——主动件;follower——从动件2022/12/101043)旋转副设置1042022/12/111054)刚体设置:双击bar,2022/12/101054)刚体设置:双击bar,1052022/12/111065)旋转副检测2022/12/101065)旋转副检测1062022/12/11107仿真结果示波器输出——角度运动仿真2022/12/10107仿真结果示波器输出——角度1072022/12/111087.3Simulink概述

2022/12/101087.3Simulink概述1082022/12/111092).单位延迟模块(UnitDelay)功能:将输入信号作单位延迟,并且保持一个采样周期相当于时间算子z-1

。3).离散时间积分模块(DiscreteTimeIntegrator)功能:在构造完全离散的系统时,代替连续积分的功能。使用的积分方法有:向前欧拉法、向后欧拉法、梯形法。4).离散状态空间模块(DiscreteStateSpace)功能:用于实现如下数学方程描述的系统:5).离散滤波器模块(DiscreteFilter)功能:用于实现无限脉冲响应(IIR)和有限脉冲响应(FIR)的数字滤波器。6).离散传递函数模块(DiscreteTransferFcn)功能:用于执行一个离散传递函数。7).离散零极点传递函数模块(DiscreteZero-Pole)功能:用于建立一个预先指定的零点、极点,并用延迟算子z-1表示的离散系统。8).一阶保持器模块(FirstOrderHold)功能:在一定时间间隔内保持一阶采样。2022/12/101092).单位延迟模块(UnitDe1092022/12/111104数学模块库(Math)

数学模块库(Math)包括多个数学运算模块,如图7.8所示。2022/12/101104数学模块库(Math)1102022/12/11111(4)改善仿真精度检验仿真精度的方法是:通过修改仿真的相对误差限和绝对误差限,并在一个合适的时间跨度反复运行仿真,对比仿真结果有无大的变化,如果变化不大,表示解是收敛的。说明仿真的精度是有效的,结果是稳定的。如果仿真结果不稳定,其原因可参是系统本身不稳定或仿真解法不适合。如果仿真的结果不精确,其原因很可能是:(1)模型有取值接近零的状态。如果绝对误差过大,会使仿真在接近零区域运行的仿真时间太小。解决的办法是修改绝对误差参数或者修改初始的状态。(2)如果改变绝对误差限还不能达到预期的误差限,则修改相对误差限,使可接受的误差降低,并减小仿真的步长。2022/12/10111(4)改善仿真精度1112022/12/11112•扩展离散库(AdditionalDiscrete)•扩展线性库(AdditionalLinear)图7.36扩展离散库图7.37扩展线性库2022/12/10112•扩展离散库(Additional1122022/12/11113双击弹出框图参数输入窗口2022/12/10113双击弹出框图参数输入窗口1132022/12/111142022/12/101141142022/12/111156.辅助工具模块2022/12/101156.辅助工具模块1152022/12/11116Ch7.2动态仿真设计研究机电系统动态特性或对其控制,需先数学建模,再模型仿真分析,再实验仿真基础是相似性2022/12/101Ch7.2动态仿真设计研究机电系统动1162022/12/111171仿真基本概念仿真类型:实物仿真数学仿真(解析模型、统计模型、表上作业演练)混合仿真2022/12/1021仿真基本概念仿真类型:1172022/12/11118仿真过程及步骤仿真一般过程:建模——实验——分析主要步骤:系统问题描述——系统分析——系统建模(数学模型或方框流程图)——数据收集与统计检验——构造仿真模型——仿真程序编制与验证——仿真模型确认——仿真实验设计——仿真模型运行——仿真结果分析——仿真总结2022/12/103仿真过程及步骤仿真一般过程:建模——实1182022/12/111192机电系统建模1).模型分类:按系统模型分类2022/12/1042机电系统建模1).模型分类:1192022/12/11120按系统状态特征:离散型、连续型;按系统是否含随机因素:确定性模型、随机性模型;按是否具有时变性:静态、动态2022/12/105按系统状态特征:离散型、连续型;1202022/12/111212)机电系统数学模型线性定常系统:线性时变系统:可用叠加原理非线性系统处理方法:线性化处理;忽略非线性因素;按非线性方法进行处理2022/12/1062)机电系统数学模型线性定常系统:1212022/12/11122(1)机械传动系统建模①机械移动系统机械移动系统力学模型

2022/12/107(1)机械传动系统建模1222022/12/11123两连体系统

(a)系统方框图(b)简化后的系统方框图两连体系统的动力模型2022/12/108两连体系统(a)系统方框图1232022/12/11124②机械转动系统同步齿形带驱动装置示意图同步齿形带驱动装置系统方框图2022/12/109②机械转动系统同步齿形带驱动装置示意1242022/12/11125(2)电路网络系统建模①无源网络(a)无源网络(b)无源网络动态结构图基本无源网络框图2022/12/1010(2)电路网络系统建模①无源网络1252022/12/11126②有源网络(a)比例-积分电路(b)比例-积分电路动态结构基本有源网络框图2022/12/1011②有源网络(a)比例-积分电路1262022/12/11127(3)伺服电动机动力模型①电枢控制式直流电动机电枢控制式直流电动机原理图2022/12/1012(3)伺服电动机动力模型①电枢控1272022/12/11128②磁场控制式直流电动机磁场控制式直流电动机原理图2022/12/1013②磁场控制式直流电动机磁场控制式直1282022/12/11129③交流伺服电动机磁场控制式交流电动机原理图2022/12/1014③交流伺服电动机磁场控制式交流电动1292022/12/11130机械系统和电系统存在着相似性。机械系统——电系统网络——电系统传递函数——机械结构的传递函数;系统——环节——求出各环节的传递函数——画出系统方块图——求出系统的传送函数

连续系统——应用拉普拉斯——求得系统的传递函数——拉普拉斯反变换——求出系统的时间响应;计算机控制(离散系统——应用Z变换把s域的超越方程或离散系统——z的代数方程——离散系统的脉冲传递函数——Z变换法求出离散系统的时间响应2022/12/1015机械系统和电系统存在着相似性。1302022/12/111317.3Simulink概述

2022/12/10167.3Simulink概述131微分模块(Derivative)2).单位延迟模块(UnitDelay)5).离散滤波器模块(DiscreteFilter)Planar——平面副;c)在Math选项中,选择Sum,参数设为[+-],Universal——球销副;6).离散传递函数模块(DiscreteTransferFcn)功能:对输入变量进行积分。然后用鼠标展开UsingSimulink\BlockReference\SimulinkBlockLibraries就可以看到Simulink的所有模块。•转换库(Transformations)函数与表格模块库(Function&Table)主要实现各种一维、二维或者更高维函数的查表,另外用户还可以根据自己需要创建更复杂的函数。接收/传输信号模块(From/Goto)与MATLAB中的表达式有所不同,不能完成矩阵运算。约束与驱动——Constrains&Drivers5).继电模块(Relay)8信号源模块库(Sources)8).可变传输延迟模块(VariableTransportDelay)功能:用于将输入端的信号延迟指定的时间后再传输给输出信号。SimMechanics建模与示例分路器模块(Demux)2022/12/11132工作平台启动Simulink,通常有两种方法:(1)在MATLAB命令窗口中直接输入Simulink命令;(2)在MATLAB工具栏上单击Simulink按钮,如图7.1所示。

图7.1启动Simulink这样就可打开了Simulink的SimulinkLibraryBrower(库模块浏览器)。在菜单栏中执行File/New/Model命令,就建立了一个名为untitled的模型窗口。在建立了空的模块窗口后,用户可以在此窗口中创建自己需要的Simulink模型。微分模块(Derivative)2022/12/1017工作1322022/12/111331.SIMULINK左键双击2.或者此处输入SIMULINK,后回车2022/12/10181.SIMULINK2.或者此处输入1332022/12/11134左键双击2022/12/1019左键双击1342022/12/11135图7.2库模块浏览器

图7.3新建的空白模块窗口

2022/12/1020图7.2库模块浏览器图7.3新建1352022/12/11136连续模块输入模块输出模块2022/12/1021连续模块输入模块输出模块1362022/12/11137连续模块微分状态空间积分传递函数输入延迟输入信号给定延迟输入不定量延迟零、极点模型2022/12/1022连续模块微分状态空间积分传递函数输入1372022/12/11138输入模块2022/12/1023输入模块1382022/12/11139输出模块2022/12/1024输出模块1392022/12/11140

Simulink的仿真原理1Simulink仿真模块通常,Simulink仿真系统包括输入(Input)、状态(states)和输出(Output)三个部分。·输入模块:即信号源模块,包括常数字信号源和用户自定义信号;·状态模块:即被模拟的系统模块,是系统建模的核心和主要部分;·输出模块:即信号显示模块,它能以图形方式、文件格式进行显示注意:在设计一个模型时,必须先确定这三个部分的意,以及它们之间的联系;Simulink的仿真模型并非一定要完全包括这三个部分,它可以缺少其中一个或者两个;Simulink的状态模块可以是连续的、离散的,或者它们二者的结合。2022/12/1025Simulink的仿真原理1Si1402022/12/111412Simulink仿真过程1).初始化阶段①对模型的参数进行估计,得到它们实际计算的值。②展开模型的各个层次;③按照更新的次序对模型进行排序;④确定那些显式化的信号属性,并检查每个模块是否能够接受连接它们输入端的信号;⑤确定所有非显式的信号采样时间模块的采样时间;⑥分配和初始化存储空间,以便存储每个模块的状态和当前值的输出。2).模型执行阶段模型仿真是通过数值积分来进行完成的,计算数值积分可以采用以下两步来进行:①按照秩序计算每个模块的积分;②根据当前输入和状态来决定状态的微分,得到微分矢量,然后把它返回给解法器,以计算下一个采样点的状态矢量。在每一个时间步中,Simulink依次解决下列问题:

·按照秩序更新模块的输出;

·按照秩序更新模块的状态;

·检查模块连续状态的不连续点;

·计算下一个仿真时间步的时间。2022/12/10262Simulink仿真过程2).模141当需要提高速度时,可以考虑采用Fcn或者S函数模块。接收/传输信号模块(From/Goto)revolute——单自由度转动副;3).离散时间积分模块(DiscreteTimeIntegrator)在连续模块(Continuous)库中包括了常见的连续模块,这些模块如图所示。非线性系统处理方法:线性化处理;D)从Simulink的Sink中拖拽示波器1次拖至Untitled模块窗口——SimMechanics3函数与表格模块库(Function&Table)检验仿真精度的方法是:通过修改仿真的相对误差限和绝对误差限,并在一个合适的时间跨度反复运行仿真,对比仿真结果有无大的变化,如果变化不大,表示解是收敛的。1).输入常数模块(Constant)4数学模块库(Math)Universal——球销副;输入信号——计算机指令8).可变传输延迟模块(VariableTransportDelay)功能:对输入变量进行积分。2.数字信号处理模块集(DSPBlockset)5).离散滤波器模块(DiscreteFilter)c)在Math选项中,选择Sum,参数设为[+-],2022/12/111421连续模块库(Continuous)

在连续模块(Continuous)库中包括了常见的连续模块,这些模块如图所示。

7.

3.3Simulink模块库在库模块浏览器中单击Simulink前面的“+”号,就能够看到Simulink的模块库,如图7.2所示。

当需要提高速度时,可以考虑采用Fcn或者S函数模块。2022022/12/111431).积分模块(Integrator):功能:对输入变量进行积分。说明:模块的输入可以是标量,也可以是矢量;输入信号的维数必须与输入信号保持一致。2).微分模块(Derivative)功能:通过计算差分∆u/

∆t近似计算输入变量的微分。3).线性状态空间模块(State-Space)功能:用于实现以下数学方程描述的系统:4).传递函数模块(TransferFcn)功能:用执行一个线性传递函数。5).零极点传递函数模块(Zero-Pole)功能:用于建立一个预先指定的零点、极点,并用延迟算子s表示的连续。6).存储器模块(Memory)功能:保持输出前一步的输入值。7).传输延迟模块(TransportDelay)功能:用于将输入端的信号延迟指定的时间后再传输给输出信号。8).可变传输延迟模块(VariableTransportDelay)功能:用于将输入端的信号进行可变时间的延迟。2022/12/10281).积分模块(Integrato1432022/12/11

温馨提示

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

评论

0/150

提交评论