Variable Time Delay

Задержка входа по переменному количеству времени

  • Библиотека:
  • Simulink/Непрерывный

  • Variable Time Delay block

Описание

Блоки Variable Transport Delay и Variable Time Delay появляются как два блока в Simulink® библиотека блоков. Однако они являются тем же блоком Simulink с другими настройками для параметра Select delay type. Используйте этот параметр, чтобы задать режим, в котором работает блок.

Переменная задержка по времени

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

y(t)=u(tt0)=u(tτ(t))

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

Если вы хотите, чтобы выход в то время между входным временем хранения и решателем был непрерывным решателем, блок интерполируется линейно между точками. Если задержка меньше размера шага, блок экстраполирует выходную точку из предыдущей точки. Например, рассмотрим симуляцию с фиксированным шагом с размером шага 1 и текущее время в t = 5. Если задержка 0.5блок должен сгенерировать точку в t = 4.5, но самое последнее сохраненное значение времени находится на t = 4. Таким образом, блок экстраполирует вход в 4.5 от входа в 4 и использует экстраполированное значение в качестве выхода в t = 5.

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

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

Переменная задержка транспорта

В этом режиме выход блока в текущем временном шаге равен значению его входных данных (верхний, или левый) на более раннем временном шаге, равном текущему времени минус задержка транспортировки.

y(t)=u(ttd(t))

Программное обеспечение Simulink находит задержку транспорта, td(t), решением следующего уравнения:

ttd(t)t1ti(τ)dτ=1

Это уравнение включает мгновенную временную задержку, ti(t), заданный временной задержкой (нижний, или правый) вход.

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

ti(t)=Lvi(t)

где L - длина трубопровода и vi(t) - скорость жидкости.

Порты

Вход

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

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

Типы данных: double

Время задержки входа заданное как скаляр, вектор или матрица. Когда блок находится в Variable time delay mode, это значение задает временную задержку. Для получения дополнительной информации об этом вычислении см. Раздел «Переменная задержка времени».

Зависимости

Чтобы включить этот порт, установите Select delay type равным Variable time delay.

Типы данных: double

Мгновенная задержка входа в виде скаляра, вектора или матрицы. Когда блок находится в Variable transport delay это значение используется для вычисления задержки транспортировки. Для получения дополнительной информации об этом вычислении см. Переменную задержка транспорта».

Зависимости

Чтобы включить этот порт, установите Select delay type равным Variable transport delay.

Типы данных: double

Выход

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

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

Типы данных: double

Параметры

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

Укажите тип задержки следующим Variable time delay или Variable transport delay.

Значение по умолчанию этого параметра зависит от реализации блока: Variable time delay для блока Variable Time Delay и Variable transport delay для блока Variable Transport Delay.

Зависимости

  • Установка этого параметра на Variable time delay включает параметр Handle zero delay.

  • Установка этого параметра на Variable transport delay включает параметры Absolute tolerance и State Name.

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

Параметры блоков: VariableDelayType
Тип: Вектор символов, строка
Значения: 'Variable transport delay' | 'Variable time delay'

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

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

Параметры блоков: MaximumDelay
Тип: Вектор символов, строка
Значение: скалярный вектор |
По умолчанию: '10'

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

Зависимости

  • Исходный выход этого блока не может быть inf или NaN.

  • A Run-to-run tunable parameter не может быть изменен во время запуска симуляции. Однако изменение его до начала симуляции не заставляет Accelerator или Rapid Accelerator регенерировать код.

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

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

Определите начальное выделение памяти для количества точек входа для хранения. Входные точки определяют историю входного сигнала до текущего времени симуляции.

  • Если количество точек входа превышает начальный buffer size, блок выделяет дополнительную память.

  • После завершения симуляции появляется сообщение, если буфера недостаточно и необходимо выделить больше памяти.

Совет

  • Поскольку выделение памяти замедляет симуляцию, тщательно выберите это значение, если скорость симуляции является проблемой.

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

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

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

Установка этого флажка использует буфер фиксированного размера для сохранения входных данных с предыдущих временных шагов. Когда вы снимаете этот флажок, блок не использует буфер фиксированного размера.

Параметр Initial buffer size задает buffer size. Если буфер заполнен, новые данные заменяют данные уже в буфере. Программное обеспечение Simulink использует линейную экстраполяцию, чтобы оценить выходные значения, которые не находятся в буфере.

Примечание

Генерация кода ERT или GRT использует буфер фиксированного размера, даже если этот флажок не установлен.

Совет

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

  • Если входные данные нелинейны, не устанавливайте этот флажок. Это может привести к неточным результатам.

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

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

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

Зависимости

Чтобы включить этот параметр, установите Select delay type равным Variable time delay.

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

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

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

Совет

  • Установка этого флажка может привести к изменению упорядоченного расположения состояний в модели при использовании функций linmod, dlinmod, или trim. Чтобы извлечь это новое состояние упорядоченного расположения:

    1. Скомпилируйте модель с помощью следующей команды, где model - имя модели Simulink.

          [sizes, x0, x_str] = model([],[],[],'lincompile'); 
    2. Завершите компиляцию следующей командой.

        model([],[],[],'term'); 
  • Выходной аргумент x_str, который является массивом ячеек состояний в модели Simulink, содержит новое упорядоченное расположение состояний. Когда вы передаете вектор состояний как вход в linmod, dlinmod, или trim функции, вектор состояния должен использовать это новое упорядоченное расположение состояний.

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

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

Установите порядок аппроксимации Паде для стандартных программ линеаризации.

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

  • Установка порядка положительного целого числа n добавляет n состояния к вашей модели, но приводит к более точной линейной модели задержки переноса.

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

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

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

Зависимости

Чтобы включить этот параметр, установите Select delay type равным Variable transport delay.

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

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

Присвойте уникальное имя каждому состоянию. Если это поле не заполнено, присвоение имен не выполняется.

Совет

  • Чтобы назначить имя одному состоянию, введите имя между кавычками, например 'velocity'.

  • Чтобы назначить имена нескольким состояниям, введите список с разделителем запятыми, окруженный скобками, например {'a', 'b', 'c'}. Каждое имя должно быть уникальным.

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

  • Количество состояний должно разделяться равномерно между количеством имен состояний.

  • Можно задать меньше имен, чем состояний, но нельзя задать больше имен, чем состояний.

    Для примера можно задать два имени в системе с четырьмя состояниями. Первое имя относится к первым двум состояниям, а второе - к последним двум состояниям.

  • Назначение имен состояний с переменной в MATLAB® рабочая область, введите переменную без кавычек. Переменная может быть вектором символов, строкой, массивом ячеек или структурой.

Зависимости

Чтобы включить этот параметр, установите Select delay type равным Variable transport delay.

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

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

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

Типы данных

double

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

yes

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

no

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

no

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

no

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

.
Введенный в R2007a