Модель потребления

Доменная сущность Версия: 1.0 changed

Алиасы: Модель потребления. parents: [consumption-model-diagram].

⟨/⟩ Исходник

Модель потребления (сущность) - корневая сущность Модель потребления (модель), которая описывает условия и эффективность потребления Зданием тепловой (ТЭ) и электрической (ЭЭ) энергии. Расчётные атрибуты Модель потребления (сущность) - сводные расчётные параметры по Модель потребления (модель).

Здание может быть связано со зданием в смежной системе АИС ОИА ПЭО. В этом случае для Здания должна бать создана Модель потребления (модель) с признаком Модель потребления (сущность) "Базовая модель" = "Да", она обязана отражать актуальные данные здания в смежной системе. Если признак "Базовая модель" = "Да", часть данных модели, находящаяся в ответственности АИС ОИА ПЭО, не редактируется пользователем. Для её изменения необходимо, вне функциональности Сервис ЭНЗС, внести изменения в АИС ОИА ПЭО и выполнить синхронизацию данных.

Связи

classDiagram
    direction LR
    class ConsumptionModel {
        +Guid id
        +String name
        +Building building_id
        +EnergyEfficiencyClasses energy_efficiency_class_id
        +Decimal calc_from_norm_deviation_perc
        +Decimal specific_heat_consumption_wt_per_m3c
        +Decimal specific_heat_consumption_norm_wt_per_m3c
        +Decimal specific_heat_protection_wt_per_m3c
        +Decimal specific_internal_heat_gains_wt_per_m3c
        +Decimal specific_solar_heat_gains_wt_per_m3c
        +Decimal coef_heat_gains_utilization
        +Decimal heat_envelope_area_m2
        +Decimal heat_envelope_thermal_resistance_m2c_per_wt
        +Decimal heat_loss_power_kwt
        +Decimal heat_loss_energy_kwt_h
        +Decimal ee_consumption_kwt_h
        +Decimal te_consumption_kwt_h
        +Decimal te_consumption_gcal
        +Decimal summary_te_consumption_kwt_h
        +Decimal summary_te_consumption_gcal
        +Decimal summary_ee_consumption_kwt_h
        +String calc_log_json
        +String calc_errors_json
        +DateTime calc_date
        +Boolean is_base_model
        +CalcStatus calc_status_id
        +CalcKind calc_kind_id
    }
    class Building
    class EnergyEfficiencyClasses
    class CalcStatus
    class CalcKind
    ConsumptionModel "1" --> "1" Building : building_id
    ConsumptionModel "0..1" --> "1" EnergyEfficiencyClasses : energy_efficiency_class_id
    ConsumptionModel "1" --> "1" CalcStatus : calc_status_id
    ConsumptionModel "1" --> "1" CalcKind : calc_kind_id

Структура

