森木磊石数字电源技术
直播中

CC_Tasya

2年用户 367经验值
私信 关注
[经验]

电力CPU实时仿真的系统规模评估准则分享

电力实时仿真由于其行业壁垒的特殊性,往往需要对用户的研究领域,研究系统做一定的了解,才好给用户配置最合适的实时仿真系统,这其实对于业务人员的专业性有一定的要求。当然,行业内也有一些评估准则,来帮助用户较快速的选择配置。但是这些准则你真的理解了么?前段时间还有微信好友向我吐槽,选了配置结果满足不了仿真需求,又需要扩展,感觉上了贼船。
所以今天我们就来分析分析电力实时仿真的那些评估准则,帮助大家更好的选择适合的实时仿真产品,排排误区。

CPU实时仿真
电力系统仿真大部分是基于CPU的实时仿真,当系统规模大了之后,需要考虑多核并行,这里就会需要评估需要几个核的仿真能力。
图片1.png
这里就会遇到第一个评估准则【单核仿真系统节点数

目前对于各个厂家来说,大部分是按照系统节点数来进行衡量。什么是节点?简单来解释,就是系统内两个点的电压不一样的,就可以算为一个节点。它意味着你的节点电压方程会多一维计算。
【误区一】三相节点数还是单相节点数
因为电力系统一般都是三相的,所以节点数是三相的节点还是单相节点需要弄清楚,之间数量可是三倍关系呢,差别不小。
【误区二】多核仿真的节点数
首先,如果要评估单核的仿真节点数,肯定这个核专门用来跑模型,但是实时仿真里面其实还又很多观测,数据监控的工作,也是比较耗费计算量的,所以会单独用一个核来进行这些操作。所以大部分来说最基础的也是两个核进行仿真,一个核用于通讯交互,一个核用来跑模型。其次,多个核专门用来跑模型,也绝对不是倍数关系的节点数。多核之间会又模型需要通过内存进行通讯,假设是2个核跑模型,那很简单,只需要两个核之间建立2条通讯通道就好(核1到核2,核2到核1)。那如果是3个核呢,如果两两都又通讯的话,就是要建立4条通讯通道。那如果有6个核呢,那最多是需要建立2的5次方,也就是32条通道。如下图所示(本来想举例12个核的,后来画到一半,放弃了,改成6核了…….
图片2.png
当然,以上情况只是小编考虑的最极端的情况,作为开发者是需要考虑,但是用户来说,未必会用到这么极端的例子。可能多核之间也只需要在其中几个核之间做少数的交互即可,并不需要一个核和其他任意核都有交互,这涉及到如何切割模型的问题,这个不是今天讨论的重点(如果关心模型分割的方式,可以关注后续相关的文章)。举这个例子也只是为了证明,多核并行仿真,并不是简单的单核仿真的节点数的倍数关系,节点数可以作为参考,但并不能严格的作为评判标准。
【误区三】系统并非只有节点数。
其实笔者一直认为,统计评价仿真的节点数必须和具体的电路结合起来,否则没有太多意义。节点数更多是对线路拓扑的描述,但是电力系统的元件根据研究的系统不一样也会有较大的差别。之前曾看过一个RTDS的一个评估测试,同样的仿真器硬件资源,仿真传统的配电网大概可以仿真300-500个三相节点,但是仿真输电系统智能仿真200多个三相节点。而且随着电力系统结构的变化,比如现在的主动配电网有很多的新能源,微网设备的接入,这一块也会消耗大量的仿真计算资源,还有传统节点数来评估已经不是太准确了。所以具体仿真多大规模还是要结合实际系统来看。
所以综上所诉,对于CPU仿真来说,节点数的评估是一个大概的估算,可以给用户一个大致的参考,最好的方式是结合实际的研究系统来进行更专业和准确的评估。当然,这样系统规模的评估必须建立在有效的电磁暂态仿真步长下才有意义。
这就引出了另一个常见评估准则——【仿真步长】

【误区一】最小仿真步长的意义。
从原则来看,当然仿真步长越小越好。但是这个需要结合仿真规模一起来评估了。这里面其实提到比较多的是一个最小仿真步长的概念。

怎么去评估最小仿真步长呢?其实没有哪家厂家有定benchmark。但是为了这个指标看起来“漂亮”,笔者猜测一定会去按照最小的模型去评估计算了。比如说一个电源加一个电阻的电路,这样系统的计算量是非常小的。

笔者对此可能有一些不同见解,个人认为,对于CPU实时仿真而言,最小仿真步长其实是个“伪指标”,对于电力系统电磁暂态来说,50-100us的仿真步长足够来完成系统暂态特性的模拟了,更小的步长并不能带来太多额外的信息,反而会使得同样的资源仿真的规模变小许多。这个不比做控制算法(RCP应用)或者电力电子或者电机系统仿真(仿真步长越小越准确),对仿真步长的敏感度并不是很高。当然,如果研究的系统中含有需要很小步长才能仿真出的特性,更好的方式应该是CPU+FPGA的联合仿真,而不是把整体的仿真步长都降低,性价比未必高。(个人观点,不喜勿喷)
言归正传,我们还是聊到仿真步长的评估准则上来。
这里小编需要稍微提一下CPU计算的两种架构 X86架构和 ARM架构。可能更好解释仿真步长的评判。
图片3.png
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。x86架构采用CISC,而ARM采用RISC。当然,这两种机构在不同行业不同领域都有自己的独特应用指出,这里我们只是简单讲一下在电力仿真这块的区别。

ARM架构则大幅简化架构,仅保留所需要的指令,可以让整个处理器更为简化,拥有小体积、高效能的特性。X86架构增加处理器本身复杂度作为代价,去换取更高的性能,但集成的指令集数量越来越多,给硬件带来的负荷也就越来越大,无形中增加了功耗和设计难度。

基于以上这些解释,我们其实也能分析到结果了。基于ARM架构的实时仿真,在对于最小仿真步长这块,因为评估的系统比较小,所以仿真步长会非常的小(可能能达到几微秒),但是随着仿真系统的规模增大,这个仿真步长就会急剧增大才能保证实时性了。

而基于X86架构的实时仿真,由于有复杂的操作系统,驱动程序等基本负荷在,一般最小仿真步长会从指标上大于基于ARM架构的实时仿真器(一般会在10-20us),但是随着系统规模增大,计算量的增大,它的优势反而能提现出来,能够更好的平衡仿真步长和仿真规模。所以这就是为什么有时候我们看到一些仿真器的CPU指标不怎么高,但是最小仿真步长性能反而比基于超强CPU的还要高。

当然,这里不是说基于ARM架构的不好(RTDS采用的就是RISC的芯片来做计算,只是他们在上面做了很多优化处理,也是能够保证实时性和仿真规模的,最新的基于IBM POWER8NovaCor依然是,宣传的指标也是很亮眼,值得期待),比如用在快速控制原型领域,小编觉得就很有优势了。
除了上面的评估准则外,还有一些比较细的评估方式,比如这个仿真步长是模型运行时间,还是带IO驱动一起的整个时间,实时仿真的步长抖动有多大等等问题。这里就不展开讨论了,感兴趣的朋友可以给我们留言讨论分享!

更多回帖

发帖
×
20
完善资料,
赚取积分