Code covered by the BSD License  

Highlights from
Dynamical Systems Toolbox

5.0

5.0 | 6 ratings Rate this file 76 Downloads (last 30 days) File Size: 14.2 MB File ID: #32210
image thumbnail

Dynamical Systems Toolbox

by

 

Bifurcation analysis of dynamical systems. Integration of AUTO bifurcation software into MATLAB.

| Watch this File

File Information
Description

**Background**

This is a MATLAB version of AUTO, where we have integrated AUTO into MATLAB via mex functions.
This toolbox is aimed at researchers familiar with AUTO, but also engineers that would like to
apply these techniques. One of the biggest reasons why Dynamical Systems Theory is not being
applied widely in an engineering context, is mainly due to the lack of bifurcation software
that integrates with relative ease with existing toolsets. We therefore tried to address this
issue by incorporating AUTO into MATLAB, and thus the Dynamical Sytems Toolbox was built.
We hope that it would be useful teaching tool and can help popularise the methods amongst
the engineering community.

Ample examples are also needed for a person new to the field, hence more aerospace examples
will follow in future releases.At this stage we are still in the process of adding several
engineering examples to the toolbox. Feel free to develop some examples for inclusion into
the toolbox. There are template files that you can use for inclusion of your own examples.

**Souce Control**

Source files are controlled on github at

https://github.com/ecoetzee/Dynamical-Systems-Toolbox

**System Requirements**

1. MATLAB R2009A or higher
2. Intel Visual Fortran 9.1 or higher for compiling on Windows, if needed.
3. GCC 4.3.1 or higher for compiling on Linux.

**Authors**

This toolbox was written by Etienne Coetzee, Phani Thota and James Rankin from the
University of Bristol. Obviously, credit must also be given to the authors of
AUTO, Esebius Doedel et al.

**Main features**

1. Look and feel of MATLAB.
2. Extensive use of objects.
3. Can be run in the new mode, or still with all the old AUTO files (.c,.7,.8.9) familiar
    to the user.
4. Robust error checking.
5. Additional outputs can be detected and also passed out to MATLAB variables.
6. Any of the MATLAB toolsets can be used, i.e. the Symbolic toolbox, Simulink etc.
7. Similar notations to that of AUTO. A person familiar with AUTO should find it
    straightforward to pick up the new toolsets.
8. Also works with the student version of MATLAB.
9. Ample documentation.
10. Templates files for people willing to contribute their own examples for inclusion
    into the demos.

**Drawbacks**

1. Limit Cycles are at least an order of magnitude slower. We had to make a trade-off
    between robustness and speed. We therefore decided that if we want to popularise the methods,
    then the code should work, and people should not have to struggle with decoding it.
2. No ample enginering examples yet.

**Installation Instructions**

To install the toolbox follow these steps:

1. Download the toolbox and unzip.
2. Open MATLAB and change to the directory where the toolbox was unzipped.
3. Run the program installdynasys.m; A user interface will appear.
4. If you have admin rights keep the default values and install. The toolbox will be
    installed in the MATLAB installation directory.
5. If you do not have admin rights, install the toolbox to a directory where you have
    access rights. A startup.m file will be created in this directory.
6. Close MATLAB, and restart.
7. Type dynasysroot and dynasyshelproot at the command line. If these commands are
    working, it should indicate where the toolbox components were installed. If not,
    something has gone wrong. Check that the paths are correctly defined.
8. The Dynamical Systems Toolbox should appear on the menu. If not, either the paths
    were not defined correctly, or the info.xml file in the **$dynasysroot/toolbox/dynasys**
    directory has the wrong information on line 10. Add the correct path to the documentation
    directory **$dynasysdocroot/toolbox/dynasys**.
9. Close MATLAB and restart.

**Restrictions**

1. We have only managed to compile on Windows with Intel Fortran 9.1 or higher. Also now
    possible to use on Linux with gcc 4.3 or higher.
2. I am not able to make many updates because I am trying to finish my PhD, hence assume
    that the software will not be frequently updated.

**Additional Resources**

The following link provides more information on aerospace applications at the
University of Bristol.

http://seis.bris.ac.uk/~ec1099/

Acknowledgements

Figure Management Utilities, Manage And Dock Figures Into Group, and Flight Visualization inspired this file.

MATLAB release MATLAB 7.8 (R2009a)
Other requirements Visual Fortran 9.1 for compiling on Windows XP Gcc 4.3.1 for compiling on Linux
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (34)
28 Sep 2014 Alberto  
26 Sep 2014 Etienne Coetzee