НаименованиеАтрибутТипОбязательно для созданияВычисляемый, методикаЕИДиапазон / форматЗначение по умолчаниюНеизменяемостьОписание
Идентификатор записиidGuidДаДа
НаименованиеnameStringДа"{Здание. Наименование} {дата и время создания}"
Зданиеbuilding_idBuildingДаДа
Класс энергоэффективностиenergy_efficiency_class_idEnergyEfficiencyClassesНетДа, `te.class_by_deviation`возможные значения справочника: {E, D, C-, C, C+, B, B+, A, A+, A++}
Отклонение расчётной характеристики от нормативной, %calc_from_norm_deviation_percDecimalНетДа, `te.deviation_percent``%`Вещественное [-100; 100]
Удельная характеристика расхода ТЭ (расчётная), Вт/(м3∙℃)specific_heat_consumption_wt_per_m3cDecimalНетДа, `te.calc_specific_characteristic``Вт/(м³·°C)`Вещественное (0; 100]
Удельная характеристика расхода ТЭ (нормативная), Вт/(м3∙℃)specific_heat_consumption_norm_wt_per_m3cDecimalНетДа`Вт/(м³·°C)`Вещественное (0; 100]
Удельная теплозащитная характеристикаspecific_heat_protection_wt_per_m3cDecimalНетДа, `te.spec_heat_protect_char``Вт/(м³·°C)`Вещественное (0; 100]
Удельная характеристика внутренних теплопоступлений, Вт/(м³·°C)specific_internal_heat_gains_wt_per_m3cDecimalНетДа, `te.spec_internal_heat_gain_char``Вт/(м³·°C)`Вещественное (0; 100]
Удельная характеристика теплопоступлений от солнечной радиации, Вт/(м³·°C)specific_solar_heat_gains_wt_per_m3cDecimalНетДа, `te.spec_solar_gain_char``Вт/(м³·°C)`Вещественное (0; 100]
Коэффициент полезного использования теплопоступленийcoef_heat_gains_utilizationDecimalНетДа, `te.heat_gain_utilization_factor`Вещественное (0; 100]
Площадь теплозащитной оболочки здания, м²heat_envelope_area_m2DecimalНетДа, `te.envelope_area``м²`Вещественное (0; 10000000]
Приведённое сопротивление теплозащитной оболочки, м²·°C/Втheat_envelope_thermal_resistance_m2c_per_wtDecimalНетДа, `te.envelope_thermal_resistance``м²·°C/Вт`Вещественное (0; 1000]
Мощность теплопотерь здания, кВтheat_loss_power_kwtDecimalНетДа`кВт`Вещественное [0; 1000000]
Энергия теплопотерь здания, кВт·чheat_loss_energy_kwt_hDecimalНетДа`кВт·ч`Вещественное [0; 1000000]
Потребление ЭЭ на хозяйственно-бытовые нужды, кВт·чee_consumption_kwt_hDecimalНетДа, ee.ee_consumption_kwh`кВт·ч`Вещественное [0; 1000000]
Потребление ТЭ на отопление и вентиляцию, кВт·чte_consumption_kwt_hDecimalНетДа, `te.te_consumption_kwh``кВт·ч`Вещественное [0; 1000000]
Потребление ТЭ на отопление и вентиляцию, Гкалte_consumption_gcalDecimalНетДа, `te.te_consumption_gcal``Гкал`Вещественное [0; 1000000]
Общее потребление ТЭ зданием, кВт·чsummary_te_consumption_kwt_hDecimalНетДа, `summary.te_consumption_kwh``кВт·ч`Вещественное [0; 1000000]
Общее потребление ТЭ зданием, Гкалsummary_te_consumption_gcalDecimalНетДа, `summary.te_consumption_gcal``Гкал`Вещественное [0; 1000000]
Общее потребление ЭЭ зданием, кВт·чsummary_ee_consumption_kwt_hDecimalНетДа, `summary.ee_consumption_kwh``кВт·ч`Вещественное [0; 1000000]
Журнал расчётаcalc_log_jsonStringДаДа
Ошибки расчётаcalc_errors_jsonStringДаДаОшибки расчёта (CmCalcErrors) в виде JSON
Дата выполнения расчётаcalc_dateDateTimeНетДаДата и время выполнения расчёта
Базовая модельis_base_modelBooleanДаНетfalse
Статус расчётаcalc_status_idCalcStatusДаДаНе выполнен
Вид расчётаcalc_kind_idCalcKindДаНетСтрока до 50 символовПроизвольный

