I'll try to figure out the linear function coefficients
Code: Select all
Current (A) = a * ui8_BatteryCurrent + b
My intent is to have a hard static limit to, well, statically protect the motor. Basically "beyond this point, nothing good will come by pushing more into the motor".
I have no idea whether current (A) or total energy (V*A=W) is the best means to accomplish this.
Additionally, and eventually, a dynamic limit could be interesting as a feature. Something like
Code: Select all
magic_limiter := f(energy into motor over 60 seconds with geometric average, observed motor rpm, ambient temperature, motor temperature)
if magic_limiter > motor_limit then throttle_energy_into_motor
Is it possible to limit on the battery side, independently? E.g. "only extract at most x Amps, ever"? That would protect the battery pack (and its fuse, and BMS, and ...), and take care of battery pack aging. That also could be combined with ambient temperature, when available, again to protect the battery pack. LCD3 displays show temperature, but I am not sure which temperature, and https://endless-sphere.com/forums/viewtopic.php?t=73475
seems to indicate that this flows from the controller to the display, so it would be "something" temperature, if at all.
All this energy flow limiting would then offer a great, safe envelope in which it is possible to experiment with minimal risk to the hardware?
In case the firmware does not have battery low voltage protection yet, that would be another protective feature. I'd rather have control via firmware than depending on the battery BMS, in case there is one.
Again, for me "protection" and thus creating a safe zone to operate is the first step; after that, funky features could be added, such as overdrive mode or so