Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Auswertung Forced Response

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
Autor Thema:  Auswertung Forced Response (913 mal gelesen)
echser
Mitglied


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

Beiträge: 2
Registriert: 24.06.2015

erstellt am: 24. Jun. 2015 14:28    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 habe folgendes Problem, ich hoffe jemand kann mir helfen.

Ich habe eine Forced Response mit Hilfe von *STEADY STATE DYNAMICS in Abaqus gerechnet und will mit Hilfe eines Python-Scriptes die Displacements auswerten. Hier mein Script:

from abaqus import *
from abaqusConstants import *
from odbAccess import *
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
from math import *
import os
import string
import cmath

#===================
# Parameter Eingaben
#===================
nameInst        = 'LOW_SOPH_13_BLADES-1'  # Instance Part Name
modes          = 13                      # letzte Mode fuer Ausgabe
blades          = 13                      # Anzahl der Schaufeln fuer FA
f_min          = 1200
f_max          = 1300
nfreq          = 2

#
#session.defaultOdbDisplay.basicOptions.setValues(numericForm=COMPLEX_MAGNITUDE)
# Vollstaendiger Dateiname mit absoluter Pfadangabe
ODBName        = "GBlisk_13Sec_Tuned_Base.odb"
#===============

odb = openOdb(path=ODBName)
#xyList = xyPlot.xyDataListFromField((odb=odb, outputVariableName='U', steps=('Frequency_Initial', ), )# Parameter Ende

stp = odb.steps['FORCED_RESPONSE']

for i in range (1,blades):
        outfile = open("FORCED_RESPONSE_%s.ods" % (i),"w")

        if i<10:
                nSet='SCHAUFEL_S0%s_NSET_MESSUNG' % (i)
        else:
                nSet='SCHAUFEL_S%s_NSET_MESSUNG' % (i)

        ns = odb.rootAssembly.instances[nameInst].nodeSets[nSet].nodes

        print nSet
        print ns

        for j in range (1,1+nfreq):
                fo = stp.frames[j].fieldOutputs['U'].values
                #fo = stp.frames[j].fieldOutputs['PHCCU'].values
                node = ns[0].label
                print node

                #towrite = "%6g" %j+"%10g " %node+"%24.17e " %fo[node].data[0]+"%24.17e " %fo[node].data[1]+"%24.17e " %fo[node].data[2]
                x = fo[node].data[0]
                y = fo[node].data[1]
                z = fo[node].data[2]
                amp = sqrt(x**2 + y**2 + z**2)

                f = f_min + (f_max - f_min) * (j/nfreq)

                towrite = "%24.17e " %f +"%24.17e " %x + "%24.17e " %y +"%24.17e " %z + "%24.17e " %amp
                outfile.write(towrite)
                outfile.write("\n")

                outfile.close()

Nun habe ich das Problem, dass nur die Realteile herausgeschrieben werden. Ich hätte aber gern die vollen Amplituden (sqrt(real² + imag²)). Kann mir bitte jemand sagen, wie ich die Imaginärteile bekomme?

Viele Grüße

Tobi

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

echser
Mitglied


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

Beiträge: 2
Registriert: 24.06.2015

erstellt am: 30. Jun. 2015 17:57    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

Hab es notdürftig geschafft, mir die komplexen Amplituden auszugeben. Falls es jemanden interessiert, hier meine Lösung.

from abaqus import *
from abaqusConstants import *
from odbAccess import *
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
from math import *
import os
import string
import cmath

#===================
# Parameter Eingaben
#===================
nameInst        = 'LOW_SOPH_13_BLADES-1'  # Instance Part Name
modes          = 13                      # letzte Mode fuer Ausgabe
blades          = 13                      # Anzahl der Schaufeln fuer FA
f_min          = 1200
f_max          = 1300
nfreq          = 3000

#
# Vollstaendiger Dateiname mit absoluter Pfadangabe
ODBName        = "GBlisk_13Sec_Tuned_Base.odb"
#===============
o3 = session.openOdb(name='GBlisk_13Sec_Tuned_Base.odb')

session.viewports['Viewport: 1'].setValues(displayedObject=o3)
odb = session.odbs['GBlisk_13Sec_Tuned_Base.odb']


for j in range (1,nfreq):
        fname = 'AMP/amp'+str(j)
        session.writeFieldReport(fileName=fname, append=ON,
                sortItem='Node Label', odb=odb, step=1, frame=j, outputPosition=NODAL,
                variable=(('U', NODAL), ), numericForm=COMPLEX_MAGNITUDE)

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