MPC-контроллер

Model Predictive Control (MPC) -- алгоритм управления, который использует математическую модель процесса для прогнозирования поведения системы и вычисления оптимальных управляющих воздействий с учётом ограничений. В платформе Strix MPC реализован как внешний сервис, интегрированный с BaSyx через REST API.
Принцип работы
На каждом шаге контроллер:
- Измеряет текущее состояние процесса из субмодели OperationalData
- Прогнозирует поведение на горизонте предсказания (10--60 минут)
- Оптимизирует траекторию управляющих воздействий с учётом ограничений
- Применяет первый шаг оптимальной траектории
- Повторяет на следующем шаге (принцип скользящего горизонта)
Для решения задач оптимального управления используется библиотека Gekko (Python) -- решатель для смешанных целочисленных и нелинейных задач оптимизации. Gekko поддерживает DAE (differential-algebraic equations), что позволяе т описывать сложные технологические процессы.
Классификация переменных
| Тип | Описание | Примеры (SAG mill) |
|---|---|---|
| Manipulated Variables (MV) | Управляющие воздействия -- контроллер их изменяет | Расход воды, подача руды, скорость вращения |
| Controlled Variables (CV) | Управляемые параметры -- контроллер удерживает в целевом диапазоне | Крупность помола (P80), уровень заполнения, ток двигателя |
| Disturbance Variables (DV) | Возмущения -- контроллер не может влиять, но учитывает | Твёрдость руды, содержание Au, влажность |
Параметры настройки
| Параметр | Диапазон | Описание |
|---|---|---|
| Горизонт предсказания | 10--60 мин | На сколько вперёд контроллер прогнозирует поведение |
| Шаг управления | 1--5 мин | Интервал между пересчётами оптимальной траектории |
| Горизонт управления | 3--10 шагов | Количество шагов, на которых оптимизируются MV |
| Веса CV | 0.0--1.0 | Относительный приоритет удержания каждой CV |
| Скорость изменения MV | по переменной | Максимально допустимое изменение MV за один шаг |
Режимы работы
| Режим | Описание | Применение |
|---|---|---|
| Advisory | Контроллер рассчитывает рекомендации, оператор принимает решение | Начальная настройка, обучение операторов |
| Supervisory | Контроллер формирует уставки, оператор подтверждает каждое изменение | Штатная эксплуатация с контролем оператора |
| Closed-loop | Полная автоматика -- уставки передаются в АСУ ТП без подтверждения | Установившийся режим, ночные смены |
При нарушении любого жёсткого ограничения (например, ток двигателя > 95% номинала) контроллер автоматически переходит в режим Advisory и генерирует аларм.
Пример: SAG mill (полуавтогенная мельница)
Переменные
| Переменная | Тип | Ед. изм. | Диапазон | Целевое значение |
|---|---|---|---|---|
| Подача руды | MV | т/ч | 1200--1800 | -- |
| Расход воды | MV | м3/ч | 800--1400 | -- |
| Скорость вращения | MV | % от ном. | 60--80 | -- |
| Крупность P80 | CV | мкм | 100--200 | 150 |
| Уровень заполнения | CV | % | 25--35 | 30 |
| Ток двигателя | CV | % от ном. | -- | < 90 |
| Циркуляционная нагрузка | CV | % | 18--22 | 20 |
| Твёрдость руды | DV | по шкале Bond | -- | измеряется |
| Содержание Au | DV | г/т | -- | измеряется |
Целевая функция
min Σ [w_cv * (CV - CV_target)^2 + w_mv * ΔMV^2]
Контроллер минимизирует сумму отклонений CV от целевых значений и резкости изменений MV, при соблюдении ограничений:
- Ток двигателя ≤ 90% номинала
- 18% ≤ циркуляция ≤ 22%
- Скорость изменения подачи ≤ 50 т/ч за шаг
Ожидаемый эффект
| Показатель | Без MPC | С MPC | Улучшение |
|---|---|---|---|
| Производительность по питанию | 1450 т/ч | 1550 т/ч | +7% |
| Стабильность P80 (sigma) | 25 мкм | 10 мкм | -60% |
| Перегрузки двигателя | 3-5 / смену | 0-1 / смену | -80% |
| Расход электроэнергии | 22 кВт*ч/т | 20 кВт*ч/т | -9% |
Конфигурация в BaSyx
Все параметры контроллера хранятся в субмоделях на оборудовании: