快速开发光伏电站数字孪生运维系统——实践类

项目背景

在碳达峰和碳中和的大背景下,全球各个国家对可持续能源的重视,光伏发电以其分布广发、安装灵活、清洁可持续等优点,已经成为主要的新能源生产方式之一。光伏电站一旦建设完成投入生产,就会进入长达20年以上的运维阶段,因此高效便捷的运维方式对于提高运维效率、降低运维过程中成本和风险就变得极为重要。

数字孪生技术通过各类传感器及联网设备,可以实时感知光伏电站的各项运行状态,通过经验规则及数据智能(大数据分析)方式及时检测出设备异常,第一时间通知运维人员进行故障处理以降低更大故障的发生,提高电站的发电效率,进而提升电站整体收益。3D全场景模型应用往往可以提升大屏监控的效率及汇报展示的效果,因此3D应用系统常常会作为数字孪生系统的重要组成,与实时的核心数据联动,以清晰易懂的形式展示在3D模型上,帮助客户更好理解当前系统的运行状态。

在开发光伏电站数字孪生系统过程中,需要涉及物联网、孪生模型构建、实时数据计算、数据智能、3D模型渲染及数据联动等多项复杂的工作,阿里云物联网平台及其IoT孪生引擎增值服务提供了开发数字孪生系统的多种核心功能,利用这些功能开发者可快速构建出符合自身业务特性的数字孪生系统。本文重点介绍如何从零开始构建出光伏电站数字孪生系统的详细步骤。

主要流程

准备阶段

梳理业务流程

所有的数字化系统都是为了特定业务目的而开发的,因此系统全面地梳理整个业务系统的运行流程、系统构成及特定规则等是构建数字孪生系统的核心基础。在此案例中,我们整理的业务架构图如下(发电阵列架构组成都一样,图上B区发电阵列省略了PV与组件):

整个光伏电站由四大部分组成:

  1. 光伏发电系统:由两个发电阵列(A和B)及气象仪组成,主要将光能转化成电能,是整个运维系统监控的核心。发电阵列是一个逻辑管理单元,是由下面多个逆变器组合而成,每个逆变器下又由多个PV组串构成,每个PV组串下面连接多个光伏组件;气象仪提供实时气象测量数据,辅助判断当前发电效率是否正常。
  2. 电器自用:光伏发电系统发的电首先给该集团内部的各种工厂设备及商用电器使用,优先保证电力的自给自足,这里面主要关心每天、每月及年度的电力使用量,取计量电表的数据。
  3. 电力储能站:光伏发电系统发的电如果自用有盈余,白天的时候可以将多余电力存入储能站,以便晚上无法发电时由储能站向自用的电器设备供电。储能站电表和多个主控组成,每个主控下又由多个电池堆组成,为了简化系统说明,我们只关注储能站的电表数据。
  4. 余电并网:光伏发电系统供给电器自用及储能站之后,如果还有盈余,则可以通过并网柜将多余的电量输送到电网中售卖以获得额外收入,为了简化系统说明,我们只关注余电并网中电表数据,以了解某个时间段内售卖给电网的电量。

确定系统目标

在光伏电站数字孪生运维系统建设完成之后,会通过实时采集各个设备上传的数据,并通过对历史数据比对、横向设备数据比对、数据实时计算、数据智能分析等方式,可以向客户提供:

  1. 系统状态实时感知,这是最基础的能力。如组件级、组串级、逆变器级、阵列级、电站级的实时发电量,通过实时计算获取到当日、当月及年度累计发电量;集团内电量的使用情况、储能站的充放电及输入到并网系统中的电量等。
  2. 发电系统异常及时感知及处理,以缩短故障处理时间,提高整个系统的发电效率。如逆变器过压过流异常、光伏组件的发电效率异常等,这里除了常规的经验规则阈值方法,还可以通过深度学习算法对历史数据进行训练学习,生成光伏发电领域的智能算法模型,通过对采集的数据进行智能分析来判断异常状态,如I-V曲线算法。
  3. 月度发电量预测,便于根据预测的发电量对用电进行合理规划。这个可以通过天气预报数据、历史发电数据、当前发电系统的状态等多维度数据,使用智能算法进行预测。

为了简化说明,本文只针对系统状态实时感知异常感知进行演示,以此作为整个系统建设完成后的目标。包括:

