exponenta event banner

Указание временных задержек

В этом примере показано, как Toolbox™ системы управления позволяет представлять, управлять и анализировать любую модель LTI с конечным числом задержек. Задержки могут быть на системных входах или выходах, между определенными парами ввода-вывода или внутренними для модели (например, внутри контура обратной связи).

Временные задержки в моделях LTI

Объекты передаточной функции (TF), усиления нулевого полюса (ZPK) и данных частотного отклика (FRD) предлагают три свойства для моделирования задержек:

  • InputDelay, чтобы указать задержки на входах

  • OutputDelay, для указания задержек на выходах

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

Объект state-space (SS) также имеет три свойства, связанные с задержкой:

  • InputDelay, чтобы указать задержки на входах

  • OutputDelay, для указания задержек на выходах

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

Способность отслеживать внутренние задержки делает представление состояния-пространства наиболее подходящим для моделирования и анализа эффектов задержки в системах управления. В этом учебном пособии показано, как создавать системы с задержками и управлять ими. Дополнительные сведения об анализе эффектов задержки см. в разделе Анализ систем управления с задержками.

Модели первого порядка и мертвого времени

Модели первого порядка и мертвого времени обычно используются в приложениях управления процессами. Одним из таких примеров является:

$$P(s) = {5 e^{-3.4 s} \over s+1} $$

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

num = 5;
den = [1 1];
P = tf(num,den,'InputDelay',3.4)
P =
 
                  5
  exp(-3.4*s) * -----
                s + 1
 
Continuous-time transfer function.

Как и ожидалось, ответ на шаг P является сдвинутой версией ответа без задержки:

P0 = tf(num,den);
step(P0,'b',P,'r')

Если модель процесса имеет несколько выходов, например:

$$P(s) = \left[\matrix{{5 e^{-3.4 s} \over s+1} \cr {-2 e^{-2.7 s} \over s+3} }\right] , $$

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

num = {5 ; -2};
den = {[1 1] ; [1 3]};
P = tf(num,den,'OutputDelay',[3.4 ; 2.7])
P =
 
  From input to output...
                       5
   1:  exp(-3.4*s) * -----
                     s + 1
 
                      -2
   2:  exp(-2.7*s) * -----
                     s + 3
 
Continuous-time transfer function.

Далее рассмотрим модель с множеством входов и множеством выходов, например,

$$P(s) = \left[\matrix{{5 e^{-3.4 s} \over s+1} & 1 \cr {-2 e^{-2.7 s} \over s+3} & {e^{-0.7 s} \over s} }\right] . $$

Здесь задержки различны для каждой пары ввода-вывода, поэтому необходимо использовать свойство IODelay:

num = {5 , 1; -2 1};
den = {[1 1] , 1; [1 3], [1 0]};
P = tf(num,den,'IODelay',[3.4  0;2.7 0.7]);

Более прямой и буквальный способ указать эту модель - ввести переменную Лапласа «s» и использовать арифметику передаточной функции:

s = tf('s');
P = [ 5*exp(-3.4*s)/(s+1) , 1 ; -2*exp(-2.7*s)/(s+3) , exp(-0.7*s)/s ]
P =
 
  From input 1 to output...
                       5
   1:  exp(-3.4*s) * -----
                     s + 1
 
                      -2
   2:  exp(-2.7*s) * -----
                     s + 3
 
  From input 2 to output...
   1:  1
 
                     1
   2:  exp(-0.7*s) * -
                     s
 
Continuous-time transfer function.

Обратите внимание, что в этом случае MATLAB ® автоматически решает, как распределять задержки между свойствами InputDelay, OutputDelay и IODelay.

P.InputDelay
P.OutputDelay
P.IODelay
ans =

     0
     0


ans =

         0
    0.7000


ans =

    3.4000         0
    2.0000         0

Функция totaldelay суммирует значения задержки ввода, вывода и ввода-вывода, чтобы вернуть введенные значения:

totaldelay(P)
ans =

    3.4000         0
    2.7000    0.7000

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

Рассмотрим модель «состояние-пространство»:

$$ {dx \over dt} = - x(t) + u(t-2.5) , \;\; y(t) = 12 x(t) . $$

Следует отметить, что входной сигнал u (t) задерживается на 2,5 секунды. Чтобы указать эту модель, введите:

sys = ss(-1,1,12,0,'InputDelay',2.5)
sys =
 
  A = 
       x1
   x1  -1
 
  B = 
       u1
   x1   1
 
  C = 
       x1
   y1  12
 
  D = 
       u1
   y1   0
 
  Input delays (seconds): 2.5 
 
Continuous-time state-space model.

Связанная модель

$$ {dx_1 \over dt} = - x_1(t) + u(t) , \;\; y(t) = 12 x_1(t-2.5) . $$

