Index: firmware/App/Services/PIControllers.h =================================================================== diff -u -r29a9a5dbaf87d4ae86612c7ca8c27716f20d6381 -r1adf63258d838dea53d8e283d752e7c24626ab0b --- firmware/App/Services/PIControllers.h (.../PIControllers.h) (revision 29a9a5dbaf87d4ae86612c7ca8c27716f20d6381) +++ firmware/App/Services/PIControllers.h (.../PIControllers.h) (revision 1adf63258d838dea53d8e283d752e7c24626ab0b) @@ -50,6 +50,7 @@ CONTROLLER_SIGNAL_PROPORTIONAL_OUTPUT, ///< P portion of controller output signal CONTROLLER_SIGNAL_INTEGRAL_OUTPUT, ///< I portion of controller output signal CONTROLLER_SIGNAL_CONTROL, ///< Controller output signal + CONTROLLER_SIGNAL_MAX_ERROR_PER_STEP, ///< Maximum change in I (error sum) for a single control interval. NUM_OF_CONTROLLER_SIGNAL ///< Number of PI controller signals } PI_CONTROLLER_SIGNALS_ID; @@ -61,6 +62,7 @@ F32 Ki; ///< Integral Value F32 uMin; ///< Minimum control signal F32 uMax; ///< Maximum control signal + F32 maxErrorSumStep; ///< Maximum change in I (error sum) for a single control interval. U32 controlInterval; ///< Control interval value } PI_CONTROLLER_PROFILE_DATA_T; @@ -72,6 +74,7 @@ void resetPIController( PI_CONTROLLER_ID_T controllerID, F32 initialControlSignal ); F32 runPIController( PI_CONTROLLER_ID_T controllerID, F32 referenceSignal, F32 measuredSignal ); F32 getPIControllerSignals( PI_CONTROLLER_ID_T controllerID, PI_CONTROLLER_SIGNALS_ID signalID ); +void setPIControllerStepLimit( PI_CONTROLLER_ID_T controllerID, PI_CONTROLLER_SIGNALS_ID signalID, F32 stepLimit ); /**@}*/