离散时间积分器
离散积分或信号累积。
类型: DiscreteIntegrator
图书馆中的路径:
|
说明
使用块 离散时间积分器 代替块积分器 来创建完全离散的模型。
输出方程
在第一个时间步骤中,即在程序块 的状态下,输出值 。
在给定的时间步 与模拟时间 ,输出数据 根据所选方法更新如下:
-
欧拉直接法:
.
-
欧拉反演法
.
-
梯形法
.
这些输出方程在状态空间中的实现是根据块计算步骤自动选择的,计算步骤可以是明确的, 也可以是继承的。当使用明确定义的计算步骤时, 将简化为所有 的计算步骤 。
积分和累加方法
该程序块可以使用正向欧拉法、反向欧拉法或梯形法对信号进行积分或累加。假设 为输入, 为输出, 为状态。在给定步长下, 与 和 一起更新。在积分模式下, 是分块计算的步长。在累加模式下, 。块计算步骤决定何时计算输出,但不决定输出值。 - 增益。根据上限或下限对数值进行修整。
欧拉直接法
欧拉直接法(默认使用),也称直接矩形法或左近似法。
程序块对 的近似值为 。程序块在 步的输出表达式:
,
.
该模块利用这些步骤计算输出信号:
步骤 0: |
(步骤 0:(如有必要可加以限制)
|
步骤 1: |
|
步骤 n: |
(步骤 n:(如有必要可加以限制) |
初始状态的定义
您可以在程序块对话框中将初始状态定义为参数,也可以通过外部信号输入初始状态:
-
要将初始状态定义为程序块参数,请将 初始条件源 指定为 `内部`并在 初始条件 字段中输入数值。
-
要从外部信号源获取初始状态,请将 初始条件源 指定为
外部
.输入端口下方会出现一个附加输入端口。
何时使用状态端口
在下列情况下,请使用状态端口而不是输出端口:
-
当块输出通过复位端口或初始状态端口返回块,导致代数循环时。
-
需要将状态从一个有条件执行的子系统转移到另一个子系统时,这可能会导致同步问题。
通过状态端口而不是输出端口传递状态可以避免这些问题。Engee 生成状态的时间与输出的时间略有不同,这可以保护模型免受此类问题的影响。要输出程序块的状态,请选择复选框 显示状态端口 。状态端口将出现在程序块的顶部。
集成商的限制
为确保输出数据不超过指定水平,请选择复选框 限制输出 并在相应参数字段中输入限制。此操作将使程序块作为限制积分器运行。当输出达到限值时,积分器动作将被终止。
程序块的输出定义如下
-
当积分小于或等于 饱和度下限 时,输出保持在 饱和度下限 。
-
当积分介于 饱和度下限 和 饱和上限 之间时,输出为积分。
-
当积分大于或等于 饱和上限 时,输出保持在 饱和上限 。
要在状态受限时生成指示信号,请选中 显示饱和端口 。饱和端口出现在块输出端口下方。
信号有三种取值:
-
1 "表示适用上限。
-
0 "表示积分没有上限。
-
1 "表示适用下限。
重置触发器类型
通过参数 外部复位 可以定义作为复位触发器的复位信号的属性。可以使用以下触发器:
-
上升
- 当复位信号通过一个边沿时复位状态,即从负值或零值上升到正值。例如,下图显示了复位触发器对反欧拉积分法的影响 `上升`对反欧拉法积分的影响。 -
下降
- 当复位信号通过截止点,即从正值降为零或负值时,复位触发器会重置状态。例如,下图显示了复位触发器对反欧拉法积分的影响。 `下降`对反欧拉法积分的影响。 -
或者
- 当复位信号上升或下降时,即从零值变为非零值、从非零值变为零值或符号改变时,复位状态。例如,下图显示了复位触发器对反欧拉法积分的影响 `或者`对反欧拉法积分的影响。 -
电平
- 复位并将输出保持在初始状态,直到复位信号为零,即在当前时间步长内与零值不同,或者从上一时间步长的非零值变为当前时间步长的零值。例如,下图显示了复位触发器对反欧拉积分法的影响 `电平`对逆欧拉法积分的影响。 -
采样电平
- 当复位信号不同于零时,输出信号会复位到初始状态。例如,该图显示了复位触发器对反欧拉法积分的影响。 `采样电平`对反欧拉法积分的影响。
选项 采样电平`选项需要的计算量更少,因此比 `电平
.
对于 离散时间积分器 程序块,所有触发器都由正值信号定义。例如,信号从"-1 "变为 "0 "不被视为上升沿,但信号从 "0 "变为 "1 "则被视为上升沿。 |
端口
参数
主菜单
#
积分法 —
积分法
整合:正向欧拉
| 积分逆欧拉积分
| 集成:梯形
| 累积正向欧拉
| 累积后向欧拉
| 累积梯形
Details
整合或积累的方法。
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
外部复位 —
复位到初始状态
无
| 上升
| 下降
| 或者
| 电平
| 采样电平
#
初始条件源 —
选择初始状态源
内部
| 外部
Details
初始状态源。定义为
-
内部
- 从参数 初始条件 . -
外部
- 通过输入端口 X_0,接收来自外部的初始状态。
依赖关系
选择 `内部`可在仿真中使用参数 初始条件 参数。
选择 `外部`禁用该参数 初始条件 并启用 X_0 输入端口。
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
初始条件 —
初始状态
Scalar / array of real numbers
Details
区块的初始状态。
依赖关系
要使用该参数,请将参数 初始条件源 值 内部
.
默认值 |
|
程序使用名称 |
|
可调谐 |
是 |
可计算 |
是 |
#
初始条件设置 —
选择应用初始状态
自动
| 输出
Details
选择是否将参数值 初始条件 还是块输出。初始状态也是复位值。
-
自动
- 块将参数值 初始条件 到程序块输入端。设置初始状态:
`x(0) = IC
重置时
x(n) = IC
-
输出
- 程序块将参数值 初始条件 块输出。设置初始状态:
y(0) = IC
重置时
y(n) = IC
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
采样时间 —
计算间隔
SampleTime (real number / vector of two real numbers)
Details
以非负数指定计算步骤之间的间隔。要继承一个计算步骤,请将此参数设置为 -1
。
不要指定等于 0`的计算步长。该值表示连续计算步长,而区块 离散时间积分器 不支持。不要指定计算步长为 `inf 或 NaN ,因为这些值不是离散值。如果指定 -1 从上一级程序块继承计算步长,请确保上一级程序块使用离散计算步长。例如,程序块 离散时间积分器 不能继承等于 0 的计算步长。
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
限制输出 —
将程序块的输出值限制在指定范围内
Logical
Details
将输出信号限制在参数值范围内 饱和度下限 и 饱和上限 .
-
选中该复选框可将输出信号限制为参数 и 的值。 饱和度下限 и 饱和上限 .
-
取消选中该复选框可消除对输出信号的限制。
依赖关系
选择该选项可使用参数 饱和度下限 и 饱和上限 .
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
饱和上限 —
积分上限
Scalar / array of real numbers
Details
设置标量、矢量或矩阵输出值的上限。
依赖关系
要使用该参数,请在参数 限制输出 .
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
饱和度下限 —
积分下限
Scalar / array of real numbers
Details
设置标量、向量或矩阵输出值的下限。
依赖关系
要使用该参数,请在参数 限制输出 .
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
显示饱和端口 —
切换饱和输出端口
Logical
Details
选择此复选框可为区块添加饱和输出端口。清除此复选框后,区块将没有饱和输出端口。
依赖关系
选择此选项可启用饱和输出端口。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
显示状态端口 —
切换状态输出端口
Logical
Details
选择此复选框可为程序块添加状态输出端口。清除此复选框后,程序块将没有状态输出端口。
依赖关系
选择此选项可启用状态输出端口。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |