找回密码
 注册
Simdroid-非首页
查看: 94|回复: 0

[警告错误信息] 应力应变曲线对残余应力分析的影响

[复制链接]
发表于 2014-6-12 21:46:06 | 显示全部楼层 |阅读模式 来自 山东济南
本帖最后由 ifly7 于 2014-6-12 21:54 编辑

实际工况:(1)室温,20度;(2)Pressure载荷7100205950.0Pa=5倍的屈服强度。
分析目的:分析压强大小对残余应力的影响。
遇到问题:The ratio of deformation speed to wave speed exceeds 1.0000。
解决途径:见帖子http://forum.simwe.com/thread-814546-1-1.html
                上面帖子的方法试过之后,发现有效果,但是最后还会出现The ratio of deformation speed to wave speed exceeds 1.000;
                后来发现,是载荷施加的过大,实际施加的载荷远远超过塑性模型定义的最大应力,根据石亦平老师的书(169页),在材料的应力应变曲线定 义时,“应该尽可能让其中最大的真实应力和真实应变大于模型中可能出现的应力应变值”,但是根据此,在塑性定义时增大应力和应变,会造成计算结果远远大于材料的实际屈服强度。
请教大家:在塑性定义时,不增大真实应力和真实应变的基础上,如何避免出现The ratio of deformation speed to wave speed exceeds 1.0000。
附Python程序:
from abaqus import *
from abaqusConstants import *
session.Viewport(name='Viewport: 1', origin=(0.0, 0.0), width=294.569445550442,
    height=219.77332764864)
session.viewports['Viewport: 1'].makeCurrent()
session.viewports['Viewport: 1'].maximize()
from caeModules import *
from driverUtils import executeOnCaeStartup
executeOnCaeStartup()
session.viewports['Viewport: 1'].partDisplay.geometryOptions.setValues(
    referenceRepresentation=ON)
Mdb()
#: A new model database has been created.
#: The model "Model-1" has been created.
####################建立1/8轴承############################
session.viewports['Viewport: 1'].setValues(displayedObject=None)
s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=0.1)
g, v, d, c = s.geometry, s.vertices, s.dimensions, s.constraints
s.sketchOptions.setValues(decimalPlaces=3)
s.ConstructionLine(point1=(0.0, -0.05), point2=(0.0, 0.05))
s.FixedConstraint(entity=g[2])
s.Line(point1=(0.0, 0.02), point2=(0.015, 0.02))
s.HorizontalConstraint(entity=g[3], addUndoState=False)
s.Line(point1=(0.015, 0.02), point2=(0.015, 0.0249))
s.VerticalConstraint(entity=g[4], addUndoState=False)
s.PerpendicularConstraint(entity1=g[3], entity2=g[4], addUndoState=False)
s.Line(point1=(0.015, 0.0249), point2=(0.01042786401, 0.0249))
s.HorizontalConstraint(entity=g[5], addUndoState=False)
s.PerpendicularConstraint(entity1=g[4], entity2=g[5], addUndoState=False)
s.Arc3Points(point1=(0.01042786401, 0.0249), point2=(0.00658501572, 0.023565),
    point3=(0.00738, 0.023485))
s.Line(point1=(0.00658501572, 0.023565), point2=(0.0, 0.02321989395))
s.Line(point1=(0.0, 0.02321989395), point2=(0.0, 0.02))
s.VerticalConstraint(entity=g[8], addUndoState=False)
mdb.models['Model-1'].sketches.changeKey(fromName='__profile__',
    toName='__save__')
s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=0.1)
g, v, d, c = s.geometry, s.vertices, s.dimensions, s.constraints
s.sketchOptions.setValues(decimalPlaces=3)
s.setPrimaryObject(option=STANDALONE)
s.ConstructionLine(point1=(0.0, -0.05), point2=(0.0, 0.05))
s.FixedConstraint(entity=g[2])
s.retrieveSketch(sketch=mdb.models['Model-1'].sketches['__save__'])
del mdb.models['Model-1'].sketches['__save__']
s.ConstructionLine(point1=(0.0, 0.0), angle=0.0)
s.HorizontalConstraint(entity=g[12], addUndoState=False)
s.sketchOptions.setValues(constructionGeometry=ON)
s.assignCenterline(line=g[12])
p = mdb.models['Model-1'].Part(name='My_Part', dimensionality=THREE_D,
    type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['My_Part']
p.BaseSolidRevolve(sketch=s, angle=11.25, flipRevolveDirection=OFF)
s.unsetPrimaryObject()
p = mdb.models['Model-1'].parts['My_Part']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']
#################建立1/8轴承#######################################
######定义材料属性############################################
############设置绝对零度(相当于温度单位是摄氏度)#############
mdb.models['Model-1'].setValues(absoluteZero=-273.15)
############设置绝对零度(相当于温度单位是摄氏度)#############
myModel=mdb.models['Model-1']
#########
#########
myGCr15=myModel.Material(name='GCr15')
myGCr15.Density(temperatureDependency=ON, table=((7830.0, 20.0), (7806.0, 100.0), (7776.0, 200.0), (7744.0, 300.0), (7709.0, 400.0), (7672.0, 500.0), (7630.0, 600.0), (7590.0, 700.0), (7563.0, 800.0)))
myGCr15.Elastic(temperatureDependency=ON, table=((208100000000.0, 0.3, 20.0), (163300000000.0, 0.3, 200.0), (154300000000.0, 0.3, 400.0), (112800000000.0, 0.3, 600.0), (103400000000.0, 0.3, 800.0)))
myGCr15.Plastic(temperatureDependency=ON, table=((1420041190.0, 0.0, 20.0), (1659517005.0, 0.000489465, 20.0), (1887385350.0, 0.001870332, 20.0), (1690487634.0, 0.0, 200.0), (1893611030.0, 0.001320322, 200.0), (2090458066.0, 0.002973584, 200.0), (2251782600.0, 0.006013389, 200.0), (2383729945.0, 0.010973032, 200.0), (2442951017.0, 0.016441867, 200.0), (2486078648.0, 0.023612027, 200.0), (2593585110.0, 0.027751703, 200.0), (925923746.0, 0.0, 400.0), (1032091180.0, 0.005634889, 400.0), (1154169680.0, 0.009180404, 400.0), (1225526994.0, 0.015969325, 400.0), (1255191672.0, 0.019188547, 400.0), (81152730.0, 0.0, 600.0), (100074391.0, 0.006981774, 600.0), (150179647.8, 0.008717956, 600.0), (182041091.0, 0.01238768, 600.0), (209930942.9, 0.023709186, 600.0), (228613158.0, 0.02976261, 600.0), (40922400.0, 0.0, 800.0), (69195548.0, 0.007100535, 800.0), (77320149.0, 0.015027142, 800.0), (80815914.0, 0.02663901, 800.0), (88263000.0, 0.047936557, 800.0)))
myGCr15.Conductivity(temperatureDependency=ON, table=((43.0, 20.0), (40.35, 100.0), (39.95, 200.0), (37.97, 300.0), (36.39, 400.0), (34.41, 500.0), (31.94, 600.0), (28.38, 700.0), (24.32, 800.0)))
myGCr15.SpecificHeat(temperatureDependency=ON, table=((480.1, 20.0), (513.2, 100.0), (540.8, 200.0), (579.4, 300.0), (618.1, 400.0), (673.2, 500.0), (733.9, 600.0), (2086.0, 700.0), (645.6, 800.0)))
myGCr15.Expansion(table=((1.15e-05, 25.0), (1.26e-05, 204.0), (1.37e-05, 398.0), (1.49e-05, 704.0), (1.53e-05, 804.0)), temperatureDependency=ON)
#########
mdb.models['Model-1'].HomogeneousSolidSection(name='Section-1', material='GCr15', thickness=None)
#########
p = mdb.models['Model-1'].parts['My_Part']
c = p.cells
cells = c.getSequenceFromMask(mask=('[#1 ]', ), )
region = p.Set(cells=cells, name='Set-1')
p = mdb.models['Model-1'].parts['My_Part']
p.SectionAssignment(region=region, sectionName='Section-1', offset=0.0, offsetType=MIDDLE_SURFACE, offsetField='', thicknessAssignment=FROM_SECTION)
#####################定义材料属性########################
####################装配#########################################
#########
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
    optimizationTasks=OFF, geometricRestrictions=OFF, stopConditions=OFF)
a = mdb.models['Model-1'].rootAssembly
a.DatumCsysByDefault(CARTESIAN)
p = mdb.models['Model-1'].parts['My_Part']
a.Instance(name='My_Part-1', part=p, dependent=ON)
#######装配######################################################
p = mdb.models['Model-1'].parts['My_Part']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
#########
####################切割模型####################################
#########
p = mdb.models['Model-1'].parts['My_Part']
c = p.cells
pickedCells = c.getSequenceFromMask(mask=('[#1 ]', ), )
e, v, d = p.edges, p.vertices, p.datums
p.PartitionCellByPlanePointNormal(point=v[1], normal=e[7], cells=pickedCells)
p = mdb.models['Model-1'].parts['My_Part']
c = p.cells
pickedCells = c.getSequenceFromMask(mask=('[#2 ]', ), )
e1, v1, d1 = p.edges, p.vertices, p.datums
p.PartitionCellByPlanePointNormal(point=v1[8], normal=e1[9], cells=pickedCells)
###############轴承网格划分################################
#########滚道沿轴向网格数目#########
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges = e.getSequenceFromMask(mask=('[#20000 ]', ), )
p.seedEdgeByNumber(edges=pickedEdges, number=107, constraint=FIXED)
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges = e.getSequenceFromMask(mask=('[#80 ]', ), )
p.seedEdgeByNumber(edges=pickedEdges, number=107, constraint=FIXED)
#########滚道沿径向网格数目#########
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges1 = e.getSequenceFromMask(mask=('[#2000 ]', ), )
p.seedEdgeByBias(biasMethod=SINGLE, end1Edges=pickedEdges1, ratio=10.0, number=30, constraint=FIXED)
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges2 = e.getSequenceFromMask(mask=('[#1 ]', ), )
p.seedEdgeByBias(biasMethod=SINGLE, end2Edges=pickedEdges2, ratio=10.0, number=30, constraint=FIXED)
#########圆周方向网格数目#########
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges = e.getSequenceFromMask(mask=('[#1000 ]', ), )
p.seedEdgeByNumber(edges=pickedEdges, number=58, constraint=FIXED)
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges = e.getSequenceFromMask(mask=('[#2 ]', ), )
p.seedEdgeByNumber(edges=pickedEdges, number=58, constraint=FIXED)
#########网格划分#########
p = mdb.models['Model-1'].parts['My_Part']
c = p.cells
pickedRegions = c.getSequenceFromMask(mask=('[#4 ]', ), )
p.generateMesh(regions=pickedRegions)
#######################大端网格划分################################
#########轴向网格数目#########
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges1 = e.getSequenceFromMask(mask=('[#800 ]', ), )
p.seedEdgeByBias(biasMethod=SINGLE, end1Edges=pickedEdges1, ratio=10.0, number=30, constraint=FIXED)
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges2 = e.getSequenceFromMask(mask=('[#200 ]', ), )
p.seedEdgeByBias(biasMethod=SINGLE, end2Edges=pickedEdges2, ratio=10.0, number=30, constraint=FIXED)
#########径向网格数目#########
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges = e.getSequenceFromMask(mask=('[#400 ]', ), )
p.seedEdgeByNumber(edges=pickedEdges, number=30, constraint=FIXED)
#########网格划分#########
p = mdb.models['Model-1'].parts['My_Part']
c = p.cells
pickedRegions = c.getSequenceFromMask(mask=('[#1 ]', ), )
p.generateMesh(regions=pickedRegions)
#######################斜坡网格划分################################
#########轴向网格数目#########
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges2 = e.getSequenceFromMask(mask=('[#100000 ]', ), )
p.seedEdgeByBias(biasMethod=SINGLE, end2Edges=pickedEdges2, ratio=10.0, number=40, constraint=FIXED)
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges1 = e.getSequenceFromMask(mask=('[#40000 ]', ), )
p.seedEdgeByBias(biasMethod=SINGLE, end1Edges=pickedEdges1, ratio=10.0, number=40, constraint=FIXED)
#########径向网格数目#########
p = mdb.models['Model-1'].parts['My_Part']
e = p.edges
pickedEdges = e.getSequenceFromMask(mask=('[#8000000 ]', ), )
p.seedEdgeByNumber(edges=pickedEdges, number=30, constraint=FIXED)
#########网格划分#########
p = mdb.models['Model-1'].parts['My_Part']
c = p.cells
pickedRegions = c.getSequenceFromMask(mask=('[#2 ]', ), )
p.generateMesh(regions=pickedRegions)
#########选择单元#########
elemType1 = mesh.ElemType(elemCode=C3D8T, elemLibrary=EXPLICIT, secondOrderAccuracy=OFF, distortionControl=DEFAULT)
elemType2 = mesh.ElemType(elemCode=C3D6T, elemLibrary=EXPLICIT)
elemType3 = mesh.ElemType(elemCode=C3D4T, elemLibrary=EXPLICIT)
p = mdb.models['Model-1'].parts['My_Part']
c = p.cells
cells = c.getSequenceFromMask(mask=('[#7 ]', ), )
pickedRegions =(cells, )
p.setElementType(regions=pickedRegions, elemTypes=(elemType1, elemType2, elemType3))
################轴承网格划分######################
#############创建滚道表面载荷施加###################
p = mdb.models['Model-1'].parts['My_Part']
e = p.elements
wang = e.getSequenceFromMask(mask=('[#ffffffff:193 #3fffffff ]', ), )
for j in range(50) :
    element_number_1=j*107+1
    element_number_2=107*(j+9)
    selected_element_label=range (element_number_1,element_number_2+1)
    b=j+1
    b=str(b)
    face2Elements=p.elements.sequenceFromLabels(selected_element_label)
    p.Surface(face2Elements=face2Elements, name='Surf-'+b)

