Falcon.m Logo

FALCON.m – Nonlinear Optimal Control in MATLAB®

By downloading and using the toolbox, you agree to its EULA license terms.

The FALCON.m framework provides an object-oriented interface for modeling and solving nonlinear Optimal Control Problems (OCPs) in the MATLAB® environment. It includes functionalities for modeling dynamic systems, objective and constraint functions, with automatic differentiation and code generation. Based on these model components, continuous-time OCPs are defined in an object-oriented way. The toolbox handles the discretization and transcription to a large, sparse nonlinear parameter optimization problem automatically. It interfaces to common Nonlinear Program (NLP) solvers.

Since its initial release in 2014, FALCON.m has proven its viability in academic research and real-world industry applications. We continue to improve and extend the framework as part of our ongoing research projects.

Core Functionalities

The following functionalities are included in the public FALCON.m release.

Modeling of dynamic systems, constraints and objectives

FALCON.m‘s modeling framework supports the assembly of complicated models from subsystem implementations in MATLAB® code. Derivatives are generated automatically, either with finite differences or symbolically, if the Symbolic Math Toolbox is available. The Matlab Coder integration enables the generation of fast MEX functions. Manual implementation of custom subsystem derivatives is also supported.

Definition of Optimal Control Problems

OCPs are assembled from multiple phases with nonlinear dynamics, path constraints and point constraints. Objectives of the Bolza form can be composed from multiple weighted Lagrange and Mayer terms. All parts of the OCP can be parameterized. Variables can be scaled and shifted arbitrarily to improve the numerical properties and convergence behavior.

Discretization and NLP transcription

Multiple discretizations are available, including trapezoidal collocation and Runge-Kutta methods. Based on these, FALCON.m handles the transcription to a finite-dimensional Nonlinear Program (NLP) automatically. It accounts for sparsity and presents a generic NLP interface to common large-scale sparse constrained NLP solvers.

For more information on discretizations and sparsity, see Matthias Bittner’s dissertation.

Analysis and debugging tools

FALCON.m includes visualization and simulation functionalities that enable quick analysis of the solution quality. Derivative checks and scaling plots support debugging and fine-tuning of the numerical setup.

Advanced Functionalities

The following advanced functionalities are regularly applied in the context of joint research projects with industry and academia. Please contact us for details.

Analytical second-order derivatives

When used with a compatible NLP solver, FALCON.m can generate the sparse analytical hessian of the OCP and exploit this to speed up convergence in the vicinity of the solution. This can be particularly useful for parameter sweeps with warm-start procedures. Also, the analytical hessian is the basis for efficient post-optimal sensitivity analysis.

Post-optimal sensitivity analysis

In real-world applications the effects of parameter variations are highly relevant. FALCON.m supports such analyses by efficiently calculating post-optimal sensitivities with respect to problem parameters and control histories. This includes first-order sensitivities of the states, outputs and constraints, as well as second-order sensitivities of the objective.

Simulink® integration

The FALCON.m modeling framework can interface with Simulink®, allowing users to reuse existing model components. Derivatives of first and second order are evaluated using sparse finite differences, with convenient automatic sparsity detection.

Parameter Estimation

FALCON.m‘s optimal control functionalities provide an ideal basis for parameter estimation. Specialized modules implement the Output Error Method (OEM) and Filter Error Method (FEM) for nonlinear system identification, applicable in complex real-world scenarios.

For details, see Christoph Göttlicher’s dissertation or research on helicopter parameter estimation.

Research Topics

Through our research in optimal control methods, FALCON.m is regularly extended. The following functionalities require further research and development.

Discrete Controls

Discrete controls, such as gears in automative applications, lead to mixed-integer OCPs with significantly increased complexity. Experimental FALCON.m modules enable the solution of such problems.

For details, see Matthias Rieck’s dissertation.

Robust optimal control

Robustness against stochastic uncertainties is highly important for aerospace applications. By means of generalized Polynomial Chaos and Stochastic Collocation (gPC-SC), FALCON.m is capable of accounting for uncertain parameters, both in post-optimal analyses and in inherently robust chance-constrained optimization. Furthermore, sensitivity-based approaches to robustness are under investigation.

For details on gPC-SC, see Patrick Piprek’s dissertation. Also see research on VTOL transition maneuver or robust reentry trajectories.

Bi-level optimal control

By optimizing the parameters of one or more OCPs in a higher-level parameter optimization problem, more complex scenarios can be investigated. The optimal coordination of approach trajectories for multiple aircraft is a possible application.

For details, see research on air traffic sequencing.

Code generation and deployment

As a MATLAB® based framework, FALCON.m itself is designed for offline use on powerful desktop computers; the focus is on flexibility. Online applications like Model Predictive Control (MPC) require specialized implementations. Experimental modules aim to bridge this gap by generating efficient code from problems modeled in FALCON.m.

Contact

Feel free to contact us in case of questions or feedback and let us know about academic and industry problems you solved with FALCON.m. Also, we always welcome opportunities for joint research and development projects with real-world applications.

Please note that we can provide support only in addition to our research and teaching responsibilities, so we may not be able to respond immediately. Please describe issues concisely and include all relevant version information; in some cases a minimal example can help us understand your specific problem.

Citation

Please cite the current version of FALCON.m as follows:

@misc{FALCON.m.v1.27,
 author = {Rieck, Matthias and Bittner, Matthias and Grüter, Benedikt and Diepolder, Johannes and Piprek, Patrick and Göttlicher, Christoph and Schwaiger, Florian and Hosseini, Barzin and Schweighofer, Felix and Akman, Tuğba and Holzapfel, Florian},
 date = {2022},
 title = {FALCON.m User Guide},
 subtitle = {version 1.27},
 url = {http://www.falcon-m.com},
 institution = {{Institute of Flight System Dynamics, Technical University of Munich}}
}