I mounted the Audio TT25-16 PUCK tactile transducer in the middle of a piece of ½” plywood about 9″ in diameter and made a small amplifier out of an op amp and a 2N3904 NPN transistor (I have half a dozen of them, some of which I got over 25 years ago—it seems to be one of those parts that has remained in production forever). The extra transistor is to get a bit more drive current (rated at 200mA) than the op amp can provide (rated at 23mA).

Here is the model I had before (in the post Characterizing tactile transducer) for the Puck unmounted and sitting on a thin piece of foam rubber on my benchtop:

Here is the circuit setup I used for doing the characterization this time. The amplifier made the shaking large enough that I could feel it if I held the plywood, particularly near the resonance peak:

The time constant for the RC circuit to keep the op amp centered is rather large—it took 20–30 seconds after power-up for the output to stop clipping. The input was about 2.5V peak-to-peak, as was the output. Note that at the highest frequencies measured, the slew rate limitations of the op amp make the output more of a triangle wave than a square wave, which may mean that the impedance is not really representative of the transducer at those frequencies.

The 10Ω resistor in series with the Puck servers two purposes: it limits the maximum current through the 2N3904 transistor and it gives me an easy measurement of the current through the Puck as the voltage across the resistor. By measuring the RMS voltage across the resistor and the Puck at the same frequency, I can easily compute the magnitude of the impedance at that frequency.

UPDATE 2012 Sept 16: I was bothered by the change of frequency for the resonance, because I could not figure out a physical explanation. The resonance depends on the mass and springiness of the voice coil, which are not changed by mounting the case of the transducer on a piece of plywood. I then realized that there were two changes here: the mounting of the Puck and introduction of the amplifier. The amplifier produces a wider-range signal and introduces a DC offset. If the spring in the transducer is non-linear, then both the DC offset and the larger movement could change the effective spring constant. I tried checking with an unmounted transducer, and it also shows the higher resonant frequency, so the change comes from the amplifier (and probably the DC offset), not from the mounting.

Here is the gnuplot script for the fitting (see Characterizing tactile transducer for an example of the plotting script). The fitting was a bit fragile, and I had to play around with the order in which the variables were fit to keep it from going off into ridiculous regions for the parameters.