Hi Peter

Comment out the contents of the setstatusbar function in the installdynasys file. Otherwise look at the Getting Started pdf to see how to install the toolbox manually.

Regards

Etienne

26 Sep 2014 Peter Rashkov

Hi Etienne,
I re-downloaded the toolbox, and when I run

installdynasys

in the MATLAB command line, I get the following errors:

No appropriate method, property, or field fFigureClient for class
com.mathworks.hg.peer.HG1FigurePeer.

Error in installdynasys>setstatusbar (line 369)
jRootPane = jFrame.fFigureClient.getWindow;

Error in installdynasys>installpb_Callback (line 316)
setstatusbar(gcf,'');

Error in gui_mainfcn (line 96)
feval(varargin{:});

Error in installdynasys (line 63)
gui_mainfcn(gui_State, varargin{:});

Error in
guidemfile/@(hObject,eventdata)installdynasys('installpb_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback.

I am utterly clueless what this is.
Regards,
Peter

24 Sep 2014 Etienne Coetzee

Hi Peter

You will have to recompile for the MAC. I have not tried this before on a MAC so unfortunately I cannot say if it will work or not.

Regards

Etienne

23 Sep 2014 Peter Rashkov

Forgot to mention the Matlab version is R2012b.
Peter

23 Sep 2014 Peter Rashkov

Hi, I am trying to install and run the toolbox on Mac OS 10.6.8. When I run examples from the menu, I get the following error:

Error using auto/runauto (line 27)
Could not find appropriate AUTO07gateway mex file for this platform

Can someone help me out? I am no Mac expert, but that is the office computer I am using.

Thank you very much for your help
Peter

27 Aug 2014 Etienne Coetzee

Hi Alexander

I am not sure what the problem is, but you could also just copy the files and make sure the paths are correct. See the "Getting Started" pdf. It explains where to copy the files, as well as the path definition that is needed. I will see if I can find out what is going on.

Regards

Etienne

26 Aug 2014 Alexander

Hi there,

I just tried to install the Dynamical Systems Toolbox, and I encountered the following problem:

installdynasys
Warning: Single line Edit Controls can not have multi-line text
> In openfig at 135
In gui_mainfcn>local_openfig at 286
In gui_mainfcn at 159
In installdynasys at 63
Attempt to reference field of non-structure array.

Error in installdynasys>installdynasys_OpeningFcn (line 87)
if Message.UserWrite == 1

Error in gui_mainfcn (line 221)
feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:});

Error in installdynasys (line 63)
gui_mainfcn(gui_State, varargin{:});

I am using Matlab 8.0.0.783 (R2012b)

12 Aug 2014 Jack  
28 Feb 2014 Arne Defraye  
28 Feb 2014 Etienne Coetzee

Hi Arne

I have not tried this before, although we have done something similar with ADAMS. In ADAMS there is a setting where you can either use ADAMS for the derivative calculation or Simulink. The option needs to be set to Simulink. Maybe VLM has something similar. I cannot even offer to try and debug this because we do not have a VLM license.

You may also want to check the size of your model, compared to the size defined in Ndim. We had problems before when Ndim becomes larger than 100, and we still do not really know why.

Another option may be to construct a reduced order model from the VLM model. You can for instance see if you can use Eureqa or similar tools on a time history of your model, and see if you can get some ODE's from this. You will need to provide enough information though.

Another option may be to try and generate C-code from VLM, and see if you can link this in to vanilla AUTO.

Unfortunately the new version is not available yet. We are currently trying to generate a TLC script that will generate c-code from a Simulink model and link this in to AUTO. This is tricky and I have not had a lot of time to work on this.

Regards

Etienne

28 Feb 2014 Arne Defraye


Dear Mr. Coetzee,

With regard to my last post, I’ve already solved some problems myself. But now I’m encountering a particular problem, that have brought my entire master thesis to a complete standstill because I can’t find the fault I made myself. Could you please help me with following:

My master thesis deals with the research of using bifurcation theory for analysis of landing gear shimmy. I am using multi-body software, called LMS Virtual.Lab Motion. My goal is to research if there is a possibility to use the bifurcation toolbox in a coupled simulation with the multi-body software Virtual.Lab Motion. The coupled simulation connects Virtual.Lab Motion with Simulink using an S-function in Simulink, that brings all the equations to Simulink.

