Contract Composition for Dynamical Control Systems: Definition and Verification using Linear Programming

2 Nov 2022  ·  Miel Sharf, Bart Besselink, Karl Henrik Johansson ·

Designing large-scale control systems to satisfy complex specifications is hard in practice, as most formal methods are limited to systems of modest size. Contract theory has been proposed as a modular alternative to formal methods in control, in which specifications are defined by assumptions on the input to a component and guarantees on its output. However, current contract-based methods for control systems either prescribe guarantees on the state of the system, going against the spirit of contract theory, or can only support rudimentary compositions. In this paper, we present a contract-based modular framework for discrete-time dynamical control systems. We extend the definition of contracts by allowing the assumption on the input at a time $k$ to depend on outputs up to time $k-1$, which is essential when considering the feedback connection of an unregulated dynamical system and a controller. We also define contract composition for arbitrary interconnection topologies, under the pretence of well-posedness, and prove that this notion supports modular design, analysis and verification. This is done using graph theory methods, and specifically using the notions of topological ordering and backward-reachable nodes. Lastly, we use $k$-induction to present an algorithm for verifying vertical contracts, which are claims of the form "the conjugation of given component-level contracts is a stronger specification than a given contract on the integrated system". These algorithms are based on linear programming, and scale linearly with the number of components in the interconnected network. A numerical example is provided to demonstrate the scalability of the presented approach, as well as the modularity achieved by using it.

PDF Abstract
No code implementations yet. Submit your code now

Tasks


Datasets


  Add Datasets introduced or used in this paper

Results from the Paper


  Submit results from this paper to get state-of-the-art GitHub badges and help the community compare results to other papers.

Methods


No methods listed for this paper. Add relevant methods here