loopsyn

Проектирование контроллера формирования цикла с компромиссом между эффективностью и робастностью

Описание

loopsyn эффективность балансов и робастность путем смешивания двух формирующих цикл методов.

  • Проект смешанной чувствительности (mixsyn), который имеет тенденцию оптимизировать эффективность и разъединяющийся за счет робастности

  • Метод Перчаточника-McFarlane (ncfsyn), который максимизирует робастность, чтобы посадить неопределенность

Можно настроить компромисс между эффективностью и робастностью, чтобы получить удовлетворительные ответы временного интервала при предотвращении хрупких проектов с инверсией объекта или гибкой отменой режима.

пример

[K,CL,gamma,info] = loopsyn(G,Gd) вычисляет стабилизировавшийся контроллер K это формирует ответ разомкнутого контура G*K чтобы приблизительно совпадать с заданным циклом формируют Gd. Эффективность смешанной чувствительности gamma указывает на близость соответствия. loopsyn попытки минимизировать gammaСогласно ограничению, что робастность с K (как измерено ncfmargin) не хуже, чем половина максимальной достижимой робастности. Функция также возвращает передаточную функцию с обратной связью CL и структура info содержа дополнительную информацию о синтезе контроллера.

пример

[K,CL,gamma,info] = loopsyn(G,Gd,alpha) явным образом задает компромисс между эффективностью и робастностью параметром alpha в интервале [0,1]. В этом интервале, меньшем alpha эффективность пользы (mixsyn спроектируйте), и больший alpha робастность пользы (ncfsyn спроектируйте). Когда вы задаете alpha, loopsyn попытки минимизировать gammaСогласно ограничению, что робастность не хуже, чем alpha времена максимальная достижимая робастность.

пример

[K,CL,gamma,info] = loopsyn(G,Gd,alpha,ord) задает порядок контроллера K Чтобы использовать этот синтаксис, необходимо задать alpha таким образом, что 0 <alpha < 1.

Примеры

свернуть все

Рассмотрите следующий объект.

s = zpk('s');
G = (s-10)/(s+100);

Спроектируйте контроллер, который дает к переходному процессу с обратной связью со временем нарастания приблизительно 4 с. Простой целевой формой цикла для этого требования является Gd = wc/s, где целевая частота среза wc связан с желаемым временем нарастания t = 2/wc.

wc = 0.5; 
Gd = wc/s;

Получите контроллер, использующий loopsyn.

[K,CL,gamma] = loopsyn(G,Gd);
gamma
gamma = 1.1744

Это значение gamma близко к 1, указывая на довольно хорошее соответствие между достигнутой формой цикла и целевой формой цикла. Сравните достигнутый ответ разомкнутого контура G*K с желаемым ответом Gd.

sigma(G*K,"b",Gd,"r--",{0.01,10})
grid on
legend("Actual","Target")

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Actual, Target.

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

step(CL)

Figure contains an axes object. The axes object contains an object of type line. This object represents CL.

Можно использовать входной параметр alpha задавать сколько loopsyn польза любая эффективность (mixsyn спроектируйте) или робастность (ncfsyn спроектируйте). По умолчанию, loopsyn вычисляет сбалансированный план, alpha = 0.5. Чтобы изменить баланс, измените alpha. Рассмотрите следующий объект и предназначайтесь для формы цикла.

G = tf(25,[1 10 10 10]); 
Gd = tf(0.5,[1 0]);

Спроектируйте формирующий цикл контроллер, который максимизирует эффективность (минимизирует gamma) подвергните ограничению что робастность (как определено ncfmargin) не хуже, чем 75% максимальной достижимой робастности. Для этого установите alpha к 0,75.

alpha = 0.75;
[K,CL,gamma,info] = loopsyn(G,Gd,alpha);

Максимальное достижимое поле робастности возвращено в info структура. Сравните то значение с полем, достигнутым этим контроллером. Для ncfmargin, используйте имеющий форму объект и соответствующий контроллер, также возвращенный в info.

info.emax
ans = 0.6474
ncfmargin(info.Gs,info.Ks)
ans = 0.4867

Эти значения подтверждают, что достигнутая робастность составляет 75% максимальной робастности, достижимой установкой alpha = 1 для чистого ncfsyn проект. Для этого объекта, alpha = 0,75 выражения проекта хорошее соответствие к циклу формируют, не жертвуя особой робастностью. Исследуйте эффективность и форму цикла с этим контроллером.

gamma
gamma = 1.2146
sigma(G*K,"b",Gd,"r--",{0.01,10})
grid on
legend("Actual","Target")

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Actual, Target.

Для получения дополнительной информации о том, как выбрать хорошее значение alpha для вашего приложения смотрите Формирующее Цикл Проектирование контроллера.

