Understanding how Boost mode works in fw

Post Reply
User avatar
rstevens81
Posts: 349
Joined: Sun Dec 22, 2019 10:36 am
Location: Bristol, UK
Has thanked: 21 times
Been thanked: 91 times

Understanding how Boost mode works in fw

Post by rstevens81 »

Hi, before proceeding to blow stuff up .... (will test at low voltage of course), i thought it wasbest to understand how the code works for charging.

My intension is to use gen 3 inverter to firstly boost using the motor coils ( i now understand that this wouldnt work on a gen 2 as you have a single line that is either high or low, whilst the gen 3 has sperate pins for for the high/low igbt's).

Then to use the main dc-dc to buck the hv down to battery voltage (building on work of celeron55), the reason for this in the UK is there is no 3 hase at ahome without spending £1000's and the voltage tends to be slightly higher at 240v therefore 240x 1.41 = 338v circa 3,5v a cell so no use when nearly flat.
(dont wory no hv testing will de done for ages :D and till im confident its safe)

from the paramters i can see the following are used:

chargemode 0 4 0 0=Off, 3=Boost, 4=Buck
chargecur 0 50 0 Charge current setpoint. Boost mode: charger INPUT current. Buck mode: charger output current
chargekp 0 100 80 Charge controller gain. Lower if you have oscillation, raise if current set point is not met
chargeflt 0 10 8 Charge current filtering. Raise if you have oscillations
chargemax % 0 99 90 Charge mode duty cycle limit. Especially in boost mode this makes sure you don't overvolt you IGBTs if there is no battery connected.

Am i right "udcmax" does absolutely nothing in charge mode?
To my understang i could limit chargemax to limit the output boost voltage however this would lead to a poorer power factor as this would limit the boosting in the lower parts of the sinewave?

looking at the code i can see the following:

else if (MOD_BOOST == opmode || MOD_BUCK == opmode)
{
s32fp chargeCur = Param::Get(Param::chargecur);
s32fp tempDerate = FP_FROMINT(100);

Throttle::TemperatureDerate(Param::Get(Param::tmphs), Param::Get(Param::tmphsmax), tempDerate);
chargeCur = FP_MUL(tempDerate, chargeCur) / 100;

if (chargeCur < chargeCurRamped)
chargeCurRamped = chargeCur;
else
chargeCurRamped = RAMPUP(chargeCurRamped, chargeCur, 1);
PwmGeneration::SetChargeCurrent(chargeCurRamped);
}

This is where the current regulation, occurs and the temperature de-rating, this likes it would be a good placeto add voltage regulation by incerperating it into the throttle part?

Any thoughts and pointers are appreciated ... im trying to get my head around code before proceeding to some (low volatge testing).
Rule 1 of EV Club is don't buy a rust bucket....
Which rule does everyone forget 🤪
User avatar
celeron55
Posts: 774
Joined: Thu Jul 04, 2019 3:04 pm
Location: Finland
Has thanked: 27 times
Been thanked: 110 times
Contact:

Re: Understanding how Boost mode works in fw

Post by celeron55 »

Has anyone tried a voltage doubling rectifier for this purpose yet?
RetroZero
Posts: 702
Joined: Tue Oct 29, 2019 2:48 pm
Location: France
Has thanked: 311 times
Been thanked: 38 times
Contact:

Re: Understanding how Boost mode works in fw

Post by RetroZero »

Funny that. Seems there are 3 posts with similar questions, hence Johu's latest video? I too am having trouble understanding voltage regulation (or not). I thought you couldn't go simply recharging a 6v battery with a 12v charger, even with low amps. So how about voltage devider? We know the voltage in, and we know the max voltage of battery pack(voltage out) . So we calculate the difference and put in resistors?
Then regulating current is not an issue?
User avatar
johu
Site Admin
Posts: 5684
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 153 times
Been thanked: 960 times
Contact:

Re: Understanding how Boost mode works in fw

Post by johu »

Indeed udcmax does nothing but would be an easy addition. I always relied on a BMS to stop the charging so could never be bothered. You could just call Throttle::UdcLimitCommand().
I think the buck converter could be programmed between fixed 70% and fixed 100% duty cycle once sufficient battery voltage has been reached. That way the boost mode can do the current regulation.

My first charger from EMW actually used voltage doubling to 640V and then bucked down to 500V (Polo). It works but I suspect it to be fairly inefficient, in summer the charger went into temperature derating every 15 minutes or so.
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Post Reply