# Automated Design of an  FDI System  for the Wind Turbine Benchmark

Authors: Carl Svärd; Mattias Nyberg
Journal: Journal of Control Science and Engineering
 (2012)

---

## Abstract

We propose an FDI system for the wind turbine benchmark designed by the application of a generic automated method. No specific adaptation of the method for the wind turbine benchmark is needed, and the number of required human decisions, assumptions, as well as parameter choices is minimized. The method contains in essence three steps: generation of candidate residual generators, residual generator selection, and diagnostic test construction. The proposed FDI system performs well in spite of no specific adaptation or tuning to the benchmark. All faults in the predefined test sequence can be detected and all faults, except a double fault, can also be isolated shortly thereafter. In addition, there are no false or missed detections.


---

## Body

## 1. Introduction

Wind turbines stand for a growing part of power production. The demands for reliability are high, since wind turbines are expensive and their off-time should be minimized. One potential way to meet the reliability demands is to adopt fault tolerant control (FTC), that is, prevent faults from developing into failures by taking appropriate actions. A typical action is reconfiguration of the control system. An essential part of an FTC system is the fault detection and isolation (FDI) system, see, for example, [1]. To obtain good detection and isolation of faults, model-based FDI is often necessary.Design of a complete model-based FDI-system is a complex task and involves by necessity several decisions, for example, method choices, tuning of parameters, and assumptions regarding noise distributions and the nature of the faults to be diagnosed. In general, an optimal solution requires detailed knowledge of the behavior of the considered system, something that is rarely available for real applications. In this paper, inspired by the work with real-industrial applications, we propose an automated design method that minimizes the number of required human decisions and assumptions. Furthermore, we investigate the potential of designing an FDI system for the wind turbine benchmark, see [2], using this automated method.The design method is composed of three main steps. In the first step, a large set of candidate residual generators are generated using the algorithm described in [3]. In the second step, the residual generators most suitable to be included in the final FDI system are selected and realized by means of a greedy selection algorithm, based on ideas elaborated in [4]. The realization, or construction, of residual generators is done by the use of the algorithms presented in [5]. In the third and final step, we design diagnostic tests based on the residuals obtained as output from the selected set of residual generators. The diagnostic test relies on a novel methodology based on a comparison of the probability distributions of no-fault residuals, estimated offline using no-fault training data, and the distributions of residuals estimated online using current data.As it turns out, the proposed FDI system performs well when evaluated on the test sequence described in [2]. A tailor-made FDI system perfectly tuned for the wind turbine benchmark would probably perform better than the one we propose. However, in relation to the minimal effort required for application of the automated design method, and in spite of no extra tuning or specific adaptation to the benchmark, the performance of the FDI system is satisfactory; all faults in the test sequence can be detected within feasible time, and there are no false or missed detections. Further, all faults, except a double fault, can also be isolated.The wind turbine benchmark model and the strategy used for modeling of faults are described in Section2. Section 3 presents an overview of the design method. The method for constructing residual generators is described in Section 4, and the approach used for selecting residual generators is described in Section 5. The method for design of diagnostic tests, and the fault isolation scheme is considered in Section 6. Some implementation-specific details are discussed in Section 7. The performance of the designed FDI system is evaluated and discussed in Section 8, Section 9 concludes the paper.


## 2. The Wind Turbine Model

The wind turbine system is described and modeled in [2], to which is referred for details. The considered wind turbine system has three rotor blades and the system contains four subsystems: blade and pitch system, drive train, generator and converter, and controller, see Figure 1 and Table 1.Table 1
Signals in the wind turbine system.
SignalDescriptionvwWind speedvw,mWind speed measurementβrPitch angle referenceβmPitch angle measurementωrAngular rotor speedωr,mAngular rotor speed measurementωgGenerator rotor speedωg,mGenerator rotor speed measurementτrRotor torqueτgGenerator torqueτg,rGenerator torque referenceτg,mGenerator torque measurementPrPower referencePgGenerator powerFigure 1
Overview of the wind turbine system.


### 2.1. State-Space Realization of Transfer Functions

The pitch system and converter are modeled as frequency domain transfer functions. The residual generation algorithm we intend to apply, assumes a model described in differential and algebraic equations. To obtain a model in this form, the transfer functions are realized as time-domain state-space systems.The relation between pitch angle referenceβr and pitch angle output βi, for each of the three blades and thus for i=1,2,3, can be realized in state-space form using observable canonical form, see, for example, [6], as follows:(1a)ẋβi1(t)=-2ζωnxβi1(t)+xβi2(t),(1b)ẋβi2(t)=-ωn2xβi1(t)+ωn2βr(t),(1c)βi(t)=xβi1(t),where ζ, ωn are parameters, and xβi1, xβi2, state variables. Using the same approach, the relation between converter reference τg,r and output τg can be written as(2a)ẋτg(t)=-αgcxτg(t)+αgcτg,r(t),(2b)τg(t)=xτg(t),where αgc is a parameter, and xτg is the state variable.


### 2.2. Fault Modeling

The set of faults to consider for the wind turbine is specified in [2] and given by(3)F={Δβ1,Δβ2,Δβ3,Δτg,Δωg,Δβ1,m1,Δβ1,m2,Δβ2,m1,Δβ2,m2,Δβ3,m1,Δβ3,m2,Δωr,m1,Δωr,m2,Δωg,m1,Δωg,m2},
where Δβ1, Δβ2, Δβ3, and Δτg are actuator faults, Δωg is a system fault, and Δβ1,m1, Δβ1,m2, Δβ2,m1, Δβ2,m2, Δβ3,m1, Δβ3,m2, Δωr,m1, Δωr,m2, Δωg,m1, and Δωg,m2 are sensor faults.To incorporate fault information in the nominal model, we have chosen to model all faults as additive signals in corresponding equations. Thus, we are not taking into account all information regarding the nature of faults given in [2]. Consider, for example, fault Δβ1 which represents an actuator fault in pitch system 1, see (1a)–(1c), resulting in changed dynamics of β1 due to dropped main line pressure or high air content in the oil. One possible way to model this fault would be as a deviation in parameters ωn and ζ in (1a) and (1b). With the chosen approach, the fault is instead modeled as an additive signal in (1c) for i=1, that is, β1=xβ11+Δβ1.Note that the adopted fault modeling approach is general and no assumptions are made regarding, for example, the time-behavior of faults. Thus, the approach is able to handle, for example, multiplicative faults even though the fault signal is assumed to be additive. Consider, for example, a multiplicative fault inβ1 given by β1=δ·xβ11, where δ≠1, which can be equivalently described by β1=xβ11+Δβ1, where Δβ1=xβ11(δ-1).The main argument for using this, more general, approach is that we consider it hard, or even impossible, to know exactly how a faulty component behaves in reality. Furthermore, data from all fault cases for evaluation and validation of a more-detailed model are seldom available. Modeling faults in this way also results in a minimum of fault modes. This is beneficial since it gives a smaller model which simplifies several steps in model-based diagnosis, for example, residual generation and isolation. In addition, regarding how diagnosis information is utilized, for example, for fault tolerant control, it is unnecessary to distinguish between different fault modes if they are associated with the same action or consequence. Indeed, this applies to all sensor faults in the wind turbine, since the system should be reconfigured regardless of the type of sensor fault, that is,fixed value or gain factor, see [2, Table  2]. Last, but not least, an additional important motivator is simplicity, since extending the nominal model with additive fault signals in this way is straightforward and easy.


### 2.3. Model Extensions

According to [2], the same pitch angle reference signal βr is fed to all three pitch systems (1a)–(1c), that is, βi,r=βr for i=1,2,3. However, according to the provided Simulink model, see [7], the individual reference signals are instead calculated in a control loop outside the pitch system as(4)βi,r=βr+βi-(βi,m1+βi,m22),i=1,2,3,
where βi is given by (1a)–(1c), and βi,m1 and βi,m2 are sensor measurements. To incorporate this information in the design of the FDI system, the original wind turbine model is extended with the relations between βi,r and βr given by (4).


### 2.4. The Model with Faults

The complete model of the wind turbine model, with fault signals denoted byΔ, used in this work for design of an FDI system is given below:(5)e1:τr=∑i=13ρπR3Cq(λ,βi)vw26,e2:λ=ωrRvw,e3,e5,e7:ẋβi1=-2ζωnxβi1+xβi2,i=1,2,3,e4,e6,e8:ẋβi2=-ωn2xβi1+ωn2βi,r,i=1,2,3,e9,e10,e11:βi=xβi1+Δβi,i=1,2,3,e12:ω̇g=(ηdtBdtNgJg)ωr+(-(ηdtBdt/Ng2)-BgJg)ωg+(ηdtKdtNgJg)θΔ-(1Jg)τg+Δωg,e13:ω̇r=-(Bdt-BrJr)ωr+(BdtNgJr)ωg-(KdtJr)θΔ+(1Jr)τr,e14:θ̇Δ=ωr-(1Ng)ωg,e15:ẋτg=-αgcxτg+αgcτg,r,e16:τg=xτg+Δτg,e17:Pg=ηgcωgτg,e18,e20,e22:βi,m1=βi+Δβi,m1,i=1,2,3,e19,e21,e23:βi,m2=βi+Δβi,m2,i=1,2,3,e24,e25:ωr,mj=ωr+Δωr,mj,j=1,2,e26,e27:ωg,mj=ωg+Δωg,mj,j=1,2,e28:vw,m=vw,e29:τg,m=τg,e30:Pg,m=Pg,e31,e32,e33:βi,r=βr+βi-(βi,m1+βi,m22),i=1,2,3.


## 2.1. State-Space Realization of Transfer Functions

The pitch system and converter are modeled as frequency domain transfer functions. The residual generation algorithm we intend to apply, assumes a model described in differential and algebraic equations. To obtain a model in this form, the transfer functions are realized as time-domain state-space systems.The relation between pitch angle referenceβr and pitch angle output βi, for each of the three blades and thus for i=1,2,3, can be realized in state-space form using observable canonical form, see, for example, [6], as follows:(1a)ẋβi1(t)=-2ζωnxβi1(t)+xβi2(t),(1b)ẋβi2(t)=-ωn2xβi1(t)+ωn2βr(t),(1c)βi(t)=xβi1(t),where ζ, ωn are parameters, and xβi1, xβi2, state variables. Using the same approach, the relation between converter reference τg,r and output τg can be written as(2a)ẋτg(t)=-αgcxτg(t)+αgcτg,r(t),(2b)τg(t)=xτg(t),where αgc is a parameter, and xτg is the state variable.


## 2.2. Fault Modeling

The set of faults to consider for the wind turbine is specified in [2] and given by(3)F={Δβ1,Δβ2,Δβ3,Δτg,Δωg,Δβ1,m1,Δβ1,m2,Δβ2,m1,Δβ2,m2,Δβ3,m1,Δβ3,m2,Δωr,m1,Δωr,m2,Δωg,m1,Δωg,m2},
where Δβ1, Δβ2, Δβ3, and Δτg are actuator faults, Δωg is a system fault, and Δβ1,m1, Δβ1,m2, Δβ2,m1, Δβ2,m2, Δβ3,m1, Δβ3,m2, Δωr,m1, Δωr,m2, Δωg,m1, and Δωg,m2 are sensor faults.To incorporate fault information in the nominal model, we have chosen to model all faults as additive signals in corresponding equations. Thus, we are not taking into account all information regarding the nature of faults given in [2]. Consider, for example, fault Δβ1 which represents an actuator fault in pitch system 1, see (1a)–(1c), resulting in changed dynamics of β1 due to dropped main line pressure or high air content in the oil. One possible way to model this fault would be as a deviation in parameters ωn and ζ in (1a) and (1b). With the chosen approach, the fault is instead modeled as an additive signal in (1c) for i=1, that is, β1=xβ11+Δβ1.Note that the adopted fault modeling approach is general and no assumptions are made regarding, for example, the time-behavior of faults. Thus, the approach is able to handle, for example, multiplicative faults even though the fault signal is assumed to be additive. Consider, for example, a multiplicative fault inβ1 given by β1=δ·xβ11, where δ≠1, which can be equivalently described by β1=xβ11+Δβ1, where Δβ1=xβ11(δ-1).The main argument for using this, more general, approach is that we consider it hard, or even impossible, to know exactly how a faulty component behaves in reality. Furthermore, data from all fault cases for evaluation and validation of a more-detailed model are seldom available. Modeling faults in this way also results in a minimum of fault modes. This is beneficial since it gives a smaller model which simplifies several steps in model-based diagnosis, for example, residual generation and isolation. In addition, regarding how diagnosis information is utilized, for example, for fault tolerant control, it is unnecessary to distinguish between different fault modes if they are associated with the same action or consequence. Indeed, this applies to all sensor faults in the wind turbine, since the system should be reconfigured regardless of the type of sensor fault, that is,fixed value or gain factor, see [2, Table  2]. Last, but not least, an additional important motivator is simplicity, since extending the nominal model with additive fault signals in this way is straightforward and easy.


## 2.3. Model Extensions

According to [2], the same pitch angle reference signal βr is fed to all three pitch systems (1a)–(1c), that is, βi,r=βr for i=1,2,3. However, according to the provided Simulink model, see [7], the individual reference signals are instead calculated in a control loop outside the pitch system as(4)βi,r=βr+βi-(βi,m1+βi,m22),i=1,2,3,
where βi is given by (1a)–(1c), and βi,m1 and βi,m2 are sensor measurements. To incorporate this information in the design of the FDI system, the original wind turbine model is extended with the relations between βi,r and βr given by (4).


## 2.4. The Model with Faults

The complete model of the wind turbine model, with fault signals denoted byΔ, used in this work for design of an FDI system is given below:(5)e1:τr=∑i=13ρπR3Cq(λ,βi)vw26,e2:λ=ωrRvw,e3,e5,e7:ẋβi1=-2ζωnxβi1+xβi2,i=1,2,3,e4,e6,e8:ẋβi2=-ωn2xβi1+ωn2βi,r,i=1,2,3,e9,e10,e11:βi=xβi1+Δβi,i=1,2,3,e12:ω̇g=(ηdtBdtNgJg)ωr+(-(ηdtBdt/Ng2)-BgJg)ωg+(ηdtKdtNgJg)θΔ-(1Jg)τg+Δωg,e13:ω̇r=-(Bdt-BrJr)ωr+(BdtNgJr)ωg-(KdtJr)θΔ+(1Jr)τr,e14:θ̇Δ=ωr-(1Ng)ωg,e15:ẋτg=-αgcxτg+αgcτg,r,e16:τg=xτg+Δτg,e17:Pg=ηgcωgτg,e18,e20,e22:βi,m1=βi+Δβi,m1,i=1,2,3,e19,e21,e23:βi,m2=βi+Δβi,m2,i=1,2,3,e24,e25:ωr,mj=ωr+Δωr,mj,j=1,2,e26,e27:ωg,mj=ωg+Δωg,mj,j=1,2,e28:vw,m=vw,e29:τg,m=τg,e30:Pg,m=Pg,e31,e32,e33:βi,r=βr+βi-(βi,m1+βi,m22),i=1,2,3.


## 3. Overview of Design Method

The proposed FDI system for the wind turbine is comprised of three subsystems: residual generation, fault detection, and fault isolation, see Figure2.Figure 2
Schematic overview of the FDI system.Measurements, that is, sensor readings, from the wind turbine are fed to a bank of residual generators whose output is a set of residuals. The residuals are used as input to the fault detection block, which contains diagnostic tests based on the residuals. The output from this block, one signal for each residual, indicates if a fault has been detected in the part of the system monitored by the corresponding residual. The result from the fault detection is fed to the fault isolation block in which the detected fault(s) are isolated.The proposed method supports design of the residual generation and fault detection blocks. Design of the fault isolation block is briefly discussed in Section6.2. The method contains three essential steps:(1)
generate candidate residual generators,(2)
select and realize residual generators,(3)
construct diagnostic tests,see Figure3. In the first step, a large set of candidate residual generators are generated. In the second step, the residual generators most suitable to be included in the final FDI system are selected and realized. In the third and final step, we design diagnostic tests based on the residuals obtained as output from the selected set of residual generators.Figure 3
Overview of the design method.In the subsequent sections, we describe in detail the different steps of the design method used to create the proposed FDI system for the wind turbine benchmark system. As input to the design method, or prerequisites, we assume a model of the system and no-fault training data. The data is assumed to be expressed as measurements, either real or simulated, of the inputs and outputs of the model in realistic and representative no-fault operating conditions.


## 4. Residual Generation

The set of residual generators used in the FDI system are based upon the ideas originally described in [8], where unknown variables in a model are computed by solving equation sets one at a time in a sequence and a residual is obtained by evaluating a redundant equation. Similar approaches are described and exploited in, for example, [1, 5, 9–13]. This class of residual generation methods, referred to as sequential residual generation, has shown to be successful for real applications and also has the potential to be automated to a high extent.


### 4.1. Sequential Residual Generation

Some concepts and results of sequential residual generation given in [5], to which we also refer for technical details, will now be briefly recapitulated. We consider a model (E,X,D,Y) to be a set of differential and algebraic equations E={e1,e2,…,enE} containing unknown variables X={x1,x2,…,xnX}, differential variables D={ẋ1,ẋ2,…,ẋnX}, and known variables Y={y1,y2,…,ynY}. The equations in E are, without loss of generality, assumed to be on the form(6)ei:fi(ẋ,x,y)=0,i=1,2,…,nE,
where ẋ, x and y, are vectors of the variables in D, X, and Y, respectively. Note that the model of the wind turbine presented in Section 2.4 can trivially be cast into this form.


#### 4.1.1. Computation Sequence

As said above, the main idea in sequential residual generation is to compute unknown variables in the model by solving equation sets one at a time in a sequence and then evaluate a redundant equation to obtain a residual. An essential component in the design of a residual generator is therefore a computation sequence, which describes the order in which the variables should be computed. In [5], a computation sequence is defined as an ordered set of variable and equation pairs:(7)C=((V1,E1),(V2,E2),…,(Vk,Ek)),
where Vi⊆X⋃D and Ei⊆E. The computation sequence 𝒞 implies that first the variables in V1 are computed from equations E1, then the variables in V2 from equations E2, possibly using the already computed variables in V1, and so forth.For an example, consider the computation sequence:(8)C=(({τg},{e29}),({ωr},{e24}),({θ̇Δ},{e14}),({ω̇g},{e12})),
for computation of a subset of the unknown variables in wind turbine model presented in Section 2.4. According to the computation sequence (8), the series of computations begins with computation of variable τg using equation e29, then variable ωr is computed using equation e24, and so on, ending with computation of variable ω̇g, or in fact ωg from equation e12.By construction, see [5], it is guaranteed that no variable is needed before it has been computed. Hence, the series of computations described by the computation sequence exhibit an upper triangular structure. For the computation sequence (8), this series of computations is given by(9a)τg=τg,m,(9b)ωr=ωr,m1,(9c)θ̇Δ=ωr-(1Ng)ωg,(9d)ω̇g=(ηdtBdtNgJg)ωr+(-(ηdtBdt/Ng2)-BgJg)ωg+(ηdtKdtNgJg)θΔ-(1Jg)τg.Whether it is possible or not to compute the specified variables from the corresponding equations depends naturally on the properties of the equations. Equally important are, however, prerequisites in terms of causality assumption, that is, regarding integral and/or derivative causality, and the properties of the computational tools, that are available for use, for a detailed discussion, see, for example, [5]. The computation sequence (8) makes use of solely integral causality when the variables θΔ and ωg are computed using equations e14 and e12, respectively.


#### 4.1.2. Sequential Residual Generator

Having computed the unknown variables inV1⋃V2⋃⋯⋃Vk, according to the computation sequence 𝒞 in (7), a residual can be obtained by evaluating a redundant equation e, that is, e∈E∖E1⋃E2⋯⋃Ek with varX(e)⊆varX(E1⋃E2⋯⋃Ek), where the operator varX(·) returns the unknown variables that are contained in an equation set. A residual generator based on a computation sequence 𝒞 and redundant equation e is referred to as a sequential residual generator.The computation sequence (8) together with equation e26 constitutes a sequential residual generator for the wind turbine model. When all variables in the computation sequence (8) have been computed according to (9a)–(9d), the residual is computed as r=ωg,m1-ωg.


#### 4.1.3. Finding Sequential Residual Generators

Regarding implementation aspects, for example, complexity and computational load, it is unnecessary to compute variables that are not contained in the residual equation, or not used to compute any of the variables contained in the residual equation. Furthermore, it is also desirable that computation of variables in each step is performed from as small equation sets as possible. It can be shown, see [5], that the equations in a computation sequence fulfilling the above properties, together with a redundant residual equation, in fact correspond to a minimal structurally overdetermined (MSO) set, see [3]. In other words, a necessary condition for the existence of a sequential residual generator for a model is that the model, or submodel, is an MSO set.


### 4.2. Candidate Residual Generators

