Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Abaqus in Matlab aufrufen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Abaqus in Matlab aufrufen (4400 mal gelesen)
mokinky
Mitglied



Sehen Sie sich das Profil von mokinky an!   Senden Sie eine Private Message an mokinky  Schreiben Sie einen Gästebucheintrag für mokinky

Beiträge: 16
Registriert: 11.12.2008

erstellt am: 15. Jan. 2009 11:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

Die Frage ist wahrscheinlich sehr allgemein gestellt. Vielleicht ergibt sich das in weiterer Diskussion.
Ich möchte die Ergebnisse meines Abaqus-Modells an meine Messungen anpassen, sprich Parameteridentifikation. Kann ich Abaqus in Matlab aufrufen und Eigenvektoren, -werte, Spannungen (usw.) dann einlesen und wenn ja wie?
Ich hatte mir sonst überlegt die Identifikation in einer Subroutine zu programmieren. Allerdings hab ich darin noch keine Erfahrungen und weiß auch nicht ob das überhaupt möglich ist...

Vielleicht hat ja jemand eine Idee dazu...Danke schonmal im vorraus!!!

Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

carsten1983
Mitglied
Doktorand


Sehen Sie sich das Profil von carsten1983 an!   Senden Sie eine Private Message an carsten1983  Schreiben Sie einen Gästebucheintrag für carsten1983

Beiträge: 125
Registriert: 11.10.2007

erstellt am: 15. Jan. 2009 12:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mokinky 10 Unities + Antwort hilfreich

Ich weiß nicht wie sehr du wirklich an Matlab gebunden bist. Wenn du ein bischen flexibel bist, kannst du wahrscheinlich (bis auf die Simulink Schnittstelle) alles auch in Python erledigen. Es gibt Module für Python die sind stark an die Matlab Syntax angelehnt. Vielleicht lohnt für dich ein Blick auf das Numpy/Scipy Package. Dort sind sehr viele Funktionen und Algorithmen zusammengetragen. Damit könntest du dann direkt aus dem Python Interpreter in Abaqus die ganze Auswertung vornehmen.

Ich weiß, dass das keine direkte Antwort auf deine (sehr diffus gestellte) Frage ist, aber vielleicht taugt es ja als Denkanstoß.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mokinky
Mitglied



Sehen Sie sich das Profil von mokinky an!   Senden Sie eine Private Message an mokinky  Schreiben Sie einen Gästebucheintrag für mokinky

Beiträge: 16
Registriert: 11.12.2008

erstellt am: 15. Jan. 2009 13:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ja, sorry...die Frage ist wirklich ziemlich bescheiden gestellt 
Der Denkanstoß hilft mir auf jeden Fall schon weiter, aber ich versuch die Frage nochmal etwas deutlicher zu formulieren:
Ich habe mittels Modalanalyse eine Platte vermessen und diese in Abaqus modelliert. Da ich die Lagerung allerdings nicht zu 100% modellieren kann, da ich keine Informationen über das Material, in das die Platte (an den Kanten) gebettet ist, bekomme, möchte ich mittels Parameteridentifikation Steifigkeit und Dämpfung der Lagerung bestimmen; sprich, ich schreibe einen Algorithmus, der mit den Eigenwerten und -formen aus der Messung auf die gewünschten Parameter in mehreren Iterationsschritten zurückrechnet. Die Iterationsschritte soll dabei Abaqus jedesmal rechnen (laut Theorie ca. 30 - 40 Schritte). Da ich mit Matlab schon gearbeitet habe, wäre es bequemer für mich, ich bin aber nicht wirklich an Matlab gebunden, von daher wäre NumPy eine Alternative...

Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

carsten1983
Mitglied
Doktorand


Sehen Sie sich das Profil von carsten1983 an!   Senden Sie eine Private Message an carsten1983  Schreiben Sie einen Gästebucheintrag für carsten1983

Beiträge: 125
Registriert: 11.10.2007

erstellt am: 15. Jan. 2009 14:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mokinky 10 Unities + Antwort hilfreich

Verstehe ich dich richtig, du hast ein Modell, bei dem du ein paar Parameter bisher nur abgeschätzt hast. Jetzt möchtest du mithilfe eines iterativen verfahrens die Parameterkombination finden, die deine Messungen abbilden.

In meinen Augen wäre ein mögliches Vorgehen wie folgt:
1. Ermitteln wie der Pythonbefehl aussieht mit dem die Parameter aufgegeben werden.
2. Ein kleines Script schreiben, dass dein Modell öffnet und die Parameter an entsprechender Stelle einträgt.
3. Dieses Script durch eine Funktion im Abaqusinterpreter (oder außerhalb auf Umwegen) aufrufen. Diese Funktion soll mithilfe von Scipy.optimize (Scipy Package) eine Minimierung nach der Methode der kleinsten Fehlerquadrate durchführen. Hierbei sollen dann die Parameter (Steifigkeit und Dämpfung der Lagerung) von der Minimierungsfunktion variiert werden.

Dieses Vorgehen ist allerdings nur Theorie und ich weiß nicht ob du tatsächlich eine vernünftige Fehlerfunktion aufstellen kannst, die du minimieren kannst. Wenn ja, wäre das sicherlich ein Weg zum Ziel.

   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Henry Winter
Mitglied
Maschinenbauingenieur

Sehen Sie sich das Profil von Henry Winter an!   Senden Sie eine Private Message an Henry Winter  Schreiben Sie einen Gästebucheintrag für Henry Winter

Beiträge: 2
Registriert: 08.01.2009

CATIA V5R17 (+GSD,+GPS)
IDEAS 12
HYPERMESH 9.0
ABAQUS 6.7

erstellt am: 16. Jan. 2009 07:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mokinky 10 Unities + Antwort hilfreich


extract.zip

 
Hallo zusammen,

ich habe einen weiteren Vorschlag, fasse aber zuvor mal mein Verständnis des Problems zusammen:

Mokinky hat ein Abaqus-Modell, das im Ergebnis Eigenfrequenzen einer gelagerten Platte berechnet. Diese weichen aber von den gemessenen ab – es wird vermutet, daß die Materialparameter, insbesondere die der Lagerung, die Abweichung verursacht. Ziel der folgenden Anstrengungen ist es, die Materialparameter der Lagerung so anzupassen, daß simulierte und gemessene Eigenfrequenz übereinstimmt.

Habe vor vielen Jahren folgende Methode im Abaqus-Umfeld angewendet, um dehnratenabhängige Materialparameter für die Crashsimulation von Kunststoffbauteilen zu identifizieren. Ich denke folgende Vorgehensweise könnte hilfreich sein:

Fasse das Problem als ein Optimierungsproblem auf. Die Optimierungsschleife kann so aussehen:

Im ersten Schritt wird ein Abaqus Modell des Versuchs modelliert und die interessierenden Materialparameter im Abaqus-Input-Deck parametrisieret. Das heißt, Deine Materialparameter, auch Designparameter genannt, können durch ein Skript veränderlich sein (z.B. Shell Skript auf Betriebssystemebene).

Im nächsten Schritt startet ein (Shell-) Skript den Abaqus-Solver, der in Abhängigkeit der Design-Parameter, eine Eigenfrequenz der Platte berechnet.

Anschließend wird die Eigenkreisfrequenz als Systemantwort über ein Python Skript (wiederum über das Shell-Skript gestartet) ausgelesen und in eine ASCII Datei geschrieben.

Ein weiteres Modul, der Optimierer, liesst die Systemantwort aus der Datei, und berechnet z.B. aus Differenz von gemessener Eigenfreqeunz und Eigenfrequenz der Simulation die Abweichung, hier auch Zielfunktion genannt. Wenn man einen passenden Optimierer verwendet, so ist dieser in der Lage die Abweichung, also die Zielfunktion, durch methodische Veränderung der Designparameter zu minimieren.

Das geschieht im nächsten Schritt: der Optimierer schlägt einen neuen Satz Materialparameter vor, die wiederum Skript gesteuert in das Abaqus-Input-Deck geschrieben werden. Somit ist die Optimierungsschleife geschlossen und es besteht eine Chance, daß mit wiederholtem, skript-gesteuerten Durchlauf die Zielfunktion minimiert wird und so die gemessene und simulierte Systemantwort übereinstimmt. In diesem Fall hast Du den gewünschten Abaqus-Materialdaten-Parametersatz identifiziert.

Ich habe selbst als Optimierer Hyper-Study aus der Famile Altair-Hyperworks verwendet. Hyper-Study bietet die Möglichkeit über Shell-Skripte beliebige Solver, Programme und Tools zu starten und auch auf deren Ergebnisse zuzugreifen.

Im Anhang ein Python Skript, daß auf eine Abaqus-ODB (Expliziter Solver) zugreift, eine bestimmte Kraft ausließt, sowie Zeit und Betrag der Kraft in eine Datei schreibt. Das sollte in ähnlicher Weise auch für Deine Eigenkreisfrequenz funktionieren. Nähere Infos zur Funktion des Skripts auf Anfrage.

Gruß,

Henry.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

carsten1983
Mitglied
Doktorand


Sehen Sie sich das Profil von carsten1983 an!   Senden Sie eine Private Message an carsten1983  Schreiben Sie einen Gästebucheintrag für carsten1983

Beiträge: 125
Registriert: 11.10.2007

erstellt am: 16. Jan. 2009 08:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mokinky 10 Unities + Antwort hilfreich

Im Prinzip kann ich den sehr detailierten und anschaulichen Ausführungen meines Vorredners nur zustimmen, allerdings würde ich zwei Dinge anders tun:

1. Würde ich nicht noch eine weitere Scriptsprache oder ähnliches ins Boot holen, da Python alle genannten Schritte sehr gut selbst kann.
2. Könnte man( muss nicht) wahrscheinlich alles aus dem Python Interpreter in Abaqus laufen lassen und verzichtet, damit der Einfachheit halber, auf ein externes Aufrufen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mokinky
Mitglied



Sehen Sie sich das Profil von mokinky an!   Senden Sie eine Private Message an mokinky  Schreiben Sie einen Gästebucheintrag für mokinky

Beiträge: 16
Registriert: 11.12.2008

erstellt am: 16. Jan. 2009 14:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Wow...vielen Dank für die wirklich umfangreiche Hilfe. Damit bin ich mehr als glücklich.

Echt super. Danke, danke, danke, ...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz