variance Subspace Modal Analysis and Diagnosis
A free Modal Analysis and Diagnosis Toolbox

COSMAD  is a toolbox for in-operation modal analysis and damage detection and localization,

To get information on COSMAD's licence, please contact Laurent Mevel.

For bug fixes and a list of new features, see News

What is it about, News, Functions, Installation, How is it working, Demo, Go, Contact

What is it about ?

COSMAD is a Scilab mouse/button driven toolbox for in-operation modal analysis and damage detection and localization.

If you are not familiar with this topic and wish to know more about it, go here.

If you know this topic, you may wish to know more on our approach here, and to browse the list of journal and conference papers describing the foundations and properties of the algorithms implemented in the toolbox, go there.

The design of the algorithms and of the toolbox has been and still is a joint work of the research projects Sigma2 and Metalau. It has been partly supported by Eureka project no 1562 Sinopsys (model based Structural monitoring using IN-OPeration SYStem identification) and Eureka project no 2419 Flite (FLIght Test Easy).

Ongoing research aiming at handling environmental effects is described here   (in French).





  1. In the default case, the data are supposed to be in one global directory with sub-directories corresponding to different patches (experiments). A file contains the temporal data for one sensor, collected in a single ASCII column file. To adapt the input procedure to your case, see here.
  2. Every window  should be closed using its END button.
  3. Many windows are interactive. Feel free to click.



The COSMAD directory contains : 

The first one is more suited as a demo of the multi patch algorithm, the other is  more suited for online  identification and detection.

These data have been used as a benchmark within the former COST action F3 Structural Dynamics, and have been made available with the courtesy of Jean-Claude Golinval. More information in :

F.J. Molina, R. Pascual, J.-C. Golinval (2003).  'Description of the Steelquake Benchmark'. Mechanical Systems and Signal Processing, 17(1), 77-82.


How is it working ?

Each New session is basically made of two files:

Some additional files may be created by the toolbox, especially during the damage detection and localization procedures.

The default directory for the files is either the directory where Scilab has been launched, or the directory where the project_file is. This can be changed using the Load Menu.


Project manager

A project is stored if it has been saved once. A project is the last project if it has been saved during the last session.

The different projects are in the file list_projects_3.0 for Linux/Unix platforms, or list_projects-win-3.0 for Windows platforms. If an old project is not found during startup, clicking on Save removes it from the projects list. This remark applies to all the files created by the toolbox, such as those created during the damage detection and localization stages.

A project_file is automatically managed and updated by the toolbox. Nonetheless, it is written under a formatted text layout, allowing easy modifications whenever necessary. An easier solution for the beginner is to use the toolbox on new data, and automatically build the project_file while using the toolbox.

Every project_file is stored together with a dedicated comment line, used to reference the project inside the toolbox. Each project_file must have a different comment: projects are no longer referenced by their path.


The geometry_file defines the finite element structure, and contains the:

A geometry_file should be defined and completed outside the toolbox.

A geometry_file contains its own comment line attached to it. Two geometry_files with the same comments are considered to be equal even if the paths are differents. This comment applies to all the files generated by the 3.0 version of the COSMAD toolbox.



Be careful if you want to create a new project_file, or if you want to modify a project_file created by the toolbox.

The best solution, provided that you understand the inner working of the toolbox, is to define those files manually. This is  especially true if you want to give special names and directions to the points of the structures. Links between elements have to be edited manually. The project_file stores absolute path for all patches loaded since the beginning of the project. If patch paths are changed or not found, you can select them by the Copy/Replace option in the Data Menu. A patch selection is noted ok when it is fully affected to the geometry and ready for work.

Binary files generated by the toolbox are not platform independent, even between Linux and Unix.

Changing the input procedure

Edit and modify the Scilab functions defined in the directory Startup:


Starting the demo

and discover all the other possibilities.

The files project_linux and project_windows contain the parameter of the identification procedure realized in this example.

Typical ways to play
with the example

Go !

Being able to handle all the steps of the demo,  you can now load your own data, and perform similarly the modal analysis (identification). Then, with the results of the identification stage, you can enter the damage detection and localization stages.

Good Scilabing and eigenstructure manipulation !



                         A few bugs corrected + Localization module finished                          A bug was found in the New project creation
             Known bugs in the  3.6 :
                        Some Menu <Cancel> buttons  did not worked
                        The Geometry setup file OK/CANCEL has to be pushed many times.
                        The Browse menu does not work.

            New features in the 3.6 :
                        The graphic engine has been reworked for Scilab 4.0
                         Localization module has been completely rewritten
                         New much faster automated extraction procedure
                         Menu are using TK/TCL
             Known bugs in the 3.1.2 beta fixed in the 3.1.4 beta :
                         a memory leak problem has been fixed in the fast detection approach
             Known bugs in the 3.1.1 beta fixed in the 3.1.2 beta :
                         Not using first correlations in the correlation tail in subspace was not well implemented
                         Sensors patchs of size 10/20/30 etc crashed the toolbox
             Known bugs in the 3.1 beta fixed in the 3.1.1 beta :
                        Some Menu <Cancel> buttons  did not worked
                        Zoom window borders were not visible on Windows platforms

            New features in the 3.1.1 beta :
                        A Time start index has been added
                         Loaded patchs paths are now saved relatively to the patch directory
                         Possibility of selecting all sensors at once in <Patch Selection>
                         Flip selection is enabled in <Patch Selection>
                         For <Detection/Localisation> the names of sensitivities for Mass and Stiffness are now stored  differently
                         <Ident/Subspace/Save> : more info is stored in the file
            Known bugs in the 3.0 Release fixed in the 3.1 :
                        Ident/Recursive monitoring/Run crashes
                        Detection/Localisation/New/Create new project crashes the program
                        Switching between geometry files is not stored when the project is saved
                        Cancel dans Ident/Subspace/Save crashes the program
                        Ident/Monitoring : Using Increasing Window in Monitoring may lead to bad alignments for frequency and dampings when clicking on the results plot
                        Ident/Monitoring/Hankel size tuning : Pause is not working / Break do continue
                        Ident/Resume/Run without Visual/Load crashes the program
                        Detection/Test and Detection/Localisation patch switching works
                       The Damping histogram may crash under Visual/Run/Automated Selection/Histo

            New features in the 3.1 beta :
                      Subspace identification : 2 different types of least squares approach
                      Subspace identification : tuning of the number of poles for each increasing model order (from 1 to the number of sensors)
                      Localisation/Fusion      : reworking of the selection of non detectable FE


Please report any bug if and only if you have got one and you can repeat it.

For bug report and questions: contact Laurent Mevel and Maurice Goursat.


Last modification on January 15, 2005 by Laurent Mevel.