Блок Генератор синусоиды генерирует синусоидальный сигнал. Блок может работать на основе времени или на основе шагов расчета.
Если выбрать для параметра Время (t) значение Использовать внешний сигнал, то будет реализован блок Синусоидальная функция.
Режим на основе времени симуляции
Значение выходного сигнала:
.
В режиме на основе времени значение параметра Период дискретизации определяет, работает ли блок в непрерывном или в дискретном режиме:
0.0 (по умолчанию) — блок работает в непрерывном режиме;
>0.0 — блок работает в дискретном режиме.
Поведение блока в непрерывном режиме
При работе в непрерывном режиме возможны потери точности при больших значениях времени.
Поведение блока в дискретном режиме
Если значение параметра Период дискретизации большее нуля, то блок работает так, как если бы он управлял блоком Удержание нулевого порядка, шаг расчета которого установлен на это значение.
Таким образом, можно создавать модели с источниками синусоидальных сигналов, которые являются дискретными, а не модели, которые представляют собой гибридные непрерывные/дискретные системы. Гибридные системы по своей природе более сложны, и поэтому для их моделирования требуется больше времени.
В дискретном режиме этот блок использует дифференциальный инкрементный алгоритм вместо алгоритма, основанного на абсолютном времени. В результате блок может быть полезен в моделях, предназначенных для работы в течение неопределенного времени, например, при испытаниях на вибрацию или усталость.
Дифференциальный инкрементный алгоритм вычисляет синус на основе значения, вычисленного в предыдущий шаг расчета. Этот метод использует следующие тригонометрические тождества:
,
.
В матричной форме:
Поскольку постоянна, следующее выражение является константой:
Таким образом, задача становится одной из задач матричного умножения значения на постоянную матрицу, чтобы получить .
Дискретный режим уменьшает, но не устраняет накопление ошибок округления. Это накопление может произойти, потому что вычисление вывода блока на каждом временном шаге зависит от значения вывода на предыдущем шаге.
Методы обработки ошибок округления в дискретном режиме
Чтобы обработать ошибки округления, когда блок Генератор синусоиды работает в дискретном режиме, основанном на времени, вставьте блок Насыщение непосредственно после блока Генератор синусоиды.
Установив блок насыщения на выходе блока Генератор синусоиды, можно избежать перерегулирования из-за накопления ошибок округления.
Режим на основе шагов расчета
Режим на основе шагов расчета использует следующую формулу для вычисления значения выходного сигнала:
,
где
А — амплитуда синусоиды;
— количество шагов расчета на период синусоиды;
— повторяющееся целочисленное значение в диапазоне от 0 до ;
— фазовый сдвиг сигнала;
— смещение сигнала.
В этом режиме устанавливается равным 0 на первом временном шаге, и выход блока вычисляется по описанной формуле. На следующем временном шаге увеличивается, и значение выхода блока пересчитываются. Когда достигает , выход блока сбрасывается до 0. Этот процесс продолжается до конца симуляции.
Основанный на шагах расчета метод вычисления выходного сигнала блока отличается тем, что значение на заданном временном шаге не зависит от значения на предыдущих шагах. Таким образом, этот режим позволяет избежать накопления ошибок округления.
Входной сигнал, представляющий источник времени при расчете синусоиды.
Зависимости
Чтобы использовать этот порт, установите для параметра Время (t) значение Использовать внешний сигнал.
Типы данных
Float64
Поддержка комплексных чисел
Нет
Параметры
Основные
#Тип синусоиды —
тип синусоиды
На основе времени | На основе шагов расчета
Details
Задайте тип синусоиды, которую генерирует этот блок. Некоторые параметры в диалоговом окне появляются в зависимости от того, какой тип выбран: На основе времени или На основе шагов расчета.
Значения
Time based | Sample based
Значение по умолчанию
Time based
Имя для программного использования
SineType
Настраиваемый
Нет
Вычисляемый
Нет
#Время (t) —
источник переменной времени
Использовать время моделирования | Использовать внешний сигнал
Details
Укажите, использовать ли в качестве источника значений для переменной времени время симуляции или внешний источник.
Если вы задаете Использовать внешний сигнал, то блок создает входной порт для источника времени и реализует блок Синусоидальная функция.
Значения
Use simulation time | Use external signal
Значение по умолчанию
—
Имя для программного использования
TimeSource
Настраиваемый
Нет
Вычисляемый
Нет
#Амплитуда —
амплитуда синусоиды
Скаляр / массив вещественных чисел
Details
Амплитуда выходного синусоидального сигнала.
Значение по умолчанию
1.0
Имя для программного использования
Amplitude
Настраиваемый
Да
Вычисляемый
Да
#Смещение —
вертикальное смещение синусоиды
Скаляр / массив вещественных чисел
Details
Постоянное значение, добавляемое к выходному значению.