Announcement

Collapse
No announcement yet.

Induced voltage vs. string displacement

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Induced voltage vs. string displacement

    Hello,
    Has anyone found a good equation relating string displacement (vibration amplitude) and induced voltage?
    I found this paper but I can't reproduce the numerical example it gives (I get much lower voltages).
    Regards,
    Esteban

  • #2
    Since the law induction contains the time derivative, it is really the string velocity that is related to the induced voltage. But the velocity can be specified by an amplitude at a particular frequency. Is that what you are doing?
    Originally posted by elucches View Post
    Hello,
    Has anyone found a good equation relating string displacement (vibration amplitude) and induced voltage?
    I found this paper but I can't reproduce the numerical example it gives (I get much lower voltages).
    Regards,
    Esteban

    Comment


    • #3
      Both frequency and amplitude of vibration are important.

      What I did was to consider the special case when both horizontal and vertical displacements are sinusoidal and in phase, assume certain maximum displacement and give the other variables the values the author of the paper used for his example, then apply equation 13 from page 5 (the exact one, not the approximation).

      I can't attach the spreadsheet -the server says "invalid file"- so I'm attaching its view, as a pdf file.

      Vibrating string induced voltage.pdf

      Thank you very much for answering, Mike.
      I know it's just theory, but I've been curious about the exact form of V(x) for a long time.

      Regards,
      Esteban

      Comment


      • #4
        Hi Esteban,

        I thought the easiest way to look at this would be to write some Python code using the approximate version of equation 13; the parameters you have chosen seem to be in the range that would give reasonable results with the approximation.

        My Python code:

        import numpy as np


        B_0 = 0.1
        a = 0.000127
        w = 0.01
        urel = 100
        xpk = 0.0005
        h = 0.004
        ypk = 0.0005
        f = 100
        N = 1000

        t = np.linspace(0., 1./f, num = 256)
        omega = 2.*np.pi*f
        x = xpk*np.sin(omega*t)
        y = x
        vx = omega*xpk*np.cos(omega*t)
        vy = vx
        px = 2.*x*vx*(3*h**2 - w**2/4.)/((h**2 + w**2/4)**3)
        py = 2.*h*vy/((h**2 + w**2/4)**2)
        ufac = (urel - 1.)/(urel + 1.)
        Vx = N*B_0*a**2*w**2*ufac*(px)
        Vy = N*B_0*a**2*w**2*ufac*(py)
        Vt = N*B_0*a**2*w**2*ufac*(px + py)

        The results it gives are somewhat larger than what you show in the plot on the pdf from the spread sheet. It looks as though we differ in the voltage generated from the y component (towards/away from the guitar). This conclusion comes from looking at the shape of the waveform. You have a significantly non sinusoidal result, while I have very little departure from a sinusoid, and so I suspect our results form the x component are similar, but different in the y component. I have attached a plot with the total, the y part, and the x part.

        I think my results are smaller than they should be also.

        example.pdf


        Originally posted by elucches View Post
        Both frequency and amplitude of vibration are important.

        What I did was to consider the special case when both horizontal and vertical displacements are sinusoidal and in phase, assume certain maximum displacement and give the other variables the values the author of the paper used for his example, then apply equation 13 from page 5 (the exact one, not the approximation).

        I can't attach the spreadsheet -the server says "invalid file"- so I'm attaching its view, as a pdf file.

        [ATTACH]35138[/ATTACH]

        Thank you very much for answering, Mike.
        I know it's just theory, but I've been curious about the exact form of V(x) for a long time.

        Regards,
        Esteban

        Comment


        • #5
          I am puzzled by the results in the paper. It appears that equation 13, in the approximate form, has only one source of non-linearity, the frequency doubling from motion in the x direction (a result you can deduce from symmetry). For the x direction you can see that this doubling comes from multiplying x by the velocity in x. It would appear that the motions have to be quite large in order to get the non-linear effects that the exact equation exhibits. At first I thought that these effects were not there, but it looks as though they are if you move the string far enough. I will implement the exact equation 13 to see just how big the motions have to be, maybe too big to be realistic.

          Originally posted by elucches View Post
          Both frequency and amplitude of vibration are important.

          What I did was to consider the special case when both horizontal and vertical displacements are sinusoidal and in phase, assume certain maximum displacement and give the other variables the values the author of the paper used for his example, then apply equation 13 from page 5 (the exact one, not the approximation).

          I can't attach the spreadsheet -the server says "invalid file"- so I'm attaching its view, as a pdf file.

          [ATTACH]35138[/ATTACH]

          Thank you very much for answering, Mike.
          I know it's just theory, but I've been curious about the exact form of V(x) for a long time.

          Regards,
          Esteban
          Last edited by Mike Sulzer; 08-04-2015, 08:33 PM. Reason: I did not see al the effects in the equation at first.

          Comment


          • #6
            OK, I was wrong about the exact equation needing larger amplitudes.

            Using this Python code:

            import numpy as np


            B_0 = 0.1
            a = 0.000127
            w = 0.01
            urel = 100
            xpk = 0.0005
            h = 0.004
            ypk = 0.0005
            f = 100
            N = 1000


            t = np.linspace(0., 1./f, num = 256)
            omega = 2.*np.pi*f
            x = xpk*np.sin(omega*t)
            y = x
            vx = omega*xpk*np.cos(omega*t)
            vy = vx


            # This is for the approximation to equation 13
            px = 2.*x*vx*(3*h**2 - w**2/4.)/((h**2 + w**2/4)**3)
            py = 2.*h*vy/((h**2 + w**2/4)**2)
            ufac = (urel - 1.)/(urel + 1.)
            Vx = N*B_0*a**2*w**2*ufac*(px)
            Vy = N*B_0*a**2*w**2*ufac*(py)
            Vt = N*B_0*a**2*w**2*ufac*(px + py)


            # This is for the exact version of equation 13
            pxnum = 3*(y + h)**4 + 2*(x**2 + w**2/4)*(y + h)**2 - (x**2 - w**2/4)**2
            den = ( (x**2 - w**2/4)**2 + 2.*(x**2 + w**2/4.)*(y + h)**2 + (y + h)**4 )**2
            pynum = 2.*(y + h)**5 - 4.*(x**2 - w**2/4)*(y + h)**3 + (6*x**4 - x**2*w**2/2. - w**4/8)*(y + h)


            Vxe = N*B_0*a**2*w**2*ufac*2.*x*vx*pxnum/den
            Vye = N*B_0*a**2*w**2*ufac*vy*pynum/den
            Vte = Vxe + Vye

            I get your results as closely as I can see.

            exactV.pdf

            The mystery of the small amplitude remains.



            Originally posted by elucches View Post
            Both frequency and amplitude of vibration are important.

            What I did was to consider the special case when both horizontal and vertical displacements are sinusoidal and in phase, assume certain maximum displacement and give the other variables the values the author of the paper used for his example, then apply equation 13 from page 5 (the exact one, not the approximation).

            I can't attach the spreadsheet -the server says "invalid file"- so I'm attaching its view, as a pdf file.

            [ATTACH]35138[/ATTACH]

            Thank you very much for answering, Mike.
            I know it's just theory, but I've been curious about the exact form of V(x) for a long time.

            Regards,
            Esteban

            Comment


            • #7
              Since the exact and approximate forms of equation 13 do not give results that are close enough, I tried deriving the approximate result from the exact result. There appears to be a sign error; in the exact expression for the term involving the y velocity, it appears that - (w**4)/8 should be + (w**4)/8. Then with your parameters the result from exact expression is close to agreement to result of the approximate expression that I first computed. That is, it is close to linear as I expected it should be. When I can get some time later, I will make and post a plot and make another with larger string displacement to get the nonlinearity up to what the author shows in his results.

              Originally posted by elucches View Post
              Both frequency and amplitude of vibration are important.

              What I did was to consider the special case when both horizontal and vertical displacements are sinusoidal and in phase, assume certain maximum displacement and give the other variables the values the author of the paper used for his example, then apply equation 13 from page 5 (the exact one, not the approximation).

              I can't attach the spreadsheet -the server says "invalid file"- so I'm attaching its view, as a pdf file.

              [ATTACH]35138[/ATTACH]

              Thank you very much for answering, Mike.
              I know it's just theory, but I've been curious about the exact form of V(x) for a long time.

              Regards,
              Esteban

              Comment


              • #8
                Originally posted by Mike Sulzer View Post
                Since the exact and approximate forms of equation 13 do not give results that are close enough, I tried deriving the approximate result from the exact result. There appears to be a sign error; in the exact expression for the term involving the y velocity, it appears that - (w**4)/8 should be + (w**4)/8. Then with your parameters the result from exact expression is close to agreement to result of the approximate expression that I first computed. That is, it is close to linear as I expected it should be. When I can get some time later, I will make and post a plot and make another with larger string displacement to get the nonlinearity up to what the author shows in his results.
                You're right about the sign, Mike.
                I had only checked the approximation for the x component.

                What worries me is the amplitude, that stays low whichever form (exact and approximate) one uses.
                I followed the reasoning in the paper and the only thing I wouldn't have thought of are the second terms in (3) and (4), but I'm no expert in physics and they satisfy the condition of continuity, so I expected to obtain the same graphs as in page 6, which show amplitudes of the order of what most pickups give.

                I'll keep searching.

                Regards,
                Esteban

                Comment


                • #9
                  Do you see anywhere he specifies the string displacement for the results in his figures? I do not; since he sees substantial nonlinearity (which I do not using your x and y peak displacements now that the sign is fixed), I think he is using a large displacement, and that is why he sees large voltages as well as significant levels of harmonics. I am wondering if there is not some other factor in this analysis that needs fixing. Which brings up the second terms of (3) and (4) that you mentioned. The second term in (4) is the potential outside the string due to the magnetization induced in the string by B_0. The field should be close to a dipole field at the coil (small source relative to the distance observation point), and so the scalar potential should go as 1/(r**2), not 1/r. This is something to think about.

                  Originally posted by elucches View Post
                  You're right about the sign, Mike.
                  I had only checked the approximation for the x component.

                  What worries me is the amplitude, that stays low whichever form (exact and approximate) one uses.
                  I followed the reasoning in the paper and the only thing I wouldn't have thought of are the second terms in (3) and (4), but I'm no expert in physics and they satisfy the condition of continuity, so I expected to obtain the same graphs as in page 6, which show amplitudes of the order of what most pickups give.

                  I'll keep searching.

                  Regards,
                  Esteban

                  Comment


                  • #10
                    No, not a dipole field, I am wrong. the magnetization is extended along a line, and so 1/(r**2) is correct for the field variation.

                    There is a different way to verify that equation 4 (potential outside of string) is correct (except the u_rel term is missing; it is near one in any case) and that the value of A found just after eq 4 is correct. When the permeability is high on one side and low on the other, the magnetic field points perpendicular to the surface (Jackson, third edition, section 5.8, page 194). Thus the theta component of the field is zero; that is, the field points radially. This component is found from the potential with (1/r)(partial (phi) /partial(theta)), which must be zero, requiring the two terms to cancel. This determines equation 4 without using equation three. We already know that the second term must be 1/r, and in order to cancel it must vary as sin(theta). Then the constant A is found by inspection. (The term with u_rel does not appear since we have already assumed that u_rel is large.)

                    The attached file compares the voltages using the exact and approximate eq 13 with the sign fixed. That is, the curves were computed with the previously shown Python code with the sign error fixed but no other changes.

                    There is still no solution to why the voltage is so small.

                    exactvsapprox.pdf

                    Comment


                    • #11
                      Hello Mike,

                      Regarding the maximum displacement used for the examples, I'd sent an e-mail to Kirk McDonald before posting here, but he hasn't answered yet (judging from the list of his interests I guess he has no time to answer).

                      I'm slowly (days at university long gone, job unrelated to music and electronics) checking all the equations in the paper (only 3 remain unchecked by now .

                      Thank you very much for the insight on magnetic potential and eq. 4.
                      I've skimmed some threads where you show your interest in (and capacity for) explaining things to yourself and then to others. I like that.

                      Best regards,
                      Esteban

                      Comment


                      • #12
                        Hi Esteban,

                        I would not expect the field variation (1/(r**2) at large distances to be the same as close the induced magnetization. That is, I would naturally think about a series solution in which the terms that vary more rapidly would die off faster and the (1/(r**2) would be the only remaining significant one. The term could have a very different magnitude in that case.

                        Comment


                        • #13
                          But again I am wrong. If you try for solutions to Laplace's equation for cylindrical coordinates of the form (r**m)sin(theta), you can easily show that 1, and -1 are the only values of m that work. That is r*sin(theta), and (1/r)*sin(theta), just what are needed. Laplace's equation for cylindrical coordinates can be found here:https://en.wikipedia.org/wiki/Del_in...al_coordinates. A similar problem, a permeable sphere in a uniform magnetic field is worked out here using spherical coordinates: Boundary value problems with ferromagnets. This is an example that is very similar to our problem. I think Prof. McDonald's solution is correct. Perhaps we are leaving out some obvious factor, or some simple factor is left out of one of the equations.


                          Originally posted by Mike Sulzer View Post
                          Hi Esteban,

                          I would not expect the field variation (1/(r**2) at large distances to be the same as close the induced magnetization. That is, I would naturally think about a series solution in which the terms that vary more rapidly would die off faster and the (1/(r**2) would be the only remaining significant one. The term could have a very different magnitude in that case.

                          Comment


                          • #14
                            The output of the equation can be increased by optimizing the parameters. The first thing I did was to allow separate widths for the coil in the z direction (along the string) and the x direction (across the string). This is necessary because of a simplification in the analysis. The magnetic field is assumed constant along the string (z axis); this is an approximation. Its consequence is that there is partial cancellation of the flux for not so large values of the coil width (w) in the x direction (across the string). This is because field lines go down from the string but then come back up, pointing in the opposite direction and causing cancellation. This does not happen at such small distance in a real pickup because the flux spreads out as the distance from the string is increased in the x direction. Thus I have made wz = .01m, but reduced w in the x direction to .0027m since this gives the most output.

                            The next change is to increase the frequency to 300Hz. Pickups are located where they get the most harmonics, not fundamental, and so even with the No. 6 E string we expect more motion near 300 than 100.

                            N (turns) was increased to 5000.

                            Finally, the separation between coil and string was reduced to .0024m (about 3/32 inch) since this is the distance usually used to get high output.

                            These changes make quite a difference as the attached plot shows.

                            optimizedParams.pdf

                            I have changed the Python code so that there is a pickup class. This makes it easier to try different parameters (while keeping the old results available through the use of multiple objects) in order to optimize the results. Only the parameters that are changed when making a new case need to be specified. The attached plot required these two commands:

                            In [289]: pe = pickupv.pv( h = .0024, N = 5000, w = .0027, f = 300.)


                            In [290]: pe.pV()



                            The code (in a file called pickuppv, loaded with 'import pickuppv'):

                            import numpy as np
                            import matplotlib


                            class pv:
                            def __init__(self, B_0 = 0.1,
                            a = 0.000127,
                            w = 0.01,
                            wz = .01,
                            urel = 100,
                            xpk = 0.0005,
                            h = 0.004,
                            ypk = 0.0005,
                            f = 100.,
                            N = 1000,
                            relang = 0.):


                            self.B_0 = B_0
                            self.a = a
                            self.w = w
                            self.wz = wz
                            self.urel =urel
                            self.xpk = xpk
                            self.h = h
                            self.ypk = ypk
                            self.f = f
                            self.N = N
                            self.relang = relang
                            omega = 2.*np.pi*f
                            self.omega = omega


                            t = np.linspace(0., 1./f, num = 256)
                            self.t = t
                            x = xpk*np.sin(omega*t + relang)
                            self.x = x
                            y = ypk*np.sin(omega*t)
                            self.y = y
                            vx = omega*xpk*np.cos(omega*t + relang)
                            self.vx = vx
                            vy = omega*ypk*np.cos(omega*t)
                            self.vy = vy


                            # This is for the approximation to equation 13
                            px = 2.*x*vx*(3*h**2 - w**2/4.)/((h**2 + w**2/4)**3)
                            py = 2.*h*vy/((h**2 + w**2/4)**2)
                            ufac = (urel - 1.)/(urel + 1.)
                            self.Vx = N*B_0*a**2*wz*w*ufac*(px)
                            self.Vy = N*B_0*a**2*wz*w*ufac*(py)
                            self.Vt = N*B_0*a**2*wz*w*ufac*(px + py)


                            # This is for the exact version of equation 13
                            pxnum = 3*(y + h)**4 + 2*(x**2 + w**2/4)*(y + h)**2 - (x**2 - w**2/4)**2
                            den = ( (x**2 - w**2/4)**2 + 2.*(x**2 + w**2/4.)*(y + h)**2 + (y + h)**4 )**2
                            pynum = 2.*(y + h)**5 - 4.*(x**2 - w**2/4)*(y + h)**3 + (6*x**4 - x**2*w**2/2. + w**4/8)*(y + h)


                            self.Vxe = N*B_0*a**2*wz*w*ufac*2.*x*vx*pxnum/den
                            self.Vye = N*B_0*a**2*wz*w*ufac*vy*pynum/den
                            self.Vte = self.Vxe + self.Vye

                            # This is for the simplification of equation 10 by setting x = 0.
                            # (That is, taking the voltage along the y axis and mul. by w^^2
                            # to get the flux.)
                            # (Just a simple check)
                            self.Vya = (self.vy*4.*wz*w*a**2*B_0)/((y + h)**4)

                            # This was used to check the B field to see why cancellation is occuring.
                            def findBy(self):
                            x = np.linspace(-self.w/2., self.w/2., num = 200)
                            self.xb = x
                            self.By = self.B_0*self.a**2*(self.h**2 - x**2)/(x**2 + self.h**2)**2


                            def pV(self):
                            matplotlib.pyplot.clf()
                            matplotlib.pyplot.plot(self.t, self.Vt)
                            matplotlib.pyplot.plot(self.t, self.Vte)
                            # matplotlib.pyplot.plot(self.t, self.Vya)
                            matplotlib.pyplot.xlabel('Time')
                            matplotlib.pyplot.ylabel('Voltage')
                            matplotlib.pyplot.title('Blue: voltage from ex. eq 13, Green: approx. eq 13') # Red: on axis')


                            Originally posted by Mike Sulzer View Post
                            But again I am wrong. If you try for solutions to Laplace's equation for cylindrical coordinates of the form (r**m)sin(theta), you can easily show that 1, and -1 are the only values of m that work. That is r*sin(theta), and (1/r)*sin(theta), just what are needed. Laplace's equation for cylindrical coordinates can be found here:https://en.wikipedia.org/wiki/Del_in...al_coordinates. A similar problem, a permeable sphere in a uniform magnetic field is worked out here using spherical coordinates: Boundary value problems with ferromagnets. This is an example that is very similar to our problem. I think Prof. McDonald's solution is correct. Perhaps we are leaving out some obvious factor, or some simple factor is left out of one of the equations.

                            Comment


                            • #15
                              Great Mike!

                              I've just checked all the equations.
                              I found all but eq. 13 were OK (except for the sign of the terms that depend on "x" or "y" from equations 10 through 12).
                              I found a discrepancy in the last term of the numerator in eq. 13.
                              I still have to recheck it, but I'm attaching a view of the revised spreadsheet (also showing the original and revised equations in readable form) because the amplitude has increased significantly, although still low (but, as I wanted to reproduce McDonald's results, and although I don't know which values he used for "x" and "y", I didn't change his parameters).

                              The assumption McDonald made, that the string is in a uniform magnetic field, is, as you say, affecting not only the amplitude but the shape of the output signal.

                              Another nice approach to this problem is reference 14, but it doesn't give much details.

                              Regards,
                              Esteban

                              Vibrating string induced voltage.pdf

                              Comment

                              Working...
                              X