Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  ANSYS
  Restart-Befehl in Schleife bei transienter thermischer Simulation

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys
Autor Thema:  Restart-Befehl in Schleife bei transienter thermischer Simulation (1146 mal gelesen)
Walfleisch
Mitglied



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

Beiträge: 10
Registriert: 01.05.2014

erstellt am: 10. Sep. 2015 19:16    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 in einer thermischen Simulation zu jedem Zeitpunkt die simulierte Temperatur an einem bestimmten Knoten mit einer gemessenen Temperatur vergleichen.
Je nach Differenz zwischen beiden möchte ich dann die Randbedingungen anpassen und denselben Zeitschritt nochmal rechnen. Das möchte ich sooft wiederholen, bis die Differenz einen vorgegebenen Wert unterschreitet.

Dann soll ein nächster Zeitschritt gerechnet werden mit neuen "Anfangs-Randbedingungen", die dann wieder iterativ angepasst werden.

Ziel ist es, die Simulation mit einer Messung anzugleichen und die Randbedingung zu bestimmen, die bei der Messung vorliegt.


Meine Idee ist, in einer Schleife den RESTART Befehl zu benutzen, die Randbedingungen anzupassen, neu zu rechnen und dann die Temperaturen zu vergleichen.

Leider funktioniert es nicht so, wie gewollt. Es findet zwar ein Restart statt (kann im Log-file nachgeguckt werden). Allerdings werden die Randbedingungen nicht neu gesetzt. Er rechnet nur 10 x hintereinander dasselbe Problem, ohne die Schleife und die dortige Neubestimmung der Randbedingung zu berücksichtigen.

Habe mal ein Beispielskript vorbereitet, das das Problem erzeugt.
Das Skript macht so natürlich keinen Sinn, ist wie gesagt nur ein Beispiel:


Code:

! PREPROCESSING
/prep7
ET,1,SOLID70

! Materialeigenschaften
MP,KXX,1,10000
MP,C,1,100
MP,DENS,1,10000

! Geometrie
BLOCK,0,10,0,1,0,1
LESIZE,ALL,1/3

! Vernetzung
VSEL,ALL
VMESH,ALL
ALLSEL,ALL

! Anpassungsfaktor
faktor = 1

! SOLUTION

/solu
rescontrol,define,all,1
outres,nsol,1

KBC,1
IC,ALL,TEMP,10 ! Anfangsbedingungen


antyp,trans
timint,on
time,.1
nsub,5

NSEL,S,LOC,X,10
D,ALL,TEMP,50 ! Randbedingung
ALLSEL, ALL
solve ! 1. Schritt


time,100
nsub,5
DDELE,ALL,TEMP
ALLSEL, ALL
solve ! 2. Schritt

*DO,i,1,10,1
  antyp,,restart,2,1 ! Neustart
  NSEL,S,LOC,X,0
  DDELE,ALL,TEMP
  D,ALL,TEMP,50*faktor ! Neudefinition der Randbedingung
  ALLSEL, ALL
  solve
  *GET,Te,node,38,temp

  *IF,Te,LE,100,THEN
  faktor = faktor+1
  *ELSE
  i = 10
  *ENDIF
*ENDDO


Ablauf des Codes:
1) Anfangsbedingung des Quaders ist 10 K
2) [step1] Für 0,1 sek präge ich am rechten Rand eine Temperatur von 50K auf
3) [step2] Nach 0,1 sek lösche ich die Randbedingung und berechne die Temperaturentwicklung für 100s

Dann setzt meine Iteration ein: ich starte von [step2] aus neu und präge nun am linken Rand eine Temperatur von 50 K auf.
Dann vergleiche ich die berechnete Temperatur am Knoten 38 (willkürlich), ob sie kleiner als 100 K ist (willkürlich).
Wenn ja, soll die Variable faktor um 1 erhöht werden für den nächsten Zeitschritt.
Dann soll neu gerechnet werden.

Nur leider wird bei der Wiederholung die Randbedingung

Code:

D,ALL,TEMP,50*faktor ! Neudefinition der Randbedingung


nicht berücksichtigt.
Es bleibt stets bei den 50 K am linken Rand, obwohl das Beispiel natürlich so konstruiert ist, dass es mehrere Schleifendurchläufte bräuchte, damit die Temperatur am Knoten 38 auf über 100K ansteigt.


Die Ansys Help habe ich schon zur Rate gezogen, finde da aber leidre kein Beispiel, wo der restart Befehl in einer Schleife ist.

Ich hoffe, ihr könnt mir hier ein paar wertvolle Tipps geben.

Falls etwas unverständlich ist, bitte melden.

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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 11. Sep. 2015 07: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 Walfleisch 10 Unities + Antwort hilfreich

Sollte nicht anstelle des Restart-Befehls besser die Zeit erhöht und weiter gerechnet werden?

------------------
Viel Erfolg wünscht
Wolfgang Schätzing

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

Walfleisch
Mitglied



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

Beiträge: 10
Registriert: 01.05.2014

erstellt am: 11. Sep. 2015 08: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

Dann ist leider das Ansys-Zeitsignal nicht mehr synchron zum Mess-Zeitsignal.

Ich habe zu jedem Zeitpunkt, den ich rechne, eine gemessene Temperatur an dem Messknoten vorliegen. Und zu dieser Zeit möchte ich die Simulation an die Messung anpassen.

Wenn ich nicht den Restart-Befehl verwende, dann läuft doch in jeder Iteration (d.h. in der Schleife), in der ich Messung und Simulation angleiche, das Ansys-Zeitsignal einfach weiter, oder irre ich mich?

Hatte auch schon versucht, dass Zeitsignal einfach nicht zu ändern während der Iteration sondern lediglich, wenn eine Lösung gefunden wurde. Nur dann meckert Ansys natürlich z.B. in der zweiten Schleifeniteration, dass die Lösung zu dem Zeitpunkt schon existiert.

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

solve1
Mitglied
Berechnungsingenieur


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

Beiträge: 624
Registriert: 27.05.2008

Ansys APDL
Ansys WorkBench

erstellt am: 11. Sep. 2015 10:24    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 Walfleisch 10 Unities + Antwort hilfreich


temploop.txt

 
hi,

wenn du einen Restart machst, wird die database aus dem file *.rdb (restart database) NEU eingelesen. Das beinhaltet auch alle Parameter. D.H. die Parameter im Loop werden immer wieder auf ihren Ausgangszustand zurück gesetzt.

Daher 1) ein parsav vor und ein parres nach dem restart einfügen.

2)
Für so einen Loop ist es immer ganz sinnvoll wenn man sich eine Kontrollmöglichkeit einbaut. Ich mach das gern in einer separaten Datei. Habe dir hier mit dem /Output Kommando die Temperaturen je Loop in eine Datei "temperatures.txt" geschrieben:


  Current temperature at node 38 (START): 10.0000089
  Current temperature at node 38 (1): 40.8133364
  Current temperature at node 38 (2): 79.3299956
  Current temperature at node 38 (3): 117.846655

3)
Der Abbruch des Loops durch setzen der Loop variable funktioniert so nicht. Hierfür gibt's das *Exit kommando

> angepastes script im anhang

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

Walfleisch
Mitglied



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

Beiträge: 10
Registriert: 01.05.2014

erstellt am: 11. Sep. 2015 18:02    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

Klasse.
Das Parameterspeichern und -laden hatte mir gefehlt. Der Restart funktioniert jetzt. Wusste nicht, dass das nötig ist.


Die Kontrollmöglichkeit hatte ich im Beispiel weggelassen. Mache das immer über den /INPUT Befehl, in der ich eine Skriptdatei lade, in der dann steht, dass eine bestimmte Variable z.B. in eine TXT-Datei geschrieben werden soll. Ist zwar total umständlich, funktioniert aber und habe ich deswegen nie wieder geändert 
Den /OUTPUT Command kannte ich noch nicht. Danke dafür. 

Danke für die kompetente Hilfe und schönes Wochenende. 

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