As indicated above, a first step when searching for a sequential residual generator for a model may be to find an MSO set in the model. Thus, an MSO set can be regarded as acandidate residual generator. There are efficient algorithms for finding all MSO sets in large equation sets, see, for example, [3].Consider now the model of the wind turbine described in Section2.4, with equations E={e1,e2,…,e33}, unknown variables:(10)X={τr,β1,λ,vw,β2,β3,ωr,xβ11,xβ12,β1,r,xβ21,xβ22,β2,r,xβ31,xβ32,β3,r,ωg,θΔ,τg,xτg,Pg},
and known, that is, measured, variables:
(11)Y={βr,τg,r,β1,m1,β1,m2,β2,m1,β2,m2,β3,m1,β3,m2,ωr,m1,ωr,m2,ωg,m1,ωg,m2,vw,m,τg,m,Pg,m}.
In summary, the model contains 33 equations, 21 unknown variables, and 15 known variables. By utilizing the structure, that is, which unknown variables are contained in which equation, see, for example, [1], and a MATLAB implementation of the algorithm presented in [3], 1058 MSO sets were found in total.


## 4.1. Sequential Residual Generation

Some concepts and results of sequential residual generation given in [5], to which we also refer for technical details, will now be briefly recapitulated. We consider a model (E,X,D,Y) to be a set of differential and algebraic equations E={e1,e2,…,enE} containing unknown variables X={x1,x2,…,xnX}, differential variables D={ẋ1,ẋ2,…,ẋnX}, and known variables Y={y1,y2,…,ynY}. The equations in E are, without loss of generality, assumed to be on the form(6)ei:fi(ẋ,x,y)=0,i=1,2,…,nE,
where ẋ, x and y, are vectors of the variables in D, X, and Y, respectively. Note that the model of the wind turbine presented in Section 2.4 can trivially be cast into this form.


### 4.1.1. Computation Sequence

As said above, the main idea in sequential residual generation is to compute unknown variables in the model by solving equation sets one at a time in a sequence and then evaluate a redundant equation to obtain a residual. An essential component in the design of a residual generator is therefore a computation sequence, which describes the order in which the variables should be computed. In [5], a computation sequence is defined as an ordered set of variable and equation pairs:(7)C=((V1,E1),(V2,E2),…,(Vk,Ek)),
where Vi⊆X⋃D and Ei⊆E. The computation sequence 𝒞 implies that first the variables in V1 are computed from equations E1, then the variables in V2 from equations E2, possibly using the already computed variables in V1, and so forth.For an example, consider the computation sequence:(8)C=(({τg},{e29}),({ωr},{e24}),({θ̇Δ},{e14}),({ω̇g},{e12})),
for computation of a subset of the unknown variables in wind turbine model presented in Section 2.4. According to the computation sequence (8), the series of computations begins with computation of variable τg using equation e29, then variable ωr is computed using equation e24, and so on, ending with computation of variable ω̇g, or in fact ωg from equation e12.By construction, see [5], it is guaranteed that no variable is needed before it has been computed. Hence, the series of computations described by the computation sequence exhibit an upper triangular structure. For the computation sequence (8), this series of computations is given by(9a)τg=τg,m,(9b)ωr=ωr,m1,(9c)θ̇Δ=ωr-(1Ng)ωg,(9d)ω̇g=(ηdtBdtNgJg)ωr+(-(ηdtBdt/Ng2)-BgJg)ωg+(ηdtKdtNgJg)θΔ-(1Jg)τg.Whether it is possible or not to compute the specified variables from the corresponding equations depends naturally on the properties of the equations. Equally important are, however, prerequisites in terms of causality assumption, that is, regarding integral and/or derivative causality, and the properties of the computational tools, that are available for use, for a detailed discussion, see, for example, [5]. The computation sequence (8) makes use of solely integral causality when the variables θΔ and ωg are computed using equations e14 and e12, respectively.


### 4.1.2. Sequential Residual Generator

Having computed the unknown variables inV1⋃V2⋃⋯⋃Vk, according to the computation sequence 𝒞 in (7), a residual can be obtained by evaluating a redundant equation e, that is, e∈E∖E1⋃E2⋯⋃Ek with varX(e)⊆varX(E1⋃E2⋯⋃Ek), where the operator varX(·) returns the unknown variables that are contained in an equation set. A residual generator based on a computation sequence 𝒞 and redundant equation e is referred to as a sequential residual generator.The computation sequence (8) together with equation e26 constitutes a sequential residual generator for the wind turbine model. When all variables in the computation sequence (8) have been computed according to (9a)–(9d), the residual is computed as r=ωg,m1-ωg.


### 4.1.3. Finding Sequential Residual Generators

Regarding implementation aspects, for example, complexity and computational load, it is unnecessary to compute variables that are not contained in the residual equation, or not used to compute any of the variables contained in the residual equation. Furthermore, it is also desirable that computation of variables in each step is performed from as small equation sets as possible. It can be shown, see [5], that the equations in a computation sequence fulfilling the above properties, together with a redundant residual equation, in fact correspond to a minimal structurally overdetermined (MSO) set, see [3]. In other words, a necessary condition for the existence of a sequential residual generator for a model is that the model, or submodel, is an MSO set.


## 4.1.1. Computation Sequence

As said above, the main idea in sequential residual generation is to compute unknown variables in the model by solving equation sets one at a time in a sequence and then evaluate a redundant equation to obtain a residual. An essential component in the design of a residual generator is therefore a computation sequence, which describes the order in which the variables should be computed. In [5], a computation sequence is defined as an ordered set of variable and equation pairs:(7)C=((V1,E1),(V2,E2),…,(Vk,Ek)),
where Vi⊆X⋃D and Ei⊆E. The computation sequence 𝒞 implies that first the variables in V1 are computed from equations E1, then the variables in V2 from equations E2, possibly using the already computed variables in V1, and so forth.For an example, consider the computation sequence:(8)C=(({τg},{e29}),({ωr},{e24}),({θ̇Δ},{e14}),({ω̇g},{e12})),
for computation of a subset of the unknown variables in wind turbine model presented in Section 2.4. According to the computation sequence (8), the series of computations begins with computation of variable τg using equation e29, then variable ωr is computed using equation e24, and so on, ending with computation of variable ω̇g, or in fact ωg from equation e12.By construction, see [5], it is guaranteed that no variable is needed before it has been computed. Hence, the series of computations described by the computation sequence exhibit an upper triangular structure. For the computation sequence (8), this series of computations is given by(9a)τg=τg,m,(9b)ωr=ωr,m1,(9c)θ̇Δ=ωr-(1Ng)ωg,(9d)ω̇g=(ηdtBdtNgJg)ωr+(-(ηdtBdt/Ng2)-BgJg)ωg+(ηdtKdtNgJg)θΔ-(1Jg)τg.Whether it is possible or not to compute the specified variables from the corresponding equations depends naturally on the properties of the equations. Equally important are, however, prerequisites in terms of causality assumption, that is, regarding integral and/or derivative causality, and the properties of the computational tools, that are available for use, for a detailed discussion, see, for example, [5]. The computation sequence (8) makes use of solely integral causality when the variables θΔ and ωg are computed using equations e14 and e12, respectively.


## 4.1.2. Sequential Residual Generator

Having computed the unknown variables inV1⋃V2⋃⋯⋃Vk, according to the computation sequence 𝒞 in (7), a residual can be obtained by evaluating a redundant equation e, that is, e∈E∖E1⋃E2⋯⋃Ek with varX(e)⊆varX(E1⋃E2⋯⋃Ek), where the operator varX(·) returns the unknown variables that are contained in an equation set. A residual generator based on a computation sequence 𝒞 and redundant equation e is referred to as a sequential residual generator.The computation sequence (8) together with equation e26 constitutes a sequential residual generator for the wind turbine model. When all variables in the computation sequence (8) have been computed according to (9a)–(9d), the residual is computed as r=ωg,m1-ωg.


## 4.1.3. Finding Sequential Residual Generators

Regarding implementation aspects, for example, complexity and computational load, it is unnecessary to compute variables that are not contained in the residual equation, or not used to compute any of the variables contained in the residual equation. Furthermore, it is also desirable that computation of variables in each step is performed from as small equation sets as possible. It can be shown, see [5], that the equations in a computation sequence fulfilling the above properties, together with a redundant residual equation, in fact correspond to a minimal structurally overdetermined (MSO) set, see [3]. In other words, a necessary condition for the existence of a sequential residual generator for a model is that the model, or submodel, is an MSO set.


## 4.2. Candidate Residual Generators

As indicated above, a first step when searching for a sequential residual generator for a model may be to find an MSO set in the model. Thus, an MSO set can be regarded as acandidate residual generator. There are efficient algorithms for finding all MSO sets in large equation sets, see, for example, [3].Consider now the model of the wind turbine described in Section2.4, with equations E={e1,e2,…,e33}, unknown variables:(10)X={τr,β1,λ,vw,β2,β3,ωr,xβ11,xβ12,β1,r,xβ21,xβ22,β2,r,xβ31,xβ32,β3,r,ωg,θΔ,τg,xτg,Pg},
and known, that is, measured, variables:
(11)Y={βr,τg,r,β1,m1,β1,m2,β2,m1,β2,m2,β3,m1,β3,m2,ωr,m1,ωr,m2,ωg,m1,ωg,m2,vw,m,τg,m,Pg,m}.
In summary, the model contains 33 equations, 21 unknown variables, and 15 known variables. By utilizing the structure, that is, which unknown variables are contained in which equation, see, for example, [1], and a MATLAB implementation of the algorithm presented in [3], 1058 MSO sets were found in total.


## 5. Selecting Residual Generators

It is not feasible to implement and use all 1058 candidate residual generators, that is, MSO sets, in the final FDI system. A more attractive approach is instead to pick, from the set of all candidate residual generators, a smaller set of residual generators with desired properties.


### 5.1. Desired Properties of Residual Generators

The desired properties of the sought set of residual generators are as follows:(1)
the set of residual generators should enable us to isolate all single faults from each other;(2)
a set of residual generators of smaller cardinality is preferred before a larger one, given that the two sets have equal isolability properties;(3)
a residual generator based on an MSO set of smaller cardinality is preferred before a residual generator based on an MSO set of larger cardinality, given that the two sets have equal detectability and isolability properties.Properties 2 and 3 are mainly motivated by implementation aspects such as complexity, computational load, and numerical issues.We will base the selection of residual generators on quantitative, structural properties of the MSO sets instead of more qualitative or analytical properties on the actual residual generators. The latter may result in better isolation performance but is considered intractable since it requires that residual generators are implemented, executed, and evaluated, and also access to representative measurement data for all fault cases.


### 5.2. Fault Detectability and Isolability

