diag_include.h

Go to the documentation of this file.
00001 /** @file diag_include.h
00002 Includes all header files of the diagnosis plug-in.
00003 */
00004   
00005 /*
00006  **************************************************** 
00007  Convenience header file that includes all headers 
00008  relevant to the diagnosis plug-in. When the plugin is
00009  enabled, libfaudes.h will include this file automatically.
00010  ****************************************************
00011 */
00012 
00013 #ifndef DIAG_INCLUDE_H
00014 #define DIAG_INCLUDE_H
00015 
00016 #include "diag_generator.h"
00017 #include "diag_decentralizeddiagnosis.h"
00018 #include "diag_modulardiagnosis.h"
00019 #include "diag_eventdiagnosis.h"
00020 #include "diag_languagediagnosis.h"
00021 #include "diag_attrdiagstate.h"
00022 #include "diag_attrfailureevents.h"
00023 #include "diag_attrfailuretypes.h"
00024 #include "diag_attrlabelset.h"
00025 #include "diag_debug.h"
00026 
00027 #endif
00028 
00029 
00030 /**
00031 @defgroup DiagnosisPlugIn Fault Diagnosis Plug-In 
00032 @ingroup AllPlugins
00033 @section DiagnosisOverview Overview
00034 
00035 This plug-in implements failure diagnosis for discrete-event systems in libFAUDES.
00036 
00037 Failures are assumed to be unobservable events in DES that might lead to an undesired or unpredictable behaviour of the system. In order to be able to react to occurring failures, fault detection and isolation became an active area of research since the 1990s. In [1], Sampath et al. introduced the notion of diagnosability and diagnosers which observe the on-line behaviour of the system under investigation.
00038 
00039 Diagnoser automata are FSMs that estimate the occurrence of certain failure events by tracking the observable events triggered by the plant 
00040 under observation.
00041 
00042 Diagnosability is a system property that states a system to be diagnosable with respect to a failure partition or specification, if the occurrence of a failure or violation of the specification can be determined within a bounded number of transitions.
00043 
00044 The basic structure and handling of diagnoser automata is realized in faudes::TdiagGenerator according to [1] and a diagnoser can be computed from the failure-based model of the observed plant using the function ComputeDiagnoser().
00045 
00046 Additionally, several functions are provided to determine the diagnosability of a system with respect to a given failure %partition or specification:
00047 - The test for standard diagnosability with respect to a failure partition is implemented in IsDiagnosable(const System&, const AttributeFailureTypeMap&, std::string&) according to [2].
00048 - Testing I-diagnosability (which is a special case of diagnosability where failures only have to be detected after the occurrence of associated indicator events) is done by IsIdiagnosable(const System&, const AttributeFailureTypeMap&, std::string&) that is an enhancement of the algorithm presented in [2].
00049 - Diagnosability with respect to a specification (which we also refer to as language diagnosability) is tested by IsDiagnosable(const System&, const System&, std::string&) by attributing it to the known diagnosability problem in [2].
00050 - Decentralized diagnosability is handled by the function IsDecentralizedDiagnosable(const std::vector<System>&, const std::vector<System>&, const std::vector<EventSet>&, std::string&) that tests a modular system's diagnosability from the models of its local subsystems and specifications as presented in [3].
00051 
00052 [1] "Diagnosability of discrete-event systems" by Sampath, M. and Sengupta, R. and Lafortune, S. and Sinnamohideen, K. and Teneketzis, D. Automatic Control, IEEE Transactions on, 40(9):1555-1575,
00053 Sep 1995.<br>
00054 [2] "A polynomial algorithm for testing diagnosability of discrete-event systems" by Jiang, S. and Huang, Z. Chandra, V. and Kumar, R. Automatic Control, IEEE Transactions on, 46(8):1318-1321, Aug 2001.<br>
00055 [3] "Hierarchical Fault Diagnosis for Discrete Event Systems: Theoretical Development and Application" by Tobias Barthel, Lehrstuhl f&uuml;r Regelungstechnik, Universit&auml;t Erlangen-N&uuml;rnberg, 2009 (associated diploma thesis). <br>
00056 
00057 @section DiagnosisLicense License
00058 The initial implementation of this plug-in was part of Tobias Barthel's 
00059 diploma thesis [3], supervised by Klaus Schmidt.
00060 The code is distributed with libFAUDES and under the terms of the LGPL.
00061 <br>
00062 <br>
00063 <br>
00064 Copyright (c) 2009, Tobias Barthel, Klaus Schmidt, Thomas Moor.
00065 <br>
00066 Copyright (c) 2009, Klaus Schmidt, Thomas Moor.
00067 
00068 */

libFAUDES 2.23h --- 2014.04.03 --- c++ api documentaion by doxygen