Gas station without pumps

2012 August 14

Better measurement of conductivity of saline solution

Filed under: Circuits course — gasstationwithoutpumps @ 21:55
Tags: , , , , , ,

Continuing the lab I started describing in Conductivity of saline solution, a couple of days ago I tried repeating the lab with 0.1M NaCl instead of 1M NaCl.  expecting about a 10-fold increase in resistance.  The results I got mystified me:

The high-frequency measurements made no sense to me. I saw no reason for the impedance to shoot up so dramatically for 0.1M NaCl, while going way down for 1M NaCl.

I spent much of yesterday being mighty puzzled by the behavior with the known load of (4.7µF || 24kΩ), so this morning I add some more measurements in that series (confirming the old ones) and did another series with a 22.08Ω load. The results with the 22Ω load were not exactly consistent, but were equally confusing. [Correction: Steve P. asked me if nulled my ohm-meter to cancel the resistance of the leads.  I had not—you can see I’m not an experienced lab technician!  After doing that (using the “REL” button on the Fluke 8060A), I found the resistance of the 22Ω nominal resistor was actually 21.94Ω, rather than 22.08Ω.  I’ve not redone the fits, so the reported results are off by about 0.6%—well within the goodness of the fit.]

I finally noticed, however, that the readings on the multimeter were getting quite small at the higher frequencies, but the oscilloscope trace was not getting smaller. When I plotted the voltage measured across the 22Ω resistor as a function of frequency, it looked like a classic 2-pole low-pass filter. It seems that the cheap Radio Shack multimeter I was using can’t measure AC voltages above about 1kHz. I guess there is a reason that cheap meters are cheap! (They no longer sell that model, and I’ve no idea what their current models can do.)

So I changed my setup slightly so that I could use my old Fluke 8060A multimeter for both frequency measurements and voltage measurements. With this setup, I could measure out to much high frequencies (I’m limited mainly by the frequency measurement limitations, not voltage measurements).  Note, the closest equivalent I could find to the 8060A is the Fluke 175, which is a $265 meter.  I believe that the Agilent 34401A bench meters that the students will have in the lab are much better quality, so they should not have the problems I had with the cheapo RadioShack multimeter.  I’m not about to spend $1000 for a bench meter for myself, though, so it’s good to know that the Fluke 8060A is adequate for this task.

Now the measurements made more sense:

Measurements of voltage and frequency using a Fluke 8060A multimeter provides much cleaner data over a wider frequency range. Three-parameter fits seem to work fairly well.

Although I can now do 3-parameter fits fairly well, we aren’t getting out to high enough frequencies for fitting the 1M NaCl curve. I tried adding a 4th parameter as before, but the visual fit did not improve. The (R1 || C1) values, which correspond to the electrode/electrolyte interface, are very similar for all three concentrations (135–150Ω and 20–40µF). The R2 values, which correspond to the electrolyte resistivity vary roughly as expected, getting larger for lower concentrations.  Note that we can met the R2 values fairly well using just a single high frequency, since the impedance of  R2+(R1||C1) is asymptotically just R2, as frequency goes to infinity.  For lower NaCl concentrations that works fairly well, but for high NaCl concentration, even 125kHz wasn’t in the flat region.

The concentrations were only made to sloppy-kitchen-worker accuracy using table salt and tap water, not lab-quality accuracy, so are not good enough to claim that there is or is not linearity of the R2 values with the inverse of concentration as we would expect.

Can I use the same setup to measure the conductivity of tap water? I calculated (in Trying to measure ionic current through small holes) that the 1M NaCl solution should have a resistivity of about 0.13Ωm (77 mSiemens/cm).  According to the City of Santa Cruz Water District’s 2011 Consumer Confidence Report, the conductivity of the tap water they deliver is 280–760 µSiemens/cm averaging 390 µSiemens/cm (they use the older term µmhos/cm—I’ve always been partial to “mho” for conductance myself), about 200 times the resistivity of my 1M NaCl. I wonder whether my setup could measure that, using a 1kΩ resistor as a load.  At 55.12kHz, I get 0.5094V across the electrodes and 0.6281 V across the 1kΩ resistor, for a resistance of 811Ω (about 150 times what I get for the 1M NaCl, so within the range of what the water district reports).  For this large an R2 value, I should be able to get similar measurements for almost any reasonable frequency—it is only for high salt concentration that the RC time constant gets small enough to need high frequency measurements.

Thoughts about this lab

Students will need to know how to use a good model-fitting program. Gnuplot is nice, but installing it will be too painful for those with Macs (unless the gnuplot community has finally gotten around to making a Mac installer that doesn’t require gigabytes of downloads). We’ll need to scaffold the model-fitting process in any case.

