|
电力系统仿真软件的重要性就不介绍了,主要是电力系统很难像别的行业那样大量做实验,仿真是很多时候唯一的选择。在70年代,电力系统的仿真算法和第一批仿真软件就出现了。从那时候起,基础的仿真算法改进的并不多,但仿真的实现形式已经有过几次变革。我把电力系统仿真软件的发展分为3个阶段:
(1)上古时期,主要采用Fortran语言来编写代码,那个时候软件工程的概念还没有深入人心,全局变量满天飞、函数传入参数几十个,都是常见的事情。这时期的软件有个显著问题:算法与存储难以分离。你在某个内存数据库下开发程序,那这个程序就绑在了这个内存数据库下面,很难移植到别的地方。
直到今天,很多单位还是有很多Fortran遗留代码,比如说PSCAD/EMTDC的核心程序,还是Fortran的(至少直到4.2.1版本还是如此)。电科院系统所的一些软件核心程序,目前也还是Fortran的。
(2)近代,从大约90年中后期开始,面向对象的软件设计思想深入人心。把电力系统仿真程序用面向对象的思想设计或重构,成了一种趋势。比如说,周二专倡导电力系统仿真软件的面向对象设计,他的InterPSS项目实现用的是JAVA;汤涌开发的全过程动态仿真程序,直接使用C++。很多单位把旧的Fortran逐渐改为C++代码,但是有的不彻底,仅仅是改变实现语言,软件结构并没有重构。有的单位改造的很彻底,彻底采用面向对象和软件工程的思想进行重构,结果是生产力的大幅度提高,不再像过去那样每个人只能负责软件中极小的一个模块。
这时期的仿真软件仍然有自己的问题:1)灵活性不够,尤其是用户自定义功能偏弱(当然每个厂家都会吹嘘自己的软件是很开放的、可定制的);2)没有充分利用整体软件行业的进步,例如稀疏矩阵求解、优化问题求解等,可能是自己实现,而没有采用计算机行业的最新成果。
(3)现代,随着应用数学、软件技术的进步,特别是人工智能和大数据的发展,电力系统仿真软件必然进入新的历史时期,由于相关技术还在快速发展中,我在这里提出几点特征:1)软件具有动态特性,这样可以更灵活的满足需求,这在过去是不可想象的。过去的电力系统还是当成一个比较确定性的系统,低压直接等值为负荷。现在,各种新能源、储能、市场的发展,仿真场景一定是快速变化的。怎样提高仿真软件的快速演变能力,是在未来变得十分重要。可以直接在Python上实现仿真(当然需要与C/C++混合编程),也可以采用C++11以后的新标准,加强软件结构变化的灵活性。2)通用技术直接采用国际上的高性能库,而不是自己实现。这在我之前的博客也强调过多次了。专业软件主要是处理本行业的需求,而不是什么都自己做。3)在人机界面方面,可以尝试外包,厂商专著于自己的核心算法。现代前端技术的发展,特别是HTML5等技术,做出来的界面,已经可以把传统仿真软件的界面打成老古董了。
在这里提一个观点:Tensorflow的编程思想很值得新一代电力系统仿真软件借鉴。Tensorflow把机器学习全过程抽象为图,其中数据流(不是数据本身)抽象为边,数据的操作为节点。用户把计算图建好后,真正的计算还没开始呢!这是一种结构先行的思路,具体的算法实现与算法结构分离。大部分应用开发人员只需要建立结构,就像搭建积木一样,而不需要深入算法实现的细节。
电力系统是传统行业,不像互联网那样变化剧烈。但是新的历史时期,尤其是算法技术快速发展的时代大潮下。有可能出现电力系统仿真软件的创新性公司,打破原有厂商的垄断。特别是以RTDS、PSCAD为代表的国外仿真厂家,至少以后在中国的市场可能会遇到严峻的挑战。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-21 19:34
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社