СНЭЭ Graf - это актуальная web-версия системы расчета и визуализации диспетчерского графика для систем накопления электрической энергии.
Проект состоит из:
FastAPIbackend с API для расчета графика, подбора параметров СНЭЭ, загрузки Excel и публикации HTML-задач.React + Vitefrontend с интерактивным интерфейсом редактирования профиля, сравнением решателей и визуализацией результатов.
Актуальная версия проекта ориентирована на QP/LP-оптимизацию.
В backend реализованы и используются следующие варианты расчета диспетчерского графика:
-
SciPy linprog (HiGHS)
Базовый расчет через линейную постановку задачи. Доступен через endpointPOST /api/v1/calculate-qp. -
HiGHS QP (highspy)
Реальная квадратичная оптимизация на базеhighspy. Доступен черезPOST /api/v1/calculate-qp-highs. -
HiGHS QP modified
Модифицированный QP-решатель, учитывающийstandby_load_mwи влияние собственных нужд на баланс и эквивалентный КПД. Доступен черезPOST /api/v1/calculate-qp-highs-modified.
Кроме расчета графика, backend поддерживает отдельный расчет оценочных параметров СНЭЭ через POST /api/v1/calculate-optimal-parameters-qp.
- расчет диспетчерского графика СНЭЭ по суточному профилю из 24 точек;
- загрузка баланса мощности из Excel и выдача Excel-шаблона;
- ручное редактирование всех 24 значений профиля;
- интерактивное редактирование графика перетаскиванием точек;
- пакетная вставка данных из Excel прямо в поля;
- сдвиг всего профиля и плавное изменение соседних точек;
- расчет оценочных параметров СНЭЭ;
- переключение между заводскими и оценочными параметрами;
- запуск расчета разными решателями из одного интерфейса;
- отображение ключевых KPI, SOC, результирующего баланса и потоков энергии;
- экспорт результатов в Excel;
- отображение дополнительных HTML-инструментов на отдельной странице.
Во frontend сейчас реализован не просто статический лендинг, а полноценный расчетный интерфейс:
- верхняя навигация между основной страницей и страницей
Прочие задачи СПЭС; - hero-блок продукта;
- секция загрузки и редактирования исходного профиля;
- визуальный редактор профиля с drag-and-drop корректировкой точек;
- переключатели debug-режима для QP-расчетов;
- блок расчета оценочных параметров;
- интерактивный SVG-блок настройки батареи;
- запуск диспетчерского графика тремя разными решателями;
- графики результатов, SOC и экспорт в Excel;
- интерактивная схема потоков энергии по выбранному часу.
Во frontend добавлена отдельная страница с автоматическим каталогом HTML-задач:
- backend формирует манифест HTML-файлов;
- frontend показывает карточки задач с названием и автором;
- выбранная HTML-страница открывается встроенно через
iframe; - задачу можно открыть и в отдельной вкладке.
Это позволяет использовать проект как единую web-точку входа не только для расчета СНЭЭ, но и для дополнительных прикладных HTML-инструментов.
SNEE graf/
├── web/
│ ├── backend/ FastAPI API и вычислительная логика
│ ├── frontend/ React/Vite интерфейс
│ ├── run-backend.bat локальный запуск backend
│ ├── run-frontend.bat локальный запуск frontend
│ └── README.md расширенная документация web-версии
└── .github/README.md GitHub-описание репозитория
Для локального запуска используйте bat-скрипты из каталога web.
- Перейдите в каталог проекта:
cd web- Запустите backend:
run-backend.batСкрипт:
- создает
venv, если окружение еще не создано; - активирует виртуальное окружение;
- устанавливает Python-зависимости;
- запускает FastAPI на
http://localhost:8002.
- В отдельном терминале запустите frontend:
run-frontend.batСкрипт:
- устанавливает npm-зависимости при необходимости;
- запускает Vite dev server на
http://localhost:3002.
- Frontend:
http://localhost:3002 - Backend API:
http://localhost:8002 - Swagger UI:
http://localhost:8002/docs - ReDoc:
http://localhost:8002/redoc
GET /api/v1/health- проверка состояния backendGET /api/v1/default-profile- профиль по умолчаниюGET /api/v1/html-tasks- каталог HTML-задачPOST /api/v1/upload-excel- загрузка баланса из ExcelPOST /api/v1/validate-profile- валидация профиляPOST /api/v1/calculate-qp- расчет графика через SciPy linprogPOST /api/v1/calculate-qp-highs- расчет графика через HiGHS QPPOST /api/v1/calculate-qp-highs-modified- расчет графика через модифицированный HiGHS QPPOST /api/v1/calculate-optimal-parameters-qp- расчет оценочных параметров СНЭЭ
FastAPIUvicornNumPySciPyhighspyPandasOpenPyXLpython-dotenv
ReactViteTailwind CSSFramer MotionRechartsAxiosReact DropzoneXLSX
../web/README.md- основное описание web-версии../web/QUICKSTART.md- быстрый старт../web/API_EXAMPLES.md- примеры API../web/TESTING.md- тестирование../web/README_DOCKER.md- Docker-описание../web/DOCKER_DEPLOYMENT.md- развертывание
- продукт развивается как web-платформа;
- основной расчетный сценарий построен вокруг QP/LP-решателей;
- frontend уже включает расширенный интерфейс настройки, анализа и визуализации;
- backend обслуживает как расчет СНЭЭ, так и каталог вспомогательных HTML-инструментов.