Automatisierter Motorsteuergerätetest mit Hardware-in-the-Loop Prüfständen

Die Seite wird erstellt Julia Krämer
 
WEITER LESEN
Automatisierter Motorsteuergerätetest mit
Hardware-in-the-Loop Prüfständen
Engl.:
Automatic ECU Test with HiL-Simulation

Autoren:

Prof. Dr.-Ing. H.-C. Reuss, Dipl.-Ing. R. Deutschmann          TU Dresden/IVK-EE
Dipl.-Ing. J. Liebl, Dipl.-Ing. F. Munk, Dr.-Ing. C. Schmidt            BMW AG

Vortragender:

Dipl.-Ing. R. Deutschmann

Abstrakt:

Im Rahmen eines Kooperationsprojektes zwischen der BMW AG und der TU
Dresden wurde ein Softwaretool für die Automatisierung des Tests von
Motorsteuergeräten für dSpace Hardware-in-the-Loop (HiL) Prüfstande entwickelt.
Die Software vereinigt die Möglichkeiten der Stimulierung, Diagnose, Auswertung der
Steuergeräte (EDIABAS, INCA, ASAP2) und deren simulierter Umgebung
(Motormodell). Die erzeugten Sequenzen sind beliebig reproduzierbar und stehen
damit für jeden weiteren Entwicklungsschritt zur Verfügung (Regressionstest).
Außerdem werden in einem zusätzlichen Modul mit Hilfe einer intuitiven
Bedienoberfläche      alle   möglichen      Fehlerfälle    an    allen   möglichen
Steuergeräteendstufen automatisch getestet.
Diese Software bildet die Grundlage für weitere wissenschaftliche Untersuchungen
im Bereich der automatischen bzw. optimierten Testvektorgenerierung. Zur
Testquantitätsverringerung werden bekannte Methoden wie das Äquivalenz-
klassenverfahren in Verbindung mit kombinatorischen Algorithmen untersucht.

Abstract:

BMW and Dresden University of Technology developed the software tool ECU-TEST
to automate ECU Hardware-in-the-Loop (HiL) testing on a dSpace platform. This
software combines all kinds of stimulation, diagnosis of ECUs (EDIABAS, INCA,
ASAP2) and the simulated environment. Sequences created once are reproducible
and can be used for next development steps (regression testing). Besides that ECU-
TEST has a SwitchBox module with a intuitive graphical user interface for wire
harness failure diagnosis test. ECU-TEST is a platform to start from for other
researches like combinatorial algorithm for reducing test vector quantity.
1.    Einleitung
Um die immer weiter steigende Komplexität der Steuergerätesoftware zu testen,
werden immer mehr Hardware in the Loop (HiL) - Systeme in den Steuergeräte-
Entwicklungsprozess eingebunden. Sie bieten die Möglichkeit,         Umgebungs-
bedingungen zu realisieren, die in der realen Welt nur selten vorkommen oder sehr
schwer zu erzeugen sind. Dabei ist die Reproduzierbarkeit der Ergebnisse für die
Fehlersuche von großem Vorteil.
Ziel war es, den Testablauf, die Testsequenzgenerierung bzw. die Testdatenanalyse
zu automatisieren. Dafür wurde an der TU Dresden in Zusammenarbeit mit der BMW
AG das Software Tool ECU-TEST entwickelt. Das Tool ist auf dSpace-Systeme
abgestimmt, und wurde in der Interpretersprache Python (wxPython) programmiert
und nutzt die Funktionalitäten der dSpace-ControlDesk Software.

          EDIABAS              ECU-TEST STIMULUS              EDIABAS

                                      GUI
                    Switch-Box                     Regression        Motor-
                                                                     Modell

           Motor-
           Modell        Dokumentation     Dokumentation
                                                              INCA

               Abbildung 1 ECU-TEST Übersicht Funktionalitäten

Prinzipiell ist das Programm in zwei Module unterteilt. Das SwitchBox-Modul bietet
die Möglichkeit, mit einer intuitiven Bedienoberfläche alle im Fahrzeug auftretenden
Fehlerarten zu simulieren und deren richtige Diagnose zu überprüfen. Das
Regression-Modul dient zur Erstellung von Testsequenzen, welche auf das
Motormodell und das Steuergerät zugreifen und gemessene Werte mit
Erwartungswerten vergleichen. Die Dokumentation der Testergebnisse für beide
Module erfolgt in Excel-Tabellen.

2.    SwitchBox-Modul
Häufig auftretende Probleme im Automobil sind Kontaktprobleme, Abriss von
Sensoren bzw. Aktoren und Kurzschlüsse gegen Masse oder Batteriespannung.
Diagnosefunktionen im Motorsteuergerät sollen den Verlust von Signalquellen und
das Auftreten von Kurzschlüssen erkennen und richtig reagieren z.B. mit der
Abschaltung und der Registrierung des Fehlerortes im Fehlerspeicher.
Der SwitchBox-Test ist ein Black-Box-Test nach der Methode der
Funktionsabdeckung und bietet dem Benutzer die Möglichkeit Diagnosefunktionen zu
validieren. Der erste Schritt zu einem automatisierten Testablauf war die Erstellung
des Teilmoduls SwitchBox für den Test der Endstufendiagnose. Über eine intuitive
grafische Bedienoberfläche (Abbildung 2), welche sich automatisch an den jeweiligen
USP (Universeller Steuergeräte Prüfstand) anpasst, können die im Fahrzeug
möglichen Fehlerarten (Kurzschluss, Unterbrechung) im Kabelbaum ausgewählt
werden.

                 Abbildung 2 SwitchBox- Modul (User Interface)

Außerdem ist es möglich, zwischen drei verschiedenen Fehlertypen zu
unterscheiden ( Abbildung 3). Die Fehlerdauer und die Entprellzeit sind frei wählbar.
Abbildung 3 Wählbare Fehlertypen

Pro Pin ergeben sich somit drei mal drei verschiedene Testfälle. Damit können
folgende Diagnosen auf ihre Funktion automatisch überprüft werden.

Getestete Diagnosen:
      - Fehlerart (Masse, Batteriespannung, Unterbrechung)
      - Entprellzeit
      - Fehler anliegend/ nicht anliegend
      - Fehlerortzuordnung
      - Fehleranzahl

Während des Tests werden die ausgesuchten Modellgrößen in Echtzeit
aufgezeichnet. Dies bietet die Möglichkeit die Umweltbedingungen während eines
Tests zu reproduzieren und eventuelle Rückschlüsse auf Modell- bzw.
Steuergerätefehler zu ziehen. Die Daten werden bewertet und in einer Excel- Tabelle
abgelegt. Aus dieser ist für den Nutzer sofort erkennbar, welche Diagnosen
fehlgeschlagen und welche erfolgreich ausgeführt worden sind.

3.    Regression-Modul

Da das SwitchBox-Modul nur die Endstufendiagnosen und damit nur einen
begrenzten Teil der Steuergerätesoftware testen kann, wurde ein flexibleres Modul
zur Testsequenzerstellung entwickelt. Es vereinigt alle Möglichkeiten, um auf das
Steuergerät und den Echtzeitrechner zuzugreifen. So können Labels im Steuergerät
via INCA-Tool oder EDIABAS Laufzeitsystem geschrieben bzw. gelesen werden.
Dazu ist es möglich, bestimmte Variablen und Konstanten im Motormodell zu
stimulieren, zu modifizieren oder zu lesen.
Im folgenden wird beschrieben, welche Aktionen als einzelner Testschritt in die
Testsequenz eingefügt werden können.
ECU-TEST ermöglicht es, alle steuergerätespezifischen SGBD (Steuer- Geräte-
Beschreibungs- Datei) Jobs mit Hilfe des EDIABAS- Laufzeitsystems auszuführen
z.B. Fehlerspeicher lesen oder löschen. Die zurückgelieferten Werte werden mit vom
Nutzer vorgegebenen Erwartungswerten verglichen. Die Kommunikation erfolgt über
eine serielle K- Line Schnittstelle mittels eines Aktiven Diagnose Steckers (ADS).
Damit können über den SGBD- Job „RAM- Zelle lesen“ auch alle im dazugehörigen
ASAP2- File festgelegten Labels im Steuergerät ausgelesen werden. Dazu wird das
für den Softwarestand spezifische ASAP2-File nach der Adresse, der
Umrechnungsformel und dem Datentyp durchsucht. Die gelesenen Werte können
entweder direkt oder mit dem korrespondierenden physikalischen Umrechnungswert
zu einem erwarteten Ergebnis in Relation gesetzt werden.
Da der Lesezugriff auf die steuergeräteinternen Variablen über die K-Line sehr
langsam und das Schreiben derselben nicht möglich ist, wurde zusätzlich das Tool
INCA eingebunden. INCA ist ein Applikations- und Messsystem der Firma ETAS.
Der Zugriff auf das Steuergerät kann parallel unter Verwendung eines ETK
(Emulatortastkopf) oder auch seriell via CAN-Bus bzw. K-Line erfolgen. Für den
schnellen Lese- und Verstellzugriff werden die Funktionalitäten der ETK Anbindung
für ECU-TEST genutzt. Die Fernsteuerung des INCA-Tools erfolgt über ein
Component-Object-Model (COM)-Interface, das auf objektorientierter Technologie
basiert. Das Interface besteht aus einer Liste von Pointern, die auf Methoden des
COM- Objekts zeigen.

                                                           Testsequenz
                                                           Fenster
                 Aktionen
                 Fenster

                                          LOG Fenster

                   Abbildung 4 ECU-TEST Modul Regression
