Skip to content

Commit

Permalink
Adding Readme to examples.
Browse files Browse the repository at this point in the history
  • Loading branch information
andreasvarga committed Feb 5, 2024
1 parent 33b80f2 commit 022a73e
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 3 deletions.
71 changes: 71 additions & 0 deletions Examples/README.md
Original file line number Diff line number Diff line change
@@ -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")
````
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "FaultDetectionTools"
uuid = "fbfc5fa0-0005-11ec-19bb-b3a492551a0b"
authors = ["Andreas Varga <[email protected]>"]
version = "1.3"
version = "1.3.1"

[deps]
Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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.

Expand Down
8 changes: 8 additions & 0 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down

0 comments on commit 022a73e

Please sign in to comment.