exponenta event banner

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

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

  • Библиотека:
  • Симуляция/непрерывная

  • Variable Transport Delay block

Описание

Блоки «Переменная задержка передачи» и «Переменная задержка времени» отображаются в библиотеке блоков Simulink ® в виде двух блоков. Однако они представляют собой один и тот же блок Simulink с различными настройками для параметра «Выбор типа задержки». Этот параметр используется для указания режима работы блока.

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

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

y (t) = u (t td (t))

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

∫t−td (t) t1ti (

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

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

ti (t) = Lvi (t)

где L - длина трубы, а vi (t) - скорость текучей среды.

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

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

y (t) = u (t t0) = u (t − start( t))

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

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

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

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

Порты

Вход

развернуть все

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

Типы данных: 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 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'

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

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

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

Совет

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

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

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

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

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

Параметр Initial 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'

Задайте порядок аппроксимации Pade для подпрограмм линеаризации.

  • Значение по умолчанию: 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