Skip to content

Эндпоинты расчётных движков ​

Данный раздел представляет собой детальную Swagger-спецификацию четырёх термодинамических микросервисов платформы «UrFU HeatBalance». Все методы используют протокол HTTP POST, требуют аутентификации через заголовок Authorization: Bearer <token> и принимают полезную нагрузку в формате application/json.


1. Камерная сушильная печь (ChamberKiln) ​

  • HTTP Метод: POST
  • URL: /api/v1/chamber/calculate
  • Назначение: Расчёт полного прямого и обратного теплового баланса периодической камерной печи с рециркуляцией газов.
  • Авторизация: Bearer <JWT-токен> (Scope: api)

1.1. Параметры запроса (Request Body) ​

ПолеТипЕд. изм.Описание и физический смыслОграниченияЗначение по умолчанию
dryMaterialMassnumberкгМасса абсолютно сухого материала садки≥0.0\ge 0.010000.0
initialMoisturenumber%Начальная влажность сырья0.0…99.90.0 \dots 99.98.0
finalMoisturenumber%Конечная регламентная влажность0.0…99.90.0 \dots 99.92.0
initialMaterialTempnumber°CТемпература материала перед посадкой−30…100-30 \dots 10020.0
cartAndFurnaceMassnumberкгМасса металлической оснастки и тележек≥0.0\ge 0.02000.0
airFlowCoefficientnumberб/рКоэффициент расхода воздуха α\alpha1.0…3.01.0 \dots 3.01.15
airTemperaturenumber°CТемпература воздуха дутья−30…150-30 \dots 15020.0
recirculateTempnumber°CТемпература газов рециркуляции100…600100 \dots 600230.0
deltaAlphanumberб/рПриращение расхода воздуха при рециркуляции0.0…2.00.0 \dots 2.00.3
fuelLowerHeatingValueKJPerKgnumberкДж/м³Низшая теплота сгорания природного газа>0.0> 0.035800.0
innerWallAreanumberм²Площадь внутренней поверхности стен>0.0> 0.039.5
outerWallAreanumberм²Площадь наружной поверхности кожуха стен>0.0> 0.046.0
vaultAreanumberм²Площадь арочного/подвесного свода>0.0> 0.028.9
brickThicknessnumberмТолщина слоя огнеупорного кирпича0.01…1.00.01 \dots 1.00.12
backfillThicknessnumberмТолщина теплоизоляционной засыпки0.01…1.00.01 \dots 1.00.08
doorThicknessnumberмТолщина торцевых створок/дверей0.01…0.50.01 \dots 0.50.04
dryingTimenumberсДлительность фазы изотермической сушки>0> 028800
tempRiseTimenumberсДлительность фазы подъёма температуры>0> 014400
holdingTimenumberсДлительность высокотемпературной выдержки>0> 014400
coolingTimenumberсДлительность регламентного охлаждения>0> 025200

1.2. Пример тела запроса (JSON) ​

json
{
  "dryMaterialMass": 10000.0,
  "initialMoisture": 8.0,
  "finalMoisture": 2.0,
  "initialMaterialTemp": 20.0,
  "cartAndFurnaceMass": 2000.0,
  "airFlowCoefficient": 1.15,
  "airTemperature": 20.0,
  "recirculateTemp": 230.0,
  "deltaAlpha": 0.3,
  "fuelLowerHeatingValueKJPerKg": 35800.0,
  "innerWallArea": 39.5,
  "outerWallArea": 46.0,
  "vaultArea": 28.9,
  "brickThickness": 0.12,
  "backfillThickness": 0.08,
  "doorThickness": 0.04,
  "dryingTime": 28800,
  "tempRiseTime": 14400,
  "holdingTime": 14400,
  "coolingTime": 25200
}

1.3. Пример ответа сервера (200 OK) ​

json
{
  "unitType": 2,
  "totalInputKJPerHour": 1485200.0,
  "usefulHeatKJPerHour": 1015600.0,
  "lossesKJPerHour": 469600.0,
  "unaccountedKJPerHour": 0.0,
  "efficiency": 0.6838,
  "components": [
    { "name": "Полезное тепло сушки и нагрева", "valueKJPerHour": 1015600.0 },
    { "name": "Потери с уходящими газами", "valueKJPerHour": 284200.0 },
    { "name": "Потери через футеровку стен и свода", "valueKJPerHour": 125400.0 },
    { "name": "Потери с нагревом вагонеток", "valueKJPerHour": 60000.0 }
  ],
  "summary": {
    "efficiency": { "value": 68.38, "unit": "%", "symbol": "eta", "label": "Тепловой КПД" },
    "fuelConsumption": { "value": 41.48, "unit": "м3/ч", "symbol": "B", "label": "Расход природного газа" },
    "totalFuelHeat": { "value": 1485200.0, "unit": "кДж/ч", "symbol": "Q_in", "label": "Подведенное тепло" },
    "heatPerKgMoisture": { "value": 3652.4, "unit": "кДж/кг", "symbol": "q_w", "label": "Удельный расход на влагу" },
    "removedMoisture": { "value": 612.2, "unit": "кг", "symbol": "W", "label": "Испаренная влага" }
  },
  "notes": "Расчет камерной печи выполнен успешно."
}

