Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Verschiebungssteuerung bei zyklischer Belastung

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:  Verschiebungssteuerung bei zyklischer Belastung (1682 mal gelesen)
Rechenknecht87
Mitglied
Student


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

Beiträge: 51
Registriert: 22.09.2014

erstellt am: 02. Jun. 2015 13:19    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, ich möchte gerne eine Struktur (Material: plastisch) zyklisch be- und entlasten (drücken und ziehen). Dabei soll mit zunehmender Zyklenzahl die Belastungsamplitude (Verschiebung) ansteigen. Die  Entlastung erfolgt über eine Verschiebungssteuerung in Kombination mit einer VUMAT. Das funktioniert auch soweit ganz gut.

Der Ablauf sieht etwa so aus:


1. Zyklus

1. Schritt: Kompression der Struktur um 10% ihrer Ausgangslänge (vorgegebene Verschiebung)
2. Schritt: Struktur wird entlastet bis die VUMAT (kraftgesteuert abbricht)

2. Zyklus

1. Schritt: Kompression der Struktur um 20% ihrer Ausgangslänge (vorgegebene Verschiebung)
2. Schritt: Struktur wird entlastet bis die VUMAT (kraftgesteuert abbricht)


3. Zyklus

1. Schritt: Kompression der Struktur um 30% ihrer Ausgangslänge (vorgegebene Verschiebung)
2. Schritt: Struktur wird entlastet bis die VUMAT (kraftgesteuert abbricht)

...


Mein Problem ist es, dass nach jedem Zyklus plastische Verformung zurückbleibt (die Struktur wird kürzer).

Bsp.:
Ausgangslänge = 10mm -> 1. Zyklus(1.0mm Kompression (10%) => 9.0mm ; Entlastung auf 9.5mm) -> Länge = 9.5mm
Wenn ich jetzt in den nächsten Zyklus gehe wird vom vorherigen Zustand ausgegangen:
Länge = 9.5mm -> 2. Zyklus(2.0mm Kompression (20%) => 9.5mm -2.0mm = 7.5mm)

Die Kompression wird im zweiten Zyklus auf den Zustand nun auf 25% (bezogen auf die Ausgangslänge =  10mm) komprimiert.
Gewünscht sind aber die tatsächlichen 20% Kompression.
Ist es möglich Abaqus mitzuteilen, dass bei der Kompression immer vom Anfangszustand der Struktur ausgegangen werden soll?


Ich hoffe, dass es halbwegs verständlich ist 

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

slein89
Mitglied



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

Beiträge: 139
Registriert: 30.04.2012

erstellt am: 02. Jun. 2015 14:34    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 Rechenknecht87 10 Unities + Antwort hilfreich

Wie genau wird denn der zweite Schritt abgebrochen? Zu dem Zeitpunkt wird doch auch eine ODB erstellt. Kannst du aus dieser ODB nicht eine Knotenposition auslesen, die dir deine Dehnung wiedergibt?

Grüße

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

schero
Mitglied
Wissenschaftlicher Mitarbeiter

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

Beiträge: 2
Registriert: 11.02.2013

erstellt am: 02. Jun. 2015 15:11    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 Rechenknecht87 10 Unities + Antwort hilfreich

Hey,

ich hoffe, ich hab alles richtig verstanden.

Rechne dir doch zu Beginn aus, welchen Endwert deine Verschiebungsrandbedingung am Ende der einzelnen Steps erreichen soll. Und den Wert der Verschiebung errechnest du dir dann darüber, dass du dir zunächst ausliest, welche Koordinaten deine Randbedingungsregion hat, dann diesen Wert vom vorher berechneten Wert abziehst und am Ende dieses Ergebnis für die Verschiebungsrandbedingung einsetzt.

Bezug auf dein Beispiel:
Ausgangslänge 10mm:

1. Endwerte berechnen: a) 9mm b) 8mm c) 7mm
2. erste relative Verschiebung ist trivial: 10mm-9mm=1mm
3. Endwert aus erstem Schritt auslesen: 9.5mm
4. neue relative Verschiebung berechnen: 9.5mm-8mm=1.5mm
5. usw....

Ginge das so?

Grüße

------------------
--

TU Chemnitz
Professur Festkörpermechanik

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

Mustaine
Ehrenmitglied V.I.P. h.c.



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

Beiträge: 3554
Registriert: 04.08.2005

Abaqus

