| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys | | | | Technologietag: Klimaneutrale Energielösungen für Gebäude mit Simulation optimieren, eine Veranstaltung am 25.09.2024
|
Autor
|
Thema: Ergebnisexport (14718 mal gelesen)
|
AnsysWBStudi Mitglied
Beiträge: 17 Registriert: 26.07.2009
|
erstellt am: 26. Jul. 2009 23:02 <-- editieren / zitieren --> Unities abgeben:
Ich versuche die Ergebnisse einer thermisch-transienten Analyse in Ansys WB in ein Excel File zu bringen. Geht das mit Workbench, oder muss ich über Classic Befehle an die Sache rangehen. Ziel wäre eine ASCII-Datei im Format Timestep/Node/Temp. Diese soll im Endeffekt dann mit Matlab eingelesen werden. Wie ist das am besten umzusetzen oder gibt es sonstige Vorschläge bezüglich Matlab+Ansys ? Ich habe leider kaum Erfahrung, weder mit WB noch mit Ansys Classic. Danke, Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
simulmi Mitglied Berechnungsingenieur
Beiträge: 295 Registriert: 27.08.2008 ANSYS Workbench 13 ANSYS Classic 13 MAXWELL 2D/3D V14 Pro/E Wildfire<P>Windows XP 64 bit
|
erstellt am: 27. Jul. 2009 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
Hallo, ab der Workbench 2, also Ansys Version 12, kannst du mit Rechts-Klick auf das gewünschte Ergebnis im Strukturbaum über Export sowohl *.txt als auch *.xls-Dateien erzeugen. Dies ist dann aber etwas manuelle Arbeit, da du dieses für jeden gewünschten Zeitschritt machen musst. Um das ganze zu automatisieren ist ein Command-Objekt mit APDL-Code notwendig. Dabei musst du eine Schleife über alle Zeitschritte machen, und darin eine Schleife über alle Knoten und jeweils die Temperatur in einer Datei ablegen. Gruß simulmi ------------------ Matthias Ulmer Institut für Feinwerktechnik Universität Stuttgart Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SupaDupa Mitglied Rechenknecht
Beiträge: 170 Registriert: 10.07.2007 ProE WF3 M060 mit Startup-Tools, XP Professional, Ati x1950
|
erstellt am: 28. Jul. 2009 10:08 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
Hallo simulmi, das mit den Daten für einzelnen Steps von WB rausschreiben find ich auch sehr interessant. Ich komm zwar immer besser mit Ansys klar aber kannst du das mit den APDL-Befehlen vielleicht etwas konkretisieren. Vielleicht kurz andeuten welche Befehle du verwenden würdest oder vieleicht wie die Struktur der Schleifen aussieht. Danke. Gruß SupaDupa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AnsysWBStudi Mitglied
Beiträge: 17 Registriert: 26.07.2009
|
erstellt am: 28. Jul. 2009 12:59 <-- editieren / zitieren --> Unities abgeben:
Hi! Das Auslesen mit Rechtsklick habe ich auch schon gefunden (auch in WB 1.0 vorhanden). Aber das ist für mich nicht wirklich zielführend. Sehr gut klingt die Möglichkeit über die APDL mit 2 Schleifen. Allerdings bräuchte ich eine Art Crash-Kurs zu APDL und Command-Object. Oder am besten ein Beispiel wo etwas ähnliches gemacht wird, damit kommt man eigentlich immer am besten rein finde ich. Zur Schleife über die Knotennummern bräuchte ich natürlich die entsprechenden Knotennummern.Wie komme ich über die Workbench oder APDL an die Knotennummern mit Koordinaten z.B. einer Fläche die ich als Komponente erstellt habe. Hier habe ich noch einen Beitrag dazu gefunden: "Matrix in eine Datei ausgeben" http://ww3.cad.de/foren/ubb/Forum101/HTML/000900.shtml#000001 Hier wird etwas ähnliches gemacht, oder ? Vielen Dank, Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
simulmi Mitglied Berechnungsingenieur
Beiträge: 295 Registriert: 27.08.2008 ANSYS Workbench 13 ANSYS Classic 13 MAXWELL 2D/3D V14 Pro/E Wildfire<P>Windows XP 64 bit
|
erstellt am: 28. Jul. 2009 13:48 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
Hallo, ein Command-Objekt kannst du zunächst einfach über Rechts-Klick im Strukturbaum mit Insert -> Command einfügen. Beachte dabei allerdings an welcher Stelle du es einfügst. An die gewünschten Knoten kommst du in der WB am Besten, wenn du dir aus den Objekten oder Flächen eine Komponente erstellst und im Command-Objekt mit cmsel,... darauf zugreifst. Um Schleifen zu programmieren, Stichwort: *do Soweit erstmal in aller Kürze. Ich hoffe das hilft dir bereits weiter. Leider habe ich gerade nicht mehr Zeit mich damit zu beschäftigen. Gruß simulmi ------------------ Matthias Ulmer Institut für Feinwerktechnik Universität Stuttgart Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
simulmi Mitglied Berechnungsingenieur
Beiträge: 295 Registriert: 27.08.2008 ANSYS Workbench 13 ANSYS Classic 13 MAXWELL 2D/3D V14 Pro/E Wildfire<P>Windows XP 64 bit
|
erstellt am: 28. Jul. 2009 13:49 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
|
medin Mitglied Wissenschaftlicher Mitabeiter
Beiträge: 72 Registriert: 05.06.2008
|
erstellt am: 30. Jul. 2009 17:01 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
also via apdl könnte das ganze dann in etwa so aussehen: set,1 !loadstep 1 wählen *get,subst,active,0,solu,ncmss !Anzahl der Substeps auslesen *dim,ausgabe,,subst,x !vektorgenerierung subst zeilen !lang x spalten breit *do,i,1,subst,1 !Schleife starten set,1,i alls nsel,s,loc,x,-10.5 !alle knoten mit x =-10,5 selektieren *get,n_anzahl,node,,count !knotenanzahl *get,n_min,node,,num,min !erste knotennummer *get,ux,node,n_min,u,x n_arb=n_min !Anfangswert fges=0 *do,j,1,n_anzahl !vom minimalen bis maximalen !Knoten durchlaufen set,1,i *get,.... !das benötigte auslesen n_arb=ndnext(n_arb)
*enddo ausgabe(i,x)=... !werte schreiben *enddo !Ende der Schleife *create,ausgabe *cfopen,d:\ansys\xmaxf,txt,, !Datei erstellen i=1 *vwrite,ausgabe(i,1),ausgabe(i,2) (3x,F12.6';',3x,F18.10) *cfclos !Datei schließen *end !Makro beenden *use,ausgabe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rombik Mitglied
Beiträge: 77 Registriert: 21.07.2009
|
erstellt am: 31. Jul. 2009 17:09 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
Ich hätte da ne Frage und zwar, wenn ich die Schleife so schreibe: esel,s,mat,,3 nsel,s,ext esln,s,,1 *get,nanz,node,,count *get,nmin,node,,num,max narb=nmin *dim,nkraft,table,nanz,4 *do,i,1,nanz *get,krx,node,narb,fmag,x *get,kry,node,narb,fmag,y *get,krz,node,narb,fmag,z nkraft(i,1)=narb nkraft(i,2)=krx nkraft(i,3)=kry nkraft(i,4)=krz narb=ndnext(narb) *enddo bekomme ich nach dem ersten Durchgang der Schleife den Variablenwert für narb=0. Der Knoten mit der Nummer 0 existiert aber nicht. Was mache ich hier falsch? Ich möchte alle Werte der magnetischen Kraft der notwendigen Knoten ausschreiben. Grüße, Roman Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
medin Mitglied Wissenschaftlicher Mitabeiter
Beiträge: 72 Registriert: 05.06.2008
|
erstellt am: 31. Jul. 2009 17:55 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
hast du auch die richtigen sachen selektiert? einmal mit nplo nachgucken. in die schleife gehört glaube ich auch noch nen set befehl vor die get-befehle. also z.b. set,last ich hoffe das hilft ein bisschen weiter, falls nicht hilft bestimmt jemand anderes [Diese Nachricht wurde von medin am 31. Jul. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wosch Ehrenmitglied V.I.P. h.c. Elektrotechniker im Ruhestand
Beiträge: 2607 Registriert: 16.12.2004 Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.
|
erstellt am: 31. Jul. 2009 18:36 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
Nun, das ist zu erwarten, wenn zur höchsten Knotennummer die nächst höhere angefordert wird. Sicherlich wird es funktionieren, wenn die Anweisung *get,nmin,node,,num,max durch diese ersetzt wird: *get,nmin,node,,num,min ------------------ Viel Erfolg wünscht Wolfgang Schätzing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rombik Mitglied
Beiträge: 77 Registriert: 21.07.2009
|
erstellt am: 31. Jul. 2009 19:35 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
Zitat: Sicherlich wird es funktionieren, wenn die Anweisung *get,nmin,node,,num,max durch diese ersetzt wird: *get,nmin,node,,num,min
Danke für den Hinweis aber, daran liegt es leider nicht. Ich habe es mehrfach mit *get,nmin,node,,num,min und .....max ausprobiert funktioniert alles nicht. Vorallem an so einem ganz simplen Beispiel, das ich zu Testzwecken ausprobiere. Grüße, Roman
[Diese Nachricht wurde von rombik am 01. Aug. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rombik Mitglied
Beiträge: 77 Registriert: 21.07.2009
|
erstellt am: 01. Aug. 2009 10:30 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
Problem gelöst. Anstatt von: *dim,nkraft,TABLE,nanz,4 habe ich einfach ein Array-Feld mit: *dim,nkraft,ARRAY,nanz,4 dimensioniert und siehe da - es funktioniert!! Der SET Befehl vor den *get... -Anweisungen in der Schleife ist dabei nicht notwendig. Grüße, Roman Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joymichle Mitglied
Beiträge: 1 Registriert: 14.10.2016
|
erstellt am: 14. Okt. 2016 17:29 <-- editieren / zitieren --> Unities abgeben: Nur für AnsysWBStudi
Hallo medin, vielen dank für deine Beitrag Nach deine Muster habe ich folgende commands geschrieben, um die transient Temperatur (average temperature von einer Fläche) zu lesen und exploten. leide kriege ich zum schluss immer 0E+0,0E+0 könntest du mir helfen??? *get,step,active,0,solu,NCMLS !anzahl der load steps auslesen *dim,my_result,array,step,2 !vektorgenerierung subst zeilen *do,i,1,step,1 !Schleife starten set,i nsel,s,loc,x,-1.0235e-2 !alle knoten mit x =-1,0235e-2m selektieren *get,n_anzahl,node,,count !knotenanzahl *get,n_min,node,,num,min !erste knotennummer *get,time,active,0,solu,DTIME n_arb=n_min !Anfangswert set,TempSum,0 *do,j,1,n_anzahl !vom minimalen bis maximalen !Knoten durchlaufen set,i *get,tempNode,node,temp !das benötigte auslesen TempSum=TempSum+tempNode
n_arb=ndnext(n_arb) *enddo TempAvg=TempSum/n_anzahl my_result(i,2)=TempAvg my_result(i,1)=time !werte schreiben narb=ndnext(narb) *enddo !Ende der Schleife *create,my_result *cfopen,D:\Liu\1_Simulation\my_result,txt,, !Datei erstellen i=1 *vwrite,my_result(i,1),my_result(i,2) (E10.3,2X,E10.3) *cfclos !Datei schließen *end !Makro beenden *use,my_result Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|