Unit Delay.docx
《Unit Delay.docx》由会员分享,可在线阅读,更多相关《Unit Delay.docx(12页珍藏版)》请在冰豆网上搜索。
UnitDelay
UnitDelay
延迟信号的采样周期
库
离散
描述
UnitDelay块保存和延迟指定的采样周期的输入。
此块是相等于z-1的离散时间操作。
块接受的一个输入端,并产生一个输出。
每个信号可以是标量或矢量。
如果输入是一个矢量,块保存,并延迟在相同的采样周期的向量的所有元素。
您指定块的输出的第一个采样周期的Initialconditions参数。
仔细选择此参数,可以最大限度地减少不必要的输出行为。
您可以指定样品的Sampletime参数之间的时间。
设置为-1表示该块继承Sampletime。
当UnitDelay块继承的连续采样时间,该块是类似的Memory块
提示不要使用UnitDelay块的块工作在不同的采样率之间创建一个慢到快的转变。
相反,使用RateTransition块。
比较相似的块
类似的功能块
UnitDelay,Memory,和Zero-OrderHold模块提供了类似的功能,但具有不同的功能。
此外,每个块的目的是不同的。
以下各节将突出这些差异。
每块的建议用途
块
块的目的
参考例
UnitDelay
实现使用您指定的离散采样时间的延迟。
在理想的情况下,块接受和输出信号是离散的采样时间。
∙sldemo_enginewcsldemo_enginewc(Compressionsubsystem)
Memory
实现一个积分时间步长的延迟。
在理想的情况下,块接受和输出信号的采样时间是连续的或固定在较小的时间步长。
见TypesofSampleTime
∙sldemo_bouncesldemo_bounce
∙sldemo_clutchsldemo_clutch(FrictionModeLogic/LockupFSMsubsystem)
Zero-OrderHold
离散的采样时间的输出信号与连续采样时间的输入信号转换。
∙sldemo_radar_emlsldemo_radar_eml
∙aero_dap3dofaero_dap3dof
块功能概述
性能
块
UnitDelay
Memory
Zero-OrderHold
初始条件参数
是
是
不,块的输出,因为在时间t=0必须匹配的输入值。
采样时间参数
是
不,因为块只能继承采样时间(驱动块或用于整个模型的求解)。
是
支持基于帧的信号
是
不
是
支持状态记录
是
不
不
规划求解参数块输出的影响
当您为UnitDelay或Zero-OrderHold块指定在对话框中的离散采样时间,块输出可以为模型的求解器规格不同而有所不同。
假设你有一个模型有UnitDelay和Zero-OrderHold块,都使用了离散采样时间为1:
RepeatingSequenceStair块使用的连续采样时间为0到提供输入信号的UnitDelay和Zero-OrderHold块。
如果模型使用固定步长求解器,步长为1,scope给出了仿真结果:
如果模型使用一个变步长解算器,scope显示下面的仿真结果:
Zero-OrderHold块的输入RepeatingSequenceStair块值在t=0,1,2,...,9,并持有一个采样周期(1秒)的每一个输入值。
UnitDelay块施加相同的1–秒保持每个输入值的RepeatingSequenceStair块,但也延迟一个采样周期的每个值。
Initialconditions参数指定输出的UnitDelay块中的第一个采样周期。
见WhatIsSampleTime?
和SpecifySampleTime.
一个模型的求解规范也影响到Memory块的行为。
见ExamplesofMemoryBlockUsage
数据类型支持
UnitDelay块接受任何Simulink的支持的实数或复数信号,包括定点和枚举数据类型。
如果是用户定义的数据类型的输入信号,其初始条件必须是零。
见DataTypesSupportedbySimulink.
参数和对话框
在模拟过程中,该块使用以下值:
∙信号的状态名称被解析到对象的初始值
∙信号对象的最小值和最大值
见States.
Initialcondition
指定的仿真输出为第一取样期间,在此期间,UnitDelay块的输出,是其他未定义。
设置
默认:
0
Initialconditions参数转换成一个输入的double数据类型,脱机状态下使用舍入到最近的饱和度。
命令行信息
见Block-SpecificParameters.
Inputprocessing
指定UnitDelay块进行采样或基于帧的处理。
设置
默认:
Elementsaschannels(samplebased)
Elementsaschannels(samplebased)
对待每一个元素的输入作为一个单独的信道(基于样品的处理)。
Columnsaschannels(framebased)
对待每列的输入作为一个单独的信道(基于帧的处理)。
Inherited
设置块继承处理模式中,从输入信号和延迟相应的输入。
您可以识别输入信号是否是通过寻找在信号线的样品或基于帧的。
Simulink的代表单行的基于采样的信号和基于帧的信号用的双行
注:
当你在Inputprocessing参数选择了Inherited选项,输入信号是基于帧的Simulink®在将来的版本中会生成一个警告或错误
使用Inputprocessing指定块是否能执行采样或基于帧的处理。
块接受基于帧的信号输入u。
所有其他的输入信号必须是基于采样的。
输入信号u
输入处理模式
块运作?
基于样本
基于样本
是
基于帧的
不,产生一个错误
基于样本
基于帧的
是
基于帧的
是
基于样本
继承
是
基于帧的
是
见Sample-andFrame-BasedConcepts
依赖
基于帧的处理需要一个DSP系统工具箱许可证。
命令行信息
见Block-SpecificParameters.
Sampletime(-1forinherited)
输入的离散间隔之间采样时间点击或指定其他适当的采样时间,如连续或继承的。
设置
默认:
-1
默认块继承了它的采样时间,根据该块内的模型的上下文。
要设置不同的采样时间,根据表中输入一个有效的采样时间在TypesofSampleTime.
参考SpecifySampleTime.
命令行信息
见Block-SpecificParameters.
Statename
使用此参数可以为每个状态指定一个唯一的名称。
设置
默认:
''
∙如果留空,用户没有指定。
提示
∙一个有效的标识符以字母或下划线,其次是字母数字或下划线字符。
∙状态名称仅适用于选定的块。
依赖
此参数启用StatenamemustresolvetoSimulinksignalobject当你点击Apply按钮.
见States.
命令行信息
见Block-SpecificParameters.
StatenamemustresolvetoSimulinksignalobject
要求状态名称解析到Simulink信号对象。
.
设置
默认:
Off
On
要求状态名称解析到Simulink信号对象。
.
Off
不要求状态名称解析到Simulink信号对象。
.
依存关系
Statename启用此参数.
选中此复选框禁用Codegenerationstorageclass.
命令行信息
见Block-SpecificParameters.
Package
选择一个包,定义了自定义的存储类,你要申请。
设置
默认:
---None---
---None---
设置内部存储类属性。
mpt
应用内置的mpt包。
Simulink
应用内置在Simulink封装。
依存关系
如果你定义了任何你自己的包,请点击Refresh.此操作会将您的搜索路径中的所有用户定义的包到包列表。
命令行信息
见Block-SpecificParameters.
Codegenerationstorageclass
选择状态存储类。
设置
默认:
Auto
Auto
Auto是适当的存储类,你不需要外部代码接口。
ExportedGlobal
状态被存储在一个全局变量
ImportedExtern
model_private.h作为外部变量声明的状态。
ImportedExternPointer
model_private.h作为一个外部的指针声明的状态.
依存关系
Statename启用此参数.
将该参数设置为ExportedGlobal,ImportedExtern,或ImportedExternPointer启用Codegenerationstoragetypequalifier.
命令行信息
见Block-SpecificParameters.
参考
StateStorageClasses.
Codegenerationstorageclass(whenPackageisselected)
选择自定义存储类的状态。
设置
默认:
Auto
Auto
Auto是适当的存储类,你不需要外部代码接口。
SimulinkGlobal
model_Pinitializesthestatetoitscorrespondingvalueintheworkspace.
ExportedGlobal
状态被存储在一个全局变量
ImportedExtern
model_private.h作为外部变量声明的状态。
ImportedExternPointer
model_private.h作为一个外部的指针声明的状态.
Default
不可编辑的占位符存储类.
BitField
struct声明中创建嵌入布尔数据。
Volatile
声明使用volatile类型限定符的状态。
ExportToFile
头(.h)Header(.h)文件的生成,其中包含全局变量声明与用户指定的名称。
ImportFromFile
包括预定义的头(.h)文件,其中包含全局变量声明。
FileScope
静态限定符产生前的状态声明,使状态到当前文件可见
Struct
struct声明创建参数或信号封装对象数据。
StructVolatile
struct声明中使用volatile类型限定符。
GetSet
支持专门的函数调用来读取和写入内存。
依存关系
Statename启用此参数.
不同的基础上有效的存储类的Package列表部分.
将该参数设置为ExportedGlobal,ImportedExtern,或ImportedExternPointer启用Codegenerationstoragetypequalifier.
命令行信息
见Block-SpecificParameters.
参考
StateStorageClasses.
Codegenerationstoragetypequalifier
指定的Simulink编码器的存储类型限定符。
设置
默认:
''
如果留空,没有限定符分配。
依赖
设置Codegenerationstorageclass为ExportedGlobal,ImportedExtern,或ImportedExternPointer启用此参数.
命令行信息
见Block-SpecificParameters.
总线支持
UnitDelay块是一个总线功能块。
输入可以是一个虚拟的还是非虚拟的总线信号受以下限制:
∙Initialconditions必须是零,一个非零的标量,或一个有限的数字结构。
∙如果Initialconditions是零或结构,并指定Statename,输入不能是一个虚拟总线。
∙如果Initialconditions是一个非零的标量,没有Statename可以被指定。
见SpecifyInitialConditionsforBusSignals.
一个非虚拟总线输入到一个UnitDelay块中的所有信号必须具有相同的采样时间,即使相关的总线对象的元素指定继承的采样时间。
您可以使用RateTransition块来改变单个信号的采样时间,或在一个总线的所有信号。
见AboutCompositeSignals和Bus-CapableBlocks
实例
举一个例子,如何使用UnitDelay块,见sldemo_enginewcsldemo_enginewc模型.UnitDelay块出现在Compression子系统。
特性
总线功能
是,正如BusSupport限制
直接馈通
不
采样时间
在Sampletime参数里指定
标量扩展
是,输入或初始条件
状态
是,继承自驱动块的非固定点数据类型
量纲
是
多量纲
是
过零检测
不
参考
Memory,Zero-OrderHold