分享

基于APDL编程实现模型自动化分析

 非同寻常 2014-11-22

基于APDL编程实现模型自动化分析

APDL


http:///tips/week26-parametric_studies.pdf

介绍

It is often desired to solve a Finite Element Model with varying parameters to look at the sensitivity of some results quantity to these parameters. There are many ways to do this in ANSYS. The method illustrated in the attached input file uses an array to store the various values of the parameter in the first column. We then loop through each of the 3 values in the array using a *do command. For each value in the array, the FEM is solved. The largest maximum principal stress is stored in the 2nd column of the array. A contour plot of maximum principal stress is made with the parameter value echoed as a label on the plot. The plot is stored as a jpeg picture file. This is repeated for each of the 3 values of the parameter. Finally, a summary text file is written and echoed to the screen with the parameter listed with the resulting maximum principal stress. This technique can be extended to multiple parameters by using an array with more columns. This technique can automate an analysis, and yield high productivity gains.
这里采取的方法是采用数组的第一列来保存这些值。我们用*do来执行循环操作。对于数组中的每一个值,都会调用ANSYS来求解。最大主应力值保存在第二列。然后,对这些应力值进行绘图显示,图片以jpeg的格式存储。最后,结果写入文本文件。这种技术可以延伸到采用多列多参数的形式,并且这种技术使分析自动化,进而提高输出质量。

举例说明

假设现在有一块带有洞的板块。我们改变3次洞的半径值。在下面的命令中,我们设置板块的大小,洞的位置以及用*dim定义数组的大小。这是一个3行2列的数组。我们将用第一列存储洞的半径,然后在第二列存储最大主应力值。

  1. !设置板块的大小
  2. *SET,blkw,1
  3. *SET,blkh,.5
  4. *SET,blkt,.1
  5. !圆柱体(洞)的位置
  6. *SET,cylx,.5
  7. *SET,cyly,.25
  8. !圆柱体的半径( .05,.08,.15)
  9. *dim,holrad,array,3,2,1
  10. holrad(1,1)=.05
  11. holrad(2,1)=.08
  12. holrad(3,1)=.15

然后我们采用*do和*endo的方式在ANSYS中执行3次循环操作。*if操作的目的告诉ANSYS当不是第一次执行循环,则会清除网格和所有的体。所有洞的半径参数值都存在变量cylrad中。板块和圆柱体通过参数的方式进行创建,然后圆柱体和板块进行布尔操作来生成洞。

  1. *do,count,1,3
  2. fini
  3. /prep7
  4. *if,count,gt,1,then
  5. vclear,all
  6. vdele,all,,,1
  7. *endif
  8. cylrad=holrad(count,1)
  9. BLOCK,0,blkw,0,blkh,0,blkt,
  10. CYL4,cylx,cyly,cylrad, , , ,blkt
  11. VSBV, 1, 2

在完成模型求解之后,我们通过 /anum, /tspec/tlab 命令生成一个文本标签。这个标签是用来显示圆柱体的半径。注意:现在我们可以通过如下方式替换参数到文本标签中:

  1. /post1
  2. /ANUM ,0, 1,-0.59026 ,-0.86359
  3. /TSPEC, 15, 1.200, 1, 0, 0
  4. /TLAB,-0.947,-0.864,Cylinder Radius =%holrad(count,1)%

最大主应力值会显示在屏幕上,所有的图形将会在当前目录下保存为jpeg格式。注意:每一个图片命名为jobnamexxx.jpeg,其中xxx是一个以100为起始的整数。

  1. plnsol,s,1
  2. /show,jpeg
  3. plnsol,s,1
  4. /show,close
  5. /show,term

通过SORT排序,可以使用*get命令将最大主应力值赋给参数maxs1中,并将该值保存在数组holrad的第二列。*enddo结束循环。

  1. NSORT,S,1
  2. *GET,maxs1,SORT, ,MAX
  3. holrad(count,2)=maxs1
  4. *enddo

最后,我们用*cfopen命令打开txt文本。我们用*vwrite将输出写入到文件中。第一个*vwrite可以跟随w/o参数,4x表示说在半径值和应力值之间存在4个空格。第二个*vwrite参数将holrad的第一列值(洞半径)和第二列值(最大主应力值)输出到文本文件中。最后,我们用*uilist命令将最终文本信息打印到屏幕上。

  1. *CFOPEN,holrad,txt,
  2. *vwrite
  3. ('Radius',4x,'Stress')
  4. *VWRITE,holrad(1,1),holrad(1,2)
  5. (f6.3,4x,f8.3)
  6. *uilist,holrad.txt

总结

通过引入一组命令到ANSYS中批处理文件中,我们可以很容易通过参数的变化进行自动化分析。在本文中,我们仅仅用了一个参数,即洞的半径。对于多参数这是有限的。因此,参数可以扩展成例如几何大小、材料数属性等等。

注意

写文件操作要放到mac文件中执行,不能直接在ansys命令行中运行

