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

Генератор синусоиды

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

Тип: Sin

Генератор синусоиды

Путь в библиотеке:

/Basic/Sources/Sine Wave

Синусоидальная функция

Путь в библиотеке:

/Basic/Math Operations/Sine Wave Function

Описание

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

Если выбрать для параметра Время (t) значение Использовать внешний сигнал, то будет реализован блок Синусоидальная функция.

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

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

.

В режиме на основе времени значение параметра Период дискретизации определяет, работает ли блок в непрерывном или в дискретном режиме:

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

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

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

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

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

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

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

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

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

, .

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

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

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

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

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

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

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

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

,

где

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

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

  • — повторяющееся целочисленное значение в диапазоне от 0 до ;

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

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

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

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

Порты

Выход

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

Details

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

Типы данных

Float64

Поддержка комплексных чисел

Нет

Вход

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

Details

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

Зависимости

Чтобы использовать этот порт, установите для параметра Время (t) значение Использовать внешний сигнал.

Типы данных

Float64

Поддержка комплексных чисел

Нет

Параметры

Основные

# Тип синусоиды — тип синусоиды
На основе времени | На основе шагов расчета

Details

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

Значения

Time based | Sample based

Значение по умолчанию

Time based

Имя для программного использования

SineType

Настраиваемый

Нет

Вычисляемый

Нет

# Время (t) — источник переменной времени
Использовать время моделирования | Использовать внешний сигнал

Details

Укажите, использовать ли в качестве источника значений для переменной времени время симуляции или внешний источник. Если вы задаете Использовать внешний сигнал, то блок создает входной порт для источника времени и реализует блок Синусоидальная функция.

Значения

Use simulation time | Use external signal

Значение по умолчанию

Имя для программного использования

TimeSource

Настраиваемый

Нет

Вычисляемый

Нет

# Амплитуда — амплитуда синусоиды
Скаляр / массив вещественных чисел

Details

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

Значение по умолчанию

1.0

Имя для программного использования

Amplitude

Настраиваемый

Да

Вычисляемый

Да

# Смещение — вертикальное смещение синусоиды
Скаляр / массив вещественных чисел

Details

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

Значение по умолчанию

0.0

Имя для программного использования

Bias

Настраиваемый

Да

Вычисляемый

Да

# Угловая частота (рад/с) — частота синусоиды
Скаляр / массив вещественных чисел

Details

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

Зависимости

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

Значение по умолчанию

1.0

Имя для программного использования

Frequency

Настраиваемый

Да

Вычисляемый

Да

# Фаза (рад) — фазовый сдвиг синусоиды
Скаляр / массив вещественных чисел

Details

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

Зависимости

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

Значение по умолчанию

0.0

Имя для программного использования

Phase

Настраиваемый

Да

Вычисляемый

Да

# Количество шагов расчёта на период — количество шагов на период
Скаляр / массив вещественных чисел

Details

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

Зависимости

Чтобы использовать этот параметр, установите для параметра Тип синусоиды значение На основе шагов расчета.

Значение по умолчанию

10

Имя для программного использования

Samples

Настраиваемый

Да

Вычисляемый

Да

# Фазовый сдвиг в количестве шагов расчета — смещение в количестве шагов расчета
Скаляр / массив вещественных чисел

Details

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

Зависимости

Чтобы использовать этот параметр, установите для параметра Тип синусоиды значение На основе шагов расчета.

Значение по умолчанию

0

Имя для программного использования

Offset

Настраиваемый

Нет

Вычисляемый

Да

# Период дискретизации — интервал между шагами расчета
SampleTime (вещественное число / вектор из двух вещественных чисел)

Details

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

Зависимости

Чтобы использовать этот параметр, установите для параметра Время (t) значение Использовать время моделирования.

Значение по умолчанию

0

Имя для программного использования

SampleTime

Настраиваемый

Нет

Вычисляемый

Да

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

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

Примеры