Симуляция процессов

Модуль симуляции процессов создаёт цифровой двойник технологической цепочки: математическую модель, которая воспроизводит поведение реального оборудования в ответ на изменение входных параметров. Это позволяет тестировать MPC-контроллеры, обучать операторов и проводить анализ what-if без воздействия на реальное производство.
Назначение
| Сценарий | Описание |
|---|---|
| Тестирование MPC | Замкнутое тестирование контроллера на модели перед развёртыванием на оборудовании |
| Обучение операторов | Знакомство с поведением процесса в безопасной среде |
| Анализ what-if | Оценка влияния изменения параметров на выходные показатели |
| Оптимизация схемы | Подбор оптимальной конфигурации оборудования и режимов |
| Аварийные сценарии | Моделирование отказов оборудования и оценка последствий |
Используйте симулятор для обучения операторов и настройки MPC перед развёртыванием на реальном оборудовании. Это снижает риск нештатных ситуаций и ускоряет ввод в эксплуатацию.
Архитектура
Модель SAG mill (полуавтогенная мельница)
Основная модель -- полуавтогенная мельница с циркуляционной нагрузкой, двумя стадиями классификации и флотацией. Параметры модели калиброваны по данным ТЗ СУУТП НЗИФ (Инв. No04-48459).
Параметры модели
| Параметр | Значение | Единица |
|---|---|---|
| Питание (номинальное) | 1550 | т/ч |
| Содержание Au в питании | ~1.57 | г/т |
| SAG mill с циркуляцией | 1895 | т/ч |
| Циркуляционная нагрузка SAG | 18--22 | % |
| Шаровая мельница | 7276.66 | т/ч |
| Циркуляционная нагрузка шаровой | 469.42 | % |
| Классификация 1 (Krebs) | 8695.6 | т/ч |
| Давление классификации 1 | 0.15 | МПа |
| Классификация 2 (Cavex 209) | 1004.6 | т/ч |
| Давление классификации 2 | 0.9 | МПа |
Флотация
| Параметр | Значение | Единица |
|---|---|---|
| Основная флотация, питание | 1612.6 | т/ч |
| Камеры основной флотации | 6 x 320 | м3 |
| Время флотации (основная) | 15 | мин |
| Расход воздуха (основная) | 62.5 | м3/мин |
| Контрольная флотация, питание | 82.2 | т/ч |
| Камеры контрольной флотации | 4 x 24 | м3 |
| Время флотации (контрольная) | 5 | мин |
| Расход воздуха (контр ольная) | 11.5 | м3/мин |
| Содержание Au в концентрате | 33.6 | г/т |
| Содержание Au в хвостах | 0.29 | г/т |
| Извлечение | 7.07 | % |
Топология процесса
Модель представляет собой ориентированный граф узлов с потоками материала:
Каждый узел описывается:
- Балансовыми уравнениями (масса, компоненты)
- Кинетическими зависимостями (измельчение, флотация)
- Ограничениями мощности оборудования
Режим what-if
Режим what-if позволяет изменять любой входной параметр и наблюдать влияние на весь процесс в реальном времени:
| Входной параметр | Диапазон варьирования | Влияние на выход |
|---|---|---|
| Подача руды | 1200--1800 т/ч | Крупность помола, ток двигателя, извлечение |
| Твёрдость руды | 8--16 кВт*ч/т (Bond) | Циркуляция, производительность, энергопотребление |
| Содержание Au | 0.5--3.0 г/т | Извлечение, качество концентрата |
| Расход воды в мельницу | 600--1200 м3/ч | Плотность пульпы, классификация |
| Расход воздуха во флотацию | 40--80 м3/мин | Извлечение, качество пенного продукта |
Интеграция с MPC
При замкнутом тестировании контроллера симулятор выступает в роли реального процесса:
Такой подход позволяет использовать тот же самый контроллер, который будет работать на реальном оборудовании, без изменения кода.
Пользовательский интерфейс
SimulationView -- страница /simulation с трёхколоночной компоновкой:
| Колонка | Содержимое |
|---|---|
| Левая | Входные параметры: ползунки и числовые поля для MV и DV |
| Центральная | Схема процесса: интерактивный граф узлов с потоками и значениями |
| Правая | Результаты: графики CV во времени, ключевые KPI, статус ограничений |
Компонентная структура
| Компонент | Файл | Назначение |
|---|---|---|
| SimulationView | src/views/SimulationView.vue | Основная страница, 3-колоночный layout |
| simulationStore | src/stores/simulationStore.ts | Состояние модели, текущие значения, история |
| useProcessSimulation | src/composables/useProcessSimulation.ts | Решатель: шаг модели, балансовые уравнения |
| useProcessTopology | src/composables/useProcessTopology.ts | Граф узлов и рёбер для визуализации |
| processDefaults | src/config/processDefaults.ts | Значения по умолчанию (НЗИФ) |
Сервис apc-simulator
Для серверной симуляции (без UI) используется сервис apc-simulator:
| Параметр | Значение |
|---|---|
| Язык | Python 3.12 |
| Интервал | 1 с (эмуляция реального времени) |
| Вход | APC/Output (уставки от контроллера) |
| Выход | OperationalData (эмулированная телеметрия) |
| MQTT | Публикация значений для telemetry-writer |
| Docker | basyx-apc-sim |
Frontend (SimulationView) -- интерактивный, для анализа what-if и обучения. Backend (apc-simulator) -- автоматический, для замкнутого тестирования MPC. Оба используют одни и те же математические модели из processDefaults.ts.
Калибровка модели
Для адекватности симуляции модель должна быть откалибрована по данным реального процесса:
- Сбор данных -- выгрузка исторических данных из ClickHouse (минимум 30 дней)
- Идентификация параметров -- подгонка коэффициентов модели методом наименьших квадратов
- Валидация -- сравнение предсказаний модели с реальными данными на тестовом интервале
- Обновление -- запись откалиброванных параметров в BaSyx субмодель APC/Configuration
Целевая точность: отклонение CV не более 5% от реальных значений на горизонте 30 минут.