Анализ режима

Анализ режима по результатам расчёта: перепады, завоздушивание, температуры, допустимость и зоны.

Где найти
«Инструменты» (значок чемоданчика справа вверху) → Расчёты и диагностика → «Анализ режима». То же — палитрой команд: Ctrl+K и начните набирать название.
Права
доступно всем, кто вошёл.
Короткое видео: как это выглядит в системе
Функция показана в сквозном сценарии:Расчёт и анализ режима
Читаю как

Возможности

  • Шесть запросов «Анализа» десктопа: отрицательные перепады, завоздушивание, низкие температуры, закрытые участки, отключённые участки, гидростатические зоны.
  • Десять запросов допустимости режима («Анализ режима: …»): напор в узлах подачи и обратки, располагаемый напор потребителей, теплообеспеченность, тепловой режим, потери напора на участках.
  • Анализ по последнему расчёту фрагмента или по любому из 50 последних расчётов с результатами.
  • Над таблицей — плитки «Найдено», «С координатой» и по одной плитке на каждое значение колонки «Режим»; щелчок по плитке оставляет в таблице только эти строки. Рядом — мини-гистограмма ключевого показателя.
  • Щелчок по строке — объект на карте; «Показать все на карте (N)» ставит оранжевые метки на все найденные (с учётом фильтра плитки), «Скрыть с карты» убирает их.

Как это работает

Запросы только читают результаты расчёта: us_out (узлы), ut_out (участки), pt_out (потребители). «Последний расчёт» — расчёт фрагмента с наибольшим номером. Напор и температура узла берутся как в десктопе: по каждой трубе строка с наибольшим напором; узел связи внутренней схемы передаёт значения внешнему узлу.

Запрос Что ищет
Отрицательные перепады узлы, где напор обратки выше напора подачи, оба не 0
Завоздушивание потребители, у которых напор в подаче ниже высоты здания; независимые схемы (1.5, 1.6 и с номером после точки 9–12) не учитываются
Низкие температуры потребители с температурой в подаче ниже t2 графика источника при Tн расчёта; график — линейная интерполяция, выше таблицы — летняя температура источника
Закрытые участки участки в состоянии «закрыт» по подаче или обратке, у которых нет результата расчёта
Отключённые участки все участки фрагмента без результата расчёта
Гидростатические зоны статический напор фрагмента и узлы нижней зоны

Гидростатические зоны считаются по паспорту, без расчёта: полный статический напор = max(отметка верха трубы + высота здания) + 5 м; пьезометрический = полный − минимальная отметка. Нижняя зона — узлы, до которых можно дойти по сети от узла с минимальной отметкой, пока |zmin − (z + Hзд)| < 60 м. Узлы с отметкой 0 не участвуют. Поле «Расчёт» для этого запроса неактивно — зонам расчёт не нужен.

Допустимость режима — SQL-запросы десктопа (sql/admissibility/01.sql…10.sql). Например, в запросе 1 напор подачи допустим от max(0; 0,535·t − 49,2) до 150 м. Критерии всех десяти запросов — в курсе, модуль 11.

Участки и узлы отбираются по фрагменту начального узла. Объект внутренней схемы показывается на карте точкой узла-владельца, участок — серединой линии.

Что нужно для работы

  • Расчёт выбранного фрагмента. Без расчёта запросы по результатам вернут «У фрагмента нет расчёта».
  • Для гидростатических зон — заполненные отметки верха трубы и высоты зданий.
  • Окно доступно всем, кто вошёл.

Шаги

  1. Откройте «Инструменты» и наберите в поиске «Анализ режима» — пункт выделен рамкой.

    Пункт «Анализ режима» в панели «Инструменты»

  2. Нажмите пункт — откроется окно.

    Окно «Анализ режима»

  3. В поле «Фрагмент» начните набирать номер или название фрагмента и выберите его из списка. «Расчёт» — по умолчанию последний; при необходимости выберите другой.

    Анализ режима: шаг 3

  4. Выберите «Запрос» (отрицательные перепады, завоздушивание, низкие температуры, закрытые участки, гидростатические зоны) и нажмите «Выполнить». Щелчок по значку в строке показывает объект на карте; «Показать все на карте» — все найденные сразу.

    Анализ режима: шаг 4

