Index: firmware/App/Controllers/BoostPump.c =================================================================== diff -u -r9b970fd909c38f64f034cda1ffa793b9e1c8c365 -r19e682bf3a5ad3593935db055af7b80bb9354ab4 --- firmware/App/Controllers/BoostPump.c (.../BoostPump.c) (revision 9b970fd909c38f64f034cda1ffa793b9e1c8c365) +++ firmware/App/Controllers/BoostPump.c (.../BoostPump.c) (revision 19e682bf3a5ad3593935db055af7b80bb9354ab4) @@ -41,10 +41,8 @@ #define BOOST_FLOW_CONTROL_P_COEFFICIENT 0.15F ///< P term for Boost pump flow control. #define BOOST_FLOW_CONTROL_I_COEFFICIENT 0.65F ///< I term for Boost pump flow control. -#define BOOST_PRESSURE_CONTROL_P_COEFFICIENT 0.00072F ///< P term for Boost pump pressure control. -#define BOOST_PRESSURE_CONTROL_I_COEFFICIENT 0.0004F ///< I term for Boost pump pressure control. -//#define BOOST_PRESSURE_CONTROL_P_COEFFICIENT 0.0024F ///< P term for Boost pump pressure control. -//#define BOOST_PRESSURE_CONTROL_I_COEFFICIENT 0.0008F ///< I term for Boost pump pressure control. +#define BOOST_PRESSURE_CONTROL_P_COEFFICIENT 0.00072F ///< P term for Boost pump pressure control. +#define BOOST_PRESSURE_CONTROL_I_COEFFICIENT 0.0004F ///< I term for Boost pump pressure control. #define BOOST_PRESSURE_CONTROL_D_COEFFICIENT 0.0F ///< D term for Boost pump pressure control. #define BOOST_FLOW_TO_PWM_SLOPE 0.5F ///< Slope of flow to PWM line equation. @@ -55,12 +53,12 @@ #define DATA_PUBLISH_COUNTER_START_COUNT 10 ///< Data publish counter start count. /// PWM line equation for pressure. converted to percentage. -#define BOOST_PRESSURE_TO_PWM_PCT(pres) ( ( BOOST_PRESSURE_TO_PWM_SLOPE * pres + BOOST_PRESSURE_TO_PWM_INTERCEPT ) / MAX_P40_FLUID_PUMP_PWM_DUTY_CYCLE ) +#define BOOST_PRESSURE_TO_PWM_PCT(pres) ( ( BOOST_PRESSURE_TO_PWM_SLOPE * pres + BOOST_PRESSURE_TO_PWM_INTERCEPT ) / MAX_P40_FLUID_PUMP_PWM_DUTY_CYCLE ) /// PWM line equation for flow. converted to percentage. -#define BOOST_FLOW_TO_PWM_PCT(pres) ( ( BOOST_FLOW_TO_PWM_SLOPE * pres + BOOST_FLOW_TO_PWM_INTERCEPT ) / MAX_P40_FLUID_PUMP_PWM_DUTY_CYCLE ) +#define BOOST_FLOW_TO_PWM_PCT(pres) ( ( BOOST_FLOW_TO_PWM_SLOPE * pres + BOOST_FLOW_TO_PWM_INTERCEPT ) / MAX_P40_FLUID_PUMP_PWM_DUTY_CYCLE ) -#define MIN_CONTROL_P40_FLUID_PUMP_DUTY_CYCLE_PCT 0.02F -#define MAX_CONTROL_P40_FLUID_PUMP_DUTY_CYCLE_PCT 0.9F +#define MIN_CONTROL_P40_FLUID_PUMP_DUTY_CYCLE_PCT 0.02F +#define MAX_CONTROL_P40_FLUID_PUMP_DUTY_CYCLE_PCT 0.9F // ********** private data ********** static BOOST_PUMP_STATE_T boostPumpState; ///< Current state of pump controller state machine. @@ -207,7 +205,7 @@ setFluidPumpPctToPWMDutyCycle( P40_PUMP, boostPumpDutyCyclePctSet ); state = BOOST_PUMP_CONTROL_TO_TARGET_FLOW_STATE; } - // If the target duty cycle is greater than zero (minimum is 10%) and the mode has been set to open + // If the mode has been set to open // loop, set the duty cycle else if ( getTargetBoostPumpDutyCyclePCT() > 0.0F ) { @@ -681,25 +679,15 @@ { BOOST_PUMP_DATA_T pumpData; -// pumpData.p40PumpState = (U32)boostPumpState; -// pumpData.p40PumpDutyCycle = (U32)getFluidPumpPWMDutyCycle( P40_PUMP ); -// pumpData.p40PumpFBDutyCycle = (U32)getFluidPumpReadPWMDutyCycle( P40_PUMP ); -// pumpData.p40PumpSpeed = getFluidPumpRPM( P40_PUMP ); -// pumpData.p40TargetPressure = getTargetBoostPumpPressure(); -// pumpData.p40TargetFlow = getTargetBoostPumpFlowRateMLPM(); -// pumpData.p40TargetDutyCycle = getTargetBoostPumpDutyCyclePCT(); -// pumpData.p40PumpDutyCyclePct = convertDutyCycleCntToPct( P40_PUMP, (U32)getFluidPumpPWMDutyCycle( P40_PUMP ) ); -// pumpData.p40PumpFBDutyCyclePct = convertDutyCycleCntToPct( P40_PUMP, (U32)getFluidPumpReadPWMDutyCycle( P40_PUMP ) ); - pumpData.p40PumpState = (U32)boostPumpState; pumpData.p40PumpDutyCycle = (U32)getFluidPumpPWMDutyCycle( P40_PUMP ); - pumpData.p40PumpFBDutyCycle = getPIDControllerSignals(PID_CONTROLLER_ID_BOOST_PUMP_PRES, CONTROLLER_SIGNAL_PID_DERIVATIVE_OUTPUT ); - pumpData.p40PumpSpeed = getPIDControllerSignals(PID_CONTROLLER_ID_BOOST_PUMP_PRES, CONTROLLER_SIGNAL_PID_MEASURED ); - pumpData.p40TargetPressure = getPIDControllerSignals(PID_CONTROLLER_ID_BOOST_PUMP_PRES, CONTROLLER_SIGNAL_PID_ERROR ); - pumpData.p40TargetFlow = getPIDControllerSignals(PID_CONTROLLER_ID_BOOST_PUMP_PRES, CONTROLLER_SIGNAL_PID_ERROR_SUM ); - pumpData.p40TargetDutyCycle = getPIDControllerSignals(PID_CONTROLLER_ID_BOOST_PUMP_PRES, CONTROLLER_SIGNAL_PID_PROPORTIONAL_OUTPUT ); - pumpData.p40PumpDutyCyclePct = getPIDControllerSignals(PID_CONTROLLER_ID_BOOST_PUMP_PRES, CONTROLLER_SIGNAL_PID_INTEGRAL_OUTPUT ); - pumpData.p40PumpFBDutyCyclePct = getPIDControllerSignals(PID_CONTROLLER_ID_BOOST_PUMP_PRES, CONTROLLER_SIGNAL_PID_CONTROL ); + pumpData.p40PumpFBDutyCycle = (U32)getFluidPumpReadPWMDutyCycle( P40_PUMP ); + pumpData.p40PumpSpeed = getFluidPumpRPM( P40_PUMP ); + pumpData.p40TargetPressure = getTargetBoostPumpPressure(); + pumpData.p40TargetFlow = getTargetBoostPumpFlowRateMLPM(); + pumpData.p40TargetDutyCycle = getTargetBoostPumpDutyCyclePCT(); + pumpData.p40PumpDutyCyclePct = convertDutyCycleCntToPct( P40_PUMP, (U32)getFluidPumpPWMDutyCycle( P40_PUMP ) ); + pumpData.p40PumpFBDutyCyclePct = convertDutyCycleCntToPct( P40_PUMP, (U32)getFluidPumpReadPWMDutyCycle( P40_PUMP ) ); broadcastData( MSG_ID_FP_BOOST_PUMP_DATA, COMM_BUFFER_OUT_CAN_FP_BROADCAST, (U08*)&pumpData, sizeof( BOOST_PUMP_DATA_T ) ); boostPumpDataPublicationTimerCounter = 0; @@ -871,7 +859,7 @@ handleFluidPumpU32Data( &targetBoostPumpFlowRate ); handleFluidPumpF32Data( &targetBoostPumpPressure ); } - result = setBoostPumpTargetDutyCycle(getTargetBoostPumpDutyCyclePCT(), FALSE); + result = setBoostPumpTargetDutyCycle( getTargetBoostPumpDutyCyclePCT(), FALSE ); return result; }