Сетевые регуляторы

Сетевые регуляторы давления, расхода и перепада: где стоят, что регулируют, задание и Kv — всё, что нужно расчёту.

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

Возможности

  • Вкладки «Установленные» и «Каталог» (в скобках — число записей). В одном списке — регуляторы давления, расхода и перепада.
  • Плитки качества данных: «Готовы», «Нет линии», «Удалённая линия», «Нет узла», «Нет задания», «Нет Kv». Нажатие на плитку — отбор, повторное — снять.
  • Поиск по коду и наименованию узлов линии и регулируемого узла, фрагменту, а также по точному ID регулятора или линии. Фильтры «Тип регулятора», «Качество данных», «Состояние», «Фрагмент», «Режим работы».
  • Карточка: «Сетевая привязка» (линия, узлы, регулируемый узел), «Задание регулятора», «Параметры клапана», «Расчётный режим».
  • «Редактировать свойства»: заданная величина, допустимое отклонение, пропускная способность Kv, состояние, режим работы, сопротивления клапана, утечка; у регулятора давления — трубопровод регулируемого узла.
  • Переход к регулятору на карте, если у его линии есть геометрия.
  • Каталог: модель, серия, DN, Kv, диапазон, среда, привод, изготовитель; фильтры «Тип каталога» и «Полнота паспорта».
  • Из протокола расчёта кнопка «Исправить: Журнал регуляторов» открывает карточку регулятора; если поле можно поправить здесь, карточка сразу открывается в правке.

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

Где хранятся данные. Регулятор в базе ТГИД — линия сети (linesobj) с карточкой в таблице своего вида (связь по lineid):

Вид Таблица Задание Kv
Регулятор давления pressregulators напор в регулируемом узле, м (h) regvalverelcap
Регулятор расхода consumptregulators расход, т/ч (regconsmean) regvalvecap
Регулятор перепада pressdropregulators перепад, м (pressdropmean) regvalverelcap

Виды нумеруются независимо, поэтому ID может совпасть. Регулируемый узел — nodeid, у регулятора давления ещё признак трубопровода узла (подающий или обратный). Справочники: состояние (regulatorstates: открыт, закрыт, неактивен), режим работы (workattributes: отопительный, летний, круглогодичный). Каталоги моделей — standardpressregulators, standardconsregulators, standardpressdropregulators; ссылки установленного регулятора на модель каталога в базе нет. Регулируемый узел в этом окне не меняется.

Качество данных определяется по порядку:

Статус Условие
«Нет линии» линии с таким id нет
«Удалённая линия» линия помечена удалённой
«Нет узла» у регулятора давления или перепада не задан регулируемый узел
«Нет задания» заданная величина пуста или не больше 0
«Нет Kv» пропускная способность пуста или не больше 0
«Готовы» всё есть

Модель каталога «Неполный паспорт», если не заполнены название, тип, DN или Kv (у регуляторов перепада — тип, DN или Kv).

Что берёт расчёт. Регулятор давления меняет сопротивление клапана от минимального r1 до максимального r2, чтобы удержать в регулируемом узле напор «задание + отметка верха трубы узла» в пределах допустимого отклонения:

  • r1 — «Сопротивление, открыт», а если оно 0 — 10 / Kv²;
  • r2 — «Сопротивление, закрыт», а если оно 0 — 10⁵ / (Kv² · утечка²);
  • без Kv берётся r1 = 10⁻⁸, без утечки — r2 = 10⁸ · r1; в протоколе расчёта — предупреждение «… регулятора […] Значение берется по умолчанию»;
  • регулируемый узел не задан или не найден — предупреждение «не задан узел с регулируемым напором», регулирования нет;
  • «неактивен» — сопротивление постоянное, r1; «закрыт» — линия в расчётную схему не входит.

Регулятор расхода держит заданный расход тем же способом. Если Kv меньше заданного расхода — предупреждение в протоколе; если задание 0 — регулятор считается закрытым. Регулятор перепада расчёт учитывает только состоянием: заданный перепад и Kv не используются.

Результат расчёта. «Расчётный режим» — последняя по дате строка rs_out по линии: заданная и полученная величины, отклонение, положение клапана, расход, сопротивление, напоры на входе и выходе, источник.

Правка. Сохраняются только изменённые поля, с проверкой версии строки; изменение пишется в журнал правок.

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

  • Смотреть — любой вошедший.
  • Править — право «Оборудование» → «Свойства» (при охвате «свои» — только регуляторы на участках, созданных этим пользователем) и включённая запись (MUTATIONS_ENABLED=true). Без этого кнопки «Редактировать свойства» нет. Пользователю-роли PostgreSQL это право даёт предметное право «Правка гидравлической сети (режимы)».
  • Для «Расчётного режима» — сохранённый расчёт сети.

Шаги

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

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

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

    Окно «Сетевые регуляторы»

  3. Плашки над списком — качество данных: сколько записей готовы к расчёту, а у скольких чего-то не хватает (нет линии, линия удалена, нет регулируемого узла, нет задания, нет Kv). Красные — критично (расчёт их не учтёт), оранжевые — требуют внимания. Нажмите плашку — список сузится до таких записей.

    Сетевые регуляторы: шаг 3

  4. В списке остались только записи с этой проблемой. Поиск (узел, линия или ID) и фильтры «Тип регулятора», «Качество данных», «Состояние», «Фрагмент», «Режим работы» работают вместе с отбором; «Сбросить» снимает всё, «Обновить» перечитывает журнал.

    Сетевые регуляторы: шаг 4

  5. Кнопка с карточкой в строке открывает регулятор: тип, линия, регулируемый узел, задание и режим. Без Kv расчёт берёт сопротивления по умолчанию и предупреждает в протоколе; регулятор расхода с нулевым заданием считается закрытым.

    Сетевые регуляторы: шаг 5

  6. Вкладка «Каталог» — модели регуляторов: DN, диапазон, среда, привод, изготовитель.

    Сетевые регуляторы: шаг 6

Примеры

Копия Алматы: что в журнале. 673 регулятора: давления — 653, расхода — 7, перепада — 13. «Готовы» — 555, «Нет линии» — 2, «Удалённая линия» — 55, «Нет узла» — 48, «Нет задания» — 2, «Нет Kv» — 11. Открыто 636, закрыто 12, неактивно 25. Координаты есть у 473. В каталоге 271 модель (давления — 51, расхода — 8, перепада — 212), неполный паспорт у одной: регулятор расхода РК-1, DN 700, без Kv.

Регулятор давления №552 (там же). Линия 321695 между узлами нсо-10 и НС-10*, фрагмент «CЗЭР». Регулирует напор в узле НС-10* (РС1-4) на подающем трубопроводе: задание 85 м, отклонение 2 м, Kv 2000, сопротивления и утечка не заданы. Расчёт возьмёт r1 = 10 / 2000² = 2,5·10⁻⁶ и r2 = 10⁸ · r1 = 250 и выведет предупреждение «Не задана относительная протечка или макс. сопр.».

Регулятор давления №560 (там же), плитка «Нет Kv». Задание 55 м в узле «РД Кер вых» на обратном трубопроводе, Kv не задан. Расчёт возьмёт r1 = 10⁻⁸ и r2 = 10⁸ и выведет оба предупреждения о значениях по умолчанию. Чтобы исправить, задайте «Пропускная способность Kv» в правке.

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

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

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

  • Запись: MUTATIONS_ENABLED=true, право «Оборудование» → «Свойства»; при AUTH_BACKEND=pg окончательно права проверяет база.
  • Таблицы десктопные (pressregulators, consumptregulators, pressdropregulators, regulatorstates, workattributes, pipelinesigns, каталоги standard*regulators, rs_out); веб их не создаёт.
  • Правка пишется в audit_log (UPDATE, старые и новые значения).

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

  • Чтение: GET /api/network-regulators/lookups, GET /api/network-regulators/items (page, page_size до 200, regulator_type: pressure | flow | differential, quality_status: ready | line_missing | line_removed | control_node_missing | setpoint_missing | capacity_missing, state_id, fragment_id, work_attribute_id, line_id, search), GET /api/network-regulators/items/{regulator_type}/{id}, GET /api/network-regulators/catalog (catalog_type, quality_status: ready | incomplete, search), GET /api/network-regulators/catalog/{catalog_type}/{id} — routers/equipment.py, database/network_regulators.py. Пояснение каталога link_note API формирует только по-русски.
  • Правка: GET|PUT /api/v1/equipment-edit/{pressregulators|consumptregulators|pressdropregulators}/{id} — routers/equipment_edit.py (у регулятора перепада дополнительные поля regvalvehydrores, consthroughregvalve, thrustdropmean), database/typed_edit.py.
  • Расчёт: heatnet/io/reader.py (_pressure_regulator, _flow_regulator), heatnet/solve/hydraulic.py.
  • Веб: components/NetworkRegulatorJournalDialog.vue (ключ networkRegulator), переход из протокола — utils/calcProtocol.ts, components/CalculationProtocol.vue.
  • Тесты: API — tests/test_equipment_router.py, tests/test_equipment_edit_router.py; веб — tests/utils/equipmentEdit.spec.ts, tests/utils/calcProtocol.spec.ts; e2e — e2e/functions/equipment-registries.spec.ts.
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо