An Active Hybrid Energy Storage System Utilising a Fuzzy Logic Rule-Based Control Strategy

: The research presented in this paper documents the implementation of an active hybrid energy storage system that combined a battery pack and an ultracapacitor bank. The implemented hybrid energy storage system was used to reduce the peak-power that the battery needs to provide to the load. An active topology utilising two direct current / direct current (DC / DC) converters and a switch was used to implement the hybrid energy storage system. Fuzzy logic was used as a close-loop control structure to control the DC / DC converters in the topology, whilst a rule-based control strategy was used to control the operating states of the hybrid energy storage system. Experimental implementation of the system showed that the system was able to actively control the energy ﬂow throughout the hybrid energy storage system in order to limit the power drawn from the battery to a user-deﬁned limit. The performance of the fuzzy logic controllers was also experimentally found to be su ﬃ cient when used in conjunction with the rule-based control strategy. The system allows one to utilize batteries that are optimized for energy density seeing that the system was able to actively limit the power drawn from the battery, whilst providing the required power to the load by utilising the ultracapacitor bank.


Introduction
The popularity of electric and hybrid electric vehicles (EVs, HEVs) continues to grow due to growing consumer expectations and legislation to reduce the impact of fossil fuels on the environment. According to the European Automobile Manufacturers' Association (ACEA), the share of electric cars in the European Union (EU) was around 30% higher in 2018 compared to 2017 [1]. The limiting factor in developing EVs that have comparable performance to that of internal combustion vehicles (ICEVs) is the energy storage system (ESS) used in the EV [2][3][4]. Batteries have been the most commonly used ESS in EVs due to their reliability and high energy density compared to other electrical energy storage devices. However, even with improvements in energy and power density, batteries still have a limited cycle life, and their energy density pales in comparison to that of gasoline [5,6].
Electric vehicles (EVs) require a power and energy dense source in order to provide power during acceleration as well as store enough energy so that the vehicle has a sufficient range. In general, batteries only possess one of these characteristics, not both [7]. EV designers often utilize batteries that are optimized for energy density, but in order for the battery pack to meet the power requirements of the vehicle, the size of the battery pack is increased, in order to increase the power capacity of the pack. This increases the weight and cost of the battery pack. The battery pack in an EV accounts for about one-third of the total production cost of the EV [8]. Hybrid energy storage systems (HESSs) have been proposed in the literature to hybridize different ESSs with complementary characteristics in an attempt to address some of these issues [9][10][11][12][13][14][15].
HESS showed significant improvement when compared to the standalone battery system at low temperatures.
Active topologies overcome the limited power control that is provided by the semi-active topology by utilizing multiple DC/DC converters. This allows full control over the energy flow throughout the system whilst also isolating the ESSs from the DC bus. The active topology unfortunately increases the power loss throughout the system due to the losses associated with the additional DC/DC converters, which also add to the overall complexity and cost of the system. Z. Song et al. (2014) proposed a novel semi-active HESS topology [20]. The topology was simulated in Simulink ® /MATLAB ® [38]. The China Bus Driving Cycle was used as the load profile in the simulation. LiFePO4 batteries were used in the simulation model. The simulations done by Z. Song et al. showed that the proposed configuration reduced the peak currents experienced by the battery pack. The simulations showed that the ultracapacitor was also more effectively used in this topology, providing higher peaks of power when compared to that of the passive parallel system. The loss in the battery capacity over time was also reduced in the simulation.
C. Xiang et al. (2014) proposed a novel topology which is somewhat similar to the aforementioned topologies but makes use of two switching devices and diodes to control the flow of energy between the EESs and the load [14]. Depending on the load, the topology is operated in different modes. The combination in which the switches are connected or disconnected then determines how the power is provided to the load. The topology was simulated and implemented to verify its operation. The results showed that this topology was able to meet the power demands of the load whilst requiring a lower-capacity DC/DC converter than what is required in a conventional HESS topology.
This paper presents the design of an overhead controller for an active HESS utilizing fuzzy logic controllers to control the DC/DC converters in the topology. The design and experimental setup of the system are briefly discussed. The experimental results of the system are also presented in this paper. The active topology that was utilised is depicted in Figure 1 and utilises two DC/DC converters as well as a switching device, to bypass the DC/DC converters to directly connect the battery to the load, to reduce losses. The novelty of this paper lies in the use of fuzzy logic for DC-DC converter control in conjunction with a rule-based overhead controller to control the flow of power in a HESS. The HESS topology that was used in the article is also not commonly found in other research papers.

Hybrid Energy Storage System
The overall system design is depicted in Figure 2. From this figure it is clear that a battery and UC were used as the ESSs in this study. The system utilises a control system working in conjunction with two fuzzy logic controllers to control the power flow throughout the system. The system also utilises various voltage and current sensors to determine the state-of-charge (SoC) of the battery and the UC, as well as measure the power that is transferred from each source, the power flowing through the boost converter and the power drawn by the load. The topology utilises a unidirectional boost converter to interface the battery with the UC, whilst a unidirectional buck converter is used to transfer power from the UC to the load. The switch is used to directly connect the battery to the load, depending on the operating mode of the system.

Hybrid Energy Storage System
The overall system design is depicted in Figure 2. From this figure it is clear that a battery and UC were used as the ESSs in this study. The system utilises a control system working in conjunction with two fuzzy logic controllers to control the power flow throughout the system. The system also utilises various voltage and current sensors to determine the state-of-charge (SoC) of the battery and the UC, as well as measure the power that is transferred from each source, the power flowing through the boost converter and the power drawn by the load. The topology utilises a unidirectional boost converter to interface the battery with the UC, whilst a unidirectional buck converter is used to transfer power from the UC to the load. The switch is used to directly connect the battery to the load, depending on the operating mode of the system. The system was designed in such a manner as to limit the power drawn from the battery to a user-defined limit. During experimental testing this limit was set to the average power drawn by the load profile plus the losses induced by the DC/DC converters. This was done so that the SoC of the UC would be the same at the start and the end of the load profile. This would mean that the system would be able to provide power to the load until the battery would be depleted. Seeing that the UC bank that was used had a higher nominal voltage than that of the battery bank, a boost converter was used in order to be able to transfer power from the battery to the UC bank. The output voltage of the buck converter is set equal to that of the battery pack, so as to minimize the power spikes that occur when the system switches between different operating modes.

Overhead Control Rules
The system utilised different operating modes to control the energy flow throughout the system depending on the power drawn by the load. The overhead control rules used to determine in which mode the system should operate in are depicted in Figure 3. The controller has seven different operating modes which are briefly discussed in the paragraphs to follow. Mode switching is implemented by controlling the state of the switch as well as the reference power for the DC/DC converters. In Figure 3, represents the critical value for the battery/ultracapacitor's SoC. represents the user-defined power limit for the amount of power that can be drawn from the battery.
Mode 0: This mode is activated when the state-of-charge (SoC) of the battery is below 10% and the SoC of the ultracapacitor is below 25%, i.e., both the battery and the ultracapacitor are depleted. This mode pulls the switch low to disconnect the battery from the load, and zero power is transferred by either DC/DC converters. The system is therefore in shutdown.
Mode 1: When the SoC of the battery is below 10% and the SoC of the ultracapacitor is above 25% the ultracapacitor provides power to the load, irrespective of how much power the load draws, until the ultracapacitors SoC reaches 25%. After the SoC of the ultracapacitor drops below 25%, mode 0 will be triggered.
Mode 2: This mode is activated when the load power is below the user-defined power limit for the battery pack, the state-of-charge (SoC) of the battery is above 10%, the SoC of the ultracapacitor is above 95% and the battery only provides power to the load. The controller drives the state of the switch high, in order to directly connect the battery to the load, bypassing the DC/DC converters. No power is transferred by the DC/DC converters in this mode.  The system was designed in such a manner as to limit the power drawn from the battery to a user-defined limit. During experimental testing this limit was set to the average power drawn by the load profile plus the losses induced by the DC/DC converters. This was done so that the SoC of the UC would be the same at the start and the end of the load profile. This would mean that the system would be able to provide power to the load until the battery would be depleted. Seeing that the UC bank that was used had a higher nominal voltage than that of the battery bank, a boost converter was used in order to be able to transfer power from the battery to the UC bank. The output voltage of the buck converter is set equal to that of the battery pack, so as to minimize the power spikes that occur when the system switches between different operating modes.

Overhead Control Rules
The system utilised different operating modes to control the energy flow throughout the system depending on the power drawn by the load. The overhead control rules used to determine in which mode the system should operate in are depicted in Figure 3. The controller has seven different operating modes which are briefly discussed in the paragraphs to follow. Mode switching is implemented by controlling the state of the switch as well as the reference power for the DC/DC converters. In Figure 3, C V represents the critical value for the battery/ultracapacitor's SoC. P L represents the user-defined power limit for the amount of power that can be drawn from the battery.
Mode 0: This mode is activated when the state-of-charge (SoC) of the battery is below 10% and the SoC of the ultracapacitor is below 25%, i.e., both the battery and the ultracapacitor are depleted. This mode pulls the switch low to disconnect the battery from the load, and zero power is transferred by either DC/DC converters. The system is therefore in shutdown.
Mode 1: When the SoC of the battery is below 10% and the SoC of the ultracapacitor is above 25% the ultracapacitor provides power to the load, irrespective of how much power the load draws, until the ultracapacitors SoC reaches 25%. After the SoC of the ultracapacitor drops below 25%, mode 0 will be triggered.
Mode 2: This mode is activated when the load power is below the user-defined power limit for the battery pack, the state-of-charge (SoC) of the battery is above 10%, the SoC of the ultracapacitor is above 95% and the battery only provides power to the load. The controller drives the state of the switch high, in order to directly connect the battery to the load, bypassing the DC/DC converters. No power is transferred by the DC/DC converters in this mode.  Mode 3: If the load power is below the user-defined power limit and the SoC of the ultracapacitor is between 25% and 95%, the battery provides power to both the load and to the ultracapacitor so that the following holds true, where is the power drawn by the load and is the power provided to the ultracapacitor by the battery through the boost converter. The battery charges the ultracapacitor to ensure a high SoC of the ultracapacitor so that if the load power drastically increases, the ultracapacitor has sufficient energy to supply power to the load.
Mode 4: If the load power is below the user-defined power limit and the SoC of the ultracapacitor is below 25% the battery provides power to the load and no power is transferred through the boost converter to the ultracapacitor. No power is transferred to the ultracapacitor in this mode seeing that the boost converter would be unable to control the transfer of power from the battery to the ultracapacitor seeing that the ultracapacitor's voltage at 25% SoC is below that of the battery. The diode in the boost converter would become forward biased, causing the battery to uncontrollably discharge into the UC, which with its low internal resistance, would result in a very high discharge current through the battery, damaging it. To prevent this from occurring, a metal-oxidesemiconductor field-effect transistor (MOSFET) was placed in series with the input of the boost converter, which is not shown in Figure 2, which was used to connect/disconnect the battery to the boost converter. This mode's power flow is similar to that of mode 2s power flow.
Mode 5: This mode is activated when the load power is higher than the defined power limit for the battery pack. If the SoC of the ultracapacitor is higher than 25% and the SoC of the battery is above 10% the ultracapacitor provides power to the load through the buck converter, whilst the battery provides power to the ultracapacitor at the user-defined power limit.
Mode 6: When the load power is higher than the defined power limit, but the SoC of the ultracapacitor is lower than 25%, i.e., the ultracapacitor is unable to provide power to the load and the batteries are directly connected to the load through the switch. Directly connecting the battery to the load during high power draw is not ideal, and reaching this mode indicates that the user-defined power limit is below the average power draw of the load or the ultracapacitor bank is undersized  Mode 3: If the load power is below the user-defined power limit and the SoC of the ultracapacitor is between 25% and 95%, the battery provides power to both the load and to the ultracapacitor so that the following holds true, P load + P UC ≤ Battery Power Limit (1) where P load is the power drawn by the load and P UC is the power provided to the ultracapacitor by the battery through the boost converter. The battery charges the ultracapacitor to ensure a high SoC of the ultracapacitor so that if the load power drastically increases, the ultracapacitor has sufficient energy to supply power to the load. Mode 4: If the load power is below the user-defined power limit and the SoC of the ultracapacitor is below 25% the battery provides power to the load and no power is transferred through the boost converter to the ultracapacitor. No power is transferred to the ultracapacitor in this mode seeing that the boost converter would be unable to control the transfer of power from the battery to the ultracapacitor seeing that the ultracapacitor's voltage at 25% SoC is below that of the battery. The diode in the boost converter would become forward biased, causing the battery to uncontrollably discharge into the UC, which with its low internal resistance, would result in a very high discharge current through the battery, damaging it. To prevent this from occurring, a metal-oxide-semiconductor field-effect transistor (MOSFET) was placed in series with the input of the boost converter, which is not shown in Figure 2, which was used to connect/disconnect the battery to the boost converter. This mode's power flow is similar to that of mode 2s power flow.
Mode 5: This mode is activated when the load power is higher than the defined power limit for the battery pack. If the SoC of the ultracapacitor is higher than 25% and the SoC of the battery is above 10% the ultracapacitor provides power to the load through the buck converter, whilst the battery provides power to the ultracapacitor at the user-defined power limit.
Mode 6: When the load power is higher than the defined power limit, but the SoC of the ultracapacitor is lower than 25%, i.e., the ultracapacitor is unable to provide power to the load and the batteries are directly connected to the load through the switch. Directly connecting the battery to the load during high power draw is not ideal, and reaching this mode indicates that the user-defined power limit is below the average power draw of the load or the ultracapacitor bank is undersized and is not able to supply power to the load through a series of high power peaks, draining the ultracapacitor bank below 25% before the battery is able to recharge the ultracapacitor bank. Table 1 summarizes the operating states of the battery, the ultracapacitor and the DC/DC converters for each mode as discussed above.