При разработке контроллера для системы MIMO, если вы задаете скалярный Gd, затем loopsyn применяет ту же целевую форму цикла ко всем каналам обратной связи. Можно задать различную форму для каждого цикла с помощью диагонального Gd из размера Ny- Ny, где Ny количество обратной связи или количество выходных параметров G. Рассмотрите следующую систему управления с 2D выходом, 2D входным объектом.

s = tf('s');
G = [(1+0.1*s)/(1+s) 0.1/(s+2) ; 0 (s+2)/(s^2+s+3)];

Проект у контроллера для этого объекта, такого как первый канал обратной связи есть частота среза 1 рад/с и второе, имеет частоту среза 5 рад/с. К так, создайте формы цикла wc/s для каждого цикла и использования append команда, чтобы создать диагональный Gd.

wc = [1 5]; 
Gd = append(wc(1)/s,wc(2)/s);

Спроектируйте контроллер.

[K,CL] = loopsyn(G,Gd);

Сравните достигнутые формы цикла с целевой формой цикла.

bodemag(G*K,Gd,{0.1,100})
grid on
legend("Actual","Target")

Figure contains 4 axes objects. Axes object 1 with title From: In(1) contains 2 objects of type line. These objects represent Actual, Target. Axes object 2 contains 2 objects of type line. These objects represent Actual, Target. Axes object 3 with title From: In(2) contains 2 objects of type line. These objects represent Actual, Target. Axes object 4 contains 2 objects of type line. These objects represent Actual, Target.

Можно ограничить порядок контроллера что loopsyn проекты с помощью order аргумент. Чтобы задать порядок контроллера, необходимо использовать значение параметра alpha таким образом, что 0 < alpha < 1.

Загрузите 2D вход, 2D выходной объект.

load plant_loopsynOrderExample.mat G
size(G)
State-space model with 2 outputs, 2 inputs, and 7 states.

Спроектируйте контроллер для этого объекта форма цикла Gd = 0.5/s. Используйте alpha = 0.5 и позвольте loopsyn выберите порядок контроллера.

alpha = 0.5;
Gd = tf(0.5,[1 0]);
[K0,CL0,gamma0] = loopsyn(G,Gd,alpha); 
order(K0)
ans = 5

loopsyn возвращает контроллер с пятью состояниями. Используйте loopsyn снова спроектировать контроллер с тремя состояниями.

ord = 3;
[K,CL,gamma,info] = loopsyn(G,Gd,alpha,ord); 
order(K)
ans = 3

Для этого объекта, уменьшая порядок контроллера с пять до трех выражений маленькое уменьшение в эффективности.

gamma0
gamma0 = 1.0331
gamma
gamma = 1.1827

Для примера, который показывает, как определить подходящий порядок для формирующего цикл контроллера, смотрите Формирующее Цикл Проектирование контроллера.

loopsyn может также обеспечить 2D вход, один выходной контроллер, подходящий для реализации двух степеней свободы (2-dof) архитектура следующего рисунка.

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

G = tf(8625,[1 2.389 -5606]);
Gd = tf(80,[1 0])*tf(240,[1 240]);

[K,CL,gamma,info] = loopsyn(G,Gd);

K2dof поле info выведите содержит два контроллера степени свободы. Для объекта с Nu входные параметры и Ny выходные параметры, K2dof имеет Nu выходные параметры и 2*Ny входные параметры. В этом примере, потому что G SISO, K2dof имеет тот выход и два входных параметров.

K2dof = info.K2dof;
size(K2dof)
State-space model with 1 outputs, 2 inputs, and 4 states.

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

L2dof = G*K2dof;
L2dof.InputName = {'r','y'};
L2dof.OutputName = 'y';
CL2dof = connect(L2dof,'r','y');

Сравните переходной процесс с обратной связью с этими двумя архитектурами. Для этой системы 2-dof архитектура существенно уменьшает перерегулирование в ответе.

step(CL,CL2dof)
legend("1-dof","2-dof")

Figure contains an axes object. The axes object with title From: r To: y contains 2 objects of type line. These objects represent 1-dof, 2-dof.

Входные параметры

свернуть все

Объект в виде модели динамической системы, такой как пространство состояний (ss) модель. Если G обобщенная модель в пространстве состояний с неопределенными или настраиваемыми блоками системы управления, затем loopsyn использует номинальную стоимость или текущее значение тех элементов. G может быть SISO или MIMO, и может быть модель непрерывного времени или дискретного времени. G должен иметь, по крайней мере, столько же входных параметров сколько выходные параметры. G не может иметь задержек. Использование pade аппроксимировать задержки.

