基于术语弹性的疲劳寿命识别

IR-FLife的Python项目详细描述


基于热弹性的疲劳寿命估算

从热图像采集估计振动疲劳寿命。 该等级基于热弹性的模态损伤[1]和飞片包装[2]。在

使用pip安装包

。。代码块::python

pip install IR_FLife

导入程序包

。。代码块::python

^{pr2}$

材料参数

。。代码块::python

k = 6.51               # Slope endurance curve
B = 800.26             # Endurance curve limit [MPa]
C = 7.94 * 10**18      # Fatigue strenght [MPa**k]
km = 1.2 * 10**(-8)    # Thermoelastic coefficient [Pa**(-1)]

输入热视频

。。代码块::python

filename = './data/rec.sfmov'        # Filename of thermal acquisition
data = sfmov.get_data(filename)      # Using pysfmov to open it as numpy array [°C]

fs = 400                             # Smapling frequency [Hz]
dt = 1 / fs                          # Time step [s]

stress = 10 * (data / km ) * 10**-6  # Stress [MPa]

类初始化

。。代码块::python

td =  irfl.IR_FLife(stress, dt)       # Class initialization

热视频的自然频率识别

如果用鼠标点击选择了位置

。。代码块::python

td.loc_selection()           # Mouse selection of central pixel of the roi
f = td.nf_identification()   # Natural frequency identification

如果位置id与roi协调

。。代码块::python

band_pass = [5,100]         # Band pass filter applied during the natural frequency identification
roi_size = 5                # ROI size [pixel]
location = (39, 79, 5, 5)   # Location of interest in the field of view [pixel]

f = td.nf_identification(location = location, roi_size = roi_size, band_pass = band_pass)

疲劳寿命估算

如果在特定位置需要疲劳寿命

。。代码块::python

location = (39, 79, 5, 5)   # Location of interest in the field of view [pixel]

md = td.get_life(C, k, 'Modal', f = f, location = location)
tb = td.get_life(C, k, 'TovoBenasciutti', location = location)
dk = td.get_life(C, k, 'Dirlik', location = location)
rf = td.get_life(C, k, 'Rainflow', location = location)

print(f'          Rainflow: {rf:4.0f} s')
print(f'            Dirlik: {dk:4.0f} s')
print(f'  Tovo-Benasciutti: {tb:4.0f} s')
print(f'             Modal: {md:4.0f} s')

如果疲劳寿命是在空间域内

。。代码块::python

md = td.get_life(C, k, 'Modal', f = f)
tb = td.get_life(C, k, 'TovoBenasciutti')
dk = td.get_life(C, k, 'Dirlik')
rf = td.get_life(C, k, 'Rainflow')

然后,显示空间域结果:

。。代码块::python

plt.figure()

plt.subplot(2,2,1)
plt.imshow(dk)
plt.colorbar()
plt.title('Dirlik')

plt.subplot(2,2,2)
plt.imshow(md)
plt.colorbar()
plt.title('Modal approach')

plt.subplot(2,2,3)
plt.imshow(rf)
plt.colorbar()
plt.title('Rainflow')

plt.subplot(2,2,4)
plt.imshow(tb)
plt.colorbar()
plt.title('Tovo-Benasciutti')

参考文献:

[1]基于热弹性的模态损伤识别。 洛伦佐·卡波尼、扬科·斯拉维奇、詹卢卡·罗西、米哈·博尔特扎尔 国际疲劳杂志(2020)

[2]振动疲劳频谱法,从结构动力学到疲劳损伤-理论和实验。 扬科·斯拉维奇、马特亚季姆什尼克、马丁·采斯尼克、贾卡·贾瓦、米哈·博尔特扎尔。 ISBN:9780128221907,爱思唯尔,2020年9月1日。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java有没有办法使多个对象初始化更紧凑?   java确保BUnit包和测试包不包含在生产代码中   java如何使JTextField更小,而不是填满整个空间?   javaawt的矩形交点   用户连续登录应用程序的java条纹(Android)   maven如何在服务器上运行java项目,并将其作为jar添加到EAR项目中   java如何在jar/war的资源文件夹中创建png?   swing在Java中未选择列表项时禁用按钮   java GridView x BaseAdapter并在onItemClick中重新加载   java Apache POI未应用某些颜色索引   java创建URL使用uri有什么区别。解析/uri。生成器/连接字符串?   java JavaFX jfoenix运行时错误(JFXDatePicker)   右旋转二叉搜索树   在Java标准版中运行Java移动应用程序   java为什么要为每个实例创建静态hashmap?   java如何使用RTC唤醒和报警意图   java获取对象中的JSON表达式   (Java)服务器不接受多个连接   java为什么我的目的地为null?   java使用多个参数执行存储过程,并使用spring数据jpa将结果集映射到非实体类