Примеры

Фрагмент 74, расчёт 808 (−25 °C):

  • «Отрицательные перепады» и «Завоздушивание» — 0 записей, плитка «Найдено» зелёная.
  • «Низкие температуры» — 4 узла (3Гр-9, 3Гр-8, 3-2, 7Ш-20с): t подачи 0 °C при t2 графика 70 °C, у всех «Нет расхода» — потребители без нагрузки, к которым вода не дошла.
  • «Закрытые участки» — 53 участка общей длиной 6256,4 м; «Отключённые участки» — 133 участка, 16 125,3 м.
  • «Анализ режима: Участки трубопроводов. Анализ потерь напора» — 1626 строк; по скорости в подаче 1179 «Ниже рекомендуемого диапазона», 445 «В пределах нормы», 2 «Выше рекомендуемого диапазона».

Ошибка в отметке портит зоны. «Гидростатические зоны» фрагмента 74: полный статический напор 1006,8 м (здание 26/6, уровень 1001,8 м), пьезометрический — 1005,8 м, в нижней зоне один узел. Причина — у одного узла отметка верха трубы 1,0 м вместо примерно 700–900 м. Пока отметка не исправлена, результат не имеет смысла. Похожий след ошибок в исходных данных — в «Анализ режима: Узлы, подающий трубопровод»: 33 узла «Превышает допустимый», и у части из них напор 700–900 м над землёй (например, узел 3А-20/1 — 859 м при допустимых 150 м). Такого напора в сети нет — проверьте отметки этих узлов.

Если не получается

  • «Анализ не выполнен» — ошибка API; текст причины — под заголовком.
  • «Список расчётов фрагмента не загрузился — анализ по последнему расчёту» — выбрать расчёт нельзя, запросы идут по последнему.
  • «Каталог анализов режима не загрузился — в списке только основные запросы» — нет десяти запросов допустимости; откройте окно заново.
  • «Расчёт N не найден для фрагмента M» — выбранный расчёт удалён или относится к другому фрагменту.
  • «Нет узлов с заполненной отметкой верха трубы» — у фрагмента нет отметок для гидростатических зон.
  • «С координатой» меньше «Найдено» — у части объектов нет геометрии; по таким строкам карта не переходит.

Для администратора

  • Данные: calculation, us_out, ut_out, pt_out, deployedtempgraphs, heatsources; запросы допустимости лежат в sql/admissibility в каталоге API.
  • Маршруты не проверяют роль сами: при выключенном AUTH_REQUIRED_GET анализ доступен без входа.

Для разработчика

  • API: GET /api/analysis/regime/negative-dp, /airlock, /low-temperature, /closed-sections (include_uncalculated=true — «Отключённые участки»), /hydrostatic-zones (zone_height_m, по умолчанию 60) — все с fragment_id и необязательным calculation_id; GET /api/analysis/admissibility (каталог), GET /api/analysis/admissibility/{1..10}; список расчётов — GET /api/v1/calculations?file_id=…. Код — routers/analysis.py, database/regime_queries.py.
  • Веб: components/RegimeAnalysisDialog.vue, метки на карте — utils/regimeMapPoints.ts, слой regime-analysis-points — components/MapViewer.vue.
  • MCP: инструмент regime_analysis (без запросов допустимости).
  • Тесты: tests/components/RegimeAnalysisDialog.spec.ts, tests/utils/regimeMapPoints.spec.ts, e2e e2e/functions.spec.ts и e2e/smoke.spec.ts; API — test_regime_queries.py.
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо