review

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

Описание

пример

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

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

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

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

  • HardMVConstraints — Твердый ограничительный тест мВ

  • HardOtherConstraints — Другой твердый ограничительный тест

  • SoftConstraints — Мягкий ограничительный тест

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

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

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

  • 1 — Передача

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

  • -1 — Сбой

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

Советы

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

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

Алгоритмы

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

ТестОписание
MPC Object CreationПротестируйте, генерируют ли спецификации контроллера допустимый контроллер MPC. Если контроллер недопустим, дополнительные тесты не выполняются.
QP Hessian Matrix ValidityПротестируйте, имеет ли проблема квадратичного программирования (QP) MPC для контроллера уникальное решение. Необходимо выбрать параметры функции стоимости (веса штрафа) и горизонты, таким образом, что матрица Гессиана QP является положительно-определенной.
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