12 月 3 日,2023 IoTDB 用户大会在北京成功举行,收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题,多位学术泰斗、企业代表、开发者,深度分享了工业物联网时序数据库 IoTDB 的技术创新、应用效果,与各行业标杆用户的落地实践、解决方案,并共同探讨时序数据管理领域的行业趋势。

我们邀请到华润电力技术研究院副院长郭为民参加此次大会,并做主题报告——《新型时序数据库在智能发电领域的应用探索与展望》。以下为内容全文。

目录

新型电力系统中的数字要素

IoTDB 在华润智能发电体系的应用

新型工业时序数据库功能探讨

各位来宾,大家上午好。我也是今年开始跟 IoTDB、跟天谋有了一定的缘分,因为我做智能发电领域,虽然时间很久,但是一直没有找到一个特别合适的时序数据库。那么也是机缘巧合,后来在我们的一些选择测试过程中,就发现了这么好的一个产品,所以从去年开始,我们开始有了比较深度的应用,也是结合我们的实践,给大家分享一下我们的一些体会。

我今天的这个报告分三个部分。首先还是要把我们整个行业这个大背景说一下,然后再根据我们具体的一些应用案例,跟大家说明一下 IoTDB 是怎么用于我们的这种应用场景里面,最后再有一些简短的我们对功能需求方面的展望。

01

新型电力系统中的数字要素

先说一下新型电力系统中间的数字要素,我今天看来宾里面也有一些是电力系统的,可能对这个概念比较熟悉。今年咱们应该是发改委能源局,也是委托中国电规总院发布了新型电力系统的这么一个白皮书。这里边对新型电力系统的一些要求,或者它的技术特点做了说明。那么新型电力系统怎么来的呢?也是为了贯彻我们 “2030 年碳达峰,2060 年碳中和”的这么一个目标,要把我们原来以传统化石能源为主的这么一个发电体系,转换成以新能源为主的。现在其实经过这几年新能源的大力的发展,我们的新能源的装机总量已经过半了。

传统的电力系统它一般只有“源网荷”三部分组成。那么电力系统很大一个特点,电是在一瞬间完成了生产、输送和使用的。原来的“源网荷”的方式,它里面有一个很明显的要素就是“荷”,就是用户这一侧是不确定的,对吧?你开关一个灯都是很随机的事件,但是电源侧是可控的,因为我们的发电厂它的可控性还是比较高的。那么现在就是由于新能源的进入之后,新能源是看天吃饭的,对吧?是看我们的天气来去影响发电量,导致我们的电源侧也不可控了。那么两个不可控因素,在控制上基本就解决不了问题了,对吧?整个系统就会失衡。那么这样就给我们整个新型电力系统,它的稳定以及它怎么来运行,带来了非常非常大的一个挑战。

那么基于此,其实解决的方案,首先大家自然就想到了增加储能这么一个模式,但是储能的成本是非常非常的贵的,然后完全靠储能去平衡两侧的这种不确定性是非常的困难。那么这时候怎么办呢?只能把电源侧、负荷侧和储能的所有的能力要发挥出来。如果要发挥出来怎么办?那只能靠数字化的这个解决手段,就是我们能够随时、及时地了解到,我们的用户侧有哪些是可以调整它的状况,甚至要进行预测。电源侧也是如此,尤其是新能源,我要能做中短期的预测、长期的预测、它的发电量的变化等等等等之类的。只有把这些所有的信息准确地把握,然后在这个复杂模型里面进行精准的控制,才能达到系统的一个平衡。这就是说,简短地讲,就是新型电力系统中间,它要能够保持一个稳定高效的运行,离开数字化、离开数字是绝对解决不了问题的。

所以说,现在就是从电站、工厂、社区等发电终端,到电网系统,这个智能融合已经成为整个新型电力系统的一个基础,就是因为刚才这个原因:没有数字,没有智能化,那么电力系统是没有办法运转的。所以说我们的蓝皮书上给出了它的四个特征,其中有一个就是智能融合。右下角给出的这张图,其实是我们预想的一个状态,多能互补现在其实做不到。你要想做到怎么办?只能靠一些数字化的手段来解决,这是大的新型电力系统的一个背景。

