Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  ANSYS
  Mittlere Temperatur auf Fläche berechnen

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:  Mittlere Temperatur auf Fläche berechnen (4270 mal gelesen)
nimrod85
Mitglied



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

Beiträge: 21
Registriert: 16.01.2014

erstellt am: 01. Mrz. 2014 17: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 versuche gerade mit einem APDL Skript in ANSYS WB 14.0 die mittlere Temperatur auf einer Fläche
für jeden Zeitschritt zu berechnen (in einer transienten Analyse).

Zunächst versuche ich es erst einmal in einer stationären Analyse, da ich hier ja nur ein einziges Ergebnis
und nicht viele Substeps vorliegen habe. Wenn das mit der stationären Analyse funktioniert will ich das Skript für
eine transiente Analyse erweitern.

Ich will die Knoten der Fläche flaeche selektieren und den kleinsten,
den größten und die Anzahl der selektierten Knoten bestimmen.
Hierfür habe ich folgende Befehle im Post-Processing (Lösung) eingefügt:

nsel,,,,flaeche                 ! Fläche selektieren
*get,my_minNode,node,0,num,min  ! Minimale Knotennummer der Fläche ermitteln
*get,my_maxNode,node,0,num,max  ! Maximale Knotennummer der Fläche ermitteln
*get,my_numnode,node,0,count    ! Anzahl der Knoten der Fläche ermitteln
nsel,all

Hier ist das Problem, dass die ermittelten Werte immer Null sind.
Wenn ich obigen Code vor dem Lösungsschritt einfüge unter bspw. Thermisch-Stationär(C4)
ermittelt ANSYS die Werte korrekt. Kann ich diese ermittelten Werte, die ja dann nicht im Post-Processing Schritt
ermittelt wurden trotzdem im einem zweiten APDL Skript, dass ich unter Lösung drin habe verwenden??
Falls ja wäre das Problem gelöst.
Wenn nicht, wie funktioniert das dann im Lösungsschritt?



Anschließend möchte ich über folgendes Schleifenkonstrukt, das ich im Post-Processing (Lösung) in ein APDL Skript eingefügt habe
die mittlere Temperatur der selektierten Fläche berechnen, was aber
nicht funktioniert (Ergebnis ist für my_mtemp immer 0):

/OUTPUT,testout,out,,
set,last
nsel,,,,flaeche
my_minNode=my_minNode
my_maxNode=my_maxNode
my_numnode=my_numnode

set,my_sum,0.0
set,my_tempNode,0    
my_curnode=my_minNode                        !Aktuelle Knotennummer ist am Anfan Knoten mit kleinster Nummer

*do,ii,1,my_numnode
    *get,my_tempNode,node,my_curnode,ntemp  !Temperatur am Knoten ermitteln   
    my_sum=my_sum+my_tempNode                !Summe der Temperaturen berechnen
    *get,my_nextnode,node,my_curnode,nxth    !Nummer des nächsten Knotens ermitteln
    my_curnod=my_nextnode                    !Aktuelle Knotennummer aktualisieren
*enddo

my_mtemp=my_sum/my_numnode                  !Mittlere Temperatur berechnen

In der Output File stehen folgende Meldungen:

SET COMMAND GOT LOAD STEP=    1  SUBSTEP=    7  CUMULATIVE ITERATION=    7
  TIME/FREQUENCY=  1.0000   
TITLE= gehaeuse--Thermisch-stationär (C4)                                     

      280  NODES (OF    3600  DEFINED) SELECTED BY  NSEL  COMMAND.

PARAMETER MY_MINNODE =    1.000000000   

PARAMETER MY_MAXNODE =    1423.000000   

PARAMETER MY_NUMNODE =    280.0000000   

PARAMETER MY_SUM =    0.000000000   

PARAMETER MY_TEMPNODE =    0.000000000   

PARAMETER MY_CURNODE =    1.000000000   

*DO LOOP ON PARAMETER= II FROM  1.0000    TO  280.00    BY  1.0000   

*** WARNING ***                        CP =      5.585  TIME= 21:54:41
The data for *GET entity NODE item NTEMP and NODE= 1 is not defined.   
  The *GET command is ignored.                                         

PARAMETER MY_SUM =    0.000000000   

*GET  MY_NEXTNODE  FROM  NODE      1  ITEM=NXTH      VALUE=  2.00000000   

PARAMETER MY_CURNOD =    2.000000000   

*ENDDO  INDEX= II                             

*** WARNING ***                        CP =      5.585  TIME= 21:54:41
The data for *GET entity NODE item NTEMP and NODE= 1 is not defined.   
  The *GET command is ignored.                                 

Wenn ich das richtig verstehe behauptet ANSYS, dass für Knoten 1 keine Temperatur vorliegt.
Ergebnisse sind aber vorhanden.

Vielen Dank.

[Diese Nachricht wurde von nimrod85 am 01. Mrz. 2014 editiert.]

[Diese Nachricht wurde von nimrod85 am 01. Mrz. 2014 editiert.]

[Diese Nachricht wurde von nimrod85 am 01. Mrz. 2014 editiert.]

[Diese Nachricht wurde von nimrod85 am 01. Mrz. 2014 editiert.]

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

nimrod85
Mitglied



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

Beiträge: 21
Registriert: 16.01.2014

erstellt am: 01. Mrz. 2014 18: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

Zitat:
Original erstellt von nimrod85:

Hier ist das Problem, dass die ermittelten Werte immer Null sind.
Wenn ich obigen Code vor dem Lösungsschritt einfüge unter bspw. Thermisch-Stationär(C4)
ermittelt ANSYS die Werte korrekt. Kann ich diese ermittelten Werte, die ja dann nicht im Post-Processing Schritt
ermittelt wurden trotzdem im einem zweiten APDL Skript, dass ich unter Lösung drin habe verwenden??
Falls ja wäre das Problem gelöst.
Wenn nicht, wie funktioniert das dann im Lösungsschritt?


Dieses Problem habe ich nun selbst lösen können mit einem Trick:

Ich habe folgende APDL-Kommandos im Prep7 dringelassen:

nsel,,,,flaeche                 ! Fläche selektieren
*get,my_minNode,node,0,num,min  ! Minimale Knotennummer der Fläche ermitteln
*get,my_maxNode,node,0,num,max  ! Maximale Knotennummer der Fläche ermitteln
*get,my_numnode,node,0,count    ! Anzahl der Knoten der Fläche ermitteln
nsel,all

im Post1 mache ich dann:

my_minNode=my_minNode
my_maxNode=my_maxNode
my_numnode=my_numnode

damit sind auch im Lösungsschritt die im Prep7 ermittelten Werte vorhanden  


[Diese Nachricht wurde von nimrod85 am 01. Mrz. 2014 editiert.]

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

nimrod85
Mitglied



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

Beiträge: 21
Registriert: 16.01.2014

erstellt am: 01. Mrz. 2014 22: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

Zitat:
Original erstellt von nimrod85:

Anschließend möchte ich über folgendes Schleifenkonstrukt, das ich im Post-Processing (Lösung) in ein APDL Skript eingefügt habe
die mittlere Temperatur der selektierten Fläche berechnen, was aber
nicht funktioniert (Ergebnis ist für my_mtemp immer 0):

/OUTPUT,testout,out,,
set,last
nsel,,,,flaeche
my_minNode=my_minNode
my_maxNode=my_maxNode
my_numnode=my_numnode

set,my_sum,0.0
set,my_tempNode,0    
my_curnode=my_minNode                        !Aktuelle Knotennummer ist am Anfan Knoten mit kleinster Nummer

*do,ii,1,my_numnode
    *get,my_tempNode,node,my_curnode,ntemp   !Temperatur am Knoten ermitteln   
    my_sum=my_sum+my_tempNode                !Summe der Temperaturen berechnen
    *get,my_nextnode,node,my_curnode,nxth    !Nummer des nächsten Knotens ermitteln
    my_curnod=my_nextnode                    !Aktuelle Knotennummer aktualisieren
*enddo

my_mtemp=my_sum/my_numnode                   !Mittlere Temperatur berechnen

In der Output File stehen folgende Meldungen:

SET COMMAND GOT LOAD STEP=     1  SUBSTEP=     7  CUMULATIVE ITERATION=     7
   TIME/FREQUENCY=  1.0000   
TITLE= gehaeuse--Thermisch-stationär (C4)                                     

      280  NODES (OF     3600  DEFINED) SELECTED BY  NSEL  COMMAND.

PARAMETER MY_MINNODE =     1.000000000   

PARAMETER MY_MAXNODE =     1423.000000   

PARAMETER MY_NUMNODE =     280.0000000   

PARAMETER MY_SUM =     0.000000000   

PARAMETER MY_TEMPNODE =     0.000000000   

PARAMETER MY_CURNODE =     1.000000000   

*DO LOOP ON PARAMETER= II FROM  1.0000     TO  280.00     BY  1.0000   

*** WARNING ***                         CP =       5.585   TIME= 21:54:41
The data for *GET entity NODE item NTEMP and NODE= 1 is not defined.   
  The *GET command is ignored.                                          

PARAMETER MY_SUM =     0.000000000   

*GET  MY_NEXTNODE  FROM  NODE       1  ITEM=NXTH       VALUE=  2.00000000   

PARAMETER MY_CURNOD =     2.000000000   

*ENDDO  INDEX= II                             

*** WARNING ***                         CP =       5.585   TIME= 21:54:41
The data for *GET entity NODE item NTEMP and NODE= 1 is not defined.   
  The *GET command is ignored.                                 

Wenn ich das richtig verstehe behauptet ANSYS, dass für Knoten 1 keine Temperatur vorliegt.
Ergebnisse sind aber vorhanden.

Vielen Dank.


Der Fehler lag an der Zeile:
*get,my_tempNode,node,my_curnode,ntemp
ntemp ist ein Preprocessing Item es muss lauten:
*get,my_tempNode,node,my_curnode,temp

Dann funktioniert alles wunderbar   

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: 02. Mrz. 2014 08: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 nimrod85 10 Unities + Antwort hilfreich

Die mittlere Temperatur einer Fläche ist nur dann der Mittelwert aller Knotentemperaturen, wenn alle Elemente gleich groß sind.

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

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

nimrod85
Mitglied



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

Beiträge: 21
Registriert: 16.01.2014

erstellt am: 02. Mrz. 2014 17: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

Zitat:
Original erstellt von wosch:
Die mittlere Temperatur einer Fläche ist nur dann der Mittelwert aller Knotentemperaturen, wenn alle Elemente gleich groß sind.


Hallo Wolfgang,

ja das ist mir bekannt. Deshalb habe ich an den Stellen an denen ich den Mittelwert berechne extra regelmäßig komplett mit Hexaedern vernetzt. Trotzdem vielen Dank für den Hinweis.
Bei allgemein orientierten Elementen mit unterschiedlichen Flächen muss ich ja über alle Elemente laufen und an jedem Knoten eines jeden Elements einen Wichtungsfaktor bestimmen und damit die Knotenergebnisse (Temperaturen) im Element gewichten.

Daür würde ich mir dann aber ein extra TCL/Fortran oder Matlab Skript schreiben. Ist für meine Zwecke auch etwas zu aufwändig.

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

smittytomcat
Mitglied
Naval Architect / Dipl.-Ing. Schiffbau, selbstständig


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

Beiträge: 1320
Registriert: 23.08.2005

ANSYS
Bricscad
Windows XP Prof 32 bit SP 3
Windoof 7 Prof 64 bit
Dell Precision's
Bleistift
Radiergummi
Dreieck
Papier
Dubbel etc.
Taschenrechner
den eigenen Kopf
...

erstellt am: 02. Mrz. 2014 19:25    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 nimrod85 10 Unities + Antwort hilfreich

Moin,

mal blöde gefragt. Da man sich mittels *get Funktion ja die Fläche eines Elements ausgeben lassen kann - ist die bulk-Temperatur  (die ja auch die *get Funktion liefert) nicht ein Weg, oder verstehe ich da den Unterschied nicht (pardon, habe noch nie Temperatur-kritische Rechnungen durchgeführt) die Mittelung über die gesamte Fläche durchzuführen?

------------------
Gruß
Gerd
Hunde haben ein Herrchen oder Frauchen - Katzen haben Personal.

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

nimrod85
Mitglied



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

Beiträge: 21
Registriert: 16.01.2014

erstellt am: 02. Mrz. 2014 20:17    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

Zitat:
Original erstellt von smittytomcat:
Moin,

mal blöde gefragt. Da man sich mittels *get Funktion ja die Fläche eines Elements ausgeben lassen kann - ist die bulk-Temperatur  (die ja auch die *get Funktion liefert) nicht ein Weg, oder verstehe ich da den Unterschied nicht (pardon, habe noch nie Temperatur-kritische Rechnungen durchgeführt) die Mittelung über die gesamte Fläche durchzuführen?


Ja die Fläche eines Elements schon, aber man muss sich auch für jeden Knoten über die Formfunktionen im Einheitselement den
Anteil des jeweiligen Knotes an der Fläche ermitteln.
Hierfür muss man auf jedenfall neben der Fläche des Elements über jedes Element
laufen und über die Gausspunkte des Elements und den Flächenanteil durch Formfunktion * Jacobideterminante * Wichtung an jedem Knoten
den Anteil an er Fläche des Elements ermitteln.

Das ist aufwändig, da man die Fläche abreifen muss. Ermitteln muss welches Element vorliegt, passende Formfunktionen und Wichtungsfaktoren abgelegt haben muss, sowie natürlich die Knoten-Element-Zuordung und die Knotenkoordinaten. Das ist mit APDL denke ich nicht mehr so einfach zu realisieren.

Aber dann könnte man einen dimensionslosen Wichtungsfaktor einführen: Flächenanteil des Knotens/Gesamtelementfläche
Mit diesem dann die Temperaturen am jeweiligen Knoten wichten.

Sowas würde ich in TCL oder Fortran umsetzen.

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

IronW
Mitglied


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

Beiträge: 2
Registriert: 12.09.2017

Ansys WB 18.0

erstellt am: 18. Sep. 2017 11:38    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 nimrod85 10 Unities + Antwort hilfreich

Hallo,

ich möchte ebenfalls die gemittelte Knotentemperatur auf einer Fläche (bzw. mehrere Flächen als Komponente zusammengefasst) im Letzten Zeitschritt einer transienten Analyse  ausgeben.
Ich habe eigentlich alles so übernommen, wie beschrieben.
Allerdings bekomme ich immer nur die Temperatur des ersten Knotens, da die Schleife dann scheinbar abbricht
Laut der Output file wird der Parameter my_sum nicht erkannt.
Dabei wird dieser doch durch "set,my_sum,0.0" vorher definiert?

Wäre cool, wenn mir hier jemand weiterhelfen könnte 

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

USE LAST SUBSTEP ON RESULT FILE  FOR LOAD CASE 0

SET COMMAND GOT LOAD STEP=    1  SUBSTEP=    9  CUMULATIVE ITERATION=    9
  TIME/FREQUENCY=  10.000   
TITLE= Fertig2--Thermisch-transient (A5)                                     

      5192  NODES (OF    171159  DEFINED) SELECTED BY  NSEL  COMMAND.

PARAMETER MY_MINNODE =    1.000000000   

PARAMETER MY_MAXNODE =    55011.00000   

PARAMETER MY_NUMNODE =    5192.000000   


USE LOAD STEP    1  SUBSTEP  LAST    FOR LOAD CASE 0

SET COMMAND GOT LOAD STEP=    1  SUBSTEP=    9  CUMULATIVE ITERATION=    9
  TIME/FREQUENCY=  10.000   
TITLE= Fertig2--Thermisch-transient (A5)                                     


USE LOAD STEP    1  SUBSTEP  LAST    FOR LOAD CASE 0

SET COMMAND GOT LOAD STEP=    1  SUBSTEP=    9  CUMULATIVE ITERATION=    9
  TIME/FREQUENCY=  10.000   
TITLE= Fertig2--Thermisch-transient (A5)                                     

PARAMETER MY_CURNODE =    1.000000000   

*DO LOOP ON PARAMETER= II FROM  1.0000    TO  5192.0    BY  1.0000   

*GET  MY_TEMPNODE  FROM  NODE      1  ITEM=TEMP      VALUE=  165.509034   

*** WARNING ***                        CP =      34.913  TIME= 11:17:12
Unknown parameter name= MY_SUM.  A value of 7.888609052E-31 will be   
used.                                     
                           

PARAMETER MY_SUM =    165.5090341   

*GET  MY_NEXTNODE  FROM  NODE      1  ITEM=NXTH      VALUE=  2.00000000   

PARAMETER MY_CURNOD =    2.000000000   

*ENDDO  INDEX= II                             

PARAMETER MY_MTEMP =    165.5090341   

Set Encoding of XML File to:ISO-8859-1

Set Output of XML File to:
    PARM,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,
        ,    ,    ,    ,    ,    ,    ,

DATABASE WRITTEN ON FILE  parm.xml                                                                                                                                                                                                                                                           

EXIT THE ANSYS POST1 DATABASE PROCESSOR


***** ROUTINE COMPLETED *****  CP =        35.038

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: 19. Sep. 2017 08:43    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 nimrod85 10 Unities + Antwort hilfreich

hi,
um da was zu sagen zu können, wäre das APDL Script besser geeignet als der Solver Output. Mglw kannst du ja das mal zeigen.

abgesehen davon wäre noch die Frage ob du wirklich den Mittelwert der Knotentemperaturen willst oder ob nicht sowas wie ein flächengewichtetes mittel sinnvoller wäre.

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