meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:start [18 December 2020 08:10] – created maylinschiffelholza_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:start [ 6 January 2021 18:42] (current) – [Versuchsaufbau] finmueller
Line 28: Line 28:
 den Start erleichtern. Sie können es nach Belieben löschen und durch Ihre  den Start erleichtern. Sie können es nach Belieben löschen und durch Ihre 
 eigenen inhalte ersetzen. </note> eigenen inhalte ersetzen. </note>
- 
-===== Computerprogramm ===== 
-Dokumentieren Sie hier im Wiki das Programm, das Sie für die Lösung der Bewegungsgleichung des Besenstiels geschrieben haben. Dafür eignet sich dafür besonders gut die Umgebung <nowiki><code></nowiki>. Wenn Sie dieser Umgebung mitteilen, in welcher Sprache das Programm geschrieben wurde wird die Syntax automatisch farbig hervorgehoben. ([[doku>de:wiki:syntax#syntax-hervorhebung|Dokumentation dazu]]) ((Die Liste der Programmiersprachen in der deutschsprachigen Dokumentation ist bei weitem nicht vollständig. Siehe die [[doku>wiki:syntax#syntax_highlighting|englische Variante]]))  
- 
-Außerdem ist es möglich einen Link zum Download des präsentierten Programm-Codes anzuzeigen. Dazu geben Sie in dem einleitenden code-Tag einen Dateinamen an. Der Download bezieht sich unmittelbar auf das Im Editor eingetragene Programmstück. Ein getrennter Upload ist nicht nötig. 
- 
-Beispiel: 
-<code><code c [enable_line_numbers="true"] hello-besenstiel-world.c > 
-#include <stdio.h> 
-int main() 
-{ 
-   printf("Hello, World!"); 
-   return 0; 
-} 
-</code> 
-wird dargestellt als 
-<code c [enable_line_numbers="true"] hello-besenstiel-world.c > 
-#include <stdio.h> 
-int main() 
-{ 
-   printf("Hello, World!"); 
-   return 0; 
-} 
-</code> 
  
 ===== Bilder einbinden ===== ===== Bilder einbinden =====
Line 69: Line 45:
   * [[:wiki:advanced_user_hints|noch mehr lokal installierte Erweiterungen]]   * [[:wiki:advanced_user_hints|noch mehr lokal installierte Erweiterungen]]
  
 +===== Versuchsaufbau =====
  
 +Zur Durchführung des Versuches haben wir einen Besenstiel, eine Tröte, ein Handtuch, einen Zollstock und zwei Endgeräte mit installierter phyphox-App genutzt. \\
 +{{:a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:benutze-dinge-2.jpg}}\\
 +{{:a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:app-1.jpg}}\\
 +Das Handtuch dient herbei lediglich als Unterlage, um den Boden vor Schäden zu bewahren; mit dem Zollstock wird die Länge des Besenstiels bestimmt. Diese bleibt für die Messreihe konstant und beträgt in meinem Fall 128,5 cm +- 0,1 cm, wie auf den folgenden Bildern zu sehen ist.\\
 +{{:a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:zollstock.jpg}}\\
 +{{:a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:groesse.jpg}}\\
 +Die Durchführung wird durch das folgende Video veranschaulicht:\\
 +{{:a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:ablauf.mp4}}\\
 +Folgende Messwerte wurden aufgenommen:\\
 +{{:a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:messwerte.png}}\\
 +Nun wiederholen wir die Messung mit einem Besenstiel mit einer anderen Länge. Die beträgt 139,7 cm +- 0,1 cm, wie hier zu sehen. 
 +{{ :a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:pxl_20210102_133649803_2.jpg?}}\\
 +{{ :a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:pxl_20210102_134055742_2.jpg?}}\\
 +Folgende Messwerte wurden aufgenommen:\\
 +{{:a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:besenstiel.jpg|}}\\
 +Um den Einfluss des Luftwiederstands zu untersuchen, haben wir an einen Stiel Pappe geklebt und so die Fläche vergrößert. Zuerst haben wir eine Pappe mit einer Oberfläche von 0,06m^2 und danach eine mit 0,12m^2. Dies ist hier zu sehen:\\
 +{{:a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:pappe1.jpg?400|}}{{ :a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:pappe2.jpg?400|}}\\
 +Folgende Messwerte wurden aufgenommen:\\
 +{{:a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:img_f699a0f25331-1.jpeg?400|}}
 +{{ :a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:fuck.jpeg?400|}}\\
 +
 +===== Computerprogramm =====
 +Das folgende Computerprogramm löst die DGL numerisch mittels Zeitschrittverfahren.
 +<code python [enable_line_numbers="true"] Zeitschrittverfahren.py> 
 +import numpy as np
 +import matplotlib.pyplot as plt
 +
 +#define the constants
 +l = 1.45 #length of the broomstick
 +g = 9.81 
 +tau = np.sqrt((2 * l) / (3 * g))
 +
 +#define the second derivation of phi
 +def dd_phi(phi):
 +    a = np.sin(phi) / (tau ** 2)
 +    return a
 +
 +#define the algorythmen
 +def iteration(phi0, t0, d_phi0, dd_phi, steps_count, steps_wide):
 +    values = [[phi0, t0, d_phi0]]
 +  
 +    i = 0
 +    t = t0
 +    while i <= steps_count:
 +        
 +        next_d_phi = values[i][2] + dd_phi(values[i][0]) * steps_wide
 +        
 +        next_phi = values[i][0] + values[i][2] * steps_wide
 +
 +        #break, when stick reaches the ground
 +        if next_phi >= (np.pi / 2.0):
 +            break
 +        
 +        t = values[i][1] + steps_wide
 +        
 +        new_values = [next_phi, t, next_d_phi]
 +        values.append(new_values)
 +        
 +        i += 1 
 +    return(values) 
 +
 +#define function to reproduce graphic 3
 +def time_ankle():
 +    c = 0.2 #starting ankel
 +    ankel = [] #empty list for ankels
 +    time = [] #empty list for times
 +    while c <= 1.4:
 +        iterate_values = iteration(c, 0, 0, dd_phi, 10 ** 7, 10 ** -2)
 +        ankel.append(c)
 +        
 +        new_time = [i[1] for i in iterate_values]
 +        last_new_time = new_time[-1] #last time in list is time needed to fall
 +        time.append(last_new_time)
 +        
 +        c = c + 0.05
 +    return(ankel, time)
 +
 +x, y = time_ankle()
 +
 +fig = plt.figure()
 +ax = fig.add_subplot(1,1,1)
 +ax.set_title('Fallzeit')#title of the plot
 +ax.set_xlabel('Startwinkel in rad')#label of x axes
 +ax.set_ylabel('Zeit in s')#label of y axes
 +ax.set_xlim(0, 1.4) #interval of x value
 +ax.set_ylim(0, 1) #inerval of y value
 +ax.grid()
 +ax.plot(x, y)
 +plt.show()
 +
 +
 +#values for plotting the numerical solution and experimental values
 +#gives the needed time to fall for starting ankle
 +def diagram_points(phi0):
 +    values = iteration(phi0, 0, 0, dd_phi, 10 ** 7, 10 ** -2)
 +    
 +    new_time = [i[1] for i in values]
 +    last_new_time = new_time[-1] 
 +    diagramm = [phi0, last_new_time]
 +
 +    return (diagramm)
 +
 +#define the new constants for first broomstick
 +l = 1.285 #length of the first broomstick
 +g = 9.81 
 +tau = np.sqrt((2 * l) / (3 * g))
 +
 +#same ankels as in the experiment
 +d = diagram_points(0.1308996938995747)
 +e = diagram_points(0.2617993877991494)
 +f = diagram_points(0.4363323129985824)
 +g = diagram_points(0.6981317007977318)
 +h = diagram_points(0.8726646259971648)
 +i = diagram_points(1.0471975511965976)
 +j = diagram_points(1.2217304763960306)
 +
 +print("Messwerte erster Besen:")
 +print(d, e, f, g, h, i, j)
 +
 +#uncertainties for first broomstick
 +l = 1.284 #minimal length of the first broomstick
 +g = 9.81 
 +tau = np.sqrt((2 * l) / (3 * g))
 +
 +#same ankels as in the experiment
 +dmin = diagram_points(0.1308996938995747)
 +emin = diagram_points(0.2617993877991494)
 +fmin = diagram_points(0.4363323129985824)
 +gmin = diagram_points(0.6981317007977318)
 +hmin = diagram_points(0.8726646259971648)
 +imin = diagram_points(1.0471975511965976)
 +jmin = diagram_points(1.2217304763960306)
 +
 +print("Minimum erster Besen:")
 +print(dmin, emin, fmin, gmin, hmin, imin, jmin)
 +
 +
 +l = 1.286 #maximal length of the first broomstick
 +g = 9.81 
 +tau = np.sqrt((2 * l) / (3 * g))
 +
 +#same ankels as in the experiment
 +dmax = diagram_points(0.1308996938995747)
 +emax = diagram_points(0.2617993877991494)
 +fmax = diagram_points(0.4363323129985824)
 +gmax = diagram_points(0.6981317007977318)
 +hmax = diagram_points(0.8726646259971648)
 +imax = diagram_points(1.0471975511965976)
 +jmax = diagram_points(1.2217304763960306)
 +
 +print("Maximum erster Besen:")
 +print(dmax, emax, fmax, gmax, hmax, imax, jmax)
 +
 +
 +#define the new constants for second broomstick
 +l = 1.397 #length of the second broomstick
 +g = 9.81 
 +tau = np.sqrt((2 * l) / (3 * g))
 +
 +#same ankels as in the experiment
 +k = diagram_points(0.1308996938995747)
 +l = diagram_points(0.2617993877991494)
 +m = diagram_points(0.4363323129985824)
 +n = diagram_points(0.6981317007977318)
 +o = diagram_points(0.8726646259971648)
 +p = diagram_points(1.0471975511965976)
 +q = diagram_points(1.2217304763960306)
 +
 +print("Messwerte zweiter Besen:")
 +print(k, l, m, n, o, p, q)
 +
 +#uncertainties for second broomstick
 +l = 1.396 #minimal length of the second broomstick
 +g = 9.81 
 +tau = np.sqrt((2 * l) / (3 * g))
 +
 +#same ankels as in the experiment
 +kmin = diagram_points(0.1308996938995747)
 +lmin = diagram_points(0.2617993877991494)
 +mmin = diagram_points(0.4363323129985824)
 +nmin = diagram_points(0.6981317007977318)
 +omin = diagram_points(0.8726646259971648)
 +pmin = diagram_points(1.0471975511965976)
 +qmin = diagram_points(1.2217304763960306)
 +
 +print("Minimum zweiter Besen:")
 +print(kmin, lmin, mmin, nmin, omin, pmin, qmin)
 +
 +l = 1.398 #maximal length of the second broomstick
 +g = 9.81 
 +tau = np.sqrt((2 * l) / (3 * g))
 +
 +#same ankels as in the experiment
 +kmax = diagram_points(0.1308996938995747)
 +lmax = diagram_points(0.2617993877991494)
 +mmax = diagram_points(0.4363323129985824)
 +nmax = diagram_points(0.6981317007977318)
 +omax = diagram_points(0.8726646259971648)
 +pmax = diagram_points(1.0471975511965976)
 +qmax = diagram_points(1.2217304763960306)
 +
 +print("Maximum zweiter Besen:")
 +print(kmax, lmax, mmax, nmax, omax, pmax, qmax)
 +</code>