UofT Hyperloop Team - Energy Systems
A power system designed to provide power for the electric motor and other electronic control systems on board the UTHT Hyperloop Pod
An arduino based BMS system
We designed a custom Arduino based Battery Management System (BMS) to monitor our 300V Lithium Ion battery pack. This allowed us to forgo having to buy an expensive battery management system solution which can cost upwards of $1000+ for our system of 70S4P 18650 cells. Our high voltage battery pack needs to be able to deliver 300V+ at 60-75Amps, to provide a whopping 22Kw!
Our solution provides the full BMS protection & monitoring system a more expensive system would provide at a fraction of the price. It provides:
Cell Balancing
Over-discharge protection
Over-charge protection
Over-temp and under-temp cell protection
Real-time cell temperature monitoring
Overcurrent protection
Undercurrent protection
State of Charge monitoring (fuel gage)
Figure 1: Block Diagram of HV Battery Protection Circuit
Initial Designs & Block Diagrams
Wo-ah there's a lot going on! Yes, a lot of these components only play support roles, but are ultimately integral to the safe operation of this battery pack. Since we will be draining them at very high currents (60A ++), good thermal monitoring and control is non-negotiable.
The main components which provide safety and control of the battery are the BMS and Arduino controller.
The BMS is not a fully fledged protection board, and lacks a lot of features we need. We obtain these features by using an Arduino controller. A subsequent slideshow emphasis the need for this Arduino alongside the BMS. The bridged rectifier and buck converter are used to provide power to the Arduino, ensuring we have temperature monitoring and control whenever there is current flow from or too the battery.
This final design was only achieved after several iterations. I can only wish to have come up with this right off the bat.
Protection = BMS + Arduino
The diagrams on the right illustrate how the combination of the 2 systems gives us a full monitoring system.
The BMS is a cheaper alternative to fully fledged protection circuits, but lacks some key features such as temperature monitoring, temperature control & SOC monitoring. We use the Arduino to fill in the gaps missing in the BMSs feature set.
The following presentation provides more detail about these design choices.
Problem Description & Solution Generation
Powering the Arduino
Since the BMS we use has a common port, the same port will be used for charging and discharging, which means the current going to and from the battery will have opposing directions when charging or discharging. This poses problems when trying to use this circuit to power the Arduino, which only accepts DC current. This is illustrated from the comparison between current flows in the Discharge and Charge conditions.
Circuit Simulation in Ni-Multisim
What happens is that now the Arduino will have to accept power from an essentially "AC" source. To solve this problem, we utilized a full-wave bridged rectifier, typically used for conversion of AC power to DC power. To confirm the viability of this design without access to a lab and components, a simulation was made in Ni-Multisim.
As you can see from the simulation results, the voltage received by the Arduino (blue) has a constant polarity and is unaffected by the switching in the battery current (green).
Simulation Results - Blue is Arduino Power
Here is a simulation of the system embedded right into the website. Feel free to try it out for yourself. By controlling the switch S1, we can simulate weather the system is "charging" or "discharging". It is crucial that the power to the Arduino (Blue) maintains a constant polarity regardless of the direction of current flow in the external circuit (Green).
Switch Realization & Arduino Control
The block named "bi-dir switch" refers to a bi-directional switch. As you can see from the diagram below, we can use a bidirectional switch composed of 2 power MOSFETS placed back to back in series. We use a 3rd logic level MOSFET to control both of the power MOSFETS from the Arduino. This design was only achieved after several iterations of switch realization and extensive research as documented by the image gallery on the right.
Diagram of Bi-Directional Switch
PCB Designs & 3D Models
The designs and implementation are still a work in progress. I have made them in EasyEDA, but it is not that great and there are some missing parts that I need. As you can see, the bi-directional switch and bridged rectifier are missing. I am currently working on re-designing the system in Altium. Stay tuned for that.
The PCB Schematic up right now also does not have the best wiring, and I am currently learning of best practices to make PCB trace widths.
Diagram of High Voltage BMS PCB 3D Model
Diagram of High Voltage BMS PCB Schematic
I would like to talk more about this BMS system that we have designed, however it is UTHT property and I don't want to just freely give it out. If you are interested or would like to learn more about it, please contact me and we can have a chat!