exponenta event banner

Временные задержки в линейных системах

Используйте следующие свойства модели для представления временных задержек в линейных системах.

  • InputDelay, OutputDelay - Временные задержки на входах или выходах системы

  • ioDelay, InternalDelay - Временные задержки, являющиеся внутренними для системы

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

Модель «Первый заказ плюс мертвое время»

В этом примере показано, как создать модель первого порядка плюс мертвое время с помощью InputDelay или OutputDelay свойства tf.

Для создания следующей функции переноса первого заказа с задержкой 2,1 с:

G (s) = e 2 .1s1s + 10,

введите:

G = tf(1,[1 10],'InputDelay',2.1)

где InputDelay определяет задержку на входе передаточной функции.

Совет

Вы можете использовать InputDelay с zpk таким же образом, как с tf:

G = zpk([],-10,1,'InputDelay',2.1)

Для функций передачи SISO задержка на входе эквивалентна задержке на выходе. Поэтому следующая команда создает ту же самую передаточную функцию:

G = tf(1,[1 10],'OutputDelay',2.1)

Используйте точечную нотацию для проверки или изменения значения временной задержки. Например, измените временную задержку на 3.2 следующим образом:

 G.OutputDelay = 3.2;

Для просмотра текущего значения введите:

G.OutputDelay

ans =

    3.2000

Совет

Альтернативным способом создания модели с временной задержкой является указание передаточной функции с задержкой в виде выражения в s:

  1. Создайте модель передаточной функции для переменной s.

    s = tf('s');          
  2. Укажите G в качестве выражения в s.

    G = exp(-2.1*s)/(s+10);

Задержка ввода и вывода в модели пространства состояний

В этом примере показано, как создавать модели пространства состояний с задержками на входах и выходах, используя InputDelay или OutputDelay свойства ss.

Создайте модель пространства состояний, описывающую следующую систему с одним входом и двумя выходами:

dx (t) dt = 2x (t) + 3u (t 1,5) y (t) = [x (t − 0,7) − x (t)].

Эта система имеет задержку на входе 1,5. Первый выход имеет задержку выхода 0,7, а второй выход не задерживается.

Примечание

В отличие от функций передачи SISO, задержки на входе не эквивалентны задержкам на выходе для моделей пространства состояний. Смещение задержки с входа на выход в модели «состояние-пространство» требует введения временного сдвига в состояниях модели. Например, в модели этого примера определение T = t-1,5  и X (T ) = x  (T + 1,5) приводит к следующей эквивалентной системе:

dX (T) dT = 2X (T) + 3u (T) y (T) = [X (T 2,2) − X (T − 1,5)].

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

Чтобы создать эту систему:

  1. Определите матрицы state-space.

    A = -2;
    B = 3;
    C = [1;-1];
    D = 0;
    
  2. Создайте модель.

    G = ss(A,B,C,D,'InputDelay',1.5,'OutputDelay',[0.7;0])

G является ss модель.

Совет

Использовать delayss для создания моделей пространства состояний с более общими комбинациями входных, выходных и задержек состояний вида:

dxdt = Ax (t) + Bu (t) +∑j=1N (Ajx (t tj) + Bju (t tj)) y (t) = Cx (t) + Du (t) +∑j=1N (Cjx (t − tj) + Dju (t − tj))

Задержка передачи в функции передачи MIMO

В этом примере показано, как создать функцию передачи MIMO с различными задержками передачи для каждой пары ввод-вывод (I/O).

Создайте функцию передачи MIMO:

H (s) = [e 0 12se 0 .3s + 1s + 1010e − 0 2s − 1s + 5].

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

Для создания этой функции передачи MIMO:

  1. Создание модели передаточной функции для переменной s.

    s = tf('s');          
  2. Использовать переменную s для определения функций передачи H без временных задержек.

    H = [2/s (s+1)/(s+10); 10 (s-1)/(s+5)];
    
  3. Укажите ioDelay имущество H в виде массива значений, соответствующих задержке передачи для каждой пары ввода-вывода.

    H.IODelay = [0.1 0.3; 0 0.2];

H является двумя входами, двумя выходами tf модель. Каждая пара ввода-вывода в H имеет временную задержку, указанную соответствующей записью в tau.

Функция передачи дискретного времени с задержкой по времени

В этом примере показано, как создать функцию передачи дискретного времени с временной задержкой.

В дискретно-временных моделях задержка в один период выборки соответствует коэффициенту z-1 в передаточной функции. Например, следующая передаточная функция представляет дискретно-временную систему SISO с задержкой в 25 периодов выборки.

H (z) = z-252z-0,95.

Для представления целочисленных задержек в дискретно-временных системах в MATLAB установите значение 'InputDelay' свойство объекта модели с целочисленным значением. Например, следующая команда создает tf модель, представляющая H (z) с временем выборки 0,1 с.

H = tf(2,[1 -0.95],0.1,'InputDelay',25)
H =
 
               2
  z^(-25) * --------
            z - 0.95
 
Sample time: 0.1 seconds
Discrete-time transfer function.

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

Связанные примеры

Подробнее