声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4308|回复: 15

[结构分析] 移动荷载同时加载多个点,且荷载不一样怎么实现?

[复制链接]
发表于 2011-3-24 11:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
在进行板上加载移动荷载时碰到了两个问题:
问题1:在同一个荷载步同时加载多个点,采用如下方式同时加载时得出结果根本不对。
  1. OUTRES,ALL,LAST     !定义输出控制,控制输出文件大小,输出每一步结果
  2.   NSUBST,5           !定义时间步长
  3.   KBC,0              !定义荷载作用方式,斜坡荷载作用。
  4.   AUTOTS,OFF         !不激活自动时间步长
  5.   M=NINT(I/NSTEP+0.5)         
  6.   TIME,I*DELL                     ! 定义时间点(荷载步结束时刻)
  7.   fdele,all,all                   ! 删除以前施加的点荷载

  8.    ANUM=NINT(100*(I*DELL-BETIME(M))/(ENTIME(M)-BETIME(M)))+1 !求出该时刻最近的荷载值  
  9.    F,nodes(k,1),FZ,-PY(ANUM)          !定义荷载作用单元
  10.    F,nodes(k,2),FZ,-PY(ANUM)
  11.    F,nodes(k,3),FZ,-PY(ANUM)
  12.    F,nodes(k,4),FZ,-PY(ANUM)
复制代码
问题2:同时加载两个不同点,且每个点的荷载不一样,怎么加载,按照下面的方法加载对吗?
  1. F,nodes(M),FZ,-PY(FNUM)
  2. F,nodes(M+1),FZ,-PY(SNUM)
复制代码
回复
分享到:

使用道具 举报

发表于 2011-3-24 12:22 | 显示全部楼层
就目前贴出的代码看不出什么问题……
 楼主| 发表于 2011-3-24 12:40 | 显示全部楼层
本帖最后由 yuebeifan 于 2011-3-24 12:41 编辑

那么如果我要加四十个点这样写对吗?还是把四十点选出来,再统一全部加上去。
  1. ……
  2. ……
  3. *Do,k,1,10
  4.    F,nodes(k,1),FZ,-PY(ANUM)
  5.    F,nodes(k,2),FZ,-PY(ANUM)
  6.    F,nodes(k,3),FZ,-PY(ANUM)
  7.    F,nodes(k,4),FZ,-PY(ANUM)
  8. *enddo
  9. ……
  10. ……
复制代码
发表于 2011-3-24 12:41 | 显示全部楼层
回复 3 # yuebeifan 的帖子

nods数组存的是什么?
 楼主| 发表于 2011-3-24 15:26 | 显示全部楼层
Rainyboy 发表于 2011-3-24 12:41
回复 3 # yuebeifan 的帖子

nods数组存的是什么?

是预先读取的节点编号。您有联系方式吗?想请教一下。
发表于 2011-3-24 15:44 | 显示全部楼层
回复 5 # yuebeifan 的帖子

那应该就没什么问题,瞬态求解花的时间长,不好调试,所以建议现在自由度较少的简单模型上试一试加载代码,再用到想分析的模型上。
 楼主| 发表于 2011-3-24 15:53 | 显示全部楼层
Rainyboy 发表于 2011-3-24 15:44
回复 5 # yuebeifan 的帖子

那应该就没什么问题,瞬态求解花的时间长,不好调试,所以建议现在自由度较少的 ...

简单模型运行可以,但是放在实际结构上时,发现得到的加速度响应图形不对称。全部的移动荷载加载命令流如下,麻烦看一下。
  1. !6.板上人行荷载瞬态动力学分析---------------------------------------------------

  2. !初始参数设置
  3. !-------------------------------------------------------
  4. !行走每列人数,人的体重,加载次数
  5. !注意在下面定义结束时刻和加载时,也用到了每一步时间公式
  6. !-------------------------------------------------------
  7. /prep7      
  8. NSTEP=50                  ! 每步荷载分段数
  9. NWS=5*ns                  ! 行走步数   number of strip
  10. NP=10                     ! 行走每列人数   Number of person
  11. wp=60                    ! 人的平均体重 weight of person=60Kg
  12. NLT=NWS+NP                ! 加载次数(由第一个人的行走步数决定)
  13. !计算Reilegh阻尼的系数
  14. FRE1=FI(1)                ! 第一阶频率
  15. FRE2=FI(2)                ! 第二阶频率  
  16. PI=3.1415926      
  17. C=0.05                    ! 结构阻尼比
  18. ALFA=2*C*FRE1*FRE2/(FRE1+FRE2)    !质量阻尼系数
  19. BETA=2*C/(FRE1+FRE2)              !刚度阻尼系数
  20. !每步行走频率
  21. *DIM,DIFRE,ARRAY,NLT   !行走频率数组
  22. *DIM,BETIME,ARRAY,NLT  !开始时间数组
  23. *DIM,ENTIME,ARRAY,NLT  !结束时间数组
  24. *DO,I,1,NLT
  25. DIFRE(I)=fw
  26. *if,I,LT,2,then
  27. BETIME(I)=0
  28. *else
  29. BETIME(I)=BETIME(I-1)+1/DIFRE(I)
  30. *endif
  31. ENTIME(I)=BETIME(I)+1/0.76/DIFRE(I)
  32. *ENDDO
  33. !*VEDIT,BETIME
  34. !*VEDIT,ENTIME   

  35. !定义力的二维数组
  36. ASIZE=100              !数组行数       
  37. *DIM,PY,ARRAY,ASIZE,NLT      !定义荷载为数组,维度最大为100
  38. *DIM,PY1,ARRAY,ASIZE,NLT  
  39. *DIM,PY2,ARRAY,ASIZE,NLT
  40. *DIM,PY3,ARRAY,ASIZE,NLT  
  41. *DIM,PY4,ARRAY,ASIZE,NLT
  42. *DIM,PY5,ARRAY,ASIZE,NLT
  43. *DO,I,1,NLT
  44. *if,DIFRE(I),LE,2.32,then          !计算荷载系数
  45.    a1=-0.0698*DIFRE(I)+1.211
  46.    a2=0.1052*DIFRE(I)-0.1284
  47.    a3=0.3002*DIFRE(I)-0.1534
  48.    a4=0.0416*DIFRE(I)-0.0288
  49.    a5=-0.0275*DIFRE(I)+0.0608
  50. *else
  51.     a1=-0.1784*DIFRE(I)+1.463
  52.     a2=-0.4716*DIFRE(I)+1.210
  53.     a3=-0.0118*DIFRE(I)+0.5703
  54.     a4=-0.2600*DIFRE(I)+0.6711
  55.     a5=0.0906*DIFRE(I)-0.2132
  56. *endif
  57. DELTT=1/0.76/DIFRE(I) !时间周期×××××××××修改
  58. *DO,J,1,ASIZE
  59. TIM=J*DELTT/ASIZE
  60. PY1(J,I)=a1*sin(pi*TIM/DELTT)
  61. PY2(J,I)=a2*sin(2*pi*TIM/DELTT)
  62. PY3(J,I)=a3*sin(3*pi*TIM/DELTT)
  63. PY4(J,I)=a4*sin(4*pi*TIM/DELTT)
  64. PY5(J,I)=a5*sin(5*pi*TIM/DELTT)
  65. PY(J,I)=wp*GRA*(PY1(J,I)+PY2(J,I)+PY3(J,I)+PY4(J,I)+PY5(J,I))
  66. *ENDDO
  67. *ENDDO
  68. !*VEDIT,PY !检查荷载数组值

  69. !读取行走节点
  70. *DIM,nodes,array,5*ns+1,4   !第一列行走节点
  71. *DO,I,1,5*ns+1
  72. nodes(I,1)=node(32809,41200+(I-1)*kll/ns,11160)
  73. nodes(I,2)=node(33809,41200+(I-1)*kll/ns,11160)
  74. nodes(I,3)=node(34809,41200+(I-1)*kll/ns,11160)
  75. nodes(I,4)=node(35809,41200+(I-1)*kll/ns,11160)
  76. *ENDDO
  77. !*VEDIT,nodes       !写出节点标号,进行检查

  78. NLOAD=NSTEP*NLT     !加载次数
  79. DELL=ENTIME(NLT)/NLOAD   ! 荷载时间步长
  80. !Transient dynamic analysis process
  81. finish
  82. /SOLU
  83. ANTYPE,TRANS     !定义为瞬态动力分析      
  84. Trnopt,full      !完全法进行瞬态动力分析
  85. ALPHAD,ALFA      !定义质量阻尼系数                    
  86. BETAD,BETA       !定义刚度阻尼系数                           
  87. NLGEOM,Off        !不考虑大变形效应                                
  88. nropt,full,,on    !完全NEWTON-Rafason法                     
  89. solcontrol,on     !激活优化缺省值                                
  90. TIMINT,ON   
  91. ! 多人行走
  92. !*******四列NP人行走*********!
  93. *DO,I,1,NLOAD
  94.   OUTRES,ALL,LAST     !定义输出控制,控制输出文件大小,输出每一步结果
  95.   NSUBST,5           !定义时间步长
  96.   KBC,0              !定义荷载作用方式,斜坡荷载作用。
  97.   AUTOTS,OFF         !不激活自动时间步长
  98.   M=NINT(I/NSTEP+0.5)         
  99.   TIME,I*DELL                     ! 定义时间点(荷载步结束时刻)
  100.   fdele,all,all                   ! 删除以前施加的点荷载
  101. !---------------------------------------------------------------------
  102. !首先每列人数少于NP人,则之前的每个点都要加上单步荷载
  103.    *IF,M,LE,NP,THEN                !因为人数的限制,所以要判断人数是否全部在行走区域
  104.    *Do,k,1,M
  105.     *if,I*DELL,LE,BETIME(M+1),then
  106.    ANUM=NINT(100*(I*DELL-BETIME(M))/(ENTIME(M)-BETIME(M)))+1 !求出该时刻最近的荷载值  
  107.    F,nodes(k,1),FZ,-PY(ANUM)          !定义荷载作用单元
  108.    F,nodes(k,2),FZ,-PY(ANUM)
  109.    F,nodes(k,3),FZ,-PY(ANUM)
  110.    F,nodes(k,4),FZ,-PY(ANUM)
  111.    *else
  112.    FNUM=NINT(100*(I*DELL-BETIME(M))/(ENTIME(M)-BETIME(M)))+1 !求出该时刻最近的荷载值
  113.    SNUM=NINT(100*(I*DELL-BETIME(M+1))/(ENTIME(M+1)-BETIME(M+1)))+1 !求出该时刻最近的荷载值   
  114.    F,nodes(k,1),FZ,-PY(FNUM)
  115.    F,nodes(k,2),FZ,-PY(FNUM)
  116.    F,nodes(k,3),FZ,-PY(FNUM)
  117.    F,nodes(k,4),FZ,-PY(FNUM)
  118.    F,nodes(k+1,1),FZ,-PY(SNUM)
  119.    F,nodes(k+1,2),FZ,-PY(SNUM)
  120.    F,nodes(k+1,3),FZ,-PY(SNUM)
  121.    F,nodes(k+1,4),FZ,-PY(SNUM)
  122.    *endif
  123.    *ENDDO
  124. !---------------------------------------------------------------------
  125. !在中间阶段,每列NP个人都在板上行走   
  126.    *ELSEIF,M,LE,NWS,AND,M,GT,NP
  127.   *Do,k,M-NP+1,M
  128.    *if,I*DELL,LE,BETIME(M+1),then
  129.    ANUM=NINT(100*(I*DELL-BETIME(M))/(ENTIME(M)-BETIME(M)))+1 !求出该时刻最近的荷载值  
  130.    F,nodes(k,1),FZ,-PY(ANUM)          !定义荷载作用单元
  131.    F,nodes(k,2),FZ,-PY(ANUM)
  132.    F,nodes(k,3),FZ,-PY(ANUM)
  133.    F,nodes(k,4),FZ,-PY(ANUM)
  134.    *else
  135.    FNUM=NINT(100*(I*DELL-BETIME(M))/(ENTIME(M)-BETIME(M)))+1 !求出该时刻最近的荷载值
  136.    SNUM=NINT(100*(I*DELL-BETIME(M+1))/(ENTIME(M+1)-BETIME(M+1)))+1 !求出该时刻最近的荷载值   
  137.    F,nodes(k,1),FZ,-PY(FNUM)
  138.    F,nodes(k,2),FZ,-PY(FNUM)
  139.    F,nodes(k,3),FZ,-PY(FNUM)
  140.    F,nodes(k,4),FZ,-PY(FNUM)
  141.    F,nodes(k+1,1),FZ,-PY(SNUM)
  142.    F,nodes(k+1,2),FZ,-PY(SNUM)
  143.    F,nodes(k+1,3),FZ,-PY(SNUM)
  144.    F,nodes(k+1,4),FZ,-PY(SNUM)
  145.    *endif
  146.    *ENDDO
  147. !------------------------------------------------------------------------
  148. !结束阶段,有一部分人走出去  
  149.   *ELSE      
  150.   *Do,k,M-NP+1,NWS   
  151.     *if,I*DELL,LE,BETIME(M+1),then
  152.    ANUM=NINT(100*(I*DELL-BETIME(M))/(ENTIME(M)-BETIME(M)))+1 !求出该时刻最近的荷载值  
  153.    F,nodes(k,1),FZ,-PY(ANUM)          !定义荷载作用单元
  154.    F,nodes(k,2),FZ,-PY(ANUM)
  155.    F,nodes(k,3),FZ,-PY(ANUM)
  156.    F,nodes(k,4),FZ,-PY(ANUM)
  157.    *else   
  158.    FNUM=NINT(100*(I*DELL-BETIME(M))/(ENTIME(M)-BETIME(M)))+1 !求出该时刻最近的荷载值
  159.    SNUM=NINT(100*(I*DELL-BETIME(M+1))/(ENTIME(M+1)-BETIME(M+1)))+1 !求出该时刻最近的荷载值   
  160.    F,nodes(k,1),FZ,-PY(FNUM)
  161.    F,nodes(k,2),FZ,-PY(FNUM)
  162.    F,nodes(k,3),FZ,-PY(FNUM)
  163.    F,nodes(k,4),FZ,-PY(FNUM)
  164.    F,nodes(k+1,1),FZ,-PY(SNUM)
  165.    F,nodes(k+1,2),FZ,-PY(SNUM)
  166.    F,nodes(k+1,3),FZ,-PY(SNUM)
  167.    F,nodes(k+1,4),FZ,-PY(SNUM)
  168.    *endif                                       
  169.    *ENDDO
  170.    F,nodes(NWS+1,1),FZ,-PY(FNUM)
  171.    F,nodes(NWS+1,2),FZ,-PY(FNUM)
  172.    F,nodes(NWS+1,3),FZ,-PY(FNUM)
  173.    F,nodes(NWS+1,4),FZ,-PY(FNUM)   
  174.    *ENDIF   
  175.   LSWRITE,I                    ! 将荷载步写入荷载步文件
  176.         SOLVE
  177.   Save   
  178. *ENDDO   
  179. FINISH  