#####################创建滚道表面载荷施加##################
####################创建step#########################
mdb.models['Model-1'].TempDisplacementDynamicsStep(name='Step-1', previous='Initial', timePeriod=0.000851607408984458, nlgeom=OFF)
for k in range(2,51):
    k1=k-1
    k1=str(k1)
    k=str(k)
    mdb.models['Model-1'].TempDisplacementDynamicsStep(name='Step-'+k, previous='Step-'+k1, timePeriod=0.000851607408984458, nlgeom=OFF)

############################创建step#######################
#####################施加载荷以及边界条件#######################
#############施加载荷#################
a = mdb.models['Model-1'].rootAssembly
for k in range(1,50):
    k1=k+1
    k1=str(k1)
    k=str(k)
    region = a.instances['My_Part-1'].surfaces['Surf-'+k]
    mdb.models['Model-1'].Pressure(name='Load-'+k, createStepName='Step-'+k, region=region, distributionType=UNIFORM, field='', magnitude=7100205950.0, amplitude=UNSET)
    mdb.models['Model-1'].loads['Load-'+k].deactivate('Step-'+k1)


a1 = mdb.models['Model-1'].rootAssembly
region = a1.instances['My_Part-1'].surfaces['Surf-50']
mdb.models['Model-1'].Pressure(name='Load-50', createStepName='Step-50', region=region, distributionType=UNIFORM, field='', magnitude=7100205950.0, amplitude=UNSET)
###########################
#############施加边界条件#################
a1 = mdb.models['Model-1'].rootAssembly
a1.DatumCsysByThreePoints(name='Datum csys-2', coordSysType=CYLINDRICAL, origin=(0.0, 0.0, 0.0), line1=(1.0, 0.0, 0.0), line2=(0.0, 1.0, 0.0))
a = mdb.models['Model-1'].rootAssembly
f1 = a.instances['My_Part-1'].faces
faces1 = f1.getSequenceFromMask(mask=('[#4048 ]', ), )
region = a.Set(faces=faces1, name='Set-1')
datum = mdb.models['Model-1'].rootAssembly.datums[4]
mdb.models['Model-1'].DisplacementBC(name='BC-1', createStepName='Initial', region=region, u1=UNSET, u2=SET, u3=UNSET, ur1=UNSET, ur2=UNSET, ur3=UNSET, amplitude=UNSET, distributionType=UNIFORM, fieldName='', localCsys=datum)
a = mdb.models['Model-1'].rootAssembly
f1 = a.instances['My_Part-1'].faces
faces1 = f1.getSequenceFromMask(mask=('[#8022 ]', ), )
region = a.Set(faces=faces1, name='Set-3')
datum = mdb.models['Model-1'].rootAssembly.datums[4]
mdb.models['Model-1'].DisplacementBC(name='BC-2', createStepName='Initial', region=region, u1=UNSET, u2=SET, u3=UNSET, ur1=UNSET, ur2=UNSET, ur3=UNSET, amplitude=UNSET, distributionType=UNIFORM, fieldName='', localCsys=datum)
a = mdb.models['Model-1'].rootAssembly
f1 = a.instances['My_Part-1'].faces
faces1 = f1.getSequenceFromMask(mask=('[#800 ]', ), )
region = a.Set(faces=faces1, name='Set-4')
datum = mdb.models['Model-1'].rootAssembly.datums[4]
mdb.models['Model-1'].DisplacementBC(name='BC-3', createStepName='Initial', region=region, u1=SET, u2=UNSET, u3=SET, ur1=UNSET, ur2=UNSET, ur3=UNSET, amplitude=UNSET, distributionType=UNIFORM, fieldName='', localCsys=datum)
a = mdb.models['Model-1'].rootAssembly
region = a.instances['My_Part-1'].sets['Set-1']
mdb.models['Model-1'].Temperature(name='Predefined Field-1', createStepName='Initial', region=region, distributionType=UNIFORM, crossSectionDistribution=CONSTANT_THROUGH_THICKNESS, magnitudes=(20.0, ))


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-28 19:09 , Processed in 0.032449 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表