Software
Software for Modeling, developed at IfA
Building RC Modeling Toolbox:
Resistance-capacitance modeling tool of buildings for control
- Generation of dynamic models for buildings from construction, geometry, and building data
- Export of models for use in MPC
- A large part of the input data can be generated from EnergyPlus input data files
The Building Resistance-Capacitance Modeling (BRCM) Toolbox for Matlab facilitates the first-principles modeling of buildings for MPC. The Toolbox provides a means for the fast generation of (bi-)linear resistance-capacitance type models from basic geometry, construction and building systems data. The tool also supports the generation of the corresponding potentially time-varying costs and constraints. The Toolbox is based on validated modeling principles.
Energy Hub Component Modeling Toolbox: Model Generation for a Combined Model Predictive Control Approach
Building energy management is an active field of research since the potential in energy savings can be substantial. Nevertheless, the opportunities for large savings within individual buildings can be limited by the flexibility of the installed climate control devices and the individual construction characteristics. The energy hub concept allows one to manage a collection of buildings in a cooperative manner, by providing opportunities for load shifting between buildings and the sharing of expensive but energy efficient equipment housed in the hub, such as heat pumps, boilers, batteries. Typically, control design for the buildings and the energy hub are done separately, underutilizing the potential flexibility provided by the interconnected system. To address these issues, we developed the energy hub component modelling (EHCM) toolbox as a unified framework for controlling the operation of the energy hub and the buildings it connects to. The EHCM Toolbox uses simplified modelling techniques, and modular models built from libraries of commonly used component descriptions, to encourage the adoption of more advanced building control methods.
Software for Predictive Control and Numerical Optimization
The following list gives an overview of the numerical optimization tools developed at IfA, in ascending order in terms of supported problem class and in descending order in terms of computational performance.
MPT (Multi-Parametric Toolbox):
A Matlab toolbox for parametric optimization, computational geometry and explicit model predictive control
- Parametric optimization (LPs, QPs, LCPs, MILPs, MIQPs)
- Computational geometry on polyhedra
- Explicit model predictive control
MPT implements state of the art numerical solvers for solving parametric optimization problems, i.e. problems that can be pre-solved for all admissible values of the parameters, which results in a look-up table that admits a very efficient online implementation. The computational geometry engine of MPT has a collection of algorithms that operate with convex polyhedra and their unions very efficiently. The toolbox allows a convenient visualization of polyhedra, convex sets, and functions defined over polyhedra. MPT contains easy to use interfaces for modeling, control design, computation, analysis, and postprocessing of optimal controllers in an explicit form. The obtained solution can be exported as a stand alone lookup table to the C programming language and compiled on a target application.
MPT is one of the most popular toolboxes for parametric programming with more than 30,000 downloads to date.
FiOrdOs (First Order Optimization Software) - Iterative gradient projection solvers for embedded systems
- Primal and dual (fast) gradient projection methods
- Quadratic objectives and convex feasible sets
- Automatic preconditioning
- C code generation
When an explicit solution is not available or is too large to store in memory on an embedded platform, gradient-based methods can be both very fast and memory efficient if the problem is mildly conditioned, and the constraint sets are simple (e.g. lower and upper bounds, 2-norm-balls etc.).
FiOrdOs is a Matlab toolbox for automated generation of C implementations of gradient projection methods. It considers the class of parametric convex programs with quadratic cost, which includes important embedded optimization use cases such as MPC. Additional toolbox features include optimal preconditioning and the automatic certification of the iteration count for a restricted set of problems. The generated C-code can be compiled for any platform and can be made library-free. FiOrdOs also provides a tailored MEX-interface for calling generated solvers inside Matlab and Simulink library for rapid prototyping.
FalcOpt (First-order Algorithm via Linearization of Constraints for OPTimization) - Solving efficient nonlinear Model Predictive Control problems with FalcOpt
- Novel first-order projected gradient and constraint linearization method
- Differently from standard gradient method, it also supports nonlinear constraints / dynamics
- Suited for time-critical applications
external page FalcOpt stands for First-order Algorithm via Linearization of Constraints for OPTimization. It allows the user to solve nonlinear Model Predictive Control (or Moving Horizon Estimation) problems via a external page novel first-order algorithm. This tool works in Matlab and it allows one to automatically generate the C code to solve a custom-made control problem, together with the MEX interface. It heavily exploits sparsity of the problem and it is specifically indicated for time-critical applications. The method is particularly suited for power electronics applications, where computational times in the order of us can be obtained.
ECOS (Embedded Conic Solver): Standalone software for convex second order cone programming
- Interior-point method with infeasibility detection
- Sparse Problems (LPs, QPs, QCQPs, SOCPs)
- Interfaces to 11 languages/frameworks
In case the problem is not in multistage form, or has large but sparse matrices or second-order cone constraints and in applications where feasibility dectection is an important feature, general primal-dual interior point methods with sparse linear algebra are a powerful alternative.
external page ECOS is a standalone numerical software package for solving convex second-order cone programs (SOCPs). It implements an efficient primal-dual interior point method with homogeneous embedding for detecting infeasibility or unboundedness, and supports also sparse problems. It is entirely written in ANSI C, with a minimal footprint, and so can be run on many platforms including embedded systems. ECOS comes with interfaces to Matlab, Python, Java, external page Julia, external page Scala, external page Breeze, external page CVX, external page CVXPY, external page Yalmip and even external page JuliaOpt.