Data and IDL script from DM resonance test: Channel #2 10Vpp Frequency Spot Size Tilt 30 46.0 x 9.5 45 40 46.0 x 9.5 45 60 46.0 x 9.5 45 80 46.0 x 9.5 45 100 47.6 x 9.5 45 120 46.0 x 9.5 43 130 47.6 x 9.5 43 140 50.0 x 9.5 41 150 50.8 x 9.5 42 5Vpp Frequency Spot Size Tilt 140 28.6 x 9.5 41 160 30.2 x 9.5 41 180 27.8 x 9.5 42 200 27.8 x 9.5 42 220 28.6 x 9.5 43 240 30.1 x 9.5 43 260 31.8 x 9.5 45 280 33.3 x 9.5 44 300 35.7 x 9.5 46 3Vpp Frequency Spot Size Tilt 300 24.6 x 9.5 43 320 26.2 x 9.5 46 340 28.6 x 9.5 46 360 34.1 x 9.5 45 1Vpp Frequency Spot Size Tilt 360 17.5 x 9.5 45 375 18.3 x 9.5 45 400 19.1 x 9.5 57 425 19.1 x 9.5 59 450 15.6 x 9.5 73 475 11.9 x 11.9 -45 500 12.7 x 12.7 -45 525 12.7 x 12.7 -45 550 15.1 x 12.7 13 575 16.7 x 11.1 13 600 16.7 x 11.1 13 625 16.7 x 11.1 17 650 14.3 x 11.1 18 675 12.7 x 12.7 -45 700 12.7 x 12.7 -45 725 12.7 x 12.7 -45 750 13.5 x 13.5 -45 775 13.5 x 13.5 -45 800 15.9 x 11.1 20 825 19.1 x 11.1 9 freq10 = [30, 40, 60, 80, 100, 120, 130, 140, 150] freq5 = [140, 160, 180, 200, 220, 240, 260, 280, 300] freq3 = [300, 320, 340, 360] freq1 = [360, 375, 400, 425, 450, 475, 500, 525, 550, 575, 600, 625, 650, 675, 700, 725, 750, 775, 800, 825] size10 = [46.0, 46.0, 46.0, 46.0, 47.6, 46.0, 47.6, 50.0, 50.8] size5 = [28.6, 30.2, 27.8, 27.8, 28.6, 30.1, 31.8, 33.3, 35.7] size3 = [24.6, 26.2, 28.6, 34.1] size1 = [17.5, 18.3, 19.1, 19.1, 15.6, 11.9, 12.7, 12.7, 15.1, 16.7, 16.7, 16.7, 14.3, 12.7, 12.7, 12.7, 13.5, 13.5, 15.9, 19.1] tilt10 = [45, 45, 45, 45, 45, 43, 43, 41, 42] tilt5 = [41, 41, 42, 42, 43, 43, 45, 44, 46] tilt3 = [43, 46, 46, 45] tilt1 = [45, 45, 57, 59, 73, -45, -45, -45, 13, 13, 13, 17, 18, -45, -45, -45, -45, -45, 20, 9] size10a = size10 - 9.5 ; subtracting size of the spot to get spot motion size5a = size5 - 9.5 ; subtracting size of the spot to get spot motion size3a = size3 - 9.5 ; subtracting size of the spot to get spot motion size1a = size1 - 9.5 ; subtracting size of the spot to get spot motion size10b = 0.50000 * size10a ; scaling to be as if at 5Vpp size3b = 1.666666 * size3a ; scaling to be as if at 5Vpp (multiply by 2.5 to make ; this data continuous w/ 5V data) size1b = 5.00 * size1a ; scaling to be as if at 5Vpp (multiply by 12 to make ; this data continous w/ 3V and 5V data ;-----> Using Data scaled to 5Vpp drive <------- set_plot, 'ps' Device, filename='DMscaled.ch2.ps', Xoffset=0, Yoffset=0, Xsize=7.0, Ysize=7.0, /Inches plot, freq5, size5a, Xrange=[30, 900], Yrange=[5,80], Xstyle=1, Ystyle=8, Psym=-4, position = [0.15, 0.15, 0.85, 0.95], Title='DM Test Ch. #2: Stroke and Angle vs. Frequency, scaled data', Ytitle = 'Spot Motion (mm)', Xtitle='Frequency (Hz)' oplot, freq10, size10b, Psym=-2 oplot, freq3, size3b, Psym=-5 oplot, freq1, size1b, Psym=-6 Axis, Yaxis=1, Yrange=[5.0, 150], /Save, Ytitle ='Angle (degrees)' oplot, freq10, tilt10, Psym=7 oplot, freq5, tilt5, Psym=7 oplot, freq3, tilt3, Psym=7 oplot, freq1, tilt1, Psym=7 xvalues=[150, 250] yvalues=[142, 142] PlotS, xvalues, yvalues, Linestyle=0, Psym=-2 XYoutS, 0.35, 0.905, 'Stoke @ 10Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[150, 250] yvalues=[139, 139] PlotS, xvalues, yvalues, Linestyle=0, Psym=-4 XYoutS, 0.35, 0.885, 'Stoke @ 5Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[150, 250] yvalues=[135, 135] PlotS, xvalues, yvalues, Linestyle=0, Psym=-5 XYoutS, 0.35, 0.865, 'Stoke @ 3Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[150, 250] yvalues=[131, 131] PlotS, xvalues, yvalues, Linestyle=0, Psym=-6 XYoutS, 0.35, 0.845, 'Stoke @ 1Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[150, 250] yvalues=[127, 127] PlotS, xvalues, yvalues, Psym=7 XYoutS, 0.35, 0.825, 'Tilt Angle', Alignment=0.0, /Normal, Charsize=1.0 device, /close ; closes device set_plot, 'x' ; makes it so that the plot goes to the screen again ;--------------> Using unscaled data <------------- set_plot, 'ps' Device, filename='DMstroketilt.ch2notscaled.ps', Xoffset=0, Yoffset=0, Xsize=7.0, Ysize=7.0, /Inches plot, freq5, size5a, Xrange=[20, 900], Yrange=[0,42], Xstyle=1, Ystyle=8, Psym=-4, position = [0.15, 0.15, 0.85, 0.95], Title='DM Test Ch. #2: Stroke and Angle vs. Frequency, unscaled data', Ytitle = 'Spot Motion (mm)', Xtitle='Frequency (Hz)' oplot, freq10, size10a, Psym=-2 oplot, freq3, size3a, Psym=-5 oplot, freq1, size1a, Psym=-6 Axis, Yaxis=1, Yrange=[5.0, 150], /Save, Ytitle ='Angle (degrees)' oplot, freq10, tilt10, Psym=7 oplot, freq5, tilt5, Psym=7 oplot, freq3, tilt3, Psym=7 oplot, freq1, tilt1, Psym=7 xvalues=[500, 600] yvalues=[142, 142] PlotS, xvalues, yvalues, Linestyle=0, Psym=-2 XYoutS, 0.65, 0.905, 'Stoke @ 10Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[500, 600] yvalues=[139, 139] PlotS, xvalues, yvalues, Linestyle=0, Psym=-4 XYoutS, 0.65, 0.885, 'Stoke @ 5Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[500, 600] yvalues=[135, 135] PlotS, xvalues, yvalues, Linestyle=0, Psym=-5 XYoutS, 0.65, 0.865, 'Stoke @ 3Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[500, 600] yvalues=[131, 131] PlotS, xvalues, yvalues, Linestyle=0, Psym=-6 XYoutS, 0.65, 0.845, 'Stoke @ 1Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[500, 600] yvalues=[127, 127] PlotS, xvalues, yvalues Psym=7 XYoutS, 0.65, 0.825, 'Tilt Angle', Alignment=0.0, /Normal, Charsize=1.0 device, /close ; closes device set_plot, 'x' ; makes it so that the plot goes to the screen again ; -----> Frequency on a Log scaling <----- logfreq10 = alog10(freq10) logfreq5 = alog10(freq5) logfreq3 = alog10(freq3) logfreq1 = alog10(freq1) set_plot, 'ps' Device, filename='DMstroketilt.ch2logscaled.ps', Xoffset=0, Yoffset=0, Xsize=7.0, Ysize=7.0, /Inches plot, logfreq5, size5a, Xrange=[1.5, 3.00], Yrange=[5,80], Xstyle=1, Ystyle=8, Psym=-4, position = [0.15, 0.15, 0.85, 0.95], Title='DM Test Ch. #2: Stroke and Angle vs. Log Frequency', Ytitle = 'Spot Motion (mm)', Xtitle='Log Frequency (Hz)' oplot, logfreq10, size10b, Psym=-5 oplot, logfreq3, size3b, Psym=-5 oplot, logfreq1, size1b, Psym=-6 Axis, Yaxis=1, Yrange=[5.0, 150], /Save, Ytitle ='Angle (degrees)', Ystyle=1 oplot, logfreq10, tilt5, Psym=7 oplot, logfreq5, tilt5, Psym=7 oplot, logfreq3, tilt3, Psym=7 oplot, logfreq1, tilt1, Psym=7 xvalues=[2.1, 2.2] yvalues=[142, 142] PlotS, xvalues, yvalues, Linestyle=0, Psym=-2 XYoutS, 0.3, 0.90, 'Stoke @ 10Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[2.1, 2.2] yvalues=[138, 138] PlotS, xvalues, yvalues, Linestyle=0, Psym=-4 XYoutS, 0.3, 0.877, 'Stoke @ 5Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[2.1, 2.2] yvalues=[134, 134] PlotS, xvalues, yvalues, Linestyle=0, Psym=-5 XYoutS, 0.3, 0.855, 'Stoke @ 3Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[2.1, 2.2] yvalues=[129, 129] PlotS, xvalues, yvalues, Linestyle=0, Psym=-6 XYoutS, 0.3, 0.830, 'Stoke @ 1Vpp', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[2.1, 2.2] yvalues=[125, 125] PlotS, xvalues, yvalues, Linestyle=1, Psym=-7 XYoutS, 0.3, 0.810, 'Tilt Angle', Alignment=0.0, /Normal, Charsize=1.0 device, /close ; closes device set_plot, 'x' ; makes it so that the plot goes to the screen again ; ----> Analysis of X and Y stroke <----- tilt10radians = tilt10 / 57.296 tilt5radians = tilt5 / 57.296 tilt3radians = tilt3 / 57.296 tilt1radians = tilt1 / 57.296 X10 = COS(tilt10radians) * size10b X5 = COS(tilt5radians) * size5a X3 = COS(tilt3radians) * size3b X1 = COS(tilt1radians) * size1b Y10 = size10b * SIN(tilt10radians) Y5 = size5a * SIN(tilt5radians) Y3 = size3b * SIN(tilt3radians) Y1 = size1b * SIN(tilt1radians) set_plot, 'ps' Device, filename='DMxyscaled.ch2.ps', Xoffset=0, Yoffset=0, Xsize=7.0, Ysize=7.0, /Inches plot, freq5, X5, Xrange=[20, 900], Yrange=[0.0, 70], Xstyle=1, Ystyle=1, Psym=-4, position = [0.15, 0.15, 0.85, 0.95], Title='DM Test Ch. #2: X and Y Stroke vs. Frequency', Ytitle = 'Spot Motion (mm)', Xtitle='Frequency (Hz)' oplot, freq10, abs(X10), Psym=-2 oplot, freq3, abs(X3), Psym=-5 oplot, freq1, abs(x1), Psym=-6 oplot, freq10, abs(Y10), Psym=-2, Linestyle=1 oplot, freq5, abs(Y5), Psym=-4, Linestyle=1 oplot, freq3, abs(Y3), Psym=-5, Linestyle=1 oplot, freq1, abs(Y1), Psym=-6, Linestyle=1 xvalues=[100, 180] yvalues=[65, 65] PlotS, xvalues, yvalues, Linestyle=0, Psym=-4 XYoutS, 0.3, 0.89, 'X absolute value', Alignment=0.0, /Normal, Charsize=1.0 xvalues=[100, 180] yvalues=[63, 63] PlotS, xvalues, yvalues, Linestyle=1, Psym=-4 XYoutS, 0.3, 0.865, 'Y absolute value', Alignment=0.0, /Normal, Charsize=1.0 device, /close ; closes device set_plot, 'x' ; makes it so that the plot goes to the screen again