<phyphox version="1.0" locale="en">
    <title>Harmonious Spring Pendulum (xyz)</title>
    <category>Mechanics</category>
    <description>Analyze the frequency and period of a spring oscillator and display the elogation of the pendulum.

This experiment uses the accelerometer to measure the oscillator movement and calculates the oscillation period T. Using the circular frequency it transfers the data of the accelerometer into the elogation.

Further details:
The oscillation period is obtained through the autocorrelation of each accelerometer component. The sum of three autocorrelations is then analyzed for its first maximum. As an autocorrelation shows a maximum at dt = 0, we look for the first time t0 it crosses zero. From there we expect the autocorrelation to oscillate as the pendulum gives a sine function. Through this assumption we extract the position of the first full maximum to be in the range 3 t0 to 5 t0 in which we look for the maximum value.</description>
    <icon format="base64">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</icon>
    <translations>
        <translation locale="de">
            <title>Harmonisches Federpendel (xyz)</title>
            <category>Mechanik</category>
            <description>
Misst die Frequenz und Periode eines Federpendels und zeigt die Auslenkung des Pendels an.

Dieses Experiment nutzt den Beschleunigungssensor um die Pendelbewegung zu erfassen und berechnet hieraus die Schwingungsperiode T. Mit Hilfe der Kreisfrequenz wird aus den Beschleunigungsdaten die Elogation bestimmt.

