基于python进行有限元分析—定结构自由振动的固有圆频率和模态振幅向量
2025年2月25日 17:14一、问题描述
作为图所示结构的模态分析示例,我们对结构的自由振动响应感兴趣。在材料密度为的附加规范下,我们解决了特征值问题,以确定结构自由振动的固有圆频率和模态振幅向量。
二、理论分析
二维杆单元有x方向位移u和y方向位移v,其动能为
位移可以表示成如下形式:
写成矩阵形式:
则
二维杆单元质量矩阵为
三、桁架单元和节点的编号以及结点坐标的定义
具体每根杆单元的节点编号以及材料属性,在input文件中详细介绍。
五、数据结果
一阶模态
二阶模态
三阶模态
四阶模态
五阶模态
六阶模态
七阶模态
八阶模态
六、固有频率和模态阵型
(1) Natural circular frequencies
w1=767.06897
w2=2082.31226
w3=2958.71069
w4=4504.79346
w5=6790.69092
w6=7976.02197
w7=8664.74707
w8=8977.36816
(2)Modal amplitude vectors
[-0.26045, -2.19420, -1.21309, -3.59420, -1.44514, -1.80214, 4.77206,4.36751]
[-2.20699, 3.28239, -3.12539, -2.14116, 5.82557, -0.93447, 1.05816,-0.72687]
[ 0.77543, -0.71694, -2.88826, 2.36973, -0.14241, -3.82935, -2.17366,0.46372]
[-2.12749, 2.68640, -1.95703, -0.43223, -4.27362, 0.56904, -0.34133,-0.48283]
[-0.51559, -3.85516, -1.70559, -3.93409, -0.05494, 1.98050, -2.78105,-3.95626]
[-4.11827, -2.55593, 1.45942, 1.13320, 0.90777, 1.62906, -3.31909,4.40733]
七、总结
通过使用有限元法解决结构动力学问题,我们可以了解有限元法的原理,掌握python的编程方法和操作环境以及将问题模块化处理的思路。将问题的已知条件转化python语言,并列出边界条件和协调性条件,计算出所求未知物理量。有限元法的基本思路是首先将系统离散化处理,对于该问题的桁架结构,是将其分解为杆单元和节点,这一步决定了有限元方法的精确度。利用公式单元刚度矩阵,并根据几何关系利用直接刚度法,将每个单元装配在系统刚度矩阵中。
题中求了8阶的固有频率和模态振幅,从结果中可以看出,随着阶数的增加固有频率的值逐渐增加,模态幅值也逐渐变大。并且从上课中学习到如果想让8阶固有频率和模态计算更加准确,应在计算时设计的阶数更大(大于8阶),提高计算精度。
四、程序与注解
import matplotlib.pyplot as plt
import torch
import math
import csv
import numpy as nup
import pandas as pd
#%%
#初始化各参数
E=10e6
A=1.5
density=2.6e-4
ne=8#杆单元数
np=6#节点数
data_1=pd.read_excel('./input3.xlsx',sheet_name='Sheet1',header=0)#sheet1前两列是节点坐标,之后是x方向约束,y方向约束(有为1,无为0)
data_2=pd.read_excel('./input3.xlsx',sheet_name='Sheet2',header=0)#sheet2按列依次为:左节点编号,右节点编号,杨氏模量、截面积。
node=data_1.values
element=data_2.values
node,element
#%%
K=torch.zeros((2*np,2*np),dtype=torch.float64)
element_stiffness=torch.zeros((ne,4,4))#存储每个单元刚度矩阵
for lop in range(ne):
以下内容为付费内容,请购买后观看
付费部分包括实现整个过程的python代码!有任何问题直接私信我就好!
工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP




















