exponenta event banner

Обзор прогнозирующего контроллера модели для проблем стабильности и надежности

Можно просмотреть проект прогнозирующего контроллера модели на предмет потенциальных проблем стабильности и надежности. Для этого:

  • В командной строке используйте команду review функция.

  • В MPC Designer на вкладке Настройка (Tuning) в разделе Анализ (Analysis) щелкните Просмотр проекта (Review Design).

В обоих случаях программное обеспечение генерирует отчет, в котором отображаются результаты следующих тестов:

  • Создание объекта MPC (MPC Object Creation) - проверка того, генерируют ли спецификации контроллера действительный контроллер MPC. Если контроллер недействителен, дополнительные тесты не выполняются.

  • QP Hessian Matrix Validity - Проверка наличия уникального решения проблемы quadratic programming (QP) для контроллера. Необходимо выбрать параметры функции затрат (веса штрафов) и горизонты таким образом, чтобы матрица Гессена QP была положительной.

  • Внутренняя стабильность с замкнутым контуром - извлечение A матрицу из реализации состояния-пространства неограниченного контроллера, а затем вычисляют его собственные значения. Если абсолютное значение каждого собственного значения меньше или равно 1 и завод стабилен, то ваша система обратной связи внутри стабильна.

  • Номинальная стабильность по замкнутому контуру - извлечение A матрицу из дискретно-временной реализации состояния-пространства замкнутой системы; то есть установка и контроллер соединены в конфигурации обратной связи. Затем вычислите собственные значения A. Если абсолютное значение каждого собственного значения меньше или равно 1, то номинальная (неограниченная) система стабильна.

  • Неустойчивая динамика с замкнутым контуром - проверка того, принудительно ли контроллер перемещает все управляемые выходные переменные к их целям в установившемся состоянии при отсутствии ограничений.

  • Жесткие ограничения среднего напряжения (Hard MV Constraints) - проверка наличия жестких ограничений у контроллера как на управляемой переменной, так и на скорости ее изменения, и, если да, то могут ли эти ограничения конфликтовать во время выполнения.

  • Другие жесткие ограничения (Other Hard Constraints) - проверка наличия у контроллера ограничений жесткого выхода или ограничений жесткого смешанного ввода/вывода, и, если да, то могут ли эти ограничения стать невозможными для выполнения во время выполнения.

  • Мягкие ограничения (Soft Constraints) - проверка правильности баланса жестких и мягких ограничений контроллера путем оценки параметров ECR ограничения.

  • Размер памяти для данных MPC - оценка размера памяти, необходимого контроллеру во время выполнения.

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

В следующем примере показано, как просмотреть проект контроллера в командной строке и устранить потенциальные проблемы.

Модель установки

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

Входными данными для установки являются:

  1. Природный газ (NG)

  2. Реформированный газ (RG)

  3. Водород (H2)

  4. Азот (N2)

  5. Хвостовой газ 1 (T1)

  6. Хвостовой газ 2 (T2)

Выходы установки:

  1. Высокая теплотворная способность (HHV)

  2. Индекс Воббе (WI)

  3. Индекс скорости пламени (FSI)

  4. Давление в коллекторе (P)

Для получения дополнительной информации о проблеме смешивания топливного газа см. [1].

Используйте следующую линейную модель завода в качестве модели прогнозирования для контроллера. В этой модели «состояние-пространство», применяемой в типичной установившейся рабочей точке, используются единицы времени.

A = diag([-28.6120 -28.6822 -28.5134  -0.0281 -23.2191 -23.4266 ...
          -22.9377  -0.0101 -26.4877 -26.7950 -27.2210  -0.0083 ...
          -23.0890 -23.0062 -22.9349  -0.0115 -25.8581 -25.6939 ...
          -27.0793  -0.0117 -22.8975 -22.8233 -21.1142  -0.0065]);
