diag_include.h
Go to the documentation of this file.
1 /** @file diag_include.h
2 Includes all header files of the diagnosis plug-in.
3 */
4 
5 /*
6  ****************************************************
7  Convenience header file that includes all headers
8  relevant to the diagnosis plug-in. When the plugin is
9  enabled, libfaudes.h will include this file automatically.
10  ****************************************************
11 */
12 
13 #ifndef DIAG_INCLUDE_H
14 #define DIAG_INCLUDE_H
15 
16 #include "diag_generator.h"
18 #include "diag_modulardiagnosis.h"
19 #include "diag_eventdiagnosis.h"
20 #include "diag_languagediagnosis.h"
21 #include "diag_attrdiagstate.h"
22 #include "diag_attrfailureevents.h"
23 #include "diag_attrfailuretypes.h"
24 #include "diag_attrlabelset.h"
25 #include "diag_debug.h"
26 
27 #endif
28 
29 
30 /**
31 @defgroup DiagnosisPlugIn Fault Diagnosis Plug-In
32 @ingroup AllPlugins
33 @section DiagnosisOverview Overview
34 
35 This plug-in implements failure diagnosis for discrete-event systems in libFAUDES.
36 
37 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.
38 
39 Diagnoser automata are FSMs that estimate the occurrence of certain failure events by tracking the observable events triggered by the plant
40 under observation.
41 
42 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.
43 
44 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().
45 
46 Additionally, several functions are provided to determine the diagnosability of a system with respect to a given failure %partition or specification:
47 - The test for standard diagnosability with respect to a failure partition is implemented in IsDiagnosable(const System&, const AttributeFailureTypeMap&, std::string&) according to [2].
48 - 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].
49 - 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].
50 - 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].
51 
52 [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,
53 Sep 1995.<br>
54 [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>
55 [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>
56 
57 @section DiagnosisLicense License
58 The initial implementation of this plug-in was part of Tobias Barthel's
59 diploma thesis [3], supervised by Klaus Schmidt.
60 The code is distributed with libFAUDES and under the terms of the LGPL.
61 <br>
62 <br>
63 <br>
64 Copyright (c) 2009, Tobias Barthel, Klaus Schmidt, Thomas Moor.
65 <br>
66 Copyright (c) 2009, Klaus Schmidt, Thomas Moor.
67 
68 */
State estimates for the current status of the generator (as state attributes).
Failure and indicator events for a common failure type.
Contains the failure and indicator partition for a system (used as global attribute).
Label representation for state estimates.
Includes debugging to diagnosis plug-in.
Functions to check a system's decentralized diagnosability.
Functions to check a system's diagnosability with respect to failure events (diagnosability and I-dia...
Structure of diagnosers and methods to handle them.
Functions to check a system's diagnosability with respect to a specification automaton and compute a ...
Functions to check a system's decentralized diagnosability.

libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen