Energy dump / overvoltage protection

Discuss hardware related to the VESC such as the NRF nunchuk.
arvidb
Posts: 207
Joined: 26 Dec 2015, 14:38
Location: Sweden, Stockholm

Re: Energy dump / overvoltage protection

Postby arvidb » 11 Feb 2017, 18:16

Analysis plots of the BDX33C circuit:
edump_Darlington_performance.png
edump_Darlington_performance.png (11.96 KiB) Viewed 1531 times

edump_Darlington_comp_dissipation.png
edump_Darlington_comp_dissipation.png (9.87 KiB) Viewed 1531 times

edump_Darlington_SOA_plot.png
edump_Darlington_SOA_plot.png (10.7 KiB) Viewed 1531 times


Edit: The Octave script:

Code: Select all

clear();

Umax = 50;   # V, max bus voltage to simulate
Z1 = 36;   # V, zener breakdown voltage, also simulation start
R1 = 25;   # Ω, value of power resistor
R2 = 820;   # Ω, value of base resistor

# From BDX33C datasheet:
Q1_hFE = 750;
U_SOA = [  1  7 25.0 100.0 ];
I_SOA = [ 10 10  2.5   0.1 ];
U_junc = 1.3; # Junction voltage drop


U = Z1-0.5:0.01:Umax;

Q1_Ibase = (U - Z1 - U_junc) / R2;
Q1_Ibase = max(Q1_Ibase, 0);

Q1_IEmax = Q1_Ibase * (Q1_hFE + 1);
R1_Imax = (U - U_junc) / R1;
R1_Imax = max(R1_Imax, 0);
I = min(Q1_IEmax, R1_Imax);

P_tot = U .* I;

R1_U = I * R1;
R1_P = R1_U .* I;
Q1_U = U - R1_U;
Q1_P = Q1_U .* I;


### Performance plot
figure(1);
ax = plotyy(U, I, U, P_tot);
grid off;
title("Energy dump performance");
xlabel("Bus voltage [V]");
ylabel(ax(1), "Sink current [A]");
ylabel(ax(2), "Total power dissipation [W]");

print("edump_performance.png", "-dpng", "-S480,480");

### Power dissipation plot
figure(2);
plot(U, Q1_P, U, R1_P);
legend("Q1", "R1");
xlim([Z1-0.5 Umax]);
grid off;
title("Component power dissipation");
xlabel("Bus voltage [V]");
ylabel("Power dissipation [W]");

print("edump_comp_dissipation.png", "-dpng", "-S480,480");


