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 режим, это значение задает задержку. Для получения дополнительной информации о том вычислении, смотрите Переменную Задержку.

Зависимости

Чтобы включить этот порт, установите 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 включает параметры State Name и Absolute tolerance.

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

Советы

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

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

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

Параметры блоков: 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
Для просмотра документации необходимо авторизоваться на сайте