Wie bereits in dem Artikel Workflow beschrieben, werden für eine durchgehende Entwicklung eine Reihe von Schritten durchlaufen. In diesem Artikel wird der Abschluss des Workflows – Systemtests/Verifikation zur Modellerstellung näher beschrieben. Das bedeutet zum Beispiel, dass während einer Messfahrt alle Daten aufgezeichnet und diese dem Simulationsmodell zur Verfügung gestellt werden. (vergleiche Struktur Datentransport – Fahrzeug zu Matlab (Simulationsmodell), Bild oben)
Wie gelangen jetzt die Daten vom Fahrzeug zum Simulationsprogramm?
Für den drahtlosen Datentransport am Fahrzeug verwenden wir aktuell ein embedded WLAN-Modul (Hersteller: Avisaro). Dieses sendet alle wichtigen Informationen über den Zustand des Fahrzeuges (Geschwindigkeit, Raddrehzahl,..) zu einem Server. Ein Java Programm (auf dem Server) nimmt die Daten entgegen und schreibt diese in eine Datenbank (hier: MySQL).
Der bisherige Weg des Datenaufzeichnens sah wie folgt aus:
Das WLAN Modul auf dem Fahrzeug sendet alle Daten an ein zweites embedded WLAN-Modul. An diesem wurden mittels der Vector Produkte CanCaseXL und CANalyzer die Daten aufgezeichnet und in ein, für Matlab verständliches, Datenformat exportiert. Viele Schritte notwendig, unkomfortabel, langsam (!).
MySQL Anbindung
Um die relevanten Daten (z.B. Lenkwinkel, Geschwindigkeit, Raddrehzahl, …) vereinfachter dem Simulationsmodell zur Verfügung zu stellen, werden die Daten direkt aus der Datenbank in Matlab über ein Script (kleines Programm) eingelesen.
Hierfür ist zunächst die Herstellung der Funktionalität einer MySQL-Datenbankanbindung in Matlab sicherzustellen. Zu diesem Zweck wurde sich an diesem Tutorial orientiert.
Gepackt als rar-Archiv hier downloadbar.
Zusammengefasst:
- ladet das MySQL-Paket “MySQL Community Server” herunter, ZIP-Archive (133 MB [32Bit])
- entpacken nach C:\mysql\
- im Archiv muss sich wie im Tutorial beschrieben ein Ordner : lib/opt mit der Datei libmysql.dll befinden
- kopiert diese Datei in euer Windows/System32 Ordner
- ladet die mysql.cpp von der Webseite (in der mysql.m (nur Kommentare) sind ein paar nützliche Hinweise enthalten)in Matlab:
- stellt den Compiler mit “mex -setup” auf den C++ Compiler (evtl. Microsoft Visual Studio C++ installieren)
und führt folgenden Befehl aus (achtet auf die Pfadangaben).
mex -I"C:\mysql\include" -DWIN32 mysql.cpp "C:\mysql\lib\opt\libmySQL.lib"
Nachdem der Übersetzungsvorgang fehlerfrei durchlaufen ist habt Ihr eine mex-Datei in eurem Arbeitsverzeichnis. Jetzt ist es möglich mit Hilfe der folgenden Befehle eine Verbindung zur Datenbank herzustellen und Daten abzurufen.
mysql( 'open', host, user, password ); %öffnet die Verbindung mysql(); %gibt den Status der Verbindung zurück mysql('close'); %schließt die aktive Verbindung mysql(query); %übergebt der Funktion einen beliebigen MySQL Query String
(Hinweis: Übergabe jeglicher Paramter als String)