Engee 文档

Derivative

输入信号的时间导数。

类型: Derivative

图书馆中的路径:

/Basic/Continuous/Derivative

说明

程序块 Derivative 近似计算输入信号 在仿真时间 内的导数。导数 的真实值近似于关系式 ,其中 是输入信号的增量, 是自上一个(主要)计算步骤以来的时间变化。

该模块接收一个输入信号并产生一个输出信号。输出信号的初始值为零。

程序块输入和输出之间的确切关系:

其中

  • - 是当前建模时间;

  • - 上一数值的计算时间,与上一主要时间步的时间一致。

Derivative 的输出信号可能对整个模型的动态很敏感。输出信号的精度取决于模型计算的步长。步长越小,模块输出的曲线越平滑、越准确。然而,与具有连续状态的程序块不同,当程序块的输入快速变化时,求解器不会执行较小的步长。根据控制信号和模型的动态变化,程序块输出可能会出现意外波动。这些波动主要是由于输出信号的误差和求解器的步长造成的。

鉴于这些特点,在构建模型时应使用积分器(如块Integrator ),而不是块 DerivativeIntegrator 块具有允许求解器调整步长和提高仿真精度的状态。

如果需要将 Derivative 块与步长可变的求解器配合使用,请将求解器的最大步长设置为 Derivative 块能够以足够精度进行计算的值。要确定该值,可能需要使用不同的求解器设置多次运行仿真。

如果该程序块的输入是离散信号,则输入信号的连续导数会随着输入信号值的变化而产生脉冲。否则,它等于 "0"。另外,也可以使用离散信号最后两个值的差值来确定离散信号的离散导数:

对这个等式进行 变换,结果是

Discrete Derivative 程序块模拟了这种行为。用该程序块代替 Derivative 程序块来近似计算离散信号的时间导数。

端口

输入

# IN_1 — 输入信号
scalar | vector

Details

要区分的信号。

数据类型

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

复数支持

输出

# OUT_1 — 输入信号的时间导数
标量

Details

输入信号的时间导数。

输入信号的时间微分为

其中

  • - 是当前建模时间;

  • - 前一个值的计算时间,与上一个主时间步的时间重合。

数据类型

Float64`。

复数支持