COSMAD is a toolbox for in-operation modal analysis and damage detection and localization,
What is it about ?
COSMAD is a
Scilab mouse/button driven toolbox
for in-operation modal analysis and damage
detection and localization.
If you know this topic, you may wish to know
more on our approach here, and to browse the list of journal and conference
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).
The COSMAD directory contains :
- modal file.
- START_UP directory : user's defined files, e.g. input data format, ...
- TOOL_DEMO directory : files for running the demo. Contents :
- Files project_fusion and project_linux for Linux/Unix platforms and project_windows_fusion and project_windows for Windows platforms.The first one is more suited as a demo of the multi patch algorithm, the other is more suited for online identification and detection.
- Two geometry files for the DEMO project: geo_rough (rough geometry) and geometry_file (more suited to localization by FE).
- The Files sub-directory contains the data.
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.
- Many auxiliary files for :
- damage detection : test_preprocessing_file
- damage localisation : test_localisation
- online detection : test_online
- fast online detection : test_fast_online
- HELP README directory containing all the previous files with detailed comments on the stored parameters.
- Two signature files:
- sig_modal for the damage preprocessing of the damage detection session,
- sig_FE for damage localization.
- PROGRAMS directory : files containing the programs.
- No man file. This is a fully mouse and button driven toolbox. Click on the help button at every stage.
Each New session is basically made of two files:
- the Project_file, keeping trace of both the location of all files involved in your project (identification and/or detection) and the parameter values.
- the Geometry_file, defining the finite element structure.
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.
- First line: the amount of double words allocated in memory. The default number is quite low. In case of problem, or to make the toolbox faster, feel free to increase it, manually or by the MEM option in the first window of the toolbox.
- Next lines: the stored projects, with comments.
- Last line: the current project, with comments.
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:
- Spatial and Euler coordinates and names of the points. The default option creates Point1, Point2, ..., all in the X direction, at [0 0 0] position.
- Sensors directions : -1 on X means that the sensor is in the -X direction.
- Structural parameters, used for the localization test : Young modulus in Newton/mm/mm, Poisson coefficient, density in T/mm/mm/mm.
- List of elements with their coordinates and structural properties ID; see example here.
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:
- my_patch_directory.sci : Directory of patches.
- my_patch_dir_exist.sci : Boolean equal to 1 if the directory is a Data directory of patches.
- my_list_patches.sci : List of patches in the Data directory.
- my_list_sensors.sci : List of sensors in the directory of patches.
- my_patch_exist.sci : Boolean equal to 1 if the directory is a directory of patches.
- my_read_file.sci : Your specific reading function.
Starting the demo
- Launch Scilab-4.0.
- Exec modal. If you launch Scilab in a directory different from the file modal, use the File/File operations button of the Scilab command window .
- Click on Project/Load.
- Validate the selection by clicking on a specific project name (only one here).
- Validate the data and structure files proposed.
- Choose Ident./Subspace.
- Choose Subspace/Start.
- Choose Visual./Run.
- Choose Pick mode and click on a point of the stabilization diagram.
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:
- With the button First exp : change the sensor selection, use Time series analysis to see the data, to filter, to select the desired time window for the identification.
- Launch Ident./Subspace.
- Check all the parameters of the identification procedure.
- Select the poles carefully.
- Save the signature.
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
- New beta released : 3.64 on August 28th : a few bug fixes
- New beta released : 3.63 on April 13th
A bug was found in the New project creation
- New beta released : 3.6 on April 13th
Known bugs in the 3.6 :
- New beta released : 3.6 on April 6th
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 :
- New beta released : 3.1.4 on February 7th
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 :
- New beta released : 3.1.2 on May 26th
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 :
- New beta released : 3.1.1 on Feb 20th
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 :
- New beta released : 3.1. on Feb 5th
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.