Zum Hauptinhalt springen

Beispiel 2 - Wegstrecke aus Geschwindigkeit

Beispiel 2 - Wegstrecke aus Geschwindigkeit:

Aufgabe:

Der Laufkilometerstand eines Fahrzeugs VEH_DIST_KM, der nur ganze "km" zählt, soll mit Hilfe des Geschwindigkeitssignals VEH_SPEED_KMPH so erweitert werden, dass eine feinere Auflösung zur Verfügung steht.

Lösung:

// Konstanten zur Einheitenumrechnung
uConv_kmph2mps = 1.0 / 3.6; // km/h -> m/s
uConv_m2km = 1e-3;        // m -> km

SPEED    = VEH_SPEED_KMPH * uConv_kmph2mps; // m/s
DIST_KM    = integrate(SPEED, {storage: 'sto_DIST'})
* uConv_m2km; // km
DIST_FRAC    = integrate(SPEED, posedge(VEH_DIST_KM), {storage: 'sto_DIST_frac'})
* uConv_m2km; // km
VEH_DISTFINE = VEH_DIST_KM + DIST_FRAC;     // km

Verwendete Funktionen

Erläuterung:

  • uConv_kmph2mps, uConv_m2km: Zunächst werden Faktoren zur Einheitenumrechnung definiert. Dies verbessert die Lesbarkeit des folgenden Codes. Solche Definitionen werden günstiger Weise zentral am Anfang des Formelsatzes platziert.

  • SPEED: Das Geschwindigkeitssignal des Fahrzeugs, die in km/h gemessen wird, wird zunächst in m/s umgerechnet. Diese Geschwindigkeit ist leicht integrierbar.

  • DIST_KM: (Bonus!) Aus dem Geschwindigkeitssignal kann der gesamte Laufkilometer-Stand ermittelt werden. Der Integrator integrate() fügt seinem Integranden die Dimension Zeit mit der Einheit s (Sekunde) hinzu. Damit ergibt sich die Wegstrecke in m (Meter), die dann in die gewünschte Zieleinheit km umgerechnet wird.

  • DIST_FRAC: Auch hier wird aus dem Geschwindigkeitssignal eine Wegstrecke integriert. Allerdings wird diese immer dann auf Null zurückgestellt, wenn mit posedge() in dem Kilometer-Zähler des Fahrzeugs ein Sprung auf den nächsten Kilometerstand festgestellt wird.

  • VEH_DISTFINE: Die genauer aufgelöste Wegstrecke des Fahrzeugs ergibt sich, wenn der zuvor bestimmte Teilbetrag zum Zählerstand des Fahrzeugs hinzugerechnet wird.