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

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

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

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

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

Модель первого порядка плюс мертвое время

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

Чтобы создать следующую передаточную функцию первого порядка с временной задержкой 2.1 с:

G(s)=e2.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) как выражение в s.

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

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

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

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

dx(t)dt=2x(t)+3u(t1.5)y(t)=[x(t0.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(T2.2)X(T1.5)].

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

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

  1. Задайте матрицы пространства состояний.

    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(ttj)+Bju(ttj))y(t)=Cx(t)+Du(t)+j=1N(Cjx(ttj)+Dju(ttj))

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

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

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

H(s)=[e0.12se0.3s+1s+1010e0.2s1s+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 команда для аппроксимации дробного фрагмента временной задержки с помощью полнопроходного фильтра. Смотрите Приближение задержки по времени.

Похожие примеры

Подробнее о