Using brushless motor as generator

5 years 1 month ago #29533924 by Kai2
Hi all

I'm gather more information (incl. comments) on this concept to assess viability. If there is any non-IP information you can share that'd be great and I'll do likewise.

Looking at using an ICE to drive a sensored brushless and get power out from VMOT. I've read up on the progressive regen app note and this is largely an extension of that. As far as the controller is concerned its perpetually braking. ICE is mechanically governed at a target RPM +/- 5% or so.

1. Set up the "inner" control loop in FOC to hold to a constant negative torque (= MA * Kt) => constant current out from VMOT into battery bus
2. Configure voltage and current safety limits to be compatible with interfacing subsystems (Max RPM = 10, ALIM = 100, OVL = 55, ATGA set appropriately, etc)

--- at this point under normal conditions the system should just do its thing and pump out power to the batteries. The constant torque scheme should cause VMOT to dynamically adjust itself such that it becomes a CC source. Would appreciate thoughts on whether this has been done / is the expected behaviour, and whether there are any additional nuances to consider such as under/overshoots, instability points, etc.

3. Implement "outer" control loop via microbasic to handle boundary cases and tweak the inner loop parameters, such as below triggers:
A. V (battery) indicates battery is above backoff threshold -> set reduced ALIM and MA magnitude
B. V (battery) indicates battery is below backoff threshold - hystersis -> reset ALIM and MA magnitude
C. External feedback (BMS) warning or V (battery) is at high threshold -> stasis mode
D. Temperature too high -> stasis mode
E. Conditions back to normal -> exit stasis mode
F. Extreme conditions -> stasis mode + digital output to cut out ICE via transducer and/or drop out VMOT safety relay
G. Initial startup checks -> TBA

Stasis mode includes using a digital output to put a resistive shunt load between VMOT and ground to bleed out power, floating the FETs, and operator alarm.

Not sure if ALIM works for negative amps given we're not really powering the motor in the first place though....? If it doesn't work it just means more due diligence in the outer loop.

Easily expandable to more fine grain thresholds and multiple types of stasis modes if the underlying architecture works. Also have to think about interaction between triggered actions and script (e.g. how does script respond if OVL trips and floats the FETs...)


Please Log in or Create an account to join the conversation.

5 years 1 month ago - 5 years 1 month ago #29533926 by Kai2
Its just occurred to me that there may be an easier alternative to using the FOC engine to get the desired behaviour. Especially given that the ICE speed is highly constrained.

If I just used open loop speed control, sinuosidal mode, and drive the motor with the ICE:
1) Ensure the ICE speed gives a high enough motor EMF to overcome the battery
2) GO command directly adjusts the PWM duty cycle. Commutation freq is handled by controller and is not modifiable by enduser.
3) Setcommand(_G,1,X) provides a charging current to battery that is related to X
4) VMOT is fixed at battery voltage.
5) Empirically determine mapping between X and charging current (hopefully its linear?)
6) Set X to set up nominal charging current
7) Monitor the actual current and adjust X if required using mapping

Is the logic sound? Not requesting the code, just need a sense check on the thinking.


Please Log in or Create an account to join the conversation.

Moderators: tonysantoni
Time to create page: 0.061 seconds