erstellt am: 02. Jun. 2015 15:39    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 Rechenknecht87 10 Unities + Antwort hilfreich

Bei nichtlinearen Analyse wird die Modellhistorie immer an den nächsten Step weitergegeben.
Wenn man einen neuen Zweig braucht, kann man das über eine Restart-Analyse machen.

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

Rechenknecht87
Mitglied
Student


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

Beiträge: 51
Registriert: 22.09.2014

erstellt am: 02. Jun. 2015 21:04    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

Erstmal besten Dank für die schnellen Antworten.

@slein89
Der 2. Schritt wird mittels VUMAT Subroutine abgebrochen,  die Struktur wird quasi wieder so weit auseinandergezogen bis die Kraft an einem Sensorpunkt = 0 ist.

@schero
Das wäre auch mein Ansatz gewesen in Verbindung mit Restarts, die Mustaine erwähnt hat. Einen Zyklus rechnen lassen, den Endwert auslesen. Dann damit die nächste Kompressionsamplitude errechen und Restart...

Ich denke, es wäre vielleicht ganz sinnvoll ein zusätzliches Abbruchkriterium für die Kompression in VUMAT einzubauen. Das ich in den Schritten jeweils eine hohe Kompressionsamplitude vorgebe, durch die VUMAT aber beim erreichen der 10,20,30,50% abbricht und in die Entlastung geht. Werde ich mich die Tage mal etwas genauer mit beschäftigen ob das so möglich ist. Das mit den Restarts wäre dann die Notlösung, da unser Uni-Cluster momentan ziemlich gut ausgelastet ist und ich bei jedem Restart warten muss bis genug freie Ressourcen vorhanden sind damit die Rechnung anläuft. 

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

hempres
Mitglied



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

Beiträge: 84
Registriert: 30.06.2008

erstellt am: 02. Jun. 2015 22:33    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 Rechenknecht87 10 Unities + Antwort hilfreich

Hi,

ich mache so was ähnliches mit Sensoren in Kombination mit UAMP.

Grüße

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

Rechenknecht87
Mitglied
Student


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

Beiträge: 51
Registriert: 22.09.2014

erstellt am: 03. Jun. 2015 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

Was genau steuerst du denn mit den Sensoren und der UAMP?

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

slein89
Mitglied



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

Beiträge: 139
Registriert: 30.04.2012

erstellt am: 03. Jun. 2015 07:57    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 Rechenknecht87 10 Unities + Antwort hilfreich

Nur mal als Anregung, weil ich nicht weiß, inwiefern du auf die VUMAT angewiesen bist.

Schau dir mal die keywords "*EXTREME VALUE", "*EXTREME NODE VALUE" und "*EXTREME ELEMENT VALUE" an. Mit denen kannst du eine explizite Rechnung abbrechen, sobald deine beobachteten Variablen einen kritischen Wert über- oder unterschreiten. Du könntest den Entlastungsschritt zum Beispiel abbrechen, wenn deine Sensorkraft 0 beträgt und dir zu diesem Zeitpunkt die ODB rausschreiben lassen. In dieser ODB kannst du die Position/Verschiebung des Knotens auslesen, der dir die verbleibende Dehnung bestimmt. Mit dieser Information startest du dann den nächsten Zyklus (Python Skript gesteuert am besten) und passt die Amplitude entsprechend an.

Grüße

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

Rechenknecht87
Mitglied
Student


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

Beiträge: 51
Registriert: 22.09.2014

erstellt am: 03. Jun. 2015 08:07    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

@slein89

Muss ganz ehrlich sagen, dass ich in der Geschichte mit den Subroutinen nicht sonderlich tief drin stecke. Für das aktuelle Projekt habe ich die Routine meines  Vorgängers etwas umgebastelt.
Würde es denn generell funktionieren diese Ablaufsteuerung ohne VUMAT zu erledigen? Bspw. über ein Python-Skript?


Gibt es neben den Handbüchern evtl. noch andere Unterlagen in denen die ganzen Keywords für die Subroutinen mal aufgeschlüsselt sind?

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

slein89
Mitglied



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

Beiträge: 139
Registriert: 30.04.2012

erstellt am: 03. Jun. 2015 08:49    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 Rechenknecht87 10 Unities + Antwort hilfreich

Ich würde das komplette Problem über ein Python-Skript steuern, vielleicht noch in Kombination mit einem Shell Skript.

