基于任务拆分的继电保护云整定计算方法
2021-04-08魏琳洹田景辅田鹏飞
于 游,魏琳洹,田景辅,田鹏飞,马 强
(1.国网辽宁省电力有限公司,辽宁 沈阳 110006;2.沈阳工程学院,辽宁 沈阳 110136)
整定计算软件是电网继电保护整定计算工作中不可或缺的工具,其随着计算机技术的进步而不断向前发展[1-6]。目前国内应用的整定计算软件都是基于C/S架构[7-8](Client/Server,即客户端/服务器架构),这种软件架构下整定计算程序安装在客户端电脑上,定值计算等主要业务在客户端完成,服务器不参与定值计算,主要用来管理整定计算数据,包括与上下级电网的整定计算系统交互数据,以满足多终端用户和电网一体化整定计算的需要。
电网的整定计算尤其是大电网的整定计算需要进行大量的运算。如计算电网中线路的某侧保护,其定值需要与其下级所有线路和元件的保护进行配合,计算时要在每个被配合设备的不同位置设置故障点,并且考虑线路正常或相继、母线其他线路轮断、电厂和变压器的不同运行方式,将这些因素进行组合计算,选出最严重方式下的结果作为定值整定依据,因此一个定值就可能涉及到成百上千个计算案例。当整定的电网面积较大时,客户端电脑有限的计算资源将难以胜任这海量的运算,例如整定一个220 kV中等规模的地区电网后备保护,用当前整定计算软件计算一遍,快则需要几十分钟,慢则需要几个小时。如果电网规模更大,或者选择多级轮断方式,计算量将呈几何级增加,计算需要时间将更长,甚至无法计算。
整定计算软件服务器的计算能力将远超客户端的电脑,应用服务器来计算将会有效提高整定计算速度,而且电网一体化整定计算系统中省调及各地调都设置了2台服务器,调度系统中还存在数量可观的其他业务服务器,如果将这些服务器资源组织利用起来开展云计算,将进一步提高整定计算能力。使用云计算来进行整定计算是一种全新的模式,本文研究了基于任务分拆的云计算方法,将整定计算任务进行了合理分解,然后分配到云计算资源上,最后进行汇总得出结果,在计算效率最大化同时,保证计算结果准确与数据安全。
1 云整定计算系统的搭建
首先选择多台服务器组建整定计算私有云,搭建起基于后端云组件化的云计算系统框架,该框架由客户端+云组件管理中心+负载均衡器+后端框架组成。
云组件管理中心部署在核心云服务器中,负责管理所有云组件,云组件有电网参数管理云组件、计算模型云组件、计算工具云组件、整定高级应用云组件、装置计算云组件、故障计算核心云组件等,分别负责整定计算不同的功能。云组件以软件包的形式存储在云组件管理中心,当云组件管理中心接收到云服务器的云组件安装请求时,云组件管理中心负责将请求的云组件软件包推送至对应的云服务器。
云组件管理中心、负载均衡器分别部署在2台云服务器中,负载均衡器包括基于AMQP协议的任务代理服务器和数据存储代理服务器,后台框架包括1台主服务器和多台算力支撑云服务器,能够提供强大的云计算能力。当进行整定计算时,负载均衡器会向后台框架内的所有云服务器发送主服务器的计算模型数据,从而同步更新后台框架内的所有云服务器中计算模型云组件的计算模型数据,为整定配合云计算做好准备。
2 计算任务拆分的方法和原则
2.1 任务拆分的理论依据
应用木桶理论,即1只水桶能装多少水取决于其最短的那块木板;反木桶理论,在计算系统中,运算速度取决于运行速度最慢的那个子任务有多大,执行时间有多长;例如一个任务不拆分的情况下执行完毕耗时1 min,当它被拆分为2个任务时,最快也要30 s才能执行完毕,假如拆分不当,一个耗时10 s,另一个耗时50 s,整个任务执行完毕也需要耗时50 s才能执行完,执行效率取决于耗时最长的那个任务。因此任务分拆时要尽可能细化任务,将计算压力(计算耗时)尽可能的平均分摊出去,使木桶的每块木板尽可能的短,这样才能使用到的所有服务器计算效率最高。
2.2 任务拆分的方法
云计算体系通过任务代理服务器将计算任务按照配置的规则,包括预算分析量、配合规则、计算案例逐层拆分并下发。如一个整定工程计算任务,由主服务器拆分为若干个保护定值的计算任务,上交代理后再继续按预算分析量进行拆分,同时将需要生成配合关系的计算任务按照配合规则层层拆分,直至拆分至最小颗粒,然后将拆分得到的计算案例上交代理,再将计算案例下发至云服务器计算池进行并行计算,将计算结果回执到代理服务器按照拆分层级逐层汇总,得到计算结果并输出。
在整定计算中,大部分计算力会用在以下几个功能上,因此计算任务拆分时会按以下3个功能来拆分:
功能1:生成配合关系、计算场景、计算案例;
功能2:计算功能1中生成的计算案例;
功能3:存储功能1中所生成的相关数据至数据库。
在云计算中,各个计算单元具有完全一样的计算模型,为了保证计算结果的准确,一般只安排1台或几台服务器拥有对数据库的操作权利,据此把上述功能1和功能2拆分的子任务定义为非关键任务,功能3拆分出来的子任务定义为关键任务。一些能操作数据库服务器,如主服务器,可处理关键与非关键任务,数量更多的是不能操作数据库的副服务器,只能处理非关键任务,如图1所示。
图1 功能拆分与服务器分配
因此,拆分任务时,应尽可能减少关键任务比重,增加非关键任务比例,因为非关键任务能被所有计算单元执行,而关键任务只能被有限几个计算单元执行,这样就可以在保证计算结果准确的情况下达到整体效率最高。
一般系统在处理数据存储和数据计算时绝大多数采用串行逻辑,即先把数据存完才能执行计算,而本系统采用了并行逻辑压缩耗时,当前线程将计算案例(功能1)生成完后立即生成存储子任务(功能2)和计算子任务(功能3),提交到任务代理服务器分配2个任务进行并行计算,当前线程通过RPC(Remote Procedure Call,远程过程调用)技术,等待2个子任务执行完毕后,将汇总的计算结果写入数据库中,这样做可以提高计算速度。
3 基于任务拆分的云计算
3.1 云计算过程
a.客户端将整定计算的主任务发送到任务代理服务器,任务代理服务器查找当前配置的云服务器计算池,并将所述主任务下发给云服务器计算池中的主服务器进行处理,如图2所示。
图2 任务代理服务器下发主任务
b.主服务器接收到主任务后,根据计算量的大小判断所述主任务是否需要拆分。如果计算量较小,则不需要拆分,主服务器直接对任务进行计算并得到计算结果;如果计算量较大,主服务器判断所述主任务需要拆分,则根据配置的规则(包括细化任务和划分关键/非关键任务)进行计算工程的任务拆分,将主任务拆为多个计算案例子任务后,将拆分的多个子任务上交至所述任务代理服务器,如图3所示。
图3 主服务进行任务拆分
c.任务代理服务器接收到拆分的多个子任务时,使用单一队列算法(计算单元主动向负载均衡器索要任务)进行任务分发,将所有要处理的计算任务放到一个队列中,云服务器计算池中空闲计算单元主动向负载均衡器索要任务进行并行计算;当子任务之间具有依赖关系时,如果依旧按照一般任务分配逻辑执行,则这些任务都无法正常处理,这种请求被称之为粘滞任务,为了处理这种情况,粘滞任务通常会被分配给同一个计算单元的同一个线程中进行计算。
计算池内所有计算单元在将拆分的多个子任务计算完成后,将计算结果回执到任务代理服务器并由其回执到主服务器,主服务器负责汇总所有子任务的计算结果,并将最终汇总后的计算结果回执到任务代理服务器,如图4所示。
图4 下发子任务与计算结果回执
d.任务代理服务器将最终汇总后的计算结果转发至数据存储代理服务器,再由所述数据存储代理服务器广播至云服务器计算池进行云存储;云计算过程结束,如图5所示。
图5 形成最终结果和云广播存储
3.2 云计算的应用
辽宁电网省地一体化整定计算平台设立了2台服务器,再利用另一业务的1台服务器进行扩展,形成共3台服务器的小规模“私有云”。将上述任务拆分原则和云计算方法在该平台进行实际应用,计算结果表明,对比当前的整定计算软件,采用云整定计算方法后,整定计算速度有了大幅提高。
以计算鞍山地区的某基建工程定值为例,选取计算范围为鞍山地区整个220 kV电网,共有4座500 kV变电站和25座220 kV变电站,如果使用base2000整定计算软件,计算1遍相间距离、接地距离和零序电流保护,共需要25 min左右,而采用云计算方法,计算时间仅为25.83 s。
当计算范围更大,整定方式更复杂时,云整定计算的计算能力和计算速度优势更大,此时一般的整定计算软件可能需要几个小时以上的计算时间,甚至系统崩溃计算不了,而云计算则不会存在这种情况,而且云计算能力会随着云资源的扩展而不断提高。
4 结论
云整定计算是新一代整定计算软件的发展方向,本文研究了基于整定计算任务拆分的云计算方法,设计了任务拆分原则与云整定计算过程,然后在辽宁省地一体化整定计算平台上进行工程应用,实践结果证明了本方法能够显著提高整定计算能力和计算速度,对提高整定计算工作效率有很大帮助。
云整定计算的应用将促进整定计算向智能化、全模型一体化方向发展。依托强大的计算能力,大量人工智能技术将会在整定计算工作中得到应用,大电网的一体化全模型整定计算也能够实现,这将进一步提升整定计算工作效率,降低定值计算误差。