复制代码
发表于 2011-3-24 16:17 | 显示全部楼层
看了下代码,你是想算一些人走过一个结构时的响应对吧?所以期望在这些人依次进入时,以及他们依次退出时,有相同的(或者说对称的)响应是么?但是我觉得只算一个周期(即一些人进入——通过——走出)的话,响应本身就不是对称的,多算几个周期可能会得到较好的结果吧。

其实是这个意思,比如对一个单自由度系统,只算一个周期的正弦激励,是不会得到与之周期相同的完美的响应的。。。
 楼主| 发表于 2011-3-24 16:20 | 显示全部楼层
Rainyboy 发表于 2011-3-24 16:17
看了下代码,你是想算一些人走过一个结构时的响应对吧?所以期望在这些人依次进入时,以及他们依次退出时, ...

在ANSYS里面怎么实现多算一些周期。不太懂。请求点拨。
发表于 2011-3-24 16:26 | 显示全部楼层
比如,修改前(只计算一个周期):
  1. *DO,I,1,NLOAD
  2.   !一些设置
  3.   TIME,DT*I
  4.   F,5,FX,SIN(OMEGA*DT*I)
  5.   !另一些设置
  6. *ENDDO
复制代码


修改后(10个周期):
  1. *DO,RI,0,9
  2.   *DO,I,1,NLOAD
  3.     !一些设置
  4.     TIME,DT*(I+RI*NLOAD)
  5.     F,5,FX,SIN(OMEGA*DT*I)
  6.     !另一些设置
  7.   *ENDDO
  8. *ENDDO
