So, you’ve invented this amazing process for converting water into wine, but investors want to know exactly how much power it takes before they cut checks. After all, vineyards do it for free, with just a bit of sunlight.
Your process involves the use of extremely high voltage with direct electron disassociation (big sparks) in special electro-chemical reactors. Any electronic equipment within a 6-foot radius of the reactors is fried like a mosquito in a bug-zapper.
Being a start-up, there’s no cash to set-up at Powertech Labs, or buy a custom divider. But to keep the lights on and suppress a mutiny, you desperately need a check this week. What do you do? What do you do?
Fortunately, a quick trip to local shops will supply the parts needed to make a 30,000 to 50,000:1 extremely high voltage (megavolts) resistive divider that draws less than a milliamp at 1 ONE MILLION VOLTS. These parts and a current monitor will allow you to discover your true power (bwaaa haa haa)! ahem.., sorry; move along, nothing to see here….
Discussion: As you might have figured, that’s still a thousand watts of power (at a megavolt), iff the voltage is continuous. Measuring hundreds of 50 micro-second pulses/second yields an average power dissipation of a dozen watts, and much lower if the voltage is less and/or decays exponentially; YMMV. Since we’re talking about a pulsed-power application, a digital oscilloscope is required to capture and record the measurements.
Enter stage right: The water resistor. The big idea is to use small vinyl tubing with very pure (deionized/distilled) water to create a high-value resistor as part of a voltage divider. The voltage divider is used to scale the million-or-so input volts down to something off-the-shelf test equipment can measure (dozens of volts). As with most things, the rub is in the details.
Initial experiments with 1/4″ ID (inside diameter) vinyl tubing with 1/4″ bolts as end-caps & electrodes yielded low resistance and a tendency to leak:
Plain tap (drinking) water is easily 20 times more conductive than distilled water due to impurities. The 20 foot resistor above was measured at 23.1 megohms; or about 1 megohm/foot (boo, hiss). 10 feet of the same tubing (1/4-inch ID) filled with distilled water measured ~215 megohms (20 megohms/foot). At this point, you may be wondering, “How the heck do you measure something with that much resistance?” Good question; using a home-brew 1kV MOT power supply (limited to 1kV due to the diodes laying around):
High voltage is applied to the water resistor, and current flow is measured; calculating the resistance using ohms-law (R = E/I):
Switching to smaller tubing, the 3-feet of 3/8-inch ID vinyl tubing above, filled with distilled water, with 1/4-inch brass plugs (which worked much better than bolts), has a computed resistance of 494V/.00000315A = 157 megohms; the HP-34401A DMM reads down to 10 nano-amps. In case you don’t have a nano-ammeter available, the divider calibration only requires a voltmeter (and a high-voltage source).
Based on the above experiment, a gigohm water resistor should be about 20 feet of 3/8-inch ID vinyl tubing filled with, you guessed it:
Before filling the tube, it was flushed several times with distilled water. Using a large syringe & needle makes filling the tube much easier, but it still takes time and patience to ease (knock) the bubbles out. Also, tapering the ends of the 1/4-inch brass plug/electrodes (cut to 3-inch lengths from a longer rod) makes them much easier to insert, and there has been no problem with leakage.
Once the tubing is filled and sealed, the voltage divider is completed using a standard resistor (27K-ohm) as the low-voltage leg of the divider between the water resistor and ground. The output voltage is measured across the small resistor. Changing the value of this resistor is the easiest way to change the divider value. It was found that making this resistance too large caused apparent non-linear behaviour (divisor changed with voltage):
Since standard fuses (in the US) are 1/4-inch in diameter, fuse holders work great for the electrical & mechanical connections with the brass electrodes. The water resistor tubing is run far away from the high-voltage source, then coiled around an insulating column (plastic sewer pipe) with 8-inch or so spacing between wraps:
More rub: Water resistors are not very stable; they tend to change value over time. Causes of this include impurities leaching from the tubing and/or electrodes, temperature, humidity (condensation on the tubing), bubbles on the electrodes, etc. What this means is that the divider ratio (value) needs to be measured before and (it’s a good idea) after each use.
For these tests, 5kV and 10kV was applied to the divider input, and the output voltage (millivolts) was measured. The divider value (or measurement multiplier, depending on how you look at it) is simply the input voltage / output voltage. Applying 5000 volts, there was a 139.81mv drop across the small resistor. For 9,990 volts, there was 279.81mv measured. So, 5000/.13981 = 35,763X, and 9990/.27981 = 35,702X; taking the average = 35733. So, the voltage readings on the scope should be multiplied by 35,733 to read actual voltage. One million input volts should read 1,000,000/35,733 = 27.99 volts on the oscilloscope.
NOTE: Over the course of a week, the divisor dropped from 43,120 to 35,733, but the readings changed only 0.2% between runs on a given day.
Zooming in on captured data (using gnuplot) shows voltage & current oscillations in the neighbourhood of 15MHz and peak voltage of over 800kV (23V x 35,733):
Since the current probe used (Pearson 411) is good to 20MHz, the bandwidth of the water resistor divider appears adequate:
The Pearson is shown on the left around the secondary coil RF ground cable. Real (active) power is then computed by multiplying the current and voltage samples together times the sample interval of the oscilloscope (one-at-a-time) to get Joules; watts (power) is simply Joules per second. Excel can be used to compute the power (from .csv files) if the number of samples is less than 65,000. Here’s a Python program to calculate energy if you have a large sample memory scope (greater than 65,000 samples), or run Linux:
#!/usr/bin/env python """ Filename: stats.py Date: 2010-12-29 Author: Bill Bishop <wrb at wrbishop.com> Description: Display energy & statistics for the specified .csv file. The first column is the time index of when the sample was taken. Channel 1 (col2) is assumed to represent voltage, and channel 2 (col 3) current. The specified scale factors are applied before computing stats. This program works with Python 2.6 through 3.1 Be sure the .csv file has no extraneous header information, and that the first column is monotonic. """ import csv, sys, os # # Grab the program (script) name # prog = os.path.basename(sys.argv) usage= prog + ": csv_file chan1_vscale chan2_iscale" if __name__ == '__main__': numargs = len(sys.argv); if numargs < 4 : # Sanity check print(usage) sys.exit(0) csvFile = sys.argv # 3-column .CSV file vScale = float(sys.argv) # Voltage scale factor iScale = float(sys.argv) # Current scale factor reader = csv.reader(open(csvFile, "r")) rc = 0 # Initialize row (sample) counter, joules = 0. # initialize total energy value, minV = 10000. # and min/max values. maxV = -10000. minI = 10000. maxI = -10000. for row in reader: # # Convert text input values to floating point # t = float(row) # This sample time v = float(row) * vScale # Scale voltage i = float(row) * iScale # Scale current to amps # # On the first row, we have to set our first and last time values # if rc == 0: firstT = t # Grab first time value lastT = t rc = rc + 1 # # Power (Joules) is computed by current * voltage * sampleInterval # joules = joules + (i * v * (t-lastT)) # bump energy by this slice lastT = t # Step to next time value if i < minI: # Update current stats minI = i if i > maxI: maxI = i if v < minV: # Update voltage stats minV = v if v > maxV: maxV = v # # Display results # seconds = lastT - firstT # Compute total time-span of this run print("%s: Power: %.2f Joules, Period: %.6f seconds" % (csvFile, joules, seconds)) print("\tMin/max V(%.2f,%.2f), Min/max I(%.2f,%.2f)" % (minV, maxV, minI, maxI))
As Always, be careful when working with high voltage, and use the buddy system. Here’s a link to the CSU high voltage safety manual. It has good information, and few accident examples (nothing serious). We all want to be able to enjoy the fruits of our labor!