Weitere Details:
Die Schwingungsperiode wird durch eine Autokorrelation jeder Komponente des Beschleunigungs-Vektors ermittelt. In der Summe aller drei Autokorrelationen wird dann nach dem ersten Maximum nach dem für Autokorrelationen üblichen Maximum bei dt = 0 gesucht. Hierzu wird der erste Zeitpunkt t0 ermittelt, bei welchem das Signal unter Null fällt. Unter der Annahme, dass die Autokorrelation periodisch um Null schwingt, wird das Maximum dann im Intervall 3x t0 bis 5x t0 gesucht.
</description>
            <string original="Elongation (x-axis of smartphone)">Elongation (x-Achse des Smartphones)</string>
            <string original="Elongation (y-axis of smartphone)">Elongation  (y-Achse des Smartphones)</string>
            <string original="Elongation (z-axis of smartphone)">Elongation  (z-Achse des Smartphones)</string>
            <string original="Results">Ergebnisse</string>
            <string original="Period">Periode</string>
            <string original="Frequency">Frequenz</string>
            <string original="Circular Frequency">Kreisfrequenz</string>
            <string original="Spring Constant">Federkonstante</string>
            <string original="Mass">Masse</string>
            <string original="Spring Constant">Federkonstante</string>
            <string original="Raw Data">Rohdaten</string>
            <string original="Accelerometer X">Beschleunigung X</string>
            <string original="Accelerometer Y">Beschleunigung Y</string>
            <string original="Accelerometer Z">Beschleunigung Z</string>
        </translation>
    </translations>
    <data-containers>
        <container size="500" static="false">accX</container>
        <container size="500" static="false">accY</container>
        <container size="500" static="false">accZ</container>
        <container size="500" static="false">acc_time</container>
        <container size="125" static="false">autocorrelation_x</container>
        <container size="125" static="false">autocorrelation_y</container>
        <container size="125" static="false">autocorrelation_z</container>
        <container size="125" static="false">autocorrelation_t</container>
        <container size="125" static="false">autocorrelation</container>
        <container size="1" static="false">dt</container>
        <container size="1" static="false">t0</container>
        <container size="1" static="false">t1</container>
        <container size="1" static="false">t2</container>
        <container size="125" static="false">search_t</container>
        <container size="125" static="false">search_y</container>
        <container size="200" static="false">period</container>
        <container size="200" static="false">frequency</container>
        <container size="125" static="false">autocorrelation_t (1)</container>
        <container size="125" static="false">autocorrelation_t (2)</container>
        <container size="200" static="false">circular frequency</container>
        <container size="200" static="false">omega2</container>
        <container size="500" static="false">eloX</container>
        <container size="200" static="false">ampX</container>
        <container size="20" static="false">ampX (1)</container>
        <container size="500" static="false">eloY</container>
        <container size="500" static="false">eloZ</container>
        <container size="1" static="false">mass</container>
        <container size="1" static="false">product</container>
        <container size="200" static="false">power</container>
        <container size="200" static="false">spring constant</container>
        <container size="500" static="false">eloXcm</container>
        <container size="500" static="false">eloYcm</container>
        <container size="500" static="false">eloZcm</container>
    </data-containers>
    <input>
        <sensor rate="50" average="false" type="linear_acceleration">
            <output component="x">accX</output>
            <output component="y">accY</output>
            <output component="z">accZ</output>
            <output component="t">acc_time</output>
        </sensor>
    </input>
    <output>
    </output>
    <analysis sleep="0" onUserInput="false">
        <autocorrelation>
            <input as="x" clear="false">acc_time</input>
            <input as="y" clear="false">accX</input>
            <input as="minX" type="value">0</input>
            <input as="maxX" type="value">2.5</input>
            <output as="x">autocorrelation_t</output>
            <output as="y">autocorrelation_x</output>
        </autocorrelation>
        <autocorrelation>
            <input as="x" clear="false">acc_time</input>
            <input as="y" clear="false">accY</input>
            <input as="minX" type="value">0</input>
            <input as="maxX" type="value">2.5</input>
            <output as="x">autocorrelation_t (1)</output>
            <output as="y">autocorrelation_y</output>
        </autocorrelation>
        <autocorrelation>
            <input as="x" clear="false">acc_time</input>
            <input as="y" clear="false">accZ</input>
            <input as="minX" type="value">0</input>
            <input as="maxX" type="value">2.5</input>
            <output as="x">autocorrelation_t (2)</output>
            <output as="y">autocorrelation_z</output>
        </autocorrelation>
        <add>
            <input as="summand">autocorrelation_x</input>
            <input as="summand">autocorrelation_y</input>
            <input as="summand">autocorrelation_z</input>
            <output as="sum">autocorrelation</output>
        </add>
        <threshold falling="true">
            <input as="x" clear="false">autocorrelation_t (2)</input>
            <input as="y" clear="false">autocorrelation</input>
            <output as="position">t0</output>
        </threshold>
        <multiply>
            <input as="factor" clear="false">t0</input>
            <input as="factor" type="value">2</input>
            <output as="product">dt</output>
        </multiply>
        <add>
            <input as="summand" clear="false">t0</input>
            <input as="summand" clear="false">dt</input>
            <output as="sum">t1</output>
        </add>
        <add>
            <input as="summand" clear="false">t1</input>
            <input as="summand">dt</input>
            <output as="sum">t2</output>
        </add>
        <rangefilter>
            <input as="in" clear="false">autocorrelation_t (2)</input>
            <input as="min">t1</input>
            <input as="max">t2</input>
            <input as="in" clear="false">autocorrelation</input>
            <output as="out">search_t</output>
            <output as="out">search_y</output>
        </rangefilter>
        <max multiple="false">
            <input as="x">search_t</input>
            <input as="y">search_y</input>
            <output as="position" clear="false">period</output>
        </max>
        <divide>
            <input as="dividend" type="value">1</input>
            <input as="divisor" clear="false">period</input>
            <output as="quotient">frequency</output>
        </divide>
        <multiply>
            <input as="factor" clear="false">frequency</input>
            <input as="factor" type="value">6.2832</input>
            <output as="product">circular frequency</output>
        </multiply>
        <power>
            <input as="base" clear="false">circular frequency</input>
            <input as="exponent" type="value">2</input>
            <output as="power">omega2</output>
        </power>
        <divide>
            <input as="dividend" clear="false">accX</input>
            <input as="divisor" clear="false">omega2</input>
            <input as="divisor" type="value">-1</input>
            <output as="quotient">eloX</output>
        </divide>
        <multiply>
            <input as="factor" type="value">100</input>
            <input as="factor" clear="false">eloX</input>
            <output as="product">eloXcm</output>
        </multiply>
        <divide>
            <input as="dividend" clear="false">accY</input>
            <input as="divisor" clear="false">omega2</input>
            <input as="divisor" type="value">-1</input>
            <output as="quotient">eloY</output>
        </divide>
        <multiply>
            <input as="factor" type="value">100</input>
            <input as="factor" clear="false">eloY</input>
            <output as="product">eloYcm</output>
        </multiply>
        <divide>
            <input as="dividend" clear="false">accZ</input>
            <input as="divisor" clear="false">omega2</input>
            <input as="divisor" type="value">-1</input>
            <output as="quotient">eloZ</output>
        </divide>
        <multiply>
            <input as="factor" type="value">100</input>
            <input as="factor" clear="false">eloZ</input>
            <output as="product">eloZcm</output>
        </multiply>
        <multiply>
            <input as="factor" clear="false">mass</input>
            <input as="factor" type="value">39.4784</input>
            <output as="product">product</output>
        </multiply>
        <power>
            <input as="base" clear="false">period</input>
            <input as="exponent" type="value">2</input>
            <output as="power">power</output>
        </power>
        <divide>
            <input as="dividend" clear="false">product</input>
            <input as="divisor" clear="false">power</input>
            <output as="quotient">spring constant</output>
        </divide>
    </analysis>
    <views>
        <view label="Elongation">
            <graph label="Elongation (x-axis of smartphone)" aspectRatio="3" style="lines" lineWidth="1" color="ff7e22" partialUpdate="false" history="1" labelX="t (s)" labelY="s (cm)" logX="false" logY="false" scaleMinX="auto" scaleMaxX="auto" scaleMinY="auto" scaleMaxY="auto" minX="0" maxX="0" minY="0" maxY="0">
                <input axis="y">eloXcm</input>
                <input axis="x">acc_time</input>
            </graph>
            <graph label="Elongation (y-axis of smartphone)" aspectRatio="3" style="lines" lineWidth="1" color="ff7e22" partialUpdate="false" history="1" labelX="t (s)" labelY="s (cm)" logX="false" logY="false" scaleMinX="auto" scaleMaxX="auto" scaleMinY="auto" scaleMaxY="auto" minX="0" maxX="0" minY="0" maxY="0">
                <input axis="y">eloYcm</input>
                <input axis="x">acc_time</input>
            </graph>
            <graph label="Elongation (z-axis of smartphone)" aspectRatio="3" style="lines" lineWidth="1" color="ff7e22" partialUpdate="false" history="1" labelX="t (s)" labelY="s (cm)" logX="false" logY="false" scaleMinX="auto" scaleMaxX="auto" scaleMinY="auto" scaleMaxY="auto" minX="0" maxX="0" minY="0" maxY="0">
                <input axis="y">eloZcm</input>
                <input axis="x">acc_time</input>
            </graph>
        </view>
        <view label="Results">
            <value label="Period" precision="2" scientific="false" unit="s" factor="1">
                <input>period</input>
            </value>
            <value label="Frequency" precision="2" scientific="false" unit="Hz" factor="1">
                <input>frequency</input>
            </value>
            <value label="Circular Frequency" precision="2" scientific="false" unit="1/s" factor="1">
                <input>circular frequency</input>
            </value>
        </view>
        <view label="Spring Constant">
            <edit label="Mass" signed="false" decimal="false" unit="g" factor="1000" default="0.15">
                <output>mass</output>
            </edit>
            <value label="Spring Constant" precision="2" scientific="false" unit="N/m" factor="1">
                <input>spring constant</input>
            </value>
        </view>
        <view label="Raw Data">
            <graph label="Accelerometer X" aspectRatio="3" style="lines" lineWidth="1" color="ff7e22" partialUpdate="true" history="1" labelX="t (s)" labelY="a (m/s²)" logX="false" logY="false" scaleMinX="auto" scaleMaxX="auto" scaleMinY="auto" scaleMaxY="auto" minX="0" maxX="0" minY="0" maxY="0">
                <input axis="y">accX</input>
                <input axis="x">acc_time</input>
            </graph>
            <graph label="Accelerometer Y" aspectRatio="3" style="lines" lineWidth="1" color="ff7e22" partialUpdate="true" history="1" labelX="t (s)" labelY="a (m/s²)" logX="false" logY="false" scaleMinX="auto" scaleMaxX="auto" scaleMinY="auto" scaleMaxY="auto" minX="0" maxX="0" minY="0" maxY="0">
                <input axis="y">accY</input>
                <input axis="x">acc_time</input>
            </graph>
            <graph label="Accelerometer Z" aspectRatio="3" style="lines" lineWidth="1" color="ff7e22" partialUpdate="true" history="1" labelX="t (s)" labelY="a (m/s²)" logX="false" logY="false" scaleMinX="auto" scaleMaxX="auto" scaleMinY="auto" scaleMaxY="auto" minX="0" maxX="0" minY="0" maxY="0">
                <input axis="y">accZ</input>
                <input axis="x">acc_time</input>
            </graph>
        </view>
    </views>
    <export>
        <set name="Elongation">
            <data name="Time (s)">acc_time</data>
            <data name="Elongation x-axis (cm)">eloXcm</data>
            <data name="Elongation y-axis (cm)">eloYcm</data>
            <data name="Elongation z-axis (cm)">eloZcm</data>
        </set>
        <set name="Result History">
            <data name="Period (s)">period</data>
            <data name="Frequency (Hz)">frequency</data>
            <data name="Spring Constant (N/m)">spring constant</data>
        </set>
        <set name="Raw Data">
            <data name="Time (s)">acc_time</data>
            <data name="Acceleration x (m/s^2)">accX</data>
            <data name="Acceleration y (m/s^2)">accY</data>
            <data name="Acceleration z (m/s^2)">accZ</data>
        </set>
    </export>
</phyphox>
