We recibed this question some weeks ago, and we want share our answer with all Abaqus2Matlab users:
Do you have any example where you used Matlab optimization toolbox and Abaqus to optimize the design of a structure?
To be clear, imagine you simulate tension of a specimen with a given geometry, and the goal is to use Matlab to (1) read the result, (2) change the geometry in the input file and (3) re-run the simulation in Abaqus until you get the desired results.
Your help is very much appreciated.
1 comment
Like
1 Comment
miguel muniz
Mar 17, 2017
The key idea is to transfer data (1) from Matlab to Abaqus and (2) from Abaqus to Matlab, in order to enforce a running optimization loop, where Matlab will play the role of the optimizer and Abaqus will play the role of the solver. You need to create a Matlab script which, when run, creates the appropriate Abaqus input file. Besides, you need a way to run Abaqus analysis inside Matlab, without interacting with Abaqus at all. Finally, you need to get the results from the Abaqus results file(s) into Matlab to continue the optimization process.
Each optimization loop consists of the following main operations:
(1) A Matlab script is run (inside Matlab), which creates an input file for Abaqus (*.inp)
(2) After this, the input file is run by Abaqus (inside Matlab) to produce a file in which the results of the analysis are stored. This file is called "results file" and has the extension *.fil. You can look in Abaqus Documentation for more information about this file and the way that the results are stored in it.
(3) Afterwards, the data written in the results file (*.fil) are retrieved by Matlab, by using the new powerful toolbox Abaqus2Matlab. It is a free open source code, which can be downloaded for free from the Abaqus2Matlab official website (www.abaqus2matlab.com). Abaqus2Matlab is a high-level post-processing toolbox linking Matlab and Abaqus.
After execution of step (3), the optimizer (Matlab) will automatically go again in step (1) and so on, until the optimization process is terminated.
I have set up some optimization procedures by using Abaqus and Matlab according to the above order of steps, two of which concern the classic 10-bar truss and 25-bar truss optimization problems, which are very well known benchmark problems exhaustively solved and used for testing new optimization algorithms.
The two packages (one for the 10-bar truss and one for the 25-bar truss) can be downloaded for free from the Abaqus2Matlab website.
You can watch how the optimization procedure works, and you can even use these two packages as a template to adjust them to fit your own optimization task. Remember that these packages contain only a (rather obsolete) portion of Abaqus2Matlab toolbox, since they were assembled and uploaded before the latest version of Abaqus2Matlab. You can use the last to explore the variety of its post-processing capabilities, and satisfy your needs in the optimum way.
Thank you very much for your interest.
Best regards and wishes,
George Papazafeiropoulos (Abaqus2Matlab work team)
The key idea is to transfer data (1) from Matlab to Abaqus and (2) from Abaqus to Matlab, in order to enforce a running optimization loop, where Matlab will play the role of the optimizer and Abaqus will play the role of the solver. You need to create a Matlab script which, when run, creates the appropriate Abaqus input file. Besides, you need a way to run Abaqus analysis inside Matlab, without interacting with Abaqus at all. Finally, you need to get the results from the Abaqus results file(s) into Matlab to continue the optimization process.
Each optimization loop consists of the following main operations:
(1) A Matlab script is run (inside Matlab), which creates an input file for Abaqus (*.inp)
(2) After this, the input file is run by Abaqus (inside Matlab) to produce a file in which the results of the analysis are stored. This file is called "results file" and has the extension *.fil. You can look in Abaqus Documentation for more information about this file and the way that the results are stored in it.
(3) Afterwards, the data written in the results file (*.fil) are retrieved by Matlab, by using the new powerful toolbox Abaqus2Matlab. It is a free open source code, which can be downloaded for free from the Abaqus2Matlab official website (www.abaqus2matlab.com). Abaqus2Matlab is a high-level post-processing toolbox linking Matlab and Abaqus.
After execution of step (3), the optimizer (Matlab) will automatically go again in step (1) and so on, until the optimization process is terminated.
I have set up some optimization procedures by using Abaqus and Matlab according to the above order of steps, two of which concern the classic 10-bar truss and 25-bar truss optimization problems, which are very well known benchmark problems exhaustively solved and used for testing new optimization algorithms.
The two packages (one for the 10-bar truss and one for the 25-bar truss) can be downloaded for free from the Abaqus2Matlab website.
You can watch how the optimization procedure works, and you can even use these two packages as a template to adjust them to fit your own optimization task. Remember that these packages contain only a (rather obsolete) portion of Abaqus2Matlab toolbox, since they were assembled and uploaded before the latest version of Abaqus2Matlab. You can use the last to explore the variety of its post-processing capabilities, and satisfy your needs in the optimum way.
Thank you very much for your interest.
Best regards and wishes,
George Papazafeiropoulos (Abaqus2Matlab work team)