Engee 文档

Discrete-Time Integrator

信号的离散积分或累加。

类型: DiscreteIntegrator

图书馆中的路径:

/Basic/Discrete/Discrete-Time Integrator

资料描述

使用块 Discrete-Time Integrator 而不是块 Integrator 以创建完全离散的模型。

输出方程

在第一时间步,即在块的状态 ,输出值 .

对于给定的步骤 在模拟时间内 输出数据 它们根据所选方法进行更新,如下所示:

  • 直接欧拉法:

    .

  • 逆欧拉法:

    .

  • 梯形方法:

    .

这些输出方程在状态空间中的实现取决于块计算步骤而被自动选择,其可以是显式的或继承的。 使用显式指定的计算步骤时 减少到计算步骤 为所有人 .

整合和积累的方法

该单元可以使用正向欧拉法、逆欧拉法或梯形法对信号进行积分或累加。 假设 -这是入口, -这是出路,嗯 "这是一个条件。 对于给定的步骤 更新后的 . 在集成模式 —这是块计算步骤。 在累积模式 . 块计算步骤确定何时计算输出信号,而不是输出值。 -增益因子。 值根据上限或下限进行修剪。

直接欧拉法

直接欧拉方法(默认使用),也称为直矩形或左近似。

块近似 如何 . 步骤中块输出的表达式 :

,

.

块使用这些步骤来计算输出信号。:

步骤0:

(如有需要,有限制)

步骤一:

步骤n:

(如有需要,有限制)

逆欧拉法

逆欧拉方法,也称为逆矩形或右旋近似。

块近似 如何 . 步骤中块输出的表达式 :

,

.

块使用这些步骤来计算输出信号。:

步骤0:

(如有需要,有限制)

步骤一:

步骤n:

梯形方法

对于这种方法,块近似 如何 .

用于计算输出信号的表达式:



确定初始状态

您可以在块的对话框中将初始状态定义为参数,也可以从外部信号输入它们。:

  • 要将初始状态定义为块参数,请指定 Initial condition source 如何 internal 并在字段中输入值 Initial condition .

  • 若要从外部源获取初始状态,请指定 Initial condition source 如何 external. 输入端口下方会出现一个额外的输入端口。

discrete time integrator 1

何时使用状态端口

在以下情况下使用状态端口而不是输出端口:

  • 当块输出通过复位端口或初始状态端口返回到块时,引起代数循环。

  • 当需要将状态从一个有条件地执行的子系统转移到另一个子系统时,这会导致同步问题。

您可以通过通过状态端口而不是输出端口传递状态来解决这些问题。 Engee*在与输出稍有不同的时间生成状态,这可以保护模型免受此类问题的影响。 要显示块状态,请选中该框 *Show state port . 状态端口将出现在块的顶部。

discrete time integrator 2

积分器的限制

若要确保输出数据不超过指定的级别,请选中该框 Limit output 并在相应的参数字段中输入限制。 此操作导致块作为有限积分器起作用。 当输出达到极限值时,积分器操作结束。

该块定义输出数据如下:

  • 当积分小于或等于 Lower saturation limit ,输出信号保持在 Lower saturation limit .

  • 当积分介于 Lower saturation limitUpper saturation limit ,输出为积分。

  • 当积分大于或等于 Upper saturation limit ,输出信号保持在 Upper saturation limit .

要生成指示状态何时受限的信号,请选中该框 Show saturation port . 块输出端口下方出现饱和端口。

discrete time integrator 3

信号取三个值之一:

  • `1’表示施加上限。

  • '0’表示积分不受限制。

  • `-1’表示应用了下限。

重置状态

块将其状态复位到外部信号上的初始状态。 复位触发器的类型由参数决定 External reset . 当选择除 none 单元具有复位端口,其旁边指示复位触发器的类型。

discrete time integrator 4

重置触发器的类型

