Erste Berechnungen und Visualiserung
Contents
3.2. Erste Berechnungen und Visualiserung#
In diesem Teil wird an zwei einfacheb mechanischem Beispielen eine Berechnung mit Python und die Möglichkeit der Visualiserung der erzeugten Daten aufgezeigt.
verwendete Bibliotheken:
numpy
(Datenspeicherung und Berechnung)matplotlib
(Datenvisualisierung)
3.2.1. Beispiel 1: zweiseitig gelagerter Balken mit Linienlast#
Aufgabe: Berechnen Sie die maximale Durchbiegung
Länge: \(L = 1000\,\mathrm{mm}\)
Breite: \(b = 30\,\mathrm{mm}\)
Höhe: \(h = 30\,\mathrm{mm}\)
Linienlast: \(q_0=1000\,\mathrm{N}\)
E-Modul: \(E=200000\,\mathrm{MPa}\)
# Variablen
# Beispiel1: zweiseitig gelagerter Balken mit Linienlast
L = 1000.0 # mm
b = 30.0 # mm
h = 30.0 # mm
q = 1000.0 # N
E = 200000.0 # MPa -> N/mm^2
Berechnung des Flächenträgheitsmoments:
# Lösung hier eintragen
I =
Berechnung der maximalen Durchbiegung
# Lösung hier eintragen
umax =
3.2.2. Beispiel 2: einseitig eingespannter Balken mit Einzelkraft#
Aufgabe: Berechnen Sie die maximale Durchbiegung
Länge: \(L = 1000\,\mathrm{mm}\)
Breite: \(b = 30\,\mathrm{mm}\)
Höhe: \(h = 60\,\mathrm{mm}\) Wert anders als im ersten Beispiel
Kraft: \(F=1000\,\mathrm{N}\) neuer Parameter
E-Modul: \(E=200000\,\mathrm{MPa}\) Wert anders als im ersten Beispiel
# Variablen
# Beispiel2: einseitig eingespannter Balken mit Einzelkraft
L = 1000.0 # mm
b = 30.0 # mm
h = 60.0 # mm
F = 1000.0 # N
E = 70000.0 # MPa -> N/mm^2
Berechnung des Flächenträgheitsmoments:
I = (b*h**3)/12
print(I)
Berechnung der maximalen Durchbiegung
# Lösung hier eintragen
umax =
3.2.3. Darstellung der Durchbiegung in Abhängigkeit der Länge#
Aufgabe: Stellen Sie die maximale Durchbiegung in Abhängigkeit der Länge für beide Beispiele dar
3.2.3.1. Beispiel 1: zweiseitig gelagerter Balken mit Linienlast#
Wir wollen also statt einem Wert wie vorher gleich mehrere Werte berechnen. Dafür holen wir zunächst wieder die Parameter für das Beispiel:
# Variablen
# Beispiel1: zweiseitig gelagerter Balken mit Linienlast
L = 1000.0 # mm
b = 30.0 # mm
h1 = 30.0 # mm
q0 = 1000.0 # N
E = 200000.0 # MPa -> N/mm^2
I = (b*h1**3)/12
umax1 = (5*q0*L**3)/(384*E*I)
print(umax1)
Nun erstellen wir für die Länge ein Array aus Werten mit Hilfe der numpy Bibliothek und dem Befehl np.array
(Liste aus Werten)
import numpy as np
L = np.array([0,250,500,750,1000]) # mm
print(L)
Führen wir nun die Berechnung von oben erneut aus, wird durch die Verwendung einer Liste für den Parameter L
, unser Ergebnis (also umax1
) auch als Liste ausgegeben
umax1 = (5*q0*L**3)/(384*E*I)
print(umax1)
Zum plotten benutzen wir nun matplotlib
und plotten mit plt.plot()
und beschriften die Label mit plt.xlabel()
und plt.ylabel()
import matplotlib.pyplot as plt
plt.plot(L,umax1);
plt.xlabel("Länge [mm]");
plt.ylabel("maximale Verschiebung [mm]");
Um die Werte zusätzlich als Punkte einzublenden kann:
plt.plot(marker="s",ms=10)
marker: “s” = square
ms = markersize (Größe der Punkte)
Übersicht über alle Stile (matplotlib Cheat Sheet)
plt.plot(L,umax1, marker="s",ms=10);
plt.xlabel("Länge [mm]");
plt.ylabel("maximale Verschiebung [mm]");
Um den Verlauf zu glätten sind mehr Punkte einzugeben, dafür ist np.linspace()
sehr praktisch (in unserem Fall erstellen wir 20 Werte zwischen 0 und 1000)
L = np.linspace(0,1000,20) # mm
print(L)
Nun müssen wir umax1
erneut berechnen, da sich die Liste L
ja geändert hat. Danach plotten wir erneut:
L = np.linspace(0,1000,20) # mm
umax1 = (5*q0*L**3)/(384*E*I)
plt.plot(L,umax1);
plt.xlabel("Länge [mm]");
plt.ylabel("maximale Verschiebung [mm]");
3.2.3.2. Beispiel 2: einseitig eingespannter Balken mit Einzelkraft#
Nun nehmen wir das zweite Beispiel und berechnen hier nun die Durchbiegung als umax2
damit wir später beide Parameter verwenden können und diese nicht überschrieben werden. Diesmal verwenden wir gleich np.linspace()
für L
um eine Liste von Werten für umax2
zu bekommen
# Variablen
# Beispiel2: einseitig eingespannter Balken mit Einzelkraft
L = np.linspace(0,1000,20) # mm
b = 30.0 # mm
h = 60.0 # mm
F = 1000.0 # N
E = 70000.0 # MPa -> N/mm^2
I = (b*h**3)/12
umax2=(F*L**3)/(3*E*I)
print(umax2)
Nun stellen wir dies erneut dar:
plt.plot(L,umax2);
plt.xlabel("Länge [mm]");
plt.ylabel("maximale Verschiebung [mm]");
3.2.3.3. Beide Beispiele zusammen#
Um beide zusammen darzustellen verwenden wir den Befehl plt.plot()
einfach zweimal und benutzen den Parameter label=
zur Bezeichnung und führen mit plt.legend()
eine Legende ein
Bezeichnung über
label
=Legende anzeigen mit
plt.legend()
plt.plot(L,umax1,label="Beispiel 1");
plt.plot(L,umax2,label="Beispiel 2");
plt.legend();
plt.xlabel("Länge [mm]");
plt.ylabel("maximale Verschiebung [mm]");