exponenta event banner

обзор

Проверить контроллер ПДК на наличие конструктивных ошибок и проблем устойчивости во время выполнения

Описание

пример

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

пример

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;

Проверьте конструкцию контроллера. Функция проверки создает и открывает отчет в окне веб-браузера.

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 помечает потенциальный конфликт ограничений, который может привести к использованию этого контроллера для управления реальным процессом. Чтобы просмотреть сведения о предупреждении, щелкните Жесткие ограничения среднего напряжения (Hard MV Constraints).

Определите модель завода и создайте контроллер 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 см. раздел Алгоритмы.

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

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

  • 1 - Пропуск

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

  • -1 - Отказ

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

Совет

  • Можно также просмотреть конструкцию контроллера в приложении MPC Designer. На вкладке Настройка в разделе Анализ щелкните Просмотр конструкции.

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

Алгоритмы

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

ТестОписание
Создание объекта MPCПроверьте, генерируют ли спецификации контроллера действительный контроллер MPC. Если контроллер недействителен, дополнительные тесты не выполняются.
Срок действия матрицы QP HessianПроверьте, имеет ли проблема квадратного программирования MPC (QP) для контроллера уникальное решение. Необходимо выбрать параметры функции затрат (веса штрафов) и горизонты таким образом, чтобы матрица Гессена QP была положительной.
Внутренняя стабильность с замкнутым контуромИзвлеките A матрицу из реализации состояния-пространства неограниченного контроллера, а затем вычисляют его собственные значения. Если абсолютное значение каждого собственного значения меньше или равно 1 и завод стабилен, то ваша система обратной связи внутри стабильна.
Номинальная стабильность по замкнутому контуруИзвлеките A матрицу из дискретно-временной реализации состояния-пространства замкнутой системы; то есть установка и контроллер соединены в конфигурации обратной связи. Затем вычислите собственные значения A. Если абсолютное значение каждого собственного значения меньше или равно 1, то номинальная (неограниченная) система стабильна.
Переходы в установившемся состоянии с замкнутым контуромПроверьте, не приводит ли контроллер все управляемые выходные переменные к их целям в устойчивом состоянии при отсутствии ограничений.
Жесткие ограничения среднего напряженияПроверьте, есть ли у контроллера жесткие ограничения как на управляемую переменную, так и на скорость ее изменения, и, если да, могут ли эти ограничения конфликтовать во время выполнения.
Другие жесткие ограниченияПроверьте, имеет ли контроллер жесткие ограничения на выход или жесткие смешанные ограничения на вход/выход, и если да, то могут ли эти ограничения стать невозможными для удовлетворения во время выполнения.
Мягкие ограниченияПроверьте, имеет ли контроллер надлежащий баланс жестких и мягких ограничений, оценив параметры ECR ограничения.
Размер памяти для данных MPCОцените размер памяти, необходимый контроллеру во время выполнения.

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

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

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

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

Представлен в R2011b