Nastran带预应力的外部超单元方法 1 概述 在标准的MSC Nastran超单元分析时,输出外部超单元矩阵时不能考虑预应力的影响。但是可以通过DMAP程序使得输出的外部超单元矩阵包含预应力。 2 实现方法 对同一模型进行两次计算,第一次计算为常规的SOL103模态计算,但是通过DMAP程序输出微分刚度矩阵;第二次SOL103的外部超单元计算将第一次计算的微分刚度矩阵导入,并输出外部超单元矩阵。这里介绍通过op2文件存储微分刚度矩阵和导入并输出外部超单元矩阵的方法。 3 应用实例 下面通过旋转离心力预载荷的例子,来介绍通过op2文件格式存储微分刚度矩阵,并最终输出带离心力作用的外部超单元矩阵的方法。 1) 第一次常规模态计算时输出微分刚度矩阵的alt程序如下: $ kdd_write_v2013.alt COMPILE SEKDR ALTER'RETURN'(,-1) $ AT THE END MESSAGE //' ' $ MESSAGE //' DMAP ALTER IS WRITINGDIFFERENTIAL AND '/ 'FOLLOWER FORCE STIFFNES MATRIX TO OUT2FILE' $ MESSAGE //' ' $ MATGEN EQEXINS/INTEXT/9/0/NOGSET $ SMPYADINTEXT,KDGG,INTEXT,,/KDGGEXT/3////1////6 $ MATMOD KDGGEXT,EQEXINS,,,,/MAT1,/16/0 $ OUTPUT2 MAT1,,,,///45///'MATPOOL' $ 2) 第二次计算导入微分刚度矩阵,并与原始矩阵合并的alt程序如下: $ kdd_read_v2013.alt COMPILE SEMG ALTER 'IF (NOMGG>=0 '(,-1) $ AFTER THE STIFFNESS EXISTS MESSAGE //' ' $ MESSAGE //' DMAP ALTER IS READINGDIFFERENTIAL AND FOLLOWER'/ ' FORCE STIFFNES MATRIX FROM OUT2 FILE'$ MESSAGE //' ' $ INPUTT2 /MATPOOL1,,,,//45 $ MTRXIN,,MATPOOL1,EQEXINS,SILS,/KDGGEXT,,/LUSETS/S,N,NOKDD $ MATPCH KDGGEXT $ IF(NOKDD=1)THEN$ ADD KJJZ,KDGGEXT/NEWKJJZ $ EQUIVX NEWKJJZ/KJJZ/-1 $ $ MESSAGE //' ' $ MESSAGE //' STIFFNESS UPDATED BYMATRICES FROM OUT2 FILE' $ MESSAGE //' ' $ ELSE $ NO MATRIXFOUND MESSAGE //' ' $ MESSAGE //' DMAP FATAL MESSAGE - '/ 'DIFFERENTIAL STIFFNESS MATRIX NOTFOUND IN OUT2 FILE' $ MESSAGE //' RUN TERMINATED BY DMAPALTER ' $ EXIT $ ENDIF $ 3) 第一次计算的主文件格式如下: $rotor_101_103.bdf assignoutput2='kdd.out2', unit=45, delete SOL 103 INCLUDE'kdd_write_v2013.alt' CEND
ECHO = NONE $ Using Nastrandefault values for RESVEC SUBCASE 1 SUBTITLE=static_rpm3000 SPC = 2 LOAD = 2 DISPLACEMENT(PLOT,SORT1,REAL)=ALL OLOAD(PLOT,SORT1,REAL)=ALL STRESS(PLOT,SORT1,REAL,VONMISES,BILIN)=ALL $ Direct TextInput for this Subcase SUBCASE 2 SUBTITLE=mode_rpm3000 METHOD = 1 SPC = 2 VECTOR(PLOT,SORT1,REAL)=ALL STATSUB = 1 $ Direct TextInput for this Subcase BEGIN BULK EIGRL 1 30 0 MASS include'model_rotor.bdf' $ Loads for LoadCase : static_rpm3000 SPCADD 2 3 LOAD 2 1. 1. 1 $ DisplacementConstraints of Load Set : basefixed SPC1 3 123456 1100001 1100002 $ Loads for LoadCase : mode_rpm3000 $ AngularVelocity Loading of Load Set : static_rmp3000 RFORCE 1 0 0 50. 0. 0. 1. 1 ENDDATA 上面bdf文件含有一个旋转力RFORCE。实际应用当中也可以是重力、热载荷等。模型分两个subcase,第一个subcase是计算预应力;第二个subcase计算标准模态,并输出微分刚度矩阵。 4) 第二次计算的主文件格式如下: $ rotor_101_103.bdf assignmaster='rotor_101_103.master' delete assign dball='rotor_101_103.dball' delete assignoutput2='rotor_dmigop4_103.op4' unit=31 delete form=formatted
assigninputt2='kdd.out2', unit=45
SOL 103 INCLUDE'kdd_read_v2013.alt' CEND ECHO = NONE $ Using Nastrandefault values for RESVEC $$$SUBCASE 1 $$$ SUBTITLE=static_rpm3000 $$$$ SPC = 2 $$$ LOAD = 2 $$$ DISPLACEMENT(PLOT,SORT1,REAL)=ALL $$$ OLOAD(PLOT,SORT1,REAL)=ALL $$$ STRESS(PLOT,SORT1,REAL,VONMISES,BILIN)=ALL $ Direct TextInput for this Subcase SUBCASE 2 SUBTITLE=mode_rpm3000 METHOD = 1 $ SPC = 2 VECTOR(PLOT,SORT1,REAL)=ALL $ STATSUB = 1 $ Direct TextInput for this Subcase BEGIN BULK
param,extout,matrixop4 param,extunit,31 ASET1,123456,1100001,1100002 SPOINT,1200001,THRU,1200030 QSET1,0,1200001,THRU,1200030
EIGRL 1 30 0 MASS include'model_rotor.bdf' $ Loads for LoadCase : static_rpm3000 SPCADD 2 3 LOAD 2 1. 1. 1 $ DisplacementConstraints of Load Set : basefixed SPC1 3 123456 1100001 1100002 $ Loads for LoadCase : mode_rpm3000 $ AngularVelocity Loading of Load Set : static_rmp3000 RFORCE 1 0 0 50. 0. 0. 1. 1 ENDDATA 上面bdf文件assign第一次计算的master和dball文件,引用第一次计算的微分刚度矩阵文件kdd,注释掉了subcase1中的所有case control,并增加外部超单元的输出卡片。最终的带有微分刚度的外部超单元矩阵存于op4文件中,这是一个文本文件,可以阅读比较。 4 参考信息 适用版本:MSC Nastran2013
|