参数 External reset 允许您定义复位触发器的复位信号属性。 以下触发器是可能的:

  • rising -复位信号通过边沿时的状态,即从负值或零值增加到正值。 例如,下图显示了复位触发器的效果。 rising 用逆欧拉法进行积分。

    discrete time integrator rising reset

  • falling -复位信号被切断时的状态,即从正值下降到零或负值。 例如,下图显示了复位触发器的效果。 falling 用逆欧拉法进行积分。

    discrete time integrator falling reset

  • either -重置复位信号上升或下降时的状态,即它从零变为非零值,从非零值变为零,或改变符号。 例如,下图显示了复位触发器的效果 either 用逆欧拉法进行积分。

    discrete time integrator either reset

  • level —复位并将输出保持在其初始状态,直到复位信号为零,即在当前时间步长处不同于零或在当前时间步长处从上一个时间步长处的非零值变为零。 例如,此图显示了复位触发器的效果。 level 用逆欧拉法进行积分。

    discrete time integrator level reset

  • sampled level -当复位信号为非零时将输出信号复位到其初始状态。 例如,此图显示了复位触发器的效果。 sampled level 用逆欧拉法进行积分。

    discrete time integrator sampled level reset

选项 sampled level 它需要更少的计算,这使得它比选项更有效 level.

对于块 Discrete-Time Integrator 所有触发器都由具有正值的信号检测。 例如,从`-1`到`0`变化的信号不被认为是上升沿,但是从`0`到`1’变化的信号是。

港口

输出

# 端口_1 — 离散时间内的积分或输入信号的累积值
标量 | 向量 | 矩阵

Details

离散时间的积分或输入信号的累积值。

数据类型

Float64.

复数支持

# 端口_2 — 饱和端口
标量 | 向量 | 矩阵

Details

表示状态约束的信号指定为标量、向量或矩阵。信号有三种取值:

  • 1 "表示适用上限。

  • 0 "表示积分不受约束。

  • 1 "表示适用下限。

参见积分限制

依赖关系

要使用该端口,请选择 Show saturation port 复选框。

数据类型

Float64`。

复数支持

# 端口_3 — 状态端口
标量 | 向量 | 矩阵

Details

以标量、矢量或矩阵形式输出的块状态。状态端口输出在程序块的顶部。

依赖关系

要使用该端口,请选择 Show state port 复选框。

数据类型

Float64`。

复数支持

输入

# 端口_1 — 输入信号
标量 | 向量 | 矩阵

Details

以标量、向量或矩阵形式指定的输入信号。

数据类型

Float16、Float32、Float64、Int8、Int16、Int32、Int64、Int128、UInt8、UInt16、UInt32、UInt64、UInt128、Bool。

复数支持

# x0 — 初始状态
标量 | 向量 | 矩阵

Details

由外部信号设置的程序块初始状态。

请参阅定义初始状态

依赖关系

要使用此端口,请将 Initial condition source 设置为 。 external.

数据类型

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool.

复数支持

# 外部复位 — 复位
标量 | 向量 | 矩阵

Details

通过外部信号将设备状态复位到预设的初始状态。请参阅复位状态

依赖关系

要使用该端口,请为 External reset 设置一个值。

数据类型

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool.

复数支持

参数

主菜单

# Integrator Method — 积分法
Integration: Forward Euler | Integration: Backward Euler | Integration: Trapezoidal | Accumulation: Forward Euler | Accumulation: Backward Euler | Accumulation: Trapezoidal

Details

整合或积累的方法。

Integration: Forward Euler | Integration: Backward Euler | Integration: Trapezoidal | Accumulation: Forward Euler | Accumulation: Backward Euler | Accumulation: Trapezoidal

默认值

Integration: Forward Euler

程序使用名称

IntegratorMethod

可调谐

可计算

# Gain Value — 积分器增益
Scalar / array of real numbers

Details

指定与积分器输入信号相乘的标量、向量或矩阵。增益的每个元素都必须是正实数。

  • 指定 1.0(默认值)以外的值在语义上等同于将Gain 块连接到积分器输入端。

有效值:[1.1 2.2 3.3 4.4][1.1 2.2; 3.3 4.4]

使用该参数指定输入增益可消除生成代码中的乘法运算。不过,要实现这一优点,该参数必须是不可配置的。如果要更改增益,请将该参数设置为 "1.0",然后使用外部块Gain 指定增益。
默认值

1.0

程序使用名称

gainval

可调谐

可计算

# External reset — 复位到初始状态
none | rising | falling | either | level | sampled level

Details

指定外部复位信号的触发类型。

  • rising- 当复位信号通过边沿时复位状态。

  • falling- 当复位信号通过边沿时复位状态。

  • either- 当复位信号上升或下降(通过边沿或片段)时复位状态。

  • level- 复位并将输出保持在初始状态,直到复位信号为零。

  • sampled level- 当复位信号不同于零时,将输出复位到初始状态。

更多信息,请参阅复位状态复位触发器类型

none | rising | falling | either | level | sampled level

默认值

none

程序使用名称

ExternalReset

可调谐

可计算

# Initial condition source — 选择初始状态源
internal | external

Details

初始状态源。定义为

  • internal- 从参数 Initial condition .

  • external- 通过输入端口 X_0,接收来自外部的初始状态。

依赖关系

选择 `internal`可在仿真中使用参数 Initial condition 参数。

选择 `external`禁用该参数 Initial condition 并启用 X_0 输入端口。

internal | external

默认值

internal

程序使用名称

InitialConditionSource

可调谐

可计算

# Initial condition — 初始状态
Scalar / array of real numbers

Details

区块的初始状态。

依赖关系

要使用该参数,请将参数 Initial condition sourceinternal.

默认值

0.0

程序使用名称

InitialCondition

可调谐

可计算

# Initial condition setting — 选择应用初始状态
Auto | Output

Details

选择是否将参数值 Initial condition 还是块输出。初始状态也是复位值。

  • Auto- 块将参数值 Initial condition 到程序块输入端。

    设置初始状态:

    `x(0) = IC

    重置时

    x(n) = IC

  • Output- 程序块将参数值 Initial condition 块输出。

    设置初始状态:

    y(0) = IC

    重置时

    y(n) = IC