1.4. Пример cURL вызова ​

bash
curl -X POST "https://heatbalance.ru/api/v1/chamber/calculate" \
  -H "Authorization: Bearer <YOUR_JWT_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "dryMaterialMass": 10000,
    "initialMoisture": 8.0,
    "finalMoisture": 2.0,
    "airFlowCoefficient": 1.15,
    "airTemperature": 20.0,
    "recirculateTemp": 230.0
  }'

2. Конвейерная сушильная печь (ConveyorKiln) ​

  • HTTP Метод: POST
  • URL: /api/v1/conveyor/calculate
  • Назначение: Расчёт непрерывной конвейерной сушилки с учётом теплоты прогрева тяговой сетки/ленты и аэродинамики движения слоев.
  • Авторизация: Bearer <JWT-токен>

2.1. Параметры запроса (Request Body) ​

Группа / ПолеТипЕд. изм.ОписаниеОграничения
MaterialParametersobject—Параметры перемещаемого сырьяОбязательно
..dryMassnumberкг/чЧасовая производительность по сухому продукту>0.0> 0.0
..initialMoisturenumber%Начальная влажность сырья на входе0.0…99.00.0 \dots 99.0
..finalMoisturenumber%Конечная влажность продукта на выходе0.0…99.00.0 \dots 99.0
..initialTempnumber°CТемпература сырья перед подачей на ленту−20…80-20 \dots 80
..finalTempnumber°CТемпература высушенного материала на разгрузке40…20040 \dots 200
..heatCapacitynumberкДж/(кг·°C)Удельная теплоёмкость сухого материала0.5…3.00.5 \dots 3.0
TransportParametersobject—Характеристики транспортного конвейераОбязательно
..transportMassnumberкг/чМассовая скорость несущей металлической ленты≥0.0\ge 0.0
..transportHeatCapacitynumberкДж/(кг·°C)Теплоёмкость ленты (сталь: 0.48)>0.0> 0.0
..transportInitialTempnumber°CТемпература холодной ветви ленты на входе−20…50-20 \dots 50
..transportFinalTempnumber°CТемпература горячей ветви ленты в камере40…20040 \dots 200
CombustionParametersobject—Параметры сжигания топливаОбязательно
..lowerHeatValuenumberкДж/м³Теплота сгорания газа (QHpQ_H^p)>0.0> 0.0
..airExcessRationumberб/рКоэффициент избытка воздуха (α\alpha)1.0…2.51.0 \dots 2.5
..airTempnumber°CТемпература дутья горелок−20…200-20 \dots 200
..exhaustGasTempnumber°CТемпература газов в дымососе80…40080 \dots 400
GeometryParametersobject—Список ограждений и коэффициентов теплоотдачиМассив Surfaces

2.2. Пример тела запроса (JSON) ​

json
{
  "materialParameters": {
    "dryMass": 1500.0,
    "initialMoisture": 12.0,
    "finalMoisture": 1.5,
    "initialTemp": 18.0,
    "finalTemp": 95.0,
    "heatCapacity": 1.25
  },
  "transportParameters": {
    "transportMass": 650.0,
    "transportHeatCapacity": 0.48,
    "transportInitialTemp": 20.0,
    "transportFinalTemp": 85.0
  },
  "combustionParameters": {
    "lowerHeatValue": 37220.0,
    "airExcessRatio": 1.20,
    "airTemp": 22.0,
    "exhaustGasTemp": 135.0
  },
  "geometryParameters": {
    "surfaces": [
      { "name": "Боковые стенки", "area": 45.0, "heatTransferCoefficient": 8.5, "tempDifference": 35.0 },
      { "name": "Свод печи", "area": 30.0, "heatTransferCoefficient": 9.2, "tempDifference": 40.0 }
    ]
  }
}

3. Электрическая сушильная печь (ElectricKiln) ​

  • HTTP Метод: POST
  • URL: /api/v1/electric/calculate
  • Назначение: Расчёт теплового баланса печи с электронагревателями (ТЭНами) и принудительной вытяжной вентиляцией.
  • Авторизация: Bearer <JWT-токен>

3.1. Параметры запроса (Request Body) ​

ПолеТипЕд. изм.ОписаниеОграничения
MaterialParametersobject—Масса и влажность материалаDryMass, InitialMoisture, FinalMoisture
ElectricalParametersobject—Электротехнические параметры установкиОбязательно
..electricPowernumberкВтСуммарная активная мощность нагревателей>0.0> 0.0
..efficiencyHEATnumberб/рКПД нагревателей (ТЭН: 0.92…0.980.92 \dots 0.98)0.5…1.00.5 \dots 1.0
VentilationParametersobject—Вытяжная вентиляция паровоздушной смесиОбязательно
..airFlowRatenumberм³/чОбъёмный расход вентиляционного воздуха≥0.0\ge 0.0
..inletAirTempnumber°CТемпература свежего приточного воздуха−20…50-20 \dots 50
..outletAirTempnumber°CТемпература уходящего влажного воздуха60…25060 \dots 250
..airHeatCapacitynumberкДж/(м³·°C)Теплоемкость влажного воздуха1.20…1.451.20 \dots 1.45
GeometryParametersobject—Площади и перепады температур футеровкиМассив Surfaces

