22 12
发新话题
打印

如何在op2文件里只写出曲轴表面节点的应力、位移结果?

如何在op2文件里只写出曲轴表面节点的应力、位移结果?

在op2文件里只想写出曲轴表面节点的应力、位移结果,应该怎么做?

TOP

在表面蒙上一层膜单元,只输出这些单元及结点上的应力即可。

TOP

写法一
SET 4 = QUAD4 TRIA3
DISPLACEMENT(PLOT) = 4
STRESS(PLOT) = 4
这样写提示是错误的。

写法二
SET 2 = 3
GPSTRESS(PLOT) = 2
OUTPUT(POST)
SET 4 = QUAD4 TRIA3
SURFACE 3 SET 4
但没有输出结果。

那么:只输出膜单元应力的语句,在bdf文件里应该怎么写?

[ 本帖最后由 haohaosir 于 2008-2-2 18:06 编辑 ]

TOP

STRESS(PLOT,SORT1) = ALL
GPSTRESS = ALL
OUTPUT(POST)
SET 1 = QUAD4
SURFACE 1 SET 1

TOP

为什么生成的op2文件还是很大呢?

我以前做动应力恢复时只试过把EXCITE生成的inp4文件分成了12段,每段包含60度曲轴转角,然后再分段恢复。这样做很麻烦。我看到本帖子讨论的是只写出曲轴表面节点位移、应力结果的方法,我很感兴趣,今天尝试了一下。但恢复出来的op2文件有17个G之多,跟以前我整个模型完全恢复时小不了多少(整个模型完全动应力恢复的结果是18G)。恢复出来的op2文件读入patran就出错。我想可能是我的动应力恢复命令文件哪里写得不对了,这个动应力恢复命令文件(ste文件)是我从版上蓝博士帖出来的连杆动应力恢复的例子中的datarec_con6_2005.ste文件修改来的,可能还有错误。我把这个ste文件帖出来,请大家帮我看看,谢谢了!
补充:刚才在注释这个动应力恢复命令文件时,我感觉有两个地方我可能弄错了,已在下面用红色标示出来,请大家帮我看看是不是这些地方引起的问题。同时我也再做一次动应力恢复试试。
----------------------------------------------------------------------------------------
$有限元计算机系统基本设定
NASTRAN BUFFSIZE=65537
NASTRAN SYSTEM(151)=1
NASTRAN SYSTEM(166) = 0
NASTRAN SYSTEM(146) = 1
NASTRAN SYSTEM(213)=1
NASTRAN TETRAAR=5000.
NASTRAN Q4TAPER = 1.
NASTRAN Q4SKEW = 15.
NASTRAN T3SKEW = 3.
$
$
$------------------------------------------------------
$ TRANSIENT EXCITE OUTPUT  (DISPLACEMENTS AND STRESSES)
$$填写:文件名:EXCITE结果*.INP4,719.5-1440.5,step=5
$------------------------------------------------------
$
ASSIGN INPUTT4='Crankshaft.INP4',UNIT=33,FORM=FORMATTED
$
INIT MASTER(S)
$
$-----------------------------------
$ S C R A T C H    S P L I T
$$系统硬盘开区:用于临时存盘         
$-----------------------------------
$
$INIT DBALL LOGICAL=(DB1(1000mb),DB2(1000mb))
$
$INIT SCRATCH(MEM=500) LOGICAL=(A(10)),SCR300=(B1(2000mb),
$B2(2000mb),B3(2000mb),C1(2000mb),C2(2000mb),C3(2000mb),
$D1(2000mb),D2(2000mb),D3(2000mb))
$
$      [kbyte/(64*1.024)]   -----------
$
$ASSIGN DB1='red_01.DBALL'
$ASSIGN DB2='red_02.DBALL'
$
$ASSIGN A='cr-red_CON6_0.scr'
$ASSIGN B1='cr-red_CON6_01.scr_2000mb'
$ASSIGN B2='cr-red_CON6_02.scr_2000mb'
$ASSIGN B3='cr-red_CON6_03.scr_2000mb'
$ASSIGN C1='cr-red_CON6_04.scr_2000mb'
$ASSIGN C2='cr-red_CON6_05.scr_2000mb'
$ASSIGN C3='cr-red_CON6_06.scr_2000mb'
$ASSIGN D1='cr-red_CON6_07.scr_2000mb'
$ASSIGN D2='cr-red_CON6_08.scr_2000mb'
$ASSIGN D3='cr-red_CON6_09.scr_2000mb'
$
ASSIGN OUTPUT2='crankshaft_con6.op2',UNIT=12
$
$
$
SOL 109
TIME 9999
$
$nastran2005版的DMAP命令:
$ _________________________ DMAP Only necessary for IMPRESS ______________________
$/                                                                                \
COMPILE DMAP=SUPER1$
ALTER 'IFPL' $
DTIIN    DTI,DTINDX/AVLTAB,,,,,,,,,/S,N,NOTABL $
TABEDIT  DYNAMIC,AVLTAB,,,/DYNAMIC1 $ modify DYNAMICS
DELETE   /DYNAMIC,,,, $
EQUIVX   DYNAMIC1/DYNAMIC/-1 $
$\___________________________________________________________________________/
$
$$ _________________________ DMAP for Data Input  ______________________
$/                                                                      \
COMPILE DMAP=DISPRS, SOUIN=MSCSOU,NOLIST, NOREF $
ALTER 8
DELETE /UDF,,,, $
INPUTT4 /UDF,,,,//33/-1/-1/FALSE $
$\___________________________________________________________________________/
$
CEND
$命令结束
TITLE= DATA RECOVERY
$
ECHO=NONE
$
$$DYNRED=9
$
METHOD=3
TSTEP=100
DLOAD=500
$
$打印变形结果
DISPLACEMENT(PLOT) = ALL   $$参照STRESS(PLOT,SORT1) = ALL 的样子,其应改成DISPLACEMENT(PLOT,SORT1) = ALL才合适吧?
$打印节点应力
STRESS(PLOT,SORT1) = ALL    $$从这句到下面的SURFACE 1 SET 1这句,我是照搬蓝博士上面给的例子,不知对不对
$
$打印节点应力
GPSTRESS = ALL
$
OUTPUT(POST)
SET 1 = QUAD4
SURFACE 1 SET 1    $$从这句到上面的STRESS(PLOT,SORT1) = ALL 这句,我是照搬蓝博士上面给的例子,不知对不对
$
BEGIN BULK
$ _________________________ Only necessary for IMPRESS ______________________
$/  
DTI,AVLTAB,1,CR,0,DW,1,2,3
,AVL1CANG,5.
$,AVL1TIME,0.024
$ for output in Time Domain where <shift_value> defines the time shift (s)
$ to be able to synchronize with with EXCITE results in IMPRESS
$ Mind: define <time_increment> at TSTEP card in s!
$,AVL1TIME,<shift_value>
$                 
$ for output in Angle Domain where <shift_value> defines the shift angle (deg)
$ to be able to synchronize with EXCITE results in IMPRESS
$ Mind: define <time_increment> at TSTEP card in degrees!
$,AVL1CANG,<shift_value>   
$              
$\___________________________________________________________________________/
$
$
PARAM,NEWSEQ,-1
PARAM,BAILOUT,-1
PARAM,AUTOSPC,YES
PARAM,GRDPNT,0
$将质量单位变成小1000倍的单位,方便模型定义kg->ton
$PARAM,WTMASS,1.E-3      $ !!! Maybe Adjust!!!
PARAM,PRGPST,NO
PARAM,DDRMM,-1
PARAM,POST,-1
$
$
EIGRL,3,,,476    $$  476=模型中的ASET+QSET
$
SPOINT,999001,THRU,999050    $$保留了50阶模态
QSET1,0,999001,THRU,999050
$
$ ___________________________________________________________________________
$ _____________________________ A D J U S T ! ! ! ___________________________
$/                                                                           \
$INP4文件第一个字,正常是435, 含位移速度加速度,故435/3=145个计算case
$就是0->720CA,每5CA一个结果,即720/5+1=145个计算case
TSTEP,100,13,5.,1  $$此处的13是因为我以前是做分段动应力恢复,每段60度曲轴转角,60/5+1=13,现在应该用的是145。
$\___________________________________________________________________________/
$
DLOAD,500,1.0,-1.0,200
TLOAD1,200,300,,,400
$
$ ___________________________________________________________________________
$ _____________________________ A D J U S T ! ! ! ___________________________
$/                                                                           \
$假设外载加在模型的196205点DOF3上
DAREA,300,196205,3,1.  $ one node (dof) from ASET
$\___________________________________________________________________________/
$
$ Dummy Excitation:
TABLED1,400,
,0.0,0.0,0.001,1.0,0.002,0.0,ENDT
$
$ ___________________________________________________________________________
$ _____________________________ A D J U S T ! ! ! ___________________________
$/                                                                           \
$这些定义的主节点都是从缩减命令文件中复制过来的
$ Static Reduction (same as for SOL103):
$
$ ASET-Nodes
$cranksahft journal
ASET1,123456,196205,196206,11603,11602,12992
ASET1,123456,28513,30270,31166,31998,33415
ASET1,123456,49094,50829,51718,52536,53918
ASET1,123456,69526,71242,72122,72909,74323
ASET1,123456,90020,91755,92644,93462,94844
ASET1,123456,110483,112217,113107,113925,115307
ASET1,123456,130946,132681,133570,134388,135770
ASET1,123456,151553,153309,154178,154995,156377
ASET1,123456,172726,172724,172725,196207,196208
$Anti thrust point
ASET1,123456,172723,196209
$Crankpin
ASET1,123456,196210,196214,196220,196221,196227
ASET1,123456,196228,196234,196235,196241,196242
ASET1,123456,196248,196249,196255,196256,196262
ASET1,123456,196263
$Free end point
ASET1,123456,196204
$Damper
ASET1,123456,177226,177227
$Coupling driving part
ASET1,123456,191406,196266,2408773
$Rotating reference point
ASET1,123456,196267,2408774
$
$ Dynamic Reduction (same as for SOL103) e.g.:
$$DYNRED,9,3500.,,,,20
$$SPOINT,999001,THRU,999020
$$QSET1,0,999001,THRU,999020
$
$ Include Bulk Data from File (same as for SOL103):
INCLUDE 'fame_9_139.bdf'
$\___________________________________________________________________________/
$
ENDDATA

[ 本帖最后由 tomas 于 2008-4-3 21:06 编辑 ]

TOP

我昨晚把动应力恢复命令文件改动了其中两处,如下:
STRESS(PLOT,SORT1) = ALL
TSTEP,100,145,5.,1    $原来这里的145,我写的是13,请参见上面帖子的解释。
算了一晚上,恢复出来的op2文件达到了18.6G之多,导入patran肯定是出错的。


如果计算结果减小不了的话,将这么大的op2结果导入patran有什么办法呢,除了分段动应力恢复之外?是不是要设置patran的某些参数,或者将op2转换成xdb格式再倒入,该怎么转换呢?谢谢了!

刚才想到我在曲轴的有限元模型里根本就没建表面的膜单元(quad4或tri3),bdf模型里只有实体单元和节点的信息,这是不是引起问题的原因呢?

[ 本帖最后由 tomas 于 2008-4-4 18:37 编辑 ]

TOP

1、刚才在Google上搜索相关内容,找到haohaosir和蓝博士及其它网友的讨论帖《Conrod的计算结果用Nastran作应力恢复时的问题?》(详见http://www.simwe.com/forum/viewthread.php?tid=765562,以前看到过这篇帖子,时间长就忘了,到需要做这方面内容的时候也想不起来去参考参考 ),对我的问题很有针对性,正在拜读。从中发现我的有限元模型中没建表面膜单元是一大错误。我起初还以为datarec_con6_2005.ste文件中就自动建了表面膜单元了,不用我自己建了呢。
2、另外,我从帖子中看到,zhangpengwei说这种方法的到的shell单元节点应力偏大,GuoL说响应计算时采用表皮是没有问题的,至于应力计算正如zhangpengwei所说的节点应力通过单元应力插值得到,因此需要谨慎使用。我正好打算通过动应力恢复做曲轴的应力计算,那采用表面膜单元的方法还好用么?
3、我对patran用得还不熟,我想不出来用什么办法能简单地把曲轴表面建出来一层膜单元,还要保证膜单元的节点恰好和表面的实体节点重合。我想肯定不是手动去一个一个建出来膜单元的,这太繁琐了。

[ 本帖最后由 tomas 于 2008-4-4 21:58 编辑 ]

TOP

感觉tomas很有研究精神,
继续保持,
不知道这个方法尝试的如何了?

建立实体的面单元应该很简单吧?
将实体表面转化为单元就可以了吧

TOP

一般应力在圆角处集中。那就重新定义圆角的单元编号,给它们set一个号,供plot使用。

TOP

我想尝试一下只对主轴颈和曲柄销圆角处的网格做动应力恢复,我在有限元模型中把主轴颈和曲柄销圆角处网格单元和网格节点都单独列了出来,重新顺序编号。
对ste文件做了如下改动,但算得的op2文件才19兆,非常小,patran读入就出错。应该是结果文件没有被正确地写出来。

SET 1 = 2478176 THRU 2492311   主轴颈和曲柄销圆角处网格单元单独列了出来,重新顺序编号
OUTPUT(POST)
VOLUME 3 SET 1
$打印变形结果
DISPLACEMENT(PLOT) = 1
$打印节点应力
STRESS(PLOT) = 1
$打印节点应力
SET 2 = 3597825 THRU 3625675    主轴颈和曲柄销圆角处网格节点单独列了出来,重新顺序编号
GPSTRESS = 2

我怀疑是因为OUTPUT(POST)和VOLUME 3 SET 1这两句被提到了前面去的缘故。
我还担心指定GPSTRESS=set 2(圆角节点集合)对不对,是不是还是得指定GPSTRESS= set 1(圆角单元集合)才对。
请高手赐教!

TOP

VOLUME 3 没有被用啊。
参考:

DISPLACEMENT(PLOT) = ALL
STRESS(PLOT) = ALL
$
SET 2 = 3
GPSTRESS(PLOT) = 2
$
OUTPUT(POST)
SET 4 = 1 THRU 99
VOLUME 3 SET 4

TOP

谢谢蓝博士!我再照你提供的格式计算一下试试。
这几天我还将ste文件改过其它的格式,但要么动应力恢复的结果有18G之多,要么结果只有19兆。一直不对。
请问“SET 2 = 3”这句在里面有确切含义吗?我看到ste模板文件也是这么写的,但我觉得代号3在文件中没有定义啊。所以我把这句删掉了,一直写得是GPSTRESS(PLOT) = ALL 或者是SET 2 = 100 THRU 199  代表圆角处节点部分的连续编号     GPSTRESS(PLOT) = 2。
另外,照上帖的格式写,位移、单元应力、节点应力都可以一起写出来吗?我试算的几次,经常是这三者不能同时输出,只有一种或某两种能输出。

[ 本帖最后由 tomas 于 2008-4-15 09:53 编辑 ]

TOP

我按照前面蓝博士写的例子稍作修改(如下)就拿去做动应力恢复,所得的结果仍有18.595G之多。Patran处理不了。
DISPLACEMENT(PLOT) = ALL
STRESS(PLOT) = ALL
$
SET 2 = 3
GPSTRESS(PLOT) = 2
$
OUTPUT(POST)
SET 4 = 2478176 THRU 2492311 (此处改成了我模型中圆角单元的顺序编号)
VOLUME 3 SET 4

我又试着修改了ste文件,改成如下形式,计算所得的op2文件结果只有19.891兆。
SET 1 = 2478176 THRU 2492311
$打印变形结果
DISPLACEMENT(PLOT) = 1
$打印节点应力
STRESS(PLOT) = 1
$
$打印节点应力
GPSTRESS = ALL
$
OUTPUT(POST)
VOLUME 3 SET 1

如果只输出圆角单元的做法试不出来的话,我想就只能用笨方法,一次恢复一部分曲轴转角的数据,多算几次了。

TOP

上一种写法中,试试
DISPLACEMENT(PLOT) = 2
STRESS(PLOT) = 2

TOP

谢谢蓝博士!昨天才发现自己犯了一个低级错误,动应力恢复所需的bdf模型文件中并没有对圆角单元顺序编号,我以前是对另外的曲轴模型的圆角单元做了顺序编号,而不是现在正用的这个,所以在现在用的曲轴模型中就没有编号从2478176到2492311的单元,自然也输出不了这些单元的应力值。修改了这个错误后,又按照下面的格式做了应力恢复,生成的op2文件有2.56G,电脑的内存必须大于这个数值才能读到Patran中去。计算结果中Displacement Translational、Grid Point Stresses、Stress Tensor等都有。Displacement Translational显示的是整个曲轴模型区域。而Grid Point Stresses、Stress Tensor显示的是圆角区域的应力结果。
SET 1 = 2478176 THRU 2492311  注:在有限元模型中事先对曲轴圆角单元做了顺序编号
$
$打印变形结果
DISPLACEMENT(PLOT) = ALL
$打印节点应力
STRESS(PLOT) = 1
$打印节点应力
GPSTRESS = ALL
$
OUTPUT(POST)
SET 4 = ALL
VOLUME 3 SET 4

根据这几次尝试,我体会是DISPLACEMENT位移输出和GPSTRESS节点应力输出的结果,其体积都不很大,而STRESS单元应力结果的体积很大,比如这三者完全输出,结果是18G大小的话,STRESS的结果能占到15G之多。要减少结果文件的大小必须限制STRESS只输出圆角单元的结果。所以STRESS(PLOT) = 1。现在2.5G的计算结果中估计STRESS的结果能占1.5G,DISPLACEMENT和Grid Point Stresses的结果加起来能有1G大小。
对于DISPLACEMENT,如限制只输出圆角部分的话,在计算结果中就看不到Displacement Translational选项,而且单元应力、节点应力只能显示分布情况,看不到曲轴整体变形趋势,显得不够漂亮。所以改成DISPLACEMENT(PLOT) = ALL。
节点应力只简单地写成了GPSTRESS = ALL。没去继续尝试对圆角处节点连续编号,然后指定输出这些节点的结果。

[ 本帖最后由 tomas 于 2008-4-17 14:20 编辑 ]
附件: 您所在的用户组无法下载或查看附件
本帖最近评分记录
  • DrLan 贡献积分 +22 感谢 2008-4-17 20:05

TOP

查看了上次对主轴颈、曲柄销圆角处单元做0到720CA动应力恢复的结果,发现整个工作循环内最大应力出现在70CA时的节点3606926处,其stress tensor是138MPa,grid_point_stresses_3 Von Mises是134MPa。因为这次动应力恢复的时间间隔是5CA,我考虑最大应力有可能被漏掉。于是我又做了65到75CA时间段的,间隔为1CA,整个曲轴模型的动应力恢复。我看到在这个计算结果中70CA时,最大应力位置在节点3620915处,其stress tensor是110MPa,grid_point_stresses_3 Von Mises是94.5MPa。同样,两次计算结果中的65CA、75CA时的应力最大节点位置和应力值也都不同。这样的差异让我怀疑上次对圆角单元做的动应力恢复结果是不是可信。

TOP

两次70CA时的节点3606926的差异有多大?

[ 本帖最后由 DrLan 于 2008-4-19 23:04 编辑 ]

TOP

节点3606926在第一次动应力恢复(0到720CA,只恢复圆角单元,间隔5CA)中70CA下的结果为stress tensor 138MPa,grid_point_stress_3 Von Mises 134MPa。
节点3606926在第二次动应力恢复(65到75CA,恢复整个曲轴模型,间隔1CA)中70CA下的结果为stress tensor 60MPa,grid_point_stress_3 Von Mises 57MPa。

我想是不是两次计算时通过EXCITE生成的INP4文件有差异引起的。
第一次动应力恢复时(0到720CA,只恢复圆角单元,间隔5CA),指定EXCITE输出719.6到1440.4CA,间隔5CA,共435组数据。
第二次动应力恢复(65到75CA,恢复整个曲轴模型,间隔1CA),指定EXCITE输出784.6到795.4CA,间隔1CA,共33组数据。
我对照了两次的INP4文件,在65、70、75CA下对应的数值不一样。我想是不是有这种可能,第一次应力恢复(间隔5CA)与第二次应力恢复(间隔1CA)的INP4文件在65、70、75CA下不同,造成了应力恢复结果的不同。

TOP

Mises 134MPa看起来应该更正确。
可能是恢复的nas文件中有要改的数据没有跟着改。

TOP

谢谢蓝博士!
一直没找到原因,因为不敢肯定单独对圆角部分做动应力恢复的结果正确,所以我后来采用分段恢复的方法来做了,每120CA恢复一次,共做了6次。

TOP

 22 12
发新话题
Google
搜索 WWW 搜索 SimWe.com
baidu
搜索 WWW 搜索 SimWe.com
 

网站已经在公安机关备案并处于监督之中,请不要发布违反法律的内容。违反者可能会被追究刑事责任,请务必注意!

1、密码问题:有一些网友注册后,无法收到密码,原因可能是:a.没有填写正确的电子信箱或本来就是假电子信箱。b.采用境外的电子邮箱或者采用国内的21cn.com及sina.com的信箱,密码信发出时可能被拒收。c.登陆时密码没有区分大小写,例如密码中A和a是不同的。d.修改密码只需点击右上角的“个人属性”,然后把里面的“你的密码”和“确认密码”两个选项改为一致的新密码即可。
2、登陆问题:a.有一些网友注册后无法登陆本站.很有可能是因为IE的隐私政策设置问题.论坛需要cookies支持,解决方法如下:把 IE--工具--internet选项--隐私--设为默认即可. b.没有填入正确的安全码或者安全码已经过期。有时候用户网速过慢,或者你的电脑时间与论坛服务器时间相差太大。也会出现安全码过时的提示。