Welcome to the documentation for SystemLevelControl.jl!
Introduction
SystemLevelControl.jl is a Julia toolbox for synthesizing controllers using the System Level Synthesis (SLS) methodology. The package provides a straightforward, @Distributed
-enabled, interface for optimal and robust control of large-scale cyberphysical systems.
We are still not on the official registry. To install SystemLevelControl.jl, run
import Pkg; Pkg.add(url="https://github.com/aaltoKEPO/SystemLevelControl.jl")
The documentation is organized in three sections:
- The Manual details the main concepts and methods implemented in the package.
- The Examples section provides some tutorials on using the package for solving relevant benchmark problems.
- The Reference section contains the documentation of all important types and functions from the library.
Notes
This package is currently under active development. A stable version is to be released soon.
Although general-purpose, the SLS methodology was designed for large-scale cyberphysical systems with sparse communication and actuation networks. This is reflected on our design choices for the package: SystemLevelControl.jl focus on linear discrete-time systems represented through SparseArrays
data-types. The linear fractional transformation (LFT) framework is used as the theoretical backbone of all methods.
We hope to improve SystemLevelControl.jl until it can serve as a general-purpose control framework (while still bringing all the power of SLS). In the meanwhile, we can recommend other excellent Julia packages for doing analysis or solving more general control problems:
ControlSystems.jl
and its associated Ecosystem provide a wide collection of tools for analysis and design of control systems. It provides a similar interface as that of the popular Control Systems Toolbox in MATLAB®.JuMP.jl
is perhaps the most popular modelling framework for mathematical optimization in Julia. A wide class of optimal control problems (including LMIs/SDPs) can be solved with this package. SystemLevelControl.jl actually use JuMP to solve SLS problems for the general cases.TrajectoryOptimization.jl
is a popular framework for solving trajectory optimization problems in Julia, specially for applications in robotics. A distinct feature is the possibility to easily model nonlinear control problems.JuliaSimControl.jl
is the package within the JuliaSim Ecosystem that allows for the modelling, analysis and deployment of control systems in a centralized package.