So now my problem is that I can’t run a Simulink bifurcation, wherein such an S-function is contained.
· The standalone (not using the bifurcation toolbox) coupled simulations work between Matlab and Virtual.Lab Motion.
· And I’ve also run some simple bifurcations with Simulink.
So the combination of those two doesn’t seem so farfetched to me.

However, following error keeps on popping up:
“Error using AUTO07gateway
Numerical instability, NaN or Inf detected in subroutine func, adjust the tolerances of the bifurcation
parameters

Error in auto/runautodst (line 161)
[obj.f7,obj.f8]=AUTO07gateway(obj.s,obj.c,obj.f7,obj.f8);

Error in auto/runauto (line 39)
obj=runautodst(obj);

Error in massaveersyst (line 36)
a{1}=runauto(a{1});”

I’ve already tried changing a lot of parameters, such as the tolerances, but it seems I’m stuck. Does this error rings a bell to you? Is it a common error with a specific origin?

There is one piece of code that I’m still wandering if the problem might lurk there. The piece of code is programmed in the ‘func’ file and calls the Simulink model. Could you tell me what the different function arguments are and what they mean?
o=nameofsimulinkproject(0,u,par(1:1),'outputs');
f=nameofsimulinkproject(0,u,par(1:1),'derivs');

Finally; is there already a release date for the new DST bifurcation toolbox? And will the toolbox have some features that could benefit this application?
I really hope that you could help me,

My most sincerest regards,
Arne

20 Dec 2013 Etienne Coetzee

Hi Arne

I am on holiday until the new year. I will try to look at it then. We are also working on a newer version of the toolbox, so we may update the toolbox as well in the new year. We are trying to add some new features where you can run Simulink Coder code to make the runs faster.

Regards

Etienne

15 Dec 2013 Arne Defraye

Dear mister Coetzee

I'm using your dynamical systems toolbox to execute some bifurcations, regarding to my master thesis. It's a nice toolbox, I'm most greatfull.
At first, all went well and I could run some simple examples of my own as well as the demos, provided with the toolbox.
Then, when i wanted to run the only demo with the use of simulink, matlab blocked and stopped working.

" --------------- DYNAMICAL SYSTEMS TOOLBOX ---------------------

USER NAME : ARNE
DATE : 15/12/2013 10:48:14

SIMULINK MODEL : massaveersys

<
BR PT TY LAB PAR(01) L2-NORM U(01) U(02)
1 1 EP 1 -5.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00

------------------------------------------------------------------------
Segmentation violation detected at Sun Dec 15 10:48:14 2013
------------------------------------------------------------------------

Configuration:
Crash Decoding : Disabled
Default Encoding: windows-1252
MATLAB Root : C:\Program Files\MATLAB\R2012a
MATLAB Version : 7.14.0.739 (R2012a)
Operating System: Microsoft Windows 7
Processor ID : x86 Family 6 Model 58 Stepping 9, GenuineIntel
Virtual Machine : Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode
Window System : Version 6.1 (Build 7601: Service Pack 1)

Fault Count: 2

Abnormal termination:
Segmentation violation
...
"

The problem is that i don't always encounter this problem.
If I run a simple case with simulink, then it will work 5 times out of 30 runs. It seems to work pure randomly.
And if it runs, it also takes quite some time and seems to be stuck somewhere. it continuously repeats following message:
Warning: Initializing the model 'massaveersys' with the initial state specified in array format is not
recommended.

"The array format does not contain information about how the specified states are associated with the
respective blocks. Since the sorted order may change under different conditions, such associations are
necessary for achieving consistent results. Therefore, consider initializing the states using a structure
format.
This warning can disabled or changed to an error message by using set_param(modelName,
'InitInArrayFormatMsg', 'None') or set_param(modelName, 'InitInArrayFormatMsg', 'Error'). If you get the
initial state by using the save final state option, you can change the format to structural format to avoid
this warning too.
> In func at 14
In auto.runautodst at 161
In auto.auto>auto.runauto at 39
In massaveersyst at 35"

in the function file, at command line 14,their can be found the following:
o=massaveersys(0,u,par(1:3),'outputs');

So there seems to be an array problem that you didn't encounter. Any ideas how to solve my problems.
Thanks in advance,

Arne

ps: I have the following setup on my computer
- Windows 7
- Matlab r2012a
- Intel visual fortran xe 2011

14 Nov 2013 Etienne Coetzee

Hi Olle

I have not tested this with gfortran, which is what I assume you are using. You can get the Intel compiler for Linux for free, so maybe give that a go first.

