Delay

Задержка входа сигнала фиксированным или переменным периодами дискретизации

  • Библиотека:
  • Simulink/Обычно используемые блоки

    Simulink/Дискретный

    HDL-кодер/обычно используемые блоки

    HDL-кодер/дискретный

  • Delay block

Описание

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

  • Переменная длина задержки

  • Спецификация начального условия от порта входа

  • Хранилище состояний

  • Использование циклического буфера вместо буфера массива для хранилища состояний

  • Сброс состояния в начальное условие с внешним сигналом сброса

  • Управление выполнением блока в каждом временном шаге с внешним сигналом включения

Начальный выход блока зависит от нескольких факторов, таких как параметр Initial condition и время начала симуляции. Для получения дополнительной информации смотрите Начальный Блок Выхода. Параметр External reset определяет, сбрасывается ли выход блока до начального условия при запуске. Параметр Show enable port определяет, управляется ли выполнение блока в каждом временном шаге внешним сигналом включения.

Начальный блочный Выход

Выход в первые несколько временных шагов симуляции зависит от шага расчета блока, длины задержки и времени начала симуляции. Блок поддерживает указание или наследование дискретных шагов расчета, чтобы определить временной интервал между выборками. Для получения дополнительной информации см. Раздел «Задание шага расчета».

Таблица показывает выход блока Delay за первые несколько временных шагов с этими настройками. Блок наследует дискретный шаг расчета как [Tsampling, Toffset], где Tsampling - период дискретизации и Toffset - начальное смещение времени. n - значение параметра Delay length и Tstart - время начала симуляции для модели

Время симуляции Области значенийБлочный выход

(Tstart) до (Tstart + Toffset)

Нуль

(Tstart + Toffset) до (Tstart + Toffset + n * Tsampling)

Initial condition параметр

После (Tstart + Toffset + n * Tsampling)

Входной сигнал

Поведение с внешним сигналом включения

Установка флажка Show enable port включает порт Enable. Если порт enable включен, блок действует в этом порядке

  1. Проверяет, удовлетворено ли условие включения.

  2. Если порт сброса включен, проверяет условие сброса.

  3. Выполняет функциональность блока Delay.

Блок имеет эту операцию с портом Enable:

  • При включении первого блока выход блока является начальным значением условия (x0).

  • Для последовательных разрешающих сигналов блок принимает последнее состояние входного сигнала u.

  • Если порт не включен в начале симуляции, блок Delay выводит 0.

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

Поддержка переменного размера

Блок Delay обеспечивает следующую поддержку сигналов переменного размера:

  • Входной порт данных u принимает сигналы переменного размера. Другие входные порты не принимают сигналы переменного размера.

  • Порт выхода имеет те же размерности сигнала, что и порт входа данных u для входов переменного размера.

Правила, которые применяются к сигналам переменного размера, зависят от режима входной обработки блока Delay.

Режим обработки входных параметровПравила поддержки сигнала переменного размера
Elements as channels (sample based)
  • Размерности сигнала изменяются только во время сброса состояния, когда блок включен.

  • Начальное условие должно быть скалярным.

Columns as channels (frame based)
  • Нет поддержки

Поддержка шины

Блок Delay обеспечивает следующую поддержку сигналов шины:

  • Входные u данных принимает виртуальные и невиртуальные сигналы шины. Кроме входного порта x0другие входные порты не принимают сигналы шины.

  • Начальное условие x0 порт принимает невиртуальные сигналы шины.

  • Порт выхода имеет тот же тип шины, что и порт входа данных u для входов шины.

  • Автобусы работают с:

    • Основанная на выборке и основанная на кадрах обработка

    • Фиксированная и переменная длина задержки

    • Массив и округлые буферы

Чтобы использовать сигнал шины в качестве входа в блок Delay, задайте начальное условие в диалоговом окне или через x0 порт. Поддержка виртуальных и невиртуальных шин зависит от заданного начального условия и от того, пуст ли параметр State name или нет. Для x0 входной порт, поддерживаются только невиртуальные шины.

Начальное условиеИмя состояния
ПустойНе пустой
НульПоддержка виртуальных и невиртуальных шинПоддержка только невиртуальной шины
Ненулевой скалярПоддержка виртуальных и невиртуальных шинНет поддержки шины
НескалярНет поддержки шиныНет поддержки шины
СтруктураПоддержка виртуальных и невиртуальных шинПоддержка только невиртуальной шины
Частичная структураПоддержка виртуальных и невиртуальных шинПоддержка только невиртуальной шины

Поддержка строк

Блок Delay может принимать и выводить строку тип данных только в том случае, если:

  • Блок сконфигурирован для значения по умолчанию параметра Initial condition (0).

  • Значение Delay length 1 или менее.

Порты

Вход

расширить все

Входные данные задерживаются в соответствии с настройками параметров.

Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | Boolean | fixed point | enumerated | bus

Длина задержки, заданная как унаследованная от входа порта. Включено, когда вы выбираете параметр Delay length: Source следующим Input port.

Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Включите сигнал, который включает или отключает выполнение блока. Чтобы создать этот порт, выберите параметр Show enable port.

Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Внешний сигнал, который сбрасывает выполнение блока в начальное условие. Чтобы создать этот порт, выберите параметр External reset.

Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Начальное условие задано как унаследованное от входа порта. Включено, когда вы выбираете параметр Initial Condition: Source следующим Input port.

Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | bus

Выход

расширить все

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

Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | Boolean | fixed point | enumerated | bus

Параметры

расширить все

Главный

Укажите, вводить ли длину задержки непосредственно в диалоговом окне (фиксированная задержка) или наследовать задержку от входа порта (переменная задержка).

  • Если вы задаете Source Dialog, введите длину задержки в поле редактирования под Value.

  • Если вы задаете Source Input port, проверьте, что сигнал в восходящем направлении задает длину задержки для d входной порт. Можно также задать его максимальное значение путем определения Upper limit параметра.

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

Программное использование

Параметры блоков: DelayLengthSource
Тип: Вектор символов
Значения: 'Dialog' | 'Input port'
По умолчанию: 'Dialog'
Параметры блоков: DelayLength
Тип: Вектор символов
Значения: скаляр
По умолчанию: '2'
Параметры блоков: DelayLengthUpperLimit
Тип: Вектор символов
Значения: скаляр
По умолчанию: '100'

Укажите, вводить ли начальное условие непосредственно в диалоговом окне или наследовать начальное условие от входа порта.

  • Если вы задаете Source Dialogвведите начальное условие в поле редактирования под Value.

  • Если вы задаете Source Input port, проверьте, что сигнал в восходящем направлении подает начальное условие для x0 входной порт.

Simulink® преобразует в автономном режиме тип данных Initial condition в тип данных входного сигнала u использование круглосуточной операции и насыщения.

Примечание

Когда State name must resolve to Simulink signal object выбран на панели State Attributes, блок копирует начальное значение объекта сигнала в параметр Initial condition. Однако, когда источник для Initial condition Input portблок игнорирует начальное значение объекта сигнала.

Программное использование

Параметры блоков: InitialConditionSource
Тип: Вектор символов
Значения: 'Dialog' | 'Input port'
По умолчанию: 'Dialog'
Параметры блоков: InitialCondition
Тип: Вектор символов
Значения: скаляр
По умолчанию: '0.0'

Укажите, выполняет ли блок обработку на основе выборок или фреймов:

  • Columns as channels (frame based) - Обрабатывайте каждый столбец входа как отдельный канал (обработка на основе фрейма).

    Примечание

    Для обработки на основе фрейма требуется лицензия DSP System Toolbox™.

    Для получения дополнительной информации смотрите Концепции на основе выборок и фреймов (DSP System Toolbox).

  • Elements as channels (sample based) - Обработайте каждый элемент входа как отдельный канал (основанная на выборке обработка).

Используйте Input processing, чтобы определить, выполняет ли блок обработку на основе выборок или фреймов. Блок принимает основанные на кадрах сигналы для входа u. Все другие входные сигналы должны быть основаны на дискретизации.

