exponenta event banner

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

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

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

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

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

Пример: Контур управления PI с мертвым временем

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

где модель процесса 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 секунды. Внутренний объект state-space 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

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

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

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

Погрешность аппроксимации достаточно велика. Чтобы получить лучшую аппроксимацию, попробуйте аппроксимацию задержки 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)

Зыбкая реакция шага (обратите внимание на «эхо» начального шага):

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)

См. также

|

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

Подробнее