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.

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 Section 2. 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.

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 š›½š‘Ÿ and pitch angle output š›½š‘–, for each of the three blades and thus for š‘–=1,2,3, can be realized in state-space form using observable canonical form, see, for example, [6], as follows:Ģ‡š‘„š›½š‘–1(š‘”)=āˆ’2šœšœ”š‘›š‘„š›½š‘–1(š‘”)+š‘„š›½š‘–2(š‘”),(1a)Ģ‡š‘„š›½š‘–2(š‘”)=āˆ’šœ”2š‘›š‘„š›½š‘–1(š‘”)+šœ”2š‘›š›½š‘Ÿš›½(š‘”),(1b)š‘–(š‘”)=š‘„š›½š‘–1(š‘”),(1c)where šœ, šœ”š‘› are parameters, and š‘„š›½š‘–1, š‘„š›½š‘–2, state variables. Using the same approach, the relation between converter reference šœš‘”,š‘Ÿ and output šœš‘” can be written asĢ‡š‘„šœš‘”(š‘”)=āˆ’š›¼š‘”š‘š‘„šœš‘”(š‘”)+š›¼š‘”š‘šœš‘”,š‘Ÿšœ(š‘”),(2a)š‘”(š‘”)=š‘„šœš‘”(š‘”),(2b)where š›¼š‘”š‘ is a parameter, and š‘„šœš‘” 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ī€½š¹=Ī”š›½1,Ī”š›½2,Ī”š›½3,Ī”šœš‘”,Ī”šœ”š‘”,Ī”š›½1,š‘š1,Ī”š›½1,š‘š2,Ī”š›½2,š‘š1,Ī”š›½2,š‘š2,Ī”š›½3,š‘š1,Ī”š›½3,š‘š2,Ī”šœ”š‘Ÿ,š‘š1,Ī”šœ”š‘Ÿ,š‘š2,Ī”šœ”š‘”,š‘š1,Ī”šœ”š‘”,š‘š2ī€¾,(3) where Ī”š›½1, Ī”š›½2, Ī”š›½3, and Ī”šœš‘” are actuator faults, Ī”šœ”š‘” is a system fault, and Ī”š›½1,š‘š1, Ī”š›½1,š‘š2, Ī”š›½2,š‘š1, Ī”š›½2,š‘š2, Ī”š›½3,š‘š1, Ī”š›½3,š‘š2, Ī”šœ”š‘Ÿ,š‘š1, Ī”šœ”š‘Ÿ,š‘š2, Ī”šœ”š‘”,š‘š1, and Ī”šœ”š‘”,š‘š2 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 šœ”š‘› and šœ in (1a) and (1b). With the chosen approach, the fault is instead modeled as an additive signal in (1c) for š‘–=1, that is, š›½1=š‘„š›½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=š›æā‹…š‘„š›½11, where š›æā‰ 1, which can be equivalently described by š›½1=š‘„š›½11+Ī”š›½1, where Ī”š›½1=š‘„š›½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 š›½š‘Ÿ is fed to all three pitch systems (1a)ā€“(1c), that is, š›½š‘–,š‘Ÿ=š›½š‘Ÿ for š‘–=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š›½š‘–,š‘Ÿ=š›½š‘Ÿ+š›½š‘–āˆ’ī‚µš›½š‘–,š‘š1+š›½š‘–,š‘š22ī‚¶,š‘–=1,2,3,(4) where š›½š‘– is given by (1a)ā€“(1c), and š›½š‘–,š‘š1 and š›½š‘–,š‘š2 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 š›½š‘–,š‘Ÿ and š›½š‘Ÿ 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:š‘’1āˆ¶šœš‘Ÿ=3ī“š‘–=1šœŒšœ‹š‘…3š¶š‘žī€·šœ†,š›½š‘–ī€øš‘£2š‘¤6,š‘’2šœ”āˆ¶šœ†=š‘Ÿš‘…š‘£š‘¤,š‘’3,š‘’5,š‘’7āˆ¶Ģ‡š‘„š›½š‘–1=āˆ’2šœšœ”š‘›š‘„š›½š‘–1+š‘„š›½š‘–2š‘’,š‘–=1,2,3,4,š‘’6,š‘’8āˆ¶Ģ‡š‘„š›½š‘–2=āˆ’šœ”2š‘›š‘„š›½š‘–1+šœ”2š‘›š›½š‘–,š‘Ÿš‘’,š‘–=1,2,3,9,š‘’10,š‘’11āˆ¶š›½š‘–=š‘„š›½š‘–1+Ī”š›½š‘–š‘’,š‘–=1,2,3,12āˆ¶Ģ‡šœ”š‘”=ī‚µšœ‚š‘‘š‘”šµš‘‘š‘”š‘š‘”š½š‘”ī‚¶šœ”š‘Ÿ+īƒ©āˆ’ī€·šœ‚š‘‘š‘”šµš‘‘š‘”/š‘2š‘”ī€øāˆ’šµš‘”š½š‘”īƒŖšœ”š‘”+ī‚µšœ‚š‘‘š‘”š¾š‘‘š‘”š‘š‘”š½š‘”ī‚¶šœƒĪ”āˆ’ī‚µ1š½š‘”ī‚¶šœš‘”+Ī”šœ”š‘”,š‘’13āˆ¶Ģ‡šœ”š‘Ÿī‚µšµ=āˆ’š‘‘š‘”āˆ’šµš‘Ÿš½š‘Ÿī‚¶šœ”š‘Ÿ+ī‚µšµš‘‘š‘”š‘š‘”š½š‘Ÿī‚¶šœ”š‘”āˆ’ī‚µš¾š‘‘š‘”š½š‘Ÿī‚¶šœƒĪ”+ī‚µ1š½š‘Ÿī‚¶šœš‘Ÿ,š‘’14āˆ¶Ģ‡šœƒĪ”=šœ”š‘Ÿāˆ’ī‚µ1š‘š‘”ī‚¶šœ”š‘”,š‘’15āˆ¶Ģ‡š‘„šœš‘”=āˆ’š›¼š‘”š‘š‘„šœš‘”+š›¼š‘”š‘šœš‘”,š‘Ÿ,š‘’16āˆ¶šœš‘”=š‘„šœš‘”+Ī”šœš‘”,š‘’17āˆ¶š‘ƒš‘”=šœ‚š‘”š‘šœ”š‘”šœš‘”,š‘’18,š‘’20,š‘’22āˆ¶š›½š‘–,š‘š1=š›½š‘–+Ī”š›½š‘–,š‘š1š‘’,š‘–=1,2,3,19,š‘’21,š‘’23āˆ¶š›½š‘–,š‘š2=š›½š‘–+Ī”š›½š‘–,š‘š2š‘’,š‘–=1,2,3,24,š‘’25āˆ¶šœ”š‘Ÿ,š‘šš‘—=šœ”š‘Ÿ+Ī”šœ”š‘Ÿ,š‘šš‘—š‘’,š‘—=1,2,26,š‘’27āˆ¶šœ”š‘”,š‘šš‘—=šœ”š‘”+Ī”šœ”š‘”,š‘šš‘—š‘’,š‘—=1,2,28āˆ¶š‘£š‘¤,š‘š=š‘£š‘¤,š‘’29āˆ¶šœš‘”,š‘š=šœš‘”,š‘’30āˆ¶š‘ƒš‘”,š‘š=š‘ƒš‘”,š‘’31,š‘’32,š‘’33āˆ¶š›½š‘–,š‘Ÿ=š›½š‘Ÿ+š›½š‘–āˆ’ī‚µš›½š‘–,š‘š1+š›½š‘–,š‘š22ī‚¶,š‘–=1,2,3.(5)

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 Figure 2.

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 Section 6.2. The method contains three essential steps:(1)generate candidate residual generators,(2)select and realize residual generators,(3)construct diagnostic tests,

see Figure 3. 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.

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 (šø,š‘‹,š·,š‘Œ) to be a set of differential and algebraic equations šø={š‘’1,š‘’2,ā€¦,š‘’š‘›šø} containing unknown variables š‘‹={š‘„1,š‘„2,ā€¦,š‘„š‘›š‘‹}, differential variables š·={Ģ‡š‘„1,Ģ‡š‘„2,ā€¦,Ģ‡š‘„š‘›š‘‹}, and known variables š‘Œ={š‘¦1,š‘¦2,ā€¦,š‘¦š‘›š‘Œ}. The equations in šø are, without loss of generality, assumed to be on the formš‘’š‘–āˆ¶š‘“š‘–(Ģ‡š±,š±,š²)=0,š‘–=1,2,ā€¦,š‘›šø,(6) where Ģ‡š±, š± and š², are vectors of the variables in š·, š‘‹, and š‘Œ, 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:š‘‰š’ž=ī€·ī€·1,šø1ī€ø,ī€·š‘‰2,šø2ī€øī€·š‘‰,ā€¦,š‘˜,šøš‘˜ī€øī€ø,(7) where š‘‰š‘–ā‹ƒš·āŠ†š‘‹ and šøš‘–āŠ†šø. The computation sequence š’ž implies that first the variables in š‘‰1 are computed from equations šø1, then the variables in š‘‰2 from equations šø2, possibly using the already computed variables in š‘‰1, and so forth.

For an example, consider the computation sequence:šœš’ž=ī€·ī€·ī€½š‘”ī€¾,ī€½š‘’29,šœ”ī€¾ī€øī€·ī€½š‘Ÿī€¾,ī€½š‘’24,Ģ‡šœƒī€¾ī€øī€·ī€½Ī”ī€¾,ī€½š‘’14,ī€¾ī€øī€·ī€½Ģ‡šœ”š‘”ī€¾,ī€½š‘’12,ī€¾ī€øī€ø(8) 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 šœš‘” using equation š‘’29, then variable šœ”š‘Ÿ is computed using equation š‘’24, and so on, ending with computation of variable Ģ‡šœ”š‘”, or in fact šœ”š‘” from equation š‘’12.

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)š‘Ÿ=šœ”š‘Ÿ,š‘š1,Ģ‡šœƒ(9b)Ī”=šœ”š‘Ÿāˆ’ī‚µ1š‘š‘”ī‚¶šœ”š‘”,(9c)Ģ‡šœ”š‘”=ī‚µšœ‚š‘‘š‘”šµš‘‘š‘”š‘š‘”š½š‘”ī‚¶šœ”š‘Ÿ+īƒ©āˆ’ī€·šœ‚š‘‘š‘”šµš‘‘š‘”/š‘2š‘”ī€øāˆ’šµš‘”š½š‘”īƒŖšœ”š‘”+ī‚µšœ‚š‘‘š‘”š¾š‘‘š‘”š‘š‘”š½š‘”ī‚¶šœƒĪ”āˆ’ī‚µ1š½š‘”ī‚¶šœš‘”.(9d)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 šœ”š‘” are computed using equations š‘’14 and š‘’12, respectively.

4.1.2. Sequential Residual Generator

Having computed the unknown variables in š‘‰1ā‹ƒš‘‰2ā‹ƒā‹Æā‹ƒš‘‰š‘˜, according to the computation sequence š’ž in (7), a residual can be obtained by evaluating a redundant equation š‘’, that is, š‘’āˆˆšøā§µšø1ā‹ƒšø2ā‹Æā‹ƒšøš‘˜ with varš‘‹(š‘’)āŠ†varš‘‹(šø1ā‹ƒšø2ā‹Æā‹ƒšøš‘˜), where the operator varš‘‹(ā‹…) returns the unknown variables that are contained in an equation set. A residual generator based on a computation sequence š’ž and redundant equation š‘’ is referred to as a sequential residual generator.

The computation sequence (8) together with equation š‘’26 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 š‘Ÿ=šœ”š‘”,š‘š1āˆ’šœ”š‘”.

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 a candidate 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 Section 2.4, with equations šø={š‘’1,š‘’2,ā€¦,š‘’33}, unknown variables:ī€½šœš‘‹=š‘Ÿ,š›½1,šœ†,š‘£š‘¤,š›½2,š›½3,šœ”š‘Ÿ,š‘„š›½11,š‘„š›½12,š›½1,š‘Ÿ,š‘„š›½21,š‘„š›½22,š›½2,š‘Ÿ,š‘„š›½31,š‘„š›½32,š›½3,š‘Ÿ,šœ”š‘”,šœƒĪ”,šœš‘”,š‘„šœš‘”,š‘ƒš‘”ī‚‡,(10) and known, that is, measured, variables: ī€½š›½š‘Œ=š‘Ÿ,šœš‘”,š‘Ÿ,š›½1,š‘š1,š›½1,š‘š2,š›½2,š‘š1,š›½2,š‘š2,š›½3,š‘š1,š›½3,š‘š2,šœ”š‘Ÿ,š‘š1,šœ”š‘Ÿ,š‘š2,šœ”š‘”,š‘š1,šœ”š‘”,š‘š2,š‘£š‘¤,š‘š,šœš‘”,š‘š,š‘ƒš‘”,š‘šī€¾.(11) 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, let š‘’š‘“š‘– denote the equation in an equation set šø containing fault š‘“š‘–, for example, š‘’Ī”š›½1,š‘š1=š‘’18, see Section 2. Note that if a fault š‘“š‘— occurs in more than one equation, the fault š‘“š‘— can be replaced with a new variable š‘„š‘“š‘— in these equations, and the equation š‘„š‘“š‘—=š‘“š‘— added to the equation set. This added equation will then be the only equation where š‘“š‘— occurs. To proceed, let (ā‹…)+ denote an operator extracting the overdetermined part of a set of equations. According to [14], a fault š‘“š‘– is structurally detectable in the equation set šø if š‘’š‘“š‘–āˆˆ(šø)+ and structurally isolable from fault š‘“š‘— in the equation set šø if š‘’š‘“š‘–āˆˆ(šø)+ and š‘’š‘“š‘—āˆ‰(šø)+.

For an example, consider the equation set š‘€={š‘’26,š‘’29,š‘’24,š‘’14,š‘’12} containing the residual equation and equations from the computation sequence (7), studied in Section 4.1.1. First, we note that the equation set š‘€ is an MSO set due to the property of sequential residual generators mentioned in Section 4.1.3. Further, since š‘€ is an MSO set, it holds that (š‘€)+=š‘€, see, for example, [3]. Thus, it can for instance be deduced that fault Ī”šœ”š‘” is structurally isolable from fault Ī”š›½1,š‘š1 in š‘€, since š‘’Ī”šœ”š‘”=š‘’12, š‘’Ī”š›½1,š‘š1=š‘’18, and it holds that š‘’12āˆˆš‘€ and š‘’18āˆ‰š‘€, 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 Section 2.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 š¹ the set of considered faults. Let š‘“š‘–,š‘“š‘—āˆˆš¹ and define the isolation class for (š‘“š‘–,š‘“š‘—) asš¼š‘“š‘–,š‘“š‘—=ī‚†š‘€āˆˆā„³āˆ¶š‘’š‘“š‘–āˆˆ(š‘€)+āˆ§š‘’š‘“š‘—āˆ‰(š‘€)+ī‚‡,(12) that is, š¼š‘“š‘–,š‘“š‘— contains the MSO sets in ā„³ in which fault š‘“š‘– is structurally isolable from fault š‘“š‘—. Further, letī‚†š¼ā„=š‘“š‘–,š‘“š‘—ī€·š‘“āˆ¶āˆ€š‘–,š‘“š‘—ī€øāˆˆš¹Ć—š¹,š‘“š‘–ā‰ š‘“š‘—ī‚‡(13) denote the set of all isolation classes needed for full isolation of all faults in š¹. 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) 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 āˆ‘š‘€āˆˆš’®|š‘€|. 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 š‘€āˆˆš’®.

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 a utility 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 the isolation class coverage of a set of MSO sets š’®āŠ†ā„³ asī‚†š¼šœŽ(š’®)=š‘“š‘–,š‘“š‘—āˆˆā„āˆ¶āˆƒš‘€āˆˆš’®,š‘€āˆˆš¼š‘“š‘–,š‘“š‘—ī‚‡,(15) 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 set š‘€, we will use the utility function:šœ‡ā„ī‚µ||||(š‘€)=š›¾šœŽ({š‘€})||ā„||ī‚¶īƒ©||š‘€||+(1āˆ’š›¾)1āˆ’||ī‚Šš‘€||īƒŖ,(16) where ī‚Šš‘€ is the MSO set in ā„³ with the largest cardinality, and š›¾, 0ā‰¤š›¾ā‰¤1, a weighting factor. The term |šœŽ({š‘€})|/|ā„| in (16) tells how many of the isolation classes in ā„ are covered by the MSO set š‘€. 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āˆ’(|š‘€|/|š‘€|) relates the cardinality of š‘€ 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 function SELECTRESIDUALGENERATORS 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.

ā€ƒ š’® āˆ¶ = āˆ…
ā€ƒ š’¢ āˆ¶ = āˆ…
ā€ƒwhile ā„ ā‰  āˆ… ā€‰ā€‰do
ā€ƒā€ƒ š‘€ āˆ¶ = a r g m a x š‘€ āˆˆ ā„³ šœ‡ ā„ ( š‘€ )
ā€ƒā€ƒ š‘„ āˆ¶ = v a r š‘‹ ( š‘€ )
ā€ƒā€ƒ šŗ āˆ¶ = āˆ…
ā€ƒā€ƒfor allā€‰ā€‰ š‘’ āˆˆ š‘€ ā€‰ā€‰do
ā€ƒā€ƒā€ƒā€‚ š‘€ ī…ž āˆ¶ = M ā§µ { š‘’ }
ā€ƒā€ƒā€ƒā€‚ š’ž āˆ¶ = ā€‰FINDCOMPUTATIONSEQUENCE ( š‘€ ī…ž , š‘„ )
ā€ƒā€ƒā€ƒā€‚ if š’ž ā‰  āˆ… ā€‰ā€‰then
ā€ƒā€ƒā€ƒā€ƒā€‚ā€‚ šŗ āˆ¶ = šŗ āˆŖ { ( š’ž , š‘’ ) }
ā€ƒā€ƒā€ƒā€‚ end if
ā€ƒā€ƒend for
ā€ƒā€ƒifā€‰ā€‰ šŗ ā‰  āˆ… ā€‰ā€‰ā€‰then
ā€ƒā€ƒā€ƒā€ƒā€‚ š’® āˆ¶ = š’® āˆŖ { š‘€ }
ā€ƒā€ƒā€ƒā€ƒā€‚ š’¢ āˆ¶ = š’¢ āˆŖ { šŗ }
ā€ƒā€ƒend if
ā€ƒā€ƒ ā„³ āˆ¶ = ā„³ ā§µ { š‘€ }
ā€ƒā€ƒ ā„ āˆ¶ = ā„ ā§µ šœŽ ( { š‘€ } )
ā€ƒend while
ā€ƒreturn ( š’® , š’¢ )
end function

(1):ā€‰ā€‰ā€‚ function FINDCOMPUTATIONSEQUENCE ( šø ī…ž , š‘‹ ī…ž )
(2):ā€ƒā€ƒ š’ž āˆ¶ = āˆ…
(3):ā€ƒā€ƒ š‘† āˆ¶ = FINDALLSCCS ( šø ī…ž , š‘‹ ī…ž )
(4):ā€ƒā€‰ā€‰ā€‚ for š‘– = 1 , 2 , ā€¦ , | š‘† | ā€‰ā€‰do
(5):ā€ƒā€ƒā€‰ā€‰ ( šø š‘– , š‘‹ š‘– ) āˆ¶ = š‘† ( š‘– )
(6):ā€ƒā€ƒā€‰ā€‰ š· š‘– āˆ¶ = DIFF ( š‘‹ š‘– )
(7):ā€ƒā€ƒā€‰ā€‰ š‘ š‘– āˆ¶ = v a r š· ( šø š‘– ) āˆ© š· š‘–
(8):ā€ƒā€ƒā€‰ā€‰ š‘Š š‘– āˆ¶ = š‘‹ š‘– ā§µ UNDIFF ( š‘ š‘– )
(9):ā€ƒā€ƒā€‰ā€‰if not ISINITCONDKNOWN ( š‘ š‘– ) ā€‰ā€‰then
(10):ā€ƒā€ƒā€ƒreturnā€‰ā€‰ āˆ…
(11):ā€ƒā€ƒend If
(12):ā€ƒā€ƒ šø š‘ š‘– āˆ¶ = GETDIFFERENTIALEQUATIONS ( šø š‘– , š‘ š‘– )
(13):ā€ƒā€ƒ šø š‘Š š‘– āˆ¶ = šø š‘– ā§µ šø š‘ š‘–
(14):ā€ƒā€ƒ š‘† š‘ š‘– āˆ¶ = FINDALLSCCS ( šø š‘ š‘– , š‘ š‘– )
(15):ā€ƒā€ƒfor š‘— = 1 , 2 , ā€¦ , | š‘† š‘ š‘– | ā€‰ā€‰do
(16):ā€ƒā€ƒā€ƒ ( šø š‘— š‘ š‘– , š‘ š‘— š‘– ) āˆ¶ = š‘† š‘ š‘– ( š‘— )
(17):ā€ƒā€ƒā€ƒif ISTOOLSOLVABLE ( š‘ š‘— š‘– , šø š‘— š‘ š‘– ) ā€‰ā€‰then
(18):ā€ƒā€ƒā€ƒā€ƒ APPEND ( š’ž , ( š‘ š‘— š‘– , šø š‘— š‘ š‘– ) )
(20):ā€ƒā€ƒā€ƒā€ƒreturnā€‰ā€‰ āˆ…
(21):ā€ƒā€ƒā€ƒend if
(22):ā€ƒā€ƒend for
(23):ā€ƒā€ƒif ISJUSTDETERMINED ( šø š‘Š š‘– , š‘Š š‘– ) ā€‰ā€‰then
(24):ā€ƒā€ƒā€ƒ š‘† š‘Š š‘– āˆ¶ = FINDALLSCCS ( šø š‘Š š‘– , š‘Š š‘– )
(25):ā€ƒā€ƒā€ƒfor š‘— = 1 , 2 , ā€¦ , | š‘† š‘Š š‘– | ā€‰ā€‰do
(26):ā€ƒā€ƒā€ƒā€ƒ ( šø š‘— š‘Š š‘– , š‘Š š‘— š‘– ) āˆ¶ = š‘† š‘Š š‘– ( š‘— )
(27):ā€ƒā€ƒā€ƒā€ƒif ISTOOLSOLVABLE( š‘Š š‘— š‘– , šø š‘— š‘Š š‘– ) ā€‰ā€‰then
(28):ā€ƒā€ƒā€ƒā€ƒā€ƒAPPEND ( š’ž , ( š‘Š š‘— š‘– , šø š‘— š‘Š š‘– ) )
(30):ā€ƒā€ƒā€ƒā€ƒā€ƒā€‚ returnā€‰ā€‰ āˆ…
(31): ā€ƒā€ƒā€ƒā€ƒend if
(32): ā€ƒā€ƒā€ƒend for
(33): ā€ƒā€ƒelse
(34): ā€ƒā€ƒā€ƒreturnā€‰ā€‰ āˆ…
(35): ā€ƒā€ƒend if
(36):ā€ƒā€‚ end for
(37):ā€ƒā€‚ returnā€‰ā€‰ š’ž
(38):ā€‚ā€‰ā€‰end function

For 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 Section 5.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 functions SELECTRESIDUALGENERATORS 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 of SELECTRESIDUALGENERATORS to the parameter š›¾, that is, the tradeoff between properties 2 and 3 stated in Section 5.3 and reflected by |š‘€| and āˆ‘š‘€āˆˆš’®|š‘€|, 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 āˆ‘š‘€āˆˆš’®|š‘€| for the wind turbine model.

With š›¾=0.5, the algorithm selected 16 MSO sets, that is, |š’®|=16 and āˆ‘š‘€āˆˆš’®|š‘€|=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 set š‘€, its fault signature š¹(š‘€), with respect to the faults in š¹, is defined asš¹ī€½š‘“(š‘€)=š‘–āˆˆš¹āˆ¶š‘’š‘“š‘–ī€¾āˆˆš‘€.(17) For instance, the fault signature of the MSO set š‘€1={š‘’26,š‘’27}āŠ†ā„³ is š¹(š‘€1)={Ī”šœ”š‘”,š‘š1,Ī”šœ”š‘”,š‘š2}. A convenient representation of the fault signature of a set of MSO sets š’®={š‘€1,š‘€2,ā€¦,š‘€š‘˜} with respect to š¹ is the fault signature matrix (FSM) š‘† with elements defined byš‘†š‘–š‘—=ī‚»x,ifš‘“š‘—ī€·š‘€āˆˆš¹š‘–ī€ø,š‘€š‘–āˆˆā„³,0,else.(18) The FSM for the 16 MSO sets on which the selected residual generators are based is given in Table 3.

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 Section 2.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 Section 3, 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

Let š‘ƒNF be a discrete estimate of the probability distribution of a residual from no-fault data, and š‘ƒ a discrete estimate of the distribution of the same residual from present data, both having š‘› bins. Then, the Kullback-Leibler (K-L) divergence [17] between š‘ƒ and š‘ƒNF is given byš·ī€·š‘ƒā€–š‘ƒNFī€ø=š‘›ī“š‘—=1š‘ƒ(š‘—)logš‘ƒ(š‘—)š‘ƒNF(š‘—),(19) where š‘ƒ(š‘—) denotes the š‘–th bin of the discrete distribution š‘ƒ.

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 š‘ 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 š‘Ÿš‘–, we then estimate its probability distribution and obtain š‘ƒNFš‘–, that is, actually š‘ƒNFš‘–ā‰ˆš‘ƒ(š‘…š‘–āˆ£š’µNF), where š‘…š‘– is a stochastic variable, discretized in š‘› bins, representing residual š‘Ÿš‘–. As said, this procedure can be done offline. To estimate a probability distribution, we create a normalized histogram with š‘› bins for the data from which the distribution should be estimated.

Online, we continuously estimate the distribution of the current residual š‘Ÿš‘– using a sliding window containing š‘ samples of š‘Ÿš‘–. If we by š‘ƒš‘”š‘– denote the estimated distribution of š‘Ÿš‘– calculated at time š‘”, that is, š‘ƒš‘”š‘–ā‰ˆš‘ƒ(š‘…š‘–|š’µš‘”), where š’µš‘” denotes the batch of data in the sliding window at time š‘”, the diagnostic test is designed asš‘‡š‘–ī‚»ī€·š‘ƒ(š‘”)=1,ifš·š‘”š‘–ā€–š‘ƒNFš‘–ī€øā‰„š½š‘–,0,else,(20) where š½š‘– is the threshold for alarm. The K-L divergence š·(š‘ƒš‘”š‘–ā€–š‘ƒNFš‘–) is referred to as the test quantity of the diagnostic test š‘‡š‘–.

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 Table 3 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 Table 3. For example, if only test š‘‡10 alarms, we look at the row corresponding to šŗ10 and conclude that either fault Ī”š›½1ā€‰ā€‰or Ī”š›½1,š‘š2 are present. If then also š‘‡16 alarms, we combine the row corresponding to šŗ16 with the row corresponding to šŗ10 and conclude that fault Ī”š›½1 must be present.

To handle also multiple faults, we use the fault signatures in the original FSM in Table 3 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 Ī”šœ”š‘”,š‘š1āˆ§Ī”šœ”š‘”,š‘š2 will get ā€œxā€ in rows corresponding to šŗ1, šŗ7, šŗ11, šŗ12, and šŗ13 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 in SIMULINK 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, šœƒĪ”(š‘”0)=0, š‘„š›½š‘–1(š‘”0)=(š›½š‘–,š‘š1(š‘”0)+š›½š‘–,š‘š2(š‘”0))/2, and šœ”š‘”(š‘”0)=(šœ”š‘”,š‘š1(š‘”0)+šœ”š‘”,š‘š2(š‘”0))/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 bins š‘› 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 š‘› results in fast detection, but on the other hand also in increased sensitivity for noise. Also, a large š‘› requires more memory and involves more computations, in comparison with a smaller š‘›.

The size š‘ 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 š‘ 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 š‘ requires more memory. The choice of š‘ is also related to the number of bins š‘› in the histograms and vice versa, since a small š‘, together with a large š‘›, will result in a sparse histogram. Hence, the choices of š‘ and š‘› must match.

For the wind turbine benchmark model, investigations, however, indicate that the method is quite insensitive to the values of š‘› and š‘ if 15ā‰¤š‘›ā‰¤50 and 2000ā‰¤š‘ā‰¤6000. A decent tradeoff, taking this into account and also the complexity issues discussed above, is š‘›=20 and š‘=3000, which are the values used in the final FDI system.

7.1.2. Alarm Thresholds

The choice of alarm thresholds š½š‘–,š‘–=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 š‘› and š‘ 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 š½š‘– must match the choices of š‘› and š‘. 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 time š‘”valš¼. 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 š‘”valš¼ samples before reporting the isolation result. By choosing a large š‘”valš¼, 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 š‘”valš¼ 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 Ī”šœ”š‘Ÿ,š‘š2āˆ§Ī”šœ”š‘”,š‘š2.

The 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 in š‘. 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 detection š‘‡š·, maximum time of detection š‘‡š·max, minimum time of detection š‘‡š·min, mean time of isolation š‘‡š¼, minimum time of isolation š‘‡š¼min, 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.

According to the row corresponding to š‘‡š·max in Table 5, all faults in the test sequence could be detected. For faults Ī”šœ”š‘”,š‘š2āˆ§Ī”šœ”š‘Ÿ,š‘š2, Ī”š›½1,š‘š1, Ī”š›½3,š‘š1, detection requirements are met, by means of both š‘‡š· and š‘‡š·max.

All faults, except the double fault Ī”šœ”š‘”,š‘š2āˆ§Ī”šœ”š‘Ÿ,š‘š2 could also be isolated. However, the mean time of isolation, š‘‡š¼, for some faults, for example, Ī”š›½2,š‘š2, 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 Ī”šœ”š‘”,š‘š2āˆ§Ī”šœ”š‘Ÿ,š‘š2 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 Ī”šœ”š‘”,š‘š2āˆ§Ī”šœ”š‘Ÿ,š‘š2 is a subset of the test response of fault Ī”šœ”š‘”,š‘š2āˆ§Ī”šœ”š‘Ÿ,š‘š1, see Table 3. Both faults Ī”šœ”š‘”,š‘š2 and Ī”šœ”š‘Ÿ,š‘š2 are, however, contained in the diagnosis statement computed after the faults have been detected.

It seems like sensor faults, for example, Ī”š›½3,š‘š1 tend to be easier to detect than actuator faults as, for example, Ī”šœš‘” 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 Table 5, there are no missed or false detections in any of the 100 test runs.

8.2. Case Study of Fault Ī”šœ”š‘Ÿ,š‘š1

To study in more detail how the FDI system handles faults, we consider the sensor fault Ī”šœ”š‘Ÿ,š‘š1. The fault corresponds to a fixed value of 1.4ā€‰rad/s being measured by sensor šœ”š‘Ÿ,š‘š1 and occurs at time š‘”=1500ā€‰s. According to the FSM in Table 3, the residuals sensitive to fault Ī”šœ”š‘Ÿ,š‘š1 are š‘Ÿ2 and š‘Ÿ13, obtained as output from the residual generators šŗ2 and šŗ13, 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.

To also illustrate the isolation procedure, we show in Figure 5 the result of the diagnostic tests š‘‡2 and š‘‡13 (a), the isolation result associated to faults Ī”šœ”š‘Ÿ,š‘š1 (b) and Ī”šœ”š‘Ÿ,š‘š2 (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 š‘‡2. This occurs at š‘”=1500.23s. Since š‘‡2 is sensitive to both fault Ī”šœ”š‘Ÿ,š‘š1 and Ī”šœ”š‘Ÿ,š‘š2 and no other test has alarmed, the diagnosis statement is that either Ī”šœ”š‘Ÿ,š‘š1 or Ī”šœ”š‘Ÿ,š‘š2 may be present, and no fault can be isolated. At š‘”=1502.55s, test š‘‡13 alarms. Test š‘‡13 is sensitive to faults Ī”šœ”š‘”, Ī”šœ”š‘Ÿ,š‘š1, and Ī”šœ”š‘Ÿ,š‘š2, and the updated total diagnosis statement based on that both š‘‡2 and š‘‡13 have alarmed thus becomes Ī”šœ”š‘Ÿ,š‘š1, see Table 3. This occurs at time š‘”=1502.59ā€‰s.

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.


Algorithm for Finding a Computation Sequence

To make the paper more self-contained, the function FINDCOMPUTATIONSEQUENCE described in [5] is given as Algorithm 2. The function takes a just-determined equation set šøā€²āŠ†šø and a set of unknown variables š‘‹ā€²āŠ†š‘‹, and it returns an ordered set š’ž as output. The algorithm assumes availability of a computational tool in the form of a algebraic equation (AE) solver such as, for example, Maple, see [5] for a thorough discussion regarding this. The function FINDALLSCCS is assumed to return an ordered set of equation and variable pairs, where each pair corresponds to a strongly connected component (SCC) of the structure of the equation set with respect to the variable set. There are efficient algorithms for finding SCCs in directed graphs, for example, the DM decomposition [19]. In MATLAB, the DM decomposition is implemented in the function dmperm. Other functions used in FINDCOMPUTATIONSEQUENCE are as follows.(i)DIFF and UNDIFF takes a variable set as input and returns its differentiated and undifferentiated correspondence.(ii)ISINITCONDKNOWN determines if the initial conditions of the given variables are known and consistent, and the function ISDIFFERENTIABLE determines if the given variables can be differentiated with the available differentiation tool.(iii)ā€‰ISJUSTDETERMINED is used to determine if the structure of the given equation set, with respect to the given variable set, is just determined. This is essential, since, otherwise, the computation of SCCs makes no sense.(iv)GETDIFFERENTIALEQUATIONS takes a set of equations and a set of differentiated variables as input and returns the differential equations in which the given differentiated variables are contained.(v)ISTOOLSOLVABLE determines if the available algebraic equation solver can solve the given equations for the given set of variables.(vi)APPEND takes an ordered set and an element as input and simply appends the element to the end of the set.(vii)The operator |ā‹…|, taking a set as input, is assumed to return the number of elements in the set and the notion š“(š‘–) is used to refer to the š‘–th element of the ordered set š“.


This work was supported by Scania CV AB, SƶdertƤlje, Sweden.