exponenta event banner

Типы времени выборки

Время дискретной выборки

При наличии блока с дискретным временем выборки Simulink ® выполняет вывод блока или метод обновления в определенный момент времени.

tn = NTS + | Кому |

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

0≤n≤TsimTs

По мере моделирования Simulink вычисляет блочные выходы только один раз в каждом из этих фиксированных временных интервалов tn. Эти времена моделирования, при которых Simulink выполняет метод вывода блока в течение заданного времени выборки, называются совпадениями времени выборки. Дискретные значения времени выборки являются единственным типом, для которого значения времени выборки известны априори.

Если требуется задержать начальное время попадания пробы, можно определить смещение «До».

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

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

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

Выбранный решатель ODE интегрирует все непрерывные состояния от времени начала моделирования до заданного основного или второстепенного шага времени. Решатель определяет время второстепенных шагов и использует результаты на второстепенных шагах времени для повышения точности результатов на основных шагах времени. Однако вывод блока отображается только на основных шагах времени.

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

Шаг «Фиксированный в миноре»

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

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

Наследуемое время образца

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

Существует несколько блоков, в которых время выборки по умолчанию наследуется (-1). Для этих блоков параметр не отображается в диалоговом окне блока, если для него не задано значение, не являющееся наследственным. Примеры этих блоков включают функциональные блоки усиления и округления. Рекомендуется не изменять параметр «Время выборки» для этих блоков. Дополнительные сведения см. в разделе Блоки, для которых образец времени не рекомендуется.

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

Постоянное время выборки

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

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

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

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

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

Для блока, допускающего постоянное время выборки, эти условия сохраняются:

S-функциональные блоки

Библиотека блока Simulink включает несколько блоков, таких как S-функциональный-блок MATLAB, Уровень 2 MATLAB S-Function block и S-функциональный-блок C, порты которого могут произвести продукцию на уровне различных частот дискретизации. Некоторые порты этих блоков могут иметь постоянное время выборки.

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

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

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

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

Контролируемое время выборки

Блок может быть сконфигурирован для использования управляемого времени выборки с разрешением Tbase. Tbase - наименьший допустимый интервал времени между выполнением блоков. Для установки Tbase в собственном блоке C S-Function используйте ssSetControllableSampleTime.

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

Tnext = n Tbase + T

Вы можете установить n в своем S-функциональном-блоке C, используя ssSetNumTicksToNextHitForControllableSampleTime.

Время запуска выборки

Если блок находится внутри подсистемы типа triggered (например, function-call, enabled and triggerated или iterator), то блок может быть постоянным или иметь время запуска выборки. Невозможно явно указать запускаемый тип времени выборки. Однако для достижения инициируемого типа во время компиляции необходимо установить время выборки блока на наследуемое (-1). Затем Simulink определяет конкретное время, в которое блок вычисляет свои выходные данные во время моделирования. Одно исключение - если подсистема является асинхронным вызовом функции, как описано в следующем разделе.

Время асинхронной выборки

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

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

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

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

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

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

  • Время выборки равно [1, n].

Описание использования блоков для моделирования и генерации кода для асинхронной обработки событий см. в разделе Переходы скорости и асинхронные блоки (Simulink Coder).

См. также

| |