R2012b has a new help interface. Check at the bottom of the help screen for "Supplemental Software" or type "doc -classic" on the command line. This should bring up the menu with the toolbox. docroot is only valid if you install to the actual docroot directory. Check to see if strcmp(dynasyshelproot,fullfile(docroot,'toolbox','dynasys')) is true. If not, place the whole name from fullfile(docroot,'toolbox','dynasys') into the info.xml file. If it is the same, make sure you have a $ sign and not a % in the file.

Regards

Etienne

13 Nov 2013 Olle

Hello Etienne,

I have some trouble getting the toolbox to work. I am running Matlab R2012b under Linux. Specifically, I have the following two issues.

I managed to install the toolbox but it do not turn up in the help or in any menu. The files seemed to be placed correctly under:
$matlabroot/toolbox/dynasys
and
%docroot/toolbox/dynasys

I have checked and the file info.xml point to %docroot/toolbox/dynasys
as pointed out below.

I also have some trouble compiling the mex files. The yprimef example works without problem so my fortran compiler seems to work. However I get errors when i run compileauto07('obj'). Here is the tail of the list of errors:

Warning: Type mismatch in argument 'a' at (1); passed INTEGER(8) to REAL(8)
CopyDstObjects.f90:1959.29:

CALL MatlabAPI_COM_Apx2(%VAL(mxGetPr(PARF7ptr2)), 1, D2 )
1
Error: Dummy argument 'a' of procedure 'matlabapi_com_apx2' at (1) has an attribute that requires an explicit interface for this procedure
CopyDstObjects.f90:2447.35:

CALL MatlabAPI_COM_Apx2(%VAL(mxGetPr(PARF8ptr2)), 1, D2 )
1
Warning: Type mismatch in argument 'a' at (1); passed INTEGER(8) to REAL(8)
CopyDstObjects.f90:1959.29:

CALL MatlabAPI_COM_Apx2(%VAL(mxGetPr(PARF7ptr2)), 1, D2 )
1
Error: Dummy argument 'a' of procedure 'matlabapi_com_apx2' at (1) has an attribute that requires an explicit interface for this procedure
Fatal Error: Error count reached limit of 25.

mex: compile of ' "CopyDstObjects.f90"' failed.

If you have any idea how to solve this it would be greatly appreciated.

Best regards

Olle

03 May 2013 Etienne Coetzee

HI Sudharsana

Comment out the lines where "setstatusbar" is called. There seems to be some Java incompatability. You can also look at the getting started documentation to see where the files need to be installed. You can then bypass the GUI.

Regards

Etienne

03 May 2013 Etienne Coetzee

HI Rajesh

I had a problem recently where the mex file was not detected, even though it was on the path. Make sure no other mex files are on the path, even if it is mexw32 etc. This seems to make a difference.

I think the INTEGER*4 was removed and changed to INTEGER. The type was automatically set.

You should maybe check to see if you can get the INTEL FORTRAN compiler for Linux. They give it out for free as far as I know. Maybe only for personal use. Your code is obviously compiling so it must be a path error in some way.

Regards

Etienne

02 May 2013 Sudharsana Iyengar

hi,
i encountered the following problem when i tried to instal dynasys.
i tried changing the root directory in that startup.m file.
can u please guide me. thanks
>> installdynasys
No appropriate method, property, or field
fFigureClient for class
com.mathworks.hg.peer.HG1FigurePeer.

Error in installdynasys>setstatusbar (line 369)
jRootPane = jFrame.fFigureClient.getWindow;

Error in installdynasys>installpb_Callback (line
316)
setstatusbar(gcf,'');

Error in gui_mainfcn (line 96)
feval(varargin{:});

Error in installdynasys (line 63)
gui_mainfcn(gui_State, varargin{:});

