/* * b_cccv_algo.h * * Created on: 16.06.2023 * Author: max */ #include #include "stm32h7xx_hal.h" #ifndef INC_B_CCCV_ALGO_H_ #define INC_B_CCCV_ALGO_H_ #define I_GAIN 4 #define P_GAIN 10 #define CHARGE_CURRENT_LIMIT 10.0 #define SIMULINKTEST #undef SIMULINKTEST typedef enum{ NO_CHARGING, CHARGING_IN_PROGRESS, CHARGING_COMPLETED } CCCV_CONTROL_STATE; #ifdef SIMULINKTEST CCCV_CONTROL_STATE cccvloop(float maxcellvoltage, float voltagesetpoint, float maxcurrent, float*ccurrent); #else CCCV_CONTROL_STATE cccvloop(float maxcellvoltage, float voltagesetpoint, float maxcurrent); void setchargecurrent(float chargecurrent); void setchargevoltage(uint8_t numberofcells,float maximumcellvoltage); float getMaximumCellVoltage(); void chargingloop(float maximumcellvoltage); void startcharging(float endvoltage); void initChargerAlgo(uint8_t numberofcells, float maximumcellvoltage); void setchargevoltage(uint8_t numberofcells,float maximumcellvoltage); void stopcharging(); #endif float matlabvalidationwrapper(float maxcellvoltage, float voltagesetpoint, float maxcurrent); #endif /* INC_B_CCCV_ALGO_H_ */