那我们继续往深一步讲它的电源侧,也就是发电。智能发电这块是新型电力系统的一个关键要素。那么现在对它有四个要求,就是安全、高效、清洁、灵活,尤其是灵活,就是要能够随时应变各种不确定性。原来的发电控制的话,它还是非常传统的,面向过程的。左下角我给出的这张图,是非常简略地画了一种常规的工业控制中,我们一般经常用的图,就是状态,通过一些 Action,就是过程的转变,变成新的状态,是这么一个情况。所以以前的控制都是一种轮询的,面向过程的一种控制,是这么来做的。右下角是一个,我们称之为 SAMA 图或者组态图,所有的逻辑它是一遍一遍的。一般在电力控制里面有四个时钟频率:50 毫秒、100 毫秒、125 毫秒、250 毫秒,要去完成一轮控制,这样轮循,所以它整个的过程其实关注的都是这个过程控制,而不是数据,数据只是过程里边的一些资源。

那么在新型的电力系统里面的话,这个肯定是满足不了要求,为什么呢?系统过于庞大,过于复杂,什么过程都一个个去设计,然后去控制它们之间的互操作,各方面就很难去解决。所以说现在新的这种方式的话,其实反过来是把状态空间作为整个控制的核心,而不是把过程作为控制的核心。以往的控制只有一个,就是时间驱动的轮询。那么现在的这种基于状态空间的控制的话,它会有多种驱动,尤其是事件的驱动,为什么?一会后面我会给到,我们有非常大的数据的量,这么大的数据量,你要轮询去处理,有大量的算力是被浪费掉的。比如说我有一个设备的输出,它的状态是取决于另外两个设备的开关状态。那其实你每次轮询的时候,很多时候开关状态并不变,但是这个数据,就是 y=f(x) 这个函数每次都要执行一遍,其实这些资源都被浪费掉了。所以说基于事件的这个驱动,也是成为现在在新型电力系统里边,这么大的计算量的情况下,必然要有的。所以原有的我们那些控制系统就不能满足要求,那么我们现在更多的要基于状态空间,以及状态空间这些变化来去驱动我的相关的一些处理。这个是不是听了感觉很熟悉?刚才我们天谋发布的 1.3 版本里面,其实就已经有相关的一些概念了

我们继续往下看,看上一页的这个状态空间,其实它的表达是什么呢?就是时序数据库是非常好的一个载体。因为工业领域里头,状态空间绝对不是一个无时间序列的,它是一个实时系统,它是必须基于时间序列的。所以说时序数据库的话,它逐步就成为我们在整个发电领域里面最核心的一个东西,因为它是我们状态空间的这么一个载体,它要来表达整个状态空间,然后我们用它来去观测状态的变化,来触发相应的事件。同时,它也成为我们各个功能之间交互的一个枢纽,就是说实际上我们每一个过程处理,都是基于某个子状态空间去抽取它的初始状态,然后施加于特定的一些 Process,就是一些过程处理,形成一个新的状态,是这么一个过程。所以这些都是表现出时序数据库在里面它的作用。

现在左下角这个图是我们原来面向过程的实时数据库的作用,非常简单。以前我们搞工业领域都知道 PI,还有 eDOS、eDNA 这些数据库,它其实就是做一个历史数据库,我们平常是不用它的,我们所有的过程处理都是在内存里边直接处理。但是在新的系统里边不行了,就是由于我们很多的处理,它是事件触发式的,它很多时候就无法再基于原来的状态基的方式进行处理,往往它处理的是个无状态基的,这个时候状态要怎么从数据库里面获取?以前因为所有的过程处理它自己来保存这个状态了,它本身就是一个状态基的机制,所以说它就不需要这个数据库,那么原有的数据库并不存在去承载状态空间表达的这么一个任务。所以说在新的里头,时序数据库在我们的智能发电控制,甚至在新的所有的控制领域里面,要去从事复杂的先进算法的话,它都显得尤为地重要

我举一个例子,就是说在新的这种状态空间表达里面的话,那我们也需要这个状态空间有比较好的一个索引体系,或者说有其他一些能力要求。我大概列出了这些,包括它的分布式的部署能力,对吧?刚才其实前面大家讲了很多,我就不再说了。还有包括设备树为主要的索引体系,因为一个大的工厂也好,一个大的系统也好,后面会让大家看到我们工厂有多复杂,这么大的状态空间,你是无法表达的。那么要清晰地表达的话,你可能就要学一套完整的索引体系,那么设备树就是最好的索性体系。当然还有高精度的时标,这个也很重要,我刚才讲到了,我们的实时控制要求是非常高的。海量数据的读写能力毫秒的查询能力等等,为什么要毫秒级的查询能力呢?因为我们是实时计算,你要在毫秒级的去获取到我当前的一个子状态空间,计算,再处理完,再回去,所以这个都是要求比较高。那么 IoTDB 在这一块是很好地满足了我们上面的要求

右边的这张图大家可以看一下,如果用过 IoTDB 的就很熟悉,这就是 IoTDB 的树标签的这么一个结构。它就很好地满足了我这里面列的第二条,就是设备树为主的这种索引体系,它就非常的配合,对于我来去获取每个设备的这个状态空间就非常的便捷,这也是我们当时选择它的要素之一,当然也不止于它

02

IoTDB 在华润智能发电体系的应用

报告的第二部分,就是在我们华润电力的智能发电体系的应用。

我们华润电力的智能火电厂,就认为要实现这么复杂的控制的话,我们要去分三层架构,从下面的智能设备,到中间的智能平台,到顶上的各种智能应用的集合,构成这么一个智能体的结构。它最最关键的就是中间那个智能平台,它是所有数据的汇集和算力的这么一个承载体。那么为了让它更加的通用化,因为我上面的应用非常非常多,这些应用可能是由不同的厂家开发的,为了它能够协同作用的话,这个平台要求就很高,它的数据的标准化,它的应用的这种相互操作性,怎么保证呢?就是要靠这个平台。

再加上电力系统还有一个非常特殊的要求,就是网络安全。所以它中间有一个网闸隔开了,就得出我们的平台右边的简化的一个图,就是说它是基于面向服务的,或者微服务的架构,来构成这么一个体系。那么它里面最核心的两个要素就是这个时序数据库,尤其是在它的实时控制侧,就是我们的网络 I 区。在右边那张图靠中间的那一部分,是我们的 I 区,黄色的那条线,这部分是我们的 I 区,然后这里面的话,它最核心的要素就是我们这个时序库,是大概的这么一个结构。

因为时间关系,确实很难这么短的时间给大家讲明白是怎么回事,所以后续我就直接展示一下,就是说用我们这套架构来做出来的系统的一个样子,有一个短的视频,现在放一下:(视频名称:华润电力仙桃公司智慧电厂功能演示)

  • 一体化管控平台:一体化管控平台相当于人的“大脑”,是整个智慧电厂的核心,将全厂生产、业务数据汇集供智慧电厂各应用功能共享,消除信息孤岛。仙桃电厂一体化平台共设置 14 台高性能服务器,部署在信息机房,其中生产大区设置 6 台,非生产大区设置 8 台,两个大区之间通过正反向隔离网闸实现联通。以一体化平台为底座,在上面部署智慧安全、智慧运行、智慧检修三大电场业务板块,29 项智慧电厂应用功能,所有应用实现单点登录、分级授权,人员信息与控股统一账户保持自动同步。全场设置 3 套综合驾驶舱作为人机界面,1 套用于参观演示,2 套分别用于单元机组监控。

  • 煤化验机器人:系统既可单机运行,替代传统煤质化验室大量化验人员手工操作各种分析仪器的传统作业方式,又可与燃料管理智能化采制样系统对接,实现采、制、化全过程无人为干预自动作业,补齐了燃料管理智能化系统的末端短板。

  • 巡检机器人:机器人整合图像识别、非接触监测、5G 通讯等技术, 实现对设备的自主巡检,替代人工。全厂共部署 2 套机器人,一套在 #8 输煤栈桥,一套在 6kV 配电间。机器人可 24 小时替代人,从事风险高、环境恶劣工作,减轻劳动强度。这里面所有的检测数据,像一些图形数据的话,我们是通过把它事件化、打标签,然后存入我们的时序数据库,所以也都是用到了这个数据库

  • 智慧安全:智慧安全主要包含 5 项应用,分别为人员智能管控、人员定位、智能两票、智能违章识别、智能风险双控。功能应用以三维可视化为建设基点,建立电场主要建筑物、设备设施、器材工具高精度三维模型,实现人员、设备、环境可视化呈现和智能化管控。该应用部署在一体化管控平台上,以综合驾驶舱作为人机界面进行全方位展示。平台首页主要展示电厂两台机组环保排放、正在作业的工作票、人员的统计情况实时数据;隐患统计界面主要展示全厂隐患、违章、培训的实时数据。

    • 人员智能管控:建立一套覆盖全员的 EHS 档案系统和安全信用评价体系,实现人员进退厂机制,建立完整的个人安全信用档案。

    • 人员定位:基于全厂三维模型,建立智慧电厂高精度定位系统,构建与真实空间信息同步的数字孪生体系。在此基础上,引入时空大数据分析理念,利用人员定位技术,在三维场景中,对全场人员进行精准定位并展示,同时可以在驾驶舱查看人员实时定位。联动智能两票,实现定位追踪、历时轨迹查询、电子围栏联动、AI 视频联动、电子点名、巡检确认等功能,提升厂内人员安全管理水平,提高突发事件处置能力。