Direct Current/Direct Current (DC/DC) Converter Control
As the reader may note from Figure 2, a buck and a boost converter were used in the HESS topology. The DC/DC converters were designed to operate in discontinuous conduction mode. The relationship between each converter's output power and the applied duty cycle is as follows.
For the boost converter, the derivation of the relationship between the boost converter's output power and the input duty cycle in discontinuous mode is complex; therefore, only the resulting relationship between the input duty cycle and the output current is given here, but the full derivation is available in [39]. For the boost converter in the HESS, since the relationship between V o and V in is relatively constant, the duty cycle (D) can be expressed as a function of the load current for various values of V in /V o [39], where I oB,max is the maximum output current at the boundary position between the continuous and discontinuous-conduction mode. To give the reader a better understanding of the relationship between the duty cycle and the output current at a constant output voltage, the reader is encouraged to view Figures 7-15 in [39]. The figure shows the square root relationship between the duty cycle and the output current for a certain V in /V o ratio.
As the reader may note from the figure and from Equation (2), as the duty cycle increases for a constant V in /V o , the output current, and therefore the output power, increase if the boost converter is operated in discontinuous conduction mode.
Similarly, the buck converter was also designed to operate in discontinuous mode. The relationship between the duty cycle and the output current of the buck converter in discontinuous mode is given in Equation (3), and the derivation of the equation can also be found in [39].
The reader is encouraged to view Figures 7-9 in [39] to view the relationship between the duty cycle and the output current/power for a constant V in /V o as expressed in Equation (3). We can note from Figures 7-9 and Equation (3) that as the duty cycle is increased, the output current and therefore the output power increase. Similar to the boost converter, there is a square root relationship between the duty cycle and the output current/power whilst the buck converter is operated in discontinuous conduction mode.
In order to control both DC/DC converters, fuzzy logic was chosen as a suitable control topology, due to the fact that fuzzy logic does not require a precise mathematical model or transfer function of the system and is tolerant of imprecise data [18]. Fuzzy logic also has been shown to have comparable performance to that of traditional PI or PID controllers [40]. The fuzzy logic control structure that was used in this study is shown in Figure 4. The controller utilises the error and the derivative of the error between the set-point value and the measured value to determine the control action that should take place. The memory block is used to store the outputted duty cycle, whilst the fuzzy logic controller outputs the change in the duty cycle, i.e., if and by how much the duty cycle should increase or decrease.
due to the fact that fuzzy logic does not require a precise mathematical model or transfer function of the system and is tolerant of imprecise data [18]. Fuzzy logic also has been shown to have comparable performance to that of traditional PI or PID controllers [40]. The fuzzy logic control structure that was used in this study is shown in Figure 4. The controller utilises the error and the derivative of the error between the set-point value and the measured value to determine the control action that should take place. The memory block is used to store the outputted duty cycle, whilst the fuzzy logic controller outputs the change in the duty cycle, i.e., if and by how much the duty cycle should increase or decrease.
The fuzzy logic controller outputs the amount at which the duty cycle should increase/decrease. The boost converter is used to control the amount of power that is transferred from the battery to the UC and therefore was operated in a power-controlled mode. The input power flowing through the boost converter was therefore used as the measured value for the fuzzy logic controller controlling the boost converter, with the reference amount of power that should be transferred received from the overhead controller. The output voltage of the buck converter is the measured variable that the fuzzy logic controller controlling the buck converter utilises and it also receives its reference voltage from the overhead controller. The buck converter is used to provide power to the load, but this study utilised a programmable load to emulate realistic load profiles; therefore, the buck converter was operated in a voltage-controlled mode. The programmable load imposed a power profile derived from standard vehicle drive cycles used for vehicle type testing, such as the New York City Cycle (NYCC), which was then scaled to fit within the designed power limits of the DC/DC converters. The output voltage of the buck converter was therefore used as the measured value for the fuzzy logic controller controlling the output voltage of the buck converter. The reference voltage for the buck converter was set to equal the battery's voltage minus the nominal forward voltage of the diode between the battery and switch as shown in Figure 2. This was done to reduce voltage/power spikes when the controller switches between the different operating modes by trying to keep the DC-link voltage relatively constant.
Two input membership functions are required for the two different inputs into the controller. The membership functions are simple curves that define how each input value is mapped to a specific value, or the degree of truth that that value has. The first membership function, as shown in Figure  5, is the error in the set-point and the controlled value. The fuzzy logic controller outputs the amount at which the duty cycle should increase/decrease. The boost converter is used to control the amount of power that is transferred from the battery to the UC and therefore was operated in a power-controlled mode. The input power flowing through the boost converter was therefore used as the measured value for the fuzzy logic controller controlling the boost converter, with the reference amount of power that should be transferred received from the overhead controller. The output voltage of the buck converter is the measured variable that the fuzzy logic controller controlling the buck converter utilises and it also receives its reference voltage from the overhead controller. The buck converter is used to provide power to the load, but this study utilised a programmable load to emulate realistic load profiles; therefore, the buck converter was operated in a voltage-controlled mode.

DC/DC Converter
The programmable load imposed a power profile derived from standard vehicle drive cycles used for vehicle type testing, such as the New York City Cycle (NYCC), which was then scaled to fit within the designed power limits of the DC/DC converters. The output voltage of the buck converter was therefore used as the measured value for the fuzzy logic controller controlling the output voltage of the buck converter. The reference voltage for the buck converter was set to equal the battery's voltage minus the nominal forward voltage of the diode between the battery and switch as shown in Figure 2. This was done to reduce voltage/power spikes when the controller switches between the different operating modes by trying to keep the DC-link voltage relatively constant.
Two input membership functions are required for the two different inputs into the controller. The membership functions are simple curves that define how each input value is mapped to a specific value, or the degree of truth that that value has. The first membership function, as shown in Figure 5, is the error in the set-point and the controlled value. The second membership function, as shown in Figure 6, is the rate of change of the error membership function. This function is used to determine if the error is reduced at a satisfactory rate.
Each membership function has seven functions, which are abbreviated as negative large (NL), negative medium (NM), negative small (NS), zero (Z), positive small (PS), positive medium (PM) and positive large (PL). The fuzzy logic controller only requires one output membership function seeing that it only has one output, which is the change in duty cycle. The output membership function is shown in Figure 7. The second membership function, as shown in Figure 6, is the rate of change of the error membership function. This function is used to determine if the error is reduced at a satisfactory rate. The second membership function, as shown in Figure 6, is the rate of change of the error membership function. This function is used to determine if the error is reduced at a satisfactory rate.
Each membership function has seven functions, which are abbreviated as negative large (NL), negative medium (NM), negative small (NS), zero (Z), positive small (PS), positive medium (PM) and positive large (PL). The fuzzy logic controller only requires one output membership function seeing that it only has one output, which is the change in duty cycle. The output membership function is shown in Figure 7. The fuzzy logic controller only requires one output membership function seeing that it only has one output, which is the change in duty cycle. The output membership function is shown in Figure 7. The second membership function, as shown in Figure 6, is the rate of change of the error membership function. This function is used to determine if the error is reduced at a satisfactory rate.
Each membership function has seven functions, which are abbreviated as negative large (NL), negative medium (NM), negative small (NS), zero (Z), positive small (PS), positive medium (PM) and positive large (PL). The fuzzy logic controller only requires one output membership function seeing that it only has one output, which is the change in duty cycle. The output membership function is shown in Figure 7. functions adjusts the gain and inversely the sensitivity of the input functions. The fuzzy logic rules that were devised are tabulated in Table 2 below. The rules were defined in such a way that the controller not only takes into account the error between the measured value and the reference value, but based on the derivative of the error, the controller determines if the error is decreasing at a sufficient rate and accordingly increases or decreases the duty cycle. The fuzzy logic controller utilised the maximum method for aggregation, whilst the centroid calculation method was used for defuzzification. The Mamdani inference system was used [41].

