TRUST: Stability and Safety Controller Synthesis for Unknown Dynamical Models Using a Single Trajectory
Jamie Gardner, Ben Wooding, Amy Nejati, Abolfazl Lavaei
TL;DR
TRUST addresses stability and safety for unknown dynamical systems by enabling data-driven controller synthesis from a single persistently excited trajectory, leveraging Willems' fundamental lemma to avoid explicit model identification. It formulates CLF and CBC synthesis as SOS and SDP problems across four system classes: $ct$-$NPS$, $ct$-$LS$, $dt$-$NPS$, and $dt$-$LS$, outputting the corresponding certificate and its controller. The tool is implemented as an open-source Python/Flask web app (with a Docker option) and demonstrated on physical benchmarks, showing fast solution times for linear systems and SOS-based computation for nonlinear ones. This work provides a practical, model-free pathway for ensuring stability or safety in safety-critical domains, enabling users to operate without full system models, and outlines future extensions to broader nonlinearities and stochastic dynamics.
Abstract
TRUST is an open-source software tool developed for data-driven controller synthesis of dynamical systems with unknown mathematical models, ensuring either stability or safety properties. By collecting only a single input-state trajectory from the unknown system and satisfying a rank condition that ensures the system is persistently excited according to the Willems et al.'s fundamental lemma, TRUST aims to design either control Lyapunov functions (CLF) or control barrier certificates (CBC), along with their corresponding stability or safety controllers. The tool implements sum-of-squares (SOS) optimization programs solely based on data to enforce stability or safety properties across four system classes: (i) continuous-time nonlinear polynomial systems, (ii) continuous-time linear systems, (iii) discrete-time nonlinear polynomial systems, and (iv) discrete-time linear systems. TRUST is a Python-based web application featuring an intuitive, reactive graphic user interface (GUI) built with web technologies. It can be accessed at https://trust.tgo.dev or installed locally, and supports both manual data entry and data file uploads. Leveraging the power of the Python backend and a JavaScript frontend, TRUST is designed to be highly user-friendly and accessible across desktop, laptop, tablet, and mobile devices. We apply TRUST to a set of physical benchmarks with unknown dynamics, ensuring either stability or safety properties across the four supported classes of models.
