<phyphox version="1.0" locale="en">
    <title>Integrated acceleration</title>
    <category>Tools</category>
    <icon format="string">int</icon>
    <description>
        This experiment integrates the acceleration of the phone to acquire its velocity and its position relative to the starting position.

        Note, that errors in the acceleration sum up in the velocity and hence have an even worse impact on the location. Usually, the noise of the sensors brings the results to absolutely unreasonable values within a short time.
    </description>
    <link label="Wiki">http://phyphox.org/wiki/index.php?title=Experiment:_Integrated_acceleration</link>
    <translations>
        <translation locale="de">
            <title>Integrierte Beschleunigung</title>
            <category>Werkzeuge</category>
            <description>
                Dieses Experiment integriert die Beschleunigungsdaten des Smartphones um seine Geschwindigkeit und Position relativ zur Startposition zu ermitteln.

                Beachte, dass Fehler der Beschleunigung sich in der Geschwindigkeit aufsummieren und entsprechend einen noch stärkeren Einfluss auf die Position haben. In der Regel führt das Rauschen der Sensoren innerhalb kürzester Zeit zu unsinnigen Ergebnissen.
            </description>
            <string original="Acceleration X">Beschleunigung X</string>
            <string original="Acceleration Y">Beschleunigung Y</string>
            <string original="Acceleration Z">Beschleunigung Z</string>
            <string original="Acceleration">Beschleunigung</string>
            <string original="Velocity X">Geschwindigkeit X</string>
            <string original="Velocity Y">Geschwindigkeit Y</string>
            <string original="Velocity Z">Geschwindigkeit Z</string>
            <string original="Velocity">Geschwindigkeit</string>
        </translation>
    </translations>
    <data-containers>
        <container size="0">temp</container>

        <container size="0">aX</container>
        <container size="0">aY</container>
        <container size="0">aZ</container>
        <container size="0">vX</container>
        <container size="0">vY</container>
        <container size="0">vZ</container>
        <container size="0">x</container>
        <container size="0">y</container>
        <container size="0">z</container>

        <container size="0">t</container>

        <container size="1">count</container>
        <container size="1">period</container>
    </data-containers>
    <input>
        <sensor type="linear_acceleration" rate="0">
            <output component="x">aX</output>
            <output component="y">aY</output>
            <output component="z">aZ</output>
            <output component="t">t</output>
        </sensor>
    </input>
    <views>
        <view label="Acceleration">
            <graph label="Acceleration X" labelX="t (s)" labelY="a_x (m/s²)" partialUpdate="true">
                <input axis="x">t</input>
                <input axis="y">aX</input>
            </graph>
            <graph label="Acceleration Y" labelX="t (s)" labelY="a_y (m/s²)" partialUpdate="true" color="ffff00">
                <input axis="x">t</input>
                <input axis="y">aY</input>
            </graph>
            <graph label="Acceleration Z" labelX="t (s)" labelY="a_z (m/s²)" partialUpdate="true" color="ff6060">
                <input axis="x">t</input>
                <input axis="y">aZ</input>
            </graph>
        </view>
        <view label="Velocity">
            <graph label="Velocity X" labelX="t (s)" labelY="v_x (m/s)" partialUpdate="true">
                <input axis="x">t</input>
                <input axis="y">vX</input>
            </graph>
            <graph label="Velocity Y" labelX="t (s)" labelY="v_y (m/s)" partialUpdate="true" color="ffff00">
                <input axis="x">t</input>
                <input axis="y">vY</input>
            </graph>
            <graph label="Velocity Z" labelX="t (s)" labelY="v_z (m/s)" partialUpdate="true" color="ff6060">
                <input axis="x">t</input>
                <input axis="y">vZ</input>
            </graph>
        </view>
        <view label="Position">
            <graph label="Position X" labelX="t (s)" labelY="x (m)" partialUpdate="true">
                <input axis="x">t</input>
                <input axis="y">x</input>
            </graph>
            <graph label="Position Y" labelX="t (s)" labelY="y (m)" partialUpdate="true" color="ffff00">
                <input axis="x">t</input>
                <input axis="y">y</input>
            </graph>
            <graph label="Position Z" labelX="t (s)" labelY="z (m)" partialUpdate="true" color="ff6060">
                <input axis="x">t</input>
                <input axis="y">z</input>
            </graph>
        </view>
    </views>
    <analysis>
        <count>
            <input clear="false">aX</input>
            <output>count</output>
        </count>

        <divide>
            <input clear="false">t</input>
            <input clear="false">count</input>
            <output>period</output>
        </divide>

        <integrate>
            <input clear="false">aX</input>
            <output>temp</output>
        </integrate>
        <multiply>
            <input>temp</input>
            <input clear="false">period</input>
            <output>vX</output>
        </multiply>
        <integrate>
            <input clear="false">vX</input>
            <output>temp</output>
        </integrate>
        <multiply>
            <input>temp</input>
            <input clear="false">period</input>
            <output>x</output>
        </multiply>
        <integrate>
            <input clear="false">aY</input>
            <output>temp</output>
        </integrate>
        <multiply>
            <input>temp</input>
            <input clear="false">period</input>
            <output>vY</output>
        </multiply>
        <integrate>
            <input clear="false">vY</input>
            <output>temp</output>
        </integrate>
        <multiply>
            <input>temp</input>
            <input clear="false">period</input>
            <output>y</output>
        </multiply>
        <integrate>
            <input clear="false">aZ</input>
            <output>temp</output>
        </integrate>
        <multiply>
            <input>temp</input>
            <input clear="false">period</input>
            <output>vZ</output>
        </multiply>
        <integrate>
            <input clear="false">vZ</input>
            <output>temp</output>
        </integrate>
        <multiply>
            <input>temp</input>
            <input clear="false">period</input>
            <output>z</output>
        </multiply>
    </analysis>
    <export>
        <set name="Data">
            <data name="Time (s)">t</data>
            <data name="Acceleration x (m/s^2)">aX</data>
            <data name="Acceleration y (m/s^2)">aY</data>
            <data name="Acceleration z (m/s^2)">aZ</data>
            <data name="Velocity x (m/s)">vX</data>
            <data name="Velocity y (m/s)">vY</data>
            <data name="Velocity z (m/s)">vZ</data>
            <data name="Position x (m)">x</data>
            <data name="Position y (m)">y</data>
            <data name="Position z (m)">z</data>
        </set>
    </export>
</phyphox>
