March 28th, 2025
Dit protocol schetst een algemene workflow voor het bouwen van een kunstmatig neuraal netwerk voor lassimulatie met behulp van datasets die automatisch worden gegenereerd via Python-scripts met macrofuncties. De workflow wordt gevalideerd aan de hand van een benchmarkcase met single-pass lassen in rechte lijn. De voorspellende nauwkeurigheid van het surrogaatmodel vertoont een sterke overeenkomst met eindige-elementensimulaties.
De reikwijdte van mijn onderzoek richt zich op het ontwikkelen van efficiënte surrogaatmodellen met behulp van machine learning, met name kunstmatige neurale netwerken om door lassen geïnduceerde restspanning te voorspellen. Onze belangrijkste focus ligt op het automatiseren van het genereren van gegevens voor lassimulatie om de efficiëntie te verbeteren. We hebben vastgesteld dat het automatiseren van het genereren van gegevens met Python-scripts en macrofuncties de installatietijd van simulaties aanzienlijk verkort, waardoor het mogelijk is om grote datasets te maken.
Bovendien voorspelt ons op kunstmatige neurale netwerken gebaseerde circuitmodel nauwkeurig door lassen geïnduceerde restspanning, waarbij een relatieve gemiddelde kwadratische fout van 0,0024 wordt bereikt. het bereiken van een relatieve gemiddelde kwadratische fout van 0,0024. Ons protocol biedt voordelen door het automatiseren van het genereren van gegevens via Python-scripts en macrofuncties, waardoor de tijd en moeite die nodig zijn voor het instellen van simulaties en gegevensextractie worden verminderd.
Dit zorgt voor consistentie en maakt het mogelijk om een uitgebreide dataset te creëren voor het trainen van machine learning-modellen. Om te beginnen, open Abaqus en klik op bestand, gevolgd door stel werkmap in om de werkmap in te stellen. Klik vervolgens achtereenvolgens op bestand macromanager werk en maak een macro met de naam thermische opname.
Maak een model voor het lassen van samples. Gebruik als voorbeeld een enkele lasrups op de benchmarkbehuizing van de plaatstructuur. Klik op onderdeel gevolgd door onderdeel aanmaken.
Maak een 3D vervormbaar halfmodel van het preparaat door een vierkante schets op het XY-vlak te extruderen. Klik nu op onderdeel, navigeer om een referentievlak te maken en selecteer offset uit het hoofdvlak. Definieer het begin- en eindpunt van het lassen door offsets van het YZ-vlak op te geven op basis van de rupslengte.
Maak vervolgens twee extra referentievlakken voor de kraaldiepte en -breedte door offsets van respectievelijk het XY-vlak en het XZ-vlak op te geven. Klik op onderdeel en selecteer de optie Partitiecel gebruik datumvlak om celpartities van het monster te maken met behulp van de vier datumvlakken. Klik vervolgens op onderdeel en selecteer effen extruderen maken.
Maak een schets op een van de referentievlakken om het deel van de lasnaad onder het bovenoppervlak van het monster te definiëren. Gebruik een boog en twee lijnen volgens de afmetingen van de kraal. Extrudeer de schets tot de diepte van de kraallengte om de snede te maken.
Extrudeer vervolgens de schets tot de kraallengte terwijl u interne grenzen behouden selecteert. Klik op onderdeel en selecteer vervolgens datumvlak maken en verschuiven van hoofdvlak. Schets de lasrups met behulp van twee bogen in één lijn op een van de referentievlakken.
Klik op deel, selecteer partitiecel en gebruik het referentievlak om celpartities van het monster te maken met behulp van de vier datumvlakken die u wilt vinden. Om het materiaal van roestvrij staal AISI 316 LN te definiëren, klikt u op eigenschap en materiaal maken, definieert u vervolgens de dichtheid in het algemene menu en de geleidbaarheid en specifieke warmte in het thermische menu met behulp van temperatuurafhankelijke gegevens. Wijs vervolgens materiaal toe aan het model.
Klik op eigenschap en maak vervolgens een sectie aan om een homogene massieve sectie te maken met het gedefinieerde materiaal. Klik op eigenschap, sectie toewijzen om de gemaakte sectie aan het model toe te wijzen. Klik nu op stap, gevolgd door stap maken om een warmteoverdrachtsstap met de naam lassen te maken met een tijdsperiode van 26,43 en een vast tijdsinterval van 0,1, zodat er geen niet-lineariteit van de geometrie is.
Maak een andere warmteoverdrachtsstap met de naam koelen met een tijdsperiode van 70 met behulp van adaptieve tijdsintervallen met initiële, minimale en maximale stapgroottes die zijn ingesteld op respectievelijk 0,1, 0,05 en 5. Stel deze in op respectievelijk 0,1, 0,05 en 5. Maak ten slotte een warmteoverdrachtsstap met de naam koeling twee met een tijdsperiode van 2.000 met behulp van adaptieve tijdsintervallen met initiële, minimale en maximale stapgroottes die zijn ingesteld op respectievelijk 5, 1 en 100.
Om de modelattributen in te stellen, klikt u op model, attribuut bewerken. om toegang te krijgen tot de kenmerkinstellingen. Stel de temperatuur voor het absolute nulpunt in op 273,15.
Stel de temperatuur voor het absolute nulpunt in op 273,15. Geef de constante van Stefan-Boltzmann op als 5,67 x 10 tot de macht 11. Klik op stap en maak velduitvoer om een nodale temperatuuraanvraag voor het hele model in te stellen.
Klik vervolgens op assembly en maak een instance aan om een afhankelijke instance aan te maken. Klik vervolgens achtereenvolgens op interactie, creëer interactie en oppervlaktefilmconditie om een interactie met de oppervlaktefilmconditie te creëren met een filmcoëfficiënt tot 15 en een zinktemperatuur van 20 op alle oppervlakken van het model behalve het symmetrische vlak. Stel de startstap in als lassen.
Klik nu achtereenvolgens op interactie, creëer interactie en oppervlaktestraling om een oppervlaktestralingsinteractie te creëren met een emissiviteit van 0,7 en een omgevingstemperatuur van 20 op alle oppervlakken van het model behalve het symmetrische vlak. Stel de startstap in als lassen, definieer belastingen in de belastingsmodule. Klik op belasting, maak thermische belasting en lichaamswarmteflux om een door de gebruiker gedefinieerde lichaamswarmtefluxbelasting te creëren die begint in de lasstap en inactief is tijdens de twee koelstappen.
Klik vervolgens op laden, maak een vooraf gedefinieerd veld, andere en veld om een vooraf gedefinieerd temperatuurveld te maken vanaf de eerste stap om een kamertemperatuur van 20 weer te geven. Om een mesh in de mesh-module te maken, klikt u op mesh, selecteert u het object dat deel uitmaakt en seed-deel om het deel te seeden met een globale grootte van 0,0024. Klik op gaas en vervolgens op de randen om de randen van de kraaldiepte en de kraalbreedte met een getal van 3 te zaaien.
Zaai de rand van de boog met een getal van 3 en de rand van de kraallengte met een grootte van 0,0015. Klik vervolgens op net, wijs gaasbedieningselementen toe en gebruik het TET-vormelement met de vrije techniek voor het kraalgebied. Klik op mesh, wijs het elementtype toe en stel het elementtype in op DC 3D 10 en mesh vervolgens het onderdeel.
Gebruik mesh en vervolgens zaadranden naar zaadranden die botsen met de X-as binnen het fijnmazige gebied met een grootte van 0,0015, de Y-asranden met een grootte van 0,0011 en de randen van de Z-as met een grootte van 0,00075. en de randen van de Z-as met een grootte van 0,00075. Klik nu op mesh, gevolgd door toegewezen mesh-besturingselementen om mesh-besturing toe te wijzen voor het resterende gebied, met behulp van het hexadecimale vormelement met de veegtechniek.
Klik vervolgens op mesh, wijs het elementtype toe en stel het elementtype in op DC 3D 20, gevolgd door het meshen van het onderdeel. Klik op taak, maak taak om een taak met de naam thermische analyse te maken en voeg de subroutine van de D-fluxgebruiker toe. Stop de macro-opname.
Controleer of een Python-bestand met de naam abaqusMacros. PY wordt gegenereerd in de werkmap. Klik ten slotte op taak, taakbeheerder en verzend.
Een resultaatbestand met de naam ThermalAnalysis. ODB wordt gegenereerd. Longitudinale spanningen langs de BD-lijn vertoonden een consistente variatie tussen verschillende combinaties van boogreislengte, geavanceerde boogsnelheid en netto energie-invoersnelheid, waarbij de spanning dichter bij het oppervlak piekte en op diepere diepten afnam.
De meeste discrepanties tussen eindige-elementensimulatie en voorspellingen van kunstmatige neurale netwerken vielen binnen het bereik van 0 tot 2 megapascal, goed voor 45,2% van de testgegevens. Stressniveaubakken met minder trainingsdatapunten vertoonden hogere maximale verschillen in de testdataset, zoals te zien is in absolute restanten van specifieke bins. Voorspellingen van kunstmatige neurale netwerken kwamen nauw overeen met de resultaten van eindige-elementensimulatie met een gemiddelde kwadratische fout van 0,0024.
Dit protocol beschrijft een werkstroom voor het construeren van een kunstmatig neuraal netwerk voor lassimulatie met behulp van geautomatiseerde datasets die gegenereerd worden door Python-scripts. De werkstroom is gevalideerd aan de hand van een benchmarkgeval van lassimulatie met één doorgang en een rechte lijn, waarbij een sterke voorspellende nauwkeurigheid wordt gedemonstreerd.
Automated surrogate modeling for welding-induced residual stress prediction addresses a critical bottleneck in digital experiment scalability and reproducibility. By leveraging machine learning and automated data generation, this workflow enables rapid hypothesis testing and robust model validation, supporting risk-adjusted decision-making in advanced manufacturing R&D. The approach enhances predictive confidence and operational efficiency at key inflection points in process development pipelines.
This surrogate modeling workflow integrates into the digital experiment continuum, spanning early process discovery through simulation-driven optimization and preclinical validation.