schriftliche Arbeit (pdf, 1.8MB) - FSG Fellbach
schriftliche Arbeit (pdf, 1.8MB) - FSG Fellbach
schriftliche Arbeit (pdf, 1.8MB) - FSG Fellbach
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Projekt mobilitas: Physiksimulationen am PC<br />
Wie lässt sich das Verhalten von einfachen Körpern nach<br />
Prinzipien der klassischen Mechanik vorausberechnen?<br />
von Patrick Pietzonka (17 Jahre)
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
Inhalt<br />
1. Einleitung 2<br />
2. Vorgehensweise 3<br />
2.1. Hilfsmittel 3<br />
2.1.1. Entwicklungsumgebung Borland C++ Builder 3<br />
2.1.2. Graphikbibliothek OpenGL 3<br />
2.1.3. Mathematikprogramm Maple 10 3<br />
2.2. <strong>Arbeit</strong>smethoden 4<br />
3. Ergebnisse 5<br />
3.1. Die Benutzeroberfläche 5<br />
3.1.1. Bauteile 7<br />
3.1.2. Auswertungsmöglichkeiten der Simulation 8<br />
3.2. Simulationsmethoden 9<br />
3.2.1. Bewegung der Massenpunkte 9<br />
3.2.2. Kollisionen von Kugeln 10<br />
3.2.3. Simulation von durch Stangen verbundenen<br />
Massenpunkten. 11<br />
a) Kollisions-Methode 12<br />
b) Penalty method 12<br />
c) Vergleich der beiden Methoden 14<br />
3.3. Bisherige Anwendungsmöglichkeiten 15<br />
4. Ausblicke 15<br />
4.1. Interaktive Steuerung durch den Anwender<br />
auch nach dem Start der Simulation 15<br />
4.2. Astrophysik mit mobilitas 16<br />
4.3. Einsatz des SmartBoard 16<br />
5. Danksagungen 16<br />
6. Quellen und Literaturverzeichnis 17<br />
- 1 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
1. Einleitung<br />
Aus nahezu allen naturwissenschaftlichen Disziplinen und der Technik sind<br />
leistungsstarke, rechnergestützte Simulationen heute kaum mehr wegzudenken.<br />
Nur Computer können den enormen Rechenaufwand vollbringen,<br />
der nötig ist um mithilfe der Gesetze der Natur die Zukunft „vorherzusagen“.<br />
Sie berechnen beispielsweise die Anfänge des Universums, Wirtschaftssysteme,<br />
Völkerwanderungen und auch in unseren Alltag haben sie<br />
in Form von Wettervorhersagen Einzug erhalten. In der Physik sind Computersimulationen<br />
neben Experimenten und theoretischen Überlegungen<br />
zu einer der wichtigsten <strong>Arbeit</strong>smethoden geworden. Im Physikunterricht<br />
an Schulen werden die Vorzüge von Simulationen dagegen nicht genutzt,<br />
obwohl es sich die Fachschaft Physik meiner Schule zum Ziel erklärt hat,<br />
den Schülern „physikalisches <strong>Arbeit</strong>en“ beizubringen. 1<br />
Meiner Ansicht nach scheitert der Einsatz von Computern im Physikunterricht<br />
an einem Mangel an passender Software: Professionelle Programme<br />
benötigen zur Bedienung physikalische Kenntnisse die jene von Schülern<br />
übersteigen und oftmals sind weitgehende Programmierkenntnisse erforderlich.<br />
Einfachere Software, z.B. das auf den Rechnern meiner Schule<br />
installierte Crocodile Clips 2 , sind im Bereich Mechanik nicht universell einsetzbar.<br />
Crocodile Clips bietet hier nur vorgefertigte Bauteile wie<br />
Zahnräder und Motoren an, einfachste Experimente wie beispielweise die<br />
Betrachtung von Wurfbahnen sind jedoch unmöglich.<br />
Aus meiner Interesse an Physik und Informatik und mit dem Ziel zur Anwendung<br />
im Physikunterricht (siehe auch 4.4.) begann ich daher Mitte des<br />
Jahres 2007 mit den Vorarbeiten für eine eigene Software mit dem Ziel,<br />
die Gesetze der klassischen (newtonschen) Mechanik, die in Klasse 10<br />
(G8) unterrichtet werden, zu simulieren.<br />
Als Name für das Programm wählte ich beim Durchblättern eines Lateinwörterbuches<br />
das lateinische Wort mobilitas, zu Deutsch Beweglichkeit,<br />
also diejenige Eigenschaft, die die Software von langweiligen Skizzen an<br />
der Schultafel im Physikraum unterscheidet.<br />
1 http://www.fsg-fellbach.info > Fächer > Physik > Curriculum<br />
2 Crocodile Clips Version 3.5c der Firma Crocodile Clips Ltd<br />
- 2 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
2. Vorgehensweise<br />
2.1. Hilfsmittel<br />
2.1.1. Entwicklungsumgebung Borland C++ Builder<br />
Programmiert wird mobilitas in der Programmiersprache<br />
C++. Dazu benutze ich die Entwicklungsumgebung C++<br />
Builder der Firma Borland. Sie ermöglicht<br />
das Erstellen von den aus Windows<br />
bekannten Fenstern und<br />
Steuerelementen sowie die Eingabe<br />
von Quelltext und dessen Übersetzung<br />
in Maschinensprache (Kompilierung).<br />
Abb. 1: Logo und Screenshot des C++ Builders<br />
2.1.2. Graphikbibliothek OpenGL<br />
OpenGL (Open Graphics Library) stellt vorgefertigte<br />
Funktionen zum „Einbau“ in das von mir programmierte<br />
Programm bereit. Sie erleichtern die Graphikausgabe,<br />
insbesondere im bezug auf 3D-Darstellungen.<br />
Da mobilitas aber zum Zwecke einfacherer Bedienung nur auf<br />
Abb. 2: Logo von OpenGL<br />
zweidimensionaler Basis arbeitet, mache ich von dieser Möglichkeit eher<br />
wenig Gebrauch (z.B. zur realistischen 3D-Darstellung von Kugeln).<br />
2.1.3. Mathematikprogramm Maple 10<br />
Für die mathematischen Vorarbeiten benutze ich das<br />
Computeralgebrasystem (CAS) Maple 10. Es ermöglicht<br />
algebraische Umformungen auch an langen, komplizierten<br />
Formeln. Außerdem nutze ich häufig die<br />
Möglichkeit, die Ergebnisse in C++ zu konvertieren.<br />
2<br />
mv<br />
z.B.: F1 = double F[0]= m * pow(v, 2) / r<br />
r<br />
Abb. 3: Fenster beim Start<br />
von Maple<br />
Dies ist vor allem bei langen Formeln mit vielen Bruchstrichen, Klammern,<br />
Potenzen usw. sehr hilfreich.<br />
- 3 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
2.2. <strong>Arbeit</strong>smethoden<br />
Die <strong>Arbeit</strong> an mobilitas lässt sich grob in zwei Teile untergliedern: Zum<br />
einen das Erstellen einer Benutzeroberfläche und zum anderen die Entwicklung<br />
von Algorithmen zur Simulation der physikalischen Vorgänge.<br />
Beim Erstellen der Benutzeroberfläche, über die der Anwender mit der<br />
Anwendung interagiert, versuche ich Wert auf ein logisches Gesamtkonzept<br />
zu legen, welches sich im Design der Fenster, den Menüs und den<br />
Eingabeschritten hin zum virtuellen Versuchsaufbau widerspiegeln sollte.<br />
Stets ist dabei ein Kompromiss zwischen einer möglichst großen Zahl an<br />
Bearbeitungsmöglichkeiten und einem Maximum an Benutzerfreundlichkeit<br />
zu finden. Im Idealfall sind die verschiedenen Funktionen selbsterklärend<br />
oder bereits von anderen Anwendungen her bekannt. Letzteres trifft dabei<br />
besonders bei den Funktionen zum Bearbeiten der Objekte (z.B. Markieren,<br />
Rückgängig, Kopieren, Einfügen, Löschen) oder zur Bedienung der<br />
Dateien (z.B. Speichern (unter), Öffnen) zu. Am Zeitaufwendigsten ist bei<br />
diesem ersten Teil die Programmierung von Abläufen im Hintergrund, die<br />
im Normalfall dem Anwender nur dann auffallen, wenn sie einmal nicht<br />
funktionieren sollten (z.B. andere Objekte nicht mehr markieren, sobald<br />
der Anwender ein neues Objekt markiert, alte Position nicht mehr anzeigen,<br />
nachdem ein Objekt verschoben wurde, Lücken im <strong>Arbeit</strong>sspeicher<br />
nach dem Löschen eines Objekts schließen usw.). Die Ergebnisse dieser<br />
<strong>Arbeit</strong> werde ich in Punkt 3.1. erläutern.<br />
Die Umsetzung der physikalischen Sachverhalte in der Anwendung forderte<br />
deutlich mehr z.T. sehr aufwendige Vorarbeiten. Die Vorkenntnisse<br />
zu den einzelnen Themen aus der Schule erwiesen sich als weitgehend<br />
unzureichend – mir fiel auf, dass die dort erarbeiteten mathematischen<br />
Beziehungen meist nur für Spezialfälle gelten. Bezeichnend dafür ist die<br />
Art und Weise, wie der elastische Stoß im [Dorn-Bader 11] behandelt<br />
wird. Hier lautet die Fragestellung: Wie bewegen sich zwei Kugeln der Geschwindigkeiten<br />
v 1 und v 2 =0 und gegebener Masse nach einem geraden 3<br />
Stoß weiter? Für eine Simulation, bei der die Kugeln frei wählbare Startparameter<br />
zugewiesen bekommen, ist die Antwort auf diese Frage nicht<br />
ausreichend. Hier lautet die Fragestellung: Werden zwei Kugeln mit den<br />
gegebenen Parametern Anfangsposition, einwirkende Kraft, Masse, Startgeschwindigkeit<br />
und Radius kollidieren? Wenn ja, zu welchem Zeitpunkt?<br />
Wie bewegen sie sich nach dem elastischen Stoß weiter? 4 Durch diese<br />
neue Fragestellung erhöht sich die Zahl der zu berücksichtigenden Parametern<br />
von drei auf sechzehn 5 ; die Lösungsformeln werden somit viel<br />
länger und unüberschaubarer als im Physikunterricht.<br />
Die erarbeiteten Lösungsformeln oder Näherungsmethoden füge ich zu<br />
Algorithmen zusammen, die die Grundlage der Simulation bilden.<br />
3 Der schiefe Stoß wird im Schulbuch nur kurz unter der Rubrik „Interessantes“ behandelt<br />
4 Antwort siehe 3.2.2.a)<br />
5 Kraft, Geschwindigkeit und Position sind Vektoren mit zwei Komponenten in der Ebene<br />
- 4 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
Programmierung der Physikalischen<br />
Vorgänge<br />
Theoretische<br />
physikalische/mathematische Vorarbeiten<br />
Vorarbeiten zur Benutzeroberfläche<br />
Programmierung der Benutzeroberfläche<br />
Abb. 4: Zeitaufwand für die verschiedenen <strong>Arbeit</strong>sschritte (Schätzung)<br />
3. Ergebnisse<br />
3.1. Die Benutzeroberfläche<br />
6<br />
5<br />
2<br />
1<br />
4<br />
Abb. 5: Screenshot mobilitas<br />
7<br />
3<br />
- 5 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
1 Zeichenoberfläche<br />
Auf der Zeichenoberfläche erstellt der Anwender den virtuellen Versuchsaufbau.<br />
Alle Objekte werden durch Mausklicks an bis zu drei verschiedenen<br />
Stellen festgelegt. Über die Bezugspunkte (meist Mitteloder<br />
Endpunkte) werden weitere Objekte an ein beliebiges Bauteil<br />
„angebaut“.<br />
2 Bauteile-Explorer<br />
Der Bauteile-Explorer, der der in Windows üblichen Ordnerstruktur<br />
(Tree View) nachempfunden ist, stellt die verschiedenen Bauteile zur<br />
Verfügung. Nach dem Auswählen eines Bauteils kann dieses direkt auf<br />
der Zeichenoberfläche gezeichnet oder durch Eingabe der Objekteigenschaften<br />
erstellt werden.<br />
3 Werkzeuge<br />
Mit den sechs verschiedenen Werkzeugen können Objekte nachträglich<br />
bearbeitet werden oder die Ansicht verändert werden.<br />
Objekte markieren, dabei sind auch Mehrfachauswahlen möglich.<br />
Objekte durch Verschieben der Bezugspunkte bewegen.<br />
Bauteile durch einfaches Klicken löschen.<br />
Den gesamten Versuchsaufbau bewegen.<br />
Zoom vergrößern Zoom verkleinern<br />
4 Objekteigenschaften<br />
In diesem Bereich lassen sich die Eigenschaften der markierten Objekte<br />
ändern. So lässt sich z.B. eine Geschwindigkeit viel genauer einstellen<br />
als durch bloßes Zeichnen des Vektors.<br />
5 Hauptmenü<br />
Die Menüs Datei und Bearbeiten bieten gleiche Funktionen wie in jeder<br />
gewöhnlichen Windows-Anwendung. Messung bietet Möglichkeiten zur<br />
Aufzeichnung von Diagrammen und Wertetabellen; die Menüs<br />
Simulation und Ansicht beinhalten gleiche bzw. ähnliche Funktionen<br />
wie die Simulations-Toolbox und die Werkzeuge.<br />
Unter Einstellungen lassen sich unter anderem die Fallbeschleunigung<br />
einstellen.<br />
6 Simulations-Toolbox<br />
Die Simulations-Toolbox ist den allgemeinverständlichen Bedienelementen<br />
zur Medien-Wiedergabe nachempfunden. Mit ihr kann die Simulation<br />
gestartet, angehalten oder gestoppt werden.<br />
Über das -Symbol gelangt man zu den Simulations-Einstellungen,<br />
dort lässt sich z.B. die Abspielgeschwindigkeit ändern<br />
7 Statusleiste<br />
Anzeige der Cursorposition, des Zoomfaktors, Hinweise zur Bedienung<br />
und während der Simulation Zeit t und Dauer eines Zeitschrittes ∆t.<br />
- 6 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
Alle Bauteile<br />
- Name(String)<br />
- Name anzeigen(bool)<br />
- Sichtbar bei der Simulation (bool)<br />
- programminterne Nummer (int)<br />
- Funktion Zeichnen<br />
- Funktion Löschen<br />
Punkt<br />
- x-Position (double)<br />
- y-Position (double)<br />
(x-Achse nach rechts, y-<br />
Achse nach unten<br />
gerichtet)<br />
- fest im Raum, d.h.<br />
unbeweglich (bool)<br />
Kugel<br />
- Radius (double)<br />
- Masse (double)<br />
- Einheit der Masse<br />
(g/kg/t) (String)<br />
- Name/Nummer des<br />
Mittelpunktes (String<br />
/int)<br />
Vektor<br />
- Bezugspunktnummer/-<br />
name (String /int)<br />
- Betrag<br />
- Richtung (Winkel)<br />
- Betrag, der in der<br />
Pfeildarstellung einer<br />
Längeneinheit entspricht.<br />
Stange<br />
- Anfangspunktnummer/-<br />
name (String/int)<br />
- Endpunktnummer/-name<br />
(String/int)<br />
- Masse (double)<br />
- Einheit der Masse<br />
(g/kg/t) (String)<br />
Kraft<br />
- Einheit (cN/N/kN)<br />
(String)<br />
Geschwindigkeit<br />
- Einheit<br />
(cm s -1 / km h -1 / m s -1 )<br />
(String)<br />
Abb. 6: Objektstruktur von mobilitas (Auszug)<br />
Datentypen: double Gleitkommazahl 64-Bit<br />
int Ganzzahl<br />
String Text<br />
bool Boolesche Variable (wahr / falsch)<br />
3.1.1. Bauteile<br />
Die Bauteile haben verschiedenerlei Aufgaben und Funktionen im Programmablauf.<br />
Punkte dienen, wie bereits erwähnt, als Bezugspunkte bzw.<br />
Anknüpfpunkte aller anderen Objekte. „Feste Punkte“ haben eine feste<br />
Position im Raum, sie eignen sich daher als Aufhängepunkte, Dreh- oder<br />
Angelpunkte. „Lose Punkte“ dagegen werden als frei bewegliche Gelenke<br />
aufgefasst.<br />
Durch das Zeichnen eines Geschwindigkeitsvektors wird einem losen<br />
Punkt eine Anfangsgeschwindigkeit verliehen. Solche Vektoren können<br />
Betrag und Richtung während der Simulation ändern. Kraftvektoren dagegen<br />
wirken während der Simulation stets gleichartig auf den ihnen zugewiesenen<br />
Angriffspunkt.<br />
Als idealer Körper sind auch Kugeln im Grundsortiment von Bauteilen vorhanden,<br />
sie erhalten beim Zeichnen automatisch eine Masse, die proportional<br />
zum Radius ist 6 (diese automatisch zugewiesene Masse kann selbstverständlich<br />
nachträglich unabhängig vom Radius geändert werden).<br />
Stangen sind die in dem Programm am vielseitigsten einsetzbaren Körper.<br />
Aus ihnen können alle erdenklichen weiteren Körper aufgebaut werden:<br />
Seile werden bei der Simulation durch eine „Kette“ sehr vieler kurzer<br />
Stangen ersetzt, starre Körper setzen sich aus vielen zu Dreiecken angeordneten<br />
Stangen zusammen. In den nächsten Monaten wird das Erstellen<br />
einer größeren Auswahl an solchen zusammengesetzten Bauteilen wichtiger<br />
Bestandteil der <strong>Arbeit</strong> an mobilitas sein.<br />
6 Proportionalität zur dritten Potenz des Radius wäre zwar physikalisch korrekter, eine<br />
Kugel der Masse von beispielsweise genau 2 kg lässt sich jedoch auf die von mir<br />
gewählte Art und Weise viel leichter erstellen.<br />
- 7 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
Die Bauteile Stange und Kugel haben die Eigenschaft Material. Sie hat bisher<br />
noch keine Auswirkungen auf die Simulation, mein Ziel ist es jedoch,<br />
eine Datenbank mit materialspezifischen Größen (Elastizität des Stoßes,<br />
Federhärte, Bruchfestigkeit usw.) zu erstellen und die darin gespeicherten<br />
Werte bei der Simulation zu berücksichtigen<br />
3.1.2. Auswertungsmöglichkeiten der Simulation<br />
a) Dynamik<br />
Bis zu drei Ortskurven von Punkten kann man während dem Ablauf der<br />
Simulation aufzeichnen und so die Bahn von Punkten auswerten. Optional<br />
können diese Kurven als Reihe von Punkten dargestellt werden,<br />
deren Dichte ein Maß für die Geschwindigkeit des beobachteten Punktes<br />
auf einem Kurvenabschnitt ist.<br />
Abb. 7: Aufzeichnung dreier Zykloiden (bewegtes, rotierendes Dreieck)<br />
b) Statik<br />
Abb. 8<br />
Bei Statikexperimenten eignet sich<br />
besonders die Auswertung der<br />
inneren Kräfte in Stangen – entweder<br />
durch farbige Markierung belasteter<br />
Stangen (um sich einen Überblick zu<br />
verschaffen) oder durch Ablesen<br />
einer Anzeige neben der jeweiligen<br />
Stange (optional einzustellen)<br />
In der Abbildung wurden Zugkräfte<br />
blau und Druckkräfte rot markiert.<br />
Der abgebildete Kran bedarf evtl.<br />
eines größeren Gegengewichtes oder<br />
einer geringeren Belastung.<br />
- 8 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
3.2. Simulationsmethoden<br />
Bei der Simulation ist es stets nötig, die Realität in Modellen so zu vereinfachen,<br />
dass der Computer physikalische Vorgänge berechnen kann. Zu<br />
diesen Vereinfachungen gehören immer Idealbedingungen (z.B. kein Luftwiderstand).<br />
Ungenauigkeiten entstehen auch dadurch, dass mir die<br />
Schulmathematik nur eine sehr beschränkte Auswahl an mathematischen<br />
Verfahren bietet. 7 Außerdem gibt es nur selten exakte algebraische Lösungen<br />
für die auftretenden Probleme; die Genauigkeit der numerischen Lösungen<br />
hängt stark von der Rechenleistung und der Auslastung des benutzten<br />
Computers ab.<br />
3.2.1. Bewegung der Massenpunkte<br />
Bei der Simulation werden die für das Erstellen des Versuchsaufbaus nötigen<br />
Bezugspunkte zu Massenpunkten. Nach meiner Modellvorstellung ist<br />
in ihnen die Masse aller Objekte konzentriert, sie haben jedoch keine<br />
räumliche Ausdehnung.<br />
Jedem Massenpunkt wird zu Beginn der Simulation die entsprechende<br />
Position r zugewiesen 8 , allen losen Massenpunkten wird die Summe der<br />
Massen der an ihnen „befestigten“ Objekte (bei Stangen wird nur die<br />
Hälfte der Masse berücksichtigt) als Masse zugeordnet, die Masse der<br />
festen Punkte dagegen geht gegen unendlich, d.h. sie sind unendlich<br />
träge. Außerdem wird den losen Punkten die Anfangsgeschwindigkeit v r<br />
r r<br />
zugewiesen, als Kraft erfahren sie die Gravitation F = mg<br />
(Betrag der nach<br />
unten gerichteten Fallbeschleunigung g r kann vom Benutzer gewählt werden;<br />
Standard: 9,81 m s -2 ). Dazu werden evtl. an den Punkt gezeichnete<br />
Kraftvektoren addiert.<br />
Während der Simulation wird die Zeit in möglichst kleine 9 Zeitschritte ∆t<br />
unterteilt. Nach jedem Zeitschritt wird eine komplexe Routine durchlaufen,<br />
die zur Aktualisierung von r und v r dient. Im einfachsten Falle geschieht<br />
dies durch diesen Ablauf:<br />
r r<br />
valt<br />
= v<br />
r<br />
Für alle losen r r F<br />
vneu<br />
= v + ∆t<br />
(1)<br />
Massenpunkte<br />
m<br />
r r<br />
r r valt<br />
+ vneu<br />
neu<br />
=<br />
+ ∆t<br />
(2)<br />
2<br />
24 Mal pro Sekunde werden die neu errechneten Positionen auch auf dem<br />
Bildschirm aktualisiert.<br />
7 Das Lösen von Differenzialgleichungen, auf die ich bei meinen Recherchen oft stoße,<br />
wird in der Schule nicht behandelt.<br />
8 Bei Vektoren werden stets vertikale und horizontale Komponente gespeichert<br />
9 Die „Winzigkeit“ dieser Zeitschritte ist ausschlaggebend für die Qualität der Simulation.<br />
Mit mobilitas werden i.d.R. Zeitschritte um 17ms erreicht. Kleinere Zeitschritte werden<br />
durch Abspielen in Zeitlupe erreicht.<br />
- 9 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
3.2.2. Kollisionen von Kugeln 10<br />
Um das Verhalten zweier Kugeln bei einer<br />
Kollision zu beschreiben, ist es hilfreich,<br />
zunächst folgenden Spezialfall zu betrachten:<br />
Der gerade elastische Stoß einer<br />
Kugel der Masse m 1 mit der Geschwindigkeit<br />
v 1 auf eine ruhende Kugel der Masse m 2 .<br />
Nach der Kollision bewegen sich die Kugeln<br />
mit den Geschwindigkeiten u 1 und u 2 weiter.<br />
Dabei gilt der Energieerhaltungssatz (EES)<br />
im Bezug auf die kinetischen Energien der<br />
beiden Kugeln und der Impulserhaltungssatz<br />
(IES):<br />
1 2 1 2 1 2<br />
EES: m<br />
1v1<br />
+ 0 = m1u<br />
1<br />
+ m2u2<br />
2 2 2<br />
IES: m<br />
1v1<br />
+ 0 = m1u<br />
1<br />
+ m2u2<br />
1<br />
Setzen von m2 = k ⋅ m1<br />
und Teilen durch m<br />
1 bzw. m<br />
1<br />
:<br />
2<br />
2<br />
1<br />
1<br />
2<br />
1<br />
1<br />
2<br />
2<br />
v = u + k ⋅ u Subtrahieren der u 1<br />
-Terme und<br />
2 2<br />
v = u + k ⋅ u Setzen von v − u = v − u )( v + )<br />
2<br />
1 1 ( 1 1 1 u1<br />
v v =<br />
1<br />
2<br />
0<br />
m1<br />
m2<br />
u1<br />
u2<br />
Abb. 9: Der elastische Stoß<br />
( v<br />
= k ⋅u<br />
1<br />
− u1)(<br />
v1<br />
+ u1)<br />
v1 − u1<br />
= k ⋅u2<br />
2<br />
2<br />
Teilen jeder Seite der ersten Gleichung<br />
durch die der zweiten:<br />
v + u<br />
1<br />
1<br />
1<br />
v − u<br />
1<br />
= u<br />
2<br />
= k ⋅u<br />
1− k<br />
u1 = v1<br />
und 1 + k<br />
2<br />
u<br />
2<br />
Lösen des LGS liefert:<br />
2v<br />
= 1<br />
1 + k<br />
Wenn sich bei diesem geraden Stoß auch noch die rechte Kugel anfangs<br />
mit beliebigem Geschwindigkeitsbetrag v 2 bewegt, kann das Verhalten der<br />
Kugeln in einem Bezugssystem betrachtet werden, welches sich ebenfalls<br />
mit der Geschwindigkeit v 2 bewegt. In ihm gilt dann:<br />
v 1 ' = v 1 − v 2 und v ' 0 2 =<br />
1−<br />
k<br />
u ' = u − v = v1 '<br />
2v1<br />
'<br />
1 1 2 und u2' = u2<br />
− v2<br />
=<br />
1+<br />
k<br />
1+<br />
k<br />
Rückschluss auf ruhendes Bezugssystem:<br />
1−<br />
k<br />
2( v1<br />
− v2)<br />
u 1 = ( v1<br />
− v2)<br />
+ v2<br />
und u<br />
2<br />
= + v2<br />
1+<br />
k<br />
1+<br />
k<br />
In den meisten Fällen liegt jedoch kein gerader, sondern ein schiefer Stoß<br />
vor. Dabei kann man nicht mehr die Gesamtbeträge der Geschwindigkeit<br />
10 Kollisionen, an denen Stangen beteiligt sind wurden kurz vor Einsendeschluss dieses<br />
Berichtes realisiert; die zugehörige Physik ist komplex und würde diesen Rahmen<br />
sprengen. Auf Anfrage gebe ich gerne auch darüber Auskunft.<br />
- 10 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
und v r<br />
2<br />
nach obigen Formeln verändern, sondern muss die Geschwindigkeiten v r<br />
1<br />
jeweils in zueinander orthogonale Komponenten zerlegen. Maßgebend<br />
für diese Zerlegung ist der Vektor r 12<br />
, der vom Mittelpunkt der einen<br />
werden so zer-<br />
Kugel zum Mittelpunkt der anderen Kugel zeigt. v r 1<br />
und v r<br />
2<br />
legt, dass jeweils eine Komponente parallel, die andere orthogonal zu r 12<br />
ist. Nur die Beträge der parallelen Komponenten werden für v 1<br />
und v 2 in<br />
den oben hergeleiteten Formeln eingesetzt. Die daraus resultierenden Beträge<br />
werden den jeweiligen parallelen Komponenten neu zugewiesen. Die<br />
orthogonalen Komponenten bleiben beim Stoß unverändert. Schließlich<br />
berechnen sich die Geschwindigkeiten der jeweiligen Kugeln nach dem<br />
Stoß aus dem durch Vektoraddition der unveränderten orthogonalen und<br />
der neuen parallelen Komponente.<br />
Um diesen Algorithmus während dem Ablauf der Simulation anwenden zu<br />
können, muss vorerst noch der Zeitpunkt einer Kollision berechnet werden.<br />
Für alle möglichen Kombinationen zweier Kugeln wird daher der zeitliche<br />
Verlauf des Abstandes d r der beiden Mittelpunkte an den Positionen<br />
r 1<br />
und r 2<br />
betrachtet:<br />
r r r<br />
d ( t)<br />
=<br />
1<br />
( t)<br />
−<br />
2<br />
( t)<br />
r 1 r 2 r r 1 r 2 r r<br />
d ( t)<br />
= ( a1t<br />
+ v1t<br />
+<br />
1)<br />
− ( a2t<br />
+ v<br />
2t<br />
+<br />
2)<br />
2<br />
2<br />
Bedingung<br />
r<br />
für Kollision:<br />
| d ( t) | = dmin<br />
, wobei d<br />
min<br />
die Summe der Radien der beiden Kugeln ist. Werden<br />
obige Gleichungen in Komponenten formuliert so ergibt sich für die<br />
Abstandsfunktion d r 2 ( t)<br />
eine ganzrationale Funktion vierten Grades. Die<br />
Zeitpunkte, für die die Bedingung erfüllt wird, lassen sich mithilfe des<br />
Newton-Verfahrens numerisch berechnen.<br />
Relevant für die Simulation ist nur jeweils der kleinste Zeitpunkt t 1 der Lösungsmenge,<br />
der sich innerhalb des soeben betrachteten Zeitschrittes<br />
befindet. Wenn das Programm einen solchen Zeitpunkt ermittelt, wird der<br />
aktuelle Zeitschritt so in zwei Teile untergliedert, dass der zweite Teil zu t 1<br />
beginnt und dadurch die Kollision zur richtigen Zeit berechnet werden<br />
kann.<br />
3.2.3. Simulation von durch Stangen verbundenen Massenpunkten.<br />
Eine der Hauptanwendungsmöglichkeiten von mobilitas ist die Simulation<br />
von sowohl statischen als auch dynamischen Systemen aus durch Gelenke<br />
verbundenen Stangen. Dafür erarbeitete ich zwei unterschiedliche Modelle,<br />
die das Verhalten solcher Systeme beschreiben. Gemeinsamkeit<br />
beider Modelle ist die Vereinfachung, das gesamte System auf eine endliche<br />
Zahl von Massenpunkten zu reduzieren, die durch masselose, unendlich<br />
steife Stangen verbunden sind (engl. „constrained particles“).<br />
Die tatsächliche Masse einer Stange wird je zur Hälfte zur Punktmasse von<br />
Anfangs- und Endpunkt addiert.<br />
- 11 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
a) „Kollisions-Methode“<br />
Eine meiner Ideen zu Simulation solcher verbundenen Massenpunkte, im<br />
folgenden Kollisions-Methode genannt, bedient sich in der Umsetzung<br />
weitgehend der selben Algorithmen wie die Kollision von Kugeln. Einzelne<br />
Stangen werden ähnlich wie Paare von Kugeln untersucht. Lediglich die<br />
Bedingung, deren Erfüllung zur Berechnung der Geschwindigkeitsänderungen<br />
von Massenpunkten führt, ändert sich: Statt nur eines<br />
minimalen Abstandes zweier Punkte d min , berechnet aus der Summe der<br />
Radien der mit ihnen assoziierten Kugeln, gibt es nun zwei solche kritischen<br />
Werte d min<br />
und d max , wobei d min = (Länge der Stange)− ∆s<br />
und<br />
d max = (Länge der Stange)+ ∆s . Erreicht der Abstand der Endpunkte der Stange, die<br />
sich ansonsten wie jeder andere Massenpunkt unbeeinflusst nach dem<br />
Algorithmus von 3.2.1. bewegen würden, einen der Werte d min<br />
und d<br />
max<br />
,<br />
so wird ein „Stoß“ dieser beiden Punkte berechnet. Dieser zwingt sie nach<br />
einer erheblichen Vergrößerung ihres Abstandes wieder zur Konvergenz<br />
und nach einer erheblichen Verkleinerung desselben zur Divergenz. Auf<br />
diese Art und Weise bleibt die Länge einer Stange stets mit einer Toleranz<br />
von ± ∆s<br />
konstant, d.h. das wichtigste Postulat eines Systems aus durch<br />
unendlich steifen Stangen wird (näherungsweise) erfüllt. Aus dem Wert<br />
für die Toleranz wird ersichtlich, dass für höchstmögliche Genauigkeit der<br />
Simulation möglichst kleines ∆ s gewählt werden muss. Dies zieht jedoch<br />
einen höheren Bedarf an Rechenkapazität mit sich, da es bei kleinem ∆s<br />
häufiger zu Stößen kommt.<br />
Nebenbei kann bei der Kollisions-Methode die innere Kraft in Stangen berechnet<br />
werden: Addiert man während ∆ t alle bei den Stößen auftretenden<br />
Impulsübertragungen und dividiert diese Summe durch ∆ t , so erhält<br />
man nach dem Prinzip des Kraftstoßes (eine Näherung 11 für) die innere<br />
Kraft in der Stange.<br />
b) „penalty-method“<br />
Mit dem englischen Begriff „penalty-method“ bezeichnet man üblicherweise<br />
ein mathematisches Verfahren zum Lösen von Differenzialgleichungen.<br />
Eine anschauliche, gebräuchliche Methode zur Simulation<br />
von durch Stangen verbundenen Massenpunkten wird gleich genannt, weil<br />
es mit diesem Verfahren einige Ähnlichkeiten aufweist. Als eine der wenigen<br />
mit der Schulmathematik verständlichen Quellen beschreibt<br />
[Jakobsen] auf seiner Internetseite diese Simulationsmethode.<br />
(Beim Recherchieren auf dieser Seite war stets zu beachten, dass dort die<br />
Physik in Computerspielen beschrieben wird, bei der gewöhnlich<br />
realistisches Aussehen über Genauigkeit geht.)<br />
11 Bei nur wenigen Stößen während ∆ t ist die berechnete Kraft starken Schwankungen<br />
unterworfen, daher ist der Mittelwert über einen längeren Zeitraum hinweg zu bilden.<br />
- 12 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
d<br />
∆s 1<br />
∆s 2<br />
m 1<br />
l<br />
m 2<br />
Abb. 10<br />
Abstand zu groß –<br />
Zugbelastung<br />
Bei der penalty-method bewegen sich die einzelnen Massenpunkte während<br />
eines Zeitschrittes zunächst ohne Berücksichtigung der Stangen nach<br />
dem Algorithmus von 3.2.1, d.h. auf Parabeln oder Geraden. Am Ende<br />
jedes Zeitschrittes jedoch wird für jede Stange deren zugewiesene Länge<br />
l (Soll-Wert) mit dem tatsächlichen Abstand d (Ist-Wert) ihrer Endpunkte<br />
verglichen. Sollte es zwischen diesen Werten einen Unterschied geben, so<br />
werden die Positionen beider Endpunkte so entlang der durch sie<br />
verlaufenden Geraden verschoben, dass sie den gewünschten Abstand d<br />
wieder erhalten (siehe Abb. 11). Dabei muss gelten:<br />
Wegen actio F 1=reactio F 2:<br />
F = F<br />
1<br />
1 1<br />
1<br />
1<br />
2<br />
m a = m a<br />
m ∆s<br />
= m ∆s<br />
2<br />
2<br />
2<br />
2<br />
|Grundgl. d. Mechanik<br />
1<br />
| a∆t<br />
2<br />
2<br />
= ∆s<br />
d.h. a ~ ∆s<br />
mit ∆t<br />
= const.<br />
- 13 -<br />
Abstand zu klein –<br />
Druckbelastung<br />
F = m ⋅ a<br />
An Knotenpunkten, d.h. Massenpunkten mit mehr als einer angrenzenden<br />
Stange geschieht es meist, dass die für eine Stange ausgeführte Positionskorrektur<br />
die zuvor abgeschlossene Positionskorrektur für eine andere<br />
Stange zunichte macht. Der daraus entstehende Fehler kann durch<br />
Wiederholung (Iteration) des Algorithmus zur Längenanpassung der Stangen<br />
verkleinert werden. Nach jedem Iterationsschritt verkleinert sich dabei<br />
der Gesamtfehler, d.h. die Summe aller Beträge | d − l | . Die Iteration<br />
wird beendet, sobald der Gesamtfehler einen vernachlässigbar kleinen<br />
Wert unterschreiten oder ein Fortsetzen der Iteration den Programmfluss<br />
zum Stocken bringen würde. Anschließend muss den veränderten Massenpunkten<br />
auch noch jeweils eine neue Geschwindigkeit v r<br />
neu zugewiesen<br />
werden.<br />
r r<br />
Sie berechnet sich zu r<br />
neu −<br />
alt<br />
vneu<br />
= , wobei r alt die Position des betrachteten<br />
∆t<br />
Massenpunktes zum Ende des vorigen Zeitschrittes und r neu die aktuelle<br />
Position des selben Punktes darstellt.<br />
Dieses Verfahren eignet sich nur bedingt zum Einbau in mein Programm,<br />
da sich nach ihm keine stetigen Ortskurven der einzelnen Massenpunkte<br />
ergeben, die Punkte werden nämlich am Ende eines Zeitschrittes an eine<br />
andere Position „gebeamt“. Diese Tatsache führt zu Fehlern bei der Kollisionserkennung.<br />
Um dies zu vermeiden strukturierte ich den Ablauf der
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
penalty-method um: Statt am Ende eines Zeitschrittes die falsche Position<br />
eines Punktes zu korrigieren, berechne ich zu Beginn jedes Iterationsschrittes<br />
die künftigen Positionen der Endpunkte der betrachteten Stange.<br />
Anstelle der Positionskorrektur werden nun die Geschwindigkeiten der<br />
betreffenden Massenpunkte so verändert, dass sie am Ende des Zeitschrittes<br />
den Abstand d erreichen. Weiterer Vorteil dieser Version der penalty-method<br />
ist die einfachere Berechnung der inneren Kräfte in der<br />
Stange: Die Geschwindigkeitsänderung einer der Endpunkte wird durch ∆t<br />
geteilt und mit der Punktmasse multipliziert. Die errechnete Kraft wird zur<br />
inneren Kraft der Stange addiert.<br />
c) Vergleich beider vorgestellter Methoden<br />
Kollisions-Methode<br />
Vorteil:<br />
Kein Verlust an mechanischer Energie oder<br />
Impuls des Gesamtsystems, da alle Vorgänge<br />
strikt nach den Formeln von 3.2.2,<br />
d.h. auf Grundlage von Impuls- und Energieerhaltungssatz<br />
berechnet werden.<br />
Nachteile:<br />
- Bei großen Geschwindigkeiten müssen<br />
zu viele Stöße berechnet werden –<br />
Überlastung des Rechners<br />
- Komplexere Systeme (mehr als drei<br />
verbundene Stangen) brechen fast immer<br />
aus diversen Gründen (zu viele<br />
Stöße, drastische Auswirkungen winziger<br />
Ungenauigkeiten) zusammen.<br />
Statikexperimente (meist) unmöglich<br />
- Die durch Stangen verbundenen<br />
Massenpunkte bewegen sich auf „Zickzack-Bahnen<br />
(Schwankungen nicht<br />
sichtbar, da kleiner als ein Pixel). Ihre<br />
Geschwindigkeiten sind bei der Betrachtung<br />
kleiner Zeitabschnitte starken<br />
Schwankungen unterworfen. Die Auswertung<br />
der Momentangeschwindigkeit<br />
gestaltet sich dadurch schwierig – die<br />
eingezeichneten Geschwindigkeitsvektoren<br />
„zappeln“ während der Simulation<br />
schnell hin und her.<br />
Lösungsansatz:<br />
Quadratische Regression der Ortskurven<br />
und Ableitung zur gewünschten Zeit für<br />
Momentangeschwindigkeit – immer<br />
noch etwas ungenau<br />
penalty-method<br />
Vorteile:<br />
Zuverlässige, schnelle Berechnung komplexer<br />
Systeme (Statik oder Dynamik)<br />
Genaue Auswertungsmöglichkeiten<br />
Nachteile:<br />
Energie- und Impulsverluste treten auf, dies<br />
zeigt sich besonders am Beispiel der Kreisbewegung<br />
eines Massenpunktes um einen<br />
festen Punkt (Punkte durch eine Stange<br />
verbunden; Schwerelosigkeit)<br />
v r<br />
r<br />
v′<br />
∆s<br />
Abb. 11: Energieverlust<br />
bei der penalty-method<br />
| v r | > | v<br />
r ′ |<br />
Energieverlust<br />
Dies ist teilweise realistisch, da Energieverlust<br />
als Reibung interpretiert werden kann,<br />
physikalisch aber nicht korrekt.<br />
Lösungsansatz (noch nicht verwirklicht):<br />
Zur Berechnung der zukünftigen Position<br />
eines Massenpunktes bei der Iteration der<br />
penalty-method keine Parabelbahn 12 des<br />
Punktes sondern Rotation um den Schwerpunkt<br />
der betrachteten Stange, der sich<br />
tatsächlich auf einer Parabelbahn bewegt<br />
annehmen 13 .<br />
r<br />
12 Form 1<br />
r 2 r r<br />
( t)<br />
= at + vt +<br />
2<br />
0<br />
r<br />
13 Form ( )<br />
1 r 2 r r<br />
t = at + vt +<br />
0 + r(cosωt,sinω<br />
t )<br />
2<br />
- 14 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
Ich entschied mich nach Abwägung dieser Vor- und Nachteile für die<br />
penalty-method als standardmäßige Simulationsmethode. Der Benutzer<br />
kann bei Bedarf auch die Kollisions-Methode manuell einstellen. Denkbar<br />
wäre auch eine automatische Entscheidungsfindung seitens des<br />
Programms anhand verschiedener Kriterien (z.B. Anzahl der verbundenen<br />
Stangen > 3? Dann Kollisions-Methode!)<br />
3.3. Bisherige Anwendungsmöglichkeiten<br />
• Betrachtung von Wurfbahnen<br />
• Überprüfung mechanischer Gesetze unter Idealbedingungen (z.B.<br />
Zentripetalkraft)<br />
• Statik: Auswertung von Kräfteverteilungen, Überprüfung der Stabilität<br />
• Experimente zu deterministischem Chaos (z.B. Dreikörperprobleme)<br />
• Veranschaulichungen der Gasgesetze (Kugeln als Moleküle, Geschwindigkeit<br />
als Temperatur etc.)<br />
4. Ausblicke<br />
4.1. Interaktive Steuerung durch den Anwender auch<br />
nach dem Start der Simulation<br />
Ein Vorteil von Echtzeitsimulationen ist die Möglichkeit, auch während des<br />
Ablaufes als Benutzer in das Geschehen eingreifen zu können. Sie wird<br />
bisher in mobilitas nicht genutzt, ich plane aber in künftigen Versionen<br />
dem Anwender die Möglichkeit zu geben, selbst einfachste<br />
Ereignisbehandlungsroutinen zu entwerfen, dies könnte in der Praxis wie<br />
folgt aussehen: In einem Benutzerdialog bestimmt der Anwender im<br />
Voraus, welche Eigenschaft eines beliebigen Bauteils beim Drücken einer<br />
frei wählbaren Taste geändert werden soll. Diese Einstellung wird<br />
selbstverständlich mit dem Versuchsaufbau gespeichert. Auch ein Eingriff<br />
in das Geschehen der laufenden Simulation über die Maus dürfte leicht zu<br />
realisieren sein. Mit diesen Erweiterungen werden sich einige neue<br />
Möglichkeiten ergeben, denkbar wären z. B. Geschicklichkeitsspiele, die<br />
die Attraktivität von mobilitas auch bei „Nicht-Physikern“ erhöhen würden.<br />
- 15 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
4.2 Astrophysik mit mobilitas<br />
Um den einen weiteren Bereich der newtonschen Mechanik abzudecken,<br />
plane ich in dem Programm einen „Astrophysik-Modus“ einzubauen. Bauteile<br />
wären dann beispielsweise Planet, Sonne, Raumschiff oder Komet.<br />
Anhand der dadurch neu möglich werdenden Versuche könnte z.B. die<br />
Stabilität einer Anordnung von Himmelskörpern überprüft und Bahnen von<br />
Raumschiffen nachvollzogen werden. Der Anwender kann hier Erfahrungen<br />
in einem Bereich der Physik sammeln, der bei üblichen, praktischen Versuchen<br />
verschlossen bleibt.<br />
4.3. Einsatz des SmartBoard<br />
Ein langfristiges Ziel der Programmierung von mobilitas ist der Einsatz einer<br />
elektronischen Schultafel, die nun schon seit längerer Zeit unbenutzt<br />
im Physikvorbereitungsraum unserer Schule steht. Gekoppelt mit einem<br />
Beamer lassen sich an diesem sog. SmartBoard Aufschriebe oder Zeichnungen<br />
direkt an der als Leinwand funktionierenden Tafel erstellen.<br />
Für mobilitas stelle ich mir vor, Objekte statt mithilfe der Maus zu erstellen<br />
direkt am SmartBoard zu zeichnen. Das Programm erkennt dann<br />
automatisch, was der Anwender gezeichnet hat und erstellt aus diesen<br />
Informationen den virtuellen Versuchsaufbau.<br />
Zeichnet der Physiklehrer nun seine Skizzen aus dem Bereich der Mechanik<br />
ans SmartBoard statt an die Schultafel, können die sonst eher langweiligen<br />
Zeichnungen zum Leben erweckt werden.<br />
5. Danksagung<br />
An dieser Stelle möchte ich besonders meinem Mathe- und Physiklehrer<br />
Herrn Walker danken, der mir stets bei fachlichen Fragen zur Seite gestanden<br />
hat (und steht) und mich in der Idee bestärkt hat, diese <strong>Arbeit</strong><br />
bei Jugend forscht einzureichen.<br />
Mein Dank gilt auch meinem langjährigen Mathe-, Physik- und Naturwissenschaft<br />
und Technik(NWT)-Lehrer Herrn Luft. Letztes Jahr gab er mir<br />
im Physikunterricht einen Großteil der Ideen für mein Projekt; ein Exkurs<br />
über Statik im NWT-Unterricht (2006) weckte mein Interesse für dieses<br />
Thema.<br />
- 16 -
Physiksimulationen am PC<br />
Patrick Pietzonka<br />
6. Literaturverzeichnis<br />
[Dorn-Bader 11]<br />
[Schulz]<br />
[Martz]<br />
[Sieber]<br />
[Lambacher-<br />
Schweizer]<br />
Bader, F., Dorn, F.<br />
Physik 11 Ausgabe A Gymnasium Sek. II<br />
besonders S. 83 und 93<br />
(Schroedel, Hannover 2006)<br />
Schulz, H<br />
Physik mit Bleistift Das analytische Handwerkszeug der Naturwissenschaftler<br />
Kap. 1<br />
(Verlag Harry Deutsch, Frankfurt, 6. Auflage2006)<br />
Martz, P.<br />
OpenGL Distilled<br />
(Addison-Wesley, Boston, First printing 2006)<br />
Sieber, H.<br />
Mathematische Formelsammlung<br />
(Klett-Verlag, Stuttgart, 2002)<br />
Lambacher, Schweizer<br />
Kursstufe<br />
S. 54ff, S.56ff<br />
(Ernst Klett Verlag, Stuttgart 2004)<br />
Webadressen<br />
[Sonar]<br />
http://www.mathematik.tu-bs.de/FA-Workgroup/tsonar/VWProjekt/skript23.htm<br />
…/skript24.htm<br />
05.01.2008<br />
Prof. Dr. Thomas Sonar, Lineare/Quadratische Regression<br />
[Witkin] 14<br />
http://www.cs.cmu.edu/~baraff/pbm/pbm.html 05.01.2008<br />
Witkin, Andrew and Baraff, David<br />
An Introduction to Physically Based Modeling<br />
[Jakobsen]<br />
http://www.teknikus.dk/tj/gdc2001.htm 05.01.2008<br />
Thomas Jakobsen<br />
Advanced Character Physics<br />
Zusätzliche Quelle: Hilfedatei des Borland C++ Builders<br />
Bildnachweis:<br />
Alle Bilder und Zeichnungen wurden von mir selbst erstellt, allein Abb. 2 (S.3) stammt<br />
von der Seite http://www.opengl.org/img/opengl_logo.jpg (28.12.2007); Abb. 3 ist ein<br />
Screenshot des Fensters, das beim Start von Maple erscheint.<br />
14 Große Teile dieser Seite sind nur schwer mit der Schulmathematik verständlich<br />
- 17 -