Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

Unit Delay

将信号延迟一个采样期间

  • 库:
  • Simulink / Discrete

    HDL Coder / Discrete

  • Unit Delay block

说明

Unit Delay 模块按指定的采样期间保持和延迟输入。当放置于迭代子系统中时,该模块将其输入保持并延迟一个迭代。此模块相当于 z-1 离散时间运算符。此模块接受一个输入并生成一个输出。每个信号可以是标量,也可以是向量。如果输入为向量,模块会按相同的采样期间保持和延迟向量中的所有元素。

可通过 Initial conditions 参数指定第一个采样期间的模块输出。仔细选择此参数可以最大程度地减少不需要的输出行为。可通过 Sample time 参数指定样本之间的时间间隔。设置为 -1 表示模块将继承 Sample time

注意

如果您使用 Unit Delay 模块在以不同采样率运行的模块之间进行速率转移,此模块将报告错误。请改用 Rate Transition 模块。

与类似模块的比较

MemoryUnit DelayZero-Order Hold 模块提供相似的功能,但各自具有不同的能力。此外,每个模块的用途也各不相同。

下表显示每个模块的推荐用途。

模块模块的用途引用示例
Unit Delay使用您指定的离散采样时间实现延迟。该模块接受并输出具有离散采样时间的信号。
Memory将信号延迟一个主积分时间步。在理想情况下,该模块接受连续(或在子时间步中固定)的信号并输出在子时间步中固定的信号。
Zero-Order Hold将具有连续采样时间的输入信号转换为具有离散采样时间的输出信号。

每个模块有以下功能。

功能MemoryUnit DelayZero-Order Hold
指定初始条件否,因为在时间 t = 0 的模块输出必须与输入值相匹配。
指定采样时间否,因为该模块只能从驱动模块或用于整个模型的求解器继承采样时间。
支持基于帧的信号
支持状态记录

字符串支持

仅当 Unit Delay 模块配置为延迟长度为 01 或直接馈通时,该模块才能接受和输出字符串数据类型。

端口

输入

全部展开

输入信号,它被模块延迟了一个采样期间。

数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | Boolean | fixed point | enumerated | bus

输出

全部展开

输出信号,即延迟了一个采样期间的输入信号。

数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | Boolean | fixed point | enumerated | bus

参数

全部展开

Main

指定第一个采样期间的仿真输出,否则,此周期内 Unit Delay 模块的输出为未定义。

编程用法

模块参数InitialCondition
类型:字符向量
:标量 | 向量
默认值'0'

指定模块是执行基于采样还是基于帧的处理:

  • Columns as channels (frame based)” - 将输入信号的每一列视为一个单独的通道(基于帧的处理)。

    注意

    基于帧的处理需要具有 DSP System Toolbox™ 许可证。

    有关详细信息,请参阅Sample- and Frame-Based Concepts (DSP System Toolbox)

  • Elements as channels (sample based)” - 将输入信号的每个元素视为一个单独的通道(基于采样的处理)。

可以使用 Input processing 指定模块是执行基于采样的处理还是基于帧的处理。对于输入 u,模块接受基于帧的信号。所有其他输入信号都必须基于采样。

输入信号 u输入处理模式模块是否支持?
基于采样基于采样
基于帧不,生成错误
基于采样基于帧
基于帧

有关这两种处理模式的详细信息,请参阅Sample- and Frame-Based Concepts (DSP System Toolbox)

编程用法

模块参数InputProcessing
类型:字符向量
'Columns as channels (frame based)' | 'Elements as channels (sample based)'
默认值'Elements as channels (sample based)'

输入采样时间命中点之间的离散间隔,或者指定 -1 以继承采样时间。

另请参阅指定采样时间

编程用法

模块参数SampleTime
类型:字符向量
:实数标量
默认值'-1'

State Attributes

使用此参数为模块状态指定唯一名称。默认值为 ' '。如果此字段为空,则表示未指定任何名称。使用此参数时,请记住以下注意事项:

  • 有效的标识符以字母或下划线字符开始,后跟字母数字或下划线字符。

  • 状态名称仅适用于所选模块。

当您点击 Apply 时,此参数将启用 State name must resolve to Simulink signal object

有关详细信息,请参阅模型接口元素的 C 代码生成配置 (Simulink Coder)

编程用法

模块参数:StateName
类型:字符向量
值:唯一名称
默认值:''

指定是否要求状态名称解析为 Simulink 信号对象。如果选中,则在指定的状态名称与 Simulink 信号对象的名称不匹配时,软件会在运行时生成错误。

依存关系

当为参数 State name 给定值并将模型配置参数 Signal resolution 设置为除 “None” 以外的值时启用。

选中此复选框将禁用 Code generation storage class

编程用法

模块参数StateMustResolveToSignalObject
类型:字符向量
'off' | 'on'
默认值'off'

通过选择目标包定义的信号对象类,来选择自定义存储类包。例如,要应用来自内置包 mpt 的自定义存储类,请选择 “mpt.Signal”。除非您将基于 ERT 的代码生成目标与 Embedded Coder® 一起使用,否则自定义存储类不会影响生成的代码。

要使用除 Simulink® 包之外的存储类包,您必须将该包加载到模型的 Embedded Coder 字典中。请参阅Load Storage Class Packages into Embedded Coder Dictionary (Embedded Coder)

有关使用存储类配置模型数据的信息,请参阅模型接口元素的 C 代码生成配置 (Embedded Coder)。有关自定义存储类的信息,请参阅Organize Data into Structures in Generated Code (Embedded Coder)

编程用法

模块参数:StateSignalObject
类型:字符向量
值:'Simulink.Signal' | '<StorageClass.PackageName>'
默认值:'Simulink.Signal'

选择用于代码生成的状态存储类。如果您不需要与外部代码对接,请选择 Auto

有关详细信息,请参阅模型接口元素的 C 代码生成配置 (Simulink Coder)使用 Struct 存储类将参数数据组织为结构体 (Embedded Coder)

编程用法

模块参数:StateStorageClass
类型:字符向量
值:'Auto' | 'Model default' | 'ExportedGlobal'' | 'ImportedExtern' | 'ImportedExternPointer' | 'Custom'
默认值:'Auto'

模块特性

数据类型

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

另请参阅

|

在 R2006a 之前推出