SLSpy

SLSpy: Python-Based System-Level Controller Synthesis Framework. Synthesizing controllers for large, complex, and distributed systems is a challenging task. Numerous proposed methods exist in the literature, but it is difficult for practitioners to apply them -- most proposed synthesis methods lack ready-to-use software implementations, and existing proprietary components are too rigid to extend to general systems. To address this gap, we develop SLSpy, a framework for controller synthesis, comparison, and testing. SLSpy implements a highly extensible software framework which provides two essential workflows: synthesis and simulation. The workflows are built from five conceptual components that can be customized to implement a wide variety of synthesis algorithms and disturbance tests. SLSpy comes pre-equipped with a workflow for System Level Synthesis (SLS), which enables users to easily and freely specify desired design objectives and constraints. We demonstrate the effectiveness of SLSpy using two examples that have been described in the literature but do not have ready-to-use implementations. We open-source SLSpy to facilitate future controller synthesis research and practical usage.