From 2c9c973b540360c8b4015b40dc727706751135b1 Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Tue, 13 Oct 2026 15:11:57 +0300 Subject: [PATCH] feat: added honeywell ngs heat exchanger cmm 47-32-06 --- README.md | 1 + ats0002/47_32_06.h | 98 ++++++++++++++++++++++++++ heat_exchander_airflow_pressure_drop.c | 2 + version.txt | 2 +- 4 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 ats0002/47_32_06.h diff --git a/README.md b/README.md index 2f46d2a..d0c3474 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ 2. Support for heat exchanger models: - Honeywell Heat Exchanger CMM 21-50-14 - Honeywell Ram Heat Exchanger CMM 21-52-80 + - Honeywell NGS Heat Exchanger CMM 47-32-06 - Liebherr Reheater CMM 21-53-89 - Liebherr Condenser CMM 21-53-88 3. Multiple part number selection for each heat exchanger. diff --git a/ats0002/47_32_06.h b/ats0002/47_32_06.h new file mode 100644 index 0000000..3c980a8 --- /dev/null +++ b/ats0002/47_32_06.h @@ -0,0 +1,98 @@ +#pragma once + +#include "ats0002.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + /** + * @file 47_32_06.h + * + * @brief Honeywell NGS Heat Exchanger CMM 47-32-06 configuration data. + * + * This module provides static configuration data for Honeywell NGS Heat + * Exchanger CMM 47-32-06, including pressure-to-airflow anchor points for + * cooling and hot sides, air passage definitions, and heat exchanger type + * mappings for part number 2341790-1. + * + * Key features: + * - Cooling side performance data (Figure 4002) + * - Hot side performance data (Figure 4004) + * - Complete air passage configuration with operational limits + * + * @note All data arrays are static and const-qualified for read-only access. + */ + + /** + * @brief Honeywell NGS Heat Exchanger CMM 47-32-06, Figure 4002 (P/N 2341790-1). + * + * Cooling side dependence of ΔPS (KPA) on air flow rate (LB/MIN), UPPER LIMIT. + */ + static const airflow_to_pressure_anchors_data_t _cooling_side_2341790_1[] = { + {2.6, 0.02}, + {3.0, 0.03}, + {4.0, 0.04}, + {5.0, 0.06}, + {6.0, 0.07}, + {7.0, 0.09}, + {8.0, 0.11}, + {9.0, 0.14}, + {10.0, 0.17}, + {20.0, 0.55}, + {30.0, 1.12}, + {40.0, 1.84}}; + + /** + * @brief Honeywell NGS Heat Exchanger CMM 47-32-06, Figure 4004 (P/N 2341790-1). + * + * Hot side dependence of ΔPS (PSIG) on air flow rate (LB/MIN), UPPER LIMIT. + */ + static const airflow_to_pressure_anchors_data_t _hot_side_2341790_1[] = { + {1.6, 0.04}, + {2.0, 0.05}, + {3.0, 0.07}, + {4.0, 0.10}, + {5.0, 0.14}, + {6.0, 0.18}, + {7.0, 0.24}, + {8.0, 0.29}, + {9.0, 0.35}, + {10.0, 0.42}, + {20.0, 1.37}, + {30.0, 2.89}, + {35.0, 3.61}}; + + static const air_passage_data_t _air_passage_2341790_1_data[] = { + {.air_passage_description = "Ram Air Side", + .air_passage_anchors = _cooling_side_2341790_1, + .anchors_data_size = ARRAY_SIZE(_cooling_side_2341790_1), + .recalculated_required = true, + .airflow_pressure_unit = KPA, + .min_barometric_pressure = 840.0, + .max_barometric_pressure = 1070.0, + .min_airflow_temperature = 15.0, + .max_airflow_temperature = 35.0, + .min_airflow_pressure = 0.01, + .max_airflow_pressure = 2.0}, + {.air_passage_description = "Bleed Air Side", + .air_passage_anchors = _hot_side_2341790_1, + .anchors_data_size = ARRAY_SIZE(_hot_side_2341790_1), + .recalculated_required = true, + .airflow_pressure_unit = PSIG, + .min_barometric_pressure = 840.0, + .max_barometric_pressure = 1070.0, + .min_airflow_temperature = 15.0, + .max_airflow_temperature = 35.0, + .min_airflow_pressure = 0.01, + .max_airflow_pressure = 15.0}}; + + static const heat_exchanger_type_data_t heat_exchanger_47_32_06_data[] = { + {.part_number_description = "2341790-1", + .air_passages_data = _air_passage_2341790_1_data, + .air_passages_data_size = ARRAY_SIZE(_air_passage_2341790_1_data)}}; + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/heat_exchander_airflow_pressure_drop.c b/heat_exchander_airflow_pressure_drop.c index b4736f6..41d94a9 100644 --- a/heat_exchander_airflow_pressure_drop.c +++ b/heat_exchander_airflow_pressure_drop.c @@ -1,12 +1,14 @@ #include "ats0002/ats0002.h" #include "ats0002/21_50_14.h" #include "ats0002/21_52_80.h" +#include "ats0002/47_32_06.h" #include "ats0002/21_53_89.h" #include "ats0002/21_53_88.h" static const heat_exchanger_data_t heat_exchanger_data[] = { {"Honeywell Heat Exchanger CMM 21-50-14", heat_exchanger_21_50_14_data, ARRAY_SIZE(heat_exchanger_21_50_14_data)}, {"Honeywell Ram Heat Exchanger CMM 21-52-80", heat_exchanger_21_52_80_data, ARRAY_SIZE(heat_exchanger_21_52_80_data)}, + {"Honeywell NGS Heat Exchanger CMM 47-32-06", heat_exchanger_47_32_06_data, ARRAY_SIZE(heat_exchanger_47_32_06_data)}, {"Liebherr Reheater CMM 21-53-89", heat_exchanger_21_53_89_data, ARRAY_SIZE(heat_exchanger_21_53_89_data)}, {"Liebherr Condenser CMM 21-53-88", heat_exchanger_21_53_88_data, ARRAY_SIZE(heat_exchanger_21_53_88_data)}}; diff --git a/version.txt b/version.txt index 1cc5f65..867e524 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.1.0 \ No newline at end of file +1.2.0 \ No newline at end of file