Сгенерируйте синусоиду, с помощью внешнего сигнала в качестве источника времени
Simulink / Математические операции
Функциональный блок Sine wave выводит синусоидальную форму волны. Блок может действовать в основанном на времени или основанном на выборке режиме.
Примечание
Этот блок совпадает с блоком Sine Wave, который появляется в библиотеке Math Operations. Если вы выбираете Use simulation time
для параметра 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, чтобы использовать
|
|
Основанный на выборке режим использует эту формулу, чтобы вычислить выход блока Sine Wave.
A является амплитудой синусоиды.
p является количеством выборок времени на период синусоиды.
k является повторяющимся целочисленным значением, которое лежит в диапазоне от 0 до p –1.
o является смещением (сдвиг фазы) сигнала.
b является смещением сигнала.
В этом режиме Simulink® устанавливает k, равный 0
на первом временном шаге и вычисляет блок выход, с помощью формулы. На следующем временном шаге Simulink постепенно увеличивает k и повторно вычисляет выход блока. Когда k достигает p, Simulink сбрасывает k к 0
прежде, чем вычислить блок выводится. Этот процесс продолжается до конца симуляции.
Основанный на выборке метод вычислительного блока, выход в установленный срок продвигается, не зависит от выхода предыдущих временных шагов. Поэтому этот режим избегает накопления ошибок округления. Основанный на выборке режим поддерживает семантику сброса в подсистемах, которые предлагают его. Например, если блок Sine Wave находится в восстановленной подсистеме, которая получает триггер сброса, повторяющийся целочисленный k
сброс и блок выводят сброс к его начальному условию.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|