3.2. Пример тела запроса (JSON) ​

json
{
  "materialParameters": {
    "dryMass": 800.0,
    "initialMoisture": 10.0,
    "finalMoisture": 0.5,
    "initialTemp": 20.0,
    "finalTemp": 110.0,
    "heatCapacity": 1.15
  },
  "electricalParameters": {
    "electricPower": 120.0,
    "efficiencyHEAT": 0.96
  },
  "ventilationParameters": {
    "airFlowRate": 450.0,
    "inletAirTemp": 20.0,
    "outletAirTemp": 125.0,
    "airHeatCapacity": 1.32
  },
  "geometryParameters": {
    "surfaces": [
      { "name": "Корпус электропечи", "area": 28.0, "heatTransferCoefficient": 7.8, "tempDifference": 30.0 }
    ]
  }
}

4. Сушильный барабан (DrumDryer) ​

  • HTTP Метод: POST
  • URL: /api/v1/drum/calculate
  • Назначение: Расчёт барабанной сушилки сыпучих материалов, определение расхода топочных газов, времени пребывания и габаритов корпуса.
  • Авторизация: Bearer <JWT-токен>

4.1. Параметры запроса (Request Body) ​

ПолеТипЕд. изм.Описание и физический смыслЗначение по умолчанию
dryMaterialMassnumberкг/чЧасовая производительность по сухому материалу2500.0
initialMoisturenumber%Начальная влажность сыпучего материала15.0
finalMoisturenumber%Конечная влажность продукта1.0
initialMaterialTempnumber°CНачальная температура сырья на загрузке15.0
materialBulkDensitynumberкг/м³Насыпная плотность сыпучего материала1400.0
materialHeatCapacitynumberкДж/(кг·°C)Удельная теплоемкость сухого материала0.84
airFlowCoefficientnumberб/рКоэффициент избытка воздуха в топке1.15
dryingAgentTempInnumber°CТемпература сушильного агента на входе в барабан600.0
dryingAgentTempOutnumber°CТемпература газов на выходе из барабана120.0
recirculateTempnumber°CТемпература рециркуляционного потока180.0
deltaAlphanumberб/рСтепень рециркуляции газов0.25
drumDiameternumberмВнутренний диаметр барабана2.0
drumLengthnumberмДлина цилиндрической части барабана12.0
drumInclinationnumberград.Угол наклона барабана к горизонту3.0
rotationSpeednumberоб/минЧастота вращения барабана3.0
fillFactornumberб/рКоэффициент заполнения сечения материалом (β\beta)0.15

4.2. Пример тела запроса (JSON) ​

json
{
  "dryMaterialMass": 2500.0,
  "initialMoisture": 15.0,
  "finalMoisture": 1.0,
  "initialMaterialTemp": 15.0,
  "materialBulkDensity": 1400.0,
  "materialHeatCapacity": 0.84,
  "airFlowCoefficient": 1.15,
  "dryingAgentTempIn": 600.0,
  "dryingAgentTempOut": 120.0,
  "recirculateTemp": 180.0,
  "deltaAlpha": 0.25,
  "drumDiameter": 2.0,
  "drumLength": 12.0,
  "drumInclination": 3.0,
  "rotationSpeed": 3.0,
  "fillFactor": 0.15
}

4.3. Пример ответа сервера (200 OK) ​

json
{
  "unitType": 4,
  "totalInputKJPerHour": 1950400.0,
  "usefulHeatKJPerHour": 1423800.0,
  "lossesKJPerHour": 526600.0,
  "unaccountedKJPerHour": 0.0,
  "efficiency": 0.7300,
  "components": [
    { "name": "Испарение влаги и прогрев материала", "valueKJPerHour": 1423800.0 },
    { "name": "Потери тепла с уходящими газами", "valueKJPerHour": 365200.0 },
    { "name": "Потери теплопередачей через стенку барабана", "valueKJPerHour": 161400.0 }
  ],
  "summary": {
    "efficiency": { "value": 73.0, "unit": "%", "symbol": "eta", "label": "Тепловой КПД" },
    "fuelConsumption": { "value": 54.48, "unit": "м3/ч", "symbol": "B", "label": "Расход топлива топки" },
    "removedMoisture": { "value": 411.6, "unit": "кг/ч", "symbol": "W", "label": "Испаренная влага" },
    "drumVolume": { "value": 37.7, "unit": "м3", "symbol": "V_b", "label": "Объем барабана" }
  },
  "notes": "Расчет сушильного барабана выполнен успешно."
}

Разработано в рамках проекта моделирования тепловых балансов и промышленного мониторинга