meta data for this page
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
a_mechanik:kippender_besenstiel:gruppenseiten:gruppe341:start [ 8 January 2021 17:35] – alexandersteding | a_mechanik:kippender_besenstiel:gruppenseiten:gruppe341:start [22 January 2021 13:18] (current) – [Computerprogramm] alexandersteding | ||
---|---|---|---|
Line 162: | Line 162: | ||
====== Computerprogramm ====== | ====== Computerprogramm ====== | ||
- | Für die numerische Berechnung der Bewegunsgleichung wurde der folgende Code in Python geschrieben. | + | Für die numerische Berechnung der Bewegunsgleichung wurde der folgende Code in Python geschrieben. In der überarbeiteten Fassung berechnet er für alle Winkel im Intervall [0,05;1,5] Radiant die Fallzeiten. Die Daten werden automatisch als Plot und formatierte Textdatei zur weiteren Verwendung(z.B. QTIPlot) gespeichert. |
<code python [enable_line_numbers=" | <code python [enable_line_numbers=" | ||
import math | import math | ||
- | # Voreinstellungen | + | import numpy as np |
- | Anfangsbeschleunigung= 9.81 # | + | import matplotlib.pyplot as plt |
- | Anfangsgeschwindigkeit = 0 # Geschwindigkeit zum Zeitpunkt t=0 in m/s | + | ############## |
- | Meta=[] # Liste in der die Berechneten Fallzeiten gespeichert werden | + | Erdbeschleunigung= 9.81 # Erdbeschleunigung |
+ | Meta=[] # Liste in der die Berechneten Fallzeiten gespeichert werden | ||
+ | winkelliste=[] | ||
+ | Berechnungswinkel=0.05 | ||
+ | while Berechnungswinkel <= 1.51: | ||
+ | winkelliste.append(format(Berechnungswinkel,' | ||
+ | Berechnungswinkel += 0.01 | ||
+ | Winkelliste=list(map(float, | ||
- | # | + | ############## |
print(" | print(" | ||
Stablänge = float(input(" | Stablänge = float(input(" | ||
print(" | print(" | ||
Zeitschritt =float(input(" | Zeitschritt =float(input(" | ||
- | Tau= math.sqrt((2*Stablänge)/ | + | ############### |
+ | Tau= math.sqrt((2*Stablänge)/ | ||
+ | for Winkel in Winkelliste: | ||
+ | listewes=[] | ||
+ | Momentanwinkel=Winkel | ||
+ | Momentangeschwindigkeit=0 | ||
+ | while Momentanwinkel < | ||
+ | Beschleunigung= math.sin(Momentanwinkel)/ | ||
+ | Geschwindigkeit= Momentangeschwindigkeit + Zeitschritt*Beschleunigung | ||
+ | neuerwinkel= Momentanwinkel + Zeitschritt*Geschwindigkeit | ||
+ | listewes.append(neuerwinkel) | ||
+ | Momentanwinkel=neuerwinkel | ||
+ | Momentangeschwindigkeit=Geschwindigkeit | ||
- | print(" | + | k=format((len(listewes))*Zeitschritt, |
- | wahl= input(" | + | |
- | wahlf= float(wahl) | + | |
- | if wahlf< | + | ############### |
- | print(" | + | data = np.array([np.array(Winkelliste).astype(np.float) , np.array(Meta).astype(np.float) ]).T #Umwandeln der Winkel |
- | Winkeleins | + | datafile_path |
- | Anfangswinkellistenamen=[Winkeleins] | + | with open(datafile_path, |
- | else : | + | np.savetxt(datafile_id, |
- | print(" | + | |
- | Winkeleins | + | ############### |
- | Winkelzwei | + | xstart= 0 |
- | Winkeldrei | + | xend= 1.6 |
- | Winkelvier | + | xticks= 0.05 |
- | Winkelfünf | + | ystart= 0 |
- | Anfangswinkellistenamen=[Winkeleins,Winkelzwei, Winkeldrei, Winkelvier, Winkelfünf] | + | yend= 1.5 |
- | + | plt.figure(figsize=(20, | |
- | Anfangswinkelliste= list(map(float, | + | plt.grid(True, |
+ | plt.axis([xstart,xend,ystart,yend]) | ||
+ | plt.title(' | ||
+ | plt.xticks(np.arange(xstart, | ||
+ | a=plt.scatter(Winkelliste, | ||
+ | plt.legend([a], | ||
+ | plt.xlabel(' | ||
+ | plt.ylabel(' | ||
+ | plt.savefig(' | ||
+ | plt.close | ||
+ | </ | ||
+ | ===== Überprüfung des Code===== | ||
+ | Um den Code zu verifizieren wird die Fallzeit bei einer Stablänge von 1.45 m bei einem Startwinkel von 0.25 rad und einem Zeitschritt von 0.01 s berechnet. Diese beträgt 0.8 Sekunden. Der Vergleich mit der Grafik aus der Aufgabenstellung bestätigt die Berechnung. | ||
- | # | + | {{ :a_mechanik: |
- | for Anfangswinkel in Anfangswinkelliste: # for Schleife die für jeden Anfangswinkel die Fallzeit berechnet | + | |
- | Startbeschleuni= math.sin(Anfangswinkel)/ | + | |
- | Startgeschwendi= Anfangsgeschwindigkeit +Zeitschritt * Startbeschleuni | + | |
- | Startwinkel = Anfangswinkel + Zeitschritt *Startgeschwendi | + | |
- | Winkelt= Startwinkel | + | |
- | gest= Startgeschwendi | + | |
- | listebes=[Startbeschleuni] | + | |
- | listeges=[Startgeschwendi] | + | |
- | listewes=[] | + | |
- | b=Zeitschritt | + | |
- | while Winkelt | ||
- | bes=math.sin(Winkelt)/ | ||
- | listebes.append(bes) | ||
- | ges= gest + b*bes # | ||
- | listeges.append(ges) | ||
- | wes= Winkelt + b*ges # Berechnen des Winkel | ||
- | listewes.append(wes) | ||
- | Winkelt=wes | ||
- | gest=ges | ||
- | k=format((len(listewes))*Zeitschritt, | ||
- | Meta.append(k) #Einhängen der Fallzeiten in die Liste Meta | ||
- | |||
- | for item, | ||
- | | ||
- | </ | ||
- | ===== Überprüfung des Code===== | ||
- | Um den Code zu verifizieren wird die Fallzeit bei einer Stablänge von 1.45 m bei einem Startwinkel von 0.25 rad und einem Zeitschritt von 0.01 s berechnet. Diese beträgt 0.8 Sekunden. Der Vergleich mit der Grafik aus der Aufgabenstellung bestätigt die Berechnung. | ||
====== Dokumentation von Fehlern ====== | ====== Dokumentation von Fehlern ====== | ||
Ein häufig aufgetauchter systematischer Messfehler, liegt in der gedämpften Schwingung des Besenstiels, | Ein häufig aufgetauchter systematischer Messfehler, liegt in der gedämpften Schwingung des Besenstiels, |