复制代码



 楼主| 发表于 2011-3-24 16:54 | 显示全部楼层
Rainyboy 发表于 2011-3-24 16:26
比如,修改前(只计算一个周期):

修改后(10个周期):

好像不是这样的。我所指的对称是加速度响应关于x轴对称。比如采用一列人在板上行走时,得到的加速度响应是 untitled.bmp

多列人行走时
17hzvs.jpg

这是什么情况?
发表于 2011-3-24 18:02 | 显示全部楼层
一个时间点只有一个值……怎么会存在“关于X轴对称”的说法……说的是峰值对称吧?
但是蓝色的图也没有太“对称”……
其实多个人过桥可以简单的认为就是一个人过桥的信号改变相位再加起来的结果,试试把蓝色的图按照多个人之间的时间差移动后加起来,看看是个什么样?
发表于 2011-3-25 01:18 | 显示全部楼层
本帖最后由 Chelsea 于 2011-3-25 01:18 编辑

可以参考一下下面这个火车过桥的加载

一个火车过桥动态加载的例子.txt

18.09 KB, 下载次数: 6

 楼主| 发表于 2011-3-25 10:09 | 显示全部楼层
Chelsea 发表于 2011-3-25 01:18
可以参考一下下面这个火车过桥的加载

谢谢。不错,这个是静力分析,不知是否有动力分析的实例?
发表于 2011-3-26 06:53 | 显示全部楼层
yuebeifan 发表于 2011-3-25 10:09
谢谢。不错,这个是静力分析,不知是否有动力分析的实例?
  1. FINI
  2. /CLE
  3. !设置参数
  4. /CONFIG,NRES,2000
  5. *SET,LONG,40    !梁长度
  6. *SET,NE,20    !单元数
  7. *SET,DL,LONG/NE    !单元长度
  8. *SET,NN,NE+1    !节点数
  9. *SET,FF,5000    !移动的集中力
  10. *SET,VV,80    !移动速度
  11. *SET,DT,DL/VV*3.6   !移动经过一个单元所需时间
  12. !定义单元材料实常数
  13. /PREP7
  14. ET,1,BEAM3    !梁单元
  15. MP,EX,1,50E9    !弹性模量
  16. MP,DENS,1,2500    !密度
  17. MP,NUXY,1,0.2
  18. R,1,0.5,0.041667,1   !几何常数
  19. !建立模型
  20. *DO,I,1,NN,1
  21. N,I,(I-1)*DL    !建立
  22. *ENDDO
  23. *DO,I,1,NE
  24. E,I,I+1
  25. *ENDDO
  26. FINI
  27. !加载与求解
  28. /SOL
  29. D,1,ALL
  30. D,NN,ALL
  31. ANTYPE,4    !瞬态分析
  32. TRNOPT,FULL
  33. TIMINT,OFF
  34. OUTRES,BASIC,ALL    !输出基本项,每一步都输出
  35. KBC,1       !指定载荷类型
  36. TIME,1E-10     !指定载荷步结束时间
  37. NSUB,4,8      !指定载荷子步数为4,最大子步数为8
  38. SSTIF,ON      !打开应力刚化效应
  39. ACEL,0,9.8,0     !施加重力加速度
  40. ALLS       !选中所有元素
  41. SOLVE       !求解第一个载荷步
  42. TIMINT,ON
  43. *DO,II,1,NN,1
  44. OUTRES,ALL,ALL    !输出所有加载子步的所有结果
  45. TIME,II*DT    !每个荷载步的求解时间
  46. NSUBST,5    !每个荷载步包含五个子步
  47. FDELE,ALL,ALL    !删除所有的集中力荷载
  48. NSEL,S,LOC,X,(II-1)*DL !选择集中力作用节点
  49. F,ALL,FY,-FF    !施加集中荷载
  50. ALLSEL    !选择所有
  51. SOLVE
  52. *ENDDO
  53. SAVE
  54. FINI
  55. /POST1
  56. SET,NE/2+1,LAST    !设定读取的载荷步
  57. /ESHAPE,1    !显示梁形状
  58. PLNSOL,U,Y,0,1.0   !Y向位移
  59. PLNSOL,S,EQV,0,1.0   !等效应力
  60. FINI
  61. /POST26
  62. NSOL,2,NE/2+1,U,Y,UY_M       !取出梁中部节点Y方向的位移
  63. XVAR,1                   !定义时间变量为坐标横轴
  64. PLVAR,2                  !绘制位移随时间变化的图形
  65. DERIV,3,2,1,,,,,1        !对梁中部节点的Y向位移进行微分运算,得到Y向速度
  66. PLVAR,3                  !绘制速度随时间变化的图形
  67. DERIV,4,3,1,,,,,1        !对梁中部节点的Y向速度进行微分运算,得到Y向加速度
  68. PLVAR,4                  !绘制加速度随时间变化的图形
复制代码
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-27 20:32 , Processed in 0.072163 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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