Исходник

    public class ConsumptionModel
    {
        /// <summary>Идентификатор записи</summary>
        [DomainField(Alias = "id", RequiredOnCreate = true, Immutable = true)]
        public Guid Id { get; set; }

        /// <summary>Наименование</summary>
        [DomainField(Alias = "name", RequiredOnCreate = true, Default = "\"{Здание. Наименование} {дата и время создания}\"")]
        public string? Name { get; set; }

        /// <summary>Здание</summary>
        [Relation]
        [DomainField(Alias = "building_id", RequiredOnCreate = true, Immutable = true)]
        public Building? Building { get; set; }

        /// <summary>Класс энергоэффективности</summary>
        [Relation]
        [DomainField(
            Alias = "energy_efficiency_class_id",
            Calculated = "Да, `te.class_by_deviation`",
            Range = "возможные значения справочника: {E, D, C-, C, C+, B, B+, A, A+, A++}"
        )]
        public EnergyEfficiencyClasses? EnergyEfficiencyClass { get; set; }

        /// <summary>Отклонение расчётной характеристики от нормативной, %</summary>
        [DomainField(
            Alias = "calc_from_norm_deviation_perc",
            Calculated = "Да, `te.deviation_percent`",
            Unit = "`%`",
            Range = "Вещественное [-100; 100]"
        )]
        public decimal CalcFromNormDeviationPerc { get; set; }

        /// <summary>Удельная характеристика расхода ТЭ (расчётная), Вт/(м3∙℃)</summary>
        [DomainField(
            Alias = "specific_heat_consumption_wt_per_m3c",
            Calculated = "Да, `te.calc_specific_characteristic`",
            Unit = "`Вт/(м³·°C)`",
            Range = "Вещественное (0; 100]"
        )]
        public decimal SpecificHeatConsumptionWtPerM3c { get; set; }

        /// <summary>Удельная характеристика расхода ТЭ (нормативная), Вт/(м3∙℃)</summary>
        [DomainField(Alias = "specific_heat_consumption_norm_wt_per_m3c", Calculated = "Да", Unit = "`Вт/(м³·°C)`", Range = "Вещественное (0; 100]")]
        public decimal SpecificHeatConsumptionNormWtPerM3c { get; set; }

        /// <summary>Удельная теплозащитная характеристика</summary>
        [DomainField(
            Alias = "specific_heat_protection_wt_per_m3c",
            Calculated = "Да, `te.spec_heat_protect_char`",
            Unit = "`Вт/(м³·°C)`",
            Range = "Вещественное (0; 100]"
        )]
        public decimal SpecificHeatProtectionWtPerM3c { get; set; }

        /// <summary>Удельная характеристика внутренних теплопоступлений, Вт/(м³·°C)</summary>
        [DomainField(
            Alias = "specific_internal_heat_gains_wt_per_m3c",
            Calculated = "Да, `te.spec_internal_heat_gain_char`",
            Unit = "`Вт/(м³·°C)`",
            Range = "Вещественное (0; 100]"
        )]
        public decimal SpecificInternalHeatGainsWtPerM3c { get; set; }

        /// <summary>Удельная характеристика теплопоступлений от солнечной радиации, Вт/(м³·°C)</summary>
        [DomainField(
            Alias = "specific_solar_heat_gains_wt_per_m3c",
            Calculated = "Да, `te.spec_solar_gain_char`",
            Unit = "`Вт/(м³·°C)`",
            Range = "Вещественное (0; 100]"
        )]
        public decimal SpecificSolarHeatGainsWtPerM3c { get; set; }

        /// <summary>Коэффициент полезного использования теплопоступлений</summary>
        [DomainField(Alias = "coef_heat_gains_utilization", Calculated = "Да, `te.heat_gain_utilization_factor`", Range = "Вещественное (0; 100]")]
        public decimal CoefHeatGainsUtilization { get; set; }

        /// <summary>Площадь теплозащитной оболочки здания, м²</summary>
        [DomainField(Alias = "heat_envelope_area_m2", Calculated = "Да, `te.envelope_area`", Unit = "`м²`", Range = "Вещественное (0; 10000000]")]
        public decimal HeatEnvelopeAreaM2 { get; set; }

        /// <summary>Приведённое сопротивление теплозащитной оболочки, м²·°C/Вт</summary>
        [DomainField(
            Alias = "heat_envelope_thermal_resistance_m2c_per_wt",
            Calculated = "Да, `te.envelope_thermal_resistance`",
            Unit = "`м²·°C/Вт`",
            Range = "Вещественное (0; 1000]"
        )]
        public decimal HeatEnvelopeThermalResistanceM2cPerWt { get; set; }

        /// <summary>Мощность теплопотерь здания, кВт</summary>
        [DomainField(Alias = "heat_loss_power_kwt", Calculated = "Да", Unit = "`кВт`", Range = "Вещественное [0; 1000000]")]
        public decimal HeatLossPowerKwt { get; set; }

        /// <summary>Энергия теплопотерь здания, кВт·ч</summary>
        [DomainField(Alias = "heat_loss_energy_kwt_h", Calculated = "Да", Unit = "`кВт·ч`", Range = "Вещественное [0; 1000000]")]
        public decimal HeatLossEnergyKwtH { get; set; }

        /// <summary>Потребление ЭЭ на хозяйственно-бытовые нужды, кВт·ч</summary>
        [DomainField(Alias = "ee_consumption_kwt_h", Calculated = "Да, ee.ee_consumption_kwh", Unit = "`кВт·ч`", Range = "Вещественное [0; 1000000]")]
        public decimal EeConsumptionKwtH { get; set; }

        /// <summary>Потребление ТЭ на отопление и вентиляцию, кВт·ч</summary>
        [DomainField(
            Alias = "te_consumption_kwt_h",
            Calculated = "Да, `te.te_consumption_kwh`",
            Unit = "`кВт·ч`",
            Range = "Вещественное [0; 1000000]"
        )]
        public decimal TeConsumptionKwtH { get; set; }

        /// <summary>Потребление ТЭ на отопление и вентиляцию, Гкал</summary>
        [DomainField(
            Alias = "te_consumption_gcal",
            Calculated = "Да, `te.te_consumption_gcal`",
            Unit = "`Гкал`",
            Range = "Вещественное [0; 1000000]"
        )]
        public decimal TeConsumptionGcal { get; set; }

        /// <summary>Общее потребление ТЭ зданием, кВт·ч</summary>
        [DomainField(
            Alias = "summary_te_consumption_kwt_h",
            Calculated = "Да, `summary.te_consumption_kwh`",
            Unit = "`кВт·ч`",
            Range = "Вещественное [0; 1000000]"
        )]
        public decimal SummaryTeConsumptionKwtH { get; set; }

        /// <summary>Общее потребление ТЭ зданием, Гкал</summary>
        [DomainField(
            Alias = "summary_te_consumption_gcal",
            Calculated = "Да, `summary.te_consumption_gcal`",
            Unit = "`Гкал`",
            Range = "Вещественное [0; 1000000]"
        )]
        public decimal SummaryTeConsumptionGcal { get; set; }

        /// <summary>Общее потребление ЭЭ зданием, кВт·ч</summary>
        [DomainField(
            Alias = "summary_ee_consumption_kwt_h",
            Calculated = "Да, `summary.ee_consumption_kwh`",
            Unit = "`кВт·ч`",
            Range = "Вещественное [0; 1000000]"
        )]
        public decimal SummaryEeConsumptionKwtH { get; set; }

        /// <summary>Журнал расчёта</summary>
        [DomainField(Alias = "calc_log_json", RequiredOnCreate = true, Calculated = "Да")]
        public string? CalcLogJson { get; set; }

        /// <summary>Ошибки расчёта</summary>
        [DomainField(
            Alias = "calc_errors_json",
            RequiredOnCreate = true,
            Calculated = "Да",
            Description = "Ошибки расчёта (`CmCalcErrors`) в виде JSON"
        )]
        public string? CalcErrorsJson { get; set; }

        /// <summary>Дата выполнения расчёта</summary>
        [DomainField(Alias = "calc_date", Calculated = "Да", Description = "Дата и время выполнения расчёта")]
        public DateTime CalcDate { get; set; }

        /// <summary>Базовая модель</summary>
        [DomainField(Alias = "is_base_model", RequiredOnCreate = true, Calculated = "Нет", Default = "false")]
        public bool IsBaseModel { get; set; }

        /// <summary>Статус расчёта</summary>
        [Relation]
        [DomainField(Alias = "calc_status_id", RequiredOnCreate = true, Calculated = "Да", Default = "Не выполнен")]
        public CalcStatus? CalcStatus { get; set; }

        /// <summary>Вид расчёта</summary>
        [Relation]
        [DomainField(Alias = "calc_kind_id", RequiredOnCreate = true, Calculated = "Нет", Range = "Строка до 50 символов", Default = "Произвольный")]
        public CalcKind? CalcKind { get; set; }
    }

Связанные артефакты

Термины