Some algebraic and geometric computations in PSPACE
STOC '88 Proceedings of the twentieth annual ACM symposium on Theory of computing
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Optimal Sampled-Data Control Systems
Optimal Sampled-Data Control Systems
Linear Systems
A static analyzer for large safety-critical software
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
HybridFluctuat: A Static Analyzer of Numerical Programs within a Continuous Environment
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Robustness of Model-Based Simulations
RTSS '09 Proceedings of the 2009 30th IEEE Real-Time Systems Symposium
Towards an Industrial Use of FLUCTUAT on Safety-Critical Avionics Software
FMICS '09 Proceedings of the 14th International Workshop on Formal Methods for Industrial Critical Systems
Static analysis of the accuracy in control systems: principles and experiments
FMICS'07 Proceedings of the 12th international conference on Formal methods for industrial critical systems
Feedback Systems: An Introduction for Scientists and Engineers
Feedback Systems: An Introduction for Scientists and Engineers
Integrating physical systems in the static analysis of embedded control software
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
A fast linear-arithmetic solver for DPLL(T)
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Performance-aware scheduler synthesis for control systems
EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
CLSE: closed-loop symbolic execution
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Trigger memoization in self-triggered control
Proceedings of the tenth ACM international conference on Embedded software
Synthesis of minimal-error control software
Proceedings of the tenth ACM international conference on Embedded software
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Synthesis of fixed-point programs
Proceedings of the Eleventh ACM International Conference on Embedded Software
Hi-index | 0.00 |
Software implementations of controllers for physical subsystems form the core of many modern safety-critical systems such as aircraft flight control and automotive engine control. A fundamental property of such implementations is stability, the guarantee that the physical plant converges to a desired behavior under the actions of the controller. We present a methodology and a tool to perform automated static analysis of embedded controller code for stability of the controlled physical system. The design of controllers for physical systems provides not only the controllers but also mathematical proofs of their stability under idealized mathematical models. Unfortunately, since these models do not capture most of the implementation details, it is not always clear if the stability properties are retained by the software implementation, either because of software bugs, or because of imprecisions arising from fixed-precision arithmetic or timing. Our methodology is based on the following separation of concerns. First, we analyze the controller mathematical models to derive bounds on the implementation errors that can be tolerated while still guaranteeing stability. Second, we automatically analyze the controller software to check if the maximal implementation error is within the tolerance bound computed in the first step. We have implemented this methodology in Costan, a tool to check stability for controller implementations. Using Costan, we analyzed a set of control examples whose mathematical models are given in Matlab/Simulink and whose C implementation is generated using Real-Time Workshop. Unlike previous static analysis research, which has focused on proving low-level runtime properties such as absence of buffer overruns or arithmetic overflows, our technique combines analysis of the mathematical controller models and automated analysis of source code to guarantee application-level stability properties.