Сгенерируйте синусоиду, используя время симуляции как источник времени
Simulink/Источники
Блок Sine Wave выводит синусоидальную форму волны. Блок может работать в основанном на времени или основанном на выборке режиме.
Примечание
Этот блок аналогичен блоку Sine Wave Function, который появляется в библиотеке Математические операции. Если вы выбираете Use external signal
для параметра Time в диалоговом окне блока вы получаете блок Sine Wave Function.
Блок вычисляет выход сигнал.
В основанном на времени режиме значение параметра Sample time определяет, работает ли блок в непрерывном или дискретном режиме.
0
(по умолчанию) заставляет блок работать в непрерывном режиме.
>0
заставляет блок работать в дискретном режиме.
Для получения дополнительной информации см. Раздел «Задание шага расчета».
При работе в непрерывном режиме Sine Wave блок может стать неточным из-за потери точности, когда время становится очень большим.
Sample time значения параметров больше нуля заставляет блок вести себя так, как будто он управлял блоком Zero-Order Hold, шаг расчета которого задан это значение.
Таким образом, можно создавать модели с источниками синусоид, которые являются чисто дискретными, а не с моделями, которые являются гибридными непрерывными/дискретными системами. Гибридные системы по своей сути более комплексны и в результате требуется больше времени для моделирования.
В дискретном режиме этот блок использует дифференциальный инкрементный алгоритм вместо него, основанного на абсолютном времени. В результате блок может быть полезен в моделях, предназначенных для работы в течение неопределенного периода времени, таких как вибрационная или усталостная проверка.
Дифференциальный инкрементный алгоритм вычисляет синус на основе значения, вычисленного на предыдущем шаге расчета. Этот метод использует следующие тригонометрические тождества:
В матричной форме эти тождества:
Из-за того, что Β t является постоянным, следующее выражение является константой:
Поэтому задача становится одним из матричного умножения значения постоянной матрицей, чтобы получить .
Дискретный режим уменьшает, но не устраняет накопление ошибок округления, например (4*eps)
. Это накопление может произойти, потому что расчет выходного сигнала блока на каждом временном шаге зависит от значения выхода на предыдущем временном шаге.
Чтобы обработать ошибки округления, когда Sine Wave block работает в дискретном режиме на основе времени, используйте один из этих методов.
Метод | Объяснение |
---|---|
Вставьте Saturation блок непосредственно после блока Sine Wave. |
Путем установки пределов насыщения на выходе блока Sine Wave, можно удалить перерегулирование из-за накопления ошибок округления. |
Настройте блок Sine Wave, чтобы использовать
|
The |
Основанный на выборке режим использует эту формулу, чтобы вычислить выход блока Sine Wave.
A - амплитуда синусоиды.
p - количество выборок времени на период синусоиды.
k является повторяющимся целым числом значения, которое варьируется от 0 до p -1.
o - смещение (сдвиг фазы) сигнала.
b - смещение сигнала.
В этом режиме Simulink® устанавливает k равной 0
на первом временном шаге и вычисляет выход блока, используя формулу. На следующем временном шаге Simulink шагов k и пересчитывает выход блока. Когда k достигает p, Simulink сбрасывает k на 0
перед вычислением вывода блока. Этот процесс продолжается до конца симуляции.
Основанный на выборке способ вычисления выхода блоков в установленный временной шаг не зависит от выхода предыдущих временных шагов. Поэтому этот режим избегает накопления ошибок округления. Основанный на выборке режим поддерживает сброс семантики в подсистемах, которые предлагают его. Например, если блок Sine Wave находится в сбрасываемой подсистеме, которая получает триггер сброса, повторяющееся целое число k
сбрасывается, и выход блока сбрасывается до его начального условия.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|