Introduction
The AMS Controller is the subsystem responsible for the supervision and management of the Prohelion BMS.
The intent of the AMS Controller is to:
- Ensure the accumulator is engaged and providing power to the motor when required.
- Ensure the accumulator is only engaged when it is asked too and the relevant safety requirements are met.
- Provide feedback to the other car subsystems as to whether the accumulator is engaged.
Why not integrate this into the SCUM?
In short: Complexity and Safety.
Expanding on this, having everything handled by one monolithic system (e.g. the SCUM) is fine until it isn’t. When a finite state machine isn’t used, a system can get stuck in weird cases and lockups potentially causing a preventable incident to occur. This is especially important in safety-critical systems like the accumulator where it has the potential to maim or cause death if it isn’t adequetely respected.
From a complexity perspective, having so many moving parts inside a system can cause breakage unintentionally and makes it hard when multiple incompatible standards need to be supported. In an embedded environment, MCUs have a limited number of peripherals, GPIO power than can be drawn by other components and system clock speed. From a safety perspective, having one small system which is wholely focused on a single task is vastly easier to implement correctly, safely and auditably.