Rainyboy 发表于 2014-2-18 06:32

“理解波动”系列算例(二):将无限域波动解映射到有限域

本帖最后由 Rainyboy 于 2015-6-5 10:42 编辑

===========================
算例(二):将无限域波动解映射到有限域
===========================

在第一个算例中,我们用手边常用的振动分析工具算出了近场的波动现象,清晰地观察到了边界对波动的反射。可以粗粗的说,用“振动”方法算出了“波动”现象,在第二个算例中,我们打算用“波动”方法算出“振动”。

我们将以标准波动方程为研究对象:
1. 得出无限域的上的响应;
2. 将其映射为有限域上的响应;
3. 用ANSYS计算同样的有限域模型,与上述理论解进行对比;

在帖子里面只贴出主要思路和结果,对详细的推导感兴趣的同志可以下载附件PPT,或者参阅数理方程一类的书。

【下面这张PPT介绍了标准波动方程以及它的用处】:



【它的求解问题可以归纳为】:



【采用波动分析中常用的积分变换法(详见附件),可以得到无限域上的响应表达式,再根据边界条件将它映射到有限域上】:



【以上述PPT中的(制持续了一个周期的正弦)点激励为例,其响应时程为】:

【无限域】




【有限域】


或者将几个不同位置的点的响应都绘出来:




至此,我们实际上已经用波动方法获得了有限域上的响应。
接下来使用ANSYS计算同样参数的有限结构的响应,所用代码与算例一中所示99%一致,实际上只需要将激振力的方向由FY改为FX,因为沿FY激励所得的横波并不满足标准波动方程,沿FZX方向激励而得的纵波才满足标准波动方程。为了帖子的完整性,这里再贴一遍:
FINISH
/CLEAR
/PREP7
/eshape,1
BL = 1
BW = 2e-2
BH = 2e-2
NMESH = 100
ET,1,BEAM188
MP,EX,1,2.1E11
MP,PRXY,1,0.3
MP,DENS,1,7800
SECTYPE,1,BEAM,RECT
SECDATA,BW,BH,2,2
K,1,-BL,0,0
K,3,0,0,0
K,2,BL,0,0
L,2,3,NMESH
L,1,3,NMESH
LMESH,ALL
NSEL,S,LOC,X,-BL
D,ALL,ALL
ALLSEL,ALL
NSEL,S,LOC,X,BL
D,ALL,ALL
ALLSEL,ALL
!**********************
!模态分析
!**********************
!/SOLU
!ANTYPE,2!指定为模态分析
!MODOPT,LANB,10      !指定提取特征值数及所用方法
!MXPAND,10,,,YES!指定扩展的模态阶数
!SOLVE
/PREP7
*SET,N_CIRCLE,20!计算的周期数
*SET,NSTP_C,30!每周期的载荷步数
*SET,FRE,10000!载荷频率
*SET,CURR_T,0
*SET,DT,1.0/FRE/NSTP_C
*SET,PI,3.141592653
/SOLU
ANTYPE,4!指定分析类型:动力学分析
TRNOPT,FULL!完全法
TIMINT,ON!时间积分效应
OUTRES,ALL,LAST      !所有子步,所有记录写入DATABASE
*DO,I,0,N_CIRCLE-1,1!外部循环:共计算N_CIRCLE个周期
*DO,J,1,NSTP_C,1!内部循环:每个周期NSTP_C个载荷步
    CURR_T=(I*NSTP_C+J)*DT!计算当前载荷步的时间点
          *IF,I,EQ,0,THEN
                  ALLSEL,ALL
            NSEL,S,LOC,X,0      !选择加载点
            F,ALL,FX,100*SIN(2*PI*FRE*CURR_T)!施加当前时间点的载荷
            ALLSEL,ALL
    *ENDIF
    ALLSEL,ALL
    TIME,CURR_T      !设置当前载荷步的时间点
    AUTOTS,1      !自动时间步长
    KBC,0 !载荷步之间线性插值:递增方式
    DELTIM,DT/10,DT/12,DT/8      !本载荷步之中指定时间步长
    LSWRITE,I*NSTP_C+J         !写载荷步
*ENDDO
*ENDDO
LSSOLVE,1,N_CIRCLE*NSTP_C!求解所有载荷步
FINISH



结果对比为(取了两个点,分别绘出它们在两种方法下的响应时程):






请注意实际上是我们采用的(坐标变换+边界映射)方法与ANSYS瞬态动力学分析中所采用的数值积分方法取得的一致。
通常我们视前者为波动观点的方法,后者为振动观点的方法——这再次印证了二者本质的相同。


在算例一和算例二中,我们反复纠结的所在就是——求解域的边界。
例一说明,振动方法在处理具有确定边界的结构上具有先天的优势,若要计算波动现象,就需要取消边界的影响,或将边界设置得较远,这样波在传递到边界之前的结果可视为没有边界反射的无限域上的解;
例二说明,波动方法在处理无限结构上具有优势,若要计算有限结构的响应,需要按照边界条件将无限结构的响应映射到有限域上。

求解域的边界带来了波的反射和透射,而可以说正是波的反射和透射成为了振动现象和波动现象的分水岭:反射使响应和能量局部化,使一部分或全部能量无法从近场传递到远场;反之若系统中不存在反射将不会观察到共振,能量将不受阻碍的从近场传递到远场。


========
下集预告
========
在第三例中,我们将通过欧拉-伯努利梁方程(非标准波动方程)在无限域上的频域解求得【例一】中的有限结构的时域响应结果。




===========================
系列链接
===========================

“理解波动”系列算例(一):在有限结构上算出“波动” (同时包含对这系列算例的一些说明)
“理解波动”系列算例(二):将无限域波动解映射到有限域
理解波动系列算例(三):Wave-mode duality,以悬臂梁为例.

mayaview 发表于 2014-2-26 18:04

每次看兄台的帖子都受益匪浅,要不断的重复阅读。想请问一下你的gif动画是怎么做的,Matplotlib好像不支持直接导出gif动画。

Rainyboy 发表于 2014-3-8 20:46

mayaview 发表于 2014-2-26 11:04
每次看兄台的帖子都受益匪浅,要不断的重复阅读。想请问一下你的gif动画是怎么做的,Matplotlib好像不支持 ...

当时看了你的留言忘了回……
gif动画我是用其他工具做的,在PYTHON中只是把一张张图存出来。

mayaview 发表于 2014-3-9 00:25

Rainyboy 发表于 2014-3-8 20:46
当时看了你的留言忘了回……
gif动画我是用其他工具做的,在PYTHON中只是把一张张图存出来。

哈,我还以为是mencoder或者ffmpeg之类高大上的工具呢。

xhj 发表于 2014-3-29 19:02

关于波动与振动的区别与联系,杨桂通在其《弹性动力学》里有较为精准的论述。

linneaus 发表于 2015-12-25 18:58

谢谢楼主!!!!请问对于初学者,能有什么可以推荐的关于波动的教材吗?

Rainyboy 发表于 2015-12-25 22:14

linneaus 发表于 2015-12-25 11:58
谢谢楼主!!!!请问对于初学者,能有什么可以推荐的关于波动的教材吗?

可以看看 K.F. Graff 写的 Wave motion in Elastic solids

linneaus 发表于 2015-12-29 10:58

虽然看不懂,但是值得学习!

wh_jason 发表于 2016-1-29 13:23

学习学习

wh_jason 发表于 2016-1-29 13:23

学习学习
页: [1]
查看完整版本: “理解波动”系列算例(二):将无限域波动解映射到有限域