...
BLDC Motors and Motor Controllers
ELECTROMAGNETS PULSED IN A SPECIFIC WAY TO MAKE A ROTOR SPIN
put power in = more torque take power out = slow down
Precharge Controllers
Our motor controllers contain large capacitors in their HV input circuit, requiring precharge and discharge circuits to safely charge and discharge the capacitors.
The idea behind a precharge circuit is that when a capacitor is connected to a DC source, the capacitor starts charging with a huge inrush current that decays exponentially to a more reasonable amount. Since we use HV relays to connect the motor controllers to the main HV bus, the combination of high voltage and high current can cause arcing to occur within the relay, damaging the contacts and possibly welding them together. A precharge circuit uses a power resistor to limit the maximum current until the capacitor is charged to around 95% of the main HV bus voltage before closing the HV relay. This prevents the relay from being damaged and keeps the system safe.
When we want to turn the car off, the capacitors present in our motor controllers continue to retain their charge. This is a major shock hazard, so we employ the use of a discharge circuit that essentially places a power resistor across the capacitor, discharging it to a safe voltage.
For MSXII, we've designed an analog precharge/discharge controller that handles motor controller precharge and discharge automatically. The controller expects a 12V input that is its sole power source and represents whether the motor controllers should be charged or discharged. When unpowered, it enters the discharge state so any faults will result in immediate isolation and discharge the motor controllers to a safe working voltage.
Motor Controller Interface
As one of the few off-the-shelf components in our electrical system, our motor controllers define a high-level CAN protocol to use for controlling them. Unfortunately, their protocol does not work with our defined protocol, and so we require a motor controller interface board that translates our protocol into their drive commands.
This also allows us to isolate the motor controllers on their own CAN bus, preventing them from interfering with our main system CAN bus. We can also operate the motor CAN bus at a different network speed and implement dedicated control algorithms.
Battery
Our main HV battery pack buffers energy from the solar array and powers the motors. We build our own packs using hundreds of lithium-ion cells. Currently, we're using lithium nickel manganese cobalt oxide (NMC) 18650s, which give us the best combination of energy density, maximum discharge rate, and price. 18650 is just a term for a cylindrical cell that measures around 18.6mm x 65mm. Note that there are
In order to assemble our pack, we purchase individual 18650 cells. We use Panasonic NCR18650Bs, which have a nominal voltage of 3.7V and a capacity of 3400mAh. Then, we assemble these cells in parallel to form modules or strings. Putting cells in parallel increases the capacity and maximum discharge rate of the assembled module, but each module still has a nominal 3.7V. To raise the voltage to our operating voltage, we place modules in series to form the bare battery pack. These assembled packs are normally denoted by the number of cells in series and parallel. For example, our pack in MSXII is designed to contain 1296 cells with 36 cells per module and 36 modules in series. This is referred to as a 36s36p packThe operating principle behind any electric motor is the use of electromagnets to attract or repel permanent magnets in such a way that an axle spins. A brushless DC motor relies on electronically controlled phases to switch alternating windings of the motor, removing the need for a commutator. For a decent explanation on how a BLDC works, see this video. This results in a high-efficiency, reliable motor that just requires a separate controller to drive. Although the basic idea is relatively simple, motor controllers like the ones we use can be extremely complex, supporting both sensor and sensorless drive modes, built-in buck and boost converters, and DSP/PID algorithms for speed control.
In addition to the ability to cause the motor to spin by providing power to it, we can use it as a generator to slow the car down. By converting the kinetic energy of the rotating wheel to electrical energy through the reversal of current in the motor, we can recover some energy and charge our battery pack. This is known as regenerative braking, and it's a bit more efficient than traditional friction-based mechanical braking. This is the secondary source of power for our battery pack, but we need to be very careful with how much power we recover from regenerative braking so we don't damage our pack.
Precharge Controllers
Our motor controllers contain large capacitors in their HV input circuit, requiring precharge and discharge circuits to safely charge and discharge the capacitors.
The idea behind a precharge circuit is that when a capacitor is connected to a DC source, the capacitor starts charging with a huge inrush current that decays exponentially to a more reasonable amount. Since we use HV relays to connect the motor controllers to the main HV bus, the combination of high voltage and high current can cause arcing to occur within the relay, damaging the contacts and possibly welding them together. A precharge circuit uses a power resistor to limit the maximum current until the capacitor is charged to around 95% of the main HV bus voltage before closing the HV relay. This prevents the relay from being damaged and keeps the system safe.
When we want to turn the car off, the capacitors present in our motor controllers continue to retain their charge. This is a major shock hazard, so we employ the use of a discharge circuit that essentially places a power resistor across the capacitor, discharging it to a safe voltage.
For MSXII, we've designed an analog precharge/discharge controller that handles motor controller precharge and discharge automatically. The controller expects a 12V input that is its sole power source and represents whether the motor controllers should be charged or discharged. When unpowered, it enters the discharge state so any faults will result in immediate isolation and discharge the motor controllers to a safe working voltage.
Motor Controller Interface
As one of the few off-the-shelf components in our electrical system, our motor controllers define a high-level CAN protocol to use for controlling them. Unfortunately, their protocol does not work with our defined protocol, and so we require a motor controller interface board that translates our protocol into their drive commands.
This also allows us to isolate the motor controllers on their own CAN bus, preventing them from interfering with our main system CAN bus. We can also operate the motor CAN bus at a different network speed and implement dedicated control algorithms.
Battery
Our main HV battery pack buffers energy from the solar array and powers the motors. We build our own packs using hundreds of lithium-ion cells. Currently, we're using lithium nickel manganese cobalt oxide (NMC) 18650s, which give us the best combination of energy density, maximum discharge rate, and price. 18650 is just a term for a cylindrical cell that measures around 18.6mm x 65mm.
In order to assemble our pack, we purchase individual 18650 cells. We use Panasonic NCR18650Bs, which have a nominal voltage of 3.7V and a capacity of 3400mAh. Then, we assemble these cells in parallel to form modules or strings. Putting cells in parallel increases the capacity and maximum discharge rate of the assembled module, but each module still has a nominal 3.7V. To raise the voltage to our operating voltage, we place modules in series to form the bare battery pack. These assembled packs are normally denoted by the number of cells in series and parallel. For example, our pack in MSXII is designed to contain 1296 cells with 36 cells per module and 36 modules in series. This is referred to as a 36s36p pack. Note that it is critical that cells of the same capacity and chemistry are used, and that all modules contain the same number of cells in parallel. We want all cells to experience the same load, and the overall performance of the pack is only as good as that of its weakest cell.
When building our pack, we need to ensure that cells are balanced and matched. Matched cells refer to those which exhibit the same characteristics such as internal resistance and capacity. Cells are balanced when they are at the same voltage. When cells are connected in parallel, they automatically self-balance since the parallel connection keeps them all at the same voltage and always allows charge to be moved between them. However, when they are in series, if improperly matched or unbalanced, some cells become overstressed, diminishing their capacity and limiting the overall performance of the pack. To combat this, there are a number of cell balancing strategies.
- Passive balancing: Excess energy is removed from cells with the highest charge through a bypass resistor until their voltage matches that of the weaker cells. Although this method is cheap and relatively simple, it is very slow and just burns excess energy, limiting the pack's performance.
- Active balancing: Excess energy is moved from cells with higher charge to those with lower charge, usually through the use of a capacitor or inductor. This approach is much more efficient, but is much more complex and expensive.
Unbalanced cells affect the lifespan and maximum performance of the overall pack, with weaker cells getting worse the more the battery is cycled. Based on the relatively short required lifespan and minimal number of cycles required of our battery packs, we have decided to focus on building a matched battery pack and periodically balancing the pack over integrating a complex cell balancing system into our BMS.
Battery Monitoring System (BMS)
...
Our planned SOC algorithm primarly uses current-based SOC estimation to handle the large changes in current due to acceleration and regenerative braking. When the current flow is relatively stable or minimal current is flowing, we can use voltage-based SOC estimation to re-calibrate the SOC and set the reference point for current-based SOC estimation to continue from.
Solar
Solar cells, or photovoltaic (PV) cells, directly convert photons from the sun into electrical energy. Our solar array consists of a number of solar modules comprising of solar cells, similarly to how a battery pack is built.