## 3 A New Multiple Fault Diagnosis Method  
The implementation process of the proposed multiple fault diagnosis method based on the test results and the prior probability of each fault types is presented in Figure 1.  
Figure 1: The flowchart of the dependency model-based multiple fault diagnosis method. In general, four steps are included in the proposed method, designed and explained as follows. * Step 1. Build the fault-test dependency matrix based on the existing dependency modeling methods. Analyze the system and build its dependency model based on the information flows or the multisignal flow graphs model [12; 25]. After that, the dependency matrix in the form of Equation (3) can be built based on the reachability algorithm [26] or experimental design method [27; 21]. * Step 2. Simplify the dependency matrix \(FT\) according to the test results of the system. The purpose of this step is to delete the impossible fault states according to the test results. For example, if \(ft_{ij}=1\), which means the test \(t_{j}\) is correlated with the fault type \(f_{i}\) and the test result of \(t_{j}\) is 'Pass' according to the observation result \(r_{j}=0\), then the fault type \(f_{i}\) will definitely not happen. In this way, the logical judgment from experts or engineers is applied for simplifying the complex fault diagnosis processing. This can be regarded as a semisupervised diagnosis method. In detail, the principle of simplifying the dependency matrix based on the correlation between the test \(t_{j}\) and the fault type \(f_{i}\) can be analyzed as follows. 1. For the element \(ft_{ij}=1\) in the dependency matrix, which means the test \(t_{j}\) is correlated with the fault type \(f_{i}\), the following cases may exist:
* If the fault \(f_{i}\) happens, the result of the test \(t_{j}\) must be '1' (Fail);
* If the fault \(f_{i}\) does not happen, the result of the test \(t_{j}\) is unknown;
* If the result of the test \(t_{j}\) is '1' (Fail), the state of the fault \(f_{i}\) is unknown; in this case, \(t_{j}\) may be caused by \(f_{i}\) or the other fault like \(f_{k}\);
* If the result of the test \(t_{j}\) is '0' (Pass), the fault type \(f_{i}\) will not happen. 2. For the element \(ft_{ij}=0\) in the dependency matrix, which means the test \(t_{j}\) is not correlated with the fault type \(f_{i}\), the following cases may exist:
* If the fault \(f_{i}\) happens, the result of the test \(t_{j}\) is unknown because there is no correlation between \(t_{j}\) and \(f_{i}\);
* If the fault \(f_{i}\) does not happen, the result of the test \(t_{j}\) is unknown, too;
* If the result of the test \(t_{j}\) is '1' (Fail), the state of the fault \(f_{i}\) is unknown;
* If the result of the test \(t_{j}\) is '0' (Pass), the state of the fault \(f_{i}\) is unknown. After analyzing the cases in the correlation between the test \(t_{j}\) and the fault type \(f_{i}\), the method of simplifying the dependency matrix \(FT\) can be concluded as follows: 1. Delete the column vectors correlated to the test result \(t_{j}\)=0 ('Pass' the test) in the dependency matrix \(FT\). Only the items correlated to the test \(t_{j}\)=1 ('Fail' to pass the test) are reserved. 2. Delete the row vectors correlated to \(ft_{ij}=1\) in the column that satisfies \(t_{j}\)=0. Finally, the simplified matrix \(FT_{y}=\left[ft_{ij}\right]_{h\times k}\) can be formulated where \(1\leq h\leq m\), \(1\leq k\leq n\). * Step 3. Formulate the multiple fault dependency matrix \(FT_{d}\) by logic operation. Perform the logical 'OR' operation on each fault eigenvector (the row vector) in the simplified matrix \(FT_{y}=\left[ft_{ij}\right]_{h\times k}\) to obtain the multiple fault dependency matrix \(FT_{d}\). Define that the fault type of single faults is included in the ones of the multiple faults. Thus, the results of the 'OR' operation among each fault type vector in the matrix \(FT_{y}\) can be used to denote the state in which that multiple fault happens. For example, when the eigenvector of the fault \(f_{i}\) and \(f_{j}\) are \(\left[