Документация Engee

Sine Wave

Генератор синусоидального сигнала.

sine wave

Описание

Блок Sine Wave генерирует синусоидальный сигнал. Блок может работать на основе времени или на основе шагов расчета.

Если вы выбираете для параметра Time значение Use external signal, вы получаете блок Sine Wave Function.

Режим на основе времени симуляции

Значение выходного сигнала:

В режиме на основе времени значение параметра Sample time определяет, работает ли блок в непрерывном или в дискретном режиме.

  • 0.0 (по умолчанию) — блок работает в непрерывном режиме.

  • >0.0 — блок работает в дискретном режиме.

Поведение блока в непрерывном режиме

При работе в непрерывном режиме возможны потери точности при больших значениях времени.

Поведение блока в дискретном режиме

Значение параметра Sample time, большее нуля, заставляет блок работать так, как если бы он управлял блоком Zero-Order Hold, шаг расчета которого установлен на это значение.

Таким образом, можно создавать модели с источниками синусоидальных сигналов, которые являются дискретными, а не модели, которые представляют собой гибридные непрерывные/дискретные системы. Гибридные системы по своей природе более сложны, и поэтому для их моделирования требуется больше времени.

В дискретном режиме этот блок использует дифференциальный инкрементный алгоритм вместо алгоритма, основанного на абсолютном времени. В результате блок может быть полезен в моделях, предназначенных для работы в течение неопределенного времени, например, при испытаниях на вибрацию или усталость.

Дифференциальный инкрементный алгоритм вычисляет синус на основе значения, вычисленного в предыдущий шаг расчета. Этот метод использует следующие тригонометрические тождества:

В матричной форме:

Поскольку постоянна, следующее выражение является константой:

Таким образом, задача становится одной из задач матричного умножения значения на постоянную матрицу, чтобы получить .

Дискретный режим уменьшает, но не устраняет накопление ошибок округления. Это накопление может произойти, потому что вычисление вывода блока на каждом временном шаге зависит от значения вывода на предыдущем шаге.

Методы обработки ошибок округления в дискретном режиме

Чтобы обработать ошибки округления, когда блок Sine Wave работает в дискретном режиме, основанном на времени, вставьте блок Saturation непосредственно после блока Sine Wave. Установив блок насыщения на выходе блока Sine Wave, можно избежать перерегулирования из-за накопления ошибок округления.

Режим на основе шагов расчета

Режим на основе шагов расчета использует следующую формулу для вычисления значения выходного сигнала:

π

  • А — амплитуда синусоиды.

  • — количество шагов расчета на период синусоиды.

  • — повторяющееся целочисленное значение в диапазоне от [0] до [p–1].

  • — фазовый сдвиг сигнала.

  • — смещение сигнала.

В этом режиме устанавливается равным 0 на первом временном шаге, и выход блока вычисляется по описанной формуле. На следующем временном шаге увеличивается, и значение выхода блока пересчитываются. Когда достигает , выход блока сбрасывается до 0. Этот процесс продолжается до конца моделирования.

Основанный на шагах расчета метод вычисления выходного сигнала блока отличается тем, что значение на заданном временном шаге не зависит от значения на предыдущих шагах. Таким образом, этот режим позволяет избежать накопления ошибок округления.

Порты

Вход

Port_1 — время
скаляр | вектор | матрица

Входной сигнал, представляющий источник времени при расчете синусоиды.

Зависимости

Чтобы использовать этот порт, установите для параметра Time значение Use external signal.

Выход

Port_1 — выходной сигнал
скаляр | вектор | матрица

Выходной синусоидальный сигнал, сгенерированный на основе значений параметров блока.

Типы данных: Float64

Параметры

Sine type — тип синусоиды
Time based (по умолчанию) | Sample based

Задайте тип синусоиды, которую генерирует этот блок. Некоторые параметры в диалоговом окне появляются в зависимости от того, какой тип выбран: Time based или Sample based.

Программное использование

Параметр блока

SineType

Значение

Time based | Sample based

По умолчанию

Time based

Time (t) — источник переменной времени
Use simulation time (по умолчанию) | Use external signal

Укажите, использовать ли в качестве источника значений для переменной времени время симуляции или внешний источник. Если вы задаете Use external signal, блок создает входной порт для источника времени и работает аналогично блоку Sine Wave Function.

Программное использование

Параметр блока

TimeSource

Значение

Use simulation time | Use external signal

По умолчанию

Use simulation time

Amplitude — амплитуда синусоиды
1.0 (по умолчанию) | скаляр | вектор | матрица

Амплитуда выходного синусоидального сигнала.

Программное использование

Параметр блока

Amplitude

Значение

скаляр | вектор | матрица

По умолчанию

1

Bias — вертикальное смещение синусоиды
0.0 (по умолчанию) | скаляр | вектор | матрица

Постоянное значение, добавляемое к выходному значению.

Программное использование

Параметр блока

Bias

Значение

скаляр | вектор | матрица

По умолчанию

0

Frequency (rad/sec) — частота синусоиды
1.0 (по умолчанию) | скаляр | вектор | матрица

Частота синусоиды в рад/с.

Зависимости

Чтобы использовать этот параметр, установите для параметра Sine type значение Time based.

Программное использование

Параметр блока

Frequency

Значение

скаляр | вектор | матрица

По умолчанию

1

Phase (rad) — фазовый сдвиг синусоиды
0.0 (по умолчанию) | скаляр | вектор | матрица

Фазовый сдвиг синусоидального сигнала.

Зависимости

Чтобы использовать этот параметр, установите для параметра Sine type значение Time based.

Программное использование

Параметр блока

Phase

Значение

скаляр | вектор | матрица

По умолчанию

0

Samples per period — шагов на период
10 (по умолчанию) | скаляр | вектор | матрица

Укажите количество шагов расчета за период.

Зависимости

Чтобы использовать этот параметр, установите для параметра Sine type значение Sample based.

Программное использование

Параметр блока

Samples

Значение

скаляр | вектор | матрица

По умолчанию

10

Number of offset samples — смещение в количестве шагов расчета
0.0 (по умолчанию) | скаляр | вектор | матрица

Задайте смещение (дискретный фазовый сдвиг) в количестве шагов расчета.

Зависимости

Чтобы использовать этот параметр, установите для параметра Sine type значение Sample based.

Программное использование

Параметр блока

Offset

Значение

скаляр | вектор | матрица

По умолчанию

0

Sample time — интервал между шагами расчета
0.0 (по умолчанию) | скаляр

Укажите интервал между шагами расчета как неотрицательное число. Чтобы наследовать шаг расчета, установите для этого параметра значение −1.

Программное использование

Параметр блока

SampleTime

Значение

скаляр

По умолчанию

0

Дополнительные возможности

Генерация Си кода: Да