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

[后处理] 时程分析后多个BEAM188单元的应力提取后处理问题

[复制链接]
发表于 2011-8-18 10:13:20 | 显示全部楼层 |阅读模式 来自 湖北武汉
本帖最后由 bambooli 于 2011-8-18 11:36 编辑

BEAM188单元的应力提取比较麻烦,结合论坛上一位仁兄的帖子以及王新敏的书,本人写了一段程序来提取时程分析后BEAM188单元的应力。共有16个单元的应力需要提取,一个思路就是每一个荷载步作用下,结构有一个应力响应,提取出最大值和最小值,然后在1000个荷载步里面找出最大最小值。
命令流如下:
/POST1
  set,last !读取最后一个荷载步的解
  *GET,NUM_SUB,ACTIVE,0,SOLU,NCMLS !获取荷载步的总步数,Cumulative number of load steps,提取后值为1000
  *DIM,DMAX,ARRAY,NUM_SUB  !存储1000个荷载步每步的最大应力
  *DIM,S_MAX,ARRAY,16             !存储所有1000个荷载步中中某单元的最大应力,共16个单元
  *DIM,DMIN,ARRAY,NUM_SUB  !存储1000个荷载步每步的最小应力
  *DIM,S_MIN,ARRAY,16             !存储所有1000个荷载步中某单元的最大应力

  *DO,i,1,16
   S_MAX(i)=0     !数组初始化为0
   S_MIN(i)=0       !数组初始化为0
  *ENDDO
  
*DO,i,1,16         
*DO,j,1,NUM_SUB
  SET,j  !读取第j个荷载步的解
  *GET,DMAX(j),SECR,DunTop(i),S,X,MAX   ! SX最大应力值
                                     !Duntop里面保存的是需要提取的单元之单元号
  *GET,DMIN(j),SECR,DunTop(i),S,X,MIN     ! SX最小应力值
  *IF,DMAX(j),GE,S_MAX(i),THEN
      S_MAX(i)=DMAX(j)
    *ELSE
      S_MAX(i)=S_MAX(i)
  *ENDIF
  *IF,DMIN(j),LE,S_MIN(i),THEN
      S_MIN(i)=DMIN(j)
    *ELSE
      S_MIN(i)=S_MIN(i)
  *ENDIF
*ENDDO
*ENDDO
运行完毕后,发现只有第一个单元即i=1时对应的单元有值提取出来,但是j只运行了一次。output窗口见附件。
附件:

请大神帮忙看看,若问题解决了,本人定当将修改好的命令流发到论坛与大家共享。
谢谢了!

本帖子中包含更多资源

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

×
 楼主| 发表于 2011-8-18 15:12:27 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
运行完毕后,output窗口正常。感觉是两层DO循环那里出问题了。请大神指教。
回复 不支持

使用道具 举报

发表于 2011-9-5 10:24:13 | 显示全部楼层 来自 大连理工大学
两个循环。。。不简单呀
我最近正在做一个beam161单元的动力学分析,也需要提取所有载荷步中的最大塑性变形。正在学习中,嘿嘿
回复 不支持

使用道具 举报

发表于 2011-9-22 14:25:42 | 显示全部楼层 来自 江苏南京
能否发个命令流学习一下
回复 不支持

使用道具 举报

发表于 2013-7-23 19:59:34 | 显示全部楼层 来自 陕西西安
没看懂。。。
回复 不支持

使用道具 举报

发表于 2013-7-23 21:20:30 | 显示全部楼层 来自 浙江嘉兴
*do,i,1,16,1
是吧?
回复 不支持

使用道具 举报

发表于 2013-7-23 21:32:33 | 显示全部楼层 来自 山东
领教高手了
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 22:36 , Processed in 0.034134 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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