完整命令流

  1. !THIS MODEL CREATES A BLOCK WITH A HOLE AND LOADS IT. THE RADIUS OF THE HOLE IS
  2. !CHANGED 3 TIMES. THE VALUES OF THE HOLE RADIUS IS STORED IN THE ARRAY HOLRAD
  3. !THE BLOCK IS LOADED WITH A TENSILE LOAD OF 1000 PSI.
  4. !THE BLOCK IS RUN WITH THE 3 HOLES SIZES USING A *DO LOOP
  5. !A LABEL IS CREATED FOR EACH PLOT THAT ECHOS BACK THE RADIUS OF THE HOLE. SEE THE
  6. !/TLAB COMMAND
  7. !A PLOT IS CREATED FOR EACH OF THE 3 CONFIGURATIONS SHOWING THE PART WITH THE
  8. !MAX PRINCIPLE STRESSES AND EACH PLOT IS STORED IN A JPEG FILE IN THE WORKING DIRECTORY
  9. !THE MAXIMUM PRINCIPLE STRESS VALUE IS THEN RETRIEVED FOR EACH CONFIGURATION AND
  10. !STORED IN COLUMN 2 OF THE ARRAY HOLRAD
  11. !A TEXT FILE OF THE ARRAY IS WRITTEN OUT WITH A SUMMARY OF HOLE SIZE VERSUS STRESS
  12. !THIS FILE IS ECHOED TO THE SCREEN.
  13. !
  14. !THIS FILE IS PROVIDED AS IS AND IS FOR DEMONSTRATION PURPOSES ONLY.
  15. !
  16. finish
  17. /clear
  18. /filn,block_hole
  19. !DIMENSIONS OF THE BLOCK
  20. *SET,blkw,1
  21. *SET,blkh,.5
  22. *SET,blkt,.1
  23. !LOCATION OF THE CYLINDER (HOLE)
  24. *SET,cylx,.5
  25. *SET,cyly,.25
  26. !RADII OF THE CYLINDER .05,.08,.15
  27. *dim,holrad,array,3,2,1
  28. holrad(1,1)=.05
  29. holrad(2,1)=.08
  30. holrad(3,1)=.15
  31. !REVERSE VIDEO
  32. /RGB,INDEX,100,100,100, 0
  33. /RGB,INDEX, 80, 80, 80,13
  34. /RGB,INDEX, 60, 60, 60,14
  35. /RGB,INDEX, 0, 0, 0,15
  36. *do,count,1,3
  37. fini
  38. /prep7
  39. *if,count,gt,1,then
  40. vclear,all
  41. vdele,all,,,1
  42. *endif
  43. cylrad=holrad(count,1)
  44. BLOCK,0,blkw,0,blkh,0,blkt,
  45. CYL4,cylx,cyly,cylrad, , , ,blkt
  46. VSBV, 1, 2
  47. ET,1,SOLID45
  48. MAT,1,
  49. /NOP
  50. TBDEL,ALL,_MATL
  51. MPDEL,ALL,_MATL
  52. MPTEMP,R5.0, 1, 1, 0.000000000E+00,
  53. MPDATA,R5.0, 1,EX ,_MATL , 1, 10399368.0 ,
  54. MPTEMP,R5.0, 1, 1, 0.000000000E+00,
  55. MPDATA,R5.0, 1,NUXY,_MATL , 1, 0.330000000 ,
  56. MPTEMP,R5.0, 1, 1, 0.000000000E+00,
  57. MPDATA,R5.0, 1,ALPX,_MATL , 1, 1.372222222E-05,
  58. MPTEMP,R5.0, 1, 1, 0.000000000E+00,
  59. MPDATA,R5.0, 1,DENS,_MATL , 1, 2.564201600E-04,
  60. MPTEMP,R5.0, 1, 1, 0.000000000E+00,
  61. MPDATA,R5.0, 1,KXX ,_MATL , 1, 1.619948000E-03,
  62. MPTEMP,R5.0, 1, 1, 0.000000000E+00,
  63. MPDATA,R5.0, 1,C ,_MATL , 1, 88.7924520 ,
  64. ESIZE,0.03,0,
  65. vsweep,all
  66. FINISH
  67. /SOLU
  68. FLST,2,1,5,ORDE,1
  69. FITEM,2,5
  70. /GO
  71. DA,P51X,ALL,
  72. FLST,2,1,5,ORDE,1
  73. FITEM,2,6
  74. /GO
  75. SFA,P51X,1,PRES,-1000
  76. EQSLV,PCG,1E-6
  77. solve
  78. fini
  79. /post1
  80. /ANUM ,0, 1,-0.59026 ,-0.86359
  81. /TSPEC, 15, 1.200, 1, 0, 0
  82. /TLAB,-0.947,-0.864,Cylinder Radius =%holrad(count,1)%
  83. plnsol,s,1
  84. /show,jpeg
  85. plnsol,s,1
  86. /show,close
  87. /show,term
  88. NSORT,S,1
  89. *GET,maxs1,SORT, ,MAX !获取最大主应力值
  90. holrad(count,2)=maxs1
  91. *enddo
  92. *CFOPEN,holrad,txt
  93. *vwrite,
  94. ('Radius',4x,'Stress')
  95. *VWRITE,holrad(1,1),holrad(1,2)
  96. (f6.3,4x,f8.3)
  97. *cfclos
  98. *uilist,holrad.txt
  99. !

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多