Der Pohlsche Resonator

Ähnliche Dokumente
Drehpendel. Praktikumsversuch am Gruppe: 3. Thomas Himmelbauer Daniel Weiss

P1-12,22 AUSWERTUNG VERSUCH RESONANZ

Vorbereitung. Resonanz. Carsten Röttele. 17. Januar Drehpendel, freie Schwingungen 3. 2 Drehpendel, freie gedämpfte Schwingungen 3

Laborversuche zur Physik I. Versuch I-03: Pohlsches Rad

Der Pohlsche Resonator

M 10 Resonanz und Phasenverschiebung bei der mechanischen Schwingung

AUSWERTUNG: SCHWINGUNGEN, RESONANZVERHALTEN 1. AUFGABE 1

PP Physikalisches Pendel

Versuch 1 Der Pohlsche Resonator

Praktikum I PP Physikalisches Pendel

Praktikum Physik. Protokoll zum Versuch 3: Drehschwingungen. Durchgeführt am Gruppe X

MR Mechanische Resonanz

Erzwungene Schwingungen

Physikprotokoll: Massenträgheitsmoment. Issa Kenaan Torben Zech Martin Henning Abdurrahman Namdar

Anleitung zum Physikpraktikum für Oberstufenlehrpersonen Resonanz (R) Herbstsemester Physik-Institut der Universität Zürich

Ausarbeitung Pohlsches Rad / Chaos Autoren: Simone Lingitz, Sebastian Jakob

A02 Schwingung Resonanz Dämpfung

Resonanzverhalten eines Masse-Feder Systems (M10)

S4 Erzwungene Schwingung Protokoll

POHLsches 1 Drehpendel

Physikalisches Praktikum Pohlsches Rad Freie und erzwungene Schwingungen

Robert-Bosch-Gymnasium

Resonanz Versuchsvorbereitung

Praktikumsprotokoll: Torsions-Oszillator

F R. = Dx. M a = Dx. Ungedämpfte freie Schwingungen Beispiel Federpendel (a) in Ruhe (b) gespannt: Auslenkung x Rückstellkraft der Feder

Versuch: Drehpendel. Labor Physik und Grundlagen der Elektrotechnik. Prof. Dr. Karlheinz Blankenbach Dipl.-Phys. Michael Bauer

Versuch 3 Das Trägheitsmoment

Versuch M3b für Physiker Erzwungene Schwingung / Resonanz

M 1a Freie und erzwungene Schwingungen

Physikalisches Grundpraktikum Abteilung Mechanik

Physikalisches Praktikum

Praktikum Mikro- und Nanosysteme (Mikrosystemtechnik) Versuch MST7 Dämpfung

2.7. Pohlscher Resonator

Anhang A1. Schwingungen. A1.1 Freie Schwingung ohne Dämpfung. A1.2 Freie Schwingung mit Dämpfung PN0907

Anfänger-Praktikum I WS 11/12. Michael Seidling Timo Raab. Praktikumsbericht: Gekoppelte Pendel

Experimentalphysik E1

Physikalisches Anfaengerpraktikum. Pohlsches Rad

Gekoppelte Schwingung

Versuch e - Lineares Pendel

Schwingungen. Inhaltsverzeichnis. TU München Experimentalphysik 1 DVP Vorbereitungskurs. Andreas Brenneis; Rebecca Saive; Felicitas Thorne

HS D. V 101 : Pohlsches Pendel. Gruppe : Versuchstag: Namen, Matrikel Nr.: Vorgelegt: Hochschule Düsseldorf Fachbereich EI.

1. Klausur in K2 am

120 Gekoppelte Pendel

Messprotokoll , Partner Albert Einstein

5 Schwingungen und Wellen

Hochschule Düsseldorf University of Applied Sciences. 12. Januar 2017 HSD. Physik. Schwingungen III

Helmut Hörner, Kassandra Kunz: Laborprotokoll Drehpendel, Rev.: 01 Seite 1 von 27

Physik LK 11, 3. Klausur Schwingungen und Wellen Lösung

Laborversuche zur Physik 1 I - 8. Mechanische Schwingungen und Resonanz mit dem Pohl'schen Rad

Elektromagnetische Schwingkreise

Physikalisches Pendel

BESTIMMUNG DES WECHSELSTROMWIDERSTANDES IN EINEM STROMKREIS MIT IN- DUKTIVEM UND KAPAZITIVEM WIDERSTAND.