Wenn du das Problem kurz skizzieren würdest (wie sieht die Struktur aus und wie wird sie belastet), könnte ich es besser einschätzen. Wenn du die VUMAT einsetzt, weil ihr ein eigenes Material benutzt, wirst du ohne sie wohl nicht auskommen. Ansonsten kannst du auch die eingebauten Materialien von ABAQUS verwenden.

Die Geschichte mit dem "*EXTREME VALUE" ist unabhängig von der VUMAT, kannst du also auch mit eingebauten Materialien verwenden. Die ABAQUS Hilfe ist schon einigermaßen ordentlich, nur muss man sich erst mal daran gewöhnen, damit man weiß wo man was findet.

Grüße

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

hempres
Mitglied



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

Beiträge: 84
Registriert: 30.06.2008

erstellt am: 03. Jun. 2015 09:44    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 Rechenknecht87 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Rechenknecht87:
Was genau steuerst du denn mit den Sensoren und der UAMP?

Über die UAMP steuere ich die Verschiebung, z.B. wird so lange eine Verschiebung aufgebracht bis eine bestimmte Größe (berechnet aus den Sensoren) erreicht wurde. Du kannst Dir somit die Kompression über die Verschiebung der Sensorknoten direkt ausrechnen. Dieses hat den Vorteil, dass Du nur eine Rechnung brauchst, also kein Restart oder ähnliches.

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

Rechenknecht87
Mitglied
Student


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

Beiträge: 51
Registriert: 22.09.2014

erstellt am: 04. Jun. 2015 10:42    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


ExplizitVUAMP.txt


TestModell_INPUT.txt

 
@hempres
Genau das würde ich auch gerne machen. Eine Verschiebungssteuerung für die Belastung und für die Entlastung die Kraftsteuerung.
Ich habe da etwas rumprobiert, aber die Verschiebungssteuerung bekomme ich einfach nicht zum laufen. Ich denke, dass ich da einen Fehler beim auslesen des Sensors für die Verschiebung mache. Je nach dem wie ich die Bedingung in der IF-Anweisung (Verschiebungssteuerung) setze läuft das komplette Programm ab ohne das die Verschiebung gesteuert wird (Kraftsteuerung funktioniert). Oder Er bricht direkt nach dem ersten Entlastungsschritt ab weil die Bedingung zum Abbruch des 2. Belastungsschritts erfüllt sind. Da nichts verschoben wird ändert sich auch die Kraft am Sensor nicht und somit ist das Abbruchkriterium für den 2. Entlastungsschritt auch erfüllt. Die Rechnung endet nach dem ersten Lastzyklus.


Es wäre TOP wenn jemand von euch da mal kurz drüber schauen könnte. Evtl. ist es ja nur ein kleiner Fehler.

Habe mal mein Versuchsbeispiel angefügt.

Es ist ein einfaches Schalenmodell (schräg stehendes 'Rohr' mit S4R Elementen) mit zwei Lastzyklen.
Im 2. Lastschritt soll bei erreichen einer Verschiebung von -5.0 der Schritt abgebrochen werden und
mit dem 2. Entlastungsschritt weitergemacht werden.

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

Rechenknecht87
Mitglied
Student


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

Beiträge: 51
Registriert: 22.09.2014

erstellt am: 29. Jun. 2015 09:19    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

Habe die VUAMP nun zum laufen gebracht. Habe mir einmal die Sensordaten für die Verschiebung und die Kraft in ein textfile schreiben lassen. Dort konnte man sehen, dass die Sensorwerte für die Verschiebung zu Beginn eines Be- bzw- Entlastungsschritts schlichtweg falsch waren. Beispielsweise wurden Verschiebungswerte von -55 ausgelesen obwohl die tatsächliche Verschiebung bei bspw. -3 lag und somit das Abbruchkriterium für den Belastungsschritt erfüllt (bspw. U < -10). Woher dies kommt kann ich nicht sagen. Habe anschließend mal die Verschiebungssteuerung aus der VUAMP rausgenommen und erneut die Sensordaten rausgeschrieben. Hier konnte ich sehen, das wirklich nur im ersten Inkrement eine falsche Verschiebung am Sensor ausgelesen wird. Bei den folgenden Inkrementen sieht es wieder alles ganz normal aus.
Habe mir jetzt so geholfen in dem ich neben der Verschiebung noch die Schrittzeit >0 abfrage, der . Damit scheint es zu funktionieren. 

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