| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys |
Autor
|
Thema: Schleife (1720 mal gelesen)
|
User2306 Mitglied
Beiträge: 35 Registriert: 30.11.2010
|
erstellt am: 12. Sep. 2013 13:40 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich würde Ansys gerne für eine Art Optimierung nutzen. Und zwar soll die gegebene Streckgrenze abhängig von der vorhandenen Querkraft im vorherigen Schritt sein. Nun ist meine Frage, ob man Ansys irgendwie dazu bringen kann, durchzurechnen, sich ein Ergebnis raus zu suchen und mit dem Ergebnis einen neuen Rechendurchlauf zu starten, bis das Ergebnis sich nicht mehr ändert. Oder ist es möglich Ansys über VBA zu aktivieren, so dass ich die Iteration über VBA laufen lassen kann? Ich wär sehr dankbar für einen schnellen Tip! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 12. Sep. 2013 13:46 <-- editieren / zitieren --> Unities abgeben: Nur für User2306
|
User2306 Mitglied
Beiträge: 35 Registriert: 30.11.2010
|
erstellt am: 12. Sep. 2013 14:22 <-- editieren / zitieren --> Unities abgeben:
Oh doch, ich halte das für sinnvoll. Auch in der aktuellen Norm wird das so gemacht. Aber das ist ja auch nicht das eigentliche Problem. Meine Frage ist, ob ich ein Ergebnis aus dem Postprozess in den Preprozess einer nächsten Berechnung einbinden kann und zwar so lange, bis ein bestimmter Wert erreicht ist. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roncaratil Mitglied Ingenieur
Beiträge: 138 Registriert: 14.02.2013 Intel Xeon E5-1620 3.6GHz 48GB RAM ANSYS WB 15.0.7 Mechanical ANSYS SpaceClaim
|
erstellt am: 13. Sep. 2013 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für User2306
Hallo User2306 Ja das geht. Hier einige Zeile Code, welche ich für eine ähnliche Simulation verwendet habe: Anapssung eines Simulationsparameters anhand der Resultate aus den vorherigen Schrittes. Hoffentlich hilft das. Code: /solu i=1 *dowhile,i ! Anfang der DO-Schleife. Pro Durchgang wird einen Lastschritt berechnet autots,off ! User turned off automatic time stepping deltim,1,1,1 ! Specifies the time step sizes to be used for the current load step (initial, min, max) time,i ! Sets the time for a load step timint,on ! Turn on time integration effects ! Hier Anpassungen am Model anhand des vorheirgen Ergebnisses machen solve *get, ! Ergebnis lesen *if,,,,exit ! Bedingung fuer stoppen der simulation *status, ! Bedingung ueberwachen i=i+1 *enddo ! Ende der DO-Schleife
Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
User2306 Mitglied
Beiträge: 35 Registriert: 30.11.2010
|
erstellt am: 18. Sep. 2013 08:55 <-- editieren / zitieren --> Unities abgeben:
|
User2306 Mitglied
Beiträge: 35 Registriert: 30.11.2010
|
erstellt am: 18. Sep. 2013 10:08 <-- editieren / zitieren --> Unities abgeben:
|
User2306 Mitglied
Beiträge: 35 Registriert: 30.11.2010
|
erstellt am: 18. Sep. 2013 10:30 <-- editieren / zitieren --> Unities abgeben:
Mein Solution-Prozess sieht jetzt so aus. Das funktioniert aber leider nicht. Vielleicht hat noch jemand eine Idee? /SOLU i=1 *dowhile,i ! Anfang der DO-Schleife. Pro Durchgang wird einen Lastschritt berechnet !Berechnung: 0=static ANTYPE,0 ! !Auflagerbedingungen DK,1, , , , ,UX,UY,UZ,ROTX,RoTY,ROTZ,WARP ! !Einzellasten *If,Einzellast,EQ,1,Then FK,AL+1,Fx,FxE FK,10000,Fy,FyF FK,10000,Fz,FzF FK,1,My,MyA FK,1,Mz,MzA FK,AL+1,My,MyE FK,AL+1,Mz,MzE FK,10000,Fy,FyE *Else !Gleichstreckenlasten *Do,P,1,AL+1 FK,P+10000,FY,qy FK,P+10000,FZ,qz *Enddo *ENDIf ! !Berechnungsoptionen !large deflection NLGEOM,ON !automatic time stepping, OFF bei Arclen_Verfahren AUTOTS,ON !NSUBT,sub-steps (1000),max.number of substeps (1000),min. number of substeps (unendlich) for the automatic time stepping algorithm NSUBST,5000,5000,, !nach der Berechnung alles ausgeben OUTRES,ALL,ALL !Abbruchkriterien NCNV,Konvergenz,max DOF(default 1.0E6),Anzahl Iterationen(default Infinty),Sekunden(default infinty), CPU !Sekunden(default infinty) NCNV,1,1e+040,,0,0 NEQIT,50 !Time=1, letzte Laststufe * angesetzter Belastung = max. Belastung *If,Einzellast,EQ,1,Then TIME,Fz_E *Else TIME,qz_L *ENDIf !autots,off ! User turned off automatic time stepping ! deltim,1,1,1 ! Specifies the time step sizes to be used for the current load step (initial, min, max) ! time,i ! Sets the time for a load step ! timint,on ! Turn on time integration effects ! Hier Anpassungen am Model anhand des vorheirgen Ergebnisses machen ! ! !Einlesen der zugehörigen Eigenspannungsdatei ESEL,S,SEC,,1 ISFILE,READ,HEA800_111_20_LFA,ist,,1 ALLSEL,all solve *GET,Traglast,ACTIVE,0,SET,TIME, !*GET,Querkraft,ELEM,102,FMC,Y ! Ergebnis lesen fy3=23.5*sqrt(1-(Traglast*L1/1551)*(Traglast*L1/1551)) *if,fy3,EQ,fy2,exit ! Bedingung fuer stoppen der simulation *if,fy3,NE,fy2,then fy2=fy3 *Endif *status,Querkraft ! Bedingung ueberwachen i=i+1 *enddo ! Ende der DO-Schleife ! FINISH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|