review

Исследуйте контроллер MPC на ошибки проектирования и проблемы устойчивости во время исполнения

Описание

пример

review(mpcobj) проверяет потенциальные проблемы проекта в прогнозирующем контроллере модели, mpcobj, и генерирует отчет о проверке. Отчет о проверке предоставляет информацию о каждом тесте, подсвечивает предупреждения и отказы теста и предлагает возможные решения. Для получения дополнительной информации о тестах, выполненных review function, см. Алгоритмы.

пример

results = review(mpcobj) возвращает результаты тестирования и подавляет отчет о проверке.

Примеры

свернуть все

Определите модель объекта управления и создайте контроллер MPC.

plant = tf(1, [10 1]);
Ts = 2;
MPCobj = mpc(plant,Ts);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10.
-->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2.
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000.
-->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000.
-->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.

Установите жесткие верхние и нижние границы манипулируемой переменной и ее скорости изменения.

MV = MPCobj.MV;
MV.Min = -2;
MV.Max =  2;
MV.RateMin = -4;
MV.RateMax =  4;
MPCobj.MV = MV;

Проверьте проектирование контроллера. Функция проверки генерирует и открывает отчет в окне Web Browser.

review(MPCobj)
-->Converting the "Model.Plant" property of "mpc" object to state-space.
-->Converting model to discrete time.
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

review помечает потенциальный конфликт ограничений, который может возникнуть, если этот контроллер использовался для управления реальным процессом. Чтобы просмотреть сведения о предупреждении, щелкните Жесткие ограничения СН.

Определите модель объекта управления и создайте контроллер MPC.

plant = rss(3,1,1);
plant.D = 0;
Ts = 0.1;
MPCobj = mpc(plant,Ts);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10.
-->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2.
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000.
-->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000.
-->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.

Задайте ограничения для контроллера.

MV = MPCobj.MV;
MV.Min = -2;
MV.Max =  2;
MV.RateMin = -4;
MV.RateMax =  4;
MPCobj.MV = MV;

Проверьте проектирование контроллера и подавьте отчет о проверке.

results = review(MPCobj)
-->Converting model to discrete time.
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
results = struct with fields:
          ObjectCreation: 1
           HessianMatrix: 1
       InternalStability: 1
        NominalStability: 1
             SteadyState: 1
       HardMVConstraints: 0
    HardOtherConstraints: 1
         SoftConstraints: 1

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

Создайте и проверьте проекты для прогнозирующих контроллеров модели с запланированным усилением для двух рабочих условий объекта.

Задайте параметры модели.

M1 = 1;
M2 = 5;
k1 = 1;
k2 = 0.1;
b1 = 0.3;
b2 = 0.8;
yeq1 = 10;
yeq2 = -10;

Создайте модели объекта управления для каждого из двух условий работы.

A1 = [0 1; -k1/M1 -b1/M1];
B1 = [0 0; -1/M1 k1*yeq1/M1];
C1 = [1 0];
D1 = [0 0];
sys1 = ss(A1,B1,C1,D1);
sys1 = setmpcsignals(sys1,'MV',1,'MD',2);

A2 = [0 1; -(k1+k2)/(M1+M2) -(b1+b2)/(M1+M2)];
B2 = [0 0; -1/(M1+M2) (k1*yeq1+k2*yeq2)/(M1+M2)];
C2 = [1 0];
D2 = [0 0];
sys2 = ss(A2,B2,C2,D2);
sys2 = setmpcsignals(sys2,'MV',1,'MD',2);

Проектируйте контроллер MPC для каждого рабочего условия.

Ts = 0.2;
p = 6;
m = 2;
MPC1 = mpc(sys1,Ts,p,m);
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000.
-->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000.
-->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.
MPC2 = mpc(sys2,Ts,p,m);
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000.
-->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000.
-->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.
controllers = {MPC1,MPC2};

Проверьте проекты контроллеров и сохраните структуры результатов тестирования.

for i = 1:2
    results(i) = review(controllers{i});
end
-->Converting model to discrete time.
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
-->Converting model to discrete time.
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

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

свернуть все

Объект контроллера MPC, заданный как mpc объект.

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

свернуть все

Результаты тестирования, возвращенные как структура со следующими полями:

  • ObjectCreation - тест создания объектов MPC

  • HessianMatrix - тест валидности QP Hessian

  • InternalStability - Внутренний тест устойчивости

  • NominalStability - Номинальное испытание на устойчивость

  • SteadyState - Тест на установившееся усиление с обратной связью

  • HardMVConstraints - Тест жестких ограничений СН

  • HardOtherConstraints - Другой тест жестких ограничений

  • SoftConstraints - Тест на мягкие ограничения

Для получения дополнительной информации о тестах, выполненных review function, см. Алгоритмы.

The results структура не содержит поля для теста Memory Size for MPC Data.

Для каждого теста результат возвращается как один из следующих:

  • 1 - Сдать

  • 0 - Предупреждение

  • -1 - Неудача

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

Совет

  • Вы также можете просмотреть проектирование контроллера в приложении MPC Designer. На вкладке Tuning, в разделе Analysis, нажмите Review Design.

  • Протестируйте своё проектирование контроллера с помощью таких методов, как симуляции, так как review невозможно обнаружить все возможные факторы эффективности.

Алгоритмы

Команда review выполняет следующие тесты.

ТестОписание
MPC Object CreationПроверьте, генерируют ли спецификации контроллера допустимый контроллер MPC. Если контроллер недействителен, дополнительные тесты не выполняются.
QP Hessian Matrix ValidityПроверьте, имеет ли задача квадратичного программирования (QP) MPC для контроллера уникальное решение. Необходимо выбрать параметры функции затрат (веса штрафов) и горизонты так, чтобы QP Hessian матрица была положительно-определена.
Closed-Loop Internal StabilityИзвлечение A матрица из реализации в пространстве состояний контроллера без ограничений, а затем вычисляет ее собственные значения. Если абсолютное значение каждого собственного значения меньше или равно 1 и объект стабилен, тогда ваша система обратной связи внутренне стабильна.
Closed-Loop Nominal StabilityИзвлечение A матрица из реализации пространства состояний в дискретном времени системы с обратной связью; то есть объект и контроллер подключены в строении обратной связи. Затем вычислите собственные значения A. Если абсолютное значение каждого собственного значения меньше или равно 1, тогда номинальная (без ограничений) система стабильна.
Closed-Loop Steady-State GainsПроверяйте, вводит ли контроллер все управляемые выходные переменные к своим целям в установившемся состоянии при отсутствии ограничений.
Hard MV ConstraintsПроверьте, имеет ли контроллер жесткие ограничения как на манипулируемую переменную, так и на ее скорость изменения, и, если да, могут ли эти ограничения конфликтовать во время исполнения.
Other Hard ConstraintsПроверьте, имеет ли контроллер жесткие выходные ограничения или жесткие смешанные входные/выходные ограничения, и, если да, могут ли эти ограничения стать невозможными для удовлетворения во время исполнения.
Soft ConstraintsПроверьте, имеет ли контроллер правильный баланс жестких и мягких ограничений, путем оценки ограничительных параметров ECR.
Memory Size for MPC DataОцените размер памяти, требуемый контроллером во время исполнения.

Альтернативы

review автоматизирует определенные тесты, которые можно выполнить в командной строке.

  • Для тестирования на статические ошибки отслеживания используйте cloffset.

  • Чтобы проверить внутреннюю стабильность контроллера, проверьте собственные значения mpc объект. Преобразуйте mpc объект модели пространства состояний с помощью ss, и звоните isstable.

Введенный в R2011b