时间关系,我就不再往下放了。

另外一个应用场景,我们构建的这套华润电力的新能源智慧运营系统可以大概分为这四大系统。前面两个是以实时监控为主的,就是实时的监测和控制保护。像实时监测里头还有非常复杂的功率预测,其实就是看天吃饭,预测天气,根据天气来定我们到底会发多少电。然后还有部署在我们的网络 Ⅲ 区的设备管理和运营管理系统

新能源它最大的特点是非常的分散,跟火电很集中的特性不一样。我们整个华润电力的新能源运营系统就采用了云边端,但是跟刚才我们天谋介绍的边和端是有差别的。天谋科技介绍的端是指设备,边是指厂站,其实由于我们的新能源规模太大,所以说我们的云是总部云、总部运营这一块的;边是省域,每个省有一个集控;端对我们来说就已经是个厂站了,当然也有的把它叫“边的边”,是边的一部分,叫分散的、或者说一个分布式的边的概念也可以,但是它对我们来说已经是到端侧了,是协同的一个技术架构。

而且由于云这一块的话,它是在我们的网络 Ⅲ 区,这个搞电气系统的知道,然后后面两个要在 I/Ⅱ 区。那么右边这个图可以看出来,这里边中间两个粉色的是 I/Ⅱ 区的分界,是两个防火墙。中间靠右边深一点颜色的那个是网闸,叫单向网闸,这是电力系统里面是特定规定的,数据只能单向传输,这样才能做好边界防护。而且的话大家可以看一下,中间那个集控一层和下面的场站一层是地域分布非常广,下面的场站可能有 20-30 个是分布在一个省的各个地方,山头、丘陵、高山上面。集控侧一般是可能在省会城市的某个地方,所以一张看似简单的图,它其实覆盖了非常大的一个地域。

然后我说一下这里面我们的 I/O 测点,有 1000 万以上的测点。我们的数据记录,每个小时的话基本上过 10 亿条数据记录,10 亿条以上的数据记录会产生,所以这么大量的这些数据,你怎么去存储、怎么去管理、怎么去用,挑战是非常非常大的。那么我刚才也讲了,我们也是通过各方面的对比,最后选择了 IoTDB 来做。虽然现在没有完全部署完成,但它已经很好地支撑了我们那些相关的应用

这是我们目前已经做好的 IoTDB 部署,我们已经完成了 6 个省域的整个的部署实施,现在已经控制了将近 100 个场站。将来全部建成之后,我们有 20 个省域中心,会管理 200 多个场站,7800 多台风机,装机容量是 16GW+。光伏这块会管理 35 个以上的光伏厂站,逆变器数量也达到 6000 台以上,装机容量是 1.4GW 以上,所以 IoTDB 管理的范围将非常广大。这个是我们的界面,这里面的所有实时数据都是由 IoTDB 来负责存储和管理的

那以上就是我们的两个应用案例,本来还有第三个应用案例,时间关系实在不好意思跟大家分享了。

03

新型工业时序数据库功能探讨

基于此的话,其实以前的版本,我们在应用过程中还是有一些需求的。我当时写这个 PPT 的时候也没跟天谋团队进行沟通,但是我今天很高兴地发现,我们的很多诉求在刚才 1.3 版本的发布里面,其实都已经提供了相应的功能,可以说大家还是看法非常地一致,也是感觉到非常的欣慰

那首先第一个诉求是什么呢?就是跨安全分区的“云·边·端”的一个协同。实话实说,现在跨云边端的、尤其是跨安全分区的这个是比较复杂的。不是搞电力行业的可能不清楚,我们有一个网闸,就是那个白色单向箭头,这个是很讨厌的一件事,就是说它只能单向传输,关键很多时候还不允许安装反向网闸,只有单向的一个网闸。那么你数据的同步是容易解决的,但是我们要求的不仅是数据的同步,我还需要数据库结构的自动同步,对吧?我在顶上一个地方改了,那下面就改了,或者我们下面改了,上面的数据也改了,数据库结构也改了,因为我随时有可能增加新的设备,增加新的点。那么基于 IoTDB 的这种设备树的树标签的结构,我在任何一个地方增加了新的一个 Series,我希望别的地方同时就能够获得,它不仅仅是一个数据的同步,也是需要结构的同步。那么这里头你要跨这种网闸、跨安全分区,其实是蛮有挑战的。

