Autor
|
Thema: Thermoelastisches Material für Festkörper 3d (2860 mal gelesen)
|
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 15. Jan. 2009 14:05 <-- editieren / zitieren --> Unities abgeben:
Hallo alle zusammen! Könnte jemand einem blutigen Anfänger wie mir helfen? Ich benutze Abaqus zur Nachrechnung und Verifizierung meines FEM-Codes in meiner Diplomarbeit. Leider blick ich bei dem Programm nicht durch. Ich wäre total dankbar, wenn mir da jemand bisschen helfen könnte! Es soll ein thermoelastischer Festkörper sein, mit einfacher Geometrie (z.B. Quader), der duch eine Temperaturbelastung oder Kraft oder Verschiebung belastet wird. Das Modell soll finite Dehnungen beschreiben können. Wähle ich daher ein elastisches Material oder ein hyperelastisches? Od?? Ich hätte die C3D20T od C3D8T-Elemente gewählt. Ist das ok? Als Materialeigenschaften (z.B Stahl) gebe ich vor: Dichte, Wärmeleitfähigkeit (Fourier-Gesetz), Anfangstemperatur, spezifische Wärme, Lame-Konstanten (od E-Modul, Querdehnzahl), Wärmeausdehnungskoeffizient, Gravitation ggf. Radiation. Grüße danomechbau Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 15. Jan. 2009 17:49 <-- editieren / zitieren --> Unities abgeben: Nur für danomechbau
Klingt für mich nach ganz normaler Elastizität. Die Elemente dürften für die meisten Belastungensarten ok sein. Nur bei biegedominierten Problemen solltest du mit linearen Hexadern aufpassen. Nicht vergessen NLGEOM zu aktivieren, wenn du bei größeren Dehnungen korrekte Ergebnisse haben willst. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 16. Jan. 2009 14:49 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für deine Antwort! Ich habe deinen Hinweis schon beachtet. Als erstes Beispiel habe ich eine statische Kraft aufgebracht. Praktisch Kragarm mit Kraft in Längsrichtung. Eine Verschiebung kann es mir anzeigen, doch es entwickelt sich keine Temperatur. Muss ich bei der Eingabe mit einer Temperatur außer der Elementwahl noch etwas berücksichtigen? Muss ich eine Anfangstemperatur als Ausgangszustand aufbringen oder rechnet es sonst einfach mit Anfangstemp =0? Als Warnung kam bei der Berechnung noch "Degree of freedom 4 is not active in this model and can not be restrained". Was bedeutet dies? Dieselbe Warnung trat auch für Degree of freedom5,6 auf. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 16. Jan. 2009 16:04 <-- editieren / zitieren --> Unities abgeben: Nur für danomechbau
|
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 16. Jan. 2009 17:54 <-- editieren / zitieren --> Unities abgeben:
|
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 19. Jan. 2009 10:29 <-- editieren / zitieren --> Unities abgeben: Nur für danomechbau
Wenn du die Temp. während der Analyse vorgibst, kannst du rein mech. rechnen. Du brauchst also nicht therm.-mech.-gekoppelt rechnen, wenn keine Temp. vom Solver berechnet werden muss. Gib' eine Anfangstemp vor. Gib dann als Randbedingung im Step eine Temp. vor auf die das Bauteil gebracht werden soll. Um die Temp. später zu kontrollieren, kannst du als Field Output zusätzlich die Variable NT11 (Knotentemp.) anfordern. Im Users Manual 1.2.2 Conventions steht was die DOF 4,5 und 6 bedeuten. Die Knoten an normalen Solid-Elementen haben diese Freiheitsgrade nicht, weswegen der Solver das als Warnung ausgibt. Ist also nicht schlimm, da die Randbedingung aber in den anderen DOF angewendet wird. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 19. Jan. 2009 15:29 <-- editieren / zitieren --> Unities abgeben:
Hallo, das mit den FHG 4,5,6 ist mir nun klar. Leider habe ich nun das Problem, dass ich folgende Fehlermeldung erhalte: Temperature at 1 nodes has fallen below absolute zero. Increment will be attempted again with a new time increment. The nodes have been identified in node set WarnNodeTempBelowZeroStep1Inc1. Muss ich bei Attribute bei der Absoluttemperatur die "0" eintragen? Als ich sie weg gelassen habe, bekam ich keine Fehlermeldung, doch ich bin nun nicht sicher, ob meine zuvor erhaltenen Ergebnisse korrekt sind? Grüße
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 19. Jan. 2009 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für danomechbau
|
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 19. Jan. 2009 16:45 <-- editieren / zitieren --> Unities abgeben:
Mir ist nicht klar, wo ich dem Modell eine Anfangstemperatur geben kann: bei initial oder als step oder als bc? Ich verstehe deine Frage nicht ganz: der Körper soll eine Anfangstemperatur von 20°C oder 293Kelvin haben und anschließend um 1000K erwärmt werden. Bisher habe ich ihm unter model->edit attributes: die absolute zero-temperature mit 0 angegeben und als Belastung einen zuerst linear zunehmenden, dann konstanten Oberflächenwärmefluss von 1000K. Ich hoffe, diese Information hilft bisschen weiter. Vielen Dank für deine Mühe!! Das input-file habe ich angehängt... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 19. Jan. 2009 17:22 <-- editieren / zitieren --> Unities abgeben: Nur für danomechbau
Eine Anfangstemp. und auch Zieltemp. (sofern man rein mech. rechnet) kann man im Load-Modul über Predefined Field erstellen. Ich habe mal ein Beispiel angehängt. Hier habe ich eine Anfangstemp von 293K vorgegeben und definiert, dass diese Temp. linear über den Step (default (Ramp)) auf 1000K hochgefahren wird. Da ich diesen Zwang vorgebe, braucht der Solver nichts thermisch zu berechnen. Deshalb kann ich einen rein mechanisch Step mit rein mechanischen Elementen rechnen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 19. Jan. 2009 18:17 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für deine Antwort! Macht es bei der Berechnung einen Unterschied zu der Vorgabe einer Verschiebungs-Temperatur gekoppelten Rechnung? Mein Ziel ist der Beweis, dass ein kontinuumsthermodynamischer thermoelastischer Festkörper bei der Modellierung nach Abaqus das gleiche Ergebnis erzielt, wie mit dem instiutseigenen Programm namens PANDAS. Ich bin daher sehr unsicher, ob ich daher mit Abaqus nicht versuchen muss die Rechnung so nah wie möglich an die andere Rechnung anzupassen. Denkst du, man kann es bei Abaqus so vereinfacht rechnen? viele Grüße danomechbau Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 20. Jan. 2009 10:00 <-- editieren / zitieren --> Unities abgeben: Nur für danomechbau
Ja, geht fast genauso. Die Ergebnisse sollten auch dieselben sein. Unterschiede im Aufbau: - andere Prozedur - die Zieltemp. ist jetzt eine Boundary Condition und kein Predefined Field - anderer Elementtyp Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 20. Jan. 2009 11:44 <-- editieren / zitieren --> Unities abgeben:
Leider passen die Ergebnisse um eine Potenz von 10 nicht. Die Ergebnisse mit Abaqus sind 10x so groß wie mit PANDAS. Mir ist aufgefallen, dass das input-file eigentlich ein anderen Problem behandelt, wie ich benötige. Ziel ist nicht nur die Erwärmung des ganzen Körpers von Anfang 273K auf 1000K, sondern die Erwärmung einer einzigen Oberfläche und daraus folgend der Wärmefluss von der wärmeren Oberfläche durch den Körper infolge der Zeit. Wir kann ich nun diese Temperatur aufbringen? Als Anfangstemp könnte ich weiterhin das field in deiner Form aufbringen. Nur als Belastung müsste ich doch schon eine Oberfläche aussuchen, diese erwärmen und von der Zeit abhängig machen, doch wie??? Vielen Dank für deine Hilfe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 20. Jan. 2009 15:25 <-- editieren / zitieren --> Unities abgeben: Nur für danomechbau
Dann brauchst du dein Originalbeispiel nur zu nehmen und entfernst die Last. Erstelle eine Boundary Condition und gib vor, dass eine Seite eine bestimmte Temperatur haben soll. Mit der Amplitude kannst du definieren ob diese Temp. sofort anliegen soll oder erst nach einer bestimmten Zeit. Vergiss außerdem nicht eine Anfangstemp. für den ganzen Körper vorzugeben. Überprüfe nochmal deine Einheiten. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 20. Jan. 2009 15:39 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe dies schon versucht, doch leider erhalte ich als Endtemperatur statt 1000K, 1400K. Mir ist nicht klar, wie er auf 1400K erwärmen kann. (Ausgangstemperatur von 293K und einer Temperaturbelastung von 1000K(??) ) Vielleicht ist der Fehler für dich offensichtlich. Daher habe ich dir die input-Datei beigefügt. Grüße [Diese Nachricht wurde von danomechbau am 20. Jan. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 20. Jan. 2009 16:13 <-- editieren / zitieren --> Unities abgeben: Nur für danomechbau
Du hast keine Temperatur an der Fläche vorgegeben, sondern einen Wärmefluss. Deswegen habe ich geschrieben Zitat: Original erstellt von Mustaine: Dann brauchst du dein Originalbeispiel nur zu nehmen und entfernst die Last. Erstelle eine Boundary Condition und gib vor, dass eine Seite eine bestimmte Temperatur haben soll. Mit der Amplitude kannst du definieren ob diese Temp. sofort anliegen soll oder erst nach einer bestimmten Zeit. : :
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 20. Jan. 2009 18:05 <-- editieren / zitieren --> Unities abgeben:
Ich habe das mit den Boundary-conditions versucht, jedoch bringt es mir immer die beiden folgenden Fehlermeldungen: "Boundary conditions are specified on inactive dof of 12 nodes. The nodes have been identified in node set WarnNodeBCInactiveDof." "Temperature at 1 nodes has fallen below absolute zero. Increment will be attempted again with a new time increment. The nodes have been identified in node set WarnNodeTempBelowZeroStep1Inc5." DOF 12 ist laut dem manual "Second temperature (for shells or beams)". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 21. Jan. 2009 17:32 <-- editieren / zitieren --> Unities abgeben: Nur für danomechbau
|
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 23. Jan. 2009 09:05 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, ich habe die Datei mittlerweile zum Laufen bekommen. Die Warnung kommt mit den D3C8T Elementen nicht mehr! Die Rechnung läuft aber auch mit den D3C20T Elementen durch, von daher könnte man das doch schon so akzeptieren, oder? Das einzige Problem, das ich nun nur noch habe ist die Temperaturaufbringung. Wenn ich diese als Ramp bis 1293K aufbringe, ist es gar kein Problem. Wenn ich diese aber als amp aufbringen möchte,klappt es nicht. Ich habe die Temperatur als bc aufgebracht mit der magnitude 1293K und im Step1 (im initial habe ich als field eine Anfangstemperatur von 293K angegeben). Ziel ist in den ersten 100s von 293K auf 1293K zu erwärmen und dann konstant auf 1293K bis 1000s. Ich habe folgendes in amp eingegeben: tabular -> total time -> time frequency amplitude 0 293 100 1293 1000 1293. Wo liegt mein Fehler? Vielen Dank für eure Hilfe! Grüße danomechbau
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 23. Jan. 2009 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für danomechbau
Das was vom Solver aufgebracht wird, ist das Produkt aus dem was bei der Last/BC steht (Magnitude) und dem was aus der Amplitude zur aktuellen Zeit verwendet wird. Deswegen solltest du eines von beiden auf 1 normieren. Bei deiner Amplitude würde es sich somit anbieten bei der Magnitude eine 1 vorzugeben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technischer Produktdesigner oder Technischer Zeichner (m/w/d) | Du teilst unsere Leidenschaft für Innovationen und Technologien und willst dich den Herausforderungen der Zukunft stellen? Dann komme zu FERCHAU Rosenheim: Wir realisieren spannende Projekte für namhafte Kunden in allen Technologien und für verschiedene Branchen. Ready for the next Level? Dann bist DU bei uns genau richtig!
Technischer Produktdesigner oder Technischer Zeichner (m/w/d)
| Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
danomechbau Mitglied
Beiträge: 27 Registriert: 15.01.2009
|
erstellt am: 23. Jan. 2009 12:28 <-- editieren / zitieren --> Unities abgeben:
|