diff --git a/Examples/README.md b/Examples/README.md new file mode 100644 index 0000000..840e04b --- /dev/null +++ b/Examples/README.md @@ -0,0 +1,71 @@ +# Julia scripts for the examples presented in the book "Solving Fault Diagnosis Problems" + +## Examples and case studies + +This collection contains the Julia scripts which allow to execute all computational examples and case studies presented in Chapters 5-8 of the book: + +**Andreas Varga**, [Solving Fault Diagnosis Problems - Linear Synthesis Techniques with Julia Code Examples](https://link.springer.com/book/10.1007/978-3-031-35767-1), vol. 482 of Studies in Systems, Decision and Control, Springer International Publishing, 2024. + + +| Examples | Description | +| :--- | :--- | +| **[`lyapc`](@ref)** | Solution of the continuous Lyapunov equations | +| **Ex2_4** | Example 2.4 - Conversion of a LPV model to LTI form | +| **Ex5_4** | Example 5.4 - Solution of an exact fault detection problem (EFDP) | +| **Ex5_4c** | Compact version of script Ex5_4 using the function efdsyn of FaultDetectionTools | +| **Ex5_6** | Example 5.6 - Solution of an approximate fault detection problem (AFDP) | +| **Ex5_6c** | Compact version of script Ex5_6 using the function afdsyn of FaultDetectionTools | +| **Ex5_10** | Example 5.10 - Solution of an exact fault detection and isolation problem (EFDIP) | +| **Ex5_10c** | Compact version of script Ex5_10 using the function efdisyn of FaultDetectionTools | +| **Ex5_11** | Example 5.11 - Solution of an approximat fault detection and isolation problem (AFDIP) | +| **Ex5_11c** | Compact version of script Ex5_11 using the function afdisyn of FaultDetectionTools | +| **Ex5_12** | Example 5.12 - Solution of an exact model-matching problem (EMMP) | +| **Ex5_12c** | Compact version of script Ex5_12 using the function emmsyn of FaultDetectionTools | +| **Ex5_13** | Example 5.13 - Solution of an exact model-matching problem (EMMP) | +| **Ex5_13a** | Alternative direct approach to solve the EMMP for Example 5.13 | +| **Ex5_13c** | Compact version of script Ex5_13 using the function emmsyn of FaultDetectionTools | +| **Ex5_16** | Example 5.16 - Solution of an H∞ approximate model-matching problem (AMMP) | +| **Ex5_16c** | Compact version of script Ex5_16 using the function ammsyn of FaultDetectionTools | +| **Ex6_1** | Example 6.1 - Solution of an exact model detection problem (EMDP) | +| **Ex6_1c** | Compact version of script Ex6_1 using the function emdsyn of FaultDetectionTools | +| **Ex6_2** | Example 6.2 - Solution of an approximate model detection problem (AMDP) | +| **Ex6_2c** | Compact version of script Ex6_2 using the function amdsyn of FaultDetectionTools | +| **Ex6_2KF** | Kalman-filter based synthesis to address the AMMP for Example 6.2 | +| **Ex7_1** | Example 7.1 - Illustrating polynomial root sensitivity | +| **Ex7_3** | Example 7.3 - Nullspace-based solution of an EFDP | +| **Ex7_4** | Example 7.4 - Nullspace-based least order synthesis to solve an EFDP | + +| Case studies | Description | +| :--- | :--- | +| **CS1_1** | Case-study 1.1 - Monitoring flight actuator faults (no local surface angle measurements) | +| **CS1_2** | Case-study 1.2 - Monitoring flight actuator faults with local surface angle measurements | +| **CS2_1** | Case study 2.1 - Monitoring air data sensor faults (robust least order LTI synthesis) | +| **CS2_2** | Case study 2.2 - Monitoring air data sensor faults (robust least order LPV synthesis)v + +## How to execute the scripts + +For the execution of scripts the Julia version 1.8 or higher must be installed, together with the packages **FaultDetectionTools**, **DescriptorSystems**, **MatrixPencils**, **MatrixEquations**, **Polynomials**, **Measurements**, **GenericLinearAlgebra**, **Makie**, **CairoMakie**, **LaTeXStrings**, **JLD2** and **Optim**. + +To execute all examples in Chapters 5, 6 and 7, and all case studies in Chapter 8, execute + +````JULIA +using FaultDetectionTools +cd(joinpath(pkgdir(FaultDetectionTools), "Examples")) +include("runexamples.jl") +include("runcasestudies.jl") +```` +To execute a particular example, say Example 5.4 and its compact variant 5.4c, execute + +````JULIA +using FaultDetectionTools +cd(joinpath(pkgdir(FaultDetectionTools), "Examples")) +include("Ex5_4.jl") +include("Ex5_4c.jl") +```` +To execute a particular case study, say Case Study 2.1, execute + +````JULIA +using FaultDetectionTools +cd(joinpath(pkgdir(FaultDetectionTools), "Examples")) +include("CS2_1.jl") +```` diff --git a/Project.toml b/Project.toml index 46d6753..b6feb06 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "FaultDetectionTools" uuid = "fbfc5fa0-0005-11ec-19bb-b3a492551a0b" authors = ["Andreas Varga "] -version = "1.3" +version = "1.3.1" [deps] Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" diff --git a/README.md b/README.md index 6882b49..d2ce31b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://andreasvarga.github.io/FaultDetectionTools.jl/stable/) [![The MIT License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/andreasvarga/FaultDetectionTools.jl/blob/main/LICENSE.md) -## FDITools - Fault Detection and Isolation Tools in Julia +## Fault Detection and Isolation Tools in Julia ## Compatibility @@ -55,7 +55,7 @@ _Note:_ For the execution of the test examples and case study examples, the pack ## About -`FDITools` is a collection of Julia functions for the analysis and solution +`FaultDetectionTools` is a collection of Julia functions for the analysis and solution of fault detection and model detection problems. The functions of this collection rely on the [DescriptorSystems](https://github.com/andreasvarga/DescriptorSystems.jl) package. diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 0b0738f..c6b81b8 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,5 +1,13 @@ # Release Notes +## Version 1.3.1 + +Patch release with updated examples to comply with new Makie functionality. + +## Version 1.3.0 + +Version bump to use Julia 1.8 and higher. + ## Version 1.2.2 Patch release with updated examples.