[Dino笔记]傅立叶变换工具及求解基频
【软件下载】程序:傅立叶变换小程序(delphi)
【ETABS模型下载】Etabs模型与白噪声地震波
【Python源代码下载】python:python进行傅立叶变换源代码
【微信公众号】需要点击【阅读原文】才可以下载
本期转自:Dino结构笔记-公众号对结构动力学的必学内容进行一个数学工具的介绍,也就是傅立叶变换。傅立叶变换广泛用于结构动力学与结构抗震的内容当中,但是它的教学非常尴尬,同学们在学习结构动力学的课程之前未必有学习傅立叶变换这个数学工具(属于数值计算的教学内容),教动力学的书一上来就介绍傅立叶变换了,还有的动力学与抗震的教学把这部分当成选修的。为了啃吃动力学中傅立叶变换这块骨头,笔者通过编程的方法实现简单的快速傅立叶变换(FFT),提供一个小程序给工程师使用,不需要用到matlab与python都可以用,最后带来一个简单工程计算的实例介绍傅立叶变换在工程中的小应用。
傅立叶Jean Baptiste Joseph Fourier(1768年-1830年)
矩形波的傅立叶变换是最容易图形化理解的傅立叶的方法。
简单说一下原理:
傅立叶变换的主要功能就是把一个时程函数(如地震波动力荷载,如结构的响应位移时程),把时程曲线转换为频域的表达式。什么是频域的表达式,就是把任意时程曲线变成一组不同周期,不同幅值,不同起始转动角的正弦曲线组合(求和)而成,也就是把一条任意时程曲线变成一堆正弦公式求和。那么为了方便表达,把这一推的正弦曲线的幅值,周期(频率),起始转角记录下来,按频率进行排序,写成关于频率的表达式,那就成为傅立叶变换后的傅立叶谱幅值曲线,与傅立叶相位(转动起始位置)曲线了,工程师了解到这里就差不多可以使用了。
工程师需要了解傅立叶变换的几个特点:
(1)谱的幅值代表某个频率的振动对总值的贡献较大,通过面积与幅值大就可以判断这个振动是高频率振动,还是低频率振动
上图属于高频振动,频率值较大
上图属于低频振动,频率值较小
(2)有明显峰值的谱曲线,其峰值往往代表的就是结构的第一周期(频率),如下图所示。
最大频率出现在34的位置,频率值 f = 34/总时间 = 34 / 20.48(sec)
与反应谱不同,傅立叶谱在一定的精度范围内可以双向转换,也就是说可以从时程曲线变换成傅立叶谱,也可以从傅立叶谱变成时程曲线(人工地震波就是这么得来的),反应谱则不能,时程曲线可以得到反应谱,反应谱得不到唯一的地震波,还有一点,反应谱与结构的阻尼比相关。
这个图经常出现在超限报告,表明地震波的反应谱与规范谱的关系
这次编制傅立叶变换的小工具也借用了python作为辅助做一些快速的验算与复核,发现python在动力学计算的快速编程与计算的能力(numpy, scipy)是相当不错的,还有快速绘制图表的功能(matplotlib)。在文章的后面附上傅立叶变换的源代码与实例(代码来源CSDN, https://blog.csdn.net/qq_27825451),方便大家学习。一般编写完傅立叶变换的小工具需要做一些验算,比如输入一些组合正弦函数(三个主频率为200,400,600),如以下公式所示,然后采用程序测算出相应的傅立叶谱值。
以下是python的代码与计算结果:
上图是 python进行傅立叶计算的源代码,来源于网站csdn
python 分析所得到幅值与相位谱
以下是delphi编制的小程序的计算结果:
程序基本与PYTHON是吻合的,程序在下方可以下载。
以下通过一个结构动力学的计算实例介绍傅立叶变换的功能之一(今天不讲人工波)
通过白噪声去激励框架结构,通过时程分析得到结构的顶点位移响应,从而估算结构的自振周期。以下采用ETABS进行结构模拟分析,分析模型在下面的附件可以下载。
(1)小程序附带一个白噪声的生成功能,点击可以生成一定步数的白噪声。如下图所示
小程序生成的(白噪声)地震波时程曲线,附件自带
导入ETABS后的地震波曲线
(2)在Etabs建立一个四层的小框架结构,输入白噪声作为X方向地震波输入,进行时程分析,得到顶点位移时程曲线如下图所示,
四层框架示例模型
顶点位移时程曲线(相对位移)
(3)对位移时程曲线傅立叶分析,在ETABS的时程分析步要设置成1024,2048等2N数才可以。将位移时程曲线导入小程序进行傅立叶变换,得到以下结果。
导入小程序后进行傅立叶变换,查看第一周期。
从傅立叶谱来看,有明显的峰值,峰值出现在 f = 34/20.48 = 1.660(Hz) 处,所以第一频率为1.660hz,周期估算为0.6023s,与实际ETABS得到的周期值接近。(ETABS的模态结果显示第一周期是0.620s)
这个求结构振动周期的方法就是试验方法,比如一个超高层塔楼顶的桅杆,你想测出实际周期,可以用白噪声去摇它,再测它的基频。ETABS的这个时程分析可以采用数值积分法如Newmark或Wilson-Theta法,也就是说可以不先求解模态就可以得到位移时程曲线,那么这个位移曲线则反过来可以去求结构的基本周期,这就是时域工具与频域工具两大工具的相通之处。如果结构进入弹塑性以后,想知道周期退化了多少,也可以通过这个方法来测,大震完来个白噪声看看周期变化了多少,等等,所以说学会傅立叶变换,乐趣多多。傅立叶变换,结合傅立叶逆变换与杜哈梅积分,结合这三个工具,就可以生成人工地震波了。这个可以作为一个坑下次再填。
振动台试验会采用白噪声去查找结构的基本周期,上图是2008年的项目在广州大学做的振动台试验。
详细资料可以查看论文:
高层钢-混凝土组合门式结构消能减震体系模拟地震振动台试验研究,《振动与冲击》
====THE END====
【软件下载】程序:傅立叶变换小程序(delphi)
【ETABS模型下载】Etabs模型与白噪声地震波
【Python源代码下载】python:python进行傅立叶变换源代码
【微信公众号】需要点击【阅读原文】才可以下载