Spectral Resolution of the Double Pendulum

advertisement
Spectral Resolution of the Double Pendulum
by Reinaldo Baretti Machín
www.geocities.com/serienumerica
www.geocities.com/serienumerica2
reibaretti2004@yahoo.com
References:
1. CLASSICAL MECHANICS by Herbert Goldstein (Hardcover 1951)
2. Classical Dynamics of Particles and Systems by Stephen T.
Thornton and Jerry B. Marion
3. Course of Theoretical Physics : Mechanics (Course of Theoretical Physics)
by E M Lifshitz and L D Landau (Paperback - Jan 1, 1982)
4. Theoretical Physics (Dover Phoenix Editions) by A. S. Kompaneyets
(Hardcover - Feb 20, 2003)
The purpose of this note is to find by numerical means, without solving the
characteristic equation of the problem, the eigenfrequencies of a system of
coupled oscillators. The method can be extended any number of coupled
oscillators.
A FORTRAN CODE is provided below.
Double pendulum with unequal masses.
The equations of motion for small oscillations of the double pendulum
shown in the figure are:
(1)
We solve them numerically employing finite differences.
Only one pendulum is set with an initial amplitude and zero speed.
θ1(0)= (10.*π/180) radians , (dθ1/dt)t=0 =0. ;
(2)
θ2(0)=0. ,
(dθ2/dt)t=0 =0.
The eigenfrequencies calculated analytically are
w1= sqrt((g/L)*.5*(6.-sqrt(24.))) = 2.32271385 (rad/s) ,
w2= sqrt((g/L)*.5*(6.+sqrt(24.))) = 7.30787277 (rad/s) .
The solutions θ1(t) and θ2(t) are plotted fig1.
(3)
Double pendulum
2.50E-01
2.00E-01
1.50E-01
radians
1.00E-01
5.00E-02
0.00E+00
0.00E+00
theta1
theta2
5.00E-01
1.00E+00
1.50E+00
2.00E+00
-5.00E-02
2.50E+00
3.00E+00
3.50E+00
coupled
-1.00E-01
-1.50E-01
-2.00E-01
t(s)
To detect the eigenfrequencies, the following set of integrals are computed
(∫ sin( ωt ) θ1(t) dt ) 2 , ( ∫ cos( ωt ) θ1(t) dt ) 2 , (∫ sin( ωt ) θ2(t) dt ) 2 and
( ∫ cos( ωt ) θ2(t) dt ) 2 .
The frequency omega ω is varied from 0 to ωfinal = 5.(g/L)1/2 .
The time integral extends from 0≤ t ≤ 3.17 s , the same limits used in
figure 1.
We can see at a glance from figures 2 and 3 where the eigenfrequencies are
located. They coincide with maxima of the “cosine ” integral and minima of
the “sine” integral.
The integrals
(∫ sin( ωt ) θ1(t) dt ) 2 and ( ∫ cos( ωt ) θ1(t) dt ) 2 are plotted
against ω in Figure 2.
2.50E-02
2.00E-02
1.50E-02
sin
cos
1.00E-02
5.00E-03
0.00E+00
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-5.00E-03
w (rad/s)
The integrals
(∫ sin( ωt ) θ2(t) dt ) 2 and ( ∫ cos( ωt ) θ2(t) dt ) 2 are plotted
against ω in Figure 3.
Integrals of theta 2 solution
4.00E-02
3.50E-02
3.00E-02
2.50E-02
2.00E-02
sin
cos
1.50E-02
1.00E-02
5.00E-03
0.00E+00
0
1
2
3
4
5
6
7
8
9
-5.00E-03
w (rad/s)
c double pendulum
real L
data L ,g /1.,9.8/
dimension teta1(0:5000), teta2(0:5000)
a1(j) = -(3.*g/L)*(teta1(j)-(2./3.)*teta2(j) )
a2(j) = (3.*g/L)*(teta1(j)-teta2(j) )
pi=2.*asin(1.)
anglei=10.*pi/180.
tscale=sqrt(L/g)
print*,'tscale=', tscale
dt=tscale/100.
tf=10.*tscale
print*,'w1,w2,tscale,dt=',w1,w2,tscale,tf
print*,' '
nstep=int(tf/dt)
kp=int(float(nstep)/60.)
kount=kp
c initial conditions
10
11
12
13
14
15
teta1(0)= anglei
teta1(1)=teta1(0)
teta2(0)=0.
teta2(1)=teta2(0)
print*,'tscale, dt, nstep=',tscale, dt, nstep
print*,' '
print 100, 0., teta1(0), teta2(0)
do 10 i=2,nstep
t=dt*float(i)
teta1(i)=2.*teta1(i-1)-teta1(i-2) + dt**2*a1(i-1)
teta2(i)=2.*teta2(i-1)-teta2(i-2) + dt**2*a2(i-1)
if(i.eq.kount)then
print 100 , t , teta1(i), teta2(i)
kount=kount+kp
endif
10 continue
100 format(1x,'t, teta1(rad), teta2=',3(4x,e10.3))
print*,' '
omegaf=5.*sqrt(g/L)
call spectra(teta1,omegaf,tf,nstep,dt)
stop
end
subroutine spectra(teta1,omegaf,tf,nstep,dt)
dimension teta1(0:5000),aintes(500) ,aintec(500)
fs(t,ii)=sin(omega*t)*teta1(ii)
fc(t,ii)=cos(omega*t)*teta1(ii)
n=150
dw=omegaf/float(n)
omegai=0.
do 10 i=1,n
omega=float(i)*dw
sumas=0.
sumac=0.
do 20 j=1,nstep
t=dt*float(j)
sumas=sumas+(dt/2.)*(fs(t,j) +fs(t-dt,j-1) )
sumac=sumac+(dt/2.)*(fc(t,j) +fc(t-dt,j-1) )
20 continue
aintes(i)=sumas
aintec(i)=sumac
10 continue
do 30 i=1,n
print 100, float(i)*dw , aintes(i)**2 ,aintec(i)**2
30 continue
100 format(1x,'w,ints,intc=', 3(4x,e10.3))
return
end
Download