Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss2021:project4:brueckensimulation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ss2021:project4:brueckensimulation [2021/10/11 15:07]
berscjak [Entwicklung des Programms]
ss2021:project4:brueckensimulation [2021/10/14 12:27] (aktuell)
berscjak [Literaturangaben]
Zeile 5: Zeile 5:
  
 =====Ziel===== =====Ziel=====
-Unser Projektziel ist es, das Verhalten verschiedener ​Balkenbrücken ​abhängig von verschiedenen Ausgangsbedingungen zu simulieren. Dabei soll der Benutzer selbst einstellen können, welches Material verbaut wurde, wie die Belastung ist und wie die Brücke konstruiert ist. Mit der Software soll es möglich sein, zu überprüfen,​ ob die Brücke stabil ist und eine Belastung aushalten würde. Das Ergebnis soll dann entsprechend visualisiert werden.+Unser Projektziel ist es, das Verhalten verschiedener ​Brücken ​abhängig von verschiedenen Ausgangsbedingungen zu simulieren. Dabei soll der Benutzer selbst einstellen können, welches Material verbaut wurde, wie die Belastung ist und wie die Brücke konstruiert ist. Mit der Software soll es möglich sein, zu überprüfen,​ ob die Brücke stabil ist und eine Belastung aushalten würde. Das Ergebnis soll dann entsprechend visualisiert werden.
  
 =====Protokolle===== =====Protokolle=====
Zeile 17: Zeile 17:
 ===Vereinfachungen / Annahmen=== ===Vereinfachungen / Annahmen===
  
-Wir haben uns für das Projekt ​dafür ​entschieden,​ dass wir uns zunächst auf zweidimensionale Fachwerkbrücken beschränken. Außerdem soll das Programm für den Nutzer bereits die Lagerung der Brücke festlegen (Festlager auf der linken Seite und Loslager auf der rechten Seite). Die Brückenkonstruktionen sollen statisch bestimmt sein, was durch das Programm überprüft werden soll. Diese Annahmen erleichtern uns die Berechnung der Lager-und Stabkräfte und die Implementierung im Code.+Wir haben uns für das Projekt ​dazu entschieden,​ dass wir uns zunächst auf zweidimensionale Fachwerkbrücken beschränken. Außerdem soll das Programm für den Nutzer bereits die Lagerung der Brücke festlegen (Festlager auf der linken Seite und Loslager auf der rechten Seite). Die Brückenkonstruktionen sollen statisch bestimmt sein, was durch das Programm überprüft werden soll. Diese Annahmen erleichtern uns die Berechnung der Lager-und Stabkräfte und die Implementierung im Code.
  
 ===Ideales Fachwerk=== ===Ideales Fachwerk===
Zeile 155: Zeile 155:
 {{ :​ss2021:​project4:​gleichungssystem.jpg |}} {{ :​ss2021:​project4:​gleichungssystem.jpg |}}
  
-Anhand dieser Struktur lässt sich auch erkennen, dass es im Vergleich zum Knotenpunktverfahren wie zuvor beschrieben einige Vereinfachungen gibt. So sind viele Zwischenschritte,​ die beim händischen Lösungsverfahren den Prozess erleichtern,​ nicht mehr nötig. Das heißt, man muss die Knoten und Stäbe nicht mehr nummerieren oder zuvor die Auflagerreaktionen und Nullstäbe bestimmen, da dies alles in einem Schritt als Gleichungssystem berechnet wird. Anhand dieser Struktur kann man auch sehen, dass die statische Bestimmtheit insofern wichtig ist, als dass es gleich viele Unbekannte wie Gleichung gibt, um das Gleichungssystem zu lösen. Der Lösungsvektor $x$ hat $s+k$ Unbekannte und es gibt insgesamt $2*k$ Gleichungen.+Anhand dieser Struktur lässt sich auch erkennen, dass es im Vergleich zum Knotenpunktverfahren wie zuvor beschrieben einige Vereinfachungen gibt. So sind viele Zwischenschritte,​ die beim händischen Lösungsverfahren den Prozess erleichtern,​ nicht mehr nötig. Das heißt, man muss die Knoten und Stäbe nicht mehr nummerieren oder zuvor die Auflagerreaktionen und Nullstäbe bestimmen, da dies alles in einem Schritt als Gleichungssystem berechnet wird. Anhand dieser Struktur kann man auch sehen, dass die statische Bestimmtheit insofern wichtig ist, als dass es gleich viele Unbekannte wie Gleichung gibt, um das Gleichungssystem zu lösen. Der Lösungsvektor $x$ hat $s+r$ Unbekannte und es gibt insgesamt $2*k$ Gleichungen.
  
 Die Berechnung wird mit der Funktion click_berechnen durchgeführt. Die Berechnung wird mit der Funktion click_berechnen durchgeführt.
