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.

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 aṡ𝑥𝜏𝑔(𝑡)=𝛼𝑔𝑐𝑥𝜏𝑔(𝑡)+𝛼𝑔𝑐𝜏𝑔,𝑟𝜏(𝑡),(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, 913]. 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×1515=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.

function SELECTRESIDUALGENERATORS ( , )
𝒮 =
𝒢 =
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 ( 𝒞 , ( 𝑍 𝑗 𝑖 , 𝐸 𝑗 𝑍 𝑖 ) )
(19):   else
(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 ( 𝒞 , ( 𝑊 𝑗 𝑖 , 𝐸 𝑗 𝑊 𝑖 ) )
(29):    else
(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.

Appendix

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 𝐴.

Acknowledgment

This work was supported by Scania CV AB, Södertälje, Sweden.