Experimental Setup
The completed system setup used to experimentally implement and test the active HESS is shown in Figure 8. As shown in the figure, a laptop executing Simulink's Real-Time ® environment is directly connected to the target hardware via a micro-USB cable. The target hardware was the STM 32 Nucleo F767ZI microcontroller from STMicroelectronics. The characteristics of the batteries and the UCs that were used for the experimental setup are presented below in Table 3.  Two Panasonic NCR batteries were used in series, resulting in a battery pack with a nominal voltage of 7.2 V and a rated capacity of 3200 mAh. Six of the Maxwell BCAP3000 cells were used in series to create a UC bank with a maximum voltage rating of 17.1 V and a capacitance of 500 F. The UC bank made use of a passive balancing circuit to ensure that all cell voltages were approximately equal, preventing damage that could occur due to cell voltage imbalances.
The B&K Precision 8602 programmable load was used to practically emulate the load profiles. The load profiles that were used were developed from the NYCC, ECE 15 and the worldwide harmonized light-duty vehicles test cycles (WLTC) Class 2. The work done by Sciarretta et al. [9] was used to calculate the resultant power profile that would be required to operate a vehicle according to the speed profiles of the above-mentioned drive cycles.
In order to reduce the overall system complexity, the buck converter was designed with a 100 W power limit, whilst the boost converter had a 25 W power limit. The power profiles that were created were thus adjusted so that the maximum power draw from each profile is below the designed power limit of the buck converter. The size of the UC bank also does not have a strong influence on the performance of the active HESS, seeing that the SoC of the UC should be the same at the start and end of each load cycle. The UC bank should be sufficiently sized that it is able to store enough energy to provide power when the controller operates the system in mode 5 so that the SoC of the UC does not drop below 25% during any point in the load cycle. A capacitor bank with a lower capacitance could have been used, but this size UC bank was used seeing that it was already available in the research laboratory. Two Panasonic NCR batteries were used in series, resulting in a battery pack with a nominal voltage of 7.2 V and a rated capacity of 3200 mAh. Six of the Maxwell BCAP3000 cells were used in series to create a UC bank with a maximum voltage rating of 17.1 V and a capacitance of 500 F. The UC bank made use of a passive balancing circuit to ensure that all cell voltages were approximately equal, preventing damage that could occur due to cell voltage imbalances.
The B&K Precision 8602 programmable load was used to practically emulate the load profiles. The load profiles that were used were developed from the NYCC, ECE 15 and the worldwide harmonized light-duty vehicles test cycles (WLTC) Class 2. The work done by Sciarretta et al. [9] was used to calculate the resultant power profile that would be required to operate a vehicle according to the speed profiles of the above-mentioned drive cycles.
In order to reduce the overall system complexity, the buck converter was designed with a 100 W power limit, whilst the boost converter had a 25 W power limit. The power profiles that were created were thus adjusted so that the maximum power draw from each profile is below the designed power limit of the buck converter. The size of the UC bank also does not have a strong influence on the performance of the active HESS, seeing that the SoC of the UC should be the same at the start and end of each load cycle. The UC bank should be sufficiently sized that it is able to store enough energy to provide power when the controller operates the system in mode 5 so that the SoC of the UC does not drop below 25% during any point in the load cycle. A capacitor bank with a lower capacitance could have been used, but this size UC bank was used seeing that it was already available in the research laboratory.
The integrated PCB used to interconnect all the different functional units is shown below in Figure 9. The buck converter, boost converter, current and voltage sensors, MOSFET drivers, voltage regulators and the low-pass filter array are housed on the PCB. The PCB uses four phoenix screw terminals to interface with the programmable load, the battery, the ultracapacitor and to receive power from the 15 V bench power supply. The bench power supply is used to provide power to the MOSFET drivers as well as the LM 7805 voltage regulator which supplies a regulated 5 V output that is needed to power the shunt current monitor ICs. The IRF3205 MOSFET was used as the switch that connects the battery to the programmable load. The integrated PCB used to interconnect all the different functional units is shown below in Figure 9. The buck converter, boost converter, current and voltage sensors, MOSFET drivers, voltage regulators and the low-pass filter array are housed on the PCB. The PCB uses four phoenix screw terminals to interface with the programmable load, the battery, the ultracapacitor and to receive power from the 15 V bench power supply. The bench power supply is used to provide power to the MOSFET drivers as well as the LM 7805 voltage regulator which supplies a regulated 5 V output that is needed to power the shunt current monitor ICs. The IRF3205 MOSFET was used as the switch that connects the battery to the programmable load. A summary of the component values that were used for the boost and buck converter is tabulated in Tables 4 and 5, respectively. A switching frequency of 10 kHz was applied to both DC/DC converters.  A summary of the component values that were used for the boost and buck converter is tabulated in Tables 4 and 5, respectively. A switching frequency of 10 kHz was applied to both DC/DC converters.   [38] environment was used to deploy the overhead controller and the two fuzzy logic control units in the Nucleo F767ZI microcontroller. The Simulink ® model used to experimentally implement the active HESS is shown in Figure 10. The sensor input blocks utilize the add-on package for the Nucleo F767ZI in Simulink ® to utilize the analog-to-digital converters in the Nucleo. The look-up tables that are connected to the output of the analog-to-digital blocks are used to convert the measured values to the actual value, for example, to a current or voltage value.   [38] environment was used to deploy the overhead controller and the two fuzzy logic control units in the Nucleo F767ZI microcontroller. The Simulink ® model used to experimentally implement the active HESS is shown in Figure 10. The sensor input blocks utilize the add-on package for the Nucleo F767ZI in Simulink ® to utilize the analog-to-digital converters in the Nucleo. The look-up tables that are connected to the output of the analog-to-digital blocks are used to convert the measured values to the actual value, for example, to a current or voltage value. The fuzzy logic controllers as shown in the red blocks control the duty cycle of the pulse width modulated (PWM) signal applied to the buck and boost converter. The overhead controller outputs the reference voltage for the buck converter and the reference power for the boost converter. The buck and boost converter enable output ports in the overhead controller are used to drive the output PWM signal to zero to disenable the buck and boost converters, depending on the operating mode.
The time block was utilised to implement hysteresis control to prevent the system from oscillating between the different system operating modes. A hysteresis delay of 200 ms was implemented before the system was allowed to switch between operating modes. This delay was found practically to be sufficient and prevented the system from oscillating between operating modes. The fuzzy logic controllers as shown in the red blocks control the duty cycle of the pulse width modulated (PWM) signal applied to the buck and boost converter. The overhead controller outputs the reference voltage for the buck converter and the reference power for the boost converter. The buck and boost converter enable output ports in the overhead controller are used to drive the output PWM signal to zero to disenable the buck and boost converters, depending on the operating mode.

Boost converter enable/disable Sensor inputs Fuzzy logic controller controlling the boost converter
The time block was utilised to implement hysteresis control to prevent the system from oscillating between the different system operating modes. A hysteresis delay of 200 ms was implemented before the system was allowed to switch between operating modes. This delay was found practically to be sufficient and prevented the system from oscillating between operating modes.
The next section briefly discusses the performance of the fuzzy logic controllers controlling the two DC/DC converters as well as the overall system performance. The performance of the fuzzy logic controllers was verified by using a step change in the reference input for each controller and observing the response of the controlled system.

Fuzzy Logic Controllers
Seeing that the buck converter was operated in a voltage-controlled mode in which the reference voltage is equal to the battery voltage minus the forward-voltage of the diode, the controller was set to keep the output voltage constant whilst a step change in the load power was induced to test its performance. Figure 11 shows the performance of the fuzzy logic controller whilst the reference output voltage was set to 7 V. The figure shows how the controller alters the applied duty cycle as the power drawn from the buck converter is increased. The next section briefly discusses the performance of the fuzzy logic controllers controlling the two DC/DC converters as well as the overall system performance. The performance of the fuzzy logic controllers was verified by using a step change in the reference input for each controller and observing the response of the controlled system.

Fuzzy Logic Controllers
Seeing that the buck converter was operated in a voltage-controlled mode in which the reference voltage is equal to the battery voltage minus the forward-voltage of the diode, the controller was set to keep the output voltage constant whilst a step change in the load power was induced to test its performance. Figure 11 shows the performance of the fuzzy logic controller whilst the reference output voltage was set to 7 V. The figure shows how the controller alters the applied duty cycle as the power drawn from the buck converter is increased. From the figure we can note that the controller was able to control the output voltage of the buck converter as the power drawn from the buck converter increased. To supply the required power at the required output voltage, the output current needs to increase. Therefore, in accordance with Equation (3), the applied duty cycle (D) needs to be increased.
We can, however, note from the timescale that the output voltage has a somewhat slow slew rate whilst the output voltage returns to the reference voltage. This was experimentally found to be due to the limited sample time of the microcontroller when used as an external hardware target in Simulink ® . It was experimentally determined that the sample rate of the microcontroller was about 2.5 ms whilst connected as an external target. This slow sample rate degraded the performance of the From the figure we can note that the controller was able to control the output voltage of the buck converter as the power drawn from the buck converter increased. To supply the required power at the required output voltage, the output current needs to increase. Therefore, in accordance with Equation (3), the applied duty cycle (D) needs to be increased.
We can, however, note from the timescale that the output voltage has a somewhat slow slew rate whilst the output voltage returns to the reference voltage. This was experimentally found to be due to the limited sample time of the microcontroller when used as an external hardware target in Simulink ® . It was experimentally determined that the sample rate of the microcontroller was about 2.5 ms whilst connected as an external target. This slow sample rate degraded the performance of the controller, resulting in the slow slew rate as the controller returned to the reference voltage. Nonetheless the fuzzy logic controller's performance was adequate to be used in the active HESS.
The performance of the fuzzy logic controller controlling the boost converter was also experimentally verified by step changing the reference power that the boost converter had to provide. The boost converter was used to control the amount of power that is transferred from the battery to the UC and was therefore operated in a power-controlled mode. Figure 12 shows the response in the output power of the boost converter as the reference power was stepped. The reader may note that the duty cycle decreases in the figure as the power increases, which is the opposite of that described in Section 2.2. This is due to the fact that the duty cycle that was logged during testing was the duty cycle outputted to the input of the MOSFET driver (IXDI614) instead of the resultant duty cycle applied to the MOSFET in the boost converter. Nevertheless, taking into account that the shown duty cycle is inversely applied to the boost converter, an increase in the duty cycle results in an increased output power, as described in Section 2.2.
World Electric Vehicle Journal 2019, 10, 14 of 23 controller, resulting in the slow slew rate as the controller returned to the reference voltage. Nonetheless the fuzzy logic controller's performance was adequate to be used in the active HESS. The performance of the fuzzy logic controller controlling the boost converter was also experimentally verified by step changing the reference power that the boost converter had to provide. The boost converter was used to control the amount of power that is transferred from the battery to the UC and was therefore operated in a power-controlled mode. Figure 12 shows the response in the output power of the boost converter as the reference power was stepped. The reader may note that the duty cycle decreases in the figure as the power increases, which is the opposite of that described in Section 2.2. This is due to the fact that the duty cycle that was logged during testing was the duty cycle outputted to the input of the MOSFET driver (IXDI614) instead of the resultant duty cycle applied to the MOSFET in the boost converter. Nevertheless, taking into account that the shown duty cycle is inversely applied to the boost converter, an increase in the duty cycle results in an increased output power, as described in Section 2.2.
The rise time for the measured power as the reference power is stepped at t = 30 s is approximately 110 ms with 2.4% overshoot. The fuzzy logic controller's performance was deemed to be sufficient to control the power transferred from the battery to UC.

Overall System Performance
This section discusses the performance of the overall active HESS system and describes how the system operated. Four different load profiles were used to test the performance of the active HESS. The first profile that was used was the pulse train load profile, which is used to more clearly illustrate how the active topology manages the power flow between the components in the different operating modes.

Pulse Train Load
The pulsed load profile that was used had an amplitude of 38 W and a duty cycle of 38%. The user-defined power limit was set to 20.5 W, as this was experimentally found to be sufficient so that the SoC of the UC was the same at the start and end of the load cycle. The rise time for the measured power as the reference power is stepped at t = 30 s is approximately 110 ms with 2.4% overshoot. The fuzzy logic controller's performance was deemed to be sufficient to control the power transferred from the battery to UC.

Overall System Performance
This section discusses the performance of the overall active HESS system and describes how the system operated. Four different load profiles were used to test the performance of the active HESS. The first profile that was used was the pulse train load profile, which is used to more clearly illustrate how the active topology manages the power flow between the components in the different operating modes.

Pulse Train Load
The pulsed load profile that was used had an amplitude of 38 W and a duty cycle of 38%. The user-defined power limit was set to 20.5 W, as this was experimentally found to be sufficient so that the SoC of the UC was the same at the start and end of the load cycle.
We can firstly note from Figure 13 that the designed system is able to control the power flow throughout the system and limits the power provided by the battery to the user-defined limit. We can also note how the overhead controller switches between the different modes of operation, depending on the load's power draw. As shown by the red portion, when the load's power draw is above the defined limit, the system switches to mode 5 in which the UC provides power through the buck converter to the load. The boost converter transfers power from the battery to the UC at the defined power limit. This power limit was required to ensure that the SoC of the UC was the same at the start and end of the cycle, which would allow the system to provide power to the load profile until the battery is depleted. No power is provided through the switch to the load. We can firstly note from Figure 13 that the designed system is able to control the power flow throughout the system and limits the power provided by the battery to the user-defined limit. We can also note how the overhead controller switches between the different modes of operation, depending on the load's power draw. As shown by the red portion, when the load's power draw is above the defined limit, the system switches to mode 5 in which the UC provides power through the buck converter to the load. The boost converter transfers power from the battery to the UC at the defined power limit. This power limit was required to ensure that the SoC of the UC was the same at the start and end of the cycle, which would allow the system to provide power to the load profile until the battery is depleted. No power is provided through the switch to the load.
When the load power drops below the defined limit, as shown in the blue portion, the system switches to operating mode 3 in which the battery provides power directly to the load. In this mode, the battery provides power to the load and if the SoC of the UC is between 25% and 95%, the battery charges the UC so that the total power drawn from the battery is equal to the power limit. The reader may note that the power provided by the UC to the load has a high peak as pointed out by point A in Figure 13a. When the load power drops below the defined limit, as shown in the blue portion, the system switches to operating mode 3 in which the battery provides power directly to the load. In this mode, the battery provides power to the load and if the SoC of the UC is between 25% and 95%, the battery charges the UC so that the total power drawn from the battery is equal to the power limit. The reader may note that the power provided by the UC to the load has a high peak as pointed out by point A in Figure 13a. This is the result of the overshoot caused by the fuzzy logic controller controlling the buck converter. The buck converter's duty cycle is set to zero during mode 3 when no power is to be transferred from the UC through the buck converter to the load. When the system then switches to mode 5, the fuzzy logic controller changes the duty cycle so that the output voltage of the buck converter is equal to that of the battery. This large step-change results in the overshoot as observed in Figure 13a. The reader may also note that the summation of the switch's power in Figure 13b and the boost converter's power in Figure 13c does not exactly match the load's power draw exactly. This is due to the losses associated with both the boost converter and the switch.