1.系统状态的实时数据通过3D模型中点击特定区域展示出来,包括:

  • PV组串:实时电流、实时电压、实时功率(实时计算而来)等时序数据,也包括厂商、型号、倾角、方位角等固定的静态数据。

  • 逆变器:安装区域(静态数据)、型号(静态数据)、版本(静态数据)、实时电压(实时计算获取,各PV组串累加)、实时电流(实时计算获取,下属PV的最大电流值)、实时功率(实时计算获取,实时电压*实时电流)、交流电压(U、V、W)、交流电流(U、V、W)、交流功率(U、V、W,实时计算获取,实时电压*实时电流)、IGBT内芯温度(时序数据)、当天发电量(实时计算,累加)、当月发电量(实时计算,累加)、年度发电量(实时计算,累加)。

  • 发电阵列及发电系统:当日、当月及年度累计发电量,这些都是通过下属的逆变器数据实时计算获取。

  • 集团自用电表/储能站电表/余电并网电表/气象仪:为了简化说明,全部采用静态数据,实际构建系统时需要获取实时数据。

2.系统异常分析采用简单的规则方式,对以下两种情况进行告警,并在3D模型上实时提示:

  • 逆变器IGBT温度过高,当温度大于120°时进行告警,并提示运维人员处理建议:1.检查安装位置是否符合要求。2.尝试降低周围环境温度。3.关闭逆变器5分钟后重新启动。

  • 逆变器直流过压,当电流超过16A时进行告警,并提示运维人员处理建议:检查光伏组串的串联配置是否过多,导致开路电压高于逆变器最大输入电压。若属此情况,尝试减少组串的数量,使组串开路电压降至逆变器规格范围以内。

需要注意的是,系统告警后除了在3D模型上进行展示提醒外,往往还会通过电话、短信或邮件等方式通知到运维人员进行及时处理,对于通知能力的集成可以通过物联网平台的事件响应服务(服务链接:什么是事件响应_物联网平台-阿里云帮助中心)完成。

整理各设备物模型

业务流程梳理完成,并且确定好了系统目标,接下来需要对相关的设备进行物模型的定义,即每个设备的静态属性(属性值不会变化,如厂商、型号等)有哪些,会实时上报哪些数据及上报频率(这些为时序属性),还有哪些数据(这些数据成为虚拟属性)是通过上报的数据进行实时计算获取到的,如果是通过实时计算,计算的规则是什么等等。本文中为了简化开发,我们仅对光伏组件、逆变器、发电阵列、电站气象仪、光伏发电站5个部分进行物模型的梳理说明,详情信息如下所示:

光伏组件

属性类型

属性名称

属性单位

数据类型

属性范围

上报间隔/规则

静态属性

厂商

-

string

AlibabaCloud

N/A

静态属性

型号

-

string

ACYQ2022-S2

N/A

静态属性

最大功率

W

int

365

N/A

静态属性

倾角

°

int

0

N/A

静态属性

方位角

°

int

180

N/A

静态属性

优化器配置

-

bool

Y,N

N/A

时序属性

实时电流

A

float

1分钟

时序属性

实时电压

V

float

1分钟

虚拟属性

实时功率

W

float

1分钟

逆变器

属性类型

属性名称

属性单位

数据类型

属性范围

上报间隔/规则

静态属性

SN

-

string

ACYQ202211001

N/A

静态属性

型号

-

string

ACYQ10

N/A

静态属性

所属电站

-

string

A区/B区

N/A

静态属性

国家标准

-

string

EN50549NL

N/A

静态属性

最大功率

W

float

110000

N/A

静态属性

逆变器版本

°

int

180

N/A

时序属性

设备在线

-

bool

true/false

1分钟

虚拟属性

实时功率

W

float

0-100000

PV1-PV20功率累加

虚拟属性

PV1-20电压

V

float

0-300

组件1到组件n累加

虚拟属性

PV1-20电流

A

float

0-300

组件1电流

虚拟属性

PV1-20功率

W

float

0-100000

PV电压*PV电流

时序属性

交流U电压

V

float

0-300

5分钟

时序属性

交流U电流

A

float

0-300

5分钟

时序属性

交流U频率

Hz

float

0-100

固定50Hz

虚拟属性

交流U功率

W

float

0-100000

交流U电压*交流U电流

时序属性

交流V电压

V

float

0-300

5分钟

时序属性

交流V电流

A

float

0-300

5分钟

时序属性

交流V频率

Hz

float

0-100

固定50Hz

虚拟属性

交流V功率

W

float

0-100000

交流U电压*交流U电流

时序属性

交流W电压

V

float

