Документация 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 — блок работает в дискретном режиме.

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

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

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

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

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

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

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

, .

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

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

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

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

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

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

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

Зависимости

Чтобы использовать этот параметр, установите для параметра 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) значение Use simulation time.

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

0

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

SampleTime

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

Нет

Вычисляемый

Да

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

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

Примеры