Physlets 1 (Mechanik)

Linz 1

Workshop Physlets 1

Mechanik Aufgaben: 1. Achterbahn (oder die Lissajous-Figur 1-2) a. Parametrisierung der Bahn b. Einzeichnen von Bahn, Geschwindigkeits- und Beschleunigungsvektor c. Numerische Ausgabe von v d. Änderung der Durchlaufgeschwindigkeit („halb so schnell“) e. [Zerlegung von a in Komponenten senkrecht und parallel zu v] 2. Die Uhr Der Sekundenzeiger einer Uhr ist zu simulieren, und zwar in dem Sinn, dass ein Objekt in 60 s einen Kreis vollführt (das Objekt soll oben starten und im Uhrzeigersinn umlaufen). 3. Das Fahrrad Ein rollendes Rad eines Fahrrades ist mit dem Baukasten zu konstruieren. Verwende dazu eine ’shell’ (vgl. Uhrenbeispiel), die sich mit konstanter Geschwindigkeit nach rechts bewegt und zeichne einen Punkt auf dem Rad ein, der zwei Bewegungen gleichzeitig ausführt: einmal bewegt er sich mit konstanter Geschwindigkeit, und dann macht er noch eine Kreisbewegung (wie bei der Uhr) zusätzlich. Welche Bahn vollführt dieser Punkt? Schliesslich sind noch v und a für den Punkt einzuzeichnen. 4. System Sonne – Erde, sowie ein weiterer Planet: dynamische Lösung (Kräfte)! a. Einheiten so, dass Abstand der Erde von der Sonne in astronomischen Einheiten (AE) und die Zeit in Einheiten von Tagen abzulesen ist. Dazu ist die Proportionalitätskonstante c des Wechselwirkungsterms entsprechend zu fixieren: addInteraction(sonne, erde,"-c/r^2","r"). O.E.d.A. werden die Massen der Planeten bei fixierter Sonne gleich 1 kg gesetzt. b. Einzeichnen eines weiteren Planeten und Kontrolle seiner Umlaufzeit (Beispiel: rötlicher Mars mit einer Umlaufzeit von 684 Tagen; a = 1.52 AE) c. Überprüfung des 3. Kepler’schen Gesetzes: (a1/a2)3 = (T1/T2)2 Ändere die Anfangsgeschwindigkeit des Mars so, dass er dieselbe grosse Halbachse a hat, wie die Erde. Dann müsste seine neue Umaufzeit auch 1 Jahr betragen. Merke: die Umlaufzeit T ist unabhängig von der kleinen Halbachse b. Warum? d. [Diagramm des Abstandes von Erde und Mars] 5. Periheldrehung und relativistische Mechanik a. Klassifizierung der Bahnen von Planeten bei Modifikation der Potenz des Newton’schen Gravitationsgesetzes 1/r2 → 1/r, 1/r3 b. Untersuchung der Planetenbahnen bei bei Hinzufügen einer kleinen Störung 6. x-t Diagramm Zeichnen Sie das x-t Diagramm für eine mit der Maus zu bewegende Kugel (1-dim)

© E.Kneringer, 2006

Instut für Astro- und Teilchenphysik

Universität Innsbruck

Physlets 1 (Mechanik)

Linz 2

7. Der elastische Stoss a. Elastisch springender Ball [bouncy] b. Elastischer Stoss zweier Kugeln [mittels Feder – siehe Punkt 5 der Kommentare] 8. Harmonische Schwingung (eine Masse soll vertikal schwingen) a. Geschwindigkeitsabhängige Reibung b. Eingabe des Reibungskoeffizienten [siehe Input] c. Weg-Zeit Diagramm beim Kriechfall 9. Gekoppelte Massen (1-dim, 2 Massen, 3 Federn, horizontal eingespannt) a. Diagramm der Amplituden in Abhängigkeit von der Zeit b. Variieren Sie die Kopplung [mittels Input] 10. Schiefer Wurf mit Luftreibung (Vergleich: turbulent und laminar) Maximale Wurfweite (mittels einer Vielzahl von Trajektorien)

Software Web-Browser (vorzugsweisen IE) mit aktviertem Java und Javascript Physik-Baukasten Mechanik: http://physik.uibk.ac.at/linz/1/physlets/Baukasten/Mechanik+2.4.html

Programmiersprache Javascript: http://www.w3schools.com/js/default.asp

Literatur http://webphysics.davidson.edu/Applets/Applets.html

Hinweise zur Durchführung Studieren Sie den Physik-Baukasten zur Mechanik im Internet (siehe Adresse vorne):

© E.Kneringer, 2006

Instut für Astro- und Teilchenphysik

Universität Innsbruck

Physlets 1 (Mechanik)

Linz 3

Der Baukasten erzeugt Programmcode von folgendem Typ: shp1 = document.Animator1.addObject("circle","x=0.0,y=0.0,r=10");

Dies bedeutet folgendes: auf das Objekt document.Animator1 wird die Methode addObject() angewendet, wobei die Details dazu als Argumente in den Klammern angegeben werden. In diesem Fall wird ein neues Objekt erzeugt, auf das dann über den Bezeichner shp1 (steht für shape, ist aber ein beliebiger Name) zugegriffen werden kann. Die Methoden sind oben immer links angegeben, die möglichen Argumente dazu rechts.

