Index: PIDControllers.c =================================================================== diff -u -r0ead56df33c1583486ca3a8f8eeeeadfa5f11eb5 -raa6bdd3bfc3bd8bc1a56670c2bdadc32c99b33c3 --- PIDControllers.c (.../PIDControllers.c) (revision 0ead56df33c1583486ca3a8f8eeeeadfa5f11eb5) +++ PIDControllers.c (.../PIDControllers.c) (revision aa6bdd3bfc3bd8bc1a56670c2bdadc32c99b33c3) @@ -116,7 +116,7 @@ controller->uMin = controlMin; controller->uMax = controlMax; controller->isFeedForwardEnabled = isFeedForwardEnabled; - resetPIController( controllerID, initialControlSignal, feedFowardSignal ); + resetPIDController( controllerID, initialControlSignal, feedFowardSignal ); } else { @@ -294,47 +294,47 @@ switch( signalID ) { - case CONTROLLER_SIGNAL_REFERENCE: + case CONTROLLER_SIGNAL_PID_REFERENCE: output = controller->referenceSignal; break; - case CONTROLLER_SIGNAL_MEASURED: + case CONTROLLER_SIGNAL_PID_MEASURED: output = controller->measuredSignal; break; - case CONTROLLER_SIGNAL_ERROR: + case CONTROLLER_SIGNAL_PID_ERROR: output = controller->errorSignal; break; - case CONTROLLER_SIGNAL_ERROR_SUM: + case CONTROLLER_SIGNAL_PID_ERROR_SUM: output = controller->errorSumBeforeWindUp; break; - case CONTROLLER_SIGNAL_ERROR_SUM_AFTER_WINDUP: + case CONTROLLER_SIGNAL_PID_ERROR_SUM_AFTER_WINDUP: output = controller->errorSum; break; - case CONTROLLER_SIGNAL_PROPORTIONAL_OUTPUT: + case CONTROLLER_SIGNAL_PID_PROPORTIONAL_OUTPUT: output = controller->Kp * controller->errorSignal; break; - case CONTROLLER_SIGNAL_INTEGRAL_OUTPUT: + case CONTROLLER_SIGNAL_PID_INTEGRAL_OUTPUT: output = controller->Ki * controller->errorSum; break; - case CONTROLLER_SIGNAL_FEEDFORWARD_OUTPUT: + case CONTROLLER_SIGNAL_PID_FEEDFORWARD_OUTPUT: output = controller->feedForward; break; - case CONTROLLER_SIGNAL_CONTROL: + case CONTROLLER_SIGNAL_PID_CONTROL: output = controller->controlSignal; break; - case CONTROLLER_SIGNAL_ERROR_PREVIOUS: + case CONTROLLER_SIGNAL_PID_ERROR_PREVIOUS: output = controller->errorPrevious; break; - case CONTROLLER_SIGNAL_DERIVATIVE_OUTPUT: + case CONTROLLER_SIGNAL_PID_DERIVATIVE_OUTPUT: output = controller->Kd * ( controller->errorSignal - controller->errorPrevious ); default: Index: PIDControllers.h =================================================================== diff -u -r0ead56df33c1583486ca3a8f8eeeeadfa5f11eb5 -raa6bdd3bfc3bd8bc1a56670c2bdadc32c99b33c3 --- PIDControllers.h (.../PIDControllers.h) (revision 0ead56df33c1583486ca3a8f8eeeeadfa5f11eb5) +++ PIDControllers.h (.../PIDControllers.h) (revision aa6bdd3bfc3bd8bc1a56670c2bdadc32c99b33c3) @@ -36,7 +36,7 @@ // ********** public definitions ********** /// Enumeration of PID controllers. -typedef enum ControllerList +typedef enum ControllerListPID { #ifdef _TD_ PID_CONTROLLER_ID_BLOOD_FLOW, ///< Blood pump controller to target flow rate @@ -48,20 +48,20 @@ } PID_CONTROLLER_ID_T; /// Enumeration of PI controller signals. -typedef enum ControllerSignals +typedef enum ControllerSignalsPID { - CONTROLLER_SIGNAL_REFERENCE = 0, ///< Reference value - CONTROLLER_SIGNAL_MEASURED, ///< Measured value - CONTROLLER_SIGNAL_ERROR, ///< Error value - CONTROLLER_SIGNAL_ERROR_SUM, ///< Error sum before anti-windup - CONTROLLER_SIGNAL_ERROR_SUM_AFTER_WINDUP, ///< Error sum after anti-windup - CONTROLLER_SIGNAL_ERROR_PREVIOUS, ///< Previous error signal - CONTROLLER_SIGNAL_PROPORTIONAL_OUTPUT, ///< P portion of controller output signal - CONTROLLER_SIGNAL_INTEGRAL_OUTPUT, ///< I portion of controller output signal - CONTROLLER_SIGNAL_DERIVATIVE_OUTPUT, ///< D portion of controller output signal. - CONTROLLER_SIGNAL_FEEDFORWARD_OUTPUT, ///< Feed forward portion of controller output signal - CONTROLLER_SIGNAL_CONTROL, ///< Controller output signal - NUM_OF_CONTROLLER_SIGNAL ///< Number of PI controller signals + CONTROLLER_SIGNAL_PID_REFERENCE = 0, ///< Reference value + CONTROLLER_SIGNAL_PID_MEASURED, ///< Measured value + CONTROLLER_SIGNAL_PID_ERROR, ///< Error value + CONTROLLER_SIGNAL_PID_ERROR_SUM, ///< Error sum before anti-windup + CONTROLLER_SIGNAL_PID_ERROR_SUM_AFTER_WINDUP, ///< Error sum after anti-windup + CONTROLLER_SIGNAL_PID_ERROR_PREVIOUS, ///< Previous error signal + CONTROLLER_SIGNAL_PID_PROPORTIONAL_OUTPUT, ///< P portion of controller output signal + CONTROLLER_SIGNAL_PID_INTEGRAL_OUTPUT, ///< I portion of controller output signal + CONTROLLER_SIGNAL_PID_DERIVATIVE_OUTPUT, ///< D portion of controller output signal. + CONTROLLER_SIGNAL_PID_FEEDFORWARD_OUTPUT, ///< Feed forward portion of controller output signal + CONTROLLER_SIGNAL_PID_CONTROL, ///< Controller output signal + NUM_OF_CONTROLLER_SIGNAL_PID ///< Number of PI controller signals } PID_CONTROLLER_SIGNALS_ID; /// Data structure for PI control profiles. @@ -79,7 +79,7 @@ // ********** public function prototypes ********** void initializePIDController( PID_CONTROLLER_ID_T controllerID, F32 initialControlSignal, - F32 kP, F32 kI, F32 controlMin, F32 controlMax, + F32 kP, F32 kI, F32 kD, F32 controlMin, F32 controlMax, BOOL isFeedForwardEnabled, F32 feedFowardSignal ); void resetPIDController( PID_CONTROLLER_ID_T controllerID, F32 initialControlSignal, F32 feedFowardSignal ); F32 runPIDController( PID_CONTROLLER_ID_T controllerID, F32 referenceSignal, F32 measuredSignal );