Für die Generierung von definierten schnellen transienten Vorgängen z.B.
Spannungseinbrüchen ist es notwendig, mehrere Modellparameter in festgelegten
Zeitschritten zu stimulieren. In ECU-TEST wurde dazu eine Option STIMULUS
vorgesehen, damit lassen sich die in einem speziellen ControlDesk Editor erstellten
Echtzeitsequenzen in ECU-Test importieren und auszuführen. Es ist möglich,
mehrere Modellparameter parallel zu setzen und es können mehrere vordefinierte
Signalverläufe gewählt werden z.B. Sägezahn, Sinus etc.. Außerdem können Matlab
spezifische MAT- Files, z.B. um gemessene Fahrzyklen auszuführen, genutzt
werden. Eine zusätzlich definierte Triggervariable ermöglicht die Synchronisation des
Echtzeitrechners mit dem PC, das heißt der steigenden Flanke dieses Signals
können verschiedene Aktionen zugeordnet werden, die dann auf dem PC ausgelöst
und parallel zur Echtzeitsequenz berechnet werden. Damit ist es möglich mehrere
SGBD- Jobs auszuführen und ASAP- Variablen zu messen bzw. zu lesen. So kann,
während einer Echtzeitsequenz z.B. das richtige Zählen von Counter-Variablen
überprüft werden.
ECU-TEST erlaubt weiterhin das Schreiben und Lesen aller Modellgrößen. Über
einen Modellbaum kann die gewünschte Modellgröße herausgesucht werden. Die
gelesenen Werte werden mit vom Nutzer definierten Erwartungswerten verglichen.
Als Utilitys sind hilfreiche Funktionen für die Testsequenzerstellung abgelegt. Es
können z.B. LOOPS (Schleifen) oder WAIT (Warte) Funktionen ausgewählt werden.
Diese zuvor genannten einzelnen Aktionen sind Testschritte, die in eine Testsequenz
eingefügt werden. Einmal erstellte Testsequenzen können in einer selbst
definierbaren Ordnerstruktur abgespeichert und wiederverwendet werden. Damit ist
es möglich aus Standardbausteinen schnell neue Testsequenzen zu erstellen bzw.
steuergerätespezifische Testsequenzen zu einem Test für einen neuen
Softwarestandtest zusammenzufassen.
Die Auswertung erfolgt nach dem durchgeführten Test in einem Excel-File. Dabei
werden die Daten offline ausgewertet und verschiedene Analysen ausgeführt.
Ausgewählte Daten werden grafisch in einem Diagramm dargestellt. Für jeden
Schritt in der Testsequenz wird festgelegt , ob dieser erfolgreich oder fehlgeschlagen
war. Der Nutzer legt bei der Testsequenzerstellung fest, inwieweit der einzelne
Testschritt einen Einfluss auf das Gesamtergebnis nimmt. Zu dem Vergleich von
gemessenen Werten mit erwarteten Werten besteht die Möglichkeit, unter anderem
Sprunganalysen und Max/Min-Bestimmungen durchzuführen.
6.970 INCA-V                          Art                 Istwert                         Sollwert                                 Bewertung          Adresse
          K_TVVLRUKS                    Verstellen                 14,99961852                                   15                  SUCCESS            0x857730
  6.990 WAIT400
  7.451 INCA-M                          Art                 Messung                         Relation                  Erwartung      Bewertung          Adresse
          St_vvtlru.B_evvtlr            Lesen                      FALSCH                   =                                      0SUCCESS             0x7fa134
  7.511 WAIT4000
 11.547 MotorModell                     Art                 Wert                                                                     Bewertung          Datentyp
          FW1[%]-Value                  Schreiben                                       1                                            SUCCESS
 11.547 WAIT500
 12.077 MotorModell                     Art                 Wert                                                                     Bewertung          Datentyp
          FW1[%]-Value                  Schreiben                                 100                                                SUCCESS
 12.087 INCA-M                          Art                 Messung                         Relation                  Erwartung      Bewertung          Adresse
          Cou_er_vlru                   Lesen                                       30<                                            30FAILED             0x7fa138
 12.127 WAIT400
 12.568 INCA-M                          Art                 Messung                         Relation                  Erwartung      Bewertung          Adresse
          St_vvtlru.B_evvtlr            Lesen                      FALSCH                   =                                      0SUCCESS             0x7fa134
 12.588 WAIT1000

                              Abbildung 5 Auswertung Testschritte detailliert