To be able to formally state the selection problem, the notions of detectability and isolability are needed. Assuming that each fault occurs in only one equation, letefi denote the equation in an equation set E containing fault fi, for example, eΔβ1,m1=e18, see Section 2. Note that if a fault fj occurs in more than one equation, the fault fj can be replaced with a new variable xfj in these equations, and the equation xfj=fj added to the equation set. This added equation will then be the only equation where fj occurs. To proceed, let (·)+ denote an operator extracting the overdetermined part of a set of equations. According to [14], a fault fi is structurally detectable in the equation set E if efi∈(E)+ and structurally isolable from fault fj in the equation set E if efi∈(E)+ and efj∉(E)+.For an example, consider the equation setM={e26,e29,e24,e14,e12} containing the residual equation and equations from the computation sequence (7), studied in Section 4.1.1. First, we note that the equation set M is an MSO set due to the property of sequential residual generators mentioned in Section 4.1.3. Further, since M is an MSO set, it holds that (M)+=M, see, for example, [3]. Thus, it can for instance be deduced that fault Δωg is structurally isolable from fault Δβ1,m1 in M, since eΔωg=e12, eΔβ1,m1=e18, and it holds that e12∈M and e18∉M, see Section 2.4.By again utilizing the structure of the wind turbine model, the structural isolability properties of the model were calculated. All considered faults, see Section2.2, can be (structurally) isolated from each other in the wind turbine model.


### 5.3. Selection Problem Formulation

We will now formulate the selection problem in terms of properties on a set of MSO sets. To this end, letℳ denote the set of all MSO sets in the model, and F the set of considered faults. Let fi,fj∈F and define the isolation class for (fi,fj) as(12)Ifi,fj={M∈M:efi∈(M)+∧efj∉(M)+},
that is, Ifi,fj contains the MSO sets in ℳ in which fault fi is structurally isolable from fault fj. Further, let(13)I={Ifi,fj:∀(fi,fj)∈F×F,fi≠fj}
denote the set of all isolation classes needed for full isolation of all faults in F. For the wind turbine benchmark model and the set of 15 faults considered in Section 2.2, the set ℐ contains in total 15×15-15=210 isolation classes for single fault isolation of all 15 faults, that is, |ℐ|=210, where the operator |·| returns the cardinality of a set.To be able to satisfy the isolability property 1 stated above, we want to find a set𝒮⊆ℳ with a nonempty intersection with all isolation classes, that is,(14)∀Ifi,fj∈I,S∩Ifi,fj≠∅.
The property (14) on 𝒮 implies that we should find a so-called hitting set for ℐ. To satisfy the property 2, we want to find an 𝒮 so that |𝒮| is minimized. Thus, the sought hitting set for ℐ should be of minimal cardinality and we should find a so-called minimal cardinality hitting set (MHS) for ℐ.There are several possibilities for a metric that helps us find an𝒮 that satisfies property 3. We opt for simplicity and have, therefore, chosen to minimize ∑M∈𝒮|M|. As an additional requirement, on top of 1, 2, and 3 in Section 5.1 we require that at least one residual generator can be constructed from every M∈𝒮.


### 5.4. Solving the Selection Problem

The problem of finding a minimal cardinality hitting set is known to be NP-hard, see, for example, [15]. To overcome the complexity issues, we have chosen to compute an approximate solution to the problem in an iterative manner with a greedy selection approach as elaborated in [4].To accomplish this, we need to specify autility function, that is, a function that evaluates the usefulness of a given MSO set, and also state the properties of a complete solution to the selection problem. Following the greedy selection approach, we add to the solution the MSO set with the largest utility until the solution is complete. Furthermore, we only add MSO sets from which at least one residual generator can be constructed.


#### 5.4.1. Characterization of a Solution

We will now characterize a complete solution to the selection problem for use in the selection algorithm. First, we define theisolation class coverage of a set of MSO sets 𝒮⊆ℳ as(15)σ(S)={Ifi,fj∈I:∃M∈S,M∈Ifi,fj},
which states which of the isolation classes in ℐ that are covered by the MSO sets in 𝒮. The property 1 in Section 5.1, that is, the isolation or hitting set property, can with the isolation class coverage notion be formulated as σ(𝒮)=ℐ. This characterizes a complete solution of the selection problem.


#### 5.4.2. Utility Function

To evaluate a specific MSO set, we want to take into account the properties 1, 2, and 3, above. For a given MSO setM, we will use the utility function:(16)μI(M)=γ(|σ({M})||I|)+(1-γ)(1-|M||M̂|),
where M̂ is the MSO set in ℳ with the largest cardinality, and γ, 0≤γ≤1, a weighting factor. The term |σ({M})|/|ℐ| in (16) tells how many of the isolation classes in ℐ are covered by the MSO set M. Since we aim at covering all isolation classes with a minimum of MSO sets, property 2, we want to pick an MSO set that maximizes this term. The term 1-(|M|/|M̂|) relates the cardinality of M to the cardinality of all other sets in ℳ. Picking an MSO set that maximizes this term in (16) hence corresponds to picking the MSO set with the smallest cardinality in ℳ. This will help us satisfy property 3. The weighting factor γ is used to trade between the two properties reflected by these two terms.Note that an MSO set maximizing one term in (16) may minimize the other since an MSO set of larger cardinality likely covers more isolation classes than an MSO set of smaller cardinality.


### 5.5. The Selection Algorithm

The functionselectResidualGenerators used for selecting residual generators by means of greedy selection is given in Algorithm 1. Input to the function is a set of MSO sets ℳ, that is, a set of candidate residual generators, and a set of isolation classes ℐ. The output is a set of MSO sets 𝒮⊆ℳ and a set of residual generators 𝒢 based on 𝒮. The function findComputationSequence, described in [5], is used to find a computation sequence in accordance with Section 4.1, given a just-determined set of equations. The function findComputationSequence can be found in Algorithm 2.Algorithm 1:Greedy selection of residual generators.
functionselectResidualGenerators(ℳ,ℐ)𝒮:=∅𝒢:=∅whileℐ≠∅  doM:=argmaxM∈ℳμℐ(M)x:=varX(M)G:=∅for all  e∈M  doM′:=M∖{e}𝒞:= findComputationSequence(M′,x)if𝒞≠∅  thenG:=G∪{(𝒞,e)}end ifend forif  G≠∅   then𝒮:=𝒮∪{M}𝒢:=𝒢∪{G}end ifℳ:=ℳ∖{M}ℐ:=ℐ∖σ({M})end whilereturn(𝒮,𝒢)end functionAlgorithm 2:Find a computation sequence.
(1):functionfindComputationSequence(E′,X′)(2):𝒞:=∅(3):S:=findAllSCCs(E′,X′)(4):fori=1,2,…,|S|  do(5):(Ei,Xi):=S(i)(6):Di:=Diff(Xi)(7):Zi:=varD(Ei)∩Di(8):Wi:=Xi∖unDiff(Zi)(9):ifnot isInitCondKnown(Zi)  then(10):return  ∅(11):end If(12):EZi:=getDifferentialEquations(Ei,Zi)(13):EWi:=Ei∖EZi(14):SZi:=findAllSCCs(EZi,Zi)(15):forj=1,2,…,|SZi|  do(16):(EZij,Zij):=SZi(j)(17):ifisToolSolvable(Zij,EZij)  then(18):Append(𝒞,(Zij,EZij))(19):else(20):return  ∅(21):end if(22):end for(23):ifisJustDetermined(EWi,Wi)  then(24):SWi:=findAllSCCs(EWi,Wi)(25):forj=1,2,…,|SWi|  do(26):(EWij,Wij):=SWi(j)(27):ifisToolSolvable(Wij,EWij)  then(28):Append(𝒞,(Wij,EWij))(29):else(30):return  ∅(31):end if(32):end for(33):else(34):return  ∅(35):end if(36):end for(37):return  𝒞(38):  end functionFor a formal discussion regarding the qualification of using a greedy heuristic for solving the residual generation selection problem, as well as the complexity properties of such algorithms, please refer to [4] and references therein.


#### 5.5.1. Selecting Residual Equation

Note that the total number of sequential residual generators that potentially can be constructed from an MSO set equals the number of equations in the set. All residual generators created from the same MSO set, however, have equal fault detectability and isolability properties according to Section5.2. Nevertheless, their actual fault detectability and isolability may differ due, for example, different sensitivity for noise, and so forth. To make the final selection of which of the residual generators created from an MSO set that should be included in the final diagnosis system, evaluation by means of execution using real measurements from different fault cases is needed. Since we in this work only assume that no-fault data is available, see Section 3, this is not possible.In this work, the selection of which residual generator to create from a given MSO set is done so that the final deployment of the FDI system becomes as simple as possible. First of all,findComputationSequence was configured to prefer algebraic equations as residuals before differential equations, if possible. Second, in order to avoid implementation issues related to numerical differentiation, findComputationSequence was configured to prefer computation sequences using integral causality. Using this two-step heuristic, the selection of which residual generator to create from an MSO set, in practice, is more or less unambiguous. In those few cases where more than one candidate remains, we make an arbitrary selection.


### 5.6. Selected Residual Generators

Both functionsselectResidualGenerators and findComputationSequence were implemented in Matlab. As computational tool, see [5], the algebraic equation solver MAPLE was utilized, which allows symbolic solving of algebraic loops. The input to the algorithm was the set of all 1058 MSO sets for the wind-turbine benchmark model, see Section 4.2, and the set of all 210 isolation classes for single fault isolation of all considered faults, see Sections 2.2 and 5.3.To investigate the sensitivity ofselectResidualGenerators to the parameter γ, that is, the tradeoff between properties 2 and 3 stated in Section 5.3 and reflected by |M| and ∑M∈𝒮|M|, the algorithm was run with the wind turbine model and 0≤γ≤1. The result is shown in Table 2, where 𝒮 denotes the set returned by selectResidualGenerators. When γ=1, the aim is to fulfill the isolation property with as few MSO sets as possible, no matter the size of the MSO sets. As seen in Table 2 this results in few, but large, MSO sets. The smaller the γ, the more attention is paid to the size of the MSO sets. It turns out that 0.1≤γ≤0.6 gives a decent tradeoff between |𝒮| and ∑M∈𝒮|M| for the wind turbine model.Table 2
selectResidualGenerators sensitivity to parameter γ.
γ|𝒮|∑M∈𝒮|M|0.020820.116610.216610.316610.416610.516610.616610.716650.817720.916871.08108Withγ=0.5, the algorithm selected 16 MSO sets, that is, |𝒮|=16 and ∑M∈𝒮|M|=61. Of the 16 selected MSO sets, 7 contain algebraic equations only. The other 9 MSO sets contain both algebraic and differential equations. Thus, 7 of the 16 residual generators used in the final FDI system are static and the remaining 9 are dynamic. All 9 dynamic residual generators, due to the configuration of the algorithm, use integral causality. The total number of found residual generators is 34, that is, |𝒢|=34, see Section 5.5. Of these 34 residual generators, 18 are static and the remaining 16 are dynamic.


#### 5.6.1. Fault Signature Matrix

Given an MSO setM, its fault signatureF(M), with respect to the faults in F, is defined as(17)F(M)={fi∈F:efi∈M}.
For instance, the fault signature of the MSO set M1={e26,e27}⊆ℳ is F(M1)={Δωg,m1,Δωg,m2}. A convenient representation of the fault signature of a set of MSO sets 𝒮={M1,M2,…,Mk} with respect to F is the fault signature matrix (FSM) S with elements defined by(18)Sij={x,iffj∈F(Mi),Mi∈M,0,else.
The FSM for the 16 MSO sets on which the selected residual generators are based is given in Table 3.Table 3
Fault signature matrix.
Δβ1Δβ2Δβ3ΔωgΔτgΔβ1,m1Δβ1,m2Δβ2,m1Δβ2,m2Δβ3,m1Δβ3,m2Δωr,m1Δωr,m2Δωg,m1Δωg,m2G1(M1)xxG2(M2)xxG3(M3)xxG4(M4)xxG5(M5)xxG6(M8)xG7(M11)xxxG8(M27)xxG9(M29)xxG10(M31)xxG11(M7)xG12(M6)xG13(M14)xxxG14(M28)xxG15(M30)xxG16(M32)xx


## 5.1. Desired Properties of Residual Generators

The desired properties of the sought set of residual generators are as follows:(1)
the set of residual generators should enable us to isolate all single faults from each other;(2)
a set of residual generators of smaller cardinality is preferred before a larger one, given that the two sets have equal isolability properties;(3)
a residual generator based on an MSO set of smaller cardinality is preferred before a residual generator based on an MSO set of larger cardinality, given that the two sets have equal detectability and isolability properties.Properties 2 and 3 are mainly motivated by implementation aspects such as complexity, computational load, and numerical issues.We will base the selection of residual generators on quantitative, structural properties of the MSO sets instead of more qualitative or analytical properties on the actual residual generators. The latter may result in better isolation performance but is considered intractable since it requires that residual generators are implemented, executed, and evaluated, and also access to representative measurement data for all fault cases.


## 5.2. Fault Detectability and Isolability

To be able to formally state the selection problem, the notions of detectability and isolability are needed. Assuming that each fault occurs in only one equation, letefi denote the equation in an equation set E containing fault fi, for example, eΔβ1,m1=e18, see Section 2. Note that if a fault fj occurs in more than one equation, the fault fj can be replaced with a new variable xfj in these equations, and the equation xfj=fj added to the equation set. This added equation will then be the only equation where fj occurs. To proceed, let (·)+ denote an operator extracting the overdetermined part of a set of equations. According to [14], a fault fi is structurally detectable in the equation set E if efi∈(E)+ and structurally isolable from fault fj in the equation set E if efi∈(E)+ and efj∉(E)+.For an example, consider the equation setM={e26,e29,e24,e14,e12} containing the residual equation and equations from the computation sequence (7), studied in Section 4.1.1. First, we note that the equation set M is an MSO set due to the property of sequential residual generators mentioned in Section 4.1.3. Further, since M is an MSO set, it holds that (M)+=M, see, for example, [3]. Thus, it can for instance be deduced that fault Δωg is structurally isolable from fault Δβ1,m1 in M, since eΔωg=e12, eΔβ1,m1=e18, and it holds that e12∈M and e18∉M, see Section 2.4.By again utilizing the structure of the wind turbine model, the structural isolability properties of the model were calculated. All considered faults, see Section2.2, can be (structurally) isolated from each other in the wind turbine model.


## 5.3. Selection Problem Formulation

We will now formulate the selection problem in terms of properties on a set of MSO sets. To this end, letℳ denote the set of all MSO sets in the model, and F the set of considered faults. Let fi,fj∈F and define the isolation class for (fi,fj) as(12)Ifi,fj={M∈M:efi∈(M)+∧efj∉(M)+},
that is, Ifi,fj contains the MSO sets in ℳ in which fault fi is structurally isolable from fault fj. Further, let(13)I={Ifi,fj:∀(fi,fj)∈F×F,fi≠fj}
denote the set of all isolation classes needed for full isolation of all faults in F. For the wind turbine benchmark model and the set of 15 faults considered in Section 2.2, the set ℐ contains in total 15×15-15=210 isolation classes for single fault isolation of all 15 faults, that is, |ℐ|=210, where the operator |·| returns the cardinality of a set.To be able to satisfy the isolability property 1 stated above, we want to find a set𝒮⊆ℳ with a nonempty intersection with all isolation classes, that is,(14)∀Ifi,fj∈I,S∩Ifi,fj≠∅.
The property (14) on 𝒮 implies that we should find a so-called hitting set for ℐ. To satisfy the property 2, we want to find an 𝒮 so that |𝒮| is minimized. Thus, the sought hitting set for ℐ should be of minimal cardinality and we should find a so-called minimal cardinality hitting set (MHS) for ℐ.There are several possibilities for a metric that helps us find an𝒮 that satisfies property 3. We opt for simplicity and have, therefore, chosen to minimize ∑M∈𝒮|M|. As an additional requirement, on top of 1, 2, and 3 in Section 5.1 we require that at least one residual generator can be constructed from every M∈𝒮.


## 5.4. Solving the Selection Problem

The problem of finding a minimal cardinality hitting set is known to be NP-hard, see, for example, [15]. To overcome the complexity issues, we have chosen to compute an approximate solution to the problem in an iterative manner with a greedy selection approach as elaborated in [4].To accomplish this, we need to specify autility function, that is, a function that evaluates the usefulness of a given MSO set, and also state the properties of a complete solution to the selection problem. Following the greedy selection approach, we add to the solution the MSO set with the largest utility until the solution is complete. Furthermore, we only add MSO sets from which at least one residual generator can be constructed.


### 5.4.1. Characterization of a Solution

We will now characterize a complete solution to the selection problem for use in the selection algorithm. First, we define theisolation class coverage of a set of MSO sets 𝒮⊆ℳ as(15)σ(S)={Ifi,fj∈I:∃M∈S,M∈Ifi,fj},
which states which of the isolation classes in ℐ that are covered by the MSO sets in 𝒮. The property 1 in Section 5.1, that is, the isolation or hitting set property, can with the isolation class coverage notion be formulated as σ(𝒮)=ℐ. This characterizes a complete solution of the selection problem.


### 5.4.2. Utility Function

To evaluate a specific MSO set, we want to take into account the properties 1, 2, and 3, above. For a given MSO setM, we will use the utility function:(16)μI(M)=γ(|σ({M})||I|)+(1-γ)(1-|M||M̂|),
where M̂ is the MSO set in ℳ with the largest cardinality, and γ, 0≤γ≤1, a weighting factor. The term |σ({M})|/|ℐ| in (16) tells how many of the isolation classes in ℐ are covered by the MSO set M. Since we aim at covering all isolation classes with a minimum of MSO sets, property 2, we want to pick an MSO set that maximizes this term. The term 1-(|M|/|M̂|) relates the cardinality of M to the cardinality of all other sets in ℳ. Picking an MSO set that maximizes this term in (16) hence corresponds to picking the MSO set with the smallest cardinality in ℳ. This will help us satisfy property 3. The weighting factor γ is used to trade between the two properties reflected by these two terms.Note that an MSO set maximizing one term in (16) may minimize the other since an MSO set of larger cardinality likely covers more isolation classes than an MSO set of smaller cardinality.


## 5.4.1. Characterization of a Solution

We will now characterize a complete solution to the selection problem for use in the selection algorithm. First, we define theisolation class coverage of a set of MSO sets 𝒮⊆ℳ as(15)σ(S)={Ifi,fj∈I:∃M∈S,M∈Ifi,fj},
which states which of the isolation classes in ℐ that are covered by the MSO sets in 𝒮. The property 1 in Section 5.1, that is, the isolation or hitting set property, can with the isolation class coverage notion be formulated as σ(𝒮)=ℐ. This characterizes a complete solution of the selection problem.


## 5.4.2. Utility Function

To evaluate a specific MSO set, we want to take into account the properties 1, 2, and 3, above. For a given MSO setM, we will use the utility function:(16)μI(M)=γ(|σ({M})||I|)+(1-γ)(1-|M||M̂|),
where M̂ is the MSO set in ℳ with the largest cardinality, and γ, 0≤γ≤1, a weighting factor. The term |σ({M})|/|ℐ| in (16) tells how many of the isolation classes in ℐ are covered by the MSO set M. Since we aim at covering all isolation classes with a minimum of MSO sets, property 2, we want to pick an MSO set that maximizes this term. The term 1-(|M|/|M̂|) relates the cardinality of M to the cardinality of all other sets in ℳ. Picking an MSO set that maximizes this term in (16) hence corresponds to picking the MSO set with the smallest cardinality in ℳ. This will help us satisfy property 3. The weighting factor γ is used to trade between the two properties reflected by these two terms.Note that an MSO set maximizing one term in (16) may minimize the other since an MSO set of larger cardinality likely covers more isolation classes than an MSO set of smaller cardinality.


## 5.5. The Selection Algorithm

The functionselectResidualGenerators used for selecting residual generators by means of greedy selection is given in Algorithm 1. Input to the function is a set of MSO sets ℳ, that is, a set of candidate residual generators, and a set of isolation classes ℐ. The output is a set of MSO sets 𝒮⊆ℳ and a set of residual generators 𝒢 based on 𝒮. The function findComputationSequence, described in [5], is used to find a computation sequence in accordance with Section 4.1, given a just-determined set of equations. The function findComputationSequence can be found in Algorithm 2.Algorithm 1:Greedy selection of residual generators.
functionselectResidualGenerators(ℳ,ℐ)𝒮:=∅𝒢:=∅whileℐ≠∅  doM:=argmaxM∈ℳμℐ(M)x:=varX(M)G:=∅for all  e∈M  doM′:=M∖{e}𝒞:= findComputationSequence(M′,x)if𝒞≠∅  thenG:=G∪{(𝒞,e)}end ifend forif  G≠∅   then𝒮:=𝒮∪{M}𝒢:=𝒢∪{G}end ifℳ:=ℳ∖{M}ℐ:=ℐ∖σ({M})end whilereturn(𝒮,𝒢)end functionAlgorithm 2:Find a computation sequence.
(1):functionfindComputationSequence(E′,X′)(2):𝒞:=∅(3):S:=findAllSCCs(E′,X′)(4):fori=1,2,…,|S|  do(5):(Ei,Xi):=S(i)(6):Di:=Diff(Xi)(7):Zi:=varD(Ei)∩Di(8):Wi:=Xi∖unDiff(Zi)(9):ifnot isInitCondKnown(Zi)  then(10):return  ∅(11):end If(12):EZi:=getDifferentialEquations(Ei,Zi)(13):EWi:=Ei∖EZi(14):SZi:=findAllSCCs(EZi,Zi)(15):forj=1,2,…,|SZi|  do(16):(EZij,Zij):=SZi(j)(17):ifisToolSolvable(Zij,EZij)  then(18):Append(𝒞,(Zij,EZij))(19):else(20):return  ∅(21):end if(22):end for(23):ifisJustDetermined(EWi,Wi)  then(24):SWi:=findAllSCCs(EWi,Wi)(25):forj=1,2,…,|SWi|  do(26):(EWij,Wij):=SWi(j)(27):ifisToolSolvable(Wij,EWij)  then(28):Append(𝒞,(Wij,EWij))(29):else(30):return  ∅(31):end if(32):end for(33):else(34):return  ∅(35):end if(36):end for(37):return  𝒞(38):  end functionFor a formal discussion regarding the qualification of using a greedy heuristic for solving the residual generation selection problem, as well as the complexity properties of such algorithms, please refer to [4] and references therein.


### 5.5.1. Selecting Residual Equation

Note that the total number of sequential residual generators that potentially can be constructed from an MSO set equals the number of equations in the set. All residual generators created from the same MSO set, however, have equal fault detectability and isolability properties according to Section5.2. Nevertheless, their actual fault detectability and isolability may differ due, for example, different sensitivity for noise, and so forth. To make the final selection of which of the residual generators created from an MSO set that should be included in the final diagnosis system, evaluation by means of execution using real measurements from different fault cases is needed. Since we in this work only assume that no-fault data is available, see Section 3, this is not possible.In this work, the selection of which residual generator to create from a given MSO set is done so that the final deployment of the FDI system becomes as simple as possible. First of all,findComputationSequence was configured to prefer algebraic equations as residuals before differential equations, if possible. Second, in order to avoid implementation issues related to numerical differentiation, findComputationSequence was configured to prefer computation sequences using integral causality. Using this two-step heuristic, the selection of which residual generator to create from an MSO set, in practice, is more or less unambiguous. In those few cases where more than one candidate remains, we make an arbitrary selection.


## 5.5.1. Selecting Residual Equation

Note that the total number of sequential residual generators that potentially can be constructed from an MSO set equals the number of equations in the set. All residual generators created from the same MSO set, however, have equal fault detectability and isolability properties according to Section5.2. Nevertheless, their actual fault detectability and isolability may differ due, for example, different sensitivity for noise, and so forth. To make the final selection of which of the residual generators created from an MSO set that should be included in the final diagnosis system, evaluation by means of execution using real measurements from different fault cases is needed. Since we in this work only assume that no-fault data is available, see Section 3, this is not possible.In this work, the selection of which residual generator to create from a given MSO set is done so that the final deployment of the FDI system becomes as simple as possible. First of all,findComputationSequence was configured to prefer algebraic equations as residuals before differential equations, if possible. Second, in order to avoid implementation issues related to numerical differentiation, findComputationSequence was configured to prefer computation sequences using integral causality. Using this two-step heuristic, the selection of which residual generator to create from an MSO set, in practice, is more or less unambiguous. In those few cases where more than one candidate remains, we make an arbitrary selection.


## 5.6. Selected Residual Generators

Both functionsselectResidualGenerators and findComputationSequence were implemented in Matlab. As computational tool, see [5], the algebraic equation solver MAPLE was utilized, which allows symbolic solving of algebraic loops. The input to the algorithm was the set of all 1058 MSO sets for the wind-turbine benchmark model, see Section 4.2, and the set of all 210 isolation classes for single fault isolation of all considered faults, see Sections 2.2 and 5.3.To investigate the sensitivity ofselectResidualGenerators to the parameter γ, that is, the tradeoff between properties 2 and 3 stated in Section 5.3 and reflected by |M| and ∑M∈𝒮|M|, the algorithm was run with the wind turbine model and 0≤γ≤1. The result is shown in Table 2, where 𝒮 denotes the set returned by selectResidualGenerators. When γ=1, the aim is to fulfill the isolation property with as few MSO sets as possible, no matter the size of the MSO sets. As seen in Table 2 this results in few, but large, MSO sets. The smaller the γ, the more attention is paid to the size of the MSO sets. It turns out that 0.1≤γ≤0.6 gives a decent tradeoff between |𝒮| and ∑M∈𝒮|M| for the wind turbine model.Table 2
selectResidualGenerators sensitivity to parameter γ.
γ|𝒮|∑M∈𝒮|M|0.020820.116610.216610.316610.416610.516610.616610.716650.817720.916871.08108Withγ=0.5, the algorithm selected 16 MSO sets, that is, |𝒮|=16 and ∑M∈𝒮|M|=61. Of the 16 selected MSO sets, 7 contain algebraic equations only. The other 9 MSO sets contain both algebraic and differential equations. Thus, 7 of the 16 residual generators used in the final FDI system are static and the remaining 9 are dynamic. All 9 dynamic residual generators, due to the configuration of the algorithm, use integral causality. The total number of found residual generators is 34, that is, |𝒢|=34, see Section 5.5. Of these 34 residual generators, 18 are static and the remaining 16 are dynamic.


### 5.6.1. Fault Signature Matrix

Given an MSO setM, its fault signatureF(M), with respect to the faults in F, is defined as(17)F(M)={fi∈F:efi∈M}.
For instance, the fault signature of the MSO set M1={e26,e27}⊆ℳ is F(M1)={Δωg,m1,Δωg,m2}. A convenient representation of the fault signature of a set of MSO sets 𝒮={M1,M2,…,Mk} with respect to F is the fault signature matrix (FSM) S with elements defined by(18)Sij={x,iffj∈F(Mi),Mi∈M,0,else.
The FSM for the 16 MSO sets on which the selected residual generators are based is given in Table 3.Table 3
Fault signature matrix.
Δβ1Δβ2Δβ3ΔωgΔτgΔβ1,m1Δβ1,m2Δβ2,m1Δβ2,m2Δβ3,m1Δβ3,m2Δωr,m1Δωr,m2Δωg,m1Δωg,m2G1(M1)xxG2(M2)xxG3(M3)xxG4(M4)xxG5(M5)xxG6(M8)xG7(M11)xxxG8(M27)xxG9(M29)xxG10(M31)xxG11(M7)xG12(M6)xG13(M14)xxxG14(M28)xxG15(M30)xxG16(M32)xx


## 5.6.1. Fault Signature Matrix

Given an MSO setM, its fault signatureF(M), with respect to the faults in F, is defined as(17)F(M)={fi∈F:efi∈M}.
For instance, the fault signature of the MSO set M1={e26,e27}⊆ℳ is F(M1)={Δωg,m1,Δωg,m2}. A convenient representation of the fault signature of a set of MSO sets 𝒮={M1,M2,…,Mk} with respect to F is the fault signature matrix (FSM) S with elements defined by(18)Sij={x,iffj∈F(Mi),Mi∈M,0,else.
The FSM for the 16 MSO sets on which the selected residual generators are based is given in Table 3.Table 3
Fault signature matrix.
Δβ1Δβ2Δβ3ΔωgΔτgΔβ1,m1Δβ1,m2Δβ2,m1Δβ2,m2Δβ3,m1Δβ3,m2Δωr,m1Δωr,m2Δωg,m1Δωg,m2G1(M1)xxG2(M2)xxG3(M3)xxG4(M4)xxG5(M5)xxG6(M8)xG7(M11)xxxG8(M27)xxG9(M29)xxG10(M31)xxG11(M7)xG12(M6)xG13(M14)xxxG14(M28)xxG15(M30)xxG16(M32)xx


## 6. Fault Detection and Isolation

For fault detection and isolation, diagnostic tests based on the output from each of the 16 residual generators are constructed. Since no assumptions are made regarding the nature of the faults that should be detected, see Section2.2, nothing is known about the fault’s temporal properties, size, rate of occurrence, and so forth. Hence, we may not be able to fully exploit the potential of some general method for change detection as, for example, the CUSUM test, see, for example, [16].As said in Section3, we, however, assume that no-fault training data is available. To take advantage of this fact and also handle uncertainties in terms of modeling errors and measurement noise, we base our diagnostic tests on a comparison of the estimated probability distributions of no-fault and current residuals. The former probability distributions are estimated offline using the available no-fault training data and the latter online using current data. A clear advantage with this approach is that changes in mean and variance are handled in a unified way, since we consider the complete distribution of the residual.


### 6.1. Diagnostic Test Design

LetPNF be a discrete estimate of the probability distribution of a residual from no-fault data, and P a discrete estimate of the distribution of the same residual from present data, both having n bins. Then, the Kullback-Leibler (K-L) divergence [17] between P and PNF is given by(19)D(P∥PNF)=∑j=1nP(j)log⁡P(j)PNF(j),
where P(j) denotes the ith bin of the discrete distribution P.To apply the K-L divergence for construction of a diagnostic test, we proceed as follows. Given a representative batch of no-fault data𝒵NF, that is, in our case measurements of the variables in the set Z which contains the inputs and outputs to the model, we run the set of residual generators and obtain a set of residuals. For each residual ri, we then estimate its probability distribution and obtain PiNF, that is, actually PiNF≈P(Ri∣𝒵NF), where Ri is a stochastic variable, discretized in n bins, representing residual ri. As said, this procedure can be done offline. To estimate a probability distribution, we create a normalized histogram with n bins for the data from which the distribution should be estimated.Online, we continuously estimate the distribution of the current residualri using a sliding window containing N samples of ri. If we by Pit denote the estimated distribution of ri calculated at time t, that is, Pit≈P(Ri|𝒵t), where 𝒵t denotes the batch of data in the sliding window at time t, the diagnostic test is designed as(20)Ti(t)={1,ifD(Pit∥PiNF)≥Ji,0,else,
where Ji is the threshold for alarm. The K-L divergence D(Pit∥PiNF) is referred to as the test quantity of the diagnostic test Ti.


### 6.2. Fault Isolation Strategy

Due to uncertainties not captured by the given model nor present in the no-fault training data, the power of diagnostic tests is not ideal for all faults. That is, the probability of detection given a certain fault is not always 1. To take this into account, the isolation scheme will interpret an “x” in a certain row in Table3 as if the test may respond if the corresponding fault occurs and consequently no conclusions are drawn if a test does not respond, see [18].To obtain the total diagnosis statement from a set of alarming diagnostic tests, we simply match their fault signatures with the FSM given in Table3. For example, if only test T10 alarms, we look at the row corresponding to G10 and conclude that either fault Δβ1  orΔβ1,m2 are present. If then also T16 alarms, we combine the row corresponding to G16 with the row corresponding to G10 and conclude that fault Δβ1 must be present.To handle also multiple faults, we use the fault signatures in the original FSM in Table3 to create an extended FSM with fault signatures also for multiple faults. This is done by column-wise OR operations in the original FSM. For instance, the column in the FSM for the double fault Δωg,m1∧Δωg,m2 will get “x” in rows corresponding to G1, G7, G11, G12, and G13 and zeros elsewhere. In the fault isolation scheme, we first attempt to isolate all single faults using the original FSM in Table 3. If this does not succeed, we try to isolate double faults, and so forth.


## 6.1. Diagnostic Test Design

LetPNF be a discrete estimate of the probability distribution of a residual from no-fault data, and P a discrete estimate of the distribution of the same residual from present data, both having n bins. Then, the Kullback-Leibler (K-L) divergence [17] between P and PNF is given by(19)D(P∥PNF)=∑j=1nP(j)log⁡P(j)PNF(j),
where P(j) denotes the ith bin of the discrete distribution P.To apply the K-L divergence for construction of a diagnostic test, we proceed as follows. Given a representative batch of no-fault data𝒵NF, that is, in our case measurements of the variables in the set Z which contains the inputs and outputs to the model, we run the set of residual generators and obtain a set of residuals. For each residual ri, we then estimate its probability distribution and obtain PiNF, that is, actually PiNF≈P(Ri∣𝒵NF), where Ri is a stochastic variable, discretized in n bins, representing residual ri. As said, this procedure can be done offline. To estimate a probability distribution, we create a normalized histogram with n bins for the data from which the distribution should be estimated.Online, we continuously estimate the distribution of the current residualri using a sliding window containing N samples of ri. If we by Pit denote the estimated distribution of ri calculated at time t, that is, Pit≈P(Ri|𝒵t), where 𝒵t denotes the batch of data in the sliding window at time t, the diagnostic test is designed as(20)Ti(t)={1,ifD(Pit∥PiNF)≥Ji,0,else,
where Ji is the threshold for alarm. The K-L divergence D(Pit∥PiNF) is referred to as the test quantity of the diagnostic test Ti.


## 6.2. Fault Isolation Strategy

Due to uncertainties not captured by the given model nor present in the no-fault training data, the power of diagnostic tests is not ideal for all faults. That is, the probability of detection given a certain fault is not always 1. To take this into account, the isolation scheme will interpret an “x” in a certain row in Table3 as if the test may respond if the corresponding fault occurs and consequently no conclusions are drawn if a test does not respond, see [18].To obtain the total diagnosis statement from a set of alarming diagnostic tests, we simply match their fault signatures with the FSM given in Table3. For example, if only test T10 alarms, we look at the row corresponding to G10 and conclude that either fault Δβ1  orΔβ1,m2 are present. If then also T16 alarms, we combine the row corresponding to G16 with the row corresponding to G10 and conclude that fault Δβ1 must be present.To handle also multiple faults, we use the fault signatures in the original FSM in Table3 to create an extended FSM with fault signatures also for multiple faults. This is done by column-wise OR operations in the original FSM. For instance, the column in the FSM for the double fault Δωg,m1∧Δωg,m2 will get “x” in rows corresponding to G1, G7, G11, G12, and G13 and zeros elsewhere. In the fault isolation scheme, we first attempt to isolate all single faults using the original FSM in Table 3. If this does not succeed, we try to isolate double faults, and so forth.


## 7. Implementation Details

The final FDI system was implemented inSimulink according to the structure in Figure 2. The 16 residual generators were implemented as embedded MATLAB functions (EMF) in which the code was automatically generated from the structures obtained from the functions findComputationSequence and findResidualGenerators. The initial conditions for the states in the dynamic residual generators were derived from the corresponding sensor measurements, if available, otherwise, set to zero. For instance, θΔ(t0)=0, xβi1(t0)=(βi,m1(t0)+βi,m2(t0))/2, and ωg(t0)=(ωg,m1(t0)+ωg,m2(t0))/2. This may cause transients in the residuals, but this is not considered a problem.


### 7.1. Parameter Discussion

Although the aim is to keep the number of parameters in the automated design method at a minimum, there are nevertheless some parameters that must be set. This section lists the needed parameters and discusses their influence on the performance of the FDI system.


#### 7.1.1. Number of Histogram Bins and Size of Sliding Window

The number of binsn in the histograms used as distribution estimates, is a tradeoff between detection time, noise sensitivity, and complexity, in terms of computational power and memory. A large n results in fast detection, but on the other hand also in increased sensitivity for noise. Also, a large n requires more memory and involves more computations, in comparison with a smaller n.The sizeN of the sliding window used to batch data for creation of the histograms is a tradeoff between detection performance, noise sensitivity, and complexity. A large N will give the K-L test quantity lowpass characteristics, resulting in a smoothed K-L test quantity. This makes it possible to detect small changes in the estimated distributions. On the other hand, a large N requires more memory. The choice of N is also related to the number of bins n in the histograms and vice versa, since a small N, together with a large n, will result in a sparse histogram. Hence, the choices of N and n must match.For the wind turbine benchmark model, investigations, however, indicate that the method is quite insensitive to the values ofn and N if 15≤n≤50 and 2000≤N≤6000. A decent tradeoff, taking this into account and also the complexity issues discussed above, is n=20 and N=3000, which are the values used in the final FDI system.


#### 7.1.2. Alarm Thresholds

The choice of alarm thresholdsJi,i=1,2,…,16, is a tradeoff between detection time and the number of false detections. The higher the thresholds, the longer the detection time and the lower the rate of false alarms. The choice of alarm thresholds is related to the choices of n and N since both affect how sensitive a K-L test quantity is to noise, which in turn affects the rate of false detections. We aim at choosing the alarm thresholds so that the number of false detections is minimized, implying that the choice of Ji must match the choices of n and N. For the wind turbine benchmark model, the alarm thresholds were computed as a safety factor α=1.1 times the maximum value of the corresponding K-L test quantities from 100 simulations with no-fault data.


#### 7.1.3. Isolation Validation Time

The only parameter involved in the fault isolation is the isolation validation timetIval. This parameter is used to compensate for the fact that the power of diagnostic tests is not ideal, see Section 6.2. This may, for example, result in that the detection times, for the same fault, are different for different diagnostic tests. To handle this, we demand that the output from the isolation has been equal for tIval samples before reporting the isolation result. By choosing a large tIval, we decrease the probability of false isolation, but on the other hand, increase the isolation time. For the wind turbine benchmark model, the isolation validation time tIval was set to 4 samples.


## 7.1. Parameter Discussion

Although the aim is to keep the number of parameters in the automated design method at a minimum, there are nevertheless some parameters that must be set. This section lists the needed parameters and discusses their influence on the performance of the FDI system.


### 7.1.1. Number of Histogram Bins and Size of Sliding Window

The number of binsn in the histograms used as distribution estimates, is a tradeoff between detection time, noise sensitivity, and complexity, in terms of computational power and memory. A large n results in fast detection, but on the other hand also in increased sensitivity for noise. Also, a large n requires more memory and involves more computations, in comparison with a smaller n.The sizeN of the sliding window used to batch data for creation of the histograms is a tradeoff between detection performance, noise sensitivity, and complexity. A large N will give the K-L test quantity lowpass characteristics, resulting in a smoothed K-L test quantity. This makes it possible to detect small changes in the estimated distributions. On the other hand, a large N requires more memory. The choice of N is also related to the number of bins n in the histograms and vice versa, since a small N, together with a large n, will result in a sparse histogram. Hence, the choices of N and n must match.For the wind turbine benchmark model, investigations, however, indicate that the method is quite insensitive to the values ofn and N if 15≤n≤50 and 2000≤N≤6000. A decent tradeoff, taking this into account and also the complexity issues discussed above, is n=20 and N=3000, which are the values used in the final FDI system.


### 7.1.2. Alarm Thresholds

The choice of alarm thresholdsJi,i=1,2,…,16, is a tradeoff between detection time and the number of false detections. The higher the thresholds, the longer the detection time and the lower the rate of false alarms. The choice of alarm thresholds is related to the choices of n and N since both affect how sensitive a K-L test quantity is to noise, which in turn affects the rate of false detections. We aim at choosing the alarm thresholds so that the number of false detections is minimized, implying that the choice of Ji must match the choices of n and N. For the wind turbine benchmark model, the alarm thresholds were computed as a safety factor α=1.1 times the maximum value of the corresponding K-L test quantities from 100 simulations with no-fault data.


### 7.1.3. Isolation Validation Time

The only parameter involved in the fault isolation is the isolation validation timetIval. This parameter is used to compensate for the fact that the power of diagnostic tests is not ideal, see Section 6.2. This may, for example, result in that the detection times, for the same fault, are different for different diagnostic tests. To handle this, we demand that the output from the isolation has been equal for tIval samples before reporting the isolation result. By choosing a large tIval, we decrease the probability of false isolation, but on the other hand, increase the isolation time. For the wind turbine benchmark model, the isolation validation time tIval was set to 4 samples.


## 7.1.1. Number of Histogram Bins and Size of Sliding Window

The number of binsn in the histograms used as distribution estimates, is a tradeoff between detection time, noise sensitivity, and complexity, in terms of computational power and memory. A large n results in fast detection, but on the other hand also in increased sensitivity for noise. Also, a large n requires more memory and involves more computations, in comparison with a smaller n.The sizeN of the sliding window used to batch data for creation of the histograms is a tradeoff between detection performance, noise sensitivity, and complexity. A large N will give the K-L test quantity lowpass characteristics, resulting in a smoothed K-L test quantity. This makes it possible to detect small changes in the estimated distributions. On the other hand, a large N requires more memory. The choice of N is also related to the number of bins n in the histograms and vice versa, since a small N, together with a large n, will result in a sparse histogram. Hence, the choices of N and n must match.For the wind turbine benchmark model, investigations, however, indicate that the method is quite insensitive to the values ofn and N if 15≤n≤50 and 2000≤N≤6000. A decent tradeoff, taking this into account and also the complexity issues discussed above, is n=20 and N=3000, which are the values used in the final FDI system.


## 7.1.2. Alarm Thresholds

The choice of alarm thresholdsJi,i=1,2,…,16, is a tradeoff between detection time and the number of false detections. The higher the thresholds, the longer the detection time and the lower the rate of false alarms. The choice of alarm thresholds is related to the choices of n and N since both affect how sensitive a K-L test quantity is to noise, which in turn affects the rate of false detections. We aim at choosing the alarm thresholds so that the number of false detections is minimized, implying that the choice of Ji must match the choices of n and N. For the wind turbine benchmark model, the alarm thresholds were computed as a safety factor α=1.1 times the maximum value of the corresponding K-L test quantities from 100 simulations with no-fault data.


## 7.1.3. Isolation Validation Time

The only parameter involved in the fault isolation is the isolation validation timetIval. This parameter is used to compensate for the fact that the power of diagnostic tests is not ideal, see Section 6.2. This may, for example, result in that the detection times, for the same fault, are different for different diagnostic tests. To handle this, we demand that the output from the isolation has been equal for tIval samples before reporting the isolation result. By choosing a large tIval, we decrease the probability of false isolation, but on the other hand, increase the isolation time. For the wind turbine benchmark model, the isolation validation time tIval was set to 4 samples.


## 8. Evaluation and Results

To evaluate the performance of the proposed FDI system, we use the test cases described in [2]. The test cases are based on measured wind data and a sequence of injected faults. The set of injected faults, their time of occurrence and description, is specified in Table 4. The sequence contains 5 sensor faults and 3 actuator faults. Note that two faults are injected at 1000–1100 s, that is, at this time, we have the double fault Δωr,m2∧Δωg,m2.Table 4
Fault sequence.
FaultTime (s)DescriptionΔωr,m21000–1100ωr,m2=1.1ωr,m2Δωg,m21000–1100ωg,m2=0.9ωg,m2Δωr,m11500–1600ωr,m1=1.4 rad/sΔβ1,m12000–2100β1,m1=5∘Δβ2,m22300–2400β2,m2=1.2β2,m2Δβ3,m12600–2700β3,m1=10∘Δβ22900–3000ωn=ωn2, ζ=ζ2Δβ33400–3500ωn=ωn3, ζ=ζ3Δτg3800–3900τg=τg+2000 NmThe no-fault distributions used in the evaluation were estimated from residual data stemming from 100 Monte Carlo simulations with no-fault data, that is, inputs, corresponding to the measured variables inZ. Each set of no-fault data was generated with the provided wind turbine model with different noise realizations according to the model.


### 8.1. Results and Analysis

By means of Monte Carlo simulations, the FDI system was simulated 100 times with data from the provided wind turbine model setup according to the above-described test sequence.Based on the results from the 100 runs, the mean time of detectionT¯D, maximum time of detection TDmax, minimum time of detection TDmin, mean time of isolation T¯I, minimum time of isolation TImin, the total number of missed detections MD, and the total number of false detections FD, for each of the faults in the test sequence, were computed. The results along with the specified detection requirements [2], given in the row Req., are shown in Table 5, where all time values are given in seconds. Note that the specified requirements concern detection, and not isolation.Table 5
FDI Results. Time values in seconds.
Δωr,m2Δωg,m2Δωr,m1Δβ1,m1Δβ2,m2Δβ3,m1Δβ2Δβ3ΔτgReq.0.10.10.10.10.10.0860.05T¯D0.0400.160.0584.300.06951.5718.17.94TDmax0.040.270.076.100.0751.8819.057.98TDmin0.030.060.050.400.0650.5716.377.90T¯I—2.530.1288.850.1356.9531.847.99TImax—3.130.12114.260.13120.73111.968.03TImin—1.890.1113.170.1251.6217.917.95MD00000000FD00000000According to the row corresponding toTDmax in Table 5, all faults in the test sequence could be detected. For faults Δωg,m2∧Δωr,m2, Δβ1,m1, Δβ3,m1, detection requirements are met, by means of both T¯D and TDmax.All faults, except the double faultΔωg,m2∧Δωr,m2 could also be isolated. However, the mean time of isolation, T¯I, for some faults, for example, Δβ2,m2, is substantially longer than the corresponding mean time of detection. The main reason for this is that some tests respond slower to faults than other. As said, fault Δωg,m2∧Δωr,m2 could not be isolated. In fact, this fault is not uniquely isolable with the isolation strategy described in Section 6.2 since the test response of fault Δωg,m2∧Δωr,m2 is a subset of the test response of fault Δωg,m2∧Δωr,m1, see Table 3. Both faults Δωg,m2 and Δωr,m2 are, however, contained in the diagnosis statement computed after the faults have been detected.It seems like sensor faults, for example,Δβ3,m1 tend to be easier to detect than actuator faults as, for example, Δτg and Δβ2. One possible explanation may be that actuator faults in general cause changes in dynamics, whose effects are attenuated by modeling errors, noise, and so forth.As can be seen in the last two rows of Table5, there are no missed or false detections in any of the 100 test runs.


### 8.2. Case Study of FaultΔωr,m1

To study in more detail how the FDI system handles faults, we consider the sensor faultΔωr,m1. The fault corresponds to a fixed value of 1.4 rad/s being measured by sensor ωr,m1 and occurs at time t=1500 s. According to the FSM in Table 3, the residuals sensitive to fault Δωr,m1 are r2 and r13, obtained as output from the residual generators G2 and G13, respectively. These residuals along with the corresponding K-L test quantities are shown in Figure 4. As can be seen, both the residuals and the test quantities respond distinctively to the fault.Affected residualsr2 (a) and r13 (b), and the corresponding K-L test quantities D(P2t∥P2NF) (c) and D(P13t∥P13NF) (d) at the time of occurrence of fault Δωr,m1.
(a)(b)(c)(d)To also illustrate the isolation procedure, we show in Figure5 the result of the diagnostic tests T2 and T13 (a), the isolation result associated to faults Δωr,m1 (b) and Δωr,m2 (c), and also the signal that indicates when the isolation procedure is done (b, c). As can be seen in Figure 5, the first test that reacts to the fault is T2. This occurs at t=1500.23s. Since T2 is sensitive to both fault Δωr,m1 and Δωr,m2 and no other test has alarmed, the diagnosis statement is that either Δωr,m1 or Δωr,m2 may be present, and no fault can be isolated. At t=1502.55s, test T13 alarms. Test T13 is sensitive to faults Δωg, Δωr,m1, and Δωr,m2, and the updated total diagnosis statement based on that both T2 and T13 have alarmed thus becomes Δωr,m1, see Table 3. This occurs at time t=1502.59 s.Isolation procedure for faultΔωr,m1. (a) shows diagnostic tests T2 and T13. (b and c) show the isolation result corresponding to faults Δωr,m1 and Δωr,m2, respectively, and when the isolation procedure is done.
(a)(b)(c)


## 8.1. Results and Analysis

By means of Monte Carlo simulations, the FDI system was simulated 100 times with data from the provided wind turbine model setup according to the above-described test sequence.Based on the results from the 100 runs, the mean time of detectionT¯D, maximum time of detection TDmax, minimum time of detection TDmin, mean time of isolation T¯I, minimum time of isolation TImin, the total number of missed detections MD, and the total number of false detections FD, for each of the faults in the test sequence, were computed. The results along with the specified detection requirements [2], given in the row Req., are shown in Table 5, where all time values are given in seconds. Note that the specified requirements concern detection, and not isolation.Table 5
FDI Results. Time values in seconds.
Δωr,m2Δωg,m2Δωr,m1Δβ1,m1Δβ2,m2Δβ3,m1Δβ2Δβ3ΔτgReq.0.10.10.10.10.10.0860.05T¯D0.0400.160.0584.300.06951.5718.17.94TDmax0.040.270.076.100.0751.8819.057.98TDmin0.030.060.050.400.0650.5716.377.90T¯I—2.530.1288.850.1356.9531.847.99TImax—3.130.12114.260.13120.73111.968.03TImin—1.890.1113.170.1251.6217.917.95MD00000000FD00000000According to the row corresponding toTDmax in Table 5, all faults in the test sequence could be detected. For faults Δωg,m2∧Δωr,m2, Δβ1,m1, Δβ3,m1, detection requirements are met, by means of both T¯D and TDmax.All faults, except the double faultΔωg,m2∧Δωr,m2 could also be isolated. However, the mean time of isolation, T¯I, for some faults, for example, Δβ2,m2, is substantially longer than the corresponding mean time of detection. The main reason for this is that some tests respond slower to faults than other. As said, fault Δωg,m2∧Δωr,m2 could not be isolated. In fact, this fault is not uniquely isolable with the isolation strategy described in Section 6.2 since the test response of fault Δωg,m2∧Δωr,m2 is a subset of the test response of fault Δωg,m2∧Δωr,m1, see Table 3. Both faults Δωg,m2 and Δωr,m2 are, however, contained in the diagnosis statement computed after the faults have been detected.It seems like sensor faults, for example,Δβ3,m1 tend to be easier to detect than actuator faults as, for example, Δτg and Δβ2. One possible explanation may be that actuator faults in general cause changes in dynamics, whose effects are attenuated by modeling errors, noise, and so forth.As can be seen in the last two rows of Table5, there are no missed or false detections in any of the 100 test runs.


## 8.2. Case Study of FaultΔωr,m1

To study in more detail how the FDI system handles faults, we consider the sensor faultΔωr,m1. The fault corresponds to a fixed value of 1.4 rad/s being measured by sensor ωr,m1 and occurs at time t=1500 s. According to the FSM in Table 3, the residuals sensitive to fault Δωr,m1 are r2 and r13, obtained as output from the residual generators G2 and G13, respectively. These residuals along with the corresponding K-L test quantities are shown in Figure 4. As can be seen, both the residuals and the test quantities respond distinctively to the fault.Affected residualsr2 (a) and r13 (b), and the corresponding K-L test quantities D(P2t∥P2NF) (c) and D(P13t∥P13NF) (d) at the time of occurrence of fault Δωr,m1.
(a)(b)(c)(d)To also illustrate the isolation procedure, we show in Figure5 the result of the diagnostic tests T2 and T13 (a), the isolation result associated to faults Δωr,m1 (b) and Δωr,m2 (c), and also the signal that indicates when the isolation procedure is done (b, c). As can be seen in Figure 5, the first test that reacts to the fault is T2. This occurs at t=1500.23s. Since T2 is sensitive to both fault Δωr,m1 and Δωr,m2 and no other test has alarmed, the diagnosis statement is that either Δωr,m1 or Δωr,m2 may be present, and no fault can be isolated. At t=1502.55s, test T13 alarms. Test T13 is sensitive to faults Δωg, Δωr,m1, and Δωr,m2, and the updated total diagnosis statement based on that both T2 and T13 have alarmed thus becomes Δωr,m1, see Table 3. This occurs at time t=1502.59 s.Isolation procedure for faultΔωr,m1. (a) shows diagnostic tests T2 and T13. (b and c) show the isolation result corresponding to faults Δωr,m1 and Δωr,m2, respectively, and when the isolation procedure is done.
(a)(b)(c)


## 9. Conclusions

We have proposed an FDI system for the wind turbine benchmark designed by application of a generic automated design method, in which the numbers of required human decisions and assumptions are minimized. No specific adaptation of the method for the wind turbine benchmark was needed. The method contains in essence three steps: generation of candidate residual generators; residual generator selection; diagnostic test construction. The second step is done by means of greedy selection, and the third step is based on a novel method utilizing the K-L divergence.The performance of the proposed FDI system has been evaluated using the predefined test sequence for the wind turbine benchmark. The FDI system performs well; all faults in the test sequence were detected within feasible time and all faults, except a double fault, could be isolated shortly thereafter. In addition, there are no false or missed detections. A tailor-made, finely tuned, FDI system for the benchmark would probably perform better. However, in relation to the required design effort, and that no specific adaptation or tuning of the method to the benchmark was done, the performance is satisfactory.



---

*Source: 989873-2012-01-18.xml*