Releases: teamparodis/parodis
Releases · teamparodis/parodis
Bug fixes and minor updates - 2023 edition
Bugs
- Fixed logging in Pareto evaluation methods, now correct reference to simulation instance variable
eval_parameter
helper function now correctly supported predict = false case- If simulation doesn't start at 0, then simulation time in agent's history is now correctly prefilled
Improvements
- Agents'
doNegotiation
now predicts state trajectoryxPred
as well as eval predictions and stores them in the status
Bug fixes and minor updates
Bugs
- Fixed a typo in lexicographic extreme point method
- Comparison of equality between extreme point solutions now with tolerance instead of exact comparison
- Fixed ParetoController breaking, when a cost function with weight = 0 was added to the controller
- Fixed prediction horizon
status.horizonTime
not being set in negotiation - Fixed fixed eval predictions accidentally being cleared in
previousStatus
when eval function is scenario dependent
Improvements
- The simulation results directory can now be set freely, by passing it as a an argument when creating a
Simulation
- Slight cleanup of Pareto code
- Front determination methods will now print progress to log
- Added section on how to cite PARODIS to the readme
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
Again, lots of fixes and some Pareto improvements
Bugs
- Fixed broken delta constraints for
du
- Bug fixed in lexicographic extreme point method that would result in the same extreme point twice
- Fixed the ParetoController accidentally storing data in the
status
struct wrapped in cell arrays
Improvements
- Added new Pareto front determination scheme, Adaptive Search Boundary Intersection (ASBI)
getSlacks
andgetConstraints
methods inCostFunction
are no longer abstract and have default implementations- Controller now checks if
getSlacks
correctly returns astruct
- RoC metric now ignores concave parts on fronts
- Refactoring
Lots of fixes
After about two months of fixes culminating on the develop branch, we're ready for another release!
- Fixed critical bug where non-implicit constraints caused crash when using
ExplicitController
/ParetoController
- Lots of refactoring in
ParetoController
- Added checking for invalid initial state
x0
- Better warnings when things go bad in multi-agent use
- Fixed bug where sdp variables where passed to a cost function's
evaluateHorizon
method instead of numerical values
Initial Release
Initial public release of PARODIS 🎉