【转自:Dino结构笔记-公众号】单自由度体系自由与简谐振动求解程序
【程序下载】程序:SDOF自由振动计算程序
【程序下载】程序:SDOF简谐振动计算程序
要下载资料需要点击【阅读原文】才可以下载
本期的DinoStru结构笔记科普结构动力学的入门课程,主要介绍结构动力学与抗震课程的第一课,也是我在香港大学授课时为学生准备的电子学习材料,题目是单自由度体系的自由振动与简谐受迫振动。主要的参考资料是《结构动力学(第二版)》R.克拉夫(这本经典教材)第2章与第3章的内容,公式与原理的推导都更为详细,也可以参考我给学生准备的手抄笔记(文章下面可以下载)。本篇笔记主要介绍,基于单自由度解析解来进行编程,实现绘制振动曲线及动画。有兴趣的同学可以下载相关程序。
文章的最后有B站链接,相对应的香港大学研究生抗震课程关于单自由度振动的课程讲座视频(英文)
https://www.bilibili.com/video/BV1i7411p7bK
通过编程实现单自由体系的自由振动求解动画。
经典的共振法求解周期的试验动画
我推荐两本动力学教材,克拉夫的结构动力学(必用),曲哲博士翻译的《结构抗震分析》这本书也是不错的。
在结构动力学的开篇学习单自由度体系SDOF的振动求解是为了多自由度的振动问题,由于单自由度有解析解,所以直接采用公式求解,那么多自由度的求解就需要通过求解振型的方法,把多自由度解散成多个单自由度体系,最后采用振型叠加法求得,这个就是动力学振型叠加法常用的思路。书上的公式推导不是太详细,所以我补充手写笔记PDF,在文章的最后可以下载。
课程相关的手写笔记:teacher_note_part1.pdf
单自由度在自由振动(有阻尼系统)的求解如下:
pascal源代码为:
wn:=sqrt(k/m);
wd:=wn*sqrt(1-damp*damp);
for i:=0 to nstep do
begin
t:=i*dt;
ud1[i]:=(v0/wd)*exp(-damp*wn*t)*sin(wd*t);
end;
程序 SDOF_FreeVibraiton 的程序界面及动画展示效果
单自由度在正弦荷载作用下的振动(有阻尼系统)的求解如下:
参考源代码如下:pascal源代码为:
wn:=sqrt(k/m);
tn:=2*pi/(wn);
wd:=wn*sqrt(1-damp*damp);
r:=wt/wn;
kx:=damp;
dd:=p0/k*(1/(sqr(1-r*r)+sqr(2*kx*r)));
a2:=dd*(2*kx*r);
a1:=(kx*wn*(2*kx*r)*dd-(1-r*r)*wt*dd)/wd;
for i:=0 to nstep do
begin
t:=i*dt;
cosa:=cos(wd*t);
sina:=sin(wd*t);
cosb:=cos(wt*t);
sinb:=sin(wt*t);
uc:=exp(-kx*wn*t)*(a1*sina+a2*cosa);
up:=dd*((1-r*r)*sinb-2*kx*r*cosb);
ud1[i]:=uc+up;
end;
程序 SDOF_Harmonic Vibraiton 的程序界面及动画展示效果(这个情况刚好是共振)
同学们可以采用ETABS或SAP2000进行单自由度的正弦受荷计算,得到的时程曲线如图所示。
ETABS采用的荷载为文本导入,不建议采用正弦曲线生成,还是老老实实在EXCEL生成数据文本后导入,这样的数据可控性会好点。
自编程序与ETABS的分析结果对比如下图所示:
后记:希望疫情可以早点结束,非常怀念香港大学的三尺讲台,以下的照片是我最后一次在香港大学的面授课程(2020年2月),之后就是一直采用网课的形式了。
抗震课程与有限元课程一样,如果通过编程或使用程序,会更好的理解动力学的计算过程与细节,这个对工程师的培养是很重要的。
香港大学研究生抗震课程(第2课)
单自由度体系的振动计算:https://www.bilibili.com/video/BV1i7411p7bK
【程序下载】程序:SDOF自由振动计算程序
【程序下载】程序:SDOF简谐振动计算程序
课程相关的手写笔记:teacher_note_part1.pdf
要下载资料需要点击【阅读原文】才可以下载
如果水印影响图片质量,请点击【阅读原文】进行阅读