✅博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 如需沟通交流,扫描文章底部二维码。
(1)基于多体接触瞬态动力学的齿轮系统等效模拟方法:
针对直齿轮系统在高速低负载工况下出现的次谐振动、超谐振动和混沌等非线性现象,提出一种基于多体接触瞬态动力学的等效模拟方法。首先建立包含齿侧间隙、时变啮合刚度、摩擦系数和柔性支承的渐开线直齿轮副动力学模型,其中齿侧间隙描述齿面间的非线性接触行为,时变啮合刚度通过势能法计算得到。利用多体动力学软件中的接触碰撞函数,瞬时检测齿轮几何模型各齿对的接触状态并计算法向和切向接触力。通过调整主动齿轮的驱动转速和从动齿轮的负载扭矩,可以模拟不同工况下的非线性响应。仿真结果表明,在特定转速区间内出现了1/2、1/3和1/4次谐波分量,分量的出现规律与已有实验数据高度吻合。该方法为研究齿轮系统非线性振动的激励来源提供了有效工具。
(2)多级齿轮系统调幅调频机理与振动特性分析:
为了揭示多级齿轮传动系统中复杂的边频调制现象,从激励特性和传递特性两个角度展开分析。激励特性方面,分析了各级齿轮副的时变啮合刚度、传递误差和摩擦激励的频率成分;传递特性方面,建立了从各齿轮副到壳体测点的传递路径频响函数。通过将动力学仿真结果与阶次分析相结合,发现多级齿轮系统的振动信号中,高级齿轮的啮合频率附近会出现低级齿轮的边频带,这是由转速波动和刚度非线性耦合造成的调幅调频现象。利用MATLAB对一级至三级齿轮系统分别建模,归纳出额定工况范围内振动特性随转速和负载变化的规律,总结出健康齿轮箱振动信号的特征频率模板。该模板可为后续故障诊断提供基准。
(3)典型齿轮故障的振动模拟与机匣测点数据重构:
在健康附件齿轮箱模型中,分别引入断齿、不对中和磨损三种典型故障。断齿故障通过在齿轮模型中删除一个齿并修改接触参数实现;不对中故障通过偏移从动齿轮中心位置模拟;磨损故障则通过降低啮合齿面的摩擦系数并增加齿侧间隙来等效。故障模拟后,提取从动齿轮质心处和齿轮箱安装面处的振动加速度信号,分析故障特征频率及其边频分布。利用航空发动机高保真整机有限元模型,计算故障激励位置到机匣多个测点的传递函数。最后采用基于激励-传递的时域离散卷积重构方法,以断齿故障为例生成机匣测点处的故障振动数据。该方法可以快速生成不同故障类型、故障程度和工况组合下的故障样本,为智能诊断算法提供大量的训练数据。
import numpy as np import scipy.integrate as spi import matplotlib.pyplot as plt # 齿轮非线性动力学方程() def gear_dynamics(t, state, params): # state: [theta1, theta2, dtheta1, dtheta2] theta1, theta2, omega1, omega2 = state I1, I2, c1, c2, k_m, e_t, clearance = params # 动态啮合间隙 delta = theta1 - theta2 - e_t if delta > clearance: contact_force = k_m * (delta - clearance) elif delta < -clearance: contact_force = k_m * (delta + clearance) else: contact_force = 0 torque_in = 100.0 # 输入扭矩 torque_out = 50.0 # 负载扭矩 domega1 = (torque_in - c1*omega1 - contact_force) / I1 domega2 = (contact_force - c2*omega2 - torque_out) / I2 return [omega1, omega2, domega1, domega2] # 瞬态仿真 def simulate_gear(omega_in=1000, time_span=(0,0.1)): params = [0.001, 0.001, 0.1, 0.1, 1e6, 0.01, 0.05] # 示例参数 y0 = [0, 0, omega_in*2*np.pi/60, 0] sol = spi.solve_ivp(lambda t,y: gear_dynamics(t,y,params), time_span, y0, method='RK45', dense_output=True) return sol.t, sol.y[2]/ (2*np.pi/60) # 返回转速 # 时变啮合刚度计算(势能法) def time_varying_stiffness(z1=20, z2=30, module=2, pressure_angle=20): # 计算,真实需要积分 phi = np.linspace(0, 2*np.pi, 360) k = 1e5 + 0.5e5 * np.sin(phi * z1) # 正弦近似 return k # 故障模拟:断齿 def broken_tooth_signal(t, base_freq, broken_order=1): # 在啮合频率处添加冲击响应 mesh_freq = base_freq * 20 # 假设20齿 impact = 0 if t % (1/mesh_freq) > 0.01 else 1 return impact * np.exp(-200*t) * np.sin(2*np.pi*2000*t) # 卷积重构机匣振动 def reconstruct_vibration(force_signal, impulse_response, dt): # 时域卷积 response = np.convolve(force_signal, impulse_response, mode='full')[:len(force_signal)] return response * dt # 示例:生成断齿故障数据 def generate_fault_data(): t = np.linspace(0, 1, 10000) base_signal = np.sin(2*np.pi*100*t) # 啮频信号 fault_impact = np.array([broken_tooth_signal(ti, 100) for ti in t]) fault_signal = base_signal + 1.2 * fault_impact # 传递函数模拟(简单低通) b, a = scipy.signal.butter(4, 1000, btype='low', fs=10000) output = scipy.signal.filtfilt(b, a, fault_signal) return output ",如有问题,可以直接沟通
👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