python动力学_用python学振动分析(一)

python动力学_用python学振动分析(一)因为最近需要重新用到pytorch,而且在颤振分析时遇到一些不理解的问题,所以用python重新学习了振动分析(程序太长就不放这里了,回头整理下放github算了),准备自己手撸一个时域结构动力学仿真程序。结构动力学基础噪音来自部分振动能量在空气中发散,故噪音和振动问题的研究方向是一致的,而振动问题的研究基础是结构动力学。静力学研究在定力作用下的位移,基础是外驱力和静刚度引起的回弹力的平衡,动力学…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

因为最近需要重新用到pytorch,而且在颤振分析时遇到一些不理解的问题,所以用python重新学习了振动分析(程序太长就不放这里了,回头整理下放github算了),准备自己手撸一个时域结构动力学仿真程序。

结构动力学

基础

噪音来自部分振动能量在空气中发散,故噪音和振动问题的研究方向是一致的,而振动问题的研究基础是结构动力学。

静力学研究在定力作用下的位移,基础是外驱力和静刚度引起的回弹力的平衡,动力学研究在非定力作用下的位移,基础是外驱力,惯性力,阻尼力,回弹力的平衡,本质上都是力的平衡(达朗贝尔原理,D’Alembert’s principle)。对力的平衡方程求解,就可以得到响应位移的公式,有了这个方程后就可以根据初始条件计算单自由度刚体响应,结合编程学习振动基本原理,并在遇到响应问题时反推可能原因。

本文公式引用自克拉夫的《结构动力学》,注意不同求解过程是基于不同的假设,这导致不同公式是适用于不同前提下。python动力学_用python学振动分析(一)

无外载自由振动

使用python结合前述位移公式描绘曲线如下图所示,与书本曲线趋势一致,这里的两个关键概念,一个是圆频率和振动频率的差别(f=w/2pi),一个是阻尼比影响衰减速度(临界阻尼时正好一周期内完成振动衰减,实际阻尼与临界阻尼之比即为阻尼比,通过调整输入参数观察程序输出,可以看到不同参数特别是阻尼比的影响):python动力学_用python学振动分析(一)python动力学_用python学振动分析(一)

单个周期载荷简谐振动

在周期载荷下的位移响应包括2部分,一个是与受力有关的稳态成分,一个是与初始状态有关的瞬态成分,在阻尼系统下一般只关注前者,但2者都会受阻尼比和频率比(载荷频率与圆频率之比)的影响,程序作图如下。python动力学_用python学振动分析(一)

有些机械松动问题,通过振动相位测量是可以发现的,已经可靠紧固的机械部件应该是与其它部件间同步运动,在各个零部件之间不应该存在显著的幅值和相位的变化,如果在相互配合的零部件之间存在振动幅值和相位的变化,那么机械松动问题的存在是值得怀疑的。而如果2个轴承座之间相位差180度,则很有可能是存在不对中。这里我有个疑问没想明白,为什么只关注0-180度的相位差,是因为对于波的合成来说270和90是一样的么?

我们通过程序可以观察到不同的阻尼比与频率比对稳态成分的振动幅值和此成分相对外驱力的滞后相位的影响。编程输出与书中图形对比如下,可以看出在频率比接近1处存在共振,而高频时响应幅值更低且不同阻尼差距在接近。python动力学_用python学振动分析(一)python动力学_用python学振动分析(一)

低刚度时响应幅值更大,特别是共振点上,而高频时响应幅值相对低且不同刚度差别不大。python动力学_用python学振动分析(一)

再次对比不同阻尼比时用不同方法计算阻尼比的精度,低阻尼比下半功率法还是不错的。python动力学_用python学振动分析(一)

对于外力冲击引起的振动,有时要考虑在硬质基座与驱动之间增加弹簧和阻尼进行缓冲隔振,这时候外力传递到基座的传导比(基座受力与外力之比)在不同频率比与阻尼比之下有所不同,共振时低阻尼的放大作用更明显,而高频激励下低阻尼更有利于隔振。python动力学_用python学振动分析(一)python动力学_用python学振动分析(一)python动力学_用python学振动分析(一)

对于力传递来说,相同阻尼与驱动频率时不同刚度下传递的力是一样的,但都在共振区间被放大,且高频激励下低刚度的传递力会更小。python动力学_用python学振动分析(一)

多个周期载荷的响应(任意周期载荷的响应)

任意周期函数可根据傅里叶级数分解成稳态中值(先忽略)与多个三角函数之和,或者根据欧拉公式变为多个指数函数之和,下面的切削力图来自Tony和Scott的《machining dynamics》,我尝试用多个sin波合成了一个三角波,效果不是很好,待优化。python动力学_用python学振动分析(一)python动力学_用python学振动分析(一)

冲击载荷的响应

有些结构比如车辆和桥梁对冲击载荷更为敏感,而在冲击载荷中因为时间短,阻尼的影响远不如刚度,所以分析时只关注无阻尼情况,其响应可分为第一阶段的受迫振动与第二阶段的自由振动,受公式推导时的假设限制,只适用于频率比低于1的情况。python动力学_用python学振动分析(一)

任意载荷的响应(另文述说)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181511.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • docker安装elasticsearch(最详细版)[通俗易懂]

    docker安装elasticsearch(最详细版)[通俗易懂]docker安装elasticsearch1.设置max_map_count不能启动es会启动不起来查看max_map_count的值默认是65530cat/proc/sys/vm/max_map_count重新设置max_map_count的值sysctl-wvm.max_map_count=2621442.下载镜像并运行#拉取镜像dockerpullelasticsearch:6.5.4#启动镜像dockerrun–nameelasticsearch-d

    2022年6月11日
    76
  • MySQL的JDBC连接

    MySQL的JDBC连接MySQL的JDBC连接MySQL的JDBC概念MySQL的JDBCJDBC添加数据封装连接工具更新数据和事务删除数据查询数据MySQL的JDBC概念JDBC是JavaDatabaseConnective的缩写,表示使用Java去连接数据库进行数据操作的过程MySQL的JDBC创建动态项目-以eclipse为例,首先要创建动态项目连接开发包(在www.mvnrepositor…

    2022年7月17日
    13
  • 记一道USB流量分析CTF题

    记一道USB流量分析CTF题USB流量分析

    2022年5月20日
    42
  • CGlib 入门

    CGlib 入门CGlib入门cglibgithub地址链接。项目maven构建:cglibcglib3.1项目gradle构建:dependencies{compile’cglib:cgl

    2022年6月5日
    24
  • Java截取字符串方法_java通过split截取字符串

    Java截取字符串方法_java通过split截取字符串主要有以下几种方法:1、通过subString()方法来进行字符串截取(最常用)2、通过StringUtils提供的方法3、split()+正则表达式来进行截取先来介绍最常用的一种1、通过subString()方法来进行字符串截取,返回字符串中的子字符串,在java中有两种用法第一种,传递一个参数:publicStringsubstring(intbeginIndex)//该子字符串从指定索引处的字符开始,直到此字符串末尾。第二种,传递两个参数:

    2022年10月6日
    1
  • mybatisplus basemapper原理(提供两瓶水)

    MybatisPlus为什么提供BaseMapper和IService两个相似CRUD操作的接口?转载自:https://blog.csdn.net/krismile__qh/article/details/99590872熟悉mybatis-plus的人都知道,mybatis-plus提供两种包含预定义增删改查操作的接口:com.baomidou.mybatisplus.core…

    2022年4月12日
    316

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号