Das führt zu einer periodischen Hin- und Herbewegung (Schwingung) Applet Federpendel (

1.2 Schwingungen von gekoppelten Pendeln

Erzwungene Schwingungen

Mechanische Schwingungen Aufgaben 1

Pohlsches Pendel / Kreisel

Pohlsches Pendel / Kreisel

Elastizität und Torsion

Fadenpendel (M1) Ziel des Versuches. Theoretischer Hintergrund

(2 π f C ) I eff Z = 25 V

Drehpendel nach R.W. Pohl

Erzwungene Schwingung - das Pohl sche Drehpendel mit measure Dynamics. Material TEP

Formelsammlung: Physik I für Naturwissenschaftler

Fadenpendel (M1) Ziel des Versuches. Theoretischer Hintergrund

Versuch 2 Die Gravitationswaage

2. Schwingungen eines Einmassenschwingers

2. Freie gedämpfte Schwingungen

Physik für Mediziner und Zahnmediziner

Drehpendel. Laborbericht Für Labor Physik und Grundlagen der Elektrotechnik SS 2003 FB 2 ET / IT

Versuch M3a für Nebenfächler Gedämpfter harmonischer Oszillator

Versuch 17: Kennlinie der Vakuum-Diode

Resonanz und Dämpfung

Versuch M1 für Nebenfächler mathematisches Pendel

Praktikumsprotokoll: Gekoppelte Pendel

Trägheitsmoment (TRÄ)

Versuch 11 Einführungsversuch

4.5 Gekoppelte LC-Schwingkreise

Modalanalyse am Zweimassenschwinger

Schwingungen. Harmonische Schwingungen. t Anharmonische Schwingungen. S. Alexandrova FDIBA TU Sofia 1

ÜBUNGSAUFGABEN PHYSIK SCHWINGUNGEN KAPITEL S ZUR. Institut für Energie- und Umwelttechnik Prof. Dr. Wolfgang Kohl UND WELLEN.

Physikalisches Grundpraktikum. Versuch 16. Der Transformator. Ralph Schäfer

Versuch dp : Drehpendel

Torsions - Oszillator

1. Bestimmen Sie die Phasengeschwindigkeit von Ultraschallwellen in Wasser durch Messung der Wellenlänge und Frequenz stehender Wellen.

Grundlagen der Physik 2 Schwingungen und Wärmelehre

0.1 Versuch 4C: Bestimmung der Gravitationskonstante mit dem physikalischen Pendel

Einführung in die Physik

Hochschule Düsseldorf University of Applied Sciences. 05. Januar 2017 HSD. Physik. Schwingungen II

Erzwungene Schwingung, Resonanz, Selbstgesteuerte Schwingungen

Erzwungene Schwingung, Resonanz, Selbstgesteuerte Schwingungen

Einstein-de-Haas-Versuch

5. Vorlesung Wintersemester

1. Klausur in K2 am

Schwingungen & Wellen

Drehpendel nach Pohl (Lineare und nichtlineare Schwingungen)

Transkript:

Physikalisches Grundpraktikum Versuch 1 Der Pohlsche Resonator Praktikant: Tobias Wegener Alexander Osterkorn E-Mail: tobias.wegener@stud.uni-goettingen.de a.osterkorn@stud.uni-goettingen.de Tutor: Gruppe: Marten Düvel 3 Durchgeführt am: Protokoll abgegeben: 24.6.2013 1.7.2013 Testiert:

Inhaltsverzeichnis 1 Einleitung 3 2 Theorie 3 2.1 Freie Schwingung............................. 3 2.2 Erzwungene Schwingung......................... 3 3 Durchführung 4 3.1 Versuchsaufbau.............................. 4 3.2 Aufnahme der Messdaten........................ 4 3.2.1 Freie, gedämpfte Schwingung.................. 4 3.2.2 Erzwungene, gedämpfte Schwingung.............. 5 4 Auswertung 6 4.1 Freie, gedämpfte Schwingung...................... 6 4.1.1 Abklingkurven.......................... 6 4.1.2 Charakteristische Schwingungs- und Dämpfungsgrößen.... 6 4.1.3 Ungedämpfte Eigenfrequenz................... 7 4.2 Erzwungene, gedämpfte Schwingung.................. 9 4.2.1 Resonanzkurven......................... 9 4.2.2 Phasenverschiebung....................... 9 4.2.3 Resonanzfrequenz........................ 10 5 Diskussion 11 Literatur 11 Anhang 12 2

1 Einleitung In diesem Versuch, benannt nach dem berühmten Göttinger Professor für Experimentalphysik, Robert Wichard Pohl, werden die Gesetzmäßigkeiten von freier und getriebener Schwingung und Resonanz untersucht. 2 Theorie 2.1 Freie Schwingung Die Bewegung des Pohlschen Rades ohne äußeren Antrieb lässt sich durch die Gleichung einer allgemeinen harmonischen Schwingung mit Dämpfung beschreiben. Dafür betrachtet man die Erhaltung des Drehmoments und erhält I ϕ + ρ ϕ + Dϕ = 0 (1) Dabei ist I das Trägheitsmoment des Rades, ρ der Reibungskoeffizient für lineare Reibung und D die Winkelrichtgröße, die für ein rücktreibendes Drehmoment sorgt, das proportional zur momentanen Auslenkung ϕ ist. Zur weiteren Berechnung normiert man die Gleichung durch Division mit I und führt neue Variablen ein: ϕ + 2β ϕ + ω 2 0ϕ = 0 (2) Das wird allgemein gelöst durch [Demtröder, 2013, S.333]: ϕ(t) = ϕ 0 e βt e i(ωet φ) bzw. ϕ(t) = ϕ 0 e βt cos(ω e t φ) (3) ω e heißt Eigenfrequenz und berechnet sich [ebd.] zu ω 2 e = ω 2 0 β 2 (4) Das logarithmische Dekrement Λ [Demtröder, 2013, S.334] wird definiert als ( ) ϕ(t) Λ = log = log (e βt e i(ωet φ) ) = βt (5) ϕ(t + T ) ei(ωe(t+t ) φ) 2.2 Erzwungene Schwingung Etwas komplizierter wird die Situation, wenn die Schwingung trotz Reibung durch eine äußere Drehmomentzuführung aufrechterhalten wird. Die Gleichung 2 erhält dann eine Inhomogenität mit irgendeiner Konstanten N: ϕ + 2β ϕ + ω 2 0ϕ = N cos(ωt) (6) Es ist eine spezielle Lösung dieser DGL gesucht. Physikalisch kann man sich überlegen, dass die Schwingung nach einer gewissen Einschwingphase mit der Anregungsfrequenz ω schwingt. Also ist der entsprechende Lösungsanstz ϕ(t) = ϕ0 2 ei(ωt φ). Man erhält [Demtröder, 2013, S.336] für die Amplitude ϕ 0 dieser Schwingung ϕ 0 = N (ω 2 0 ω 2 ) 2 + 4β 2 ω 2 (7) und für die Phasenverschiebung φ zwischen Schwingung und Anregung gilt: ( ) 2βω φ = arctan ω0 2 ω2 (8) 3

Die Diskussion von Amplitude und Phasenverschiebung sollen hier nicht durchgeführt werden. Es ist aber zum einen noch wichtig zu erwähnen, dass die maximale Amplitude in Gl. 7 bei ω = ω r = ω0 2 2β2 maximal wird, was man durch Ableiten bestätigen kann. Bei der Phasenverschiebung ist zu erwähnen, dass sie im Allgemeinen immer negativ ist, was hier heißen soll, dass die Schwingung der Anregung hinterherläuft [Demtröder, 2013, S.336]. Hier wurde ein Lösungsanstz für die inhomogene Gleichung mit φ gewählt. Im Bereich ω ω 0 gilt damit 0 φ π 2 und für ω 0 ω gilt π 2 φ π. Eine grafische Ausarbeitung dieser Tatsache für verschiedene Dämpfungen folgt dann im Auswertungsteil. 3 Durchführung 3.1 Versuchsaufbau Der Kern des Versuchsaufbaus zum Pohlschen Resonators ist eine Schwungscheibe, welche über eine Spiralfeder eine Schwingungsbewegung ausführen kann. An einer Winkelskala lässt sich die Amplitude der Schwingung ablesen. Vervollständigt wird der Aufbau durch eine Wirbelstrombremse, welche eine Dämpfung der Schwingung bewirkt und einem Schrittmotor, welcher die Schwingung extern antreiben kann. Dieser Motor ist über eine Steuerungsanlage mit einem Computer verbunden, sodass die Messung vom Computer gesteuert werden kann. Auch die Datenaufnahme erfolgt komplett elektronisch. Die Stärke der Wirbelstrombremse lässt sich am Versuchsaufbau variieren. Abbildung 1: Versuchsanordnung 3.2 Aufnahme der Messdaten 3.2.1 Freie, gedämpfte Schwingung Im ersten Teil der Messung wird für verschiedene Dämpfungswerte eine Schwingungskurve aufgenommen. Die Stärke der Dämpfung lässt sich über ein kleines Rad an der Wirbelstrombremse variieren. Dort sollen nacheinander die Werte 0, 4, 6und8mm eingestellt werden. Für jede dieser Einstellungen wird dann das Schwungrad um 120 ausgelenkt und die abklingende Schwingung aufgenommen. Da diese Schwingung frei sein soll, wird am Computer die Anregungsfrequenz auf ω = 0Hz eingestellt. 4

3.2.2 Erzwungene, gedämpfte Schwingung Auch im zweiten Teil der Messung wiederholt man eine Messroutine für verschiedene Dämpfungswerte (Stellung am Milimetertrieb der Wirbelstrombremse: 4, 6und8mm). Für jeden dieser Werte variiert man nun die Anregungsfrequenz so, dass das Intervall 100 600Hz mit einer geeigneten Schrittweite durchlaufen wird. Eine solche Schrittweite könnte z.b. 50Hz sein. Im interessanten Bereich in der Nähe der Eigenfrequenz sollte diese jedoch verkleinert werden, um aussagekräftigere Ergebnisse zu bekommen. Die Eigenfrequenz ist dann erreicht, wenn die Amplitude maximal ist. Für jede dieser Frequenzen wartet man dann zunächst den Einschwingvorgang ab, sodass sich eine stationäre Schwingung einstellt. Sobald dies der Fall ist, startet man eine neue Messung und nimmt einige Schwingungsperioden mit dem Programm auf. 5

4 Auswertung 4.1 Freie, gedämpfte Schwingung 4.1.1 Abklingkurven In Messung 1 wurde eine freie gedämpfte Schwingung für verschiedene Dämpfungswerte über mehrere Perioden betrachtet. Da die Schwingung erst etwas zeitversetzt zu dem Programmstart gestartet wurde, werden die bis dahin registrierten Werte entfernt. Außerdem sind die gemessenen Zeiten nicht relativ zum Beginn der Messung gegeben, sodass die x-werte um denjenigen x-wert, bei dem die Messung begonnen hat, verschoben werden. Diese Daten können nun geplottet werden. Da in diesem Auswertungsteil besonders die Dämpfung betrachtet werden soll, ist es sinnvoll, zusätlich die Einhüllende zu plotten. Dazu werden jeweils die Maxima (Minima) bestimmt und exponentiell mit gnuplot gefittet. Die grafische Darstellung dieser Messungen ist in Abbildung 2 zu sehen. 4.1.2 Charakteristische Schwingungs- und Dämpfungsgrößen Für jeden Dämpfungswert sollen die Eigenfrequenz ω e, das logarithmische Dekrement Λ sowie die Dämpfungskonstante β bestimmt werden. Die Eigenfrequenz ω e lässt sich aus der Periodendauer T berechnen. Es wird also zunächst einmal ein Wert für die Periodendauer T benötigt. Dazu wird die Differenz der x-werte zweier aufeinanderfolgender Maxima (bzw. Minima) für alle Extrema bestimmt. Aus diesen Werten lässt sich dann eine mittlere Periodendauer T berechnen. Die Dämpfung sollte keinen Einfluss auf die Periodendauer haben, sodass diese während der Schwingungsmessung als konstant angenommen werden kann. Damit lässt sich nun die Eigenfrequenz berechnen: ω e = 2π T σ ωe = 2π T 2 σ T Für das logarithmische Dekrement Λ gilt die Formel ( ) φ(t) Λ = ln φ(t + T ). Auch dieses wird zunächst für alle Extrema ausgerechnet und dann gemittelt. Die Dämpfungskonstante β ergibt sich dann direkt aus Λ: β = Λ T ( ) 2 ( ) 2 1 Λ σ β = T σ Λ + T 2 σ T Die Ergebnisse dieser Berechnungen für jeden Dämpfungswert sind in Tabelle 1 aufgeführt. 6

Dämpfung in mm 0 4 6 8 T in s 3, 07 ± 0, 06 3, 1 ± 0, 1 3, 1 ± 0, 06 3, 23 ± 0, 15 ω e in Hz 2, 04 ± 0, 04 2, 06 ± 0, 07 2, 03 ± 0, 04 1, 94 ± 0, 09 Λ 0, 05 ± 0, 01 0, 5 ± 0, 1 0, 9 ± 0, 1 1, 4 ± 0, 4 β in Hz 0, 017 ± 0, 003 0, 15 ± 0, 04 0, 29 ± 0, 03 0, 43 ± 0, 11 ω 0 in Hz 2, 04 ± 0, 06 2, 1 ± 0, 1 2, 05 ± 0, 06 2, 00 ± 0, 12 Tabelle 1: Übersicht über gemessene Schwingungsgrößen 4.1.3 Ungedämpfte Eigenfrequenz Die Eigenfrequenz ω e hängt von der jeweiligen Dämpfungskonstante β ab. Es kann jedoch aus diesen Werte die ungedämpfte Eigenfrequenz ω 0 berechnet werden. Diese sollte im Idealfall recht gut mit der gemessenen Eigenfrequenz in der Stellung "0"der Wirbelstrombremse übereinstimmen. Diese Frequenz lässt sich wie folgt berechnen: ω 0 = ωe 2 + β 2 ( ) 2 ( ) 2 1 1 σ ω0 = ω e σ ωe + β σ β ω 0 ω 0 Auch diese Werte sind für jeden Dämpfungswert in Tabelle 3.1 aufgeführt. Da diese Größe später noch in der Auswertung benötigt wird, ist es sinnvoll, hier den gewichteten Mittelwert zu bilden: ω 0 = (2, 05 ± 0, 04) Hz Dieser Wert stimmt sehr gut mit dem Wert für die Eigenfrequenz bei der Messung ohne zusätzliche Dämpfung überein. 7

φ0(t) [ ] 150 100 50 0-50 -100-150 0 10 20 30 40 50 60 70 80 t [s] Dämpfung: 0 mm φ0(t) [ ] 100 80 60 20 40-20 0-40 -60-80 -100 0 5 10 15 20 25 30 35 40 t [s] Dämpfung: 4 mm φ0(t) [ ] 80 60 40 20-20 0-40 -60-80 0 2 4 6 8 10 12 14 16 18 20 t [s] Dämpfung: 6 mm φ0(t) [ ] 40 30 20 10-10 0-20 -30-40 -50 0 2 4 6 8 10 12 t [s] Dämpfung: 8 mm Abbildung 2: Abklingkurven aus Messung 1 8

4.2 Erzwungene, gedämpfte Schwingung 4.2.1 Resonanzkurven Für jeden Dämpfungswert lässt sich nun eine Resonanzkurve bestimmen. Dazu wird die auf der Ordinate die Amplitude in Abhängigkeit von der Anregungsfrequenz φ(ω(f)) φ(0) (normiert durch den Nullausschlag) und auf der Abzisse die Anregungsfrequenz (mit Eigenfrequenz normiert) ω ω 0 aufgetragen. Für φ 0 wird φ(ω(f)) bei der kleinsten Anregungsfrequenz verwendet, da die Amplitude sich für kleine Frequenzen ("weit"von der Resonanzfrequenz entfernt) kaum ändert. Es muss also für jeden Datensatz die Schwingungsamplitude bestimmt werden. Dazu müssen auch diese Daten erst einmal normiert werden, da sie im Allgemeinen etwas in y-richtung verschoben sind, sodass sie keine symmetrische Schwingung um die Nulllage repräsentieren. Dazu bildet man für jeden Datensatz das arithm. Mittel der Maxima sowie das der Minima und verschiebt dann den Datensatz um das Mittel aus diesen beiden Werten. Nun kann der Betrag der y-werte an den Extremstellen als Amplitude für die jeweilige Anregungsfrequenz verwendet werden. 7 6 Dämpfung: 4 mm Dämpfung: 6 mm Dämpfung: 8 mm 5 φ0(t) φ0(0) 4 3 2 1 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Abbildung 3: Frequenzgang einer erzwungenen gedämpften Schwingung für verschiedene Dämpfungen ω ω 0 4.2.2 Phasenverschiebung Aus den Messwerten lässt sich außerdem für jeden Dämpfungswert der Gang der Phasenverschiebung in Abhängigkeit von der Anregungsfrequenz darstellen. Dazu muss zunächst einmal für jeden Datensatz (bestimmte Anregungsfrequenz und Dämpfung) die Phasenverschiebung bestimmt werden. In den Rohdaten sind diejenigen Zeitwerte, bei denen die Anregung einen -/+ Nulldurchgang hat, mit einer 1 gekennzeichnet. Da die Schwingung des Schwungrads der Anregungsschwingung hinterherläuft, muss also der nächste Zeitpunkt bestimmt werden, bei dem das Schwungrad einen -/+ Nulldurchgang aufweist. Die dazu verwendete Rechenroutine befindet sich im Anhang. Auch für die Phasenverschiebungen kann ein Dia- 9

gramm erstellt werden, indem die normierte Phasenverschiebung f racφ(ω)π gegen die normierte Anregungsfrequenz (s.o.) aufgetragen wird. Da die Phasenverschiebung zunächst in angegeben ist, muss sie noch in Bogenmaß umgerechnet werden. 1 0.9 0.8 0.7 0.6 Φ0(t) π 0.5 0.4 0.3 0.2 Dämpfung: 4 mm 0.1 Dämpfung: 6 mm 0 Dämpfung: 8 mm 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Abbildung 4: Phasenverschiebung einer getriebenen Schwingung für verschiedene Dämpfungen ω ω 0 4.2.3 Resonanzfrequenz Aus den in Versuch 1 bestimmten Werten für die Eigenfrequenz ω 0 und der Dämpfungskonstante β lässt sich die Resonanzfrequenz ω R theoretisch berechnen: ω E = ω 2 0 2β2 Dämpfung in mm 4 6 8 ω R in Hz (berechnet) 2, 04 ± 0, 04 2, 00 ± 0, 04 1, 95 ± 0, 06 ω R in Hz (abgelesen) 2, 03 ± 0, 05 2, 03 ± 0, 05 1, 94 ± 0, 09 Tabelle 2: Berechnete und abgelesene Resonanzfrequenzen für verschiedene Dämpfungen Die berechneten Werte stimmen sehr gut mit den abgelesenen Werten überein. 10

5 Diskussion Die im Experiment gefundenen Ergebnissen entsprechen den theoretischen Überlegungen in vollem Maße. Das Zustandekommen dieser guten Werte ist sicherlich auch darauf zurückzuführen, dass der Versuch weitesgehend automatisiert ist, sodass menschliche Fehler vermieden werden. Literatur Wolfgang Demtröder. Experimentalphysik 1. Springer Spektrum, 2013. 11

Anhang / Analyse. cpp Programm zur Auswertung Pohlscher Resonator : E r s t e l l t zu e i n e r Datei, d i e einen Schwingungsdatensatz e n t h a e l t, d r e i neue Dateien mit den Maxima (. max), Minima (. min) und Nulldurchgaengen (. zero ) / #include <iostream > #include <fstream> #include <s t r i n g > #include <vector > #include <c s t d l i b > using namespace std ; // G l o b a l s : const char f i l e n a m e ; const char o u t p u t F i l e ; vector <float > xvalues ; vector <float > yvalues ; vector <float > xmaxima ; vector <float > ymaxima ; vector <float > xminima ; vector <float > yminima ; vector <float > xzerocross ; vector <float > yzerocross ; vector <float > xexitcross ; char expinfo [ 5 ] ; // Functions : void r e a d F i l e ( ) ; // Daten aus Datei e i n l e s e n void findmaxima ( ) ; // Maxima f i n d e n und z w i s c h e n s p e i c h e r n void printmaxima ( ) ; // Maxima in Datei s c h r e i b e n void findminima ( ) ; // Minima f i n d e n und z w i s c h e n s p e i c h e r n void printminima ( ) ; // Minima in Datei s c h r e i b e n void findzerocross ( ) ; // Nulldurchgaenge f i n d e n und z w i s c h e n s p e i c h e r n void printzerocross ( ) ; // Nulldurchgaenge in Datei s c h r e i b e n f loat calcphase ( ) ; // Phasenverschiebung berechnen void printphase ( ) ; // Phasenverschiebung in Datei s c h r e i b e n void getexpinfo ( ) ; // Versuchsdaten bekommen ( Daempfung, Frequenz ) // [... ] 12

/ v o i d r e a d F i l e() Einlesen der Daten aus Datei und Zwischenspeicherung in j e w e i l i g e m v e c t o r / void r e a d F i l e ( ) i f s t r e a m f i n ; f i n. open ( f i l e n a m e ) ; i f ( f i n. f a i l ( ) ) c e r r << " Unable to open F i l e. " << endl ; // Lese d i e e r s t e n zwei Z e i l e n ein ( > Text ) ohne Verarbeitung s t r i n g temp ; g e t l i n e ( f i n, temp, \n ) ; i f (! ( temp == " normierte Daten " ) ) g e t l i n e ( f i n, temp, \n ) ; // Zwischenspeicher f u e r Werte in a k t u e l l e r Z e i l e float c u r r e n t [ 3 ] ; while (! f i n. e o f ( ) ) f i n >> c u r r e n t [ 0 ] ; f i n >> c u r r e n t [ 1 ] ; f i n >> c u r r e n t [ 2 ] ; // Werte aus Z e i l e in v e c t o r a b l e g e n i f ( c u r r e n t [ 2 ] == 1) xexitcross. push_back ( c u r r e n t [ 0 ] ) ; xvalues. push_back ( c u r r e n t [ 0 ] ) ; yvalues. push_back ( c u r r e n t [ 1 ] ) ; f i n. c l o s e ( ) ; 13

/ v o i d findmaxima() Betrachte f u e r jeden y Wert d i e 40 v o r h e r i g e n und d i e 40 f o l g e n d e n. F a l l s k e i n e r d i e s e r Werte k l e i n e r i s t, g i b t es ein Maximum. Ausnahmen : Zu Beginn sind d i e y Werte k onstant 0, e r f u e l l e n a l s o d i e Bedingung und muessen a u s g e s c h l o s s e n werden. Ausserdem : In d e r Naehe e i n e s Maximums kann d e r Maximalwert mehrmals h i n t e r e i n a n d e r angenommen werden, h i e r s o l l nur der m i t t l e r e Wert r e g i s t r i e r t werden. / void findmaxima ( ) bool check = true ; for ( int i =40; i <yvalues. s i z e () 40; i++) // Anfangs O f f s e t und Mehrfachmaxima u e b e r s p r i n g e n i f ( yvalues [ i ] <= 0.01 yvalues [ i ] == yvalues [ i 1]) continue ; // V e r g l e i c h mit umgebenden y Werten for ( int j = 40; j <40; j++) check = true ; // r e s e t // kein max, f a l l s anderer Wert aus Umgebung g r o e s s e r i f ( yvalues [ i ] < yvalues [ i+j ] ) check = f a l s e ; break ; // kein Umgebungswert g r o e s s e r > max gefunden i f ( check ) / f a l l s y Wert mehrfach h i n t e r e i n a n d e r angenommen wird, s p e i c h e r nur ein Wertepaar aus der Mitte / int counter = 1 ; while ( yvalues [ i ] == yvalues [ i + counter ] ) counter++; xmaxima. push_back ( xvalues [ i + counter / 2 ] ) ; ymaxima. push_back ( yvalues [ i + counter / 2 ] ) ; 14

/ v o i d findminima() S t r u k t u r analog zu findmaxima ( ), e i n i g e Ungleichungen werden umgedreht / void findminima ( ) bool check = true ; for ( int i =40; i <yvalues. s i z e () 40; i++) // Anfangs O f f s e t und Mehrfachminima u e b e r s p r i n g e n i f ( yvalues [ i ] >= 0.01 yvalues [ i ] == yvalues [ i 1]) continue ; // V e r g l e i c h mit umgebenden y Werten for ( int j = 40; j <40; j++) check = true ; // r e s e t // kein min, f a l l s anderer Wert aus Umgebung k l e i n e r i f ( yvalues [ i ] > yvalues [ i+j ] ) check = f a l s e ; break ; // kein Umgebungswert k l e i n e r > min gefunden i f ( check ) / f a l l s y Wert mehrfach hinereinander angenommen wird, s p e i c h e r nur ein Wertepaar aus der Mitte / int counter = 1 ; while ( yvalues [ i ] == yvalues [ i + counter ] ) counter++; xminima. push_back ( xvalues [ i + counter / 2 ] ) ; yminima. push_back ( yvalues [ i + counter / 2 ] ) ; 15

/ v o i d n o r m a l i z e() F a l l s o f f s e t vorhanden, werden d i e y Werte konstant verschoben, sodass d i e Daten eine symmetrische Schwingung um Null d a r s t e l l e n : Berechne arithmet. M i t t e l der Maxima und Minima Das arithmet. M i t t e l aus den beiden Ergebnissen s o l l t e im I d e a l f a l l Null sein, a n d e r n f a l l s e r h a e l t man den o f f s e t Wert Verschiebung der y Werte um o f f s e t Wert und Schreiben in neue Datei (. norm) / void normalize ( ) // Berechne o f f s e t s t r i n g o u t p u t f i l e = ( s t r i n g ) f i l e n a m e + ". norm " ; float o f f s e t ; float maxcount = 0 ; float mincount = 0 ; for ( int i =0; i <ymaxima. s i z e ( ) ; i++) maxcount += ymaxima [ i ] ; for ( int i =0; i <yminima. s i z e ( ) ; i++) mincount += yminima [ i ] ; maxcount = maxcount / ( f loat ) ymaxima. s i z e ( ) ; mincount = mincount / ( f loat ) yminima. s i z e ( ) ; o f f s e t = ( maxcount + mincount ) / 2 ; // S c h r e i b e normierte Daten in neue Datei (. norm) ofstream f o u t ; f o u t. open ( o u t p u t f i l e. c_str ( ) ) ; f o u t << " normierte Daten " << endl ; for ( int i =0; i <xvalues. s i z e ( ) ; i++) yvalues [ i ] = o f f s e t ; f o u t << xvalues [ i ] << " \ t " << yvalues [ i ] << " \ t " << e x i t V a l u e s [ i ] << endl ; f o u t. c l o s e ( ) ; 16

/ v o i d printmaxima() S c h r e i b t d i e Maxima in eine neue Datei (. max) / void printmaxima ( ) s t r i n g o u t p u t F i l e = ( s t r i n g ) ( f i l e n a m e ) + ". max" ; ofstream f o u t ; f o u t. open ( o u t p u t F i l e. c_str ( ) ) ; for ( int i =0; i < xmaxima. s i z e ( ) ; i++) f o u t << xmaxima [ i ] << " \ t " << ymaxima [ i ] << endl ; f o u t. c l o s e ( ) ; / v o i d printminima() S c h r e i b t d i e Minima in eine neue Datei (. min) / void printminima ( ) s t r i n g o u t p u t F i l e = ( s t r i n g ) ( f i l e n a m e ) + ". min " ; ofstream f o u t ; f o u t. open ( o u t p u t F i l e. c_str ( ) ) ; for ( int i =0; i <xminima. s i z e ( ) ; i++) f o u t << xminima [ i ] << " \ t " << yminima [ i ] << endl ; f o u t. c l o s e ( ) ; 17

/ void findzerocross() Finde Nulldurchgaenge ( einen pro Periode, suche nach Vorzeichenwechsel /+) und s p e i c h e r e s i e z / void findzerocross ( ) bool check = true ; for ( int i =20; i <yvalues. s i z e () 1; i++) i f ( yvalues [ i ] == yvalues [ i +1]) continue ; i f ( ( yvalues [ i ] == 0 ( yvalues [ i ] yvalues [ i +1] < 0 ) ) && ( yvalues [ i 20] < 0 ) ) xzerocross. push_back ( xvalues [ i ] ) ; yzerocross. push_back ( yvalues [ i ] ) ; / void printzerocross() S c h r e i b e d i e N u l l s t e l l e n in neue Datei (. zero ) / void printzerocross ( ) s t r i n g o u t p u t F i l e = s t r i n g ( f i l e n a m e ) + ". zero " ; ofstream f o u t ; f o u t. open ( o u t p u t F i l e. c_str ( ) ) ; for ( int i =0; i <xzerocross. s i z e ( ) ; i++) f o u t << xzerocross [ i ] << " \ t " << xexitcross [ i ] << " \ t " << yzerocross [ i ] << f o u t. c l o s e ( ) ; 18

/ v o i d c a l c P h a s e() Berechne P h a s e n d i f f e r e n z. V e r g l e i c h e dazu Nulldurchgaenge des Motors und der Schwingung. Da d i e Schwingung der Scheibe dem Motor n a c h f o l g t, s o l l s t e t s d i e D i f f e r e n z in x zwischen einem Nulldurchgang der Scheibe und dem v o r h e r i g e n Nulldurchgang des Motors b e r e c h n e t werden. F a l l s schon ein Nulldurchgang der Scheibe vor dem e r s t e n Nulldurchgang des Motors r e g i s t r i e r t wird, wird d i e s e r aus dem v e c t o r e n t f e r n t. / f loat calcphase ( ) i f ( xzerocross [ 0 ] <= xexitcross [ 0 ] ) xzerocross. e r a s e ( xzerocross. begin ( ) ) ; vector <float > phase ; for ( int i =0; i <xexitcross. s i z e () 1; i++) phase. push_back ( xzerocross [ i ] xexitcross [ i ] ) ; float p h a s e D i f f = 0 ; for ( int i =0; i <phase. s i z e ( ) ; i++) p h a s e D i f f += phase [ i ] ; p h a s e D i f f = p h a s e D i f f / ( float ) phase. s i z e ( ) ; return p h a s e D i f f ; / v o i d p r i n t P h a s e() S c h r e i b e Z e i t d i f f e r e n z zwischen den Nulldurchgaengen zusammen mit Informationen ueber d i e Schwingung in Datei ( " PhaseDiff. t x t " ). F a l l s d i e s e schon e x i s t i e r t, a l s Anhang. Format : Daempfung Frequenz Z e i t d i f f e r e n z Amplitude. / void printphase ( ) ofstream f o u t ; f o u t. open ( " PhaseDiff. txt ", i o s : : out i o s : : app ) ; f o u t << expinfo << " \ t " << calcphase ( ) << " " << ymaxima [ ymaxima. s i z e ( ) 1 ] << endl ; f o u t. c l o s e ( ) ; 19