Abstract:
A system and method for constructing a diagnosis function for mapping a symptom of a fault in an electromechanical system onto the fault by simulating the electromechanical system in at least a fault mode and a node fault mode, and learning a classifier function from the collected simulation results for mapping the system of the fault onto the fault.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority to German Patent Application Serial No. 10 2006 017 824.6, filed Apr. 13, 2006, which is hereby incorporated by reference as if set forth in its entirety. 
         [0002]    The present invention relates to a diagnosis system for automotive systems, more specifically, a system model for diagnosing automotive system faults. 
       BACKGROUND 
       [0003]    Today&#39;s cars are complex electromechanical systems. Despite their ever increasing technological complexity, there is much desire in improving the reliability of the electromechanical system. Consequently, the diagnosis process itself can become highly involved. For example, hardware systems and software systems together form a complex setup. In addition, data from various sensors is used by a complex network of distributed and inter-dependent software modules-modules that are specified at different phases in the development process and that are developed by different companies. 
       Classification of Fault Types 
       [0004]    Errors and faults might occur at different places within a vehicle. As shown in  FIG. 1 , the system “vehicle” can be divided into two subsystems: the electronics and the environment. The electronics comprises the electronic control units (ECUs), the buses connecting ECUs, and the sensors and actuators which act as the ECU&#39;s interface to the environment. In today&#39;s cars up to seventy ECUs are connected to mechanical devices as well as to other ECUs and perform dedicated control tasks. 
         [0005]    The main purpose of ECUs is to control parts of the environment, e.g., the engine or the gear. For this, ECUs execute application software modules. In addition to these software module applications, ECUs also contain basic software that is needed to execute applications and to connect them to sensors, actuators, and buses. The basic software comprises modules such as an operating system, I/O drivers, communication stack, and ECU services. Normally, the power supply is also included in the electronics subsystem. 
         [0006]    The environment comprises the rest of the vehicle and includes the driver, the road, the weather, and the following vehicle domains:
       Powertrain Examples: engine, gear, drive shaft   Chassis Examples: brakes, damping, steering   Body Examples: light, wipers, climate control, key-less entry   Safety Examples: airbag, active safety belts   Telematics/Infotainment Examples: radio, navigation, telephone       
 
         [0012]      FIG. 2  illustrates a sample taxonomy of fault locations. As mentioned previously, a vehicle can be subdivided into two main subsystems—the environment and the electronics. Within the environment subtree, the vehicle domains mentioned are differentiated as discussed above. In the electronics subtree, faults can occur in (i) ECUs, (ii) in connection with buses, (iii) in the context of the power supply, or (iv) in sensors, actuators, or their wiring. Note that within ECUs, both hardware and software can fail. The latter is often differentiated with respect to errors in application software or in basic software. 
       Diagnosis Based on Symptom Detection 
       [0013]    The purpose of diagnosis systems within a vehicle is to identify faults and to initiate appropriate countermeasures. Fault identification suffers from one inherent problem: Faults can not be observed directly, and only the effects caused by the fault can be detected by the vehicle&#39;s electronics. For example, a fault in the engine may lead to unusual readings for sensors such as engine temperature or revolution (RPM). 
         [0014]    In general, a diagnosis can be seen as a three step procedure: 
         [0015]    1. Identification of unusual vehicle conditions. Such conditions are identified by comparing an expected vehicle behavior with the observed behavior—e.g. observed by means of sensor reading. Detected discrepancies are called symptoms. 
         [0016]    2. Deduction of Faults. Based on the symptoms, the underlying faults are deduced. 
         [0017]    3. Finally, countermeasures such as a warning to the driver are initiated by the diagnosis system. 
         [0018]    Symptoms are detected in the software modules on the ECUs.  FIG. 3  shows a simplified ECU structure from a software point-of-view. As illustrated in  FIG. 3 , an ECU is organized as different hardware and software layers. Faults may occur in each layer but do not become observable until the driver layer or the application layer. 
         [0019]    Sensor readings or bus signals are read by application software modules via different hardware layers  100  and software layers  200  and are written to actuators or buses on hardware layer  300 . In traditional diagnosis systems, symptom detection may only be implemented by driversibasic software and by application software modules, i.e., all symptoms from all fault locations are detected by these software modules, rendering the process of differentiating between different faults a very difficult task. 
         [0020]    Symptoms can be classified into two coarse categories, local and remote. Local symptoms occur directly at the fault&#39;s location. An example would be a short circuit of a cable attached to an ECU. Faults causing such kinds of local symptoms can be identified rather easily. In the example illustrated in  FIG. 3 , the corresponding I/O driver could detect the wrong voltage level. 
         [0021]    Remote symptoms occur dislodged from the fault location. Examples of remote symptoms include (i) faults in the environment, e.g., engine problems or (ii) bus errors that influence all connected ECUs. Obviously, the detection of faults causing such symptoms is significantly more challenging. 
         [0022]    Remote symptoms have occurred much more often in the last few years, leading to more and more difficult diagnosis scenarios. This is mainly due to the development towards more complex applications, i.e., towards large and distributed software systems. Examples of these systems include driver assistant functions such as active cruise control (ACC), active front steering (AFS), or the lane keeping support. These systems are distributed over several ECUs and often rely on other, already existing software modules. Faults occurring at one module of such a distributed software system may trigger further faults within other connected software modules. This leads to the detection of a large number of symptoms on several ECUs. 
         [0023]    The diagnosis of technical systems is a research field that is largely governed by modeling questions:
       Which modeling strategy is adequate, a deep behavior model or a shallow rule model?   Is a distinction between a correct behavior model and a fault model necessary?   Is the diagnosis process controlled by heuristic expert knowledge, and, if so, how shall it be represented?   How can diagnosis knowledge be maintained or kept up-to-date?   Is a modeling open to integrate knowledge of unforeseen faults?       
 
         [0029]    Traditional approaches predominantly use model-based diagnosis. The basic idea is to have a system simulation running in parallel to the real system and to use the simulation results to detect symptoms, i.e., discrepancies between the expected and observed behavior. This is referred to as a behavior model M. 
         [0030]    In theory, possible faults causing symptoms can be deduced by analyzing a behavior model in reverse direction, from symptoms to faults. In practice, however, such an inverse simulation of M usually leads to a very complex analysis problem that is generally not traceable. Hence, often a specialized diagnosis model, M D , is constructed by domain experts, where fault deduction is treated in a forward reasoning manner. 
         [0031]    Model-based approaches may employ different algorithms, as described in Raymond Reiter, ‘A Theory of Diagnosis from First Principles’,  Artificial Intelligence,  32(1), 57-95, (1987) or Johan de Kleer and Brian C. Williams, ‘Diagnosing Multiple Faults’,  Artificial Intelligence,  32(1), 97-130, (1987), which is hereby incorporated by reference as if set forth in its entirety. One approach for detecting failures during operation is described in Gerald Steinbauer and Franz Wotawa, “Detecting and locating faults in the control software of autonomous mobile robots” in  IJCAI , pp. 1742-1743, (2005), which is hereby incorporated by reference as if set forth in its entirety. In these traditional systems, control software of autonomous robots is monitored with observers, which are a certain form of a behavior model running in parallel in order to detect symptoms. To find the faults, model-based diagnosis is applied. Here, the system&#39;s behavior, i.e., M D , is modeled using propositional logic. Reiter&#39;s hitting set algorithm, as discussed in Reiter and Russell Greiner, Barbara A. Smith, and Ralph W. Wilkerson, ‘A Correction to the Algorithm in Reiter&#39;s Theory of Diagnosis’,  Artificial Intelligence,  41(1), 79-88, (1989), hereby incorporated by reference as if set forth in its entirety, is used together with a propositional Horn clause theorem prover. After the fault detection, an algorithm is executed which repairs the software. 
         [0032]    In Sherif Abdelwahed, Gabor Karsai, and Gautam Biswas, ‘A Consistency-based Robust Diagnosis Approach for Temporal Causal Systems’, in 16 th    International Workshop on Principles of Diagnosis, DX -05, pp. 73-79, Monterey, Calif., USA, (June 2005), hereby incorporated by reference as if set forth in its entirety, a simple so-called “timed failure propagation graph” is introduced. This graph is used as M and indicates the way a failure propagates through the system. Additionally, the time range is known for the failure propagation between system components. Because of discrepancies between the expected behavior of a signal and the observed behavior, the faults detection is started. For this, the same graph is used, i.e. here M=M D . 
         [0033]    In Tsoline Mikaelian, Brian C. Williams, and Martin Sachenbacher&#39;s ‘Diagnosing Complex Systems with Software-Extended Behavior using Constraint Optimization’, in 16 th    International Workshop on Principles of Diagnosis, DX -05, pp. 19-24, Monterey, Calif., USA, (June 2005), hereby incorporated by reference as if set forth in its entirety, systems comprising hardware and software are diagnosed. For this, a probabilistic, hierarchical, constraint-based automata is used as M and M D . The diagnosis task is formulated as a constraint optimization problem (COP) and solved with optimization techniques. 
         [0034]    In Luca Console, Gerhard Friedrich, and Daniele Theseider Dupre&#39;s ‘Model-Based Diagnosis Meets Error Diagnosis in Logic Programs’, in  IJCAI , pp. 1494-1501, Chambery, France, (1993), it was shown that model-based diagnosis can be applied to program debugging. As a result, many researchers started to work in this area, for example, as disused in Daniel Köb, Rong Chen, and Franz Wotawa, ‘Abstract model refinement for model-based program debugging’, in 16 th    International Workshop on Principles of Diagnosis, DX -05, pp. 7-12, Monterey, Calif., USA, (June 2005) (“Köb et al.); Irene Grosclaude, ‘Model-based monitoring of component-based software systems’, in 15 th    International Workshop on Principles of Diagnosis, DX -04, Carcassonne, France, (June 2004); and Wolfgang Mayer and Markus Stumptner, ‘Approximate Modeling for Debugging of Program Loops’, in 15 th    International Workshop on Principles of Diagnosis, DX -04, pp. 87-92, Carcassonne, France, (June 2004). In Köb et al. a technique similar to constraint propagation is used in combination with model checking. This technique depends on a model M=M D  that is based on the source code. Component-based software is monitored in Grosclaude whereas the behavior of the software components is modeled by Petri nets, i.e., here M=M D . Symptoms are detected online. Each of these references is hereby incorporated by reference as if set forth in its entirety. 
         [0035]    Furthermore, there exist approaches for detecting failures using distributed systems or multi-agent systems, as discussed in Indranil Roychoudhury, Gautam Biswas, Xenofon Koutsoukos, and Sherif Abdelwahed, ‘Designing Distributed Diagnosers for Complex Physical Systems’, in 16 th    International Workshop on Principles of Diagnosis, DX -05, pp. 31-36, Monterey, Calif., USA, (June 2005); James Kurien, Xenofon Koutsoukos, and Feng Zhao, ‘Disributed Diagnosis of Networked, Embedded Systems’, in 13 th    International Workshop on Principles of Diagnosis, DX -02, pp. 179-188, Semmering, Austria, (May 2002); R. Su, W. Wonham, J. Kurien, and X. Koutsoukos, ‘Distributed Diagnosis for qualitative Systems’, in  Proceedings of the  6 th    International Workshop on Discrete Event Systems , WODES-02), eds., M. Silva, A. Giua, and J. M. Colom, pp. 169-174, Zaragoza, Spain, (October 2002); Nico Roos, Annette ten Teije, and Cees Witteveen, ‘A Protocol for Multi-Agent Diagnosis with spatially distributed Knowledge’, in  Autonomous Agents and Multi Agent Systems , AAMAS-2003, pp. 655-661, (July 2003); Gianfranco Lamperti and Marina Zanella,  Diagnosis of Active Systems , Kluwer Academic Publishers, Hingham, Mass., USA, 2003; and Meir Kalech and Gal A. Kaminka, ‘Towards Model-Based Diagnosis of Coordination Failures’, in 16 th    International Workshop on Principles of Diagnosis, DX -05, pp. 37-42, Monterey, Calif., USA, (June 2005). Each of these references is hereby incorporated by reference as if set forth in its entirety. 
       Diagnosis in Automotive Applications 
       [0036]    In the automotive industry model-based approaches have also been used frequently. A main distinguishing feature is whether they are used onboard to diagnose failures during a vehicle&#39;s operation or if they are used offboard, e.g., in a garage. Legal requirements concerning gas emission and safety regulations, such as for driver assistant applications, demand more complex diagnosis systems for onboard diagnosis. 
         [0037]    In Mattias Nyberg, ‘Model-based diagnosis of an automotive engine using several types of fault models’,  IEEE Transaction on Control Systems Technology,  10(5), 679-689, (September 2002), which is hereby incorporated by reference as if set forth in its entirety, a no-fault-model M 1 =M D1  and various fault models M 2 =M D2  to M k =M Dk  are constructed to diagnose sensor faults and leakages of the air-intake system of an engine. In the corresponding diagnosis system a framework of structured hypothesis tests is used to be able to decide which of the models can explain the measured data. 
         [0038]    For many model-based approaches, qualitative models are used such as in Peter Struss and Chris Price, ‘Model-based systems in the automotive industry’,  AI Magazine,  24(4), 17-34, (2004), hereby incorporated by reference as if set forth in its entirety, where consistency-based diagnosis is used for onboard diagnosis. In these approaches, there is used one model M=M D . Qualitative models, or more precisely qualitative deviation models, here M, for onboard diagnosis are also used in F. Cascio, L. Console, M. Guagliumi, M. Osella, A. Panati, S. Sottano and D. Dupre. On-board diagnosis of automotive systems: from dynamic qualitative diagnosis to decision trees, 1999, hereby incorporated by reference as if set forth in its entirety, where diagnostic situations are simulated. The outcome of the simulation is exploited to learn a decision tree for the diagnostic system. Some other model-based approaches are given in M. Sanseverino, F. Cascio, “Model-Based Diagnosis for Automotive Repair”, IEEE Expert, Vol. 12, No. 6, pp. 33-37 (1997); M. Fritz, A. Albers, “Fault detection in an electromechanical wheel brake actuator by model-based methods”, 2002; Werner Seibold and Bernhard Höfig, ‘Secure Diagnosis in the automotive maintenance with RODON 3, Vieweg, 2004; and in Frank Kimmich, Anselm Schwarte, and Rolf Isermann, ‘Fault detection for modern Diesel engines using signal- and process model-based methods’,  Control Engineering Practice,  13(2), 189-203, (2005). Each of these references is hereby incorporated by reference as if set forth in its entirety. 
         [0039]    The approach set forth in the present invention is based on the model compilation approach introduced in Benno Stein,  Model Construction in Analysis and Synthesis Tasks , Habilitation, Department of Computer Science, University of Paderborn, Germany, June 2001, and in Uwe Husemeyer,  Heuristic diagnosis with compound rules , Dissertation, University of Paderborn, Department of Mathematics and Computer Science, 2001. Each of these references is hereby incorporated by reference as if set forth in its entirety. 
       SUMMARY 
       [0040]    The present invention provides a system and method for constructing a diagnosis function for mapping a symptom of a fault in an electromechanical system onto the fault by simulating the electromechanical system in at least a fault mode and a node fault mode, and learning a classifier function from the collected simulation results for mapping the system of the fault onto the fault. 
     
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0041]    Exemplary embodiments of the present invention are explained in more detail below with reference to the accompanying drawings, in which: 
           [0042]      FIG. 1  illustrates an embodiment of the present invention in a vehicle environment; 
           [0043]      FIG. 2  illustrates a taxonomy of fault locations; 
           [0044]      FIG. 3  illustrates a simplified ECU structure from a software point-of-view; 
           [0045]      FIG. 4  illustrates an overview of a model according to the present invention; 
           [0046]      FIG. 5  illustrates a signal flow in the present invention; 
           [0047]      FIG. 6  illustrates the interplay between a motor, motor control, and connecting subsystems between user input, motor, and motor control; 
           [0048]      FIG. 7  illustrates results of a simulation of a faultless behavior model according to a model of the present invention; 
           [0049]      FIG. 8  illustrates results of a simulation of a fault behavior model corresponding to the faultless behavior model illustrated in  FIG. 7 ; and 
           [0050]      FIG. 9  illustrates a flowchart of an embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0051]    The present invention introduces a new technology to the diagnosis of automotive systems as both a formal framework and a concrete implementation, comprising an experimental setup, simulation tasks, and classification results. 
         [0052]    The present invention is directed to intricate diagnosis situations in modern cars. The invention employs a mixture of model-based and associative diagnosis and an associated model compilation. In the present invention, a simulation database is built from module simulations of the system in various fault modes over a typical input range. From the simulation database, a simplified rule-based behavior model can be constructed where long cause-effect chains are replaced with much simpler associations. The behavior model is also optimized for a heuristic classification of the faults. The present invention applies the novel model behavior to the complex discrete event/continuous system models of modern cars. 
         [0053]    Model compilation is a diagnosis approach that combines the model-based paradigm and the associative (heuristic) paradigm within the following four steps: 
         [0054]    1. Simulation. A database, C, is compiled by simulating the interesting system in various fault modes and over its typical input range. 
         [0055]    2. Symptom Computation. By comparing the faultless simulation to simulation runs in fault modes a symptom database C Δ  is built up. 
         [0056]    3. Generalization. Using cluster analysis or vector quantization, the numerical values in C Δ  are abstracted towards intervals. 
         [0057]    4. Learning. Data mining and machine learning is applied to learn a mapping from symptoms onto the set of fault modes; the resulting classifier can be considered as a “diagnosis compiled model.” 
         [0058]    Since this process can be completely automated, the approach has the potential to combine the advantages of the model-based philosophy, such as behavior fidelity and generality, with the efficiency and robustness of a heuristic diagnosis system. 
         [0059]    One advantage of the present invention is that the substantial number of existing libraries of behavior models, along with the expertise to handle them, can be reused in the simulation step. Additionally, the behavior models are analyzed in their intended inference direction, i.e., neither a special diagnosis model needs to be developed nor an inverse simulation problem needs to be solved. 
         [0060]    Further, the classifier learned in the generalization and learning steps integrates seamlessly with existing diagnosis approaches in the automotive domain, such as fault trees. Another advantage provided by the present invention is that the compiled diagnosis model has a very small computational footprint. In contrast, traditional diagnosis approaches require the execution and analysis of a behavior model at runtime. 
         [0061]    As illustrated in  FIG. 1 , a car  1  is complex system that consists of several connected (sub)systems, such as motor, drive train, motor control, etc. For simulation purposes we consider each interesting subsystem being adequately represented as a behavior model M. Depending on the associated subsystem and the simulation purpose, M may be input-free or input-depending; or memoryless or dynamic. The most important distinction relates to the time base of dynamic models, that being continuous time, discrete time, or discrete event. 
         [0062]    Definition 1 (Behavior Model): A behavior model M is a tuple (F U , F Z , F Y , V, Δ, Λ). F U ∩F Z =, whose elements are defined as follows.
       F U , F Z , and F Y  are sets of input variables, constraint variables, and output variables.   For each variable vεF U , F Z , F Y  there is an arbitrary, possibly infinite set U v , Z v , and Y v  respectively, called the domain of v.   For each vεF U  there is an additional domain, U v   T , of partially defined functions in the parameter time, U v   T :={u|u: T→U v , t         u(t)}. Depending on the model&#39;s time base, which may be continuous time, discrete time, or discrete even, T may be an interval from R + , an interval from N, or a linearly ordered finite set.       
 
         [0066]    V comprises the domains of all variables. As a matter of convenience, the Cartesian products of the domains of the variables in F U , F Z , F Y  are designated with U, U T , Z, and Y. E.g., Y:=Y v1 ×Y v2 × . . . ×Y v|Y     Y     | , v i εF Y . 
         [0067]    Δ is a function, it is called the global state prescription function. Δ declares a set of state variables, F x   ⊂ F z , and a state space, X, which is the projection of Z with respect to F X . Given a state vector xεX, a vector of input functions u(t)εU T , and some point in time tεT, Δ determines a constraint vector zεZ including a new state, say, Δ: X×U t ×T→Z. 
         [0068]    Λ is a function, it is called the output function. The output function might be a function of constraint variables and input or only a function of constraint variables. Given a constraint vector zεZ and an input vector uεU, A determines an output vector yεY, say, Λ:Z×U→Y or Λ:Z→Y. 
         [0069]    A model of even a small part of a car is likely to combine behavior models of different types, say, different time bases; such a model is called “hybrid.” 
         [0070]    Let M={M 1 , . . . , M k } be a possibly hybrid car model, then M i  and M j  are coupled if they share output variables and input variables, i.e., if F Yi ∩F Uj ≠, with F Yi εM i , F Uj εM j , i≠j. For example, M i  may be a continuous time model of the motor, and M j  may be a discrete time model of the motor control. In the car such a coupling is realized by a sensor whose signal is passed to an ECU where, in the software abstraction layer, the physical quantity is represented as an input variable of the motor control software. 
         [0071]    The preceding definition can be regarded as a correct behavior model specification of a system. For the diagnosis approach of the present invention, we also need models of fault behavior in the sense of the GDE+, as described in Peter Struβ, ‘Model-Based Diagnosis—Progress and Problems’, in  Proceedings of the International GI - Convention , volume 3, pp. 320-331, (October 1989); Peter Struβand Oskar Dressler, ‘“Physical Negation”—Integrating Fault Models into the General Diagnostic Engine’, in  Proceedings of the Fifteenth International Joint Conference on Artificial Intelligence  ( IJCAI  89), volume 2, pp. 1318-1323, (1989); and Johan deKleer and Brian C. Williams, ‘Diagnosis with Behavioral Models’, in  Proceedings of the Eleventh International Joint Conference on Artificial Intelligence  ( IJCAI  89), pp. 1324-1330, Detroit, Mich., (1989). Each of these references is hereby incorporated by reference as if set forth in its entirety. 
         [0072]    A fault behavior model is an extension of the above definition: There is an additional set of state variables, F D , along with respective domains D, and a state prescription function Δ′. F D  defines fault states of the components, such as those discussed previously or illustrated in  FIG. 2 . Thus, the domain of Δ′ is D×X×U T ×T. 
         [0073]    Let σ(M,u(t)) and σ(M i ′, u(t)) designate simulation results of the faultless model M and some fault model M′ i  for a given vector of input functions u(t). By applying a model- and quantity-specific “difference” operator, ⊖, between the simulated O.K.-values and the related fault values a database C Δ  with symptom vectors can be compiled: 
         [0000]      σ( M,u ( t ))⊖σ( M   i   ′,u ( t ))= C   Δ   , i= 1 , . . . , k   (1) 
         [0074]    In a second step, based on filtering, machine learning, and data mining methods, a classifier can be constructed that maps from symptoms onto faults: 
         [0000]      C Δ →F D   (2) 
         [0075]    An alternative to the previous steps is the direct application of a learning approach to the simulation results: 
         [0000]      C→F D with  (3) 
         [0000]        C =(σ( M,u ( t ))∪σ( M   i   ′,u ( t )),  i= 1 , . . . , k    
         [0076]    Note that this alternative burdens the learning approach with the task of both discovering and implicitly computing the ⊖-operation, and hence it is less powerful. On the other hand, it enables one to directly apply the learned diagnosis associations at runtime without the need of simulating M and applying the ⊖-operator. 
       Case Study 
       [0077]    To obtain first experimental results, a case study has been made by the inventors: 
         [0078]    In this case study, faulty sensor readings within an engine ECU are diagnosed. 
         [0079]    To simulate the behavior of the engine and its ECU, advanced models are needed that are able to represent the correct physical behavior of an engine. Furthermore, since the engine and its ECU  2  do not operate autonomous in a car  1  but interact with other components and ECUs  2 , additional models such as drivetrain models are needed. Here, the “Gasoline Engine Simulation Package” of dSPACE&#39;s Automotive Simulation Models (ASM) has been used, which is implemented in Matlab/Simulink. The model is a complete model of a six-cylinder 2.9 L gasoline engine and comprises also models for the engine  3 , ECU  2 , drivetrain  4 , vehicle dynamics  5 , and environment  6 . In the vehicle dynamics model there are external forces on the vehicle taken into account, such as air resistance and braking. In the environment model road conditions and the drivers interactions are considered. 
         [0080]    An overview of the model components: ECU  2 , the engine  3 , the drivetrain  4 , the vehicle dynamics  5 , and the environment  6  can be seen in  FIG. 4 . 
         [0081]    The model compilation approach is described using the example of a faulty accelerator pedal position reading. In the engine model exists an accelerator pedal sensor that relays the signal to the ECU. In the ECU the data is used to set actuators such as the throttle position in the motor. This signal flow can be seen in  FIG. 5 . The starting point of the signal flow is the user input for the accelerator pedal. 
       Model Description 
       [0082]    To simplify matters, the models for drivetrain  4 , vehicle dynamics  5 , and environment  6  are not shown since are not necessary for describing the different faults. The present description focuses on the engine model, denoted as M 1 , and the model for the engine ECU, denoted as M 2 . A third model M 3  comprises the sensor and actuator software and hardware. In this model faults may be generated. 
         [0083]      FIG. 6  illustrates the interplay of three models: M 1  (motor), M 2  (motor control), and M 3  (connecting subsystems between user input, motor, and motor control). In the faultless behavior situation M 3  functions as a short-circuit, directly connecting both the user input with M 2  and M 1  with M 2 ; in a fault situation the model M 3  acts as a fault model and inserts particular signal disturbances. 
         [0084]    As long as no faults exist, M 3  does nothing but relaying signals between M 2  and M 1 . But if faults should be simulated, M 3  is used to manipulate (i) the sensor data so that the motor control receives disturbed values or (ii) the actuator data so that the motor receives disturbed values. Using this, we can simulate both the faultless behavior and the fault behavior. That is why in this case a fault behavior model M′ is not used. Additionally, further implementations failures could also be generated in the other parts of M 3 , e.g., in the drivers or in the API. 
         [0085]    In the following definition  1  is used to describe the example formally: 
         [0000]    
       
         
           
             F 
             
               Y 
               
                 M 
                 1 
               
             
           
         
       
       
         
           
             comprises values such as mean effective engine torque. 
           
         
       
     
         [0000]    
       
         
           
             F 
             
               U 
               
                 M 
                 1 
               
             
           
         
       
       
         
           
             consists of variables such as crank angle per cylinder and throttle angle. Note that 
           
         
       
     
         [0000]    
       
         
           
             
               F 
               
                 U 
                 
                   M 
                   1 
                 
               
             
             = 
             
               
                 F 
                 
                   Y 
                   
                     M 
                     2 
                   
                 
               
               . 
             
           
         
       
       
         
           
             Examples for input variables of 
           
         
       
     
         [0000]    
       
         
           
             F 
             
               U 
               
                 M 
                 2 
               
             
           
         
       
       
         
           
             are accelerator pedal position, ignition signal, and engine speed. 
           
         
       
     
         [0000]    
       
         
           
             
               F 
               
                 U 
                 
                   M 
                   3 
                 
               
             
              
             
                 
             
              
             and 
              
             
                 
             
              
             
               F 
               
                 Y 
                 
                   M 
                   3 
                 
               
             
           
         
       
       
         
           
             do not comprise any variable that are not used in M 1  and M 2 . Thus, 
           
         
       
     
         [0000]    
       
         
           
             
               F 
               
                 U 
                 
                   M 
                   3 
                 
               
             
             = 
             
               
                 
                   F 
                   
                     U 
                     
                       M 
                       2 
                     
                   
                 
                 ⋃ 
                 
                   F 
                   
                     U 
                     
                       M 
                       1 
                     
                   
                 
               
               = 
               
                 
                   F 
                   
                     Y 
                     
                       M 
                       3 
                     
                   
                 
                 . 
               
             
           
         
       
       
         
           
             This is because M 3  is only used to manipulate input and output variables of the engine control. 
           
         
       
     
         [0000]    
       
         
           
             F 
             
               X 
               
                 M 
                 2 
               
             
           
         
       
       
         
           
             might comprise, for example, the throttle position. 
           
         
       
     
         [0000]    
       
         
           
             F 
             
               X 
               
                 M 
                 1 
               
             
           
         
       
       
         
           
             consists of such variables as the manifold temperature, the air flow through the throttle, and several others. 
             In M 3  the state variables 
           
         
       
     
         [0000]    
       
         
           
             F 
             
               X 
               
                 M 
                 3 
               
             
           
         
       
       
         
           
             are constants which control the fault types. 
           
         
       
     
         [0096]    Δ M     1    and Δ M     2    are one or more differential equations describing the real behavior of the corresponding components to compute the constraint variables and the output variables. If no faults are simulated, M 3  comprises no differential equations, so Δ M     3    is, in that case, an identity function and just passes the input values. In the case of a fault, Δ M     3    manipulates one or more input values by multiplying a given value with the input value or by adding an offset to the input value. For example, a random value might be added to the accelerator pedal signal to simulate white noise. 
         [0097]    In this case Λ only maps the values from Z to Y. So Λ M     1   , Λ M     2   , and Λ M     3    are the identity function. 
       Considered Fault Types 
       [0098]    For this first case study, some basic faults occurring in sensors and actuators were implemented. This is a realistic fault type in modern cars. In this case study, four different fault types were modeled: 
         [0099]    1. The signal is reduced to 90% of its correct value. 
         [0100]    2. The signal value used for the simulation is 110% of the correct value. 
         [0101]    3. Noise is added to the signal. 
         [0102]    4. The signal is dropped out. 
       Simulation of the Overall Model 
       [0103]    The overall model comprises the models described above and the models for the drivetrain  4 , the vehicle dynamics  5 , and the environment  6 . The main input variables of this model are driver actions as observed by the respective sensors. Here, the driver is a subsystem of the environment model. So the set of input variables comprises among other things the positions of the brake pedal, the clutch pedal, the accelerator pedal, and the engaged gear. 
         [0104]    For simulation purposes j different vectors of input function u 1 (t), . . . , u j (t)εU T  were defined. These vectors are called scenarios and represent specific driving behavior for a defined time period. Thus, the model may be executed in different driving situations. 
         [0105]    Since it is rather unrealistic that all faults exist during the whole scenarios, faults are inserted into the model at several random points in time. Each simulation run is characterized by the scenario, by the fault type (including the no-fault scenario), by the faulty component—e.g., the actuator for the throttle—and by the point in time the failure occurs. 
         [0106]    Then several scenarios were simulated using the different fault types of the accelerator pedal position sensor. For every simulation run the values of all relevant signals, i.e., signals that may have been influenced by the faulty accelerator pedal sensor, were logged and written to a simulation database, C. As an alternative, all accessible data could be logged. Additionally, the information about the fault type is stored at the database C. For simulations of faults, the fault type and the time when the fault occurred were also stored in the database C. 
         [0107]    In  FIGS. 7 and 8 , an extract of the simulation results of a faultless and of a faulty behavior, respectively, are shown.  FIG. 7  illustrates the results of the simulation of a faultless behavior model. u 1 (t), y 1 (t), and y 2 (t) designate the accelerator pedal position, the throttle position, and the number of revolutions, respectively.  FIG. 8  illustrates the results of the simulation of a fault behavior model that corresponds to the faultless behavior model in  FIG. 7 . The introduced and simulated fault puts noise on the pedal position signal. The comparison of both figures reveals that the fault of the accelerator pedal sensor influences other values such as the throttle position value and the number of revolutions. 
       Learning the Diagnosis Function 
       [0108]    After simulating the system in different scenarios with different faults (again, including the no-fault case), a machine learning approach has been applied to the simulation results as presented in Equation 3. Generally, the algorithm shall use the data of the no-fault simulation and the data of one fault simulation run (e.g., the noisy signal) to detect patterns in the data. Based on this detection, the algorithm develops a classification function which decides whether the accelerator pedal sensor was noisy or not. Ideally, this classifier can also be applied to new measured data of a real vehicle, which means that the classifier has to generalize the data. Thus, it is a goal of the present invention to find a machine learning approach that will learn the classification function as best as possible. 
         [0109]    In the field of machine learning, several algorithms exist. Two different learning algorithms are applied here:
       Linear Regression. This common method uses a least square estimation to get parameters a 1 , . . . , a n εR for the diagnosis function template       
 
         [0000]    
       
         
           
             
               d 
               i 
             
             = 
             
               
                 
                   a 
                   1 
                 
                 · 
                 
                   v 
                   1 
                 
               
               + 
               … 
               + 
               
                 
                   
                     a 
                     n 
                   
                   · 
                   
                     v 
                     n 
                   
                 
                  
                 
                     
                 
                  
                 with 
               
             
           
         
       
       
         
           
             
               d 
               i 
             
             = 
             
               
                 
                   0 
                 
                 
                   
                     if 
                      
                     
                         
                     
                      
                     failure 
                      
                     
                         
                     
                      
                     i 
                      
                     
                         
                     
                      
                     occurs 
                   
                 
               
               
                 
                   1 
                 
                 
                   else 
                 
               
             
           
         
       
       
         
           
             v 1 , . . . , v n  are the variables measured during the simulation. For details, please refer to T. Wonnacot and R. Wonnacot,  Regression: A second course in statistics , John Wiley &amp; Sons, New York, Chichester/Brisbane/Toronto, 1981; R. H. Myers. Classical and Modern Regression with Applications. Duxbury Press, Boston, 1986; S. Weisberg. Applied Linear Regression. John Wiley &amp; Sons, New York, 1985; K. Backhaus, B. Erichson, W. Plinke, and R. Weber. Multivariate Analysemethoden. Springer, 1996; and Hartung, J: Statistic. Oldenbourg, 1999, each of which is hereby incorporated by reference as if set forth in its entirety. 
             Decision Trees. A decision tree uses a series of binary decisions to reach a classification. Learning such a tree is done by binary recursive partitioning of the input space using a given optimization criterion. Details about decision trees can be found in L., Breiman, J. H. Friedman, R. A. Olshen, and C. J. Stone,  Classification and Regression Trees , Wadsworth, 1984; and Ripley, B. D.: Pattern Recognition and Neural Networks. Cambridge University Press, 1996, each of which is hereby incorporated by reference as if set forth in its entirety. 
           
         
       
     
         [0113]    For the case study of the present invention, the R programming environment has been used. 
         [0114]    The problem with the above procedure is that a diagnosis function learned for a special fault type may not know how to deal with data measured in a situation where another fault type has occurred. To differentiate between the different fault types, in a second step, the data for learning a diagnosis function of a specific fault type was extended by the data of the other three corresponding fault types. This new data was classified as non-failure scenarios. The disadvantage of this procedure is that the number of failure cases is no longer equivalent to the number of non-failure cases, thus making an assessment of the learning result rather difficult. 
         [0115]      FIG. 9  illustrates an exemplary flowchart according to the present invention. A generator X 1  provides test vectors X 3  for different test scenarios to a simulation X 5 . The text vectors X 3  are provided with faults. In addition to test vectors X 3 , behavior models X 4 , which are executable, are provided to the simulation X 5 . The behavior models X 4  include fault behavior models provided by a model of controller and plant X 2 . The simulation results X 6 , which include faults and symptoms, are stored during a simulation X 5  run. 
         [0116]    By applying methods of machine learning X 7  to the simulation results X 6 , a classifier function X 8  is learned. The classifier function X 8  may be a decision tree, neural network, Bayesian network, etc. The classifier function X 8  offers a classification X 9  and in the course of this a mapping of the symptom of a fault onto the fault. 
         [0117]    State vectors X 10  may be provided in order to differentiate between faults in different states of the mechatronic system. Ideally, the state vectors X 10  are in the same format as the test vectors X 3 . The resulting diagnosis X 11  reflects the detected fault as well as the state of the mechatronic system during occurrence of the fault. 
       Experimental Results 
       [0118]    Though only simple standard algorithms for learning the diagnosis function were used and furthermore no preprocessing steps were implemented, the results show that quite good solutions could be achieved. Tables 1 and 2 show the error rates of the learned diagnosis functions for the four fault types “−10% offset”, “+10% offset”, “noisy signal”, and “dropped out signal”. The results are presented for both applied learning algorithms. Five runs were done for each of the failure types respectively. The average of the five runs is presented in the tables. 
         [0119]    The error rate is the percentage of cases diagnosed incorrectly by the algorithm. In the first line, the error rates are shown that were achieved by runs with the same data that was used to learn the diagnosis function. The error rates in the second line were achieved with input data the algorithm did not learn to use the diagnosis function. 
         [0000]    
       
         
               
             
               
               
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 Error rates of the linear regression for the four fault types. 
               
             
          
           
               
                   
                   
                   
                   
                 dropped out 
               
               
                   
                 −10% offset 
                 +10% offset 
                 noisy signal 
                 signal 
               
               
                   
                   
               
               
                   
                 15.04% 
                 16.13% 
                 3.84% 
                 0.04% 
               
               
                   
                 14.85% 
                 16.53% 
                 3.55% 
                 0.11% 
               
               
                   
                   
               
             
          
         
       
     
         [0000]    
       
         
               
             
               
               
               
               
               
             
           
               
                 TABLE 2 
               
             
             
               
                   
               
               
                 Error rates of the decision tree for the four fault types. 
               
             
          
           
               
                   
                   
                   
                   
                 dropped out 
               
               
                   
                 −10% offset 
                 +10% offset 
                 noisy signal 
                 signal 
               
               
                   
                   
               
               
                   
                 0.88% 
                 0.32% 
                 0.33% 
                 0.10% 
               
               
                   
                 1.13% 
                 0.46% 
                 0.31% 
                 0.17% 
               
               
                   
                   
               
             
          
         
       
     
         [0120]    The results show that the decision tree algorithm performs much better than the linear regression. Only when the signal is dropped out, the linear regression is able to perform a little better than the decision tree. Furthermore, in each table, there is nearly no difference between the results in the first line and the results in the second line. 
         [0121]    If the diagnosis functions is also used to differentiate between different failures types, the result were not as good as before. But nevertheless the results still show that it is possible to achieve satisfying results. 
         [0122]    The present invention introduces the model compilation paradigm for the diagnosis of complex technical systems. Model compilation is fairly involved and combines modern simulation technology with methods from data mining and learning theory. The models M of interesting systems are simulated with respect to expected inputs along with possible faults, and a compiled diagnosis model is distilled from the huge set of generated data. At heart, the compiled model is a classifier, which is not only able to detect the simulated faults, but which will also generalize with respect to unseen situations. 
         [0123]    Model compilation becomes particularly attractive due to the fact that the original simulation models M from the application domain can be utilized. In fact, within the presented case study from the automotive domain, M comprises a vehicle&#39;s plant and controller models; it is hybrid and contains more than 100 states. The outlined diagnosis situations address realistic signal faults that occur between the environment and the vehicle electronics. Two learning approaches, linear regression and decision trees were applied, leading to an acceptable (85%) and an excellent (99%) fault detection rate. 
         [0124]    In addition, the present invention can be applied to more complex and different fault scenarios, which also consider software faults within ECUs. The application of stronger data filtering techniques during the data mining step, such as vector quantization and cluster analysis can also assist in creating a more accurate model. Further, more refined methods to differentiate between a large number of faults are desirable. Note that the choice and the adaptation of the machine learning algorithms are a key for the success of the model compilation paradigm, and, association rules or Bayesian networks have the potential to outperform decision trees on large data sets. 
         [0125]    While the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.