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

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

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

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

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

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

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

где модель процесса P имеет время смерти 2,6 секунды и компенсатор C является ПИ-контроллер:

$$ P(s) = {e^{-2.6 s} (s+3) \over s^2+0.3 s+1} , \;\; C(s) = 0.06 (1 +
{1 \over s}) $$

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

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) и Tustin. Для моделей с внутренними задержками дискретизация 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)

Jagged переходная характеристика (обратите внимание на «эхо» начального шага):

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)

См. также

|

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

Подробнее о