Index: firmware/App/Services/PIControllers.c =================================================================== diff -u -r29a9a5dbaf87d4ae86612c7ca8c27716f20d6381 -r342b6c3de2a79fe5945d0b69aeaf9c3f46df1d8f --- firmware/App/Services/PIControllers.c (.../PIControllers.c) (revision 29a9a5dbaf87d4ae86612c7ca8c27716f20d6381) +++ firmware/App/Services/PIControllers.c (.../PIControllers.c) (revision 342b6c3de2a79fe5945d0b69aeaf9c3f46df1d8f) @@ -60,8 +60,8 @@ /// PI Controllers - initial configurations. static PI_CONTROLLER_T piControllers[ NUM_OF_PI_CONTROLLERS_IDS ] = -{ // Kp Ki uMax uMin ref meas err esw esum ctrl Ilimit controller type - { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, CONTROLLER_UNIDIRECTIONAL }, // PI_CONTROLLER_ID_RO_PUMP +{ // Kp Ki uMax uMin ref meas err esw esum ctrl Ilimit controller type + { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, CONTROLLER_UNIDIRECTIONAL }, // PI_CONTROLLER_ID_RO_PUMP { 0.0, 0.0, 3000, 300, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, CONTROLLER_BIDIRECTIONAL }, // PI_CONTROLLER_ID_DRAIN_PUMP { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, CONTROLLER_UNIDIRECTIONAL }, // PI_CONTROLLER_ID_RO_PUMP_MAX_PRES }; @@ -166,7 +166,7 @@ // Calculate error signal if ( controller->direction == CONTROLLER_UNIDIRECTIONAL ) { - // To make sure that the outcome will be positive + // Control should always be positive controller->errorSignal = fabs( referenceSignal ) - ( referenceSignal < 0.0 ? ( measuredSignal * -1.0 ) : measuredSignal ); } else