Входной сигнал uРежим обработки входных параметровБлок работает?
Основанный на выборкеОснованный на выборкеДа
Основанный на системах координатНет, вызывает ошибку
Основанный на выборкеОснованный на системах координатДа
Основанный на системах координатДа

Для получения дополнительной информации об этих двух режимах обработки смотрите Концепции на основе выборок и фреймов (DSP System Toolbox).

Программное использование

Параметры блоков: InputProcessing
Тип: Вектор символов
Значения: 'Columns as channels (frame based)' | 'Elements as channels (sample based)'
По умолчанию: 'Elements as channels (sample based)'

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

Использование кругового буфера может улучшить скорость выполнения, когда длина задержки большая. Для буфера массива количество операций копирования увеличивается, когда длина задержки увеличивается. Для кругового буфера количество операций копирования является постоянным для увеличения длины задержки.

Если одно из следующих условий является true, буфер массива всегда сохраняет состояние, потому что циклический буфер не улучшает скорость выполнения.

  • Для сигналов, основанных на дискретизации, длина задержки равна 1.

  • Для сигналов, основанных на кадрах, длина задержки не больше, чем формат кадра.

Программное использование

Параметры блоков: UseCircularBuffer
Тип: Вектор символов
Значения: 'off' | 'on'
По умолчанию: 'off'

Выберите, чтобы увеличить длину задержки с нуля до нижнего предела для Input processing режима.

  • Для сигналов, основанных на дискретизации, увеличьте минимальную длину задержки до 1.

  • Для сигналов, основанных на кадрах, увеличьте минимальную длину задержки до длины системы координат.

Установка этого флажка препятствует прямому сквозному соединению от порта входа, u, к порту выхода. Однако этот флажок не может предотвратить прямое сквозное соединение от порта начальных условий, x0, к порту выхода.

Зависимость

Чтобы включить этот параметр, установите Delay length: Source равным Input port.

Программное использование

Параметры блоков: PreventDirectFeedthrough
Тип: Вектор символов
Значения: 'off' | 'on'
По умолчанию: 'off'

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

ФлажокРезультатКогда использовать

Отобранный

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

Для эффективности кода

Очищенный

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

Для критически важных приложений

Зависимость

Чтобы включить этот параметр, установите Delay length: Source равным Input port.

Программное использование

Параметры блоков: RemoveDelayLengthCheckInGeneratedCode
Тип: Вектор символов
Значения: 'off' | 'on'
По умолчанию: 'off'

Задайте, выдавать ли предупреждение или ошибку, когда вход d меньше нижнего предела или больше Delay length: Upper limit. Нижний предел зависит от настройки Prevent direct feedthrough.

  • Если флажок снят, нижний предел равен нулю.

  • Если флажок установлен, нижний предел равен 1 для сигналов на основе дискретизации и длина системы координат для сигналов на основе кадра.

Опции для диагностики включают:

  • None - Программное обеспечение Simulink не принимает никаких действий.

  • Warning - Программное обеспечение Simulink отображает предупреждение и продолжает симуляцию.

  • Error - Программа Simulink завершает симуляцию и отображает ошибку.

Зависимость

Чтобы включить этот параметр, установите Delay length: Source равным Input port.

Программное использование

Параметры блоков: DiagnosticForDelayLength
Тип: Вектор символов
Значения: 'None' | 'Warning' | 'Error'
По умолчанию: 'None'

Выберите для управления выполнением этого блока с портом включения. Блок считается активным, когда вход к этому порту ненулевый, и отключается, когда вход 0. Значение входа проверяется в том же временном шаге, что и выполнение блока.

Программное использование

Параметры блоков: ShowEnablePort
Тип: Вектор символов
Значения: 'off' | 'on'
По умолчанию: 'off'

Задайте событие триггера, которое будет использоваться для сброса состояний к начальным условиям.

Режим сбросаПоведение
NoneНет сброса
RisingСброс на приподнятом ребре
FallingСброс на падающем ребре
EitherСброс на восходящем или падающем ребре
Level