### SOA plot
figure(3);
loglog (Q1_U, I, U_SOA, I_SOA);
axis([1 200 0.1 20]);
set(gca, 'GridLineStyle', '-')
set(gca, 'MinorGridLineStyle', '-')
# Make the numbers readable by humans:
set(gca, 'XTickLabel', num2str(get(gca, 'XTick').'))
set(gca, 'YTickLabel', num2str(get(gca, 'YTick').'))
grid on;
title("BDX33C SOA plot");
xlabel("Vce [V]");
ylabel("Ic [A]");

print("edump_SOA_plot.png", "-dpng", "-S480,480");


### Print some useful values:

disp("Peak Q1 base current [A]:")
disp(max(Q1_Ibase))
disp("Peak base resistor (R2) power dissipation [W]:")
disp(max(Q1_Ibase)^2 * R2)
disp("Peak Q1 power dissipation [W]:")
disp(max(Q1_P))
Last edited by arvidb on 11 Feb 2017, 19:08, edited 1 time in total.

arvidb
Posts: 207
Joined: 26 Dec 2015, 14:38
Location: Sweden, Stockholm

Re: Energy dump / overvoltage protection

Postby arvidb » 11 Feb 2017, 18:23

lizardmech wrote:What about using mosfets as an ideal diode? Below overvoltage levels they're on, when OV is tripped mosfets get turned off forcing current through a large power resistor. You could use it so vehicles relying on regen don't overcharge batteries, adding current sense could enable battery regen over current protection without sacrificing the ability to use braking.

This energy dump circuit is meant to protect power supplies from overvoltage, not the VESC (primarily). My power supply doesn't sink current, so that resistor layout won't work, I'm afraid. Also, you left out an important part: the "driver/control_ic", which I have a hunch will be quite complicated.

rew
Posts: 905
Joined: 25 Mar 2016, 12:29
Location: Delft, Netherlands.

Re: Energy dump / overvoltage protection

Postby rew » 11 Feb 2017, 23:20

arvidb wrote: It turns out I have a bunch of BDX33C at home. I ended up with a nice and simple circuit and at the moment I cannot find anything wrong with it:
energy-dump-BDX33C.png

Is this drawing zero current without the pulldown that I added?

lizardmech
Posts: 171
Joined: 19 Jan 2016, 10:54
Location: Australia

Re: Energy dump / overvoltage protection

Postby lizardmech » 12 Feb 2017, 07:06

arvidb wrote:
lizardmech wrote:What about using mosfets as an ideal diode? Below overvoltage levels they're on, when OV is tripped mosfets get turned off forcing current through a large power resistor. You could use it so vehicles relying on regen don't overcharge batteries, adding current sense could enable battery regen over current protection without sacrificing the ability to use braking.

This energy dump circuit is meant to protect power supplies from overvoltage, not the VESC (primarily). My power supply doesn't sink current, so that resistor layout won't work, I'm afraid. Also, you left out an important part: the "driver/control_ic", which I have a hunch will be quite complicated.

You can get simple ICs for this task, will current still flow if voltage drop across the resistor makes it lower than the power supply output?

lizardmech
Posts: 171
Joined: 19 Jan 2016, 10:54
Location: Australia

Re: Energy dump / overvoltage protection

Postby lizardmech » 14 Feb 2017, 10:36

This guy made something similar for his electric unicycle, sends energy through high powered LEDs when overvolt occurs.
https://www.youtube.com/watch?v=Sb37y3JNDZ4

arvidb
Posts: 207
Joined: 26 Dec 2015, 14:38
Location: Sweden, Stockholm

Re: Energy dump / overvoltage protection

Postby arvidb » 14 Feb 2017, 13:42

rew wrote:
arvidb wrote: It turns out I have a bunch of BDX33C at home. I ended up with a nice and simple circuit and at the moment I cannot find anything wrong with it:
energy-dump-BDX33C.png

Is this drawing zero current without the pulldown that I added?

Well, the BDX33C has built-in pulldowns (about 10k).

I wondered about your addition of a pulldown - is it there to minimize the effect of the zener leakage current? Or to improve response time? Something else?

arvidb
Posts: 207
Joined: 26 Dec 2015, 14:38
Location: Sweden, Stockholm

Re: Energy dump / overvoltage protection

Postby arvidb » 14 Feb 2017, 13:54

lizardmech wrote:will current still flow if voltage drop across the resistor makes it lower than the power supply output?

Not sure what you mean here?

lizardmech wrote:This guy made something similar for his electric unicycle, sends energy through high powered LEDs when overvolt occurs.
https://www.youtube.com/watch?v=Sb37y3JNDZ4

A nice solution! Good that he displays the scematic at 2:30. With an additional power supply this kind of solution (using comparators and an - optionally PWM:ed - MOSFET) is of course easy. I like his use of Schmitt triggers and a flip-flop for hysteresis and MOSFET driving. :)

lizardmech
Posts: 171
Joined: 19 Jan 2016, 10:54
Location: Australia

Re: Energy dump / overvoltage protection

Postby lizardmech » 14 Feb 2017, 15:49

arvidb wrote:Not sure what you mean here?

If during regen a large resistor is placed between the controller and battery +, won't the voltage drop lower than the battery meaning no current can travel into it?

rew
Posts: 905
Joined: 25 Mar 2016, 12:29
Location: Delft, Netherlands.

Re: Energy dump / overvoltage protection

Postby rew » 14 Feb 2017, 16:24

Those 100W leds have a curve of about 10mA at 27V up to their rated 3A at 33-35V. This makes them ideal for him to simply connect the two of them in series across the battery at 66V.

arvidb
Posts: 207
Joined: 26 Dec 2015, 14:38
Location: Sweden, Stockholm

Re: Energy dump / overvoltage protection

Postby arvidb » 24 Feb 2017, 21:00

Here's the finished dump. It seems to work as it should! :) I'm glad I did the voltage/sink current plots, otherwise I think I would have been confused about the knee in the current draw.
SAM_1283_energy_dump.jpg
SAM_1283_energy_dump.jpg (148.54 KiB) Viewed 1436 times


Return to “Related Hardware”

Who is online

Users browsing this forum: No registered users and 1 guest