## 3 Online Root Fault Identification Method
### Feature Vector Extraction
#### 3.1.6 Weights of Alarms  
When a fault occurs, the responses from alarms are different. To explore the coupling correspondence between alarms and faults, we define the weights of alarms in each fault. The weight of alarm \(i\) in fault \(k\) is expressed as:  
\[w_{ki}=\lambda_{1i}\lambda_{2 ki}\lambda_{3 ki},(k=1,2,\ldots,P;i=1,2,\ldots,N), \tag{12}\]  
where \(\lambda_{1i}\) is the weight defined according to the alarm type; \(\lambda_{2 ki}\) is the weight defined according to the significance of alarm \(i\) in fault \(k\); \(\lambda_{3 ki}\) is the weight defined according to the specificity of alarm \(i\) in fault \(k\); \(P\) is the number of fault types; and \(N\) is the number of alarm types configured in the SCADA system.  
1. Alarm type Warning alarms and fault alarms play different roles in the SCADA system. Warning alarms are triggered when the monitored variables come close to exceeding thresholds. Fault alarms are triggered when these thresholds are exceeded. Thus, fault alarms are more important than warning alarms. We define that the weights of fault alarms are bigger than those of warning alarms. The value of \(\lambda_{1i}\) is determined as follows: \[\lambda_{1i}=\left\{\begin{array}{ll}0.5,&\text{if alarm $i$ is a warning alarm}\\ 1.0,&\text{if alarm $i$ is a fault alarm}\end{array}\right..\] (13)
2. The significance of an alarm When fault \(k\) occurs, some alarms are always triggered or never triggered. The indicative effect of these alarms in fault \(k\) is strong. Thus, the significance of these alarms is great. On the contrary, when fault \(k\) occurs, other alarms are not always triggered. The indicative effectiveness of these alarms in fault \(k\) is weak. Thus, these alarms have little significance. The weight \(\lambda_{2 ki}\) is used to enhance the alarms which are significant to one fault and discards the nonsignificant ones; \(\lambda_{2 ki}\) is calculated as follows: \[\lambda_{2 ki}=2\alpha_{ki}-1,\] (14) \[\alpha_{ki}=\frac{1}{l_{k}}\sum_{j=1}^{l_{k}}\delta(v_{ki}^{j}-c_{ki}),\] (15) \[\delta(x)=\left\{\begin{array}{ll}1,&\text{if $x=0$}\\ 0,&\text{if $x\
eq 0$}\end{array}\right.,\] (16)  
where \(v_{ki}^{j}\) is the binary value of alarm \(i\) in the \(j\)-th alarm vector of fault \(k\); \(c_{ki}\) is the binary value of alarm \(i\) in the alarm vector of fault \(k\); \(k=1,2,\ldots,P\); \(i=1,2,\ldots,N\); \(P\) is the number of fault types; and \(N\) is the number of alarm types configured in the SCADA system.  
When alarm \(i\) is always triggered or never triggered by fault \(k\), \(\alpha_{ki}=1\). When alarm \(i\) is triggered randomly, \(\alpha_{ki}=0.5\). Therefore, \(\lambda_{2 ki}\in[0,1]\).  
3. The specificity of an alarm  
When an alarm is only significant to fault \(k\) and nonsignificant to other faults, we consider that the alarm is unique to fault \(k\). The weight \(\lambda_{3 ki}\) is used to enhance the alarms which are unique to fault \(k\); \(\lambda_{3 ki}\) is calculated as follows:  
\[\lambda_{3 ki}=1-\frac{1}{P-1}\sum_{g\in F_{\overline{k}}}(\frac{1}{g}\sum_{j=1 }^{l_{g}}\delta(v^{j}_{gi}-c_{ki})), \tag{17}\]  
\[\delta(x)=\left\{\begin{array}{l}1,\text{ if }x=0\\ 0,\text{ if }x\
eq 0\end{array}\right., \tag{18}\]  
where \(P\) is the number of faults, \(F_{\overline{k}}\) is a finite set of faults except fault \(k\), \(v^{j}_{gi}\) is the binary value of alarm \(i\) in the \(j\)-th alarm vector of fault \(g\); \(c_{ki}\) is the binary value of alarm \(i\) in the alarm vector of fault \(k\); \(l_{g}\) is the number of alarm lists belonging to fault \(g\).  
The weight \(\lambda_{3 ki}\) decreases in the following situations: (1) Alarm \(i\) is frequently triggered by fault \(k\) and frequently triggered by the other faults. (2) Alarm \(i\) is seldom triggered by fault \(k\) or by the other faults. Therefore, \(\lambda_{3 ki}\) decreases when alarm \(i\) is shared by several faults, but increases when alarm \(i\) is more specific to fault \(k\) than to the other faults. The value range of \(\lambda_{3 ki}\) is between zero and one.