在理解波动(二):以有限计算无限——人工边界条件中,我们说到了如何把“无限远”处理为一种特殊的边界条件。通过这样的处理,一个无阻尼的无界结构等效为一个在边界上具有强阻尼的有限结构。这样,原先由近场流向远场的能量现在流向了等价的边界阻尼器中——已经似乎都很完美。尤其是对于标准波动方程,其ABC既可以用于频域又可以用于时域。但对于弯曲波,还有一个小问题待讨论,那就它的ABC的等价阻尼系数与频率有关,不能处理为阻尼力。边界处的力与位移实际上是“分数阶导数”的关系。这导致它只能直接用于计算频域响应(或只含一个频率成分的激励力),那么,如何计算无限梁对任意激励的时域响应呢?

无界梁的频域响应计算

欧拉伯努力梁的人工边界可以表示为两个传递函数,分别是:

位移-内力传递函数:

转角-弯矩传递函数:

对于一个无界梁,其近场用有限元建模,如果左边界节点编号是1,右边界是

号,那么可以将其动力学方程写为:

其中,

力向量也按照对应关系排序。

这样,边界传函矩阵写为:

在每个频率下生成边界传递函数矩阵,并组集到总动力刚度矩阵中,求解:

即可获得无限结构的频响函数(Frequency response function),这里我们举一个例子来说明。

同样采用在理解波动(二)中使用过的均匀无界梁,在原点处受点激励,通过上述方法可以获得其原点FRF,同时这个问题又存在理论解,可以进行对比验证。

首先,在原点处施加集中单位力,求原点处的速度响应,为:

其次,在原点处施加单位弯矩,求原点处的速度响应,为:

图中同时绘出了其解析解,可以发现具有人工边界条件的有限元模型得出了非常精确的结果。解析解的相关文献会在理解波动的最后一条博客中单独列出。

从频域到时域

然而,我们的问题是,如何计算无限结构在仍以时序激励下的响应,比如,当激振力的时序为如下信号(只有一个完整周期的正弦,其余为零)时:

结构的响应是什么?

要回答这个问题,其实无关结构是有界还是无界,只需要确定系统是否是线性系统,即是否有线性偏微分方程描述。如果是,则其时序响应的获得可以通过所谓的“杜哈梅积分”获得。具体地,线性系统的输出等于输入信号与单位脉冲响应信号的卷积。由傅立叶变换的卷积定理,两个信号卷积的频谱等于其频谱的乘积。根据这些定理,我们就可以计算出对上述信号的时序响应了。

首先,将上述激振力的信号作傅立叶变换,得:

激振力频谱

细节

然后将该频谱按照对应频率乘以前述传递函数(速度对横向力力的那一个),得:

响应频谱

细节

这就是响应的频谱了,最后将它作傅立叶反变换,即可得时序响应(下图中红线):

讨论

通过上述操作,我们获得了当激振力是一个周期的正弦时,无界梁在受力点的时序响应。作为对比,将理解波动(一)中在有界梁上的结果也画了出来。其中清晰地表明了哪些是直接由激振力引起的扰动,哪些是边界反射回来的扰动。由于无界梁不存在边界,因此只包含了直接由激振力引起的扰动,而这一部分与有界梁的响应十分吻合,说明了计算的正确性。

于此同时,无界梁的FRF也值得玩味:其中并没有有界结构中常见的若干个共振峰,这可以宏观地理解为“既然共振是驻波,那么无界结构没有边界,没有反射波,也就无法形成驻波”,也可以更具体地理解为“远场经由人工边界处理,等效为边界上的强阻尼,使所有的振动模态都处于过阻尼状态,因此消除了所有的共振峰”。

