This is the code repository for the paper: Coupled Finite-Element-Method-Simulations for Real-Time-Process Monitoring in Metal Forming Digital-Twins
In many industrial processes it is not possible to measure variables that are crucial to the output quality of the manufactured goods due to manufacturing constraints. One possible approach to overcome this lack of information is using a digital-twin of the manufacturing plant. A digital-twin can make use of data generated by numerical simulation techniques to infer the real time state of the machine. Digital-twins are an established technology and will play a crucial role in optimizing manufacturing plants in the near future. The digital real time state of the manufacturing plant can be used to warn machine operators in case a predefined process window is not reached and the output is expected to violate Original Equipment Manufacturer (OEM) requirements. This work shows a developed control system and how using a digital twin improves the predictive power of the system. Machine learning models are used to infer the cooling curves of metal sheets in a press hardening process. They are trained on coupled Finite-Element-Method (FEM) Simulation data. We validate the performance of our models on the simulation data and find accurate estimations of the metal blanks temperature with a root mean squared error of 1.6±0.5 K, with this not being possible to measure beforehand.
Full text: https://ieeexplore.ieee.org/document/10011608
- Overview
- Repository Structure
- Prerequisites
- Installation
- Usage
- Simulation Parameters
- Citation
- License
This repository contains the complete pipeline for generating, running, and analyzing coupled FEM simulations for a press hardening process. The workflow includes:
- Parametric generation of FEM input files for different process conditions
- Batch execution of ABAQUS simulations
- Extraction of temperature data from simulation results
- Data merging and preprocessing
- Machine learning model training and analysis
CoupledFEMSimulations/
├── FEM_Template/ # Template files for FEM simulations
│ ├── Step1_template.inp # Oven heating step template
│ ├── Step2_template.inp # Transfer step template
│ ├── Step3_template.inp # Press hardening step template
│ └── inp/ # Generated input files
│ ├── step1/
│ ├── step2/
│ └── step3/
├── batchfiles/ # Generated ABAQUS batch execution files
├── raw/ # Raw extracted temperature data
├── merged/ # Merged and processed data
├── timestamps/ # Timestamp information
├── data_analysis/ # Jupyter notebooks for analysis
│ ├── DataExploration.ipynb
│ ├── Estimator_FEM_Data.ipynb
│ └── Estimator_FEM_Data_TSSplit.ipynb
├── images/ # Plots and visualizations
├── generate_inp_files.ipynb # Main notebook for input file generation
├── extract_temps.py # Temperature extraction script
├── merge_data.py # Data merging script
└── README.md # This file
- ABAQUS (for running FEM simulations)
- Python 3.x with the following packages:
numpypandasscipymatplotlibjupyter
- ABAQUS Python (for temperature extraction)
-
Clone this repository:
git clone https://github.com/yourusername/CoupledFEMSimulations.git cd CoupledFEMSimulations -
Install required Python packages:
pip install numpy pandas scipy matplotlib jupyter
-
Ensure ABAQUS is installed and accessible from the command line.
Open and execute the Jupyter notebook to generate FEM input files for all parameter combinations:
jupyter notebook generate_inp_files.ipynbExecute all cells in the notebook. This will:
- Generate input files for three simulation steps (oven heating, transfer, press hardening)
- Create ABAQUS batch files for parallel execution
- Split batch files into smaller chunks for distributed processing
Parameter Grid:
- Oven temperatures: 800-1000°C (21 steps)
- Tool coolant temperatures: 60-170°C (12 steps)
- Heat fluxes: Calculated based on oven temperature
- Press forces: 10-25 kN (16 steps)
- Press holding times: 4-10 seconds (4 steps)
Execute the generated batch files using ABAQUS:
# Run all simulations for step 1
cd batchfiles
call jobfile_step_1.bat
# Or run split batches for parallel processing
call jobfile_step_1_part_0.bat
call jobfile_step_1_part_1.bat
# ... etc.Repeat for steps 2 and 3. The simulations will generate .odb output database files.
Extract temperature data from the ABAQUS .odb files using the extraction script:
abaqus python extract_temps.pyThis script:
- Reads all
.odbfiles from theFEM_SIMSdirectory - Extracts temperatures at specific nodes for the workpiece and tools
- Saves time-series data to CSV files in the
raw/directory
Monitored nodes:
- Tool nodes: Stamp (inner/outer), Die (upper/middle/lower)
- Workpiece nodes: Bottom, Flange (lower/middle/upper)
Merge temperature data from all three simulation steps:
python merge_data.pyThis script:
- Groups simulation results by parameter sets
- Concatenates data from sequential simulation steps (M1 → M2 → M3)
- Saves merged datasets to the
merged/directory
Explore and analyze the simulation data using the Jupyter notebooks in the data_analysis/ folder:
cd data_analysis
jupyter notebookAvailable notebooks:
DataExploration.ipynb: Initial data exploration and visualizationEstimator_FEM_Data.ipynb: Machine learning model trainingEstimator_FEM_Data_TSSplit.ipynb: Time-series split validation
The simulation models a three-step press hardening process:
| Step | Description | Key Parameters |
|---|---|---|
| Step 1 | Oven heating | Oven temperature, heat flux |
| Step 2 | Transfer to press | Coolant temperature, transfer time |
| Step 3 | Press hardening | Press force, holding time, cooling rate |
Total simulation combinations: ~300,000 parameter sets
If you use this code in your research, please cite:
@article{neubuerger2023coupled,
title={Coupled Finite-Element-Method-Simulations for Real-Time-Process Monitoring in Metal Forming Digital-Twins},
author={Neub{\"u}rger, F. and others},
journal={IEEE Transactions on Industrial Informatics},
year={2023},
doi={10.1109/TII.2023.10011608}
}This project is licensed under the MIT License - see the LICENSE file for details.