Wie zeichnet man einen dickeren Geschwindigkeitspfeil? pfeil = document.Animator1.addObject("arrow","s=6,thickness=2,h=vx,v=vy"); // default: s=4, thickness=1 document.Animator1.setRGB(pfeil,0,0,255); document.Animator1.setAnimationSlave(kugel,pfeil); document.Animator1.swapZOrder(kugel,pfeil);

© E.Kneringer, 2006

Instut für Astro- und Teilchenphysik

Universität Innsbruck

Physlets 1 (Mechanik)

Linz 4

Erklärungen: „ applet size: width × height „ showControls:

problemangepasst wählen geht auf Kosten von ’height’

„ FPS = frames/sec (setFPS)

Film: 24; flüssig: >= 10 Maximum hängt von CPU ab

„ dt = time step/frame (setDt)

Echtzeit: FPS·dt = 1 Zeitlupe: < 1 (z.B. ½) (für genauere Berechnung) Zeitraffer: > 1 (z.B. 3600)

„ ppu = pixels per unit (setPixPerUnit)

=0: nicht erlaubt (NaN) =width: applet 1 Einheit breit reinzoomen: ppu grösser wählen

„ on-screen grid unit (setGridUnit)

0: kein Gitter 1: Einheitsgitter sehr gross: nur Fadenkreuz (> width/ppu/2)

// Ablaufgeschwindigkeit interaktiv ändern dt=0.001; function schneller(){ function langsamer(){ dt*=2; dt/=2; document.Animator1.setDt(dt); document.Animator1.setDt(dt); } } ... document.Animator1.setDt(dt); ...

© E.Kneringer, 2006

Instut für Astro- und Teilchenphysik

Universität Innsbruck

Physlets 1 (Mechanik)

Linz 5

Input

‹ Eingabefelder „ Erstellung in 2 - 4 Schritten z NEW (Input) z DEFAULT z RENAME z RANGE ‹ if (E < 0) alert("Limit: E >= 0 !");

„ Verwendung z Als numerische Variable ‹ document.Animator1.setForce(shp2,"0","0",20,0,vx,vy);

z In Textvariablen (Strings) ‹ document.Animator1.addInteraction(shp1,shp2,"-x*"+k,"x");

Kommentare: 1. Nur statische Objekte (z.B. Wände) müssen ‚bouncy’ gemacht werden, damit es zu einem elasitschen Abprallen kommt. 2. Die Voreinstellung der Masse ist 1 kg für alle Objekte (für statische Objekte ist die Masse irrelevant) 3. Bevor Objekte wechselwirken können, müssen sie ‚dynamisch’ gemacht warden (d.h. dann unterliegen sie den Bewegungsgleichungen). 4. Die Ortsangabe beim Erzeugen von Objekten wird beim Dynamisieren überschrieben. 5. Für den elastischen Stoss zwischen 2 Kugeln verwendet man eine starke Feder, die aber nur beim Zusammendrücken (also einseitig) wirkt. es liegt das Hook’sche Gesetz zugrunde: F = –k * (r – r0) = k * (r0 – r) Damit dies optisch richtig aussieht, muss r0 gleich der Summe der Radien gewählt werden. Zudem muss man noch sicherstellen, dass die Kraft nur wirkt, falls Δx negativ ist: Δx = r – r0 < 0 bzw. r0 – r > 0 Dies erreicht man durch Multiplizieren mit der sogenannten Stufenfunktion step(x) , die 1 für positives x und 0 für negatives x ist. Also muss man den Faktor step(r0 – r) verwenden: F = k * (2 – r) * step(2 – r) 6. Vereinfachung: wenn man den Faktor (2 – r) weglässt, dann wirkt die Kraft sofort voll und steigt nicht linear an. 7. Für ein Quadrat schreibt man am besten x*x, allgemein würde man die power-Funktion verwenden: pow(x,2) für das Quadrat von x 8. Zeichnen eines Polygons: schiefeEbene = document.Animator1.addObject ("polyshape","x=-10,y=-10,n=3,h=200/0/0,v=0/100/0"); document.Animator1.setRGB(schiefeEbene,0,180,0); //grüner Abhang

© E.Kneringer, 2006

Instut für Astro- und Teilchenphysik

Universität Innsbruck

Physlets 1 (Mechanik)

Linz 6

Wie erstellt man einen Graphen? • In der ersten Zeile des Baukastens ,New: Datagraph’ auswählen. • In den damit erscheinenden neuen Elementen des Baukastens ’Get graph’ anklicken. In der unteren Hälfte des Fensters, in der ersten Zeile ganz rechts ‘DataConnect’ anclicken → damit öffnet sich ein Fenster, das man wie gewünscht ausfüllen kann: vom Objekt id2 zum Objekt ‚graph2’ die Variablen schicken, die auf x- und y-Achse aufgetragen werden sollen. Schliesslich mit klicken auf ‚Establish this connection’ abschliessen.

DataGraph:

…setSeriesStyle(1,true,0);

-3 = bar -2 = filled between axes: cyan > 0, yellow < 0 -1 = filled between axes 0 = line 1=x 2 = box 3 = bullets (default) 4 = filled boxes

...setMarkerSize(1,0.5); ...setSeriesRGB(1,255,0,0); // e.g. color of bars

Koordinatenkreuz: document.Datagraph2.setDrawZero(true);

© E.Kneringer, 2006

Instut für Astro- und Teilchenphysik

Universität Innsbruck