用于电力系统瞬态稳定性评估的机器学习。 从数据挖掘和机器学习的角度来解决电力系统的稳定性,该模型由去噪堆叠自编码器和投票集成分类器构建。 集成由来自支持向量机和随机森林的池化预测组成。 报告并讨论了分类器在电力系统测试用例中的应用结果。 TSA问题的ML应用很有前途,因为它能够摄取大量数据,同时保留归纳和支持实时决策的能力。
电力系统这玩意儿一旦抽起风来,那可比人闹脾气难搞多了。最近在研究怎么用机器学习预判电网的"癫痫发作",发现把自编码器和分类器组合起来玩,效果居然能跟老师傅几十年的经验掰手腕。
先说数据预处理这块,电网的PMU数据自带雪花屏特效,直接喂给模型绝对会消化不良。这时候就得靠去噪堆叠自编码器(dSAE)来当数据净水器了。看看下面这个用PyTorch搭的三层结构:
class DenoisingSAE(nn.Module): def __init__(self, input_dim): super().__init__() self.encoder = nn.Sequential( nn.Linear(input_dim, 128), nn.Dropout(0.2), nn.ReLU(), nn.Linear(128, 64) ) self.decoder = nn.Sequential( nn.Linear(64, 128), nn.ReLU(), nn.Linear(128, input_dim) ) def forward(self, x, noise_level=0.1): corrupted = x + torch.randn_like(x) * noise_level latent = self.encoder(corrupted) return self.decoder(latent)这哥们儿的神奇之处在于:输入数据被故意加了高斯噪声(就像给图片打马赛克),但解码器得还原出干净版本。经过几轮这样的抗干扰训练,模型能抓住数据里最抗造的特征。比如某次训练后,重构误差从初始的0.15降到0.02,说明网络已经学会过滤掉那些乱跳的噪声了。
特征提取得差不多了,就该分类器登场表演。这里没走寻常路,搞了个投票委员会——SVM和随机森林的组合。这两个模型一个像拿着尺子量数据的强迫症(SVM的超平面),另一个像热衷民主投票的居委会(RF的多树表决),搭配起来能互相补短板:
from sklearn.ensemble import VotingClassifier from sklearn.svm import SVC from sklearn.ensemble import RandomForestClassifier svm = SVC(kernel='rbf', C=1.5, probability=True) rf = RandomForestClassifier(n_estimators=300, max_depth=10) ensemble = VotingClassifier( estimators=[('svm', svm), ('rf', rf)], voting='soft' )实际跑新英格兰39节点测试系统数据时,这组合拳效果惊艳。单模党SVM在动态负荷场景下准确率会掉到87%,随机森林在电压突变时也有类似问题。但两个模型组团后,整体准确率稳定在93%以上,特别是对暂态电压跌落这种危险情况的识别率,从78%直接飙到91%。
不过这套方案最让我心动的还是实时性。传统数值仿真得算上几分钟,这模型在Tesla T4显卡上处理500节点数据只要0.8秒,还留了足够余量给控制措施执行。有一次故意在模型推理时插入高斯噪声,结果人家准确率只降了2个百分点,这鲁棒性堪比诺基亚手机。
当然这也不是银弹,遇到拓扑结构剧变的情况(比如整条输电线路突然消失),模型还是得回炉重练。最近在尝试把迁移学习和在线学习揉进去,让模型学会自己更新知识库——毕竟电网天天都有新能源接入,总不能每次都让人工手动调参吧?