Error in
guidemfile/@(hObject,eventdata)installdynasys('installpb_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback
i am using matlab version 2012 a. in windows 8.
help me to instal thank u.

02 May 2013 Sudharsana Iyengar

i forgot to add i am using matlab 2012 a version in windows 8

29 Apr 2013 Etienne Coetzee

Hi Bruce

Check the info.xml file in dynasysroot. The documentation path should be the same as dynasysroot output.

Regards

Etienne

24 Apr 2013 Bruce

I am using the toolbox on MATLAB R2012b. The demos are working. But I don't see documentation in the MATLAB help.
I checked the 'dynasyshelproot' output and it shows the correct path for doc files.
How do I solve this problem?

24 Apr 2013 Rajesh Patil

Hello Etienne

I am trying to install the toolbox on 64 bit linux. The compilation command "compileauto07p;" given in documentation is giving error on my machine.
Using "compileauto07p('obj')" command, I see some object files created in the '/src/linux' folder. I also see 'AUTO07gateway.mexa64' file in the '/src' folder. But still I get "Could not find appropriate AUTO07gateway mex file for this platform" error. If I change directory to '/src' and then use 'runauto' command, every time the MATLAB session crashes.

Can please elaborate on what changes are required to compile on 64 bit machine? e.g. In documentation, you mention about changing INTEGER*4 to INTEGER*8, where exactly this change has to be made? What other changes are required?

02 Mar 2013 Etienne Coetzee

Hi Theo

It does work fine for 2012b. I have never tried it on OSX and don't have access to a Mac, so there may be some specific issues for you. I would however check that your mex installation is working first by compiling the yprime example. This is more often than not the issue. Then try to compile the toolbox once this is working. Sorry I can't be of more help.

Regards

Etienne

28 Feb 2013 Theo

I spent the day trying to get this to work under Matlab 2012b with OSX 10.8...unfortunately to no success. I hope the developer will revisit this project and make it compatible with the newer versions of Matlab.

04 Feb 2013 Etienne Coetzee

Hi ALi

I suggest you look at the "ab" demo. One of the examples show how to run an analysis with Simulink. This should work up to R2012a. I know that some significant changes have been made in R2012b, so I have not tested the software on this version yet.

Regards

Etienne

04 Feb 2013 Ali

how we can analyza a simulink model using Dynamic system toolbox

13 Nov 2012 Etienne Coetzee

Hi Kobi

We need to recompile the program for 64 bit machines, which I will hopefully get around two in the next week or two. There are some small things to check for such as Integer*8 variables etc, and sometimes the comment character also needs to be changed, depending on the compiler you are using. I have been using the Intel Fortran compiler. You should be able to use this on Linux for free, as you can download it from there. I am not sure what their licensing restrictions are though, but I think it is free for personal use. The windows version is not free though. I will try to compile this version and post an update as soon as time permits.

Regards

Etienne

13 Nov 2012 Kobi Enciu

Dear Etienne,

While trying to use the "ab" demo using "DST" mode on a Win64 machine, MATLAB crashes. Using "07p" mode runs without problem (Same results for both MATLAB 2011b and MATLAB 2012a releases). I exprerienced the same problem on a Linux Redhat machine.
The problem dissapears when running on a Win32 machine. Any idea as to how "DST" mode can bue used on a 64bit machine?

12 May 2012 Etienne Coetzee

Hi Lubo

I have not tested the software with versions later than 2011a. It may be due to this, so I guess there are new GUI features that may need to be updated.

In this case you can copy the files directly without the GUI. There are two directories to copy. Copy

1. 'dynasys\toolbox\dynasys' to [matlabroot,'\toolbox\dynasys']
2. 'dynasys\help\toolbox\dynasys' to
[docroot,'\toolbox\dynasys']

Make sure that the directories under these directories are added to the path.

Make sure the info.xml file in the first installation directory (step 1) points to the correct help location of step 2.

The toolbox should appear on the start menu of Matlab. Run the demos to check if it is working. You may have to recompile the fortran source code if you are on a very new Matlab version. I am not sure, but I have seen some posts about precompiled mex files that were compiled with intel fortran 9 in previous versions of Matlab not working with the latest version 2012a. I cannot confirm this though.

You can also read the DST_Getting_Started.pdf file in the zip file.

11 May 2012 Lyuboslav Petrov

Dear Etienne,

Could you give a hint for the installation of this clearly great toolbox?

I did run the installation by:
1. Uncompressing the folder, and adding it to the Matlab path with all subfolders.
2. Changed the startup.m file to have the correct paths for my machine.
3. Ran the installdynasys.m file by trying to install in the matlab/toolbox root, but received the following error "No appropriate method, property, or field fFigureClient for class
com.mathworks.hg.peer.HG1FigurePeer". Subsequently, tried to install at the current root, which was added to the path, but same error occurs.

Thanks!
Lubo

31 Mar 2012 Etienne Coetzee

HI Olexander.

I am not sure what the question is, but I am assuming that you are looking for help files in pdf format. The help has several links to PDF documents and web-sites on the starting page. Please clarify if this is not what you are asking for.

Etienne

30 Mar 2012 Olexander Zhytenko

Hello
Where it is possible to find in the format of PDf?

20 Oct 2011 Mr Smart  

Contact us