滚动轴承动力学模型代码复现及三维模型SolidWorks文件分享
滚动轴承动力学模型代码 #指定了某篇paper复现具体都如图打包在文件夹了保证程序可以打开。 给出轴承三维模型solidworks软件打开2019版本可以打开。打开SolidWorks轴承模型时金属滚珠与保持架的精密配合让人想起小时候拆解机械闹钟的经历。不过这次我们要用Python把轴承的舞蹈轨迹转化成微分方程——这可比拆玩具刺激多了。先看看动力学模型的核心方程组。这里用龙格库塔法解算的微分方程像极了给每个滚珠装上传感器def bearing_equations(t, y): x, dx, z, dz, q, dq y # 赫兹接触理论计算接触力 Fn (contact_deformation**1.5) * stiffness_coeff # 考虑离心力与陀螺力矩 centrifugal omega**2 * (cage_radius - 0.5*ball_diameter) # 耦合非线性方程组 dydt [dx, (Fn * math.sin(q) - damping*dx)/mass, dz, (Fn * math.cos(q) - damping*dz)/mass - gravity, dq, (torque_ball - friction_torque)/inertia] return np.array(dydt)这段代码藏着三个魔鬼细节赫兹接触的非线性指数、离心力导致的时变刚度以及滚珠自转带来的陀螺效应。某次我忘记给角度q做模2π处理结果滚珠在仿真中表演了720度空翻。滚动轴承动力学模型代码 #指定了某篇paper复现具体都如图打包在文件夹了保证程序可以打开。 给出轴承三维模型solidworks软件打开2019版本可以打开。可视化部分更有意思。用Matplotlib的3D轴系生成轴承运行轨迹配上渐变色映射接触应力def plot_real_time(ax, states): ax.clear() # 绘制保持架轨迹 ax.plot(states[:,0], states[:,2], zs0, zdiry, c#2F5597) # 生成滚珠位置热力图 theta np.linspace(0, 2*np.pi, num_balls1) x_balls cage_radius * np.cos(theta) z_balls cage_radius * np.sin(theta) # 用接触力值映射颜色 colors plt.cm.jet(contact_forces/max_force) ax.scatter(x_balls, z_balls, ccolors, s50, depthshadeFalse) # 添加轴承座标系箭头 ax.quiver(0,0,0, 0.1,0,0, colorr, lw2) ax.set_zlim(-0.05, 0.15)当第一次看到滚珠群在三维空间中跳出力学芭蕾时我仿佛听见了金属的呼吸——虽然这可能只是CPU风扇在哀嚎。调试时发现保持架振动幅值异常检查半天才发现是没考虑润滑油的挤压阻尼补上个tanh速度项才让仿真回归现实。最后把SolidWorks模型导出的质量参数写成JSON配置让程序自动读取{ bearing: { inner_race_dia: 52.3, outer_race_dia: 77.8, ball_count: 12, pretension: 0.0032 }, material: { youngs_modulus: 210e9, poissons_ratio: 0.3 } }这个模型跑完20秒仿真大约需要喝两杯咖啡的时间。建议把求解器的max_step参数设为角接触周期的1/5否则可能在高速工况下错过重要的接触事件。就像用慢镜头观察蜂鸟振翅合适的步长才能捕捉动力学的微妙韵律。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2451415.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!