Engee 文档

Sine Wave

正弦波信号发生器

类型: Sin

Sine Wave

图书馆中的路径:

/Basic/Sources/Sine Wave

Sine Wave Function

图书馆中的路径:

/Basic/Math Operations/Sine Wave Function

说明

Sine Wave 功能块生成正弦信号。该程序块可根据时间或计算步骤进行操作。

如果 Time (t) 设置为 Use external signal,将执行程序块 Sine Wave Function

基于时间的模拟模式

输出信号的值:

.

在基于时间的模式下, Sample time 的值决定了设备是以连续模式还是离散模式运行:

  • 0.0(默认值)"- 设备以连续模式运行;

  • 0.0(默认值)"--设备在离散模式下运行; ">0.0"--设备在离散模式下运行。

块在连续模式下的行为

在连续模式下运行时,大时间值可能会导致精度下降。

离散模式下的单元行为

如果参数 Sample time 的值大于零,则程序块的操作如同控制程序块*Zero-Order Hold* ,其计算步长设为该值。

这样就可以创建离散正弦信号源模型,而不是连续/离散混合系统模型。混合系统本质上更为复杂,因此需要更长的建模时间。

在离散模式下,该程序块使用差分增量算法,而不是基于绝对时间的算法。因此,该程序块可用于设计为无限期运行的模型,如振动或疲劳测试。

微分增量算法根据上一步计算得出的值计算正弦值。该方法使用以下三角函数等式:

, .

矩阵形式

由于 是常数,所以下面的表达式也是常数:

因此,问题变成了 的值与一个常数矩阵相乘,得到

离散模式可以减少但不能消除舍入误差的累积。之所以会出现这种累积,是因为每个时间步的块输出计算取决于前一步的输出值。

在离散模式下处理舍入误差的方法

当区块 Sine Wave 以离散时基模式运行时,要处理舍入误差,可在区块 Sine Wave 之后立即插入区块*Saturation* 。 通过在 Sine Wave 块的输出端插入饱和块,可避免因舍入误差累积而导致的过冲。

基于计算步骤的模式

计算步进模式使用以下公式计算输出信号值:

,

其中

  • А - 是正弦波的振幅;

  • - 每个正弦周期的计算步数;

  • - 从 0 范围内的重复整数值;

  • - 信号的相移;

  • - 信号偏移。

在这种模式下, 在第一个时间步设置为 "0",并使用所述公式计算块输出。在下一个时间步长中, ,并重新计算块输出值。当 达到 时,程序块输出重置为 "0"。这一过程一直持续到模拟结束。

计算块输出的分步计算法的特点是,特定时间步的值与前几步的值无关。因此,这种模式可避免四舍五入误差的累积。

港口

输出

# OUT_1 — 输出信号
标量 | 向量 | 矩阵

Details

根据模块参数值生成的输出正弦信号。

数据类型

Float64`。

复数支持

输入

# IN_1 — 时间
标量 | 向量 | 矩阵

Details

在计算正弦曲线时代表时间源的输入信号。

依赖关系

要使用该端口,请将 Time (t) 参数设置为 Use external signal.

数据类型

Float64`。

复数支持

参数

主页

# Sine type — 正弦型
Time based | Sample based

Details

设置设备产生的正弦波类型。对话框中某些参数的显示取决于所选类型: Time based`或 `Sample based.

Time based | Sample based

默认值

Time based

程序使用名称

SineType

可调谐

可计算

# Time (t) — 时间变量源
Use simulation time | Use external signal

Details

指定时间变量的值源是模拟时间还是外部源。 如果指定 Use external signal,程序块将为时间源创建一个输入端口,并实现程序块 Sine Wave Function

Use simulation time | Use external signal

默认值

程序使用名称

TimeSource

可调谐

可计算

# Amplitude — 正弦振幅
Scalar / array of real numbers

Details

输出正弦信号的振幅。

默认值

1.0

程序使用名称

Amplitude

可调谐

可计算

# Bias — 正弦波的垂直位移
Scalar / array of real numbers

Details

在输出值上添加一个常数。

默认值

0.0

程序使用名称

Bias

可调谐

可计算

# Frequency (rad/sec) — 正弦频率
Scalar / array of real numbers

Details

正弦波的频率(单位:rad/s)。

依赖关系

要使用该参数,请将 Sine type 设置为 。 Time based.

默认值

1.0

程序使用名称

Frequency

可调谐

可计算

# Phase (rad) — 正弦相移
Scalar / array of real numbers

Details

正弦信号的相移。

依赖关系

要使用该参数,请将 Sine type 参数设置为 Time based.

默认值

0.0

程序使用名称

Phase

可调谐

可计算

# Samples per period — 每期步数
Scalar / array of real numbers

Details

指定每个周期的计算步数。

依赖关系

要使用此参数,请将 Sine type 设为 。 Sample based.

默认值

10

程序使用名称

Samples

可调谐

可计算

# Number of offset samples — 计算步数偏移
Scalar / array of real numbers

Details

设置计算步数中的偏移(离散相移)。

依赖关系

要使用该参数,请将 Sine type 设置为 Sample based.

默认值

0

程序使用名称

Offset

可调谐

可计算

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

Details

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

依赖关系

要使用此参数,请将 Time (t) 设置为 -1Use simulation time.

默认值

0

程序使用名称

SampleTime

可调谐

可计算

附加选项

C 代码生成: 是