高速列车牵引传动原边过流实时诊断【附代码】
✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导毕业论文、期刊论文经验交流。✅ 专业定制毕设、代码✅如需沟通交流查看文章底部二维码1基于MATLAB/Simulink的牵引传动系统高保真建模与故障仿真为了研究原边过流故障的暂态特性构建了包含受电弓、牵引变压器、四象限整流器、中间直流环节、牵引逆变器和牵引电机的交-直-交牵引传动系统动态模型。模型中充分考虑了各元件的非线性特性变压器引入了磁滞饱和曲线和匝间短路模拟整流器和逆变器采用IGBT理想开关模型并加入死区效应牵引电机则基于异步电机动态等效电路。通过模块化参数配置可以独立设置四类典型故障变压器匝间短路设置短路匝比、整流器IGBT开路/短路强制开关信号、弓网接触不良引入随机电弧电阻以及励磁涌流设定合闸相位角。仿真运行后提取原边电流、电压信号采样率为10kHz时间窗口为20ms。故障仿真数据为后续诊断模型提供了丰富的训练样本涵盖了不同故障类型、故障程度和负载条件下的过流波形。2滑动窗口时序特征与变分模态分解融合的故障模式构建针对原边过流波形是非平稳瞬变信号的特点设计了两种互补的故障模式提取方法。第一种方法直接使用时序特征通过20ms滑动窗口截取电流波形计算窗口内的均值、方差、峰值、波峰因数、脉冲因子以及波形对称度共12个统计特征同时加入小波包能量熵来描述不同频带的能量分布。第二种方法采用变分模态分解将窗口信号分解为4个本征模态分量计算各IMF与原始信号的相关系数筛选出相关性低的IMF进行重构从而剥离噪声和干扰成分得到纯化的故障特征波形。对比实验表明VMD重构后的信号经GMM-HMM建模后故障分类准确率达到98.5%高于直接特征法的95.2%。最终选用VMD方法构建时序模式。3GMM-HMM与随机森林联合的实时诊断硬件部署为了实现现场实时诊断将算法移植到DSP平台TMS320C6748。考虑到DSP计算资源有限对VMD分解步骤进行了优化采用固定分解层数K4预先计算好中心频率并将迭代次数限制为5次以平衡实时性。从VMD重构波形中提取二维特征电流变化率峰值和波形能量衰减系数形成一个2维特征向量。然后训练一个随机森林分类器替代GMM-HMM随机森林仅需100棵决策树即可达到99%的分类准确率且推理时间仅0.3ms。系统整体架构为DSP端通过ADC采样电流电压信号运行特征提取和随机森林分类检测到过流时在1ms内输出故障类型变压器短/整流器故障/弓网故障/励磁涌流并通过串口上报给PC监控平台。现场试验表明该系统对上述四类故障的识别准确率达100%故障定位响应时间小于2ms。import numpy as np import pywt from scipy.signal import hilbert from vmdpy import VMD # 模拟牵引传动系统仿真数据生成 def simulate_traction_fault(fault_type, severity0.5): t np.linspace(0, 0.02, 200) # 20ms, 10kHz normal_current 100 * np.sin(2*np.pi*50*t) if fault_type transformer_short: fault_current normal_current severity * 200 * np.sin(2*np.pi*150*t) # 3次谐波 elif fault_type rectifier_failure: fault_current normal_current * (1 severity * np.random.randn(len(t))) elif fault_type arc_fault: arc_noise np.random.uniform(-1,1,len(t)) * 150 * severity fault_current normal_current arc_noise elif fault_type inrush: fault_current 100 * np.exp(-t/0.005) * np.sin(2*np.pi*50*t) * severity return fault_current # VMD特征重构 def vmd_reconstruct(signal, K4, alpha2000): u, u_hat, omega VMD(signal, alpha, 0.5, 0, 10, 500, 0, K) # 计算各IMF与原始信号的相关系数 corr [np.corrcoef(signal, u_i)[0,1] for u_i in u] low_corr_idx [i for i, c in enumerate(corr) if c 0.3] if not low_corr_idx: low_corr_idx [np.argmin(corr)] # 至少选一个 reconstructed np.zeros_like(signal) for idx in low_corr_idx: reconstructed u[idx] return reconstructed # 特征提取电流变化率峰值 能量衰减系数 def extract_features(signal): diff np.diff(signal) peak_rate np.max(np.abs(diff)) # 电流变化率峰值 envelope np.abs(hilbert(signal)) decay envelope[-1] / (envelope[0] 1e-6) # 能量衰减系数 return np.array([peak_rate, decay]) # 随机森林分类器训练与预测使用sklearn from sklearn.ensemble import RandomForestClassifier def train_random_forest(features, labels): rf RandomForestClassifier(n_estimators100, max_depth5) rf.fit(features, labels) return rf # DSP伪代码C语言风格逻辑描述 def dsp_interrupt_handler(): sample_buffer adc_read(200) # 采集200个点 if np.max(np.abs(sample_buffer)) overcurrent_threshold: signal sample_buffer - np.mean(sample_buffer) # 去直流 rec vmd_reconstruct(signal) feat extract_features(rec) fault_label rf_model.predict([feat])[0] uart_send(fault_label) else: uart_send(0) # 正常 # VMD优化固定参数预先计算 def precompute_vmd_params(): # 预先通过离线数据确定最优K和alpha return 4, 2000 ,如有问题可以直接沟通