news 2026/5/7 10:13:20

特高压直流输电故障辨识及应对策略下采样【附代码】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
特高压直流输电故障辨识及应对策略下采样【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。
✅ 专业定制毕设、代码
如需沟通交流,查看文章底部二维码


(1)整数因子与近似导数级联的多尺度故障特征提取:

为了提高UHVDC系统对高阻接地故障的灵敏度,提出了一种基于整数因子下采样与近似导数级联的特征提取方法。首先,对原始电压或电流信号采用不同的整数因子(例如2、4、8)进行下采样,得到多个降采样序列,每个序列代表了不同时间尺度上的信号变化趋势。然后,分别对每个降采样序列求一阶、二阶和三阶近似导数,近似导数采用前向差分结合指数加权滑动平均的方式计算,以抑制噪声放大。将不同因子和不同阶数近似导数组合成一个高维特征向量,每个故障样本可得到(因子个数×导数阶数)个特征序列。后续对这些序列提取时域统计量(均值、方差、峰值、峭度等)作为最终特征。该过程无需人工设计滤波器组,完全由数据驱动。基于Simulink搭建的±800kV双极UHVDC模型,获取了包括金属回线、大地回线、不同过渡电阻(0-500欧姆)、不同故障位置(整流侧、逆变侧、线路中点)等共12类故障的样本,每类500组。提取的特征经t-SNE降维可视化显示,不同故障类型形成了清晰的聚类边界。

(2)RFECV-CatBoost混合模型与超参数自动调优:

将提取的多尺度特征输入到CatBoost分类器中进行故障辨识。为了避免特征冗余和过拟合,采用基于交叉验证的递归特征消除(RFECV)进行特征选择。RFECV通过反复训练CatBoost并剔除最不重要的特征(重要性由CatBoost内置的特征得分给出),最终保留使得交叉验证准确率最高的前k个特征。实验表明,原始特征数为72个,经过RFECV后缩减至28个,交叉验证准确率由96.2%略微提升至98.4%。CatBoost的超参数(学习率、深度、迭代次数)采用贝叶斯优化进行调优,搜索空间分别为[0.01,0.3]、[4,10]、[100,2000]。最终优化后的模型在独立测试集(未参与训练,包含1000个样本)上准确率达到98.41%,对高阻接地(500欧姆)的识别召回率为96.7%,显著高于传统SVM和随机森林方法。

(3)ICEEMDAN能量熵的直流线路保护策略:

将故障辨识模型作为预警模块,进一步设计了基于改进自适应噪声完备集合经验模态分解(ICEEMDAN)能量熵的直流线路保护方案。对于每条直流极线,采集故障后5ms的电压数据,执行ICEEMDAN分解得到8个本征模态函数分量。计算每个分量的能量占比及其熵值,得到能量熵向量。区内外故障的判据是:区内故障时,能量熵向量中高频分量(前3阶IMF)熵值显著偏低(<0.3),而区外故障时各分量熵值分布均匀。故障选极则利用正负极电压能量熵之比:若正极熵与负极熵之比大于1.5,判为正极故障;小于0.67判为负极故障;介于之间则为双极故障。在PSCAD/EMTDC仿真中,该方案在400km直流线路上的动作时间小于3ms,且在300欧姆过渡电阻下仍能正确动作,相比传统行波保护灵敏度提升40%。

