Abstract:
A method for the generation of a set of conflicts for model-based system diagnostics is described, with which system a plurality of sensors is associated for the observation of variables indicative of operation conditions. 
     The method starts from generating a complete set of Analytical Redundancy Relations (ARRs) in implicit form and, for each diagnosis instance: it performs a system simulation, computing the expected values for a first subset of Analytical Redundancy Relations (D-ARRs) including the relations involving only one system observation variable; it compares the expected and observed values of the system observation variables to identify the inconsistent variables, i.e. the unsatisfied redundancy relations, indicating a fault in at least one system component; and, when discrepancies are detected, it checks the consistency of each relation belonging to a second subset of Analytical Redundancy Relations (I-ARR), comprising relations involving a plurality of system observation variables, at least one of which exhibits discrepancies between expected and observed values; therefore identifying the support set of the unsatisfied Redundancy Relations as set of system conflicts.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention is related in general to system diagnostics and, more specifically, to the generation of a conflicts set for the model-based diagnostics of a system, and to a method for the diagnosis of a system, based on the determination of a set of conflicts, representing the actual behaviour of the system. 
         [0002]    Particularly, the object of the invention is a method for the generation of a set of conflicts of the type described in the preamble of claim  1 , and a method for the diagnosis of a system, according to the preamble of claim  6 . 
       BACKGROUND OF THE INVENTION 
       [0003]    The operation of a system—general term used in this description and in the attached claims to represent industrial plants, manufacturing or research equipment, various types of vehicles (e.g. aircraft or spacecraft)—is controlled usually by means of complex diagnostic systems able to detect and isolate abnormal operating conditions as soon as they occur. In ground-controlled space missions, either in Earth orbit or in deep space, prominent attention is devoted to the diagnosis of the system formed by the spacecraft and its onboard equipment, and in particular to the real-time detection of system faults, to correct the malfunctions which might compromise the mission. 
         [0004]    The basic principle of model-based diagnostics is the comparison between the expected or nominal behaviour of a system, provided by a model of the system, and the actual behaviour inferred from measurements on the system, acquired by means of a set of sensors associated to said system. 
         [0005]    In general, the model-based diagnostics of a system includes three phases: 
         [0006]    Fault detection: given a specific set of inputs to the system and its model, a system simulation is carried out to compute the expected sensor readings. Any discrepancy or inconsistency between sensors expected readings and their actual values indicates a fault. This phase essentially consists in determining whether inconsistencies occur between expected and observed sensor measurements; 
         [0007]    Generation of the sets of conflicts: in this phase, given the inconsistencies between expected and actual sensor readings, a large number of sets of conflicts is generated, each of them implying that at least one of its components is faulty, due to the observed inconsistencies; 
         [0008]    Diagnosis: in this phase, given the sets of conflicts, the system is diagnosed, i.e. the minimum number of faults is determined. This phase is carried out solving problems of determining a hitting set, which determine the minimum number of components intersection of all the sets of conflicts, starting from the given sets of conflicts. This minimum set represents the set of faulty components originating the observed inconsistencies, and therefore represents eventually the diagnosis of the system. 
         [0009]    The first phase of fault detction is immediate and requires only a simulation of the system. The third phase was for a long time a limitation to an efficient diagnosis, but recently a logical-mathematical tool has been developed which allows a rapid solution to the problem of determining a hitting set, even for complex systems. The current obstacle to a rapid system diagnosis is the lack of efficiency in the phase of generating the sets of conflicts. 
         [0010]    Presently there are two classes of methodologies and different approaches to derive sets of conflicts. 
         [0011]    In the last few decades, research in the field of system diagnostics , based on a model describing the functions of the system components and its connectivity or topology, has been carried out essentially according to two different paths: one, the approach of Fault Detection and Isolation (FDI), exploits the complete knowledge of the system and is based on automatic control theories and statistical decisions; the other, known as DX approach, does not need the complete knowledge of the system and is based on Artificial Intelligence techniques applied to a set of assumptions on the modes of operation of the system as a whole. 
         [0012]    The FDI approach uses for its application the Analytical Redundancy Relations (ARRs), also known as residuals or parity equations, each of them representing a different relation between measured parameters of the system. Each unsatisfied ARR indicates a discrepancy between the expected system behaviour and the actual one, and allows the detection of a system malfunction, due to some fault, compared to normal operation. 
         [0013]    The DX approach is based instead on the concept of conflict, and more generally of conflict set, which is a set of system components, for which the assumption of correct operation is not consistent with the observed system behaviour. 
         [0014]    Recently, a unified picture of the two mentioned theories has shown their fundamental equivalence. The relation between the concepts of analytical redundancy relation and of conflict has been recognized in the fact that the support of an ARR, i.e. the set of components involved in that ARR, is a possible conflict, i.e. a possible scenario of measurements on the system exists, which generates that set as a conflict. 
         [0015]    Both approaches, individually adopted to carry out the diagnostics of a system, exhibit significant computational disadvantages, which make them inefficient for many interesting applications. 
         [0016]    As far as the approach based on the ARRs is concerned, the known algorithms for the generation of a complete set of ARRs exhibit an exponential computation complexity, so that the generation and application of ARRs for real cases turn out to be practically impossible. 
         [0017]    Moreover, for many practical systems of interest, the set of ARRs may not be obtainable in analytical form, thus preventing its actual use. 
         [0018]    On the other hand, in the DX approach, the most commonly used General Diagnosis Engine (GDE) algorithm requires performing many consistency checks between expected values from the model and observed values on the system, while many of said checks might turn out not being strictly necessary for the diagnosis result, thus its application as well leads to an exponential computational complexity. 
         [0019]    The DX and FDI Approaches 
         [0020]    In the following a deeper discussion of the approaches to system diagnostics according to the known DX and FDI techniques is provided, aimed to clarify and explain the developments of the invention. 
         [0021]    In model-based diagnostics, the models of the devices forming a complex system are compared to the observations of the actual behaviour of the system to detect possible discrepancies (inconsistencies) and to diagnose the originating causes (faults). 
         [0022]    A System Model (SM) consist of a Behavioral Model (BM) and of an Observation Model (OM). The behavioral model BM is a description of the system based on its components and consists of a set of Primary Relations (PR). Each component is described by the function it performs, i.e. by one or more primary relations PR and by its inputs and outputs, so that the components-based description includes the system topology as well. The observation model OM is the set of relations defining the observations carried out on the system by means of a plurality of sensors associated to it. 
         [0023]      FIG. 1  shows the example of a multiport system, consisting of three multipliers (M 1 , M 2 , M 3 ) and two adders (A 1 , A 2 ). 
         [0024]    The behavioral model of this system, which provides its description in terms of components and topology, is given by a set of Primary Relations PR and by the components associated to them, as defined by the following: 
         [0025]    PR 1 : x=a c; M 1    
         [0026]    PR 2 : y=b d; M 2    
         [0027]    PR 3 : z=c e; M 3    
         [0028]    PR 4 : f=x+y; A 1    
         [0029]    PR 5 : g=y+z; A 2    
         [0030]    The DX Approach 
         [0031]    From the point of view of the DX approach, each PR is modelled as a set of rules to propagate the values from a variable to another variable. 
         [0032]    For example, the component multiplier M 1  is defined by the following three rules, which assume the condition that M 1  operates correctly. 
         [0033]    1) x=a c 
         [0034]    2) if (a≠0) then c−x/a 
         [0035]    3) if (c≠0) then a=x/c 
         [0036]    Notice that while the first rule infers an output given the inputs, the other two determine conditionally an input, given the ouptut and the other input. 
         [0037]    In fact, the DX approach allows each variable to take a set of possible values given different assumptions, and taking into account each value together with the use of the relevant rules allows the computation of the values of other system variables. As these computations are based on initial assumptions, a DX algorithm tags each value assigned to a variable with the assumptions leading to its computation (tagged value). 
         [0038]    Therefore, the above mentioned rules actually translate into the following ones, where S v  is the set of values which can be associated to the variable v, and &lt;n:N&gt;∈S v  means that v=n (i.e. the variable v takes the value n) when the set of assumptions N is fulfilled. 
         [0039]    &lt;n:N&gt;∈S a            &lt;m:M&gt;∈S c            &lt;n m:N∪M∪{M 1 }&gt;∈S x  &lt;n:N&gt;∈S a            &lt;m:M&gt;∈S x            n≠0          &lt;m÷n:N∪M∪{M 1 }&gt;∈S c  &lt;n:N&gt;∈S c            &lt;m:M&gt;∈S x            n≠0          &lt;m÷n:N∪M∪{M 1 }&gt;ÅS a    
         [0040]    For example, setting the inputs a=2 and c=2 determines the addition of &lt;2: { }&gt; in S a  and of &lt;2:{ }&gt; in S c , which leads the DX algorithm to infer that &lt;3:{M 1 }&gt; ∈S x , which triggers further inferences adding an element to the set S x . 
         [0041]    A discrepancy or inconsistency arises during the inferential propagation of values between the system variables, from the inputs to the outputs, when two different values are assigned to the same variable. For example, setting all the inputs of the multiport system in  FIGS. 1  to “ 2 ” determines by inference &lt;8:{M 2 ,M 3 ,A 2 }&gt;∈S g . 
         [0042]    A later measurement g=9 determines a discrepancy because &lt;9:{ }&gt; is also an element of S g  due to the measurement, but is not consistent with the system model. The union of the assumptions contributing to this result leads to the detection of a discrepancy, which implies that M 2 , M 3 , or A 2  must be a faulty component. 
         [0043]    Typically, in the course of an inferential propagation of values within a system no discrepancies are found, but when faults occur in a system a plurality of discrepancies may show up. In fact the process of causal inference continues to determine new discrepancies until the propagation of the possible tagged values of the variables at the output of the system is completed; this may require a very long time, as the number of values assigned to each variable may grow exponentially with the number of possible assumptions. This leads a generic DX algorithm to require an exponential time to propagate the values in the whole system. 
         [0044]    Next, the generic DX algorithm finds the minimal sets of assumptions intersection of all the detected discrepancies, which represent the diagnosis of the causes of the contradictory measurements. 
         [0045]    Unfortunately, the computation of the minimum set has equivalent complexity to the problem of computing the prime implicants, which is a NP-complete problem. 
         [0046]    For improved performance, the DX algorithm GDE (General Diagnosis Engine) uses a minimalist approach to the management of the sets, eliminating &lt;n:L i &gt; from a set if &lt;n:L j &gt; belongs to the set and L j  ⊂L i . This is possible because the second element makes &lt;n:L i &gt; redundant when a value is determined on the basis of the starting assumptions. 
         [0047]    The set of discrepancies is further minimized by eliminating a redundant discrepancy L i  when another discrepancy L j  exists such that L j  ⊂L i . Such tests on subsets reduce the computational loads of the inferential process, but also imply that the test procedure is called many times in the algorithm, and this anyway requires a long computing time. 
         [0048]    In the end, the diagnostic model according to the DX approach results in a system in which each variable can be tested. However, the goal would be to test the smallest possible number of variables. Actually, a DX algorithm is able to identify a number of possible diagnoses of a discrepancy and to suggest the measurement of a determined subset of variables to reduce the ambiguity of the diagnosis. 
         [0049]    Although this approach is theoretically advantageous, in practice one realizes that some variables cannot be measured when the system of interest is in a remote location or unreachable (e.g. in the case of spacecraft traveling in deep space). The DX approach must therefore be applied by defining in advance the actually measurable variables, i.e. the sensors associated to the system which allow its observation. The problem therefore arises to identify a priori the most suitable variables to be measured, to minimize the ambiguities of the diagnosis. 
         [0050]    The FDI Approach 
         [0051]    The main feature wherein the FDI approach differs from the DX approach is the initial assumption that the observation sensors are defined a priori. 
         [0052]    The optimization of sensors and the diagnostic technique are based on the concepts of Analytical Redundancy Relation (ARR) and Fault Signature Matrix (FSM). 
         [0053]    In the following the concepts of ARR and FSM are introduced and briefly discussed, for the sake of clarity and simplicity considering the case of single fault only in a system. 
         [0054]    The set of variables (V) in a system, for example the system shown in  FIG. 1 , can be decomposed into a set of unknown variables (X) and a set of observed variables (O), i.e. the relation V=X ∪U O holds. 
         [0055]    An Analytical Redundancy Relation (ARR) is a constraint deduced from the system model (SM). The ARRs can be deduced from the SM by elimination of the unknown variables from the Primary Relations (PR). Therefore an ARR contains observed variables only, hence it can be computed from them. The support of an ARR is the subset of components involved in the derivation of said ARR. 
         [0056]    For the system shown in  FIG. 1 , if the sensors are deployed at outputs f and g, and the inputs a, b, c, d, e are known, then O={a, b, c, d, e, f, g} and X={x, y, z}. 
         [0057]    The resulting ARRs are listed in the following Table 1: 
         [0000]    
       
         
               
             
               
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 ARRs, support components and sensors for the example in FIG. 1 
               
             
          
           
               
                   
                 ARR 
                 Support components 
                 Sensors 
               
               
                   
                   
               
               
                   
                 ARR 1 : f = ac + bd 
                 M 1 , M 2 , A 1   
                 f 
               
               
                   
                 ARR 2 : g = bd + ce 
                 M 2 , M 3 , A 2   
                 g 
               
               
                   
                 ARR 3 : f − g = ac − ce 
                 M 1 , M 3 , A 2 , A 1   
                 f, g 
               
               
                   
                   
               
             
          
         
       
     
         [0058]    The ARRs are then used to check the consistency of the observations on the system against the SM. In other words, the ARRs are satisfied if the observed system behaviour satisfies the model constraints, i.e provides observations expected from the model. 
         [0059]    Under the assumption of a single fault, i.e. if one component only of the support of an ARR is faulty, then that ARR is not satisfied. 
         [0060]    In fact, together with the concept of support set, this statement is the basis of the approach of model-based diagnostics within the FDI methodology. 
         [0061]    A Fault Signature Matrix (FSM) can be deduced from the ARRs. The FSM is defined as a binary matrix whose rows are the ARRs generated for the system under study and whose columns represent the system components. 
         [0062]    An element FS ij  of this matrix equals 1 if the associated system component C i  belongs to the support of relation ARR j , otherwise FS ij =0. The i-th column corresponding to component C i  is defined as Fault Signature Vector (FSV) of C i  and is called FSV i =[FSV il , . . . , FSV in ] t . 
         [0063]    Referring to the system depicted in  FIG. 1 , the FSM can be deduced from Table 1 and is shown in the following Table 2. 
         [0000]    
       
         
               
             
               
               
               
               
               
               
               
             
           
               
                 TABLE 2 
               
             
             
               
                   
               
               
                 Fault Signature Matrix for the system shown in FIG. 1 
               
             
          
           
               
                   
                   
                 A 1   
                 A 2   
                 M 1   
                 M 2   
                 M 3   
               
               
                   
                   
               
               
                   
                 ARR 1   
                 1 
                 0 
                 1 
                 1 
                 0 
               
               
                   
                 ARR 2   
                 0 
                 1 
                 0 
                 1 
                 1 
               
               
                   
                 ARR 3   
                 1 
                 1 
                 1 
                 0 
                 1 
               
               
                   
                   
               
             
          
         
       
     
         [0064]    The case of multiple faults can be dealt with by expanding the columns of the FSM. The multiple fault signature vector FSV can be obtained from the single fault signature vectors FSV k  occurring simultaneously, by carrying out a logical OR operation between corresponding elements of the corresponding FSV k . Therefore, in a system having n components, taking into account all the possible combinations of multiple faults leads to the generation of a FSM having 2 n  columns. 
         [0065]    The system diagnostics is therefore based on the evaluation of the ARRs, starting from a set of observations on the system. 
         [0066]    If an ARR i  is satisfied on the basis of the observations, then ARR i =0, otherwise ARR i =1. The ARRs are instantiated with the observed values, providing an observed signature. The signature of the i-th observation is defined as a binary vector OS i =[OS il , . . . , OS in ] t , where OS ij =0 if ARR j  is satisfied by the observations, and OS ij =1 otherwise. 
         [0067]    Table 3 shows the diagnosis of the system shown in  FIG. 1 , on the basis of different observation signatures. 
         [0000]    
       
         
               
             
               
               
             
               
               
               
               
               
               
             
           
               
                 TABLE 3 
               
             
             
               
                   
               
               
                 Diagnosis of the system depicted in FIG. 1, for  
               
               
                 different observation signatures. 
               
             
          
           
               
                 Diagnosis 
                 Observations 
               
               
                   
               
             
          
           
               
                 ARR 1   
                 0 
                 0 
                 1 
                 1 
                 1 
               
               
                 ARR 2   
                 0 
                 1 
                 0 
                 1 
                 1 
               
               
                 ARR 3   
                 0 
                 1 
                 1 
                 0 
                 1 
               
               
                 Single  
                 mone 
                 A 2 ; M 3   
                 A 1 ; M 1   
                 M 2   
                 none 
               
               
                 fault 
                   
                   
                   
                   
                   
               
               
                 diagnosis 
                   
                   
                   
                   
                   
               
               
                 Multiple 
                 none 
                 (A 2 , M 3 ) 
                 (A 1 , M 1 ) 
                 none 
                 All the sets of 
               
               
                 fault 
                   
                   
                   
                   
                 double faults, 
               
               
                 diagnosis 
                   
                   
                   
                   
                 (A 1 , M 1 ) and 
               
               
                   
                   
                   
                   
                   
                 (A 2 , M 3 ) ex- 
               
               
                   
                   
                   
                   
                   
                 cluded 
               
               
                   
               
             
          
         
       
     
         [0068]    The diagnosis is given on the basis of the faults taken into account in the FSM, i.e. an observed signature OS i =[OS il , . . . , OS in ] t  is consistent with a fault signature FS i =[FS il , . . . , FS in ] t  if FS ij =OS ij  for each j. 
         [0069]    For example, for the system in  FIG. 1  the OS=[0,1,1] t  is equivalent to the fault signature of components A 2  and M 3 . 
         [0070]    Notice that this shows that, depending on the system sensors, the faults of components A 2  and M 3  cannot be discriminated, as in the case of A 1  and M 1 . 
         [0071]    The criterion of detection and isolation (fault discrimination) can be described in terms of FSM. 
         [0072]    All faults can be detected (complete detection) if there is no null column (i.e. no FSV with all zero elements) in the FSM. That is, for a given faulty component C i , at least one ARR is affected. Fault isolation is guaranteed if there are no two identical columns in the FSM, since this fact would imply that the two FSVs are identical and therefore the corresponding faults cannot be discriminated. 
         [0073]    The biggest obstacle in the use of the ARRs for a diagnostic procedure comes from the efficient generation of the complete, non-redundant set of ARRs, which is at present a limitation of the available algorithms for the execution of diagnoses according to the FDI approach. 
         [0074]    A first feature to be taken into account is the possible number of ARRs. 
         [0075]    Let&#39;s consider a system described by n primary relations (PR) (typically this means that the system has n components, but in general this might imply that the system has at most n components) and m sensors (observations), where n&gt;m in most realistic cases. 
         [0076]    If the ARRs are considered as functions of all possible combinations of observations, then the total number of ARRs would be of the order of O(2 m ). On the other hand, if we consider that the ARRs are derived from the combination of PRs by eliminating the unknown variables, this implies an upper bound to the number of ARRs of the order of O(2 n ). 
         [0077]    The key point, which the inventors believe has not been sufficiently appreciated in the currently used techniques, is the fact that the ARRs may involve all the possible combinations of PRs and observations. 
         [0078]    Actually, the same set of PRs can lead to different ARRs, i.e. to different ARRs having the same support set, but different sets of observations. 
         [0079]    Cases may also occur, wherein the same set of observations can lead to different ARRs, which differ in their support components. 
         [0080]    Taking this view, we can therefore conclude that the upper bound to the total number of ARRs is actually of the order of O(2 n+m ). Of course, for any realistic system the number of ARRs is always finite, due to the structural constraints of the system. 
         [0081]    Another fundamental question in the application of the ARRs, both for system diagnostics and for the problem of sensor optimization, is related to the completeness of the set of ARRs. More precisely, the inventors are aware of the fact that the problem of the minimum complete set of ARRs has not attracted so far suffcient attention. 
         [0082]    In the literature the concepts of d-completeness (completeness as to fault detection) and i-completeness (completeness as to fault isolation) have been discussed. However, these two concepts can be used only for the applicability analysis of a given set of ARRs for the diagnosis of a system, while the problem of generating a complete set of ARRs is not directly faced; on the other hand it is obvious that completeness is a fundamental issue both for diagnostics and for sensors optimization, since the highest possible information from the ARRs is required for both problems. 
         [0083]    It is also obvious that any application of an incomplete set of ARRs, both for system diagnostics and for optimization of sensors associated to said system, may lead to wrong or suboptimal results. 
         [0084]    The inventors, in their article “A new efficient method for system structural analysis and generating analytical redundancy relations”, Proc. IEEE Aerospace Conference, March 2009, have presented an innovative method for the generation of a complete set of ARRs, whose complexity is only O(L 4 ), even in the worst case, where L is the number of relations in the system; this method solves some limitations of the ARR generation algorithms known before, disadvantageously non-deterministic and exhibiting exponential complexity. 
         [0085]    Another issue to be considered is that, although the complexity of computing the ARRs is specific for each system, a common disadvantage of this technique is the fact that the evaluation of all the ARRs is required to diagnose the system; this implies heavy computation loads even if there is no fault in the system. In other words, it is not possible to determine a priori a subset of ARRs whose computaton is sufficient to respond to the specific diagnostic needs. 
         [0086]    Another issue to be considered is the actual feasibility of the computation (evaluation) of the ARRs. As an ARR is by definition generated by combining a set of PRs, such combination may require the inversion of the functions representing one or more PRs, expressed in analytical form. As a matter of fact, in real systems encountered in practical applications, the functions representing primary relations of some non-linear components cannot be inverted in analytical form, but can only be expressed numerically: this poses a further major obstacle, increasing the computational load of the procedure and limiting its practical applicability. 
         [0087]    Finally, as above mentioned, after evaluating the ARRs and forming the observation or observed signature vector, the latter must be compared to the fault vectors in FSM. Althoug this operation is rather simple, its complexity is increased in case of multiple fault diagnosis. 
         [0088]    If we consider a system having n components and all possible combinations of faults, then a FSM having 2 n  columns would be generated: this leads to an exponential growth of the memory space to be allocated to the FSM in the computing system for the execution of the diagnostic algorithm, and in the computing time required by said system to carry out the comparison of the observation vector against the fault vectors. 
       SUMMARY OF THE INVENTION 
       [0089]    The present invention aims to provide a satisfactory solution to the problems exposed above, while avoiding the drawbacks of the known art. 
         [0090]    More specifically, the present invention aims at providing an efficient, particularly from the point of view of computation, and accurate method for the timely diagnosis of critical faults in a system, based on a system model. 
         [0091]    According to the present invention, these goals are achieved thanks to a method for the generation of a set of conflicts for model-based diagnosis of a system, providing the features stated in claim  1 , and a diagnostic method having the features stated in claim  6 . 
         [0092]    Specific embodiments are the object of dependent claims, whose content is to be taken as integral part of the present description. 
         [0093]    Further objects of the invention are a dignostic system and a computer program to implement the above described methods, as claimed. 
         [0094]    The present invention is based on the principle of combining the advantageous features of the above described DX and FDI approaches, and particularly of the DX GDE algorithm and of the ARR-based FDI algorithm, while avoiding the integral application of each of them, which would lead to the above mentioned disadvantages. 
         [0095]    In particular, the method object of this invention takes advantage of the diagnostic approach based on the ARRs, which correspond to the potential conflicts supporting the DX diagnostic technique, since the ARRs are generated a priori once for all for a given system. This allows to carry out a faster diagnosis, as compared to the repeated execution of conflicts set searching algorithms according to the DX approach. 
         [0096]    More specifically, the ARRs are generated according to the method described by the inventors in the quoted article “A new efficient method for system structural analysis and generating analytical redundancy relations”, Proc. IEEE Aerospace Conference, March 2009. 
         [0097]    Each intermediate relation, in the following shortly called R j , used to derive the set of ARRs, which by definition involve only known variables (observations), is given by a quadruple having the following form: 
         [0000]      R j =(N j , C j , S j , T j ) 
         [0000]    where N j  is the progressive number assigned to R j , C j  is the set of support components, S j  is the set of variables involved in R j  and T j  is the set of primary relations PRs used to generate R j . 
         [0098]    Specifically, each PR is represented by a quadruple of form 
         [0000]      R j =(n j , C j , S j , {n j }) 
         [0000]    where n j  is the number of the PR, and since each PR is independent from the other PRs, the last component of the quadruple is {n j }. 
         [0099]    The basic operation in the method for the generation of a complete set of ARRs is the generation of a new relation starting from two given relations, by eliminating a common variable. 
         [0100]    Given two relations: 
         [0000]      R j =(N j , C j , S j , T j ) and R k =(N k , C k , S k , T k ) 
         [0000]    if both the following conditions are satisfied: 
         [0000]      S j ∩S k ≠{ } and T j ∩T k ={ }
 
         [0000]    then, for each non-observed variable x ∈S j ∩S k  the following relation is generated 
         [0000]      R=(N, C j  ∪C k , (S j  ∪S k )−{x}, T j  ∪T k ),
 
         [0000]    where N is a new number. 
         [0101]    As it is possible that the same relations (intermediate or ARRs) are obtained by different derivations, to avoid maintaining additional copies of a same relation, two relations 
         [0000]      R j =(N j , C j , S j , T j ) and R k =(N k , C k , S k , T k ) 
         [0000]    are defined as identical if 
         [0000]      (S j , T j =(S k , T k ) 
         [0000]    and in the process of generating ARRs, if a new intermediate relation or ARR is identical to a previously generated one, then it is deleted from the list. 
         [0102]    Note that the generation of each new relation is carried out in implicit form by set operations, without any need to determine a priori any analytical expression and to compute the inverse of the functions representing one or more relations. 
         [0103]    Starting from the complete set of ARRs in implicit form it is anyway possible to derive the FSM of the system, without the need to know exactly the analytical form of each relation and to calculate its inverse form, invoking the derivation of the explicit form and its evaluation only for a limited subset of ARRs for the actual diagnosis of the system. 
         [0104]    Each ARR necessary for the diagnosis of the system can be computed numerically taking into account the set of primary relations involved in its derivation, as well as its derivation path, i.e. the combination order of said primary relations. It must be stressed that the evaluation of the subset of ARRs requires only the numerical inversion of the corresponding function, and not the determination of the analytical form of its inverse. 
         [0105]    Therefore it is possible to exploit the two advantageous features of the diagnostic approach based on the evaluation of ARRs, that is the derivation once only of the ARRs determining the relations between the observed sensors readings and the system components, as well as the possibility of generating the Fault Signature Matrix for an a priori analysis of the system fault detection and isolation properties and the determination of the ambiguity sets in the diagnosis. 
         [0106]    To avoid the computation burden related to a diagnosis based on ARRs according to the known FDI technique, which would require the evaluation of all ARRs (an increasingly difficult task when the corresponding analytical forms are not available and they have to be computed numerically, since the derivation of the ARRs must be conveniently performed in real time any time the diagnostic algorithm is executed), the invention is based on the principle of reducing the number of ARRs to be evaluated as key factor to improve the efficiency of the diagnostic method. 
         [0107]    As discussed in the article by M-O. Cordier et al. “Conflicts vs. analytical redundancy relations: a comparative analysis of the model based diagnosis approach from the artificial intelligence and automatic control perspectives”, IEEE Transactions on Systems, Men and Cybernetics, Part B: Cybernetics, vol. 34, n. 5, pp. 2163-2177, October 2004, the ARRs can be grouped into detection ARRs (D-ARRs) and isolation ARRs (I-ARRs). The D-ARRs involve one sensor or system observation variable only (therefore their total number equals the number of sensors), while each of the I-ARRs depends on a plurality of sensors (system observation variables). The ARR generation algorithm detects directly which and how many sensors are invloved, therefore allows their automatic classification. 
         [0108]    In the example of the multiport system shown in  FIG. 1 , ARR 1  and ARR 2  are D-ARR, while ARR 3  is a I-ARR. 
         [0109]    According to the invention, only D-ARRs determine the expected sensor values. 
         [0110]    These ARRs represent actually the simulation of the system, i.e. the relations to compute the expected sensor values using the system model, for a given set of values for the input variables. Note that each D-ARR involves one sensor only, therefore the number of D-ARRs equals the preselected total number of sensors in the system. Moreover, the D-ARRs do not require any inversion of the corresponding function. 
         [0111]    Therefore, the method object of the present invention to generate a set of conflicts and the diagnosis of a system includes, as a first step, a fault detection operation, wherein given a set of inputs a model-based simulation of the system is carried out, to determine the expected sensor readings. This corresponds to the evaluation of the D-ARRs. If the expected sensor values match the observed ones, i.e. the D-ARRs are satisfied, then there is no fault in the system. 
         [0112]    If the expected values of the sensors do not match the measured ones, this corresponds to a discrepancy, according to the definition of the DX approach. 
         [0113]    Then a further step of conflicts generation is carried out, starting from the knowledge of the sensors representing the detected discrepancies, that is the sensors whose expected values do not match the measured ones. 
         [0114]    According to the invention, in the set of I-ARRs those not involving any sensor exhibiting discrepancies are necessrily satisfied, as they represent relations between system inputs and correct observed measurements, expected from the model. On the contrary the I-ARRs involving one or more sensors exhibiting discrepancies are considered as potential conflicts. 
         [0115]    The I-ARRs involving one or more sensors exhibiting discrepancies (a subset of all the possible I-ARRs) are then computed and evaluated carrying out a consistency check. The consistency check determines whether each I-ARR being examined, i.e. belonging to the subset of I-ARRs depending on a plurality of sensors involving faulty components, is satisfied. This check is not executed by explicitly computing the I-ARR (which is generated only in implicit form, as an explicit or analytical form might not exist), but by computing the consistency of the results of the primary relations involved in the I-ARR itself: if these are consistent, the corresponding I-ARR is satisfied, otherwise it is not. 
         [0116]    A satisfied I-ARR is excluded from further operations. The support of each I-ARR detected as not satisfied represents definitely a conflict. 
         [0117]    At this stage, having determined which ARRs are not satisfied, an observation vector can be formed and system diagnosis can be carried out by means of the FSM, according to a FDI approach. 
         [0118]    As it is clear, this innovative combined approach leads to a higher efficiency compared to the GDE technique alone, or to the ARR-based technique alone, because it reduces the computation to the evaluation of a subset of ARRs. 
         [0119]    Finally, since for complex systems the multiple-fault diagnosis by means of an expanded FSM would lead to exponentially increasing burdens in terms of memory space and computing time, it is preferable to perform a minimal diagnosis by solving the corresponding problem of determining the hitting set, i.e. the minimum set intersection of all the previously determined sets of conflicts, that is the minimum set of components whose at least one belongs to each of the sets of potentially faulty components, as defined by the unsatisfied ARRs. Although the problem of determining the hitting set is a NP-complete problem, it is possible to solve it efficiently in practical cases, for example by using the branch-and-bound algorithm described by A. Fijany e F. Vatan in “New high performance algorithmic solution for diagnosis problem”, Proc. IEEE Aerospace conference, March 2005, and in the U.S. Pat. No. 7,249,003 “System for solving diagnosis and hitting set problems”, by the same authors. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0120]    Additional features and advantages of the invention are better explained in the following detailed description, provided as a non-limiting example, with reference to the attached drawings, where: 
           [0121]      FIG. 1  depicts a circuit schematic of a multi-port system analyzed in the introductory part of this description, and 
           [0122]      FIGS. 2   a  and  2   b  represent corresponding circuit schematics of combinatorial circuits to which the method object of this invention is applied. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0123]    A processing system for the diagnosis of a system according to the method object of this invention includes a computing workstation of known type (not depicted), or a distributed-type processing system, having a processing subsystem and local or remote peripheral input/output devices, arranged to execute a processing and computing program or program groups/modules stored on disk or accessible via a network, which implement the algorithm object of the invention. Such solutions here recalled are considered as well known in the art and will not be further described here, as not relevant as such to the implementation and understanding of the present invention. 
         [0124]    To better understand the development of the combined method object of the invention, based on generating implicit ARRs and extracting from them a set of conflicts for the diagnosis of a system, it is useful to provide a short introduction to the DX approach according to the known technique, so that its domain can be extended to the present method in a framework of common notations. 
         [0125]    According to the DX approach, the variables of a system are represented by a variables vector and each primary relation PR is represented by a set of rules to propagate values from one variable to another. 
         [0126]    Each rule includes five components, described in the following, where the variables are stated in vector Vars [ ]. 
         [0127]    out index in Vars[ ] 
         [0128]    inn index vectors in Vars[ ] 
         [0129]    Fn( )function on the inputs 
         [0130]    Tst( )test on the inputs 
         [0131]    A assumption 
         [0132]    In a traditional DX approach, each element in Vars [ ] contains a set of zero or more expressions of the form &lt;value:{assumptions}&gt;, which mean that a variable can take a specific value depending on which set of assumptions holds. For example, with reference to the multi-port system shown in  FIG. 1 , the first rule, expression of the multiplier M 1 , would have the following five components, where indices 1, 3, 6 in vector Vars[ ] represent variables “a”, “c” and “x”, respectively. 
         [0133]    out=6 
         [0134]    in[ ]=[1,3] 
         [0135]    Fn( )=multiply( )−simply multiplies the inputs 
         [0136]    Tst( )=true( )−simply returns true 
         [0137]    A=M 1    
         [0138]    Given this representation of variables and rules, the propagation of values in the system follows the algorithm in Table 4, which represents the routine Propagate( ) where Vars[V] takes a value C whenever the non-contradictory set of assumption S holds. 
         [0139]    To determine if a set of assumptions is contradictory, a comparison is performed against the elements of a set NGDS, containing all the known contradictory sets of assumptions. 
         [0000]    
       
         
               
             
           
               
                 TABLE 4 
               
               
                   
               
             
             
               
                 Routine for the propagation of values between variables  
               
               
                 of a system, according to a predefined set of rules 
               
               
                 Propagate(V.           C:S          , Rules, Vars, NGDS) 
               
               
                 Let Agenda2 ←  
               
               
                 For each R ε Rules, where V = R.in[X] for some X do 
               
               
                  For each P, where P[X]=          C:S                       P[i]=           c i :s i            εVars[R.in[i]] do  
               
               
                   If R.Tst(P)             N            ∪(Si) ∪ {R.A} for any N ε NGDS then  
               
               
                    Add [R.out,           R.Fn(P):∪(Si) ∪ {R.A}          ] to Agenda2 
               
               
                 Return Agenda2 
               
               
                   
               
             
          
         
       
     
         [0140]    The propagation routine Propagate( )gets its input variables and a set of rules (Rules) and iterates over each rule having Vars[V] as input. As each rule has several input variables, and each variable can take several values as function of the assumptions, each rule can propagate a number of values depending on its inputs. This computation, for each rule, is performed by the inner loop in the routine, which ensures that the input for V is &lt;C:S&gt;. 
         [0141]    Each iteration of the inner loop performs two tests to determine if the rule should be applied to its set of inputs. The inputs taken into account in the computation must pass the test function Tst( )of the rules and the assumptions must not contadict one another. The contradictions are tested collecting the union of the assumptions and determining if the resulting set contains a contradictory set belonging to NGDS. 
         [0142]    Whenever a rule is applied a tagged value is computed to be assigned to an output variable, and these tagged value assignments are collected into the set Agenda2 of unsatisfied relations (conflicts set) and ultimately returned to the calling routine. 
         [0143]    The DX Algorithm 
         [0144]    The most frequently quoted algorithm in the DX literature, which uses the above recalled propagation routine, is certainly the GDE algorithm. 
         [0145]    The general approach used in the DX technique is to assume a set of observations and to propagate them through a system model, looking for inconsistencies betweeen assumptions and observations. Given these inconsistencies, the DX algorithm looks for the set of unsatisfied assumptions which best accounts for the observations. 
         [0146]    As an example, the following Table 5 contains a mGDE algorithm, a simplified version of the GDE algorithm, which uses the procedure Propagate( )to propagate values. 
         [0000]    
       
         
               
             
           
               
                 TABLE 5 
               
               
                   
               
             
             
               
                 DX algorithm for value propagation 
               
               
                 mGDE(Agenda, Rules) 
               
               
                 Let NGDS ← , Vars ← [, , ...] 
               
               
                 While Agenda is not empty do 
               
               
                  Extract [V,           C:S           from Agenda 
               
               
                  If there is no           C:S′           ε Vars[V], where S&#39; ⊂ S 
               
               
                   Remove all           C:S′           ε Vars[V], where S ⊂ S&#39; 
               
               
                   Add           C:S           to Vars[V] 
               
               
                   For each           D:L           ε Vars[V] where D≠C do 
               
               
                    Add S∪L to NGDS removing rebundancies, 
               
               
                    Remove all           X:Y           from Vars where Y            S∪L 
               
               
                    Remove all [W,           X:Y          ] from Agenda where Y            S∪L 
               
               
                   Add Propagates(V,           C:S          , Rules, Vars, NGDS) to Agenda 
               
               
                 Return Hittingsets(NGDS) 
               
               
                   
               
             
          
         
       
     
         [0147]    This algorithm simply assumes an initial Agenda of tagged value assignments and processes them to determine sets of mutually inconsistent assumptions. 
         [0148]    Each iteration, which is performed by the outermost WHILE loop, processes a single tagged value assignment. If that assignment is not redundant in respect of the tagged values already assigned to the corresponding variable, then it is added to the set of tagged values for that variable. When an addition makes other tagged values redundant, these are then deleted from the set of the variable. Formally, a tagged value &lt;C:S&gt; makes &lt;C:T&gt; redundant whenever assumtions S imply assumptions T, i.e. S ⊂T. 
         [0149]    When a tagged value is assigned to a variable, the innermost FOR loop handles the sets of inconsistent assumptions. First of all, a variable cannot assume two different values at the same time, therefore this condition is marked as an inconsistency. The inconsistencies are added to the NGDS set after removing the redundancies, where a set is considered redundant if it is a superset of another. These inconsistencies also are used to remove elements from Agenda and from vector Vars[] when their tags are determined as inconsistent. 
         [0150]    Finally, the ultimate result returned by mGDE is the hitting set of the inconsistencies, that is the set containing at least one element from each of the inconsistency sets. The diagnosis set is given by the set of minimal hitting sets of NGDS. 
         [0151]    The Algorithm Based on Implicit ARRs, Object of the Invention 
         [0152]    Let&#39; consider an ARR as an analytical equation to be tested and a set of assumptions which turn out to be mutually inconsistent when the equation does not hold. 
         [0153]    Instead of testing the equation, only the set of sensors involved in the test of the equation is characterized. Therefore, for a system diagnosable using the method according to the invention, an ARR has two components: 
         [0154]    sensors a set of observable variables 
         [0155]    assume a set of assumptions 
         [0156]    Using this characterization of ARRs, the diagnostic algorithm includes a DX model of the device to test each ARR, and the ARR-based diagnostic procedure (the algorithm) looks like the one shown in Table 4, where the inputs are values imposed to the system and the outputs are observed values. This differs considerably from the above recalled mGDE routine, which relies only on the parameter Agenda, with tagged value assignments for both inputs and outputs. 
         [0157]    As shown in the following Table 6, the algorithm initially performs a WHILE loop to simulate a system starting from the imposed inputs and to compute the expected outputs. 
         [0000]    
       
         
               
             
           
               
                 TABLE 6 
               
               
                   
               
             
             
               
                 Diagnostic algorithm based on implicit ARRs 
               
               
                 mARR(Inputs, Outputs, Rules, ARRS) 
               
               
                 Let NGDS ← , Vars ← [, , ...], and Agenda ← Inputs 
               
               
                 While Agenda us not empty do 
               
               
                  Extract [V,           C:S          ] from Agenda &amp; add           C:            to Vars[V] 
               
               
                  Add Propagate(V,           C:           , Rules, Vars, ) to Agenda 
               
               
                 BADS ← {V| [V,           C:           ] ε Outputs             Vars[V] ≠ {          C:           }} 
               
               
                 For each A ε ARRS 
               
               
                  If BADS ∩ A.sensors ≠  
               
               
                   Let Vars ← [, , ...] 
               
               
                   Let RS ← {R | R ε Rules            R.A ε A.assume} 
               
               
                   Let Agenda ← Inputs ∪ Outputs 
               
               
                   While Agenda is not empty do 
               
               
                    Extract [V,           C:X          ] from Agenda &amp; add           C:            to Vars[V] 
               
               
                    If Vars[V] = {          C:           ,           C:           } 
               
               
                     Vars[Vars] ← {          C:           } 
               
               
                    Else if Vars[V] = {          C:           ,           D:           } where C≠D 
               
               
                     Add A.assume to NGDS and empty Agenda 
               
               
                    Else 
               
               
                     Append Propagate(V,           C:           , RS, Vars, ) to Agenda 
               
               
                 Return Hittingsets(NGDS) 
               
               
                   
               
             
          
         
       
     
         [0158]    The computed outputs are then checked against the measured outputs to determine the set BADS of measured values inconsistent with the computed expected values. 
         [0159]    This set is then used to determine which ARRs are to be further checked, to compute the plurality of sets of inconsistent assumptions (conflicts). Therefore, the next FOR loop iterates over each ARR and tests if the sensors contributing to that ARR intersect the set BADS. 
         [0160]    The test of an ARR involves evaluating if the inputs and observed outputs are consistent with the rules implied by the assumptions of said ARR. Therefore, the innermost WHILE loop has several similarities with the mGDE algorithm. The main difference is that the values don&#39;t need tags. It turns out that the test for the ARR fails whenever two different values are assigned to the same variable. Therefore the tags are totally superfluous and a variable will never have more than one associated value. 
         [0161]    Therefore, calling Propagate( ) by mARR( ) never returns more than one value to be added to the Agenda set of conflicts or unsatisfied relations. 
         [0162]    Conclusions 
         [0163]    A check of the performance of the method object of this invention has been carried out by comparing the results of a diagnosis procedure based on a traditional DX approach with the results of a diagnosis procedure based on the algorithm proposed by the inventors, by means of a test on circuits composed by adders and multipliers like the example multiport circuit, shown in  FIG. 1 . 
         [0164]    To check the correctness of both approaches, faults have been imposed to each component of the system, and both algorithms have been executed to get a set of diagnostic results, which in turn have been mutually compared to check if they provided the same diagnosis sets. 
         [0165]    As examples, two circuits have been tested, shown in  FIGS. 2   a  and  2   b,  which depict two schematics of combinatorial circuits including adders and multipliers, where the inputs are at the top and the outputs at the bottom. Specifically, the first example is an extension of the multiport circuit of  FIG. 1 , while the second represents a circuit with a more complex connectivity. 
         [0166]    To get information on the relative performance between the known algorithm and the algorithm object of the invention, the algorithms have been executed on both circuits to diagnose a fault imposed at one of the gates. 
         [0167]    In all cases the diagnostic algorithms computed the same NGDS set and provided as output the same diagnosis sets, wherein one of the recognized diagnoses was actually the faulty gate. 
         [0168]    As the NGDS sets were identical, the best measure of the amount of computations executed by each algorithm is given by the total number of tagged value assignments, provided as output by Propagate( ). 
         [0169]    Table 7 lists, as a comparison, a few statistical results for each of the three systems depicted in  FIGS. 1 ,  2   a  and  2   b.    
         [0000]    
       
         
               
             
               
               
               
               
             
               
               
               
               
               
             
           
               
                 TABLE 7 
               
             
             
               
                   
               
               
                 Comparison results between diagnostics methods 
               
             
          
           
               
                   
                 #ARR 
                 mGDE 
                 mARR 
               
               
                   
                   
               
             
          
           
               
                   
                 Circuit FIG. 1 
                 3 
                 45.8 
                 9.3 
               
               
                   
                 Circuit FIG. 2a 
                 39 
                 1390.5 
                 408.9 
               
               
                   
                 Circuit FIG. 2b 
                 94 
                 1807.7 
                 1244.2 
               
               
                   
                   
               
             
          
         
       
     
         [0170]    In the first column the number of ARRs required to diagnose the system is listed. When any of these ARRs is removed, the mGDE algorithm does not provide the same diagnosis as the mARR algorithm, which proves that the entire set of ARRs is necessary, and it is important that it is detedermined by the lowest possible computational effort. 
         [0171]    The second column reports the total average number of performed computations by the routine Propagate( ) called by the routine mGDE, while the third column reports the total average number of computations by the routine Propagate( ) called by the routine mARR. 
         [0172]    These values have been determined by iterating the algorithm over all tests with no fault and with one fault, adding the numbers of resulting tagged assignments, and dividing that number by the number of executed iterations. It can be clearly seen that the routine mARR object of the invention performs definitely better than the routine mGDE. 
         [0173]    Therefore the method object of the invention makes advantageously possible the efficient diagnosis of a system, by exploiting in an innovative combination the respective key features of the diagnostic methods based on the ARRs and on the DX technique, while simultaneously avoiding their drawbacks, achieving superior performance compared to the diagnostic techniques entirely based either on the evaluation of ARRs or alternatively on the DX approach. 
         [0174]    The proposed method allows a more efficient and accurate derivation of the conflicts sets for the diagnosis of a system. Similarly to the FDI approach, this method uses the ARRs, but in implicit form and not in explicit and analitical form, so that it can be practically applied to any system. Similarly to the DX approach, the method uses consistency checks to evaluate some assumptions on the system, but differently from that approach it exploits the full knowledge of the system, provided by the implicit ARRs, and consequently reduces drastically the number of required consistency checks, achieving much higher efficiency. 
         [0175]    The fast and correct derivation of a set of conflicts is the basis for an efficient and timely diagnosis of a system, enabling the implementation of a recovery strategy to avoid further possible damages and/or the loss of the system. 
         [0176]    It is clear that, as far as the principle of the invention is maintained, the forms of implementation and the details of the embodiments can be widely varied in respect to what has been here described and illustrated purely as a non-limiting example, while remaining within the protection of the invention as defined by the attached claims.