Граф расчёта
Порядок и взаимосвязь функций расчёта. Узлы — секции методик по methodSectionId, дуги — передаваемые расчётные параметры.
Граф задаёт порядок и взаимосвязь функций.
Граф общий для всех разделов расчёта: узлы te.* — секции теплотехнического расчёта, ee.* —
расчёта по электричеству, summary.* — свода. Деление на разделы принадлежит реализации,
а не методике: связи между секциями пересекают границы разделов, и порядок расчёта задаётся
этим графом целиком.
flowchart LR
%% Ветка площади окон A_окон по новой методике (листовая секция: te.windows_area_by_type_by_side):
te.windows_area_by_type_by_side -->|"A_окон^{i,j}"| te.windows_area_by_type
te.windows_area_by_type_by_side -->|"A_окон^{i,j}"| te.windows_area_by_side
te.windows_area_by_type_by_side -->|"A_окон^{i,j}"| te.windows_area_by_type_by_direction
te.windows_area_by_type -->|"A_окон^j"| te.windows_area_total
te.windows_area_by_type_by_direction -->|"A_окон^{d,j}"| te.windows_area_by_direction
%% Ветка площади ворот A_ворот по новой методике (листовая секция: te.doors_area_by_type_by_side):
%% Для ворот секции по сторонам света не вычисляются.
te.doors_area_by_type_by_side -->|"A_ворот^{i,j}"| te.doors_area_by_type
te.doors_area_by_type_by_side -->|"A_ворот^{i,j}"| te.doors_area_by_side
te.doors_area_by_type -->|"A_ворот^j"| te.doors_area_total
%% Узлы по methodSectionId (ветка стен → периметр): te.number_of_corners → te.wall_thickness → te.inner_wall_perimeter_by_side → te.inner_wall_perimeter
te.number_of_corners -->|"k_ext,k_int"| te.inner_wall_perimeter_by_side
te.wall_thickness -->|"δ"| te.inner_wall_perimeter_by_side
te.inner_wall_perimeter_by_side -->|"L_i^int"| te.inner_wall_perimeter
te.inner_wall_perimeter -->|"p_ВП.Стен"| te.inner_wall_surface_area
te.windows_area_total -->|"A_окон"| te.inner_wall_surface_area
te.doors_area_total -->|"A_ворот"| te.inner_wall_surface_area
te.inner_wall_surface_area -->|"A_ВП.Стен"| te.envelope_area
te.windows_area_total -->|"A_окон"| te.envelope_area
te.doors_area_total -->|"A_ворот"| te.envelope_area
te.wall_thermal_resistance -->|"R_стен^пр"| te.envelope_thermal_resistance
te.envelope_area -->|"A_НОК"| te.envelope_thermal_resistance
te.inner_wall_surface_area -->|"A_ВП.Стен"| te.envelope_thermal_resistance
te.windows_area_total -->|"A_окон"| te.envelope_thermal_resistance
te.window_thermal_resistance -->|"R_окон^пр"| te.envelope_thermal_resistance
te.doors_area_total -->|"A_ворот"| te.envelope_thermal_resistance
te.door_thermal_resistance -->|"R_ворот^пр"| te.envelope_thermal_resistance
te.upper_enclosures_area -->|"A_ВОК"| te.envelope_thermal_resistance
te.upper_enclosures_thermal_resistance -->|"R_ВОК^пр"| te.envelope_thermal_resistance
te.ground_contact_area -->|"A_ЗКГ"| te.envelope_thermal_resistance
te.ground_contact_thermal_resistance -->|"R_ЗКГ^пр"| te.envelope_thermal_resistance
%% Старая декомпозиция attic_wall_area (selectBranch + 6 веток) удалена:
%% по новой методике это единая секция te.attic_wall_area с внутренним диспетчером по
%% (HasAttic, RoofType, BuildingForm).
te.inner_wall_perimeter -->|"p_стен^int"| te.attic_wall_area
te.attic_wall_area -->|"A_НП.Черд"| te.upper_enclosures_area
%% Старая декомпозиция roof_cover_area (selectBranch + 5 веток) удалена:
%% по новой методике это единая секция te.roof_cover_area с внутренним диспетчером по
%% (RoofType, BuildingForm).
te.ground_floor_area -->|"A_осн^int"| te.roof_cover_area
te.roof_cover_area -->|"A_ПК"| te.upper_enclosures_area
te.upper_enclosures_area -->|"A_ВОК"| te.envelope_area
%% Старая декомпозиция basement_wall_area / ground_floor_area / ground_contact_area
%% (selectBranch + ветки по form/HasBasement) удалена: по новой методике это единые секции
%% с внутренним диспетчером.
te.inner_wall_perimeter -->|"p_стен^int"| te.basement_wall_area
te.basement_wall_area -->|"A_СП"| te.ground_contact_area
te.inner_wall_perimeter_by_side -->|"L_i^int"| te.ground_floor_area
te.ground_floor_area -->|"A_осн^int"| te.ground_contact_area
te.ground_contact_area -->|"A_ЗКГ"| te.envelope_area
%% Старая декомпозиция вентиляционных диспетчеров (selectBranch + with/without_recuperator) удалена:
%% по новой методике это единые секции te.vent_hours, te.recuperator_efficiency,
%% te.infiltration_hours с внутренним switch по Ventilation.HasRecuperator.
te.vent_amount -->|"L_вент"| te.spec_ventilation_char
te.vent_hours -->|"n_вент"| te.spec_ventilation_char
te.recuperator_efficiency -->|"k_эф"| te.spec_ventilation_char
te.infiltration_hours -->|"n_инф"| te.spec_ventilation_char
te.vent_amount -->|"L_вент"| te.air_exchange_rate
te.vent_hours -->|"n_вент"| te.air_exchange_rate
te.infiltration_hours -->|"n_инф"| te.air_exchange_rate
te.infiltration_air_amount -->|"G^инф"| te.air_exchange_rate
te.supply_air_density -->|"ρ_в^вент"| te.air_exchange_rate
te.air_exchange_rate -->|"n_в"| te.heat_gain_utilization_factor
te.envelope_area -->|"A_НОК"| te.spec_heat_protect_char
te.envelope_thermal_resistance -->|"R_o^пр"| te.spec_heat_protect_char
te.spec_ventilation_char -->|"k_вент"| te.calc_specific_characteristic
te.spec_heat_protect_char -->|"k_об"| te.calc_specific_characteristic
te.calc_specific_characteristic -->|"q_от^р"| te.deviation_percent
te.deviation_percent -->|"δq"| te.class_by_deviation
te.windows_area_total -->|"A_окон"| te.window_thermal_resistance
te.doors_area_total -->|"A_ворот"| te.door_thermal_resistance
te.upper_enclosures_area -->|"A_ВОК"| te.upper_enclosures_thermal_resistance
te.ground_contact_area -->|"A_ЗКГ"| te.ground_contact_thermal_resistance
te.ground_contact_zones_area -->|"A_ЗКГ^I..IV"| te.ground_contact_thermal_resistance
te.air_specific_weight -->|"γ_н,γ_в"| te.pressure_difference
te.pressure_difference -->|"Δp"| te.windows_air_permeability_resistance
te.pressure_difference -->|"Δp"| te.doors_air_permeability_resistance
te.pressure_difference -->|"Δp"| te.window_infiltration_air_amount
te.pressure_difference -->|"Δp"| te.door_infiltration_air_amount
te.windows_air_permeability_resistance -->|"R_возд.пр,j окон"| te.window_infiltration_air_amount
te.doors_air_permeability_resistance -->|"R_возд.пр,j ворот"| te.door_infiltration_air_amount
te.window_infiltration_air_amount -->|"G_окон^инф,j"| te.infiltration_air_amount
te.door_infiltration_air_amount -->|"G_ворот^инф,j"| te.infiltration_air_amount
te.infiltration_air_amount -->|"G^инф"| te.spec_ventilation_char
%% Старая декомпозиция windows_area_by_direction (selectBranch + form_* + orient_*) удалена:
%% в новой методике это единая секция te.windows_area_by_type_by_direction в два этапа.
%% Старая декомпозиция doors_area_by_direction (selectBranch + form_* + orient_*) удалена:
%% по новой методике для ворот секции по сторонам света не вычисляются.
%% Старая декомпозиция ground_contact_zones_area (selectBranch + ветки по form) удалена:
%% по новой методике это единая секция te.ground_contact_zones_area с внутренним диспетчером по форме.
te.solar_radiation_by_direction -->|"I_рад^d"| te.solar_gain_energy_by_window_kind
te.windows_area_by_type_by_direction -->|"A_окон^{d,j}"| te.solar_gain_energy_by_window_kind
te.solar_gain_energy_by_window_kind -->|"Q_рад^j"| te.solar_gain_energy
te.solar_gain_energy -->|"Q_рад"| te.spec_solar_gain_char
te.heating_degree_days -->|"D_d"| te.spec_solar_gain_char
te.internal_heat_gain_energy -->|"q_быт"| te.spec_internal_heat_gain_char
te.spec_internal_heat_gain_char -->|"k_быт"| te.calc_specific_characteristic
te.spec_solar_gain_char -->|"k_рад"| te.calc_specific_characteristic
te.heat_gain_utilization_factor -->|"β_КПИ"| te.calc_specific_characteristic
%% Финальная ветка потребления тепловой энергии: te.calc_specific_characteristic + te.heating_degree_days
%% → te.te_consumption_kwh → te.te_consumption_gcal.
te.calc_specific_characteristic -->|"q_от^р"| te.te_consumption_kwh
te.heating_degree_days -->|"D_d"| te.te_consumption_kwh
te.te_consumption_kwh -->|"Q_от^kWh"| te.te_consumption_gcal
%% Старые узлы детализированного учёта потерь (compute*HeatLoss*, compute*HeatGains, compute*HeatEnergy*,
%% computeCompensationPowerEnergy, computeLossesToSpecificCharacteristic, computeEquivalentAirPermeabilityResistance,
%% computeOpeningsModelAggregation) удалены: текущая методика рассчитывает потребление через q_от^р
%% напрямую (см. te.te_consumption_kwh), без промежуточного баланса теплопотерь/теплопоступлений.
%% ── РАЗДЕЛ ЭЭ ──────────────────────────────────────────────────────────
%% Мощность вида токоприёмников P_k — исходные данные, отдельной секции не имеет.
ee.lighting_kind_power -->|"P_k"| ee.lighting_kind_consumption
ee.lighting_kind_power -->|"P_k"| ee.lighting_model_totals
ee.lighting_kind_consumption -->|"Q_k"| ee.lighting_model_totals
ee.receiver_kind_consumption -->|"Q_k"| ee.receiver_model_totals
ee.lighting_model_totals -->|"P_light,Q_light"| ee.ee_consumption_kwh
%% Межразделовая дуга: удельные бытовые теплопоступления берут мощность освещения из раздела ЭЭ.
ee.lighting_model_totals -->|"P_light"| te.internal_heat_gain_energy
ee.receiver_model_totals -->|"P_rec,Q_rec"| ee.ee_consumption_kwh
%% ── СВОД ───────────────────────────────────────────────────────────────
te.te_consumption_kwh -->|"H_h^kWh"| summary.te_consumption_kwh
summary.te_consumption_kwh -->|"H^kWh"| summary.te_consumption_gcal
te.te_consumption_kwh -->|"E_h^kWh = H_h^kWh"| summary.ee_consumption_kwh
ee.ee_consumption_kwh -->|"E_c^kWh"| summary.ee_consumption_kwh
Структурные связи
Использует
- Прикладной сервис
- Прикладной сервис Расчёт по электричеству (ЭЭ)
- Прикладной сервис Теплотехнический расчёт
Используется
- Запрос на изменение Смена показателя бытовых тепловыделений на удельный