NYCC Drive Cycle
The power profile developed from the NYCC drive cycle was also used to test the performance of the practically implemented system and is shown in Figure 14. The user-defined power limit was set to 8.4 W. This power limit was chosen such that after the duration of the drive cycle, which is 600 s, the SoC of the UC is at the same level at the start and the end of the profile.
World Electric Vehicle Journal 2019, 10, 16 of 23 This is the result of the overshoot caused by the fuzzy logic controller controlling the buck converter. The buck converter's duty cycle is set to zero during mode 3 when no power is to be transferred from the UC through the buck converter to the load. When the system then switches to mode 5, the fuzzy logic controller changes the duty cycle so that the output voltage of the buck converter is equal to that of the battery. This large step-change results in the overshoot as observed in Figure 13a. The reader may also note that the summation of the switch's power in Figure 13b and the boost converter's power in Figure 13c does not exactly match the load's power draw exactly. This is due to the losses associated with both the boost converter and the switch.

NYCC Drive Cycle
The power profile developed from the NYCC drive cycle was also used to test the performance of the practically implemented system and is shown in Figure 14. The user-defined power limit was set to 8.4 W. This power limit was chosen such that after the duration of the drive cycle, which is 600 s, the SoC of the UC is at the same level at the start and the end of the profile. The active HESS drastically reduces the peak power drawn from the battery. The system actively limits the power drawn from the battery by switching between the different operating modes. The blue portion shows when the system operates in mode 3 seeing that the load power is below the defined power limit and the SoC of the battery and UC are in nominal states. The red portion shows when the system operates in mode 5 when the load's power draw is above the defined power limit. The active HESS drastically reduces the peak power drawn from the battery. The system actively limits the power drawn from the battery by switching between the different operating modes. The blue portion shows when the system operates in mode 3 seeing that the load power is below the defined power limit and the SoC of the battery and UC are in nominal states. The red portion shows when the system operates in mode 5 when the load's power draw is above the defined power limit.

Economic Commision for Europe (ECE) 15 and Worldwide Harmonized Light-Duty Vehicles Test Cycles (WLTC) Class 2 Drive Cycle
The ECE 15 drive cycle was also experimentally used to test the performance of the active topology. The results for this test are shown in Figure 15. The active HESS reduced the peak-power drawn from the battery by 83.88%. The red portion in the figure shows when the system operates in mode 5 whilst the blue portion shows when the system operates in mode 3. The power limit for the active topology was set to 11.9 W. This power limit was chosen such that the SoC of the UC was the same at the start and end of the cycle. The power transferred through the switch and the boost converter is also shown in the figure. The ECE 15 drive cycle was also experimentally used to test the performance of the active topology. The results for this test are shown in Figure 15. The active HESS reduced the peak-power drawn from the battery by 83.88%. The red portion in the figure shows when the system operates in mode 5 whilst the blue portion shows when the system operates in mode 3. The power limit for the active topology was set to 11.9 W. This power limit was chosen such that the SoC of the UC was the same at the start and end of the cycle. The power transferred through the switch and the boost converter is also shown in the figure. The WLTC class 2 drive cycle was also experimentally used to test the performance of the active topology. The results for this test are shown in Figure 16. The peak-power drawn from the battery was reduced by 78.83% compared to the battery-only system. Figure 16 shows the experimental results after the WLTC class 2 drive cycle was tested. A power limit of 13.8 W was required to ensure that the SoC of the UC was the same at the start and the end of the cycle. The SoC of the UC during this profile is also shown in the figure. We can see that the SoC of the UC is at the same level at the end of the cycle as it was at the beginning of the cycle. When the system operates in mode 3, we can see that the SOC of the UC increases, seeing that the battery charges the UC. In mode 5, the SOC of the UC decreases as it provides power to the load through the buck converter. The WLTC class 2 drive cycle was also experimentally used to test the performance of the active topology. The results for this test are shown in Figure 16. The peak-power drawn from the battery was reduced by 78.83% compared to the battery-only system. Figure 16 shows the experimental results after the WLTC class 2 drive cycle was tested. A power limit of 13.8 W was required to ensure that the SoC of the UC was the same at the start and the end of the cycle. The SoC of the UC during this profile is also shown in the figure. We can see that the SoC of the UC is at the same level at the end of the cycle as it was at the beginning of the cycle. When the system operates in mode 3, we can see that the SOC of the UC increases, seeing that the battery charges the UC. In mode 5, the SOC of the UC decreases as it provides power to the load through the buck converter.

NYCC Drive Cycle Retested
In order to illustrate the control of power through the system when the power limit was set to a higher value than the average power for the specific load profile, the NYCC load profile was retested.
The results of this test are shown in Figure 17.
The defined power limit was set to 11.6 W, whilst the average power draw for this profile is only 8.4 W. As we can note from the graph in Figure 17 showing the SoC of the UC, the controller starts in mode 3, because the load power is below the limit, but the UC is not fully charged, so the UC is charged until a SoC of 97% is reached. When the load power increases above the defined limit, the controller switches to mode 5 as shown by the red portion of the figure.

NYCC Drive Cycle Retested
In order to illustrate the control of power through the system when the power limit was set to a higher value than the average power for the specific load profile, the NYCC load profile was retested. The results of this test are shown in Figure 17. The controller switches back to mode 3 and charges the UC and once the SoC of the UC reaches 97%, the controller switches to mode 2 shown by the blue portion in the figure. In this mode the battery is directly connected to the load, whilst no power is transferred through the boost converter to the UC. Hysteresis control was implemented to prevent the mode controller from oscillating between modes 2 and 3 when the SoC of the UC reaches a certain level. The upper limit for the SoC was set to 97% whilst the lower limit was set to 93%. Figure 18 is used to show that the controller is able to switch from the normal operating modes, which would be modes 3 and 5, to mode 4 and 6, in which the battery is directly connected to the load when the UC is depleted and its SoC is below 30%. We can see from the load profile that the battery provides all the power to the load through the switch in these modes, whilst no power is transferred from the UC. The only two operating modes that are not shown in this article are modes 0 and 1. Mode 0 simply disconnects both the UC and the battery, seeing that both devices are The defined power limit was set to 11.6 W, whilst the average power draw for this profile is only 8.4 W. As we can note from the graph in Figure 17 showing the SoC of the UC, the controller starts in mode 3, because the load power is below the limit, but the UC is not fully charged, so the UC is charged until a SoC of 97% is reached. When the load power increases above the defined limit, the controller switches to mode 5 as shown by the red portion of the figure.