python时域转频域_理解波动(三):从频域到时域相关推荐

  1. python实时监控文件目录_教你三种方法,用 Python实时监控文件

    原标题:教你三种方法,用 Python实时监控文件 在业务稳定性要求比较高的情况下,运维为能及时发现问题,有时需要对应用程序的日志进行实时分析,当符合某个条件时就立刻报警,而不是被动等待出问题后去解决 ...

  2. python在线搭建教程_理解python web开发,轻松搭建web app!

    大家好,今天分享给大家的是理解python web开发,轻松搭建web app,希望大家学有所获! 因为 python代码的优雅美观且易于维护这一特点,越来越多的人选择使用 Python做web开发. ...

  3. 理解python的类实例化_理解python的类实例化

    让我们以一个Foo类开始: class Foo(object): def __init__(self, x, y=0): self.x = x self.y = y 当你实例化它(即创建该类的一个新的 ...

  4. python上下文管理关键字_理解 Python 的上下文管理器

    任何 Python 教程,必然会讲解如何打开一个文件.而任何提到打开文件的地方,都必然会推荐用 with 来操作文件的读写.比如说这里有一篇非常优秀的教程,文中提到在 Python 中,文件读写是通过 ...

  5. python nlp文本摘要_理解文本摘要并用python创建你自己的摘要器

    我们都与使用文本摘要的应用程序进行交互. 这些应用程序中的许多应用程序都是用于发布有关每日新闻,娱乐和体育的文章的平台. 由于我们的日程安排很忙,因此我们决定在阅读全文之前先阅读这些文章的摘要. 阅读 ...

  6. python 追加到字典_扫描器篇(三)之python编写基于字典的网站目录探测脚本

    工具原理: 通过读取字典获取内容,拼接url执行get http请求获取 响应状态码,根据状态码判断目录文件资源是否存在 1 2 思路: 工具命令行参数获取 1 字典读取 1 多线程访问 1 状态码获 ...

  7. python choose语句作用_理解闭包是如何与变量作用域相互影响的

    原文标题:KNOW HOW CLOSURES INTERACT WITH VARIABLE SCOPE 比如说你现在想要对一组数字进行排序,同时希望提高一组数字的优先级使这组数字优先显示.这种模式在展 ...

  8. python web什么意思_理解Python的Web开发

    因为python代码的优雅美观且易于维护这一特点,越来越多的人选择使用Python做Web开发.而Python的Web框架百花齐放,目前比较流行的框架有大包大揽的Django,小巧灵活的Flask.B ...

  9. python tk mainloop原理_理解Tkinter mainloop()的逻辑以及为什么变量没有重新分配它们的原始值?...

    据我所知,window.mainloop()不断重复GUI代码,以便窗口及其小部件保持在屏幕上.因此,为什么一个变量(如canvastext)可以被更新并保持更新?难道window.mainloop( ...

  10. python中repr方法_理解Python中的repr()函数 - 程序园

    >>> x = 'foo' >>> x 'foo' 因此,名称x附加到'foo'字符串.当你调用例如repr(x)时,iterpreter放置'foo'而不是x,然 ...

最新文章

  1. 计算机启动操作系统的过程,操作系统启动过程
  2. Mysql日期函数使用大全
  3. nginx部署laravel需要修改的配置
  4. 推荐几十本投资书籍、互联网书籍及热门查看流量的工具
  5. Linux学习笔记-编译与链接的过程
  6. 校招面试经验小分享,阿里腾讯美团字节实习offer
  7. 【NOIP2015day1T2】【codevs4511】信息传递,最小环
  8. TTL串口传输时,当收发线的长度和地线的长度不一样时,发生数据传输错误
  9. 设置元素浮动的几种方式
  10. SpringBoot整合Kotlin构建Web服务
  11. 学习react的网站
  12. 月考分析五年级英语html,第一学期五年级英语期末考试试卷分析
  13. Vue使用Element UI插件
  14. 搜狗新闻文本分析实例代码
  15. border-color属性设置单边边框和综合四边边框颜色
  16. outlook邮箱显示一直启动中_outlook邮箱打不开一直在加载
  17. 高性能网络开发框架vpp,让你的技术提高一个level
  18. TCP的三次握手和四次断开
  19. 奇虎360scribe日志采集系统
  20. 解决umi 不是内部或外部命令,也不是可运行程序问题

热门文章

  1. 查看Casio PDA 的物理地址 MAC (DT-X7系列)
  2. 软件工程专业大学四年学什么
  3. 各位大佬,Spark的重点难点系列暂时更新完毕
  4. OSChina 周四乱弹 —— 你从小继承了程序员基因
  5. 跟父亲一样伟大的程序员,请照顾好自己!
  6. ClientKey实现登录QQ空间,并设置背景音乐
  7. osx php mongodb,Mac OSX 平台安装 MongoDB
  8. adb shell 是什么,如何进入?
  9. python工程师简历项目经验怎么写_班长项目经验简历范文
  10. sir模型 python_SIR传染病模型(附Python代码)