还有就是时间标签的自动修正。刚才我们讲到了终端,就是 IoTDB 说我的端侧是设备,设备上是没有 GPS 的,但是在电力系统,时钟的准确性非常非常重要,我们一般是靠频率来去判断是否平衡的,频率就是对于角度的一个时间上的微分,时间的呈现非常非常重要,但是我们有些设备它就没有 GPS 对时,怎么办?而且很多时间标签,大家习惯性的是在入库的时候打上标签的,实际上这个时候我们是希望能够通过回声定位的方式,能够知道它的时间距离,就是我的测点跟我的时间距离,然后数据库在打标签的时候能够自动地、更精准地打上标签,所以时间标签自动修正也是很有挑战性的。

另外还有基于广域网的一键配置、一键诊断,这个刚才的 1.3 版本其实都提供了,我就不多说了。

第二个是应该有丰富的源数据的治理和预处理的能力,比如说冗余、容错、滤波,这都是工业里面常用的一些必备的能力。那么我们现在用 IoTDB 的话,会用它的一些开发工具,比如说连续查询等等一些存储事件的方式去做。但是说句实话,有问题,问题在哪呢?就是说这种外挂进去的代码,它的质量有时候不好控制,有时候会带来问题,所以我们还是希望这些东西集成到这个数据里面去。

然后右边我是给了一个特殊的案例。实际上大家搞工业控制的知道,我们为了保证参数的一个高可用性,我们有时候经常设 3 个测点,那么这时候就需要取什么?“三选二”、“三取中”、“三取均”等等。甚至有时候当我做一些调试测试的时候,我希望这个值不用我实测的值,我用手动设定一个定值,就是所谓强置的概念,就是右下角的这个图所连接的,所以我们觉得其实数据库是可以继续往下延的。下延的同时,当我们获取,比如说上一层那个参数 x 的时候,我缺省的索引是参数 x,但是我获得的是其中的一个缺省值,比如说我一般认为中值是作为我的缺省值,我就直接获取中值。其实这种功能对我们工业应用来说非常非常的方便,而且用量特别的大,搞工业控制的知道我们重要参数都是多测点的,但实际上我只用其中一个点,我不需要所有的点都知道,我真正用的时候,只用其中的中值或者均值之类的。因为我刚才前面讲了,数据库已经成为我们状态空间的表达了,那么这种底层的一些数据的预处理功能,我们希望数据库都能把它给处理掉。当然还有数据质量的一些管理等等,这个我就不再说了。

同时也能够提供最基本的数据的一些聚合计算,比如说方差、均差等等,这个刚才其实天谋科技发布的新的分析引擎里头已经提供了这个功能,我觉得这个非常好

还有就是可定制的数据智能推送。这个其实刚才也提到了,就是 IoTDB 现在能够直接提供数据的订阅之类的,当然我们要求的不只是订阅,我们希望它能够跟消息队列集成度更高,就是直接以我们的事件驱动,让数据库通过数据的变化来发出事件,来驱动我完成相应的过程处理的一些计算。采用这种方式对我们来说,数据库就真正成为了我们整个智能发电应用的一个核心。这里面我也讲到了,你虽然可以结合第三方那些消息队列的订阅发布功能,能够在一定程度上来实现这种数据的推送的机制,但实际上还是有这些问题,还是要做很多配置,中间你还是要写一些代码,我们希望它还是能集成度更高一些。更为重要的是通过这种方式,提高了整个的系统可靠性,通过代码质量提升提高可靠性之外,最关键的是通过这种机制,真正实现了数据库成为我们各种应用交互操作的一个枢纽,它承担了一定的平台化的功能。

还有很多很多的应用,我们在前期也都跟我们的 IoTDB 团队做了沟通,他们还是更新得非常快,所以今天我写这些东西,我看到很多在 1.3 版本里面都有实现的机制,这点真的是非常的可喜

最后想说一下,新型电力系统和智能发电体系的稳定高效运行,前面已经讲过了,它绝对是依赖于有效的海量数据资源和适用于复杂系统的先进算法,完全要依赖于这两个,否则这个系统是玩不起来的。那么以 IoTDB 为代表的这种新型时序数据库,它是我们的过程数据能够充分资源化的核心工具。资源化,数据不是资源,对吧?大家知道,你只有能够访问,能够查询,而且它是准确的,才是资源,对吧?地下的煤它不是资源,开采出来,它才是资源,一个道理。所以说它是资源化非常核心的工具,而且它在逐步地承载更多的平台职责,刚才 1.3 的发布也体现了这一点。所以它的快速演进,我想将有力推动包括智能发电在内新型电力系统的发展进步

好,我今天的分享到此结束,谢谢大家!

可加欧欧获取大会相关PPT

微信号:apache_iotdb