✅博主简介擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导毕业论文、期刊论文经验交流。✅ 如需沟通交流扫描文章底部二维码。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_in1000, 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, methodRK45, dense_outputTrue) return sol.t, sol.y[2]/ (2*np.pi/60) # 返回转速 # 时变啮合刚度计算势能法 def time_varying_stiffness(z120, z230, module2, pressure_angle20): # 计算真实需要积分 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_order1): # 在啮合频率处添加冲击响应 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, modefull)[: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, btypelow, fs10000) output scipy.signal.filtfilt(b, a, fault_signal) return output ,如有问题可以直接沟通