Тема оформления
Эндпоинты расчётных движков
Данный раздел представляет собой детальную 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)
| Поле | Тип | Ед. изм. | Описание и физический смысл | Ограничения | Значение по умолчанию |
|---|---|---|---|---|---|
dryMaterialMass | number | кг | Масса абсолютно сухого материала садки | 10000.0 | |
initialMoisture | number | % | Начальная влажность сырья | 8.0 | |
finalMoisture | number | % | Конечная регламентная влажность | 2.0 | |
initialMaterialTemp | number | °C | Температура материала перед посадкой | 20.0 | |
cartAndFurnaceMass | number | кг | Масса металлической оснастки и тележек | 2000.0 | |
airFlowCoefficient | number | б/р | Коэффициент расхода воздуха | 1.15 | |
airTemperature | number | °C | Температура воздуха дутья | 20.0 | |
recirculateTemp | number | °C | Температура газов рециркуляции | 230.0 | |
deltaAlpha | number | б/р | Приращение расхода воздуха при рециркуляции | 0.3 | |
fuelLowerHeatingValueKJPerKg | number | кДж/м³ | Низшая теплота сгорания природного газа | 35800.0 | |
innerWallArea | number | м² | Площадь внутренней поверхности стен | 39.5 | |
outerWallArea | number | м² | Площадь наружной поверхности кожуха стен | 46.0 | |
vaultArea | number | м² | Площадь арочного/подвесного свода | 28.9 | |
brickThickness | number | м | Толщина слоя огнеупорного кирпича | 0.12 | |
backfillThickness | number | м | Толщина теплоизоляционной засыпки | 0.08 | |
doorThickness | number | м | Толщина торцевых створок/дверей | 0.04 | |
dryingTime | number | с | Длительность фазы изотермической сушки | 28800 | |
tempRiseTime | number | с | Длительность фазы подъёма температуры | 14400 | |
holdingTime | number | с | Длительность высокотемпературной выдержки | 14400 | |
coolingTime | number | с | Длительность регламентного охлаждения | 25200 |
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)
| Группа / Поле | Тип | Ед. изм. | Описание | Ограничения |
|---|---|---|---|---|
| MaterialParameters | object | — | Параметры перемещаемого сырья | Обязательно |
..dryMass | number | кг/ч | Часовая производительность по сухому продукту | |
..initialMoisture | number | % | Начальная влажность сырья на входе | |
..finalMoisture | number | % | Конечная влажность продукта на выходе | |
..initialTemp | number | °C | Температура сырья перед подачей на ленту | |
..finalTemp | number | °C | Температура высушенного материала на разгрузке | |
..heatCapacity | number | кДж/(кг·°C) | Удельная теплоёмкость сухого материала | |
| TransportParameters | object | — | Характеристики транспортного конвейера | Обязательно |
..transportMass | number | кг/ч | Массовая скорость несущей металлической ленты | |
..transportHeatCapacity | number | кДж/(кг·°C) | Теплоёмкость ленты (сталь: 0.48) | |
..transportInitialTemp | number | °C | Температура холодной ветви ленты на входе | |
..transportFinalTemp | number | °C | Температура горячей ветви ленты в камере | |
| CombustionParameters | object | — | Параметры сжигания топлива | Обязательно |
..lowerHeatValue | number | кДж/м³ | Теплота сгорания газа () | |
..airExcessRatio | number | б/р | Коэффициент избытка воздуха () | |
..airTemp | number | °C | Температура дутья горелок | |
..exhaustGasTemp | number | °C | Температура газов в дымососе | |
| GeometryParameters | object | — | Список ограждений и коэффициентов теплоотдачи | Массив 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)
| Поле | Тип | Ед. изм. | Описание | Ограничения |
|---|---|---|---|---|
| MaterialParameters | object | — | Масса и влажность материала | DryMass, InitialMoisture, FinalMoisture |
| ElectricalParameters | object | — | Электротехнические параметры установки | Обязательно |
..electricPower | number | кВт | Суммарная активная мощность нагревателей | |
..efficiencyHEAT | number | б/р | КПД нагревателей (ТЭН: ) | |
| VentilationParameters | object | — | Вытяжная вентиляция паровоздушной смеси | Обязательно |
..airFlowRate | number | м³/ч | Объёмный расход вентиляционного воздуха | |
..inletAirTemp | number | °C | Температура свежего приточного воздуха | |
..outletAirTemp | number | °C | Температура уходящего влажного воздуха | |
..airHeatCapacity | number | кДж/(м³·°C) | Теплоемкость влажного воздуха | |
| GeometryParameters | object | — | Площади и перепады температур футеровки | Массив 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)
| Поле | Тип | Ед. изм. | Описание и физический смысл | Значение по умолчанию |
|---|---|---|---|---|
dryMaterialMass | number | кг/ч | Часовая производительность по сухому материалу | 2500.0 |
initialMoisture | number | % | Начальная влажность сыпучего материала | 15.0 |
finalMoisture | number | % | Конечная влажность продукта | 1.0 |
initialMaterialTemp | number | °C | Начальная температура сырья на загрузке | 15.0 |
materialBulkDensity | number | кг/м³ | Насыпная плотность сыпучего материала | 1400.0 |
materialHeatCapacity | number | кДж/(кг·°C) | Удельная теплоемкость сухого материала | 0.84 |
airFlowCoefficient | number | б/р | Коэффициент избытка воздуха в топке | 1.15 |
dryingAgentTempIn | number | °C | Температура сушильного агента на входе в барабан | 600.0 |
dryingAgentTempOut | number | °C | Температура газов на выходе из барабана | 120.0 |
recirculateTemp | number | °C | Температура рециркуляционного потока | 180.0 |
deltaAlpha | number | б/р | Степень рециркуляции газов | 0.25 |
drumDiameter | number | м | Внутренний диаметр барабана | 2.0 |
drumLength | number | м | Длина цилиндрической части барабана | 12.0 |
drumInclination | number | град. | Угол наклона барабана к горизонту | 3.0 |
rotationSpeed | number | об/мин | Частота вращения барабана | 3.0 |
fillFactor | number | б/р | Коэффициент заполнения сечения материалом () | 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": "Расчет сушильного барабана выполнен успешно."
}