Zeile 248: Zeile 248:
 Dazu wird nach der zuvor dargestellten Struktur den Arrays N und y ihre Werte zugeordnet. Abschließend wird überprüft,​ ob diese Werte die angegebenen zulässigen Grenzwerte für Stab-und Lagerkräfte nicht überschreiten. Je nach Ergebnis wird dann eine entsprechende Meldung ausgegeben. Dazu wird nach der zuvor dargestellten Struktur den Arrays N und y ihre Werte zugeordnet. Abschließend wird überprüft,​ ob diese Werte die angegebenen zulässigen Grenzwerte für Stab-und Lagerkräfte nicht überschreiten. Je nach Ergebnis wird dann eine entsprechende Meldung ausgegeben.
 === Visualisierung === === Visualisierung ===
 +
 +Der Nutzer des Programmes hat zu Beginn eine bestimmte Vorstellung eines zweidimensionalen Fachwerks. Diese muss er irgendwie übermitteln können. Dazu gäbe es mehrere Optionen: ​
 +  * Es könnte eine Auswahl von Fachwerken zur Verfügung gestellt werden, aus der der User sich ein Fachwerk aussucht. Dann wären die Möglichkeiten jedoch sehr begrenzt und das Fachwerk könnte häufig nicht der Vorstellung des Nutzers entsprechen.
 +  * Eine andere Möglichkeit wäre, den User dazu aufzufordern,​ Koordinaten für die Knotenpunkte als Zahlenwerte und die Anzahl der Stäbe einzugeben. Das wäre jedoch etwas unintuitiv.
 +  * Die Möglichkeit,​ für die wir uns letztlich entschieden haben, ist die, dass wir den Nutzer das Fachwerk selber zeichnen lassen. So können alle Werte gut übermittelt werden und der Nutzer hat genügend kreativen Freiraum.
 +
 +Das ganze läuft dann in ungefähr 10 Schritten ab:
 +
 +{{ :​ss2021:​project4:​screenshot_151_.png |}}  ​
 +
 +Das Startlager ist einfachheitshalber in jedem Fall das Festlager. Sobald ein Knotenpunkt als Startpunkt dient, wird er für diesen Zeitraum rot markiert. Damit es möglich ist, wirklich parallele Stäbe zu zeichnen, gibt es die Optionen "​Horizontal"​ und "​Vertikal"​. Eine weitere Zeichenhilfe ist die, dass wenn ungefähr auf einen schon existierenden Knotenpunkt geklickt wird, genau dieser wieder ausgewählt wird, bzw. dass wenn, je nachdem ob horizontal oder vertikal ausgewählt wurde, auf einen bereits existierenden Knotenpunkt geklickt wird, die x- oder y-Koordinaten übernommen werden. Die Ausgabe der Rechenergebnisse erfolgt als Liste über die Konsole.
 +
 +Der gesamte Code befindet sich in dieser Datei: {{:​ss2021:​project4:​brueckensimulationen.zip|}}
 +
  
 ===== Verlauf der Projektarbeit ===== ===== Verlauf der Projektarbeit =====
 +
 +Den Verlauf unserer Projektarbeit kann man den im Laufe der Zeit angefertigten Protokollen entnehmen: [[ss2021:​project4:​brueckensimulation:​Protokolle|]]
 +
 +  * ab 27.05.2021: Themenfindung,​ Planung und Recherche ​
 +  * ab 17.06.2021: Arbeitsteilung Code zur Berechnung, Code zur Visualisierung
 +  * ab 7.10.2021: Zusammenführen beider Programme
 ===== Fazit und Ausblick ===== ===== Fazit und Ausblick =====
  
-Das Programm weist immer noch ein paar kleine Defizite auf. So kann man beispielsweise noch keine Zahleneingabe abbrechen oder eine gerade geschrieben Zahl löschen. Auch die Reset-Funktion ​arbeitet ​an manchen Stellen noch nicht so, wie sie es eigentlich soll. ...+Das Programm weist immer noch ein paar kleine Defizite auf. So kann man beispielsweise noch keine Zahleneingabe abbrechen oder eine gerade geschrieben Zahl löschen. Auch die Reset-Funktion ​und die Undo-Option arbeiten ​an manchen Stellen noch nicht so, wie sie es eigentlich soll. Zudem kommt, dass ein paar Stellen im Code noch etwas unstrukturiert sind und möglicherweise mehr mit Klassen gearbeitet hätte werden sollen. Im Allgemeinen haben wir jedoch viel geschafft und ein funktionierendes Programm entwickelt, das sich größtenteils gut bedienen lässt und unseren Vorstellungen entspricht. 
 + 
 +Unserer Projekt bietet aber auch Potential, es weiter zu entwickeln. Weiterführende Ideen wären zum einen die Umsetzung des Ganzen im dreidimensionalen Raum. Auch eine Ausweitung auf andere Brückentypen wie Hängebrücken oder Balkenbrücken wäre denkbar. Außerdem könnte man noch versuchen, die Finite Elemente Methode, die unteranderem die Verformung von Festkörpern untersucht, mit einzubringen,​ um die Ergebnisse genauer und auch realistischer werden zu lassen.  
 + 
 +===== Literaturangaben ===== 
 + 
 +===Grundlagen Stabwerke=== 
 +[[https://​www.studyhelp.de/​online-lernen/​mechanik/​statische-bestimmtheit/​|StudyHelp:​ Statische Bestimmtheit]] 
 + 
 +Popov, Valentin: Statik und elementare Festigkeitslehre (Mechanik I) Vorlesungsnotizen WiSe 2020/​21:​{{:​ss2021:​project4:​vorlesungsskript_ws_2020_21.pdf|}} 
 + 
 +===Pygame=== 
 +[[https://​youtu.be/​jO6qQDNa2UY|Pygame in 90 Minutes - For Beginners]] 
 + 
 +[[https://​www.pygame.org/​docs/​|pygame-Dokumentation]]
  
-Weiterführende Ideen wären zum einen die Umsetzung des ganzen im dreidimensionalen Raum. Auch eine Ausweitung auf andere Brückentypen wie Hängebrücken oder Balkenbrücken wäre denkbar. Außerdem könnte man noch versuchen, die Finite Elemente Methode, die unteranderem die Verformung von Festkörpern untersucht, mit einzubringen,​ um die Ergebnisse genauer und auch realistischer werden zu lassen. ... 
ss2021/project4/brueckensimulation.1633957664.txt.gz · Zuletzt geändert: 2021/10/11 15:07 von berscjak