Animation eines Fadenpendels mit VPython

Das Beispiel zeigt, wie mit dem Modul VPython die Pendelbewegung eines Fadenpendels im 3D-Raum animiert werden kann.

Die Pendelbewegung eines Fadenpendels wird durch zwei Differenzialgleichungen 1. Ordnung beschrieben:

\[\frac{d\varphi }{dt} =\omega \]

\[\frac{d\omega }{dt} =-\frac{g}{l} \sin \varphi \]

Dieses DGL-System lässt sich leicht mit dem einfach zu implementierenden und ressourcenschonenden Euler-Verfahren lösen.

#Animation einer Pendelbewegung
from vpython import *
y0=-5.  #Verschiebung y-Achse
b=5.    #Breite der Decke
l=8.    #Länge des Pendels
phi=45. #Auslenkung
r=0.5   #Radius der Kugel
scene.width=600
scene.height=600
scene.center =vector(0,y0,0)
scene.range=1.5*b
scene.background = color.white
box(size=vector(b,b/20.,b/2.),color=color.gray(0.8)) #Decke
stange=cylinder(axis=vector(0,l,0),radius=0.05)
masse = sphere(radius=r,color=color.red)
masse.pos=vector(0,stange.pos.y,0)
g=9.81   #Erdbeschleunigung
w02=g/l  #Quadrat der Kreisfrequenz
phi=radians(phi) 
w=0.     #Anfangswinkelgeschwindigkeit
dt=0.02                 #Zeitschrittweite
while True:             #Beginn der Animationsschleife
    rate(100)           #Wiederholungen pro Sekunde
    phi=phi+w*dt        #Lösung der DGL 
    w=w-w02*sin(phi)*dt #mit dem Eulerverfahren
    x= l*sin(phi)       #x-Koordinaten berechnen
    y=-l*cos(phi)       #y-Koordinaten berechnen
    stange.axis=vector(x,y,0)
    masse.pos  =vector(x,y,0)

Ausgabe

vpyton fadenpendel

Analyse

Nach dem Start des Programms schwingt das Pendel im virtuellen 3D-Raum des Browserfensters. Bei jedem Durchlauf der while-Schleife bewegt sich das Pendel um den Betrag des Winkels ω⋅dt. Durch die Änderung der Zeitschrittweite dt kann man die Geschwindigkeit der Pendelbewegung beeinflussen. Das DGL-System wird mit dem Summenalgorithmus des Euler-Verfahrens gelöst. Die Dämpfung wurde nicht berücksichtigt.

Besuchen Sie die Seite von VPython.

Startseite NumPy Matplotlib SciPy SymPy