Здесь 2,5-секундная задержка находится на выходе, как видно при перезаписи этих уравнений состояния как:

$$ {dx_1 \over dt} = - x_1(t) + u(t) , \;\; y_1(t) = 12 x_1(t) , \;\;
y(t) = y_1(t-2.5) . $$

Поэтому можно указать эту модель как:

sys1 = ss(-1,1,12,0,'OutputDelay',2.5);

Обратите внимание, что обе модели имеют одинаковый ответ ввода-вывода, подтвержденный

step(sys,'b',sys1,'r--')

Однако их траектории состояния не одинаковы, потому что штаты x и x1 связаны

$$ x(t) = x_1 (t-2.5) $$

Объединение моделей с задержками ввода-вывода

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

$$ H(s) = H_1(s) + H_2(s) = {1 \over s+2} + {5 e^{-3.4 s} \over s+1} $$

Результирующая передаточная функция

$$ H(s) = {s + 1 + (5 s + 10) e^{-3.4 s} \over (s+1)(s+2) } $$

не может быть представлена как обычная передаточная функция с задержкой на входе или выходе. Для представления $H(s)$мы должны перейти на представление «государство-пространство» и использовать понятие «внутренняя задержка». Модели state-space (SS) имеют возможность отслеживать задержки при соединении систем. Структурная информация о местоположении задержки и их связи с оставшейся динамикой кодируется эффективным и полностью общим образом. Добавление передаточных функций$H_1(s)$ и $H_2(s)$вместе автоматически вычисляет представление состояния-пространства:$H(s)$

H1 = 1/(s+2);
H2 = 5*exp(-3.4*s)/(s+1);
H = H1 + H2
H =
 
  A = 
       x1  x2
   x1  -2   0
   x2   0  -1
 
  B = 
       u1
   x1   1
   x2   2
 
  C = 
        x1   x2
   y1    1  2.5
 
  D = 
       u1
   y1   0
 
  (values computed with all internal delays set to zero)

  Internal delays (seconds): 3.4 
 
Continuous-time state-space model.

Обратите внимание, что

  • Значение задержки 3.4 указано как «внутреннее»

  • Данные A, B, C, D соответствуют динамике, когда все задержки установлены в нуль (аппроксимация Pade нулевого порядка).

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

step(H1,H2,H)
legend('H1','H2','H','Location','NorthWest'), grid

bode(H1,'b',H-H2,'r--')  % verify that H-H2 = H1
grid

Модели зданий с внутренними задержками

Обычно модели пространства состояний с внутренними задержками не создаются путем указания данных A, B, C, D вместе с набором внутренних задержек. Скорее, вы создаете такие модели, соединяя более простые модели LTI (некоторые с задержками ввода-вывода) последовательно, параллельно или с обратной связью. Нет никаких ограничений на то, сколько задержек задействовано и как модели LTI соединены вместе.

Например, рассмотрим контур управления, показанный ниже, где установка моделируется как время ожидания первого порядка плюс время покоя.

Рис. 1. Петля обратной связи с задержкой.

Используя представление состояния-пространства, можно получить модель T для ответа с обратной связью от r до y и имитировать его

P = 5*exp(-3.4*s)/(s+1);
C = 0.1 * (1 + 1/(5*s));
T = feedback(P*C,1);

step(T,100)
grid, title('Closed-loop step response')

Для более сложных взаимосвязей можно назвать входные и выходные сигналы каждого блока и использовать connect для автоматического контроля за проводкой. Предположим, например, что требуется добавить обратную связь к контуру управления, показанному на рис. 1:

Рис. 2: Управление передачей и обратной связью.

Можно выполнить деривацию соответствующей модели с замкнутым контуром. T около

F = 0.3/(s+4);
P.u = 'u';  P.y = 'y';
C.u = 'e';  C.y = 'uc';
F.u = 'r';  F.y = 'uf';
Sum1 = sumblk('e = r-y');
Sum2 = sumblk('u = uf+uc');
Tff = connect(P,C,F,Sum1,Sum2,'r','y');

и сравнить его ответ с конструкцией только обратной связи:

step(T,'b',Tff,'r',100)
legend('No feedforward','Feedforward')
grid, title('Closed-loop step response with and without feedforward')

Уравнения состояния-пространства с отсроченными членами

Особым классом моделей LTI с задержками являются уравнения состояния-пространства с запаздывающими слагаемыми. Общая форма:

$$ {dx \over dt} = A x(t) + B u(t) + \sum_j ( A_j x(t-\tau_j) + B_j u(t-\tau_j) ) $$

$$ y(t) = C x(t) + D u(t) + \sum_j ( C_j x(t-\tau_j) + B_j u(t-\tau_j) ) $$

Функция delayss помогает указать такие модели. Например, рассмотрим

$${dx \over dt} = -x(t) - x(t-1.2) + 2 u(t-0.5) , \;\; y(t) = x(t-0.5) + u(t) $$

