Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -r696a272b81bab714038cbc3f25f0b8d633cbcf53 -r767786753c360e9615b76a7f4a97fd0da4fcaf26 --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 696a272b81bab714038cbc3f25f0b8d633cbcf53) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 767786753c360e9615b76a7f4a97fd0da4fcaf26) @@ -53,7 +53,7 @@ #define HEATERS_ZERO_EFFICIENCY 0.0F ///< Zero heater efficiency #define HEATER_CNTL_TRANSFER_DELTA_TEMP_C 0.50F ///< AC heater delta temperature to transfer control from open to close loop #define ADJ_DELTA_TEMP_STEP 2.0F ///< Adjust target temperature based on D28 feedback per cycle. -#define MAX_ADJ_DELTA_TEMP_C 5.0F ///< Maximum adjusted delta temperature to add/remove from calculated target temperature +#define MAX_ADJ_DELTA_TEMP_C 7.0F ///< Maximum adjusted delta temperature to add/remove from calculated target temperature #define D5_HEAT_TX_INIT_FEED_FORWARD 0.0F ///< Initial Feed forward term for heater control //#define D5_HEAT_TX_P_COEFFICIENT 0.050F ///< P Term for AC primary heater control during treatment mode. @@ -83,7 +83,7 @@ #define D5_HEAT_CONTROL_INTERVAL_COUNT ( D5_HEAT_CONTROL_INTERVAL_MS / TASK_GENERAL_INTERVAL ) ///< Primary heater control interval count. #define D45_HEAT_CONTROL_INTERVAL_MS ( 1 * MS_PER_SECOND ) ///< Trimmer heater control interval in milli seconds #define D45_HEAT_CONTROL_INTERVAL_COUNT ( D45_HEAT_CONTROL_INTERVAL_MS / TASK_GENERAL_INTERVAL ) ///< Trimmer heater control interval count. -#define D5_TARGET_TEMP_ADJUST_INTERVAL_MS ( 5 * SEC_PER_MIN * MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Adjust primary target temperature +#define D5_TARGET_TEMP_ADJUST_INTERVAL_MS ( 3 * SEC_PER_MIN * MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Adjust primary target temperature #define PRIMARY_HEATER_MAX_PWR_WATTS 1400.0F ///< AC Primary Heater Max Power consumeption in Watts #define TX_PRIMARY_HEATER_MAX_PWR_WATTS 700.0F ///< Estimated power to be supplied to the primary heater during treatement mode #define HEAT_PRIMARY_HEATER_MAX_PWR_WATTS 980.0F ///< Estimated power to be supplied to the primary heater during heat disinfect mode @@ -390,15 +390,23 @@ F32 deltaTempC = targetTempfromTD - measuredTempAtDialyzer; F32 capDeltaTempC = MIN( fabs(deltaTempC), ADJ_DELTA_TEMP_STEP ); + //Assign the initial calcualted temp for adjsutment + if ( FALSE == isTargetTempAdjusted ) + { + adjustedPrimaryTargetTemp = calcTargetTemp; + } + + //Keep adjusting the temperature based on D28 feedback if ( deltaTempC > HEATERS_ZERO_DELTA_TEMP_C ) { - adjustedPrimaryTargetTemp = calcTargetTemp + capDeltaTempC; + adjustedPrimaryTargetTemp = adjustedPrimaryTargetTemp + capDeltaTempC; } else { - adjustedPrimaryTargetTemp = calcTargetTemp - capDeltaTempC; + adjustedPrimaryTargetTemp = adjustedPrimaryTargetTemp - capDeltaTempC; } + //Make sure the adjusted temp not crossing the max and min limits. adjustedPrimaryTargetTemp = MIN(adjustedPrimaryTargetTemp, ( calcTargetTemp + MAX_ADJ_DELTA_TEMP_C ) ); adjustedPrimaryTargetTemp = MAX(adjustedPrimaryTargetTemp, ( calcTargetTemp - MAX_ADJ_DELTA_TEMP_C ) ); Index: firmware/App/DDCommon.h =================================================================== diff -u -r2c161af66ec97f88454e6efd74baa4017ede555e -r767786753c360e9615b76a7f4a97fd0da4fcaf26 --- firmware/App/DDCommon.h (.../DDCommon.h) (revision 2c161af66ec97f88454e6efd74baa4017ede555e) +++ firmware/App/DDCommon.h (.../DDCommon.h) (revision 767786753c360e9615b76a7f4a97fd0da4fcaf26) @@ -55,7 +55,7 @@ //#define ENABLE_ALARM_2 //Uncomment below if balancing chamber pressure alarm is required -#define __BC_PRESSURE_ALARM__ 1 +//#define __BC_PRESSURE_ALARM__ 1 //Uncomment below to disable heaters debug message #define __HEATERS_DEBUG__ 1