Here’s the code I used for the gnuplot fitting (click to expand):

set title "Magnitude of impedance for electrodes, varying NaCl, 22ohm load"

set xlabel "frequency [Hz]"
set ylabel "impedance [ohms]"
set key bottom left
unset parametric
set logscale xy

set xrange[10:200000]
set yrange [*:*]

j=sqrt(-1.0)
zpar(z1,z2) = z1*z2/(z1+z2)
zc(c,f) = 1/(j*2*pi*f*c)

z_known(f)=zpar(24000, zc(4.7e-6,f))
ohmic(f) = 22.08

rcr(r1,r2,c1,f) = abs(r2+zpar(zc(c1,f), r1))
twoc(r1,r2,c1,c2,f) = abs(zpar(zc(c2,f), r2+zpar(zc(c1,f), r1)))
power_law(a,b,f) = b*f**a

# a=-1
# b=300
#
# fit log(power_law(a,b,x)) 'electrode-22-1M-table' using 1:(log(abs($3/$2*ohmic($1)))) via a,b

#
r1=170
r2=50
c1=3e-5

fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-0.1M-table' using 1:(log($2/$3)) via c1
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-0.1M-table' using 1:(log($2/$3)) via r2
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-0.1M-table' using 1:(log($2/$3)) via r1
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-0.1M-table' using 1:(log($2/$3)) via r1,c1,r2

r1=abs(r1); r2=abs(r2); c1=abs(c1)
r1_1=r1; r2_1=r2; c1_1=c1

r2 = 0.1 *r2
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-1M-table' using 1:(log($2/$3)) via c1
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-1M-table' using 1:(log($2/$3)) via r2
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-1M-table' using 1:(log($2/$3)) via r1
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-1M-table' using 1:(log($2/$3)) via r1,c1,r2
r1=abs(r1); r2=abs(r2); c1=abs(c1)
r1_10=r1; r2_10=r2; c1_10=c1

r2=20*r2
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-0.02M-table' using 1:(log($2/$3)) via r2
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-0.02M-table' using 1:(log($2/$3)) via c1
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-0.02M-table' using 1:(log($2/$3)) via r1
fit log(abs(ohmic(x)/rcr(r1,r2,c1,x))) 'electrode-22-0.02M-table' using 1:(log($2/$3)) via r1,c1,r2
r1=abs(r1); r2=abs(r2); c1=abs(c1)
r1_02=r1; r2_02=r2; c1_02=c1

unset label
# set label sprintf("r1=%.0f, r2=%.1f, c1=%.3g, c2=%.3g", r1,r2,c1,c2) right at 12000,200

plot 'electrode-22-1M-table' using 1:(abs($3/$2*ohmic($1))) title "1M", \
    'electrode-22-0.1M-table' using 1:(abs($3/$2*ohmic($1))) title "0.1M", \
    'electrode-22-0.02M-table' using 1:(abs($3/$2*ohmic($1))) title "0.02M", \
    rcr(r1_10,r2_10,c1_10,x) lt 1 title sprintf("1M: %.3g ohm + (c1=%.3g F || %.2f ohm)", r2_10,c1_10,r1_10) ,\
    rcr(r1_1,r2_1,c1_1,x) lt 2 title sprintf("0.1M: %.3g ohm + (c1=%.3g F || %.2f ohm)", r2_1,c1_1,r1_1), \
    rcr(r1_02,r2_02,c1_02,x) lt 2 title sprintf("0.02M: %.3g ohm + (c1=%.3g F || %.2f ohm)", r2_02,c1_02,r1_02)

It looks like a salinity-measurement lab will be doable fairly early in the quarter, without them having to build any circuitry (just a series resistor).  They may want to use different resistors for different salinity ranges.

The two 316L stainless-steel welding rods stuck through a piece of plastic works fairly well, though it would be difficult to compute the relationship between the conductivity of the solution and the measured resistance.  I think most official conductance probes use a simpler concentric cylinder geometry, but even then there are fringing fields at the end of the inner cylinder that are hard to compute, so they rely on calibration with known test solutions.

I’m still wondering whether it would be worthwhile to get some silver wire and soak it in bleach to make Ag/AgCl electrodes.  Comparison of stainless steel and Ag/AgCl electrodes would probably be useful to bioengineers, whether they go into medical or biomolecular applications.
I should buy  a small amount of fine silver wire (about $5.50/foot for 18 gauge, which is about 1mm diameter) to experiment with, and see if I come up with anything interesting.

« Previous Page

%d bloggers like this: