异步牵引电机故障诊断关键技术【附算法】

异步牵引电机故障诊断关键技术【附算法】 ✨ 长期致力于异步牵引电机、加速粒子群优化、定转子故障识别、先进双曲交点算法研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于Stockwell变换与子集敏感度的故障特征提取针对异步牵引电机定子匝间短路和转子断条两种典型故障提出了一种时频域联合特征提取方法。首先采集定子电流信号采样频率设为十千赫兹采样时长三秒。对每相电流进行Stockwell变换得到二维时频矩阵大小为频率点数乘以时间点数。Stockwell变换的核心是可调节高斯窗其窗宽与频率成反比能够同时保留高频的时间分辨率和低频的频率分辨率。然后计算子集敏感度指标将时频矩阵划分为二十个频带子集对每个子集计算能量均值、能量标准差和奇异值熵。敏感度指标定义为故障状态与健康状态下特征分布的Kullback-Leibler散度。选取敏感度大于零点五的子集特征组成特征向量最终得到二十四维特征向量。在牵引电机故障模拟平台上采集一百二十组数据健康、定子短路百分之五、转子断条一根、复合故障各三十组使用所提方法提取的特征在t-SNE可视化中显示出清晰的聚类分离不同故障类型之间没有重叠。2多核正则单纯形支持向量机MRSSVM与HCPA-APSO参数优化为了实现对多种故障类型的高精度分类构建了多核正则单纯形支持向量机分类器。MRSSVM使用三个基核的凸组合高斯径向基核、多项式核阶数为三和Sigmoid核。权因子beta控制各核的贡献通过正则化项防止过拟合。MRSSVM的目标函数为最小化 hinge loss 加上 L2 正则项同时保持单纯形约束。使用改进的加速粒子群优化算法HCPA-APSO来优化三个关键参数惩罚因子C、核参数gamma和多核权因子beta向量。HCPA-APSO引入了双曲交点概念在速度更新公式中加入双曲正切映射以增强全局探索能力。在八种标准测试函数上HCPA-APSO的收敛速度比标准PSO快百分之三十五最优值精度高两个数量级。使用优化后的MRSSVM对实验数据进行五折交叉验证仿真信号故障识别平均准确率为百分之九十六点三三试验信号准确率为百分之九十五点七二。其中定子短路识别率百分之九十七转子断条百分之九十六复合故障百分之九十四。3基于先进双曲交点算法Ad-HCPA的故障参数估计故障识别只能判断故障类型不能评估严重程度。为此提出了参数估计方法将故障程度短路匝数比、断条根数作为连续变量建立故障模型的仿真输出与实际信号之间的残差最小化优化问题。目标函数为仿真电流与实测电流的均方根误差加上频谱差异惩罚项。采用先进双曲交点算法Ad-HCPA求解该算法在HCPA-APSO基础上增加了自适应步长调整和历史最优解记忆库。对于转子断条故障参数估计Ad-HCPA的平均估计误差为百分之三点二运行时间较HCPA-APSO减少约百分之九十从一百二十秒降至十二秒。对于定子匝间短路估计误差百分之四点五运行时间减少百分之六十以上。对比遗传算法和模式搜索Ad-HCPA的估计精度最高且收敛速度最快。通过参数估计可以获得故障严重程度为预测性维护提供定量依据。import numpy as np from scipy.stats import entropy from sklearn.svm import SVC from pyswarm import pso class MRSSVM: 多核正则单纯形SVM简化实现 def __init__(self, C1.0, gamma0.1, betaNone): self.C C self.gamma gamma self.beta beta if beta else [0.4, 0.3, 0.3] # RBF, Poly, Sigmoid self.models [] def kernel_rbf(self, X1, X2): return np.exp(-self.gamma * np.linalg.norm(X1[:, None] - X2[None, :], axis2)**2) def kernel_poly(self, X1, X2, degree3): return (np.dot(X1, X2.T) 1) ** degree def kernel_sigmoid(self, X1, X2): return np.tanh(self.gamma * np.dot(X1, X2.T) 0.5) def combined_kernel(self, X1, X2): K_rbf self.kernel_rbf(X1, X2) K_poly self.kernel_poly(X1, X2) K_sig self.kernel_sigmoid(X1, X2) return self.beta[0]*K_rbf self.beta[1]*K_poly self.beta[2]*K_sig def hcpa_pso(obj_func, lb, ub, swarmsize50, maxiter200): 双曲交点加速粒子群优化 dim len(lb) pos np.random.uniform(lb, ub, (swarmsize, dim)) vel np.zeros((swarmsize, dim)) pbest_pos pos.copy() pbest_val np.array([obj_func(p) for p in pos]) gbest_idx np.argmin(pbest_val) gbest_pos pbest_pos[gbest_idx].copy() gbest_val pbest_val[gbest_idx] for iter in range(maxiter): w 0.9 - 0.5 * iter / maxiter c1 1.5 c2 1.5 for i in range(swarmsize): r1, r2 np.random.rand(dim), np.random.rand(dim) vel[i] w*vel[i] c1*r1*(pbest_pos[i]-pos[i]) c2*r2*(gbest_pos-pos[i]) # 双曲正切扰动增强探索 vel[i] 0.1 * np.tanh(vel[i]) * (1 - iter/maxiter) pos[i] vel[i] pos[i] np.clip(pos[i], lb, ub) val obj_func(pos[i]) if val pbest_val[i]: pbest_val[i] val pbest_pos[i] pos[i].copy() if val gbest_val: gbest_val val gbest_pos pos[i].copy() return gbest_pos, gbest_val def estimate_fault_severity(signal_measured, simulation_model, fault_type): 参数估计优化问题 if fault_type rotor_bar: # 待估计参数断条根数 (0-3连续) def obj(x): n_broken x[0] sim_signal simulation_model(n_broken) mse np.mean((signal_measured - sim_signal)**2) # 频谱差异比较故障特征频率幅值 return mse 0.1 * abs(n_broken - round(n_broken))*0.5 lb [0.0]; ub [3.0] elif fault_type stator_winding: # 短路匝数比 (0-0.3) def obj(x): ratio x[0] sim_signal simulation_model(ratio) return np.mean((signal_measured - sim_signal)**2) lb [0.0]; ub [0.3] best_x, best_val hcpa_pso(obj, lb, ub, swarmsize30, maxiter100) return best_x