Virtual history, sensible constraints and a fancy crane
Bugs
- Constraint on du(0|k) = u(0|k) - u(k-1) is now considered in delta constraints, u(k-1) is automatically provided
- Pareto optimization now works if no additional slack variables are defined
- Figures which shall not be live plotted will no longer be opened when simulation starts with
livePlots = true
- Fixed FPBI front determination scheme storing broken fronts
- Fixed wrong handling of extreme points in AWDS and ASBI front determination schemes
- Ugly error when no point was selected for plotting trajectories in Pareto interactivity tool
- sdpvars created by
createModel
and the controllers are now always fulln x m
matrices, even ifn == m
Improvements
- Introduced the virtual history, which tracks the predicted system behaviour in each timestep, while the history tracks the actual system behaviour, caused through state measurement or real vs. predicted disturbances
- PARODIS now delivers a pre-built cost function for the classical min xQx + uRu control case in the
functions
directory called LQRCostFunction - Added another example, a container crane system, which can be found in
examples/crane
- Added a hierarchical MPC example, namely the one presented in the CCTA paper on the PARODIS framework
- Refactoring, mainly regarding how the history (and virtual history) is updated, better code encapsulation
- Pareto front determination schemes now log errors to agent log
- Added warmstarting option for (nonlinear) solvers in explicit and pareto controllers, can speed up solver time for some NLPs
Changes
- Arguments in
createModel
and the controller constructors for the number of scenarios to be considered are now optional and default to1
- Argument
scenarioDependent
incontroller.addParam
is now optional, defaults totrue
- Simulation option
doCopyCallingScript
is nowfalse
per default