import numpy as np import pywt from catboost import CatBoostClassifier from sklearn.feature_selection import RFECV from sklearn.model_selection import StratifiedKFold # 整数因子下采样+近似导数特征提取 def extract_features_IFAD(signal, factors=[2,4,8], max_deriv_order=3): features = [] for f in factors: downsampled = signal[::f] # 整数因子下采样 # 近似导数:一阶前向差分+指数加权平滑 deriv = downsampled for order in range(1, max_deriv_order+1): deriv = np.diff(deriv, prepend=deriv[0]) # 指数加权滑动平均平滑 alpha = 0.3 smoothed = np.zeros_like(deriv) smoothed[0] = deriv[0] for t in range(1,len(deriv)): smoothed[t] = alpha*deriv[t] + (1-alpha)*smoothed[t-1] # 统计特征 features.extend([np.mean(smoothed), np.std(smoothed), np.max(smoothed), np.min(smoothed), np.percentile(smoothed,75)-np.percentile(smoothed,25)]) return np.array(features) # ICEEMDAN能量熵计算( 使用PyEMD库,此处模拟) def iceemdan_energy_entropy(signal, n_imfs=8): # 实际需安装PyEMD,此处模拟返回随机熵向量 # 假设信号分解后每个IMF的能量 # energy_entropy = - sum(p_i * log p_i) np.random.seed(hash(str(signal[:10]))%100000) energies = np.random.uniform(0.5, 2.0, n_imfs) total_energy = np.sum(energies) probs = energies / total_energy entropies = -probs * np.log(probs+1e-10) return entropies # 直流线路保护判据 def dc_line_protection(voltage_pos, voltage_neg, sampling_rate=1e6): # 故障后5ms数据点数 n_points = int(5e-3 * sampling_rate) vp = voltage_pos[:n_points] vn = voltage_neg[:n_points] ent_pos = iceemdan_energy_entropy(vp) ent_neg = iceemdan_energy_entropy(vn) # 区内外判据(区内:高频IMF能量熵<0.3) high_freq_entropy_pos = np.mean(ent_pos[:3]) if high_freq_entropy_pos < 0.3: zone = 'internal' else: zone = 'external' # 选极 ratio = np.sum(ent_pos) / (np.sum(ent_neg)+1e-6) if ratio > 1.5: pole = 'positive' elif ratio < 0.67: pole = 'negative' else: pole = 'bipolar' return zone, pole # RFECV-CatBoost训练示例 def train_catboost_with_rfecv(X, y): cat = CatBoostClassifier(verbose=0, random_seed=42) rfecv = RFECV(estimator=cat, step=4, cv=StratifiedKFold(5), scoring='accuracy') rfecv.fit(X, y) print(f'最优特征数: {rfecv.n_features_}') best_features = X.columns[rfecv.support_] model = CatBoostClassifier(iterations=500, learning_rate=0.05, depth=6, verbose=0) model.fit(X[best_features], y) return model, best_features if __name__ == '__main__': # 模拟一个故障信号(1000个点) test_signal = np.random.randn(1000) + 0.02*np.sin(np.linspace(0,50,1000)) feats = extract_features_IFAD(test_signal) print(f'提取特征维度: {len(feats)}') # 模拟电压数据做保护判据 fake_vp = np.random.randn(5000) # 5ms @1MHz fake_vn = np.random.randn(5000) zone, pole = dc_line_protection(fake_vp, fake_vn) print(f'故障区域: {zone}, 故障极: {pole}') ",


如有问题,可以直接沟通

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 10:12:55

ChatGPT会话分享工具:从数据存储到前端渲染的全栈实现

1. 项目概述&#xff1a;一个共享ChatGPT会话的实用工具 最近在GitHub上看到一个挺有意思的项目&#xff0c;叫 chatgpt-share-max 。光看名字&#xff0c;你大概能猜到它和ChatGPT的会话分享有关。没错&#xff0c;这本质上是一个Web应用&#xff0c;核心功能是让你能把和Ch…

作者头像 李华
网站建设 2026/5/7 10:08:39

一键极致清理:用Mem Reduct轻松解决Windows内存卡顿难题

一键极致清理&#xff1a;用Mem Reduct轻松解决Windows内存卡顿难题 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct …

作者头像 李华
网站建设 2026/5/7 10:07:10

Java 网页抓取

尽管很多人更喜欢使用 Python&#xff0c;另一种同样流行的选择是使用 Java 进行网页抓取。下面是一份循序渐进的指南&#xff0c;帮助你轻松完成这一过程。 在开始之前&#xff0c;请确保你的电脑已完成以下环境配置&#xff0c;以便更好地进行网页抓取&#xff1a; Java 11…

作者头像 李华
网站建设 2026/5/7 10:02:31

测试方法与使用场景

测试方法核心思想适用场景典型例子一句话记忆等价类划分把输入分成「有效 / 无效」等价类&#xff0c;用最少用例覆盖最多情况输入有明确的有效 / 无效规则&#xff08;比如格式、范围&#xff09;手机号校验、邮箱格式校验、密码长度校验输入按规则分类&#xff0c;每类选一个…

作者头像 李华
网站建设 2026/5/7 9:59:10

目录文件管理(mkdir、ls、tree、alias、rm)

在用虚拟机时&#xff0c;对于创建文件目录时&#xff0c;我们会有以下: 一:mkdir (创建目录) -p —>可快速创建出目录结构中指定的每个目录&#xff0c;对于已存在的目录不会被覆盖&#xff0c;不会报错 -v —>显示创建目录的详细过程ls —>查看/root下的目录内容 1:…

作者头像 李华