✅博主简介擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导毕业论文、期刊论文经验交流。✅ 如需沟通交流扫描文章底部二维码。1故障机理驱动的时序波形特征建模针对电力机车辅助供电系统接地故障难以定位的问题建立了主电路拓扑的六类接地故障数学模型包括正母线接地、负母线接地、中间点接地以及不同位置的交流侧接地。通过推导接地检测电压与系统电气量的函数关系总结出每类故障下的时域波形差异化特征正母线接地导致直流电压快速跌落负母线接地引起电压偏移且伴随纹波增大交流侧接地则产生工频调制。利用短时傅里叶变换提取故障前后0.5秒内的时频图再通过滑窗统计每个窗口的均值、方差、峰值因子和波形因子构建20维的时序特征指标。在HIL半实物仿真平台上采集的数据表明该特征集在各类故障之间的类间距离达到6.8以上远高于原始信号的1.2。br2最小二乘支持向量机与特征指标融合分类为了降低计算复杂度并适应车载诊断需求提出特征指标最小二乘支持向量机方法FI-LSSVM。首先从时序特征中通过互信息法筛选出贡献度最高的8个指标包括直流侧电压的滑动标准差、交流侧电流的峭度、以及特定频带的能量占比。然后使用LSSVM进行分类核函数采用径向基核核宽度通过网格搜索交叉验证确定。为了进一步提高实时性将LSSVM模型参数压缩为浮点数组并固化到DSP板卡中。在模拟的24种工况组合下FI-LSSVM的平均诊断准确率达到96.3%单次故障识别时间仅为1.2毫秒满足车载实时诊断要求。与传统的支持向量机相比特征指标选择使训练时间缩短了62%。br3时序层次劣化评估与健康等级划分在故障诊断基础上提出时序层次劣化评估模型THDE用于估计接地故障的严重程度。该模型分为四层故障识别匹配层首先输出故障类型劣化指标运算层根据监测电压的波动幅度和偏移量计算劣化度表达式为D (V_off / V_nom) (α * σ / μ)其中σ为标准差、μ为均值劣化趋势估计层使用最小二乘线性拟合预测未来30秒内的劣化度变化率健康等级评估层将劣化度映射为健康等级0正常1注意2警告3严重。在注入不同接地电阻10Ω到500Ω的实验中THDE模型正确评估了电阻每下降50Ω对应的等级跃迁预测提前量达到12秒以上。该评估方案已通过DSP板卡的实际部署验证离线对比实验显示其比传统阈值法准确率高出28%。import numpy as np from scipy.signal import stft from sklearn.svm import SVC def extract_temporal_features(signal, fs, window_sec0.05): window_len int(fs * window_sec) step window_len // 2 features [] for start in range(0, len(signal)-window_len, step): seg signal[start:startwindow_len] f, t, Zxx stft(seg, fs, nperseg256) spec_energy np.sum(np.abs(Zxx)**2, axis0) features.append([ np.mean(seg), np.std(seg), np.max(seg)-np.min(seg), np.mean(spec_energy), np.std(spec_energy), spec_energy.max(), np.percentile(seg, 95) - np.percentile(seg, 5), np.mean(np.abs(np.diff(seg))) ]) return np.array(features).mean(axis0) class FI_LSSVM: def __init__(self, kernelrbf, gamma0.1): self.model SVC(kernelkernel, gammagamma, probabilityFalse) self.selected_indices None def select_features(self, X, y, k8): from sklearn.feature_selection import mutual_info_classif mi mutual_info_classif(X, y) self.selected_indices np.argsort(mi)[-k:] return X[:, self.selected_indices] def fit(self, X, y): if self.selected_indices is not None: X X[:, self.selected_indices] self.model.fit(X, y) def predict(self, X): if self.selected_indices is not None: X X[:, self.selected_indices] return self.model.predict(X) def temporal_health_level(deg_series, thresholds[0.2, 0.5, 0.8]): from sklearn.linear_model import LinearRegression X np.arange(len(deg_series)).reshape(-1,1) y deg_series reg LinearRegression().fit(X, y) slope reg.coef_[0] if slope 0.01 and len(deg_series) 10: pred_deg deg_series[-1] slope * 30 else: pred_deg deg_series[-1] if pred_deg thresholds[0]: return 0 elif pred_deg thresholds[1]: return 1 elif pred_deg thresholds[2]: return 2 else: return 3 ,如有问题可以直接沟通