What Electrical Component Can Reverse the Polarity of a Circuit

Hi,
What is your constant current supply and discharge load?

Tom.. :slight_smile:

allanhurst:
Just had a closer look at your circuit.

I'm puzzled. You have an adjustable resistor in series with the capacitor , and measure the voltage across it - presumably to determine the current.

And then drive it with a constant current source/sink.

So this voltmeter will show a constant value depending on the constant I setting according to V = IR.

The other voltmeter will show the increasing / decreasing voltage across the capacitor, which will vary as

C dv/dt = I.

Presumably you want to see how the capacitance varies with applied voltage by logging dv/dt - am I right?

And how that value changes after many cycles?

And you could also infer the capacitor's internal resistance by looking at the voltage jump as the current is reversed?

How can we actually help you? How does an Arduino fit in ? It's internal a/d is only 10 - bit resolution , and even using it's internal 1.1v reference only gets you to within a mV or so .

Allan.

The "adjustable" resistor in series is in fact a common resistor, but I change it depending on the capacitor to be analyzed. e.g. for supercapacitors of ~10F, I use a resistor of 1Ω, while for 1F supercapacitors, I use ~10Ω resistors.

You got all the other stuff perfectly right. That's the kind of analysis I'm currently doing.

No troubles about the internal reference getting me around 1mV. I just want to develop an auto switch to charge/discharge (direct/reverse polarity) instead of doing it manually, so that I can leave the equipment doing the analysis alone for several hours or days (to see the capacitance loss over time). The arduino would fit doing something like "reading the voltage in parallel with my voltmeter (which is my precision instrument)" --> as it gets around 700mV+-1mV or even +-10mV --> "commanding a switch to reverse polarity". My meaningful data would be gathered by the precision instrument, but the switching would be done by the microcontroller.

Notice that it doesn't really matter if there is a small error of +-10mV in the switching process since I am reading it precisely with my voltmeter. There is a small error. This small error is negligible for operational purposes while it's well determined by my voltmeter.

About eventual delays on the switching process, they're also negligible since the worst it can get is still better than my manual switching response time. At the same time, it can be well determined by the other port of the voltmeter, used to measure the system's current. The only thing I should avoid is to input any noise into my current signal. e.g. inputting a relay inductance-related noise.

TomGeorge:
Hi,
What is your constant current supply and discharge load?

Tom.. :slight_smile:

My current supply --> Keythley SourceMeter 2410:

For supercapacitors of +-1 to 10F, I apply currents ranging from 5mA to 200mA (I make votage graphs for each of these currents in the range). e.g. For a supercapacitor of 1F I would run a series of experiments with 10 cycles of each of the following currents 5mV, 10mV, 20mV, 30mV, 50mV. After that, I would take the current that gave me the highest capacitance and would run the system for 2000 cycles, 10000 cycles maybe, to see how my supercapacitor's capacitance behaves after many cycles.

But I am also doing experiments with supercapacitors of capacitances of +- 100F (scaling experiments), charging/discharging them with currents of +-1A.

The discharge load is the resistor I use to make current measurements (~10Ω). But remember that I force the discharge at a constant current of reversed polarity using the same current supply.

OK - we're getting somewhere!

Enclosed an outline diagram for the current source/sink etc

The note 1 resistors have to be accurate - 0.01%?

The opamps have to have low Vos

The TL431 2.5 voltage references are only 1% or so - buy better ones or calibrate.

The capacitor +ve feeds an arduino analog input. Use the Vref = 1.1v option. This isn't terribly accurate, but it's stable and can be calibrated. Use it's measurements to drive the relays.

I've suggested relays for switching the source/sink - saves a lot of messing about. Drive the coils with the arduino ( + transistor/flywheel diode) according to your algorithm. Log volts with the arduino or external posh voltmeter - eg the Keighley you mentioned.

This is just an outline. But in principle ought to work.

Allan

captest.pdf (23 KB)

allanhurst:
OK - we're getting somewhere!

Enclosed an outline diagram for the current source/sink etc

The note 1 resistors have to be accurate - 0.01%?

The opamps have to have low Vos

The TL431 2.5 voltage references are only 1% or so - buy better ones or calibrate.

The capacitor +ve feeds an arduino analog input. Use the Vref = 1.1v option. This isn't terribly accurate, but it's stable and can be calibrated. Use it's measurements to drive the relays.

I've suggested relays for switching the source/sink - saves a lot of messing about. Drive the coils with the arduino ( + transistor/flywheel diode) according to your algorithm. Log volts with the arduino or external posh voltmeter - eg the Keighley you mentioned.

This is just an outline. But in principle ought to work.

Allan

Hi Allan,

So I understand that you're proposing a circuit to control two Relays, right? If so, why not using something like a DPDT or an H-bridge?

Where my current source fits in this circuit? Its poles would be attached to the open wires on the right side?

This circuit would have two modes as drawn in the attached figure?

The circuit IS the current source/sink.

Yes - in fact four modes - charging , discharging, open circuit - ie steady state - watch for capacitor self-discharge, and simultaneus charge/discharge - don't go there!

An H bridge might work - but how do you know accurately how much current you're charging/discharging?

Allan