Сброс в любом из следующих случаев:

  • Когда сигнал сброса ненулевой на текущем временном шаге

  • Когда значение сигналов сброса изменяется с ненулевого на предыдущем временном шаге до нуля на текущем временном шаге

Level holdСброс, когда сигнал сброса ненулевой на текущем временном шаге

Программное использование

Параметры блоков: ExternalReset
Тип: Вектор символов
Значения: 'None' | 'Rising' | 'Falling' | 'Either' | 'Level' | 'Level hold'
По умолчанию: 'None'

Задайте временной интервал между выборками. Чтобы наследовать шаг расчета, установите этот параметр равным -1. Этот блок поддерживает дискретный шаг расчета, но не непрерывный шаг расчета.

Программное использование

Параметры блоков: SampleTime
Тип: Вектор символов
Значение: действительный скаляр
По умолчанию: '-1'

Атрибуты состояния

Используйте этот параметр, чтобы присвоить уникальное имя состоянию блока. Значение по умолчанию является ' '. Когда это поле не заполнено, имя не присваивается. При использовании этого параметра запоминайте следующие факторы:

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

  • Имя состояния применяется только к выбранному блоку.

Этот параметр включает State name must resolve to Simulink signal object при нажатии кнопки Apply.

Для получения дополнительной информации смотрите Строение Генерации кода C для Элементов Интерфейса Модели (Simulink Coder).

Программное использование

Параметры блоков: StateName
Тип: Вектор символов
Значения: уникальное имя
По умолчанию: ''

Установите этот флажок, чтобы потребовать, чтобы имя состояния разрешилось к объекту сигнала Simulink.

Зависимости

Чтобы включить этот параметр, задайте значение для State name. Этот параметр появляется только, если вы задаете значение параметра конфигурации модели Signal resolution отличное от None.

Установка этого флажка отключает Code generation storage class.

Программное использование

Параметры блоков: StateMustResolveToSignalObject
Тип: Вектор символов
Значения: 'off' | 'on'
По умолчанию: 'off'

Выберите пользовательский пакет класса памяти путем выбора класса объекта сигнала, заданного целевым пакетом. Например, применить пользовательские классы памяти из встроенного пакета mpt, выберите mpt.Signal. Если вы не используете цель генерации кода на основе ERT с Embedded Coder®пользовательские классы памяти не влияют на сгенерированный код.

Чтобы использовать пакет класса памяти, отличный от пакета Simulink, необходимо загрузить пакет в словарь Embedded Coder Dictionary модели. Смотрите Загрузку пакетов класса памяти в словарь встраиваемого кодера (Embedded Coder).

Для получения информации о конфигурировании данных моделей с помощью классов памяти смотрите Строение Генерации кода C для Элементов Интерфейса Модели (Embedded Coder). Для получения дополнительной информации о пользовательских классах классов памяти раздел Организация данных в структуры в Сгенерированном коде (Embedded Coder).

Программное использование

Параметры блоков: StateSignalObject
Тип: Вектор символов
Значения: 'Simulink.Signal' | '<StorageClass.PackageName>'
По умолчанию: 'Simulink.Signal'

Выберите класс памяти состояний для генерации кода.

Используйте Signal object class, чтобы выбрать пользовательские классы памяти из пакета, отличного от Simulink.

Зависимости

Чтобы включить этот параметр, задайте значение для State name.

Программное использование

Параметры блоков: StateStorageClass
Тип: Вектор символов
Значения: 'Auto' | 'Model default' | 'ExportedGlobal' | 'ImportedExtern' | 'ImportedExternPointer' | 'Custom' | ...
По умолчанию: 'Auto'

Характеристики блоков

Типы данных

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

Прямое сквозное соединение

yes

Многомерные сигналы

yes

Сигналы переменного размера

yes

Обнаружение пересечения нулем

no

Расширенные возможности

.

Генерация кода ПЛК
Сгенерируйте структурированный текстовый код с помощью Coder™ Simulink ® PLC

.

Преобразование с фиксированной точкой
Разрабатывайте и моделируйте системы с фиксированной точкой с помощью Fixed-Point Designer™.

Представлено до R2006a