delay

Возвратите прошлое значение операнда

Синтаксис

delay(u,tau)
delay(u,tau, History = u0, MaximumDelay = taumax)

Описание

Используйте delay оператор в equations разделите, чтобы относиться к прошлым значениям выражений:

delay(u,tau) = u(t-tau)

Полный синтаксис:

delay(u,tau, History = u0, MaximumDelay = taumax)

Необходимые операнды:

  • u — Первый операнд является задержанным выражением Simscape™. Это может быть любое числовое выражение, которое самостоятельно не включает delay или der операторы.

  • tau — Второй операнд является временем задержки. Это должно быть числовое выражение с модулем времени. Значение tau может измениться, но это должно остаться строго положительным в течение симуляции.

Дополнительные операнды могут появиться в любом порядке. Они:

  • History — Возвращаемое значение для начального временного интервала (t <= StartTime + tau). Модули u и u0 должно быть соразмерным. u0 по умолчанию 0.

  • MaximumDelay — Максимальное время задержки. taumax должно быть постоянное или параметрическое выражение с модулем времени. Если вы задаете MaximumDelay = taumax, ошибка периода выполнения будет выпущена каждый раз, когда tau становится больше, чем taumax.

    Примечание

    Необходимо задать MaximumDelay если время задержки, tau, не постоянное или параметрическое выражение. Если tau постоянное или параметрическое выражение, его значение используется в качестве значения по умолчанию для MaximumDelay, то есть, taumax = tau.

В любое время t, delay(u,tau) возвращает значение, аппроксимирующее uT \tau) для текущего значения tau. А именно, выражение delay(u,tau, History = u0) эквивалентно

if t <= (StartTime + tau)
   return u0(t)
else
   return u(t-tau)
end 

Другими словами, во время начального временного интервала, от запуска симуляции и до заданного времени задержки, tau, протек, delay оператор возвращает u0 (или 0, если History не задан). Для времен симуляции, больше, чем tau, delay оператор возвращает прошлое значение выражения, uT \tau).

Примечание

  • При симуляции модели, которая содержит блоки с задержками, выделением памяти для хранения истории данных управляет параметр Delay memory budget [kB] в блоке Solver Configuration. Если этот бюджет превышен, ошибки симуляции. Можно настроить это значение параметров на основе доступных ресурсов памяти.

  • Для рекомендации о том, как линеаризовать модель, которая содержит блоки с задержками, смотрите Линеаризацию с Блоками Линеаризации Simulink.

Примеры

Этот пример показывает реализацию для простой динамической системы:

x˙=x(t1)x(t<0)=1

Файл Simscape смотрит можно следующим образом:

component MyDelaySystem
  parameters
    tau = {1.0,'s'};
  end
  variables
    x = 1.0;
  end
  equations
    x.der == -delay( x,tau,History = 1.0 )*{ 1, '1/s' }; % x' = - x(t - 1)
  end
end

MaximumDelay не требуется потому что tau является постоянным.

{ 1, '1/s' } коэффициент умножения используется, чтобы согласовать модули выражения и его производной времени. Смотрите der страница с описанием для получения дополнительной информации.

Для других примеров использования delay оператор, смотрите источник для PS Постоянная Задержка, и блоки Задержки Переменной PS в библиотеке Simscape Foundation (откройте диалоговое окно блока и щелкните по ссылке Source code).

Переменный Транспортный пример Задержки показывает, как можно смоделировать переменную транспортную задержку с помощью delay оператор. Чтобы видеть детали реализации, откройте модель в качестве примера, посмотрите под маской Транспортной подсистемы Задержки, затем щелкните правой кнопкой по блоку Variable Transport Delay и выберите Simscape> View source code.

Смотрите также

Представленный в R2012a