Чтобы создать эту модель, укажите Aj,Bj,Cj,Dj для каждой задержки и использования delayss для сборки модели:

DelayT(1) = struct('delay',0.5,'a',0,'b',2,'c',1,'d',0);   % tau1=0.5
DelayT(2) = struct('delay',1.2,'a',-1,'b',0,'c',0,'d',0);  % tau2=1.2
sys = delayss(-1,0,0,1,DelayT)
sys =
 
  A = 
       x1
   x1  -2
 
  B = 
       u1
   x1   2
 
  C = 
       x1
   y1   1
 
  D = 
       u1
   y1   1
 
  (values computed with all internal delays set to zero)

  Internal delays (seconds): 0.5  0.5  1.2 
 
Continuous-time state-space model.

Обратите внимание, что A,B,C,D для всех задержек установлены нулевые значения. Ответ на эти значения не должен быть близок к фактическому ответу с задержками:

step(sys,'b',pade(sys,0),'r')

Модели дискретного времени с задержками

Дискретные временные задержки обрабатываются аналогичным образом с некоторыми незначительными различиями:

  • Дискретные временные задержки всегда кратны целому периоду выборки

  • Дискретные временные задержки эквивалентны полюсам при z = 0, поэтому всегда возможно поглощать задержки в динамике модели. Однако сохранение отдельных задержек лучше для производительности, особенно для систем с большими задержками по сравнению с периодом выборки.

Задание модели первого порядка

$$ H(z) = z^{-25} { 2 \over z - 0.95 } $$

с периодом выборки Ts = 0,1, использовать

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

Эквивалентное представление состояния-пространства

H = ss(H)
H =
 
  A = 
         x1
   x1  0.95
 
  B = 
       u1
   x1   2
 
  C = 
       x1
   y1   1
 
  D = 
       u1
   y1   0
 
  Input delays (sampling periods): 25 
 
Sample time: 0.1 seconds
Discrete-time state-space model.

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

Рис. 3: Контур дискретной временной обратной связи.

Чтобы вычислить отклик замкнутого цикла для g=0.01, тип

g = .01;
T = feedback(g*H,1)
step(T)
T =
 
  A = 
         x1
   x1  0.93
 
  B = 
       u1
   x1   2
 
  C = 
         x1
   y1  0.01
 
  D = 
       u1
   y1   0
 
  (values computed with all internal delays set to zero)

  Internal delays (sampling periods): 25 
 
Sample time: 0.1 seconds
Discrete-time state-space model.

Обратите внимание, что T все еще является моделью первого порядка с внутренней задержкой в 25 выборок. Для сравнения сопоставьте все задержки полюсам при z = 0 с помощьюabsorbDelay:

T1 = absorbDelay(T);
order(T1)
ans =

    26

Полученная модель имеет 26 состояний и поэтому менее эффективна в моделировании. Обратите внимание, что пошаговые ответы T и T1 точно соответствует ожидаемому значению:

step(T,'b',T1,'r--')

В целом, рекомендуется сохранять задержки раздельными, за исключением случаев анализа динамики замкнутого цикла моделей с внутренними задержками:

rlocus(H)
axis([-1 2 -1 1])

Модели внутреннего пространства с внутренними задержками

Объекты state-space используют обобщенные уравнения state-space для отслеживания внутренних задержек. Концептуально такие модели состоят из двух взаимосвязанных частей:

  • Обычная модель состояния-пространства H(s) с дополненным набором ввода-вывода

  • Банк внутренних задержек.

Рис. 4: Внутреннее представление моделей государственного пространства с внутренними задержками.

Соответствующие уравнения состояния-пространства:

$$\matrix{ \dot{x}(t) = A x(t) + B_1 u(t) + B_2 w(t) \;\;\;\; \cr
 y(t) = C_1 x(t) + D_{11} u(t) + D_{12} w(t) \cr
 z(t) = C_2 x(t) + D_{21} u(t) + D_{22} w(t) \cr
 w_j(t) = z_j(t - \tau_j) , \;\; j = 1,...,N } \;\;\;\; \;\;\;\; $$

Вам не нужно беспокоиться с этим внутренним представлением, чтобы использовать инструменты. Однако, если по какой-то причине вы хотите извлечь H или матрицы A,B1,B2,..., вы можете сделать это с помощью getDelayModel. Для примера

P = 5*exp(-3.4*s)/(s+1);
C = 0.1 * (1 + 1/(5*s));
T = feedback(P*C,1);

[H,tau] = getDelayModel(T,'lft');
size(H)
State-space model with 2 outputs, 2 inputs, and 2 states.

Обратите внимание, что H является моделью с двумя входами и двумя выходами, в то время как T является SISO. Обратная операция (объединение H и tau построить T) выполняется setDelayModel.