Auto | Output

默认值

Auto

程序使用名称

InitialConditionSetting

可调谐

可计算

# Sample time — 计算间隔
SampleTime (real number / vector of two real numbers)

Details

以非负数指定计算步骤之间的间隔。要继承一个计算步骤,请将此参数设置为 -1

不要指定等于 0`的计算步长。该值表示连续计算步长,而区块 Discrete-Time Integrator 不支持。不要指定计算步长为 `infNaN,因为这些值不是离散值。如果指定 -1 从上一级程序块继承计算步长,请确保上一级程序块使用离散计算步长。例如,程序块 Discrete-Time Integrator 不能继承等于 0 的计算步长。
默认值

-1

程序使用名称

SampleTime

可调谐

可计算

# Limit output — 将程序块的输出值限制在指定范围内
Logical

Details

将输出信号限制在参数值范围内 Lower saturation limitUpper saturation limit .

  • 选中该复选框可将输出信号限制为参数 和 的值。 Lower saturation limitUpper saturation limit .

  • 取消选中该复选框可消除对输出信号的限制。

依赖关系

选择该选项可使用参数 Lower saturation limitUpper saturation limit .

默认值

false (关掉)

程序使用名称

LimitOutput

可调谐

可计算

# Upper saturation limit — 积分上限
Scalar / array of real numbers

Details

设置标量、矢量或矩阵输出值的上限。

依赖关系

要使用该参数,请在参数 Limit output .

默认值

Inf

程序使用名称

UpperSaturationLimit

可调谐

可计算

# Lower saturation limit — 积分下限
Scalar / array of real numbers

Details

设置标量、向量或矩阵输出值的下限。

依赖关系

要使用该参数,请在参数 Limit output .

默认值

-Inf

程序使用名称

LowerSaturationLimit

可调谐

可计算

# Show saturation port — 切换饱和输出端口
Logical

Details

选择此复选框可为区块添加饱和输出端口。清除此复选框后,区块将没有饱和输出端口。

依赖关系

选择此选项可启用饱和输出端口。

默认值

false (关掉)

程序使用名称

ShowSaturationPort

可调谐

可计算

# Show state port — 切换状态输出端口
Logical

Details

选择此复选框可为程序块添加状态输出端口。清除此复选框后,程序块将没有状态输出端口。

依赖关系

选择此选项可启用状态输出端口。

默认值

false (关掉)

程序使用名称

ShowStatePort

可调谐

可计算

附加选项

C 代码生成: 是