200

180

160

140

120
                                                                                                                                              Cou_vlru\ETKC-A
                                                                                                                                              Cou_er_vlru\ETKC-A
100
                                                                                                                                              Exw ink_soll\ETKC-A
                                                                                                                                              Exw ink_ist\ETKC-A
80

60

40

20

  0
                                                     1081
                                                            1216
                                                                   1351
                                                                          1486
                                                                                 1621
                                                                                        1756
                                                                                                1891
                                                                                                       2026
                                                                                                              2161
                                                                                                                     2296
                                                                                                                            2431
          136
                271
                      406
                            541
                                  676
                                         811
                                               946
      1

                                               Abbildung 6 Auswertung grafisch
4.         Optimierte bzw. Automatische Testvektorgenerierung
Die manuelle Erstellung von Testsequenzen erfordert einen hohen Einsatz von Zeit
und Kreativität des Testers. Deshalb werden kombinatorische Algorithmen zur
optimierten Testvektorgenerierung untersucht. Weiterhin gibt es Überlegungen,
inwieweit formale Methoden bei der Generierung von Testvektoren             aus
Spezifikationsmodellen verwendet werden können.

Heuristische Kombinatorik

Dieses Verfahren beruht auf dem Prinzip des Black-Box-Tests. Der Eingaberaum für
eine zu testende Funktion wird in einzelne Äquivalenzklassen eingeteilt, bei denen
davon ausgegangen werden kann, dass mit jedem Repräsentanten einer Klasse die
gleichen Fehler wie mit jedem anderen Repräsentanten dieser Klasse gefunden
werden (Äquivalenzklassenmethode). Wählt man nun Testpunkte an den Grenzen
einer Klasse, wird ein endlicher Eingaberaum definiert, indem für jeden
Eingangsparameter der zu testenden Funktion eine endliche Anzahl zu testender
Werte festgelegt wird. Werden nun alle Werte aller Parameter miteinander
kombiniert, wird durch das exponentielle Wachstum die Anzahl der zu testenden
Kombinationen zu groß, um alle Möglichkeiten in einer vertretbaren Zeit zu testen.
Deshalb wurde ein Zusatzmodul für ECU-TEST entwickelt, welches durch gezieltes
Wählen des Kombinationsgrades eine Quantitätsverringerung der Testvektoren-
anzahl bei hoher Funktionsabdeckung gewährleistet. Dies soll folgendes Beispiel
verdeutlichen: Es handelt sich um eine abstrahierte ASCET-

 1000, 2000, 3000

                       nmot
nmot                                   0,1

 1500, 1000, 750
                       leerl_Value
leerl_Value

        15, 20, 30
                       tans
 tans                                                               0,1
                                                           B_SU
                                       0,1                                B_SU
       80, 90, 110
                       tka
 tka

       60, 70, 80
                       rl
  rl

                              Abbildung 7 ASCET Funktion

Funktion, wie sie in jedem Funktionsrahmen für ein Motorsteuergerät gefunden
werden kann. Es wird angenommen, dass die Funktion keine inneren Zustände
besitzt.
n_mot            leerl_Value      tans                tka          rl
1000             1500             15                  80           60
2000             1000             20                  90           70
3000             750              30                  110          80

              Abbildung 8 Eingangsparameter mit gewählten Werten