0-300

5分钟

时序属性

交流W电流

A

float

0-300

5分钟

时序属性

交流W频率

Hz

float

0-100

固定50Hz

虚拟属性

交流W功率

W

float

0-100000

交流U电压*交流U电流

时序属性

IGBT内芯温度

摄氏度

float

-20-200

1分钟

虚拟属性

当日发电量

kWh

float

0-1000000

1分钟

虚拟属性

当月发电量

kWh

float

0-1000000

当月所有天发电量累加,实时更新

虚拟属性

当年发电量

kWh

float

0-1000000

当年所有天发电量累加,实时更新

发电阵列

属性类型

属性名称

属性单位

数据类型

属性范围

上报间隔/规则

静态属性

阵列位置

-

string

N/A

N/A

静态属性

最大功率

W

float

10000000

N/A

虚拟属性

实时功率

W

float

0-10000000

下挂的逆变器实时功率累加

虚拟属性

当日发电量

kWh

float

0-1000000

下挂的逆变器当日发电量累加

虚拟属性

当月发电量

kWh

float

0-1000000

当月所有天发电量累加,实时更新

虚拟属性

当年发电量

kWh

float

0-1000000

当年所有天发电量累加,实时更新

电站气象仪

属性类型

属性名称

属性单位

数据类型

属性范围

上报间隔/规则

时序属性

直接辐射

W/㎡

int

0-10000000

60分钟

时序属性

散射辐射

W/㎡

int

0-10000000

60分钟

时序属性

日照时长

min

int

0-1440

10分钟

时序属性

温度

float

-50-70

60分钟

时序属性

湿度

%RH

int

0-100

6小时

时序属性

风向

°

int

0-360

60分钟

时序属性

风速

m/s

float

0-80

60分钟

时序属性

气压

hPa

float

900-1200

6小时

时序属性

雨量

mm

int

0-1000

60分钟

光伏发电站

属性类型

属性名称

属性单位

数据类型

属性范围

上报间隔/规则

虚拟属性

实时功率

kW

int

0-10000000

所有发电阵列实时功率累加

虚拟属性

当日发电量

kWh

float

0-1000000

所有发电阵列当日发电量累加

虚拟属性

当月发电量

kWh

float

0-1000000

当月所有天发电量累加,实时更新

虚拟属性

当年发电量

kWh

float

0-1000000

当年所有天发电量累加,实时更新

制作3D模型

整个光伏电站的实时状态展示及告警展示我们使用IoT孪生引擎的场景编辑器进行开发,需要根据电站的实际情况进行3D模型的制作,制作完成之后生成GLB或GLTF格式的文件导入到IoT孪生引擎中使用。我们准备的3D模型如下所示:

准备好3D模型后,我们就可以进入实际的系统开发阶段了。

开发阶段

基本概念

孪生空间整体的开发步骤,大致分成四步: 创建孪生空间、构建孪生体、配置数据源、管理孪生场景。

下面是后续操作会涉及到孪生引擎的一些核心概念。

概念

说明

孪生空间

孪生应用的顶层容器,包含应用信息、孪生实体图、数据源输入配置、3D模型资源及3D场景。

孪生实体图

简称“孪生体”,由多个和多层级的孪生节点组成,用于构建物理世界的业务场景、业务流程和业务模型。

孪生节点

组成孪生实体图的节点,用于映射真实设备及其物模型数据。

孪生体模板

可复用的孪生体结构,可选中孪生体中一个或多个孪生节点生成孪生体模板。孪生体模板中新孪生节点,会拷贝源孪生节点间的关系、物模型定义和孪生规则,且新孪生节点信息支持单独修改。

您可引用或拷贝孪生体模板到孪生实体图中使用,快速构建完整的业务流程和模型。

物模型定义

在孪生体和孪生体模板中,支持为孪生节点配置物模型属性。属性数据可来自物理设备的数据映射,也可由孪生规则运算得出。

数据源

孪生实体图的数据输入源,可使用数据映射功能,将物理设备上报的Topic数据和API数据源,处理并传递给目标孪生节点的物模型属性。

场景

孪生应用中与孪生实体图对应的3D交互页面,以3D模型形式展示孪生体实时业务状态。

您需自行上传3D模型资源至IoT孪生引擎工作台,来搭建场景。

组件

可视化组件,包含状态数据卡、仪表盘、进度图、图表和水位图,关联3D模型的模块和孪生节点的数据,用于展示孪生体实时数据、状态和告警信息。

