Анализ систем управления с задержками

В этом примере показано, как использовать Control System Toolbox™, чтобы анализировать и спроектировать системы управления с задержками.

Управление процессов с задержками

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

Используя представление пространства состояний, можно создать точный открытый - или модели с обратной связью систем управления с задержками и анализировать их устойчивость и производительность без приближения. Объект пространства состояний (SS) автоматически отслеживает "внутренние" задержки при объединении моделей см. "пример по" Задержек Определения для получения дополнительной информации.

Пример: цикл управления PI с потерей времени

Рассмотрите стандартный цикл отслеживания заданного значения:

где модель процесса P имеет в 2.6 вторых раза и компенсатор C ПИ-контроллер:

Можно задать эти две передаточных функции как

s = tf('s');
P = exp(-2.6*s)*(s+3)/(s^2+0.3*s+1);
C = 0.06 * (1 + 1/s);

Чтобы анализировать ответ с обратной связью, создайте модель T из передачи с обратной связью от ysp к y. Поскольку существует задержка этой обратной связи, необходимо преобразовать P и C к пространству состояний и использованию представление пространства состояний для анализа:

T = feedback(P*C,1)
T =
 
  A = 
          x1     x2     x3
   x1  -0.36  -1.24  -0.18
   x2      1      0      0
   x3      0      1      0
 
  B = 
        u1
   x1  0.5
   x2    0
   x3    0
 
  C = 
         x1    x2    x3
   y1  0.12  0.48  0.36
 
  D = 
       u1
   y1   0
 
  (values computed with all internal delays set to zero)

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

Результатом является модель третьего порядка с внутренней задержкой 2,6 секунд. Внутренне, объект T пространства состояний дорожки, как задержка вместе с остающейся динамикой. Эта структурная информация не отображается пользователям, и отображение выше только дает A, B, C, D значения, когда задержка обнуляется.

Используйте STEP команда, чтобы построить переходной процесс с обратной связью от ysp к y:

step(T)

Колебания с обратной связью происходят из-за слабого запаса по амплитуде, как замечено по ответу разомкнутого цикла P*C:

margin(P*C)

В частотной характеристике с обратной связью существует также резонанс:

bode(T)
grid, title('Closed-loop frequency response')

Чтобы улучшить проект, можно попытаться отметить резонанс около 1 рад/с:

notch = tf([1 0.2 1],[1 .8 1]);
C = 0.05 * (1 + 1/s);
Tnotch = feedback(P*C*notch,1);

step(Tnotch), grid

Аппроксимация Паде задержек

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

Используйте PADE команда, чтобы вычислить аппроксимации Паде моделей LTI с задержками. Поскольку PI управляет примером выше, можно сравнить точный ответ с обратной связью T с ответом, полученным для аппроксимации Паде первого порядка задержки:

T1 = pade(T,1);
step(T,'b',T1,'r',100)
grid, legend('Exact','First-Order Pade')

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

T2 = pade(T,2);
step(T,'b',T2,'r',100)
grid, legend('Exact','Second-Order Pade')

Ответы теперь соответствуют тесно за исключением неминимального артефакта фазы, введенного аппроксимацией Паде.

Анализ чувствительности

Задержки редко известны точно, таким образом, часто важно изучить, насколько чувствительный система управления к значению задержки. Такой анализ чувствительности легко выполняется с помощью массивов LTI и свойства InternalDelay.

Например, чтобы анализировать чувствительность с пазами управления PI выше, создайте 5 моделей со значениями задержки в пределах от 2,0 к 3,0:

tau = linspace(2,3,5);                    % 5 delay values
Tsens = repsys(Tnotch,[1 1 5]);           % 5 copies of Tnotch
for j=1:5
  Tsens(:,:,j).InternalDelay = tau(j);    % jth delay value -> jth model
end

Затем используйте STEP создать график конверта:

step(Tsens)
grid, title('Closed-loop response for 5 delay values between 2.0 and 3.0')

Этот график показывает, что неопределенность на значении задержки оказывает мало влияния на характеристики с обратной связью. Обратите внимание на то, что, в то время как можно изменить значения внутренних задержек, вы не можете измениться, сколько существует то, потому что это - часть структуры модели. Чтобы устранить некоторые внутренние задержки, обнулите их значение или используйте PADE с нулем порядка:

Tnotch0 = Tnotch;
Tnotch0.InternalDelay = 0;
bode(Tnotch,'b',Tnotch0,'r',{1e-2,3})
grid, legend('Delay = 2.6','No delay','Location','SouthWest')

Дискретизация

Можно использовать C2D чтобы дискретизировать непрерывное время задерживают системы. Доступные методы включают хранение нулевого порядка (ZOH), хранение первого порядка (FOH) и Тастин. Для моделей с внутренними задержками дискретизация ZOH не всегда "точна", т.е. непрерывные и дискретизированные переходные процессы не могут соответствовать:

Td = c2d(T,1);
step(T,'b',Td,'r')
grid, legend('Continuous','ZOH Discretization')
Warning: Discretization is only approximate due to internal delays. Use faster
sampling rate if discretization error is large. 

Чтобы откорректировать такие разрывы дискретизации, уменьшайте период выборки до непрерывного и дискретного соответствия ответов тесно:

Td = c2d(T,0.05);
step(T,'b',Td,'r')
grid, legend('Continuous','ZOH Discretization')
Warning: Discretization is only approximate due to internal delays. Use faster
sampling rate if discretization error is large. 

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

order(Td)
Td.InternalDelay
ans =

     3


ans =

    52

Некоторые уникальные функции систем задержки

Время и частотные характеристики систем задержки могут выглядеть причудливыми и подозрительными только знакомым с анализом LTI без задержек. Ответы времени могут вести себя хаотично, Диаграммы Боде могут показать колебания усиления и т.д. Это не причуды программного обеспечения, но действительные функции таких систем. Ниже несколько рисунков этих явлений

Пульсации усиления:

G = exp(-5*s)/(s+1);
T = feedback(G,.5);
bodemag(T)

Колебания усиления:

G = 1 + 0.5 * exp(-3*s);
bodemag(G)

Зубчатый переходной процесс (отмечают "эхо" начального шага):

G = exp(-s) * (0.8*s^2+s+2)/(s^2+s);
T = feedback(G,1);
step(T)

Хаотический ответ:

G = 1/(s+1) + exp(-4*s);
T = feedback(1,G);

step(T)

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

|

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

Больше о