B = zeros(24,6);
B( 1: 4,1) = [4 4 8 32]';
B( 5: 8,2) = [2 2 4 32]';
B( 9:12,3) = [2 2 4 32]';
B(13:16,4) = [4 4 8 32]';
B(17:20,5) = [2 2 4 32]';
B(21:24,6) = [1 2 1 32]';
C = [diag([ 6.1510  7.6785 -5.9312 34.2689]) ...
     diag([-2.2158 -3.1204  2.6220 35.3561]) ...
     diag([-2.5223  1.1480  7.8136 35.0376]) ...
     diag([-3.3187 -7.6067 -6.2755 34.8720]) ...
     diag([-1.6583 -2.0249  2.5584 34.7881]) ...
     diag([-1.6807 -1.2217  1.0492 35.0297])];
D = zeros(4,6);
Plant = ss(A,B,C,D);

По умолчанию все входные данные завода являются управляемыми переменными.

Plant.InputName = {'NG','RG','H2','N2','T1','T2'};

По умолчанию все выходы установки являются измеряемыми выходами.

Plant.OutputName = {'HHV','WI','FSI','P'};

Для отражения задержек датчиков добавьте задержки транспортировки к выходам установки.

Plant.OutputDelay = [0.00556  0.0167  0.00556  0];

Первоначальный проект контроллера

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

MPC_verbosity = mpcverbosity('off');

Создайте контроллер с помощью:

  • Время выборки, Tsиз 20 секунды, указанные в часах, что соответствует времени выборки датчиков.

  • Горизонт прогнозирования, pиз 39 контрольные интервалы, примерно равные времени отстаивания установки.

  • Горизонт управления, m, который использует четыре заблокированных перемещения с длиной 2, 6, 12, и 19 контрольные интервалы.

Ts = 20/3600;
p = 39;
m = [2 6 12 19];
Obj = mpc(Plant,Ts,p,m);

Укажите выходной шум измерения и ненулевую номинальную рабочую точку для контроллера.

Obj.Model.Noise = ss(0.001*eye(4));
Obj.Model.Nominal.Y = [16.5 25 43.8 2100];
Obj.Model.Nominal.U = [1.4170 0 2 0 0 26.5829];

Укажите нижнюю и верхнюю границы для каждой управляемой переменной (MV). Поскольку все манипулируемые переменные являются скоростями потока газовых потоков, их нижние границы равны нулю. По умолчанию все ограничения СН являются жесткими (MinECR = 0 и MaxECR = 0).

MVmin = zeros(1,6);
MVmax = [15 20 5 5 30 30];
for i = 1:6
    Obj.MV(i).Min = MVmin(i);
    Obj.MV(i).Max = MVmax(i);
end

Укажите нижние и верхние границы для регулируемых приращений переменных. Границы задаются достаточно большими, чтобы обеспечить полный диапазон перемещения за один интервал. По умолчанию все ограничения скорости MV являются жесткими (RateMinECR = 0 и RateMaxECR = 0).

for i = 1:6
    Obj.MV(i).RateMin = -MVmax(i);
    Obj.MV(i).RateMax =  MVmax(i);
end

Укажите нижние и верхние границы для каждой выходной переменной завода (OV). По умолчанию все ограничения OV являются мягкими (MinECR = 1 и MaxECR = 1).

OVmin = [16.5 25 39 2000];
OVmax = [18.0 27 46 2200];
for i = 1:4
    Obj.OV(i).Min = OVmin(i);
    Obj.OV(i).Max = OVmax(i);
end

Укажите веса настройки для обрабатываемых переменных. Веса СН определяются на основе известных затрат на каждый поток сырья. Это указывает контроллеру MPC, как переместить шесть манипулируемых переменных, чтобы минимизировать стоимость смешанного топливного газа. Веса нормируются таким образом, что максимальный вес составляет приблизительно 1.0.

Obj.Weights.MV = [54.9 20.5 0 5.73 0 0]/55;

Укажите веса настройки для регулируемых приращений переменных. Эти веса являются небольшими относительно максимального веса MV, так что MV могут свободно изменяться.

Obj.Weights.MVrate = 0.1*ones(1,6);