前置准备

您需注册一个阿里云的账号,然后登录物联网平台,可以购买一个企业实例也可以先通过免费实例进行体验,免费实例也可进行demo体验。体验地址(需先登录阿里云账号):阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

创建孪生空间

创建孪生空间

在空间管理页面,点击“创建空间”按钮,输入空间名称,空间描述、空间坐标创建孪生空间,该空间包含孪生体、数据源及孪生场景,一个孪生空间可对应一个实际的项目。

构建孪生节点

在“孪生实体图”页面,点击“编辑孪生体”进行孪生体编辑器,通过右键“新建节点”或拖拽左上角孪生节点来添加新节点,用于构建孪生体节点关系结构。构建完成的孪生体用于描述客户的业务模型,后续数据源配置,孪生场景的搭建都是基于该孪生体模型进行。其中的节点可以和真实设备相对应,也可以是逻辑业务节点,我们按照在准备阶段梳理的业务流程创建对应的孪生节点。

添加物模型

我们按照准备阶段整理的各个设备物模型(光伏组件、逆变器、发电阵列、电站气象仪、光伏发电站),在对应的孪生节点上依次添加,如下图所示。

我们具体以逆变器_A1节点的实时发电量为例,按照以下方式创建属性,注意属性标识符我们后面会在配置数据映射时用到,其它属性按照前面表格描述的设备物模型逐一录入即可。

添加虚拟属性

对于各个设备虚拟属性,需要通过其他属性数据的计算得来,在IoT孪生引擎中通过孪生规则来实现,我们根据在准备阶段梳理的设备物模型,依次创建设备的孪生规则来构建虚拟属性。

节点运算规则分成两种类型:

  • 自身节点规则 :自身节点物模型属性数据的计算规则
  • 父子节点规则 :父子节点间物模型属性数据的计算规则

仍然以前面在逆变器_A1添加的powerGeneration属性为例,我们现在要计算日累计发电量,应该如何去做?先在逆变器_A1节点定义一个虚拟属性dayTotalPowerGeneration

dayTotalPowerGeneration的来源是自身规则,即dayTotalPowerGeneration=powerGeneration+dayTotalPowerGeneration 自身发电量的累加,我们按照如下的方式进行配置。即逆变器_A!节点的属性powerGeneration变化时,会触发该规则,进行累加输出回dayTotalPowerGeneration属性。

孪生模版

为更方便构建孪生实体,可选中孪生实体图中的节点生成孪生模板,会把选中节点的关系、物模型和规则都拷贝到模板中,然后再通过引用、拷贝模板的方式来构建孪生实体图。

在光伏电站场景中,逆变器、光伏组件都是需要复用创建的,因此我们都把第一个创建的孪生节点及其物模型通过创建模板的方式进行复用,以节省整个开发时间,操作步骤如下所述。

创建孪生模版

选中希望复用孪生节点,比如选择逆变器_A1和它的子节点,点击右键生成孪生模板。

通过模板构建孪生体

通过拖拽孪生模版(将模板拖拽到响应的节点下面),即可构建相同物模型、阶段运算规则的孪生体节点,简化配置的过程。例如本次我们通过模板导入的方式添加一组逆变器,将模板_逆变器拖拽到A区_发电阵列上即可,需要注意的是,拖拽后的节点名称需要按需金总重新编辑,比如逆变器_A2:

配置数据源

逆变器、光伏组件、电站气象仪三类设备实时上报的数据会先到物联网平台上,通过数据源配置将这三类设备的数据映射到孪生实体的具体节点属性上,以达到孪生实体实时感知物理设备状态的目的。

脚本配置

孪生实体与物理设备之间是解耦关系,可使用数据映射功能,将物理设备的原始数据映射到孪生实体的业务模型中,即孪生节点的物模型属性上。数据映射由以下3部分组成:

配置项

说明

数据源

数据源类型包含:

  • 设备Topic:指设备自定义Topic和物模型属性上报Topic。数据源作为脚本文件或输出文件的输入数据,其中自定义Topic数据是设备上报的原始数据格式,物模型属性上报Topic的数据格式。
  • API数据:指通过开放接口ImportDTData来触发数据映射配置,实现数据到孪生体的映射。

脚本文件

使用JavaScript语言编辑脚本,解析处理设备Topic的原始数据,最后输出JSON格式数据。文件大小不超过128 KB。

输出文件

使用规定的JSON数据格式,将设备Topic数据或通过脚本处理后的数据,映射到指定孪生节点的物模型属性上。文件大小不超过256 KB。