Die Kombination aller Parameter und Werte miteinander liefert 35 und damit 243
Testvektoren. Im Gegensatz zu einem zufälligen Auswählen wird durch einen
speziellen Algorithmus sichergestellt, dass für einen gewählten Abdeckungsgrad für
jedes beliebige Tupel (Länge entspricht Abdeckungsgrad) der Eingangsparameter
jede mögliche Kombination der dazugehörigen Werte untereinander innerhalb der
generierten Testvektoren enthalten ist. Bei diesem kombinatorischen Algorithmus
wurde die Greedy-Strategie: „Bearbeite immer als nächstes den noch nicht erledigten
attraktivsten Teilbrocken des Problems“ angewendet. Der Übersicht wegen wird im
Programmablauf (Abbildung 10) nur der Algorithmus für die Zweifachabdeckung
dargestellt.
Wird dieses Verfahren nun auf die Eingangsparameter der Beispielfunktion
angewendet, werden 13 Testvektoren erzeugt, bei denen sichergestellt ist, dass für
jede beliebige Paarung der Eingangsparameter alle möglichen Wertekombinationen
innerhalb dieser 13 Testvektoren vorhanden sind. Bei einer Dreifachabdeckung
werden 41 Möglichkeiten generiert.

                 nmot   leerl_Value      tans   tka         rl    Abgedeckte
                                                                 Kombinationen
     TV1         1000      1500          15      80         60        10
     TV2         2000      1500          20      90         70        10
     TV3         3000      1500          30     110         80        10
     TV4         1000      1000          20     110         60         9
     TV5         2000      1000          15      80         80         9
     TV6         3000      1000          30      90         60         8
     TV7         1000      750           30      80         70         9
     TV8         3000      750           15      90         70         7
     TV9         2000      750           20     110         60         6
     TV10        1000      1000          20      90         80         4
     TV11        3000      1000          20      80         70         4
     TV12        2000      750           30     110         70         2
     TV13        1000      750           15     110         80         2
            Abbildung 9 Generierte Testvektoren Zweifach- Abdeckung

Nutzt man diese generierten Vektoren zu einem Test der Beispielfunktion, kann
schon mit 5,4% der möglichen Testfälle 100% der Funktion 1 und bei Annahme der
Gleichverteilung des Ausgangsbits der Funktion 1 werden auch 90,57% der
Eingangsmöglichkeiten der Funktion 3 getestet werden.
Abbildung 10 Greedy Algorithmus Zweifach Abdeckung
1000, 2000, 3000                           Funktionsabdeckung: 100%
                                                 bei zweifacher Parameterabdeckung
                          nmot
      nmot                               0,1
                                 1                                    Funktionsabdeckung: 90,57%
       1500, 1000, 750
                                                                      (5,4% aller Kombinationen)
                          leerl_Value
      leerl_Value

            15, 20, 30
                          tans
      tans                                                               0,1
                                                          3   B_SU
                                         0,1                                   B_SU
            80, 90, 110
                          tka        2
      tka

            60, 70, 80                                                 Funktionsabdeckung: 99,99%
                                                                       (16,9 % aller Kombinationen)
                          rl
       rl
                                           Funktionsabdeckung: 100%
                                           bei dreifacher Parameterabdeckung

                                Abbildung 11 Funktionsabdeckung

Bei dreifacher Abdeckung ist sichergestellt, dass es neben Funktion 1 auch bei
Funktion 2 zu einer 100% Funktionsabdeckung kommt. Bei einer Gleichverteilung
des Ausgangsbits kann dann auch für Funktion 3 eine 99,99%ige Abdeckung
angenommen werden ( Abbildung 11).
In [1] wird bewiesen, dass die Anzahl der generierten Testfälle nur logarithmisch mit
der Anzahl der Parameter wächst.
Viele Funktionen in Motorsteuergeräten besitzen jedoch auch innere Zustände.
Diese Heuristik muss daher insoweit verändert werden, dass Werte eines
bestimmten Parameters durch vorher identifizierte Signalverläufe ersetzt werden.

      1. Literaturverzeichnis
[1]         David M. Cohen, R. Dalal, Michael L. Fredman, Gardner C. Patton: The AETG
            System An Approach to Testing Based on Combinatorial Design, IEE
            TRANSACTIONS ON SOFTWARE ENGINEERING VOL.23, NO.7, July 1997,
            S. 437-444

[2]         R. Dalal, A. Jain, N. Karunanithi, B.M. Horowitz : Model-Based Testing in
            Practice, ICSE ´99 Los Angeles CA, 1999 S. 285-294

[3]         Sven Grabow: Implementierung der INCA- Funktionalitäten in ECU-TEST, TU
            Dresden, IVK, Lehrstuhl Kraftfahrzeugelektronik und -elektrik, 2002

[4]         Rocco Deutschmann: Systematischer Test von Motorsteuergeräten, TU
            Dresden, IVK, Lehrstuhl Kraftfahrzeugelektronik und -elektrik, 2001
Sie können auch lesen