Formally expressing the semantics of observer-based fault detection software
This work addresses the need for reliable and verifiable fault detection in safety-critical dynamic systems, such as helicopters, by providing a method to formally certify software, though it is incremental as it builds on existing formal verification techniques.
The paper tackled the problem of verifying fault detection software for safety-critical systems by translating fault detection properties into a formal language, enabling automatic verification of high-level functional properties and certifying the software for bounded data.
The aim is to create reliable and verifiable fault detection software to detect abrupt changes in safety-critical dynamic systems. Fault detection methods are implemented as software on digital computers that monitor and control the system. We implement three observer-based fault detection methods on a 3 degrees of freedom (3DOF) laboratory helicopter, in the form of software. We examine the performance of those methods to detect different faults during flight in a closed-loop setup. All selected methods show acceptable detection performance. However, it is not possible to repeat the test for every possible conditions, inputs and fault scenarios. In this paper, we translate fault detection properties and mathematical proofs into a formal language, previously used in software validation and verification. We include the translated properties in software in the form of non-executable annotations that can be read by machine. Consequently, some high level functional properties of the code can be verified by automatic software verification tools. This certifies fault detection software for a set of bounded data and increases the reliability in practice.