《Spatial-temporal Adaptive Transient Stability Assessment for Power System under Missing Data》论文撰写过程总结

首页摘要:

在《Spatial-temporal Adaptive Transient Stability Assessment for Power System under Missing Data》论文撰写过程中发现很多问题,趁着现在刚写完总结一下写这篇论文时编程遇到的问题以及相应的解决方法。

1.如何解决python数据读取时间过长的问题

利用数据挖掘来做相关研究往往伴随着大数据,在此以基于机器学习的暂态稳定评估为例。在撰写这篇论文的过程中,在新英格兰10机39节点上生成的暂态故障数据集是5775个具有228个特征、时间长度为20的高维多变量时间序列。如果以CSV格式存储,那么将占据大约1GB的存储空间,利用python中的pandas库读写一次需要60-80s左右,对于需要多次调节超参数的机器学习模型来说浪费时间甚巨。

但是我发现python的科学计算库scipy可以读写mat文件,而且前述数据以mat格式保存只需要0.5GB左右的空间。利用这种读写方式只需要1s左右。因此对于需要大量数据交互的python运行过程中,scipy库在压缩数据、读写时间上都有巨大的优势。值得一提的是,mat文件可以利用matlab矩阵操作的优点进行构造。

总而言之,将数据保存成mat格式,最后利用scipy进行读写。

2.如何解决多次载入深度学习模型时间过长的问题

在时间自适应的暂态稳定稳定评估中,由于最大时间窗口长达20,那么有可能需要在特定的参数下评估20次,而深度学习模型为训练过程中保存下来的最好模型,也就需要载入20次。而载入一次约30s,特别是要寻找合适的稳定阈值以及时间窗口长度大概需要10 50 30=15000s=40h=2days。为了避免每一次寻找最优参数时都载入深度学习模型,可以先将所有样本预测值输出并保存,基于这些输出来寻找最优稳定阈值以及时间窗口长度,最后仿真发现这样做时间不超过5min。同样地,在该论文中还需要自适应集成模型,也不需要每次载入模型,采取同样的手段可以节约大量时间。

3.如何解决python和matlab的交互问题

在做仿真的时候发现,有的算法在python中已经实现好了,而有些算法只有matlab相关实现,如果重新在其中一个变成语言中变成将费时费力。为了解决这个问题,可以采用文本交互的方式解决,因为matlab和python都可以相互调用函数且都能读取mat文件,如果把函数输入输出参数都通过mat文件进行传递,可以解决数据类型不一致的问题,python和matlab交互的问题迎刃而解。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×