set xrange[*:*] set yrange [*:*] j=sqrt(-1.0) zpar(z1,z2) = z1*z2/(z1+z2) zc(c,f) = 1/(j*2*pi*f*c) zl(L,f) = j*2*pi*f*L z_known(f)=zpar(24000, zc(4.7e-6,f)) ohmic(f) = 10.0 lr(L1,R1,f) = abs(zl(L1,f)+R1) lrlr(L1,R1,L2,R2,f) = abs(zpar(zl(L1,f),zl(L2,f)+R2)+R1) lrlrc(L1,R1,Ls,Rs,Cs,f) = abs(zl(L1,f)+R1+zpar(Rs,zpar(zl(Ls,f),zc(Cs,f)))) lr2lrc(L1,R1,L2,R2,Ls,Rs,Cs,f) = abs(zpar(zl(L1,f),zl(L2,f)+R2)+R1+zpar(Rs,zpar(zl(Ls,f),zc(Cs,f)))) lr3lrc(L1,R1,L2,R2,L3,R3,Ls,Rs,Cs,f) = abs(zpar(zl(L1,f),R2+zpar(zl(L2,f),R3+zl(L3,f)))+R1+zpar(Rs,zpar(zl(Ls,f),zc(Cs,f)))) R1=19 L1=0.001 fit log(abs(ohmic(x)/lr(L1,R1,x))) 'amplified-10-table' using 1:(log($2/$3)) via L1 fit log(abs(ohmic(x)/lr(L1,R1,x))) 'amplified-10-table' using 1:(log($2/$3)) via R1 fit log(abs(ohmic(x)/lr(L1,R1,x))) 'amplified-10-table' using 1:(log($2/$3)) via L1,R1 R1_lr=abs(R1) L1_lr=abs(L1) R1=15 L1=0.0015 Rs=5.5 Ls=0.005 Cs=0.005 fit log(abs(ohmic(x)/lrlrc(L1,R1,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via L1 L1=abs(L1) fit [10:200] log(abs(ohmic(x)/lrlrc(L1,R1,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via Ls,Cs Ls=abs(Ls) Cs=abs(Cs) fit [10:200] log(abs(ohmic(x)/lrlrc(L1,R1,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via Ls,Cs,Rs, R1 Ls=abs(Ls) Cs=abs(Cs) fit log(abs(ohmic(x)/lrlrc(L1,R1,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via L1 L1=abs(L1) fit [10:200] log(abs(ohmic(x)/lrlrc(L1,R1,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via Ls,Cs,Rs Ls=abs(Ls) Cs=abs(Cs) fit log(abs(ohmic(x)/lrlrc(L1,R1,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via L1,R1 L1=abs(L1) fit [10:200] log(abs(ohmic(x)/lrlrc(L1,R1,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via Ls,Cs,Rs Ls=abs(Ls) Cs=abs(Cs) R1_lrlrc=abs(R1) L1_lrlrc=abs(L1) Rs_lrlrc=abs(Rs) Ls_lrlrc=abs(Ls) Cs_lrlrc=abs(Cs) R2=180 L2=0.0015 fit log(abs(ohmic(x)/lr2lrc(L1,R1,L2,R2,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via L2,R2 L2=abs(L2) fit [10:200] log(abs(ohmic(x)/lr2lrc(L1,R1,L2,R2,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via Ls,Cs Ls=abs(Ls) Cs=abs(Cs) fit [10:200] log(abs(ohmic(x)/lr2lrc(L1,R1,L2,R2,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via R1,Rs fit log(abs(ohmic(x)/lr2lrc(L1,R1,L2,R2,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via L1,R1,L2,R2 fit log(abs(ohmic(x)/lr2lrc(L1,R1,L2,R2,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via L1,R1,L2,R2,Ls,Cs,Rs R1_lr2lrc=abs(R1) L1_lr2lrc=abs(L1) R2_lr2lrc=abs(R2) L2_lr2lrc=abs(L2) Rs_lr2lrc=abs(Rs) Ls_lr2lrc=abs(Ls) Cs_lr2lrc=abs(Cs) R3=300 L3=0.0005 fit [10:200] log(abs(ohmic(x)/lr3lrc(L1,R1,L2,R2,L3,R3,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via Ls,Cs Ls=abs(Ls) Cs=abs(Cs) fit [10:200] log(abs(ohmic(x)/lr3lrc(L1,R1,L2,R2,L3,R3,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via Ls,Cs,Rs,R1 Ls=abs(Ls) Cs=abs(Cs) fit log(abs(ohmic(x)/lr3lrc(L1,R1,L2,R2,L3,R3,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via L1,R1 L1=abs(L1) fit log(abs(ohmic(x)/lr3lrc(L1,R1,L2,R2,L3,R3,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via L2,R2 fit log(abs(ohmic(x)/lr3lrc(L1,R1,L2,R2,L3,R3,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via L3,R3 fit log(abs(ohmic(x)/lr3lrc(L1,R1,L2,R2,L3,R3,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via Ls,Cs,Rs,R1 Ls=abs(Ls) Cs=abs(Cs) fit log(abs(ohmic(x)/lr3lrc(L1,R1,L2,R2,L3,R3,Ls,Rs,Cs,x))) 'amplified-10-table' using 1:(log($2/$3)) via L1,L2,R1,R2,L3,R3,Ls,Rs,Cs

and the raw data

# connection of Dayton Audio TT25-16 PUCK tactile transducer # mounted on 1/2" plywood circle # in series with 10.0 ohm resistor # driven by AC-coupled function generator amplified with op amp and # 2N3904 transistor. # measured with Fluke 8060A # 2012 sept 15 # frequency mv across 10 mv across Puck 13.61 412 634 143.28 393.6 637.9 1450.5 251.5 810.5 13541 77.13 972.5 128740 13.3 698.0 141110 11.1 642.5 15215 70.95 962.7 1644.5 243.7 805.7 162.27 381.7 627.9 15.41 397.5 615.2 23.84 383.7 638.5 238.7 376.8 651.4 2345 211.2 867.4 23450 55.47 979.5 38800 41.7 975.5 3901 162.97 916.2 5199 139.9 958.3 51550 36.19 984.6 538.4 344.5 722.0 53.64 403.1 634.9 42.65 390.2 647.6 428.0 356.2 701.3 41350 40.6 984.7 30880 47.8 990.0 3096 186.17 904.6 317.0 370.1 676.5 31.68 341.5 691.6 30.04 343.4 691.2 27.20 372.5 663.9 32.41 344.5 688.1 33.71 355.0 677.2 35.14 367.4 664.4 102.99 394.7 630.8 1039.3 280.02 784.0 9849 93.62 963.7 4178 156.53 920.6 7317 111.95 952.9 766.1 300.0 756.2 76.15 396.3 625.5 72310 28.7 930.1 32.32 341.0 682.6 108450 17.4 793.6 19.33 397.1 629.7

I updated this post, adding a conjecture about what caused the change in frequency for the mechanical resonance. I’m seeing much less of a resonance peak electronically in the other copy of the Puck transducer, so I’m a little confused about what is going on. Perhaps the damping varies a lot from copy to copy (cheap parts)?

I wonder if I should have the students characterize the particular shaker table that they are using. I’m also wondering whether I can use an accelerometer to characterize the low-frequency response of the shaker table, including the mechanical parts outside the transducer.

Comment by gasstationwithoutpumps — 2012 September 16 @ 11:15 |

[…] RMS, which is about 8dB more gain than I got from the op-amp-and-transistor amplifier I used in Characterizing tactile transducer again. I get a strong resonance from the amplifier around 64.5kHz and a mechanical resonance from the […]

Pingback by New amplifier and shaker table « Gas station without pumps — 2012 September 29 @ 14:39 |

[…] Characterizing tactile transducer again […]

Pingback by Rethinking the pressure sensor lab « Gas station without pumps — 2012 October 23 @ 17:27 |

[…] loudspeakers and electrodes (see Better measurement of conductivity of saline solution or Characterizing tactile transducer again), making a number of measurements of RMS voltage across the device and across a series resistor at […]

Pingback by Negative resistance oscillator « Gas station without pumps — 2013 January 7 @ 06:50 |