Укажите веса настройки для выходных переменных завода. Веса OV штрафуют за отклонения от заданных уставок и обычно будут большими по отношению к другим весам. В этом примере сначала рассмотрим значения по умолчанию, которые равны максимальному весу СН.

Obj.Weights.OV = [1,1,1,1];

Улучшение начальной конструкции

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

review(Obj)

В сводке по обзору перечислены три предупреждения и одна ошибка. Просмотрите предупреждения и ошибки по порядку. Нажмите QP Hessian Matrix Validity и прокрутите вниз до предупреждения, которое указывает на то, что значения сигналов установки значительно различаются. В частности, реакция на давление намного больше, чем другие сигналы.

Диапазоны OV, обозначенные указанными границами OV, отличаются друг от друга, а диапазон давления на два порядка больше других. Рекомендуется учитывать ожидаемые различия в величинах сигналов, определяя масштабные коэффициенты ПДК. Поскольку MV уже взвешены на основе относительной стоимости, укажите масштабные коэффициенты только для OV.

Расчет диапазона OV.

OVspan = OVmax - OVmin;

Используйте эти диапазоны в качестве масштабных коэффициентов.

for i = 1:4
    Obj.OV(i).ScaleFactor = OVspan(i);
end

Чтобы убедиться, что установка масштабных коэффициентов на выходе исправляет предупреждение, просмотрите обновленную конструкцию контроллера.

review(Obj)

Следующее предупреждение указывает на то, что контроллер не приводит OV к их целям в устойчивом состоянии. Чтобы просмотреть список ненулевых коэффициентов усиления, щелкните Фиксированные коэффициенты усиления замкнутого цикла (Closed-Loop Steady-State Gains).

Первая запись в списке показывает, что добавление устойчивого возмущения единичной величины к HHV вывод приведет к HHV выход отклоняется приблизительно на 0,0860 единиц от его установившегося целевого значения, предполагая, что никакие ограничения не активны. Вторая запись показывает, что нарушение блока в WI приведет к установившемуся отклонению, или смещению, около -0,0345 в HHVи так далее.

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

Ненулевые стационарные смещения часто нежелательны, но приемлемы в данной заявке, поскольку:

  1. Основной целью является минимизация затрат на смесь. Качество газа (HHVи так далее) может свободно изменяться в пределах указанных пределов OV.

  2. Малые значения усиления смещения указывают на то, что воздействие возмущений невелико.

  3. Пределы OV являются мягкими ограничениями. Допустимы небольшие краткосрочные нарушения.

Просмотрите второе предупреждение, щелкнув Жесткие ограничения среднего напряжения (Hard MV Constraints). Это предупреждение указывает на потенциальный конфликт жестких ограничений.

Если внешнее событие вызывает NG Чтобы выйти далеко ниже указанного минимума, ограничение на скорость его увеличения может сделать невозможным возврат NG в пределах одного контрольного интервала. Другими словами, если указать оба MV.Min и MV.RateMax, контроллер не сможет найти оптимальное решение, если последнее значение среднего напряжения меньше (MV.Min - MV.RateMax). Аналогично, существует потенциальный конфликт при указании обоих параметров. MV.Max и MV.RateMin.

Конфликт ограничений СН будет маловероятен в приложении смешивания газа. Однако целесообразно исключить эту возможность путем смягчения одного из двух ограничений. Поскольку минимальное и максимальное значения MV являются физическими пределами, а границы приращения - нет, смягчите границы приращения.

for i = 1:6
    Obj.MV(i).RateMinECR = 0.1;
    Obj.MV(i).RateMaxECR = 0.1;
end

Просмотрите обновленную конструкцию контроллера.

review(Obj)

Предупреждение о конфликте ограничений СН исправлено.

Чтобы просмотреть сообщение об ошибке, щелкните Мягкие ограничения (Soft Constraints).

Задержка в WI вывод делает невозможным удовлетворение границ этой переменной в течение первых трех контрольных интервалов. WI границы мягкие, но плохая практика - включать недостижимые ограничения в конструкцию. Поэтому измените WI связывают спецификации таким образом, что они не ограничены до четвертого шага горизонта прогнозирования.

Obj.OV(2).Min = [-Inf(1,3) OVmin(2)];
Obj.OV(2).Max = [ Inf(1,3) OVmax(2)];

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

Оценка влияния нулевых выходных весов

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

Obj.Weights.OV = zeros(1,4);

Просмотрите влияние этого изменения конструкции.

review(Obj)

Имеется новое предупреждение относительно достоверности матрицы QP Hessian. Для просмотра сведений о предупреждении нажмите QP Hessian Matrix Validity.

Проверка помечает нулевые веса для всех четырех выходных переменных. Поскольку нулевые веса соответствуют требованиям к конструкции, а другие тесты Гессена показывают, что проблема квадратичного программирования имеет уникальное решение, это предупреждение можно игнорировать. Чтобы увидеть второе новое предупреждение, щелкните «Установившиеся переходы замкнутого цикла». Предупреждение показывает другое последствие установки четырех OV-весов на ноль. Когда OV не наказывается весом, контроллер игнорирует любое выходное возмущение, добавленное к OV, и пропускает возмущение без ослабления.

Так как это требование конструкции, ненулевые установившиеся смещения допустимы, если контроллер способен удерживать все OV в пределах заданных границ. Поэтому целесообразно изучить, насколько легко могут быть нарушены мягкие ограничения OV при наличии возмущений.

Просмотр динамических ограничений

Чтобы просмотреть список мягких ограничений, щелкните Мягкие ограничения (Soft Constraints). В этом примере мягкими ограничениями являются верхняя и нижняя границы каждого OV.

В столбце «Импакт-фактор» показано, что используется значение по умолчанию MinECR и MaxECR значения дают давление (P) гораздо более высокий приоритет, чем у других OV. Чтобы сделать приоритеты более сопоставимыми, увеличьте значения РПУ ограничения давления, а также настройте другие. Например:

Obj.OV(1).MinECR = 0.5;
Obj.OV(1).MaxECR = 0.5;
Obj.OV(3).MinECR = 3;
Obj.OV(3).MaxECR = 3;
Obj.OV(4).MinECR = 80;
Obj.OV(4).MaxECR = 80;

Просмотрите влияние этого изменения конструкции.

review(Obj)

В столбце Отношение чувствительности (Sensitivity Ratio) все отношения чувствительности теперь меньше единицы, что означает, что мягким ограничениям уделяется меньше внимания, чем другим терминам в целевой функции MPC, таким как отклонения MV от их целевых значений. Поэтому вероятно, что произойдет нарушение ограничения вывода.

Чтобы придать ограничениям на выходе более высокий приоритет, чем другим целям MPC, увеличьте Weights.ECR параметр из значения по умолчанию, 1e5, до более высокого значения, что усиливает все мягкие ограничения OV.

Obj.Weights.ECR = 1e8;

Просмотрите влияние этого изменения конструкции.

review(Obj)

Контроллер теперь более чувствителен к нарушениям ограничений вывода, чем к ошибкам в отслеживании цели в степени 100.

Просмотр размера памяти данных

Чтобы увидеть предполагаемый размер памяти, необходимый для хранения матриц данных MPC, используемых на оборудовании, щелкните Размер памяти для данных MPC.

В этом примере, если контроллер работает с одной точностью, ему требуется 250 КБ памяти для хранения его матриц. Если размер памяти контроллера превышает объем памяти, доступный в целевой системе, измените конструкцию контроллера, чтобы уменьшить требования к памяти. В качестве альтернативы увеличьте объем доступной памяти в целевой системе.

Восстановите уровень детализации MPC.

mpcverbosity(MPC_verbosity);

Ссылки

[1] Мюллер К. Дж., И. К. Крейг и Н. Л. Рикер. «Моделирование, проверка и контроль промышленной системы смешивания топливного газа». Журнал управления процессом. Том 21, номер 6, 2011, стр. 852-860.

См. также