Типы частоты дискретизации

Дискретная частота дискретизации

Учитывая блок с дискретной частотой дискретизации, Simulink® выполняет блок вывод или метод обновления время от времени

tn=nTs + | К |

где период частоты дискретизации Ts всегда больше, чем нуль и меньше, чем время симуляции, Tsim. Количество периодов (n) является целым числом, которое должно удовлетворить:

0≤n≤TsimTs

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

Если необходимо задержать начальное демонстрационное время хита, можно задать смещение, К.

Блок Unit Delay является примером блока с дискретной частотой дискретизации.

Время непрерывной выборки

В отличие от дискретной частоты дискретизации, совершила нападки непрерывная выборка, времена разделены на главные временные шаги и незначительные временные шаги, где незначительные шаги представляют подразделения существенных шагов (см. Незначительные Временные шаги). Решатель ОДУ, который вы выбираете, интегрирует все непрерывные состояния со времени начала моделирования к данному главному или незначительному временному шагу. Решатель определяет времена незначительных шагов и использует результаты на незначительных временных шагах, чтобы улучшить точность результатов на главных временных шагах. Однако вы видите блок вывод только на главных временных шагах.

Чтобы указать, что блок, такой как блок Derivative, непрерывен, вводят [0, 0] или 0 в поле Частоты дискретизации блочного диалогового окна.

Зафиксированный на Незначительном шаге

Если частота дискретизации блока установлена в [0, 1], блок становится фиксированным на незначительном шаге. Для этой установки Simulink не выполняет блок на незначительных временных шагах; обновления происходят только на главных временных шагах. Этот процесс устраняет ненужные вычисления блоков, вывод которых не может измениться между существенными шагами.

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

Наследованная частота дискретизации

Если блочная частота дискретизации установлена в [–1, 0] или –1, частота дискретизации наследована, и Simulink определяет лучшую частоту дискретизации для блока на основе блочного контекста в модели. Simulink выполняет эту задачу во время этапа компиляции; исходная наследованная установка никогда не появляется в скомпилированной модели. Поэтому вы никогда не видите наследованный ([–1, 0]) в Легенде Частоты дискретизации. (См. информацию о Частоте дискретизации Представления.)

Существуют некоторые блоки, в которых частота дискретизации наследована (-1) по умолчанию. Для этих блоков параметр не видим на блочном диалоговом окне, если это не установлено в ненаследованное значение. Примеры этих блоков включают Усиление и Округление Функциональных блоков. Как хорошая практика моделирования, не изменяйте параметр Частоты дискретизации для этих блоков. Для получения дополнительной информации смотрите Блоки, для Которых Не Рекомендуется Частота дискретизации.

Все наследованные блоки подвергаются процессу распространения частоты дискретизации, как обсуждено в том, Как Распространение Влияет на Наследованные Частоты дискретизации

Постоянная частота дискретизации

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

Simulink присваивает постоянную частоту дискретизации этим блокам. Они запускают свой блок выходной метод:

  • В начале моделирования.

  • В ответ на изменения во время выполнения в среде, такие как настройка параметра.

Для постоянной частоты дискретизации блочным присвоением частоты дискретизации является [inf,0] или [inf].

Для блока, чтобы позволить постоянную частоту дискретизации, эти условия содержат:

  • Блок не имеет никаких непрерывных или дискретных состояний.

  • Блок не управляет выходным портом условно выполняемой подсистемы (см. Используя Enabled Подсистемы).

Блоки s-function

Библиотека блока Simulink включает несколько блоков, таких как Блок s-function MATLAB, Уровень 2 Блок s-function MATLAB и Блок s-function C, порты которого могут произвести выходные параметры на уровне различных частот дискретизации. Для некоторых портов этих блоков возможно иметь постоянную частоту дискретизации.

Переменная частота дискретизации

Блоки, которые используют переменную частоту дискретизации, имеют неявный параметр SampleTime, который задает блок; блок говорит Симулинку, когда запустить его. Скомпилированная частота дискретизации [–2, Tvo], где Tvo является уникальным переменным смещением.

Блок Pulse Generator является примером блока, который имеет переменную частоту дискретизации. Поскольку Simulink поддерживает переменные частоты дискретизации для решателей переменного шага только, блок Pulse Generator задает дискретную частоту дискретизации, если вы используете решатель фиксированного шага.

Чтобы изучить, как записать ваш собственный блок, который использует переменную частоту дискретизации, см. Примеры S-функции MEX C.

Управляемая частота дискретизации

Блок может быть сконфигурирован, чтобы использовать управляемую частоту дискретизации с разрешением Tbase. Tbase является самым маленьким допустимым временным интервалом между блочным выполнением. Чтобы установить Tbase в вашем собственном Блоке s-function C, используйте ssSetControllableSampleTime.

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

Tnext = n Tbase + T

Можно установить n в Блоке s-function C с помощью ssSetNumTicksToNextHitForControllableSampleTime.

Инициированная частота дискретизации

Если блок в инициированном типе (e. g., вызов функции, включил и инициировал, или итератор), подсистема, блок может быть постоянным или иметь инициированную частоту дискретизации. Вы не можете задать инициированный тип частоты дискретизации явным образом. Однако, чтобы достигнуть инициированного типа во время компиляции, необходимо установить блочную частоту дискретизации на наследованный (–1). Simulink затем определяет определенные времена, в которые блок вычисляет свой вывод во время моделирования. Одно исключение - то, если подсистема является асинхронным вызовом функции, как обсуждено в следующем разделе.

Асинхронная частота дискретизации

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

Различия между этими типами частоты дискретизации:

  • Только подсистема вызова функций может иметь асинхронную частоту дискретизации. (См. Используя Подсистемы вызова функций.)

  • Источником сигнала вызова функции является S-функция, имеющая опцию SS_OPTION_ASYNCHRONOUS.

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

  • Асинхронная частота дискретизации важна для определенных приложений генерации кода. (См. Асинхронные События (Simulink Coder).)

  • Частота дискретизации [−1, −n].

Для объяснения того, как использовать блоки, чтобы смоделировать и сгенерировать код для асинхронной обработки событий, смотрите Переходы Уровня и Асинхронные Блоки (Simulink Coder).

Смотрите также

| | |

Была ли эта тема полезной?