我们仍然以逆变器_A1的powerGeneration为例,配置一个设备,通过数据映射将其属性映射到逆变器_A1节点的powerGeneration属性,此处我们选择设备通过物模型上报,以及具体的设备和topic,如下图所示。

然后通过下面的destConfig将设备属性映射到孪生节点的具体属性,其中配置如下,iotId为逆变器_A1节点的节点id(点击节点详情即可看到),identifier为逆变器_A1节点的属性标识符,key为设备上报的物模型数据,设备上报的属性key为powerGeneration,由于需要从物模型的标准流转数据格式中解析到该key的值,所以完整的key为items\\.powerGeneration\\.value。

[
	{
		"identifier": "powerGeneration",
		"iotId": "sGTmVQUGWJxSAb2hEI5Mg6pa00",
		"key": "items\\.powerGeneration\\.value",
		"name": "逆变器A01"
	}
]

运行结果

我们通过气筒模拟器设备来进行数据模拟上报,其中模拟器选择的设备就是上一步我们在数据映射配置的设备,具体操作如下:

然后可以通过查看孪生节点的快照、历史数据、运行日志等来观察孪生体的运行情况,下图为逆变器_A1的实时发电量。

场景配置

场景是数字孪生方案中的展示及交互页面,以3D方式展示孪生模型中的实时数据、状态及告警信息。可在场景中关联孪生模型中的数据源,配置状态及告警,完成配置后可预览并发布页面,页面发布完成后可嵌入至业务系统中进行展示,我们这里新建一个光伏商业电站的场景进行配置。

场景管理

点击“场景管理”页面,创建一个名称为“光伏商业电站”的场景,描述可选填。

若关闭提示面板,可在场景列表,单击场景卡片,或单击卡片右下角的更多图标后单击进入编辑工作台,进入场景编辑工作台。

3D资源管理

场景当中依赖的3D资源在此处进行上传和管理,将准备阶段制作的光伏电站3D模型(gltf/glb类型)文件进行上传。

场景编辑器

进入场景编辑器后将前一步上传的模型拖拽到场景中,本模型不做样式调整,仅调整角度及缩放比例。

场景数据配置

在场景编辑器中,点击“数据配置”TAB,再点击组件面板“+”添加一个组件,在右侧面板中依次对组件进行命名(选择一个有业务含义的名字,如本图中“A区电站-1号逆变器”),选择该组件对应的3D文件MESH(可选择多个),再选择该组件关联的孪生节点,之后该孪生节点的物模型属性数据可作为基础数据配置不同的数据看板,如下图所示配置了5个数据看板(可根据看板偏好选择仪表盘、趋势图、水位图等样式)。

以前面演示的实时发电量和当日累计发电量为例,看一下这两个数据面板和趋势图的配置,针对实时发电量,我们选择逆变器_A1节点的powerGeneration属性,然后样式选择仪表盘,分别再填写展示名称和展示单位,最后选择不同数据范围对应的颜色样式即可。

同理按照如下方式构建趋势面板,当月累计发电量。

告警配置:如下图所示,点击编辑组件面板告警标示,新建一个告警,告警内容为在“准备阶段-确定系统目标”章节定义的告警内容,即IGBT内心片温度大于120度,触发告警,此处可以使用简单的条件表达式,也可以自定义复杂表达式。

这样当关联的数据超过所设定的阈值后就可以以告警图标显示出来,点击告警图标后可以显示具体的告警内容及维修建议。

按照上述数据配置步骤将其他需要在3D模型上展示的数据及告警依次进行配置完成即可。

场景分享&预览

在所有数据配置完成之后,点击场景编辑器右上角“预览”图标,查看配置是否正常。若所有配置符合预期,点击场景编辑器右上角“分享”图标将页面分享给其他用户,其他用户可直接通过链接URL和密码查看已经配置好的光伏电站数字孪生运维系统,比如接入到监控大屏或在展会时直接通过URL访问向客户进行演示。

结语

通过阅读本文,相信您已经了解了构建数字孪生系统的基本步骤以及如何使用阿里云IoT孪生引擎来开发数字孪生系统。如果您后续想要进一步了解IoT孪生引擎可以通过我们的官方网站进行查看,或者直接通过下面的钉钉二维码联系我们合作。

物联网平台产品介绍详情:https://www.aliyun.com/product/iot/iot_instc_public_cn
 


阿里云物联网平台客户交流群

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值