Тепловые потери

Тепловые потери по сезонам и готовность источников.

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

Возможности

  • «Сезоны»: отопительные сезоны с датами, городом, расчётными температурами, нормой потерь воды и объёмами систем; карточка сезона с климатом по месяцам (воздух, подвал, грунт). Правка параметров сезона — с правом правки. Значок Excel в заголовке — все сезоны одной таблицей.
  • «Источники»: готовность каждого источника к расчёту — общие параметры, месяцы, заполнение или обвязка. Плитки «Готовы к расчёту», «Неполные данные», «Всего источников» — фильтры списка.
  • Карточка источника: паспорт для потерь (год расчёта, ёмкость сети, опрессовки весной и осенью), месяцы работы с температурами.
  • «Нормативный расчёт»: потери «Нормативные» или «Фактические» за сезон — по всем источникам или по участкам одного фрагмента.
  • «Задать условия работы» — заполнить месяцы источника из климата сезона и его температурного графика.
  • Результат: итоги по источникам за отопительный период, лето и год; листы отчёта десктопа (МесПотери, ГодПотери, НормыЗима, НормыЛето, МатХар, МесТемп, ИТОГО, ТехнПСВ, Ёмкость, баки, опрессовка, промывка, САРЗ и другие); потери по участкам с переходом на карту; Excel.
  • «Тепловой расчёт сети» в карточке источника — гидравлический и тепловой расчёт его фрагмента (это не модуль «Теплопотери»).

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

Что попадает в расчёт. Кнопка «Источники» показывает, какие источники приписаны к участкам сезона или фрагмента, сколько у них участков и труб, есть ли развёрнутый температурный график и заданы ли «Условия работы». Источник без условий работы не считается.

Условия работы. Из климата сезона (12 месяцев) получается 14 строк: месяцы начала и конца сезона делятся на отопительную и летнюю части по числу дней. Для каждой строки — температуры воздуха, подвала, грунта и температуры сетевой воды t1/t2 по температурному графику источника при этой температуре воздуха. Температура подпитки остаётся прежней; у нового источника — 0.

Потери через изоляцию — как в десктопном модуле poteriNewPg:

  • норма удельных потерь q, ккал/(ч·м), берётся из таблицы норм 39 по диаметру, году норм и прокладке и интерполируется по температуре месяца: для надземной и подвальной прокладки — по t1 (подача) или t2 (обратка), для подземной — по средней (t1 + t2)/2;
  • β — коэффициент местных потерь из справочника 30 по Ду и прокладке (магистральный или распределительный), K — коэффициент по испытаниям из параметров источника;
  • за час: Q = q · L · β · K / 10⁶ Гкал/ч, отдельно для подающего и обратного трубопровода.

Потери с утечкой: объём сети V = Σ(Lп + Lо) · π · dвн²/4; летом он умножается на 0,5 + t%/200, в отопительный период к нему добавляются объёмы систем отопления и вентиляции, круглый год — ГВС. Потери: V · a/100 · Δt / 1000 Гкал/ч, где a — норма потерь воды сезона, % в час, Δt = (t1 + t2)/2 − t подпитки.

За период: часовые потери месяца × дни работы × 24, суммы — за отопительный период, лето и год. Средние температуры периодов — взвешенные по дням.

Что сохраняется. Расчёт записывается как обычный расчёт без фрагмента (чтобы гидравлика его не выбирала «последним»): удельные потери участков по месяцам — в ut_teplo_out, листы отчёта — в heatlosses_report_out. Удаление расчёта стирает и эти строки.

«Фактические» — те же формулы по таблицам фактических данных (heatLosesMainFact и другие). Часть SQL десктопа для фактических потерь нерабочая, поэтому перенесена логика нормативных.

Плитки вкладки «Источники» и «Источники расчёта» считают готовность по-разному: на вкладке нужны общие параметры, месяцы и заполнение (или обвязка); в расчёте достаточно заданных условий работы.

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

  • Отопительный сезон с климатом по месяцам и источники с развёрнутым температурным графиком.
  • Нормы потерь (таблицы 39 и 30) — в справочной базе sprav на том же сервере.
  • «Рассчитать», «Тепловой расчёт сети», удаление расчёта — право «Запуск расчётов» и включённая на сервере правка данных.
  • «Задать условия работы» — право «Источники и насосные станции» → «Свойства» и включённая правка данных; правка сезона — право «Правка журналов и атрибутов».
  • Воркер расчётов: задача идёт через очередь Celery.

Шаги

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

    Пункт «Тепловые потери» в панели «Инструменты»

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

    Окно «Тепловые потери»

  3. Откройте вкладку «Источники»: плитки показывают, сколько источников готово к расчёту и у скольких не хватает данных; плитка — фильтр списка.

    Тепловые потери: шаг 3

  4. Откройте «Нормативный расчёт»: выберите отопительный сезон и, если нужно, фрагмент, нажмите «Источники» — появится список источников с готовностью, затем «Рассчитать». Готовые расчёты появятся в таблице «Расчёты» с потерями через изоляцию и с утечкой.

    Тепловые потери: шаг 4

Примеры

Сезон 2025–2026, фрагмент 74 (копия Алматы, сезон № 2: 15.10.2025 — 15.04.2026, норма потерь воды 0,25 %): «Источники» показывает 4 источника — два «АТЭЦ1» (1 597 и 1 572 участка, около 320 и 315 км трубы) и два «АТЭЦ2» (220 и 231 участок); у всех заданы условия работы, «готовы 4 из 4».

Условия работы АТЭЦ1 (источник № 176, сезон № 2), как их составит «Задать условия работы»: январь — 31 день, tн −6,8 °C, подвал 5,0, грунт 7,2, сеть 88,9 / 53,1 °C; апрель делится на 15 дней отопления (tн 8,5) и 15 дней лета (tн 12,1); летом t1/t2 = 60,0 / 41,5 °C — нижняя срезка графика. Температура подпитки во всех строках 0 °C: её надо задать, иначе Δt утечки завышено.

Вкладка «Источники» на той же базе: 134 источника, готовы к расчёту 5, неполные данные — 129. Оба источника фрагмента 74 — «неполные данные»: нет заполнения и обвязки, хотя для нормативного расчёта они готовы.

На копии базы нормативных расчётов пока нет: числа итогов — после «Рассчитать».

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

  • «Рассчитать» неактивна — не выбран сезон или не загружены источники: нажмите «Источники» (после смены фрагмента — снова).
  • Источник «неполные данные» — заполните параметры источника (кнопка «Источники» в расчёте).
  • «Рассчитать» неактивна — сначала нажмите «Источники»: кнопка включается, когда хотя бы у одного источника заданы условия работы. Фрагмент выбирать не обязательно; после смены фрагмента снова нажмите «Источники».
  • «нет — источник не считается» в колонке «Условия работы» — нажмите «Задать условия работы» (кнопка серая, пока у источника нет температурного графика).
  • «Температурный график источника … не развёрнут» — рассчитайте график в окне «Температурные графики».
  • «Нет таблицы heatlosses_report_out…» (ответ 503) — на базе не применена миграция; обратитесь к администратору.
  • «Сезон не найден» — сезон удалили или выбран сезон другого вида потерь.
  • «Таймаут ожидания расчёта теплопотерь» — окно ждёт 10 минут; расчёт может завершиться позже, нажмите обновление списка «Расчёты».

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

  • Справочная база норм: SPRAV_DB_NAME (по умолчанию sprav), SPRAV_DB_HOST, SPRAV_DB_PORT, SPRAV_DB_USER, SPRAV_DB_PASSWORD — без них берутся параметры основной базы.
  • Очередь задачи: HEAT_LOSSES_QUEUE (по умолчанию — основная очередь города). Запись — только при MUTATIONS_ENABLED.
  • Таблица heatlosses_report_out — миграция sql/migrations/20260928_heat_losses_report_out.sql; исходные данные — heatlosesmain, heatlosessource, heatlosessourcemonths, losesbyfilling, heatpipesectionsharness и их *Fact.
  • В журнал действий: запуск (RUN, heat_losses_norm), условия работы (UPDATE, heatlosessourcemonths).

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

  • API: GET /api/heat-losses/lookups, /seasons, /seasons/{id}, /sources, /sources/{id}; нормативный расчёт — GET /api/v1/heat-losses/norm/seasons?loses_type=, GET /api/v1/heat-losses/norm/scope, POST /api/v1/heat-losses/norm/run, GET /api/v1/heat-losses/norm/results, /results/{id}, /results/{id}/sections, /results/{id}/excel; условия работы — POST /api/v1/heat-losses/sources/{id}/work-conditions (dry_run: true — только показать); удаление — DELETE /api/v1/calculations/{id}; «Тепловой расчёт сети» — POST /api/v1/heat-losses/run. Excel сезонов — отчёт heat-loss-seasons (GET /api/reports/excel/heat-loss-seasons).
  • Код: routers/heat.py, формулы — database/heat_losses_norm.py, хранение и Excel — database/heat_losses_store.py, журнал — database/heat_losses.py, задача — worker.py (run_heat_losses_norm).
  • Веб: components/HeatLossJournalDialog.vue, components/HeatLossNormPanel.vue.
  • Тесты: API — tests/golden/test_heat_losses_desktop.py (сверка с десктопом), маршруты — tests/test_security_stage7.py.
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо