Control Software: Research Directions in the Intersection of Control Theory and Software Engineering

Justin M. Bradley, Hamid Reza Bagheri · AIAA Scitech 2020 Forum · 2020

Control theory and Software Engineering are well established research fields. Their intersection occurs in every computer-controlled system as control laws, sampling rates, derivatives, integrals, sensor readings, and control actuations are implemented in code and executed by the computer. The execution of controllers has received the bulk of attention from researchers in this intersection while their actual software implementation has received comparatively little. This intersection warrants increased attention from researchers for two main reasons: 1) control systems are distinct from much of the research in software engineering due to the focus on computing for the physical world (e.g., motor actuation, sensor readings, velocity calculations), need for deterministic timing, and safety-critical nature, and 2) correctness and performance guarantees are only meaningful if, in addition to the model, they also characterize the software implementation and its execution – something many in the control community take for granted. In this paper we identify the need for increased research at this intersection by focusing on control software – an area distinct from, but informed by both control theory and software engineering disciplines. This area is complementary to the verification community which focuses on models and testing but may not examine the development process or the software itself, its evolution, semantics, maintainability, or longevity. We identify two key areas in this domain worthy of increased attention. First, successful controllers, their models, and software evolve over their lifetime. Understanding how controllers evolve can help designers know what types of changes impact important controller properties such as margins of stability, rise time, settling time, etc. We discuss this challenge in detail and report on our recent research to characterize controller evolution, including the development of a tool to rapidly simulate it and characterize its impacts on control system performance. Second, model-driven development (MDD) (also known as “model-based design”) is an important step toward provably correct controller implementations. However, the development of automated synthesis and transformation tools is difficult and error prone, as well as limited (by design) in scope. Ultimately, due to these limitations, all MDD tools and their software output will interact with external software and libraries and therefore face the uncertainty of possibly hand-coded or unverified software. We identify the key challenges for MDD tool usage, implementation, and wider adoption and present several solutions for further research.

Read the paper · More papers on PaperTik