Decentralized Diagnosis.

One common practical situation is that a DES is observed by multiple local sites with their own observation. In that case, it is desired that each failure is detected by at least one of the local sites such that the DES is co-diagnosable as defined in [D3]. In this context, the function IsCoDiagnosable verifies codiagnosability, while the function DecentralizedDiagnosers computes diagnosers that report failures at the different local sites. Finally, the function ModularDecentralizedDiagnoser computes decentralized diagnosers in the special case where the DES consists of multiple modular components, each corresponding to a local site.

IsCoDiagnosable

Tests for co-diagnosability w.r.t. local observations.

Signature:

IsCoDiagnosable(+In+ System GArg, +In+ Generator KArg, +In+ EventSetVector AVArg, +Out+ Boolean BRes)

Detailed description:

This function realizes the co-diagnosability verification based on the global plant G, the global specification K and the local observations for n local sites given in the form of n observation alphabets Sigma_i,o,i = 1,...,n.

Note that the current implementation uses a natural projection to determine the local observations instead of the more general observation mask.

Parameter Conditions:

All generators must be deterministic. Local observation alphabets should only contain observable events.

Example

This example illustrates the usage of IsCoDiagnosable.

Consider the system G and the specification K in the figure below. We assume that there are two local sites with the observable events Sigma_1,o = {d,e,f,i} and Sigma_2,o = {d,h}. Then, it holds that the system is not diagnosable since the extensions of the failure string b cannot be distinguished from the extensions of the correct string a after the occurrence of a finite number of events due to the loop with the events e and f. Hence, IsCoDiagnosable returns a negative result.

Component G
 
Local specification K

On the contrary, IsCoDiagnosable returns a positive result for the next example with the system G, the specification K and the observable events Sigma_1,o = {d,i} and Sigma_2,o = {d,h}. In this case, the local site "1" can resolve the failure string b, while the local site "2" is able to detect the failure string c.

Component G
 
Local specification K

DecentralizedDiagnoser

Computes decentralized diagnosers for multiple local sites.

Signature:

DecentralizedDiagnoser(+In+ System GArg, +In+ Generator KArg, +In+ EventSetVector AVArg, +Out+ GeneratorVector DVArg, +Out+ Boolean BRes)

Detailed description:

If the co-diagnosability test is successful for a plant G, a specification K and multiple local sites, then decentralized diagnosers that are located at the different local sites can be used in order to detect failures. Such decentralized diagnosers are computed using the function DecentralizedDiagnoser.

Parameter Conditions:

All generators must be deterministic. Local observation alphabets must only contain observable events.

Example

The following figure shows the decentralized diagnosers for the previous example. In the case of the local site with the observation Sigma_1,o = {d,i}, the failure string b is uniquely identified after i occurs, while the second local site with the observation Sigma_2,o = {d,h} detects the failure c after the event h occurs.

Diagnoser for Sigma_1,o = {d,i}
Diagnoser for Sigma_2,o = {d,h}

DecentralizedModularDiagnoser

Computes decentralized diagnosers for systems that consist of multiple components.

Signature:

DecentralizedModularDiagnoser(+In+ SystemVector GVArg, +In+ Generator KArg, +Out+ GeneratorVector DVArg)

Detailed description:

If the plant consists of multiple components, then these components usually coincide with the local sites that observe the plant behavior. In that case, the decentralized diagnosers can be computed for the modular system components using the function DecentralizedModularDiagnoser.

Parameter Conditions:

All generators must be deterministic.

libFAUDES 2.32b --- 2024.03.01 --- with "synthesis-observer-observability-diagnosis-hiosys-iosystem-multitasking-coordinationcontrol-timed-simulator-iodevice-luabindings-hybrid-example-pybindings"