meta data for this page
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
a_mechanik:kippender_besenstiel:gruppenseiten:gruppe340:start [18 December 2020 08:10] – created maylinschiffelholz | a_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. </ | eigenen inhalte ersetzen. </ | ||
- | |||
- | ===== 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 < | ||
- | |||
- | 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: | ||
- | < | ||
- | #include < | ||
- | int main() | ||
- | { | ||
- | | ||
- | | ||
- | } | ||
- | </ | ||
- | wird dargestellt als | ||
- | <code c [enable_line_numbers=" | ||
- | #include < | ||
- | int main() | ||
- | { | ||
- | | ||
- | | ||
- | } | ||
- | </ | ||
===== Bilder einbinden ===== | ===== Bilder einbinden ===== | ||
Line 69: | Line 45: | ||
* [[: | * [[: | ||
+ | ===== 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. \\ | ||
+ | {{: | ||
+ | {{: | ||
+ | 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.\\ | ||
+ | {{: | ||
+ | {{: | ||
+ | Die Durchführung wird durch das folgende Video veranschaulicht: | ||
+ | {{: | ||
+ | Folgende Messwerte wurden aufgenommen: | ||
+ | {{: | ||
+ | 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. | ||
+ | {{ : | ||
+ | {{ : | ||
+ | Folgende Messwerte wurden aufgenommen: | ||
+ | {{: | ||
+ | Um den Einfluss des Luftwiederstands zu untersuchen, | ||
+ | {{: | ||
+ | Folgende Messwerte wurden aufgenommen: | ||
+ | {{: | ||
+ | {{ : | ||
+ | |||
+ | ===== Computerprogramm ===== | ||
+ | Das folgende Computerprogramm löst die DGL numerisch mittels Zeitschrittverfahren. | ||
+ | <code python [enable_line_numbers=" | ||
+ | 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, | ||
+ | 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, | ||
+ | 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, | ||
+ | |||
+ | x, y = time_ankle() | ||
+ | |||
+ | fig = plt.figure() | ||
+ | ax = fig.add_subplot(1, | ||
+ | ax.set_title(' | ||
+ | ax.set_xlabel(' | ||
+ | ax.set_ylabel(' | ||
+ | ax.set_xlim(0, | ||
+ | ax.set_ylim(0, | ||
+ | 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, | ||
+ | | ||
+ | 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(" | ||
+ | print(d, e, f, g, h, i, j) | ||
+ | |||
+ | # | ||
+ | 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(" | ||
+ | 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(" | ||
+ | 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(" | ||
+ | print(k, l, m, n, o, p, q) | ||
+ | |||
+ | # | ||
+ | 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(" | ||
+ | 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(" | ||
+ | print(kmax, lmax, mmax, nmax, omax, pmax, qmax) | ||
+ | </ | ||