Целевая форма цикла в виде модели динамической системы, такой как sstf , или zpk модель. Можно также обеспечить Gd как данные частотной характеристики (frd) модель, задающая желаемое усиление на определенных частотах. Gd не может иметь задержек. Использование pade аппроксимировать задержки.

Для объекта MIMO G с Ny выходные параметры ,

  • Задайте SISO Gd использовать ту же желаемую форму цикла для всех циклов.

  • Задайте Ny- Ny диагональный Gd использовать различную форму для каждой обратной связи. Один способ создать такой диагональный Gd должен задать Gdi для каждого канала, и затем используют Gd = append(Gd1,...,GdNy).

В общем случае используйте целевую форму цикла, которая имеет высокое усиление в низких частотах для отслеживания уставки и подавления помех, и низкое усиление на высоких частотах для робастности против неопределенности объекта. Для получения дополнительной информации о том, как выбрать вашу целевую форму цикла, смотрите, что Цикл Формирует для Эффективности и Робастности.

Балансируйтесь между эффективностью и робастностью в виде скалярного значения в области значений [0,1]. Используйте alpha настраивать баланс между эффективностью и робастностью можно следующим образом:

  • alpha = 0 дает mixsyn проект.

  • alpha = 1 дает ncfsyn проект.

loopsyn максимизирует эффективность (минимизирует gamma) подвергните ограничению что робастность (как измерено ncfmargin) не хуже, чем alpha*emax, где emax максимальная робастность, достижимая ncfsyn проект. Значение по умолчанию alpha = 0.5 дает к сбалансированному плану. Можно настроить alpha между 0 и 1, чтобы найти правильный компромисс для вашего приложения. Для примера, который показывает эффект различного alpha, смотрите Формирующее Цикл Проектирование контроллера.

Порядок контроллера в виде положительного целого числа. Чтобы использовать эту опцию, необходимо задать alpha таким образом, что 0 < alpha< 1 .

Выходные аргументы

свернуть все

Формирующий цикл контроллер, возвращенный как пространство состояний (ss) модель. K формирует ответ разомкнутого контура G*K чтобы приблизительно совпадать с заданным циклом формируют Gd. Контроллер минимизирует эффективность gamma подвергните ограничению что запас устойчивости, как вычислено ncfmargin не превышает alpha*emax, где emax максимальное поле, достижимое ncfsyn.

Система с обратной связью, возвращенная как пространство состояний (ss) модель. Система с обратной связью дана feedback(G*K,eye(ny)), где ny количество выходных параметров G.

Эффективность контроллера, возвращенная как неотрицательное скалярное значение или Inf. Значение рядом или ниже 1 указывает на тот G*K близко к Gd. Значения, намного больше, чем, каждый указывает на слабое соответствие между достигнутыми и желаемыми формами цикла. Если loopsyn не может найти стабилизировавшийся контроллер, gamma isinf.

gamma эффективность смешанной чувствительности, функция стоимости, минимизированная mixsyn, и дают

γ=[W1SW3T],S=(I+GK)1,T=IS,

где W 1 и W 3 mixsyn веса. loopsyn выводит эти веса из Gd осуществлять желаемую форму цикла.

Дополнительная информация о синтезе контроллера, возвращенном как структура, содержащая следующие поля.

Поле Описание
WФормирование предварительного фильтра, возвращенного как пространство состояний (ss) модель. Значение W таково что имеющий форму объект Gs = G*W имеет желаемую форму цикла Gd.
GsИмеющий форму объект Gs = G*W, возвращенный как ss модель.
KsH контроллер для имеющего форму объекта Gs (см. ncfsyn), возвратился как ss модель. Для вычисления поля робастности с ncfmargin, используйте Gs и Ks.
emaxМаксимальное достижимое поле робастности, возвращенное как скаляр. Это значение является робастностью, достигнутой чистым ncfsyn проект. Для получения информации об интерпретации этого значения смотрите ncfmargin.
W1,W3Функции взвешивания для mixsyn формулировка формирующей цикл цели, возвращенной как ss модели. loopsyn выводит эти веса из Gd осуществлять желаемую форму цикла.
K2dof

Два контроллера степени свободы, возвращенные как ss модель с 2*ny входные параметры и nu выходные параметры, где ny и nu количества выходных параметров и входные параметры G, соответственно. Этот контроллер подходит для двух реализаций степени свободы, которые разделяют опорный сигнал от сигнала обратной связи, как в архитектуре следующей схемы.

Two-degree-of-freedom control architecture with plant G and controller K2dof. The controller has separate inputs for the reference signal r and the feedback signal y.

Для примера, который показывает, как использовать K2dof, см. Два Контроллера Формирования Цикла Степени свободы.

Вопросы совместимости

развернуть все

Поведение изменяется в R2021b

Представлено до R2006a