The Dynamical Systems Toolbox (Part 1):
Integrating AUTO into MATLAB
Workshop 11th October 2010
Etienne Coetzee, Phani Thota, and James Rankin
Contents
Challenge to popularise Dynamical Systems methods.
Organisational challenges and lessons learnt.
Technical challenges.
Points to consider when introducing new technology.
Dynamical Systems software.
Why, MATLAB?
Approaches for developing/integrating Dynamical Systems
software into MATLAB.
The Dynamical Systems Toolbox.
• History
• Documentation and Help
• Mex-integration, OOP
• Demos
• Benchmarks
Challenge to popularise Dynamical Systems methods
Perceptions are difficult to change – an extract from a recent
handbook on vibrations
“Fortunately, with the possible exception of damping, significant non-
linearity in vibrating structures, as they are encountered in industry today,
is actually quite rare.
This may seem a strange statement to make, in view of the large
number of research papers produced annually on the subject, but
this is probably due to the fact that it is an interesting and relatively
undeveloped field, with plenty of scope for original research, rather
than to any great need from industry.
In practical engineering work, it is quite likely that if very non-linear
structural behaviour is found, it may well be indicative of poor design. It
may then be better to look for, and eliminate, the causes of the non-
linearity, such as backlash and friction, rather than to spend time
modeling the non-linear problem.”
Page 4
Expectations between Industry and
Academia needs to be managed.
• Universities need to publish.
• Academics want to develop algorithms and not software.
• Industry wants methods and tools for the engineers.
Training
• Methods and tools training not enough. Theory is essential. Provided by the experts.
Getting people to accept new
technology can be a quick or a slow
process.
Organisational challenges to embed DS in industry
Good results obtained by:
• integrated research projects,
• complementary skills between University and Industry.
Active participation by Industry essential.
• Steers direction of research.
• Motivates researchers.
• Regular meetings essential.
Quality of researchers
• Good collaborators attract good researchers.
Placement of researchers within Industry makes a big difference in testing applicability of methods.
Page 5
Organisational lessons learnt
Typical DS projects at UoB
Page 6
Mathematical background
• Steep learning curve.
• Some problems need a deep understanding of the mathematics.
Model specific
• Models not necessarily configured or built in a way that allows for easy analysis.
• Discontinuities need to be smoothed out.
• Parameter ranges much bigger than engineers are used to.
Software
• No commercial software available, hence user documentation, examples, and customer support is lacking. Dynamical Systems Toolbox in MATLAB addressing this area (UoB).
Page 7
Technical challenges
Points to consider when introducing new software
Learning Curve• steep, extra time needed to learn new paradigm.
Training• hands-on practice with the specific application.
User-friendliness• ease of use and robust error checking.
Use of exiting models
Documentation• enough relevant examples, links to references.
User base and support• larger user base increases support aspect
Software availability
Extendability and modularity• well documented architecture and API.
Dynamical Systems software
AUTO seems to be the most widely used (Fortran). Mainly for low-order systems. [Doedel et al.]
Trilinos/LOCA popular for large-scale systems (C). [Salinger et al.]
We are not aware of any commercial software that can be used for engineering problems.
MATLAB toolboxes
• CL_Matcont [Govaerts et al.]
• COCO [Dankowicz & Schilder]
• Dynamical Systems Toolbox [Coetzee et al.]
Extensive list athttp://www.dynamicalsystems.org/sw/
Why MATLAB?
Ease of use.
Many universities use MATLAB.
Interactive use or scripts.
Rapid prototyping of sophisticated
code.
Large user base.
Great for simulation and data
analysis.
Matrix notation instead of loops.
Many easy to use toolboxes.
Ease of visualisation.
Approaches for developing/integrating Dynamical
Systems software into MATLAB.
Method Advantage Disadvantage
New code in MATLAB Opportunity to plan and
define a framework.
Optimum use of matrix
functions in MATLAB.
Extensive use of new
OOP features.
Loss of knowledge built
up in AUTO community.
Huge amount of work.
Familiarity.
Code integration via
mex-functions
Build on extensive work
done already.
Computation done in more
efficient environment.
Mostly Fortran.
Use of new OOP features.
Familiarity of user
community with AUTO.
Time spent figuring out
where to place hooks.
Actual documentation
sparse.
Dynamical Systems Toolbox
Year Developer AUTO
Version
Feature
2004 Ryan Bedford,
Aerospace Department
97 Initial mex integrationmexEvalString
2009 Etienne Coetzee,
James Rankin,
Phani Thota,
Engineering Mathematics
2007P DST V1
New optimised commands
Extensive documentationmexCallMatlab
2010 Etienne Coetzee,
James Rankin,
Phani Thota,
Engineering Mathematics
2007P DST V2
OOP
2 Modes: 07P, DST
Splitting of functions
Additional Outputs
DST V1 – Main features
Similar input and output files to AUTO07P.
Main focus on interface between FUNC.F and AUTOEQN.m
Use of a switch-yard to select correct subroutine.
Initial use of OOP technology to generate constants file.
Documentation that explains:
• Background to Dynamical Systems.
• Some theory.
• Detailed explanation of the constants.
• Detailed explanation of how to debug subroutines.
• Detailed explanation of what contents in output files mean.
• Examples from AUTO.
• Example of linking a Simulink model.
• Plenty of references.
Dynamical Systems Toolbox V1 - Architecture
DST V1 - Demo “ab”
DST V2 – Main features
Extensive use of OOP technology.
Easy to program the MATLAB objects, and robust.
Can run in 2 modes:
• 07P mode – equivalent to DST V1.
• DST mode – reading and writing all data to objects.
AUTOEQN.m file split into separate files to improve speed.
Additional outputs can be written, previously only state
values.
Can write files out similar to V1 if needed.
Significantly faster than DST V1.
Dynamical Systems Toolbox V2 - Architecture
DST V2 - Demo “ab” with Simulink model
Benchmark – LC continuation
Future activities
Documentation is key, hence we would like to
incorporate all of the AUTO examples into m-files.
Relevant engineering examples.
Added robustness in objects.
Extension of plotting routines.
In the long-term we could consider engineering the
software:
• re-architecting the core code,
• or building on work of other groups.
• defining an API,
• making framework and initial tools publicly available (MATLAB-FEX, other),
The success of the above will depend on our ability to
convince industry that it is in their own interest to adopt
these methods.