Berechnung des Spurpolynoms: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Programmierung hinzugefügt)
(Berechnung von Koeffizient a hinzugefügt)
Zeile 20: Zeile 20:


Durch diese vorbereitenden Rechenoperationen können jetzt die Koeffizienten a, b und c des Spurpolynoms berechnet werden:<br/>
Durch diese vorbereitenden Rechenoperationen können jetzt die Koeffizienten a, b und c des Spurpolynoms berechnet werden:<br/>
* Berechnung von a: <math>xy = MesswerteX. \cdot MesswerteY.</math>
* Berechnung von a: <math>a = \displaystyle\frac{(\overline{yx^{2}} - \overline{y} \cdot \overline{x2}) \cdot (\overline{x2} - (\overline{x})^{2}) - (\overline{xy} - \overline{y} \cdot \overline{x}) \cdot (\overline{x3} - \overline{x} \cdot \overline{x2})}{(\overline{x4} - (\overline{x2})^{2}) \cdot (\overline{x2} - (\overline{x})^{2}) - (\overline{x3} - \overline{x} \cdot \overline{x2})^{2}}</math>
 


== Generierung von C/C++ Code ==
== Generierung von C/C++ Code ==

Version vom 7. Februar 2020, 15:04 Uhr

Autor: Luca Di Lillo
Betreuer: Prof. Schneider

Einleitung

Damit das Fahrzeug geregelt entlang der ermittelten Fahrbahn fahren kann, muss ein Spurpolynom aus den erkannten Punkten auf der Fahrbahn ermittelt werden. Daher befasst sich dieser Artikel mit der Berechnung des Spurpolynoms. Das ermittelte Polynom ist ein Polynom zweiten Grades mit den Koeffizienten a, b und c, die zusammen das Polynom bilden. Die Programmierung erfolgt in Matlab anhand mit Hilfe eines Beispielprogramms von Prof. Schneider. Mit den Erkenntnissen des Beispielprogramms soll dann eine Funktion erstellt werden, die aus beliebig vielen Werten ein Polynom berechnet. Im Anschluss soll aus dem Matlab Code C/C++ Code generiert werden, um die Funktion in das Kameraprojekt einzubinden.

Softwareentwurf

Die Funktion zur Berechnung des Spurpolynoms wurde vor der Programmierung in Form eines PAP erstellt.

Abb. 1: Sendevorgang des Spurpolynoms

Programmierung

Die Programmierung der Funktion erfolgte in Matlab, da das Rechnen mit Matrizen und Vektoren dort einfach als in C/C++ ist. Im Folgenden wird die Umsetzung der Funktion genauer erläutert.
Die Funktion arbeitet nach der Quadratischen polynomischen Regression. Die Funktion erhält als Eingabeparamter einen Vektor mit n x-Messwerten und einen mit n y-Messwerten. In der Späteren OSE Software werden die Messwerte die ermittelten Schnittpunkte der Fahrbahn sein, die Werte können jedoch auch allgemeine Werte sein aus denen ein quadratisches Polynom gebildet werden soll. Die weitere Berechnung wird hier schrittweise aufgeführt:

  • Multiplikation aller x und y Werte zu dem Wert xy
  • Quadrieren der x Werte
  • Kubieren der x Werte
  • Vierte Potenz der x Werte
  • Quadrieren der x-Werte und Multiplikation mit den y-Werten

Durch diese vorbereitenden Rechenoperationen können jetzt die Koeffizienten a, b und c des Spurpolynoms berechnet werden:

  • Berechnung von a:

Generierung von C/C++ Code

Aufruf des generierten Codes

Komponententest

Da es sich bei dieser Entwicklung um die einer einzelnen Komponente handelt, schließt der Komponententest mit dem Testbericht die Entwicklung ab.

Testfall Testfallbeschreibung Eingänge a,b und c Erwartetes Ergebnis beim Empfänger Testergebnis Testperson Datum
1 OK Marius Koehler
2 OK Marius Koehler
3 OK Marius Koehler
4 OK Marius Koehler
5 OK Marius Koehler

Zusammenfassung

Link zum Quelltext und zum Komponententest in SVN

Weiterführende Quelle

Regressionsanalyse der Uni Leipzig