Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.