首页/文章/ 详情

python弹簧/气囊刚度数据计算软件

3年前浏览1213

图片

弹簧/气囊的刚度可以通过公式K=F/S进行求解,其中F为施加在弹簧/气囊上的作用力,S为在该作用力下弹簧/气囊的变形量。力和位移通常很容易通过实验的手段获得(比如使用气缸或电缸),则求解刚度的难点就变成离散点求导的问题。

图片

(用于不同类型的座椅,主要用于商用车座椅的驾驶座,如公交车、客车、卡车等)





理论分析




对于任意函数上某点的值,我们都可以通过泰勒展开式近似求解。

图片

常见的差分求解方法有前向差分、中心差分和后向差分三种,具体区别如下:

图片

前向差分与后向差分区别不大,中心差分的求解精度最高,但是前后边界处会有部分失真。为此,本文选择中心差分的方法求解弹簧/气囊的刚度。

 

别担心,我已经编写好了一个小程序,在文末的链接中下载就可以自己使用啦!

图片

(软件使用过程)





使用方法




1.软件界面

使用鼠标左键,双击两下,等到4~5秒程序即自动打开,打开后的界面如下图所示。

图片

 

2.单击“读入excel数据”按钮,选择打开一个Excel文件。此时读取到的力时间曲线和位移时间曲线会显示在主界面左侧面板上。

图片

 

3.单击“计算并显示静刚度”按钮,程序将自动使用中心差分的方法计算刚度,并将结果显示在主界面的右上角。

图片

 

4.保存刚度至txt。

把计算结果保存在txt文本文件中,以方便查阅,对比和存档。

5.帮助文件。

在主界面左上角点击帮助,或者在主界面任意位置单击右键均会弹出帮助菜单,单击对应选项可以查看对应的内容。

图片

 

软件的使用也就这些内容了。如果想了解程序原理的可以参考下面这个代码。

工作原理

以下代码为python原始代码,可以在python中运行。代码中不包括GUI内容。


import re
import numpy as np
import matplotlib.pyplot as plt
 
 
# 绘图时可以显示中文
plt.rcParams['font.sans-serif'] =['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
 
 
s = open("C:\Pythonwork\气囊静刚度\Hsix.txt", 'r')
force1 = []
dis1 = []
time1 = []
for line in s:
   line = line.strip('\n')
   if re.match('^[0-9]', line) is not None:
       force1.append(float(line.split()[0]))
       dis1.append(float(line.split()[3]))
       time1.append(float(line.split()[6]))
force = np.array(force1).T
dis = np.array(dis1).T
time = np.array(time1).T
s.close()
# 求导
# 中心差分法
d_dis = np.gradient(dis)
d_force = np.gradient(force)
k = 1000*d_force/d_dis
# 向前差分法
d_dis2 = np.diff(dis)
d_force2 = np.diff(force)
k2 = 1000*d_force2/d_dis2
 
# 保存静刚度到txt
k_k2= np.column_stack((k[1:len(k)], k2))
np.savetxt(r"C:\Pythonwork\气囊静刚度\out1.txt", k_k2)
 
# 显示曲线
plt.figure(dpi=200, facecolor='white')
# 左上角图
plt.subplot(221)
plt.plot(time, force, color='k')
plt.title("原始数据载荷-时间", fontsize=8)
plt.ylabel(ylabel="载荷(N)", fontsize=8, rotation=90)
plt.xlabel(xlabel="时间(s)", fontsize=8)
 
plt.subplot(222)
plt.plot(time, dis, color='k')
plt.title("原始数据位移-时间", fontsize=8)
plt.ylabel(ylabel="位移(mm)", fontsize=8, rotation=90)
plt.xlabel(xlabel="时间(s)", fontsize=8)
 
plt.subplot(223)
plt.plot(dis, force, color='b')
plt.title("原始数据载荷-位移", fontsize=8)
plt.ylabel(ylabel="载荷(N)", fontsize=8, rotation=90)
plt.xlabel(xlabel="位移(mm)", fontsize=8)
 
plt.subplot(224)
plt.plot(time, k, color='b', label="中心差分法", linewidth=1)
plt.plot(time[1:len(time)], k2, color='r',label="向前差分法", linewidth=0.3, alpha=0.4)
plt.title("静刚度",fontsize=8)
plt.ylabel(ylabel="静刚度(N/m)", fontsize=8, rotation=90)
plt.xlabel(xlabel="时间(s)", fontsize=8)
plt.legend(loc=0)
plt.show() 
小程序及原始代码下载地址:
链接:https://pan.baidu.com/s/1PEmJfa4FnFNptHMQS1hYLg
提取码:n4cy


【免责声明】本文来自座椅知多少,版权归原作者所有!仅用于个人学习和经验分享,若涉及版权问题等请及时告知删除,感谢大家的关注!

汽车新能源结构基础
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-09-09
最近编辑:3年前
CAE之家
硕士 | CAE仿真负责人 个人著作《汽车NVH一本通》
获赞 1089粉丝 5561文章 865课程 19
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