Mode 4 and 6 Testing
The controller switches back to mode 3 and charges the UC and once the SoC of the UC reaches 97%, the controller switches to mode 2 shown by the blue portion in the figure. In this mode the battery is directly connected to the load, whilst no power is transferred through the boost converter to the UC. Hysteresis control was implemented to prevent the mode controller from oscillating between modes 2 and 3 when the SoC of the UC reaches a certain level. The upper limit for the SoC was set to 97% whilst the lower limit was set to 93%. Figure 18 is used to show that the controller is able to switch from the normal operating modes, which would be modes 3 and 5, to mode 4 and 6, in which the battery is directly connected to the load when the UC is depleted and its SoC is below 30%. We can see from the load profile that the battery provides all the power to the load through the switch in these modes, whilst no power is transferred from the UC. The only two operating modes that are not shown in this article are modes 0 and 1. Mode 0 simply disconnects both the UC and the battery, seeing that both devices are depleted. Mode 1 provides power to the load through the buck converter to the load from the UC when the battery is depleted. Once the UC is also depleted, this system will enter mode 0.

Mode 4 and 6 Testing
World Electric Vehicle Journal 2019, 10, 20 of 23 depleted. Mode 1 provides power to the load through the buck converter to the load from the UC when the battery is depleted. Once the UC is also depleted, this system will enter mode 0.

Discussion
From the experimental results it is clear that the developed active HESS was able to experimentally limit the power drawn from the battery. The power drawn from the battery for each load profile was equal to the average power draw of that load profile plus the losses associated with the DC/DC converters and the switch. Table 6 compares the peak-power drawn from the battery-only system to that of the active topology. Figure 19 graphically illustrates the peak power values as tabulated in Table 6 for each drive cycle.

Discussion
From the experimental results it is clear that the developed active HESS was able to experimentally limit the power drawn from the battery. The power drawn from the battery for each load profile was equal to the average power draw of that load profile plus the losses associated with the DC/DC converters and the switch. Table 6 compares the peak-power drawn from the battery-only system to that of the active topology. Figure 19 graphically illustrates the peak power values as tabulated in Table 6 for each drive cycle. As we can note from Table 6 and Figure 19, the active topology drastically reduces the peak power drawn from the battery. For this system to be practically useful in an EV, one would require the use of a predictive control scheme to determine what the defined power limit should be for the system. This system provides a base for future work to be conducted, seeing that the system provides a topology that is able to control the energy flow between the battery and the UC and also provides a method of directly connecting battery to the load. Figure 19. Comparison between peak power drawn from battery-only system and active HESS.

Conclusions
In this paper an active HESS that utilises fuzzy logic control to control the DC/DC converters in the topology is presented. The topology makes use of two unidirectional DC/DC converters as well as a switch to limit the power drawn from the battery and to isolate the battery from the power fluctuations/spikes. The system is able to actively limit the power drawn from the battery to a user defined power limit. The experimentally implemented system showed firstly that the fuzzy logic controllers were able to adequately control the DC/DC converters and secondly that the overhead controller was able to control the energy flow through the system. The system limits the maximum amount of power that is drawn from the battery, which reduces the required power rating of the battery, allowing one to utilise batteries optimized for energy density. During testing, the user-defined power limit was set to the average power draw of the load profile plus the losses associated with the DC/DC converters, so that the UC's SoC was the same at the start and end of the cycle. The system reduced the peak power that the battery had to deliver by 78.83% for the WLTC class 2 drive cycle, by 83.88% for the ECE 15 drive cycle and by 90.12% for the NYCC drive cycle.
Future work could utilise this system as a base and could use advanced predictive control algorithms to determine the power limit, which would dynamically change depending on the route profile. Some of the algorithms that, for example, could be considered are the dynamic programming optimisation algorithm (DP), an artificial neural network working in conjunction with Pontryagin's Minimum Principle (PMP) or a driving pattern recognition (DPR)-based power management strategy, to name a few. Future work could also utilise bidirectional DC/DC converters in order for the system to also implement a control strategy to absorb the power during regenerative braking.  As we can note from Table 6 and Figure 19, the active topology drastically reduces the peak power drawn from the battery. For this system to be practically useful in an EV, one would require the use of a predictive control scheme to determine what the defined power limit should be for the system. This system provides a base for future work to be conducted, seeing that the system provides a topology that is able to control the energy flow between the battery and the UC and also provides a method of directly connecting battery to the load.

Conclusions
In this paper an active HESS that utilises fuzzy logic control to control the DC/DC converters in the topology is presented. The topology makes use of two unidirectional DC/DC converters as well as a switch to limit the power drawn from the battery and to isolate the battery from the power fluctuations/spikes. The system is able to actively limit the power drawn from the battery to a user defined power limit. The experimentally implemented system showed firstly that the fuzzy logic controllers were able to adequately control the DC/DC converters and secondly that the overhead controller was able to control the energy flow through the system. The system limits the maximum amount of power that is drawn from the battery, which reduces the required power rating of the battery, allowing one to utilise batteries optimized for energy density. During testing, the user-defined power limit was set to the average power draw of the load profile plus the losses associated with the DC/DC converters, so that the UC's SoC was the same at the start and end of the cycle. The system reduced the peak power that the battery had to deliver by 78.83% for the WLTC class 2 drive cycle, by 83.88% for the ECE 15 drive cycle and by 90.12% for the NYCC drive cycle.
Future work could utilise this system as a base and could use advanced predictive control algorithms to determine the power limit, which would dynamically change depending on the route profile. Some of the algorithms that, for example, could be considered are the dynamic programming optimisation algorithm (DP), an artificial neural network working in conjunction with Pontryagin's Minimum Principle (PMP) or a driving pattern recognition (DPR)-based power management strategy, to name a few. Future work could also utilise bidirectional DC/DC converters in order for the system to also implement a control strategy to absorb the power during regenerative braking.