一种风电故障诊断知识库构建方法
技术领域
本申请属于知识库构建技术领域,具体涉及一种风电故障诊断知识库构建方法。
背景技术
风力发电利用风机将空气动能转化为电能,风力发电场的效益依赖于每台风机的发电效率和有效发电(开机)时间。因此,风力发电厂的运营要求尽可能地提高单机发电效率和延长开机时间,也就是需要尽可能地减少停机时间,提高开机时的发电效率。除了极端天气(飓风等)和常规维护要求的必要停机外,非预期的故障是造成停机的最大原因,如出现故障无法及时排查,等候维修所用零部件等情况,会造成有效发电时间的浪费,进而造成风电场损失。另外,有些故障虽然不需要停机,但是会造成发电效率降低,还有可能进一步引发更严重的故障。
相关技术中,风机故障诊断可以通过厂家提供的故障处理手册进行,故障处理手册作为一个风机故障诊断知识库,虽然故障处理手册在诊断过程中起到了重要的作用,但其往往难以完全覆盖大量随着运营过程产生的故障,同时,故障处理手册属于专家对风机构造和特性的理解和经验,因而对于一般使用者来说故障处理手册在可理解性方面可能存在不足。
此外,相关技术中,每台风机都装备了SCADA(Supervisory Control And DataAcquisition)系统,即数据采集与监视控制系统。SCADA会记录风机不同系统(机械、电气、油路、发电、环境等)、不同部位(叶片、主机、传动等)的各种实时测量值,以及根据预设的逻辑产生的事件(如“油压过低”这样的警报,如“开机”这样的状态),其数据项依风机厂家和型号不同,数量在一百到三百之间;采样频率一般为秒级,即每台风机每秒会产生一条具有上百个字段的记录。这些实时数据可作为故障诊断的依据,有助于保障风电故障诊断覆盖的全面性,在实际应用中,可以使用机器学习进行故障预测,基于机器学习建立风电故障诊断知识库。但是由于表现好的模型通常使用深度模型或集成模型,对一般使用者来讲,其可解释性方面存在不足,也难以完成推理。
发明内容
为至少在一定程度上克服相关技术中存在的问题,本申请提供一种风电故障诊断知识库构建方法,旨在通过故障诊断知识的具象化来满足使用者对故障诊断可理解性和可解释性的使用需求。
为实现以上目的,本申请采用如下技术方案:
本申请提供一种风电故障诊断知识库构建方法,所述方法包括:
利用预设本体构建工具构建风电故障知识本体;
获取风电故障的原生数据,根据数据的类型,采用相应的知识抽取策略进行知识抽取;
根据构建出的风电故障知识本体和抽取的知识生成风电故障诊断的知识图谱,并进行存储。
进一步地,所述利用预设本体构建工具构建风电故障知识本体,包括:
利用Protégé,从类、对象属性、数据属性和实例四方面构建风电故障知识本体。
进一步地,所述原生数据,包括:
SCADA风机数据、SCADA事件数据、风机故障运维记录表、故障处理手册以及与风机或事件相关的静态数据。
进一步地,所述根据数据的类型,采用对应的知识抽取策略进行知识抽取,包括:
对于所述SCADA风机数据和所述SCADA事件数据,采用Redis数据库对预设周期内的数据进行全量提取,并利用机器学习进行知识抽取;
对于所述风机故障运维记录表,直接读取并保存为结构化数据;以及
对于所述故障处理手册和所述静态数据,先进行数据的基本清洗,之后通过正则匹配的方式进行内容的结构化处理。
进一步地,所述利用机器学习进行知识抽取,包括:
根据全量提取的所述预设周期内的所述SCADA风机数据和所述SCADA事件数据,利用预设故障预测模型得到风电故障事件预测结果;以及
根据全量提取的所述预设周期内的所述SCADA事件数据,结合所述风机故障运维记录表,抽取大于或者等于预设发生频次的事件作为高频事件,然后将抽取的所述高频事件进行组合,利用预设关联规则算法产生关联规则,并利用预设的置信度和提升度进行所述关联规则的筛选。
进一步地,其中,所述故障预测模型是基于LightGBM算法构建得到的。
进一步地,其中,所述关联规则算法采用Apirori算法,所述置信度设置为大于0.5,所述提升度设置为大于1。
进一步地,其中,对于所述知识图谱的存储,包括:
将所述故障预测模型的输出结果存储于预设关系型数据库,以及将抽取的其它知识存储于图数据库。
进一步地,其中,所述关系型数据库采用Mysql数据库,所述图数据库采用Neo4j数据库。
进一步地,所述方法还包括:
根据抽取的知识,定期更新所述故障预测模型和所述关联规则,以及根据更新后的所述故障预测模型和所述关联规则更新所述知识图谱。
本申请采用以上技术方案,至少具备以下有益效果:
本申请通过构建风电故障知识本体,然后获取风电故障的原生数据,根据数据的类型,采用对应的知识抽取策略进行知识抽取,以此生成风电故障的知识图谱,并进行存储。由此,构建出风电故障诊断知识库,该知识库能实现故障诊断知识的具象化,进而可以满足使用者对故障诊断可理解性和可解释性的使用需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种风电故障诊断知识库构建方法的流程图;
图2是根据一示例性实施例示出的风电故障知识本体中类方面的主要考虑内容示意图;
图3是根据一示例性实施例示出的风电故障知识本体中对象属性方面的主要考虑内容示意图;
图4是根据一示例性实施例示出的风电故障知识本体中数据属性方面的主要考虑内容示意图;
图5是根据另一示例性实施例示出的一种风电故障诊断知识库构建方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
请参阅图1,图1是根据一示例性实施例示出的一种风电故障诊断知识库构建方法的流程图,如图1所示,该风电故障诊断知识库构建方法包括如下步骤:
步骤S101、利用预设本体构建工具构建风电故障知识本体;
步骤S102、获取风电故障的原生数据,根据数据的类型,采用相应的知识抽取策略进行知识抽取;
步骤S103、根据构建出的风电故障知识本体和抽取的知识生成风电故障诊断的知识图谱,并进行存储。
上述实施例方案通过构建风电故障知识本体,然后获取风电故障的原生数据,根据数据的类型,采用对应的知识抽取策略进行知识抽取,以此生成风电故障的知识图谱,并进行存储。由此,构建出风电故障诊断知识库,该知识库以知识图谱进行展示,能实现故障诊断知识的具象化,进而可以满足使用者对故障诊断可理解性和可解释性的使用需求。
对于步骤S101,在一个实施例中,所述利用预设本体构建工具构建风电故障知识本体,包括:利用Protégé,从类、对象属性、数据属性和实例四方面构建风电故障知识本体。
具体的,目前常见的专业领域或者行业性的知识图谱常用自顶向下的方式进行人工构建,相比于自下而上的知识图谱的构建,这种构建方式需要手动构建,但可用性强,并且需要构建者对这一行业领域的具有深刻认知。可选用的相关技术中的Protégé软件进行知识图谱的本体构建,并针对风电故障诊断这一具体问题以及相应的可用数据,通过Protégé软件,从Classes(类)、Object Properties(对象属性)、Data Properties(数据属性)和Individuals(实例)四个方面进行了风电故障知识本体的构建。关于风电故障知识本体中类、对象属性和数据属性三方面的主要考虑内容请参阅图2-4所示出的内容,其中,图2是根据一示例性实施例示出的风电故障知识本体中类方面的主要考虑内容示意图,图3是根据一示例性实施例示出的风电故障知识本体中对象属性方面的主要考虑内容示意图,图4是根据一示例性实施例示出的风电故障知识本体中数据属性方面的主要考虑内容示意图。
对于步骤S102,在一个实施例中,所述原生数据,包括:SCADA风机数据、SCADA事件数据、风机故障运维记录表、故障处理手册以及与风机或事件相关的静态数据。
具体的,SCADA风机数据可以为年份跨越多年并且实时更新的秒级数据,该数据可以存储于云平台,有开放的API用于数据获取,数据内容可以记录风机不同系统(比如:机械、电气、油路、发电、环境等)、不同部位(比如:叶片、主机、传动等)的各种实时测量值。SCADA事件数据,能与SCADA风机数据对应,该数据同样可以存储于云平台,有开放的API用于数据获取,包含与风机相关的各种事件,比如:“油压过低”等警报,比如:“开机”等状态,又比如:“变频器故障”等故障。风机故障运维记录表,由风场工作人员每日统计得到,可以包括故障的风机号、故障事件、故障时间、处理方式、故障影响,能清晰真实地反映风机故障情况。故障处理手册,全面涵盖了常见风电领域汇总的故障事件,并进行故障严重程度评级、原因分析和常见处理方法总结。与风机、事件有关的静态数据,比如:风场、风机机型、事件所属的部件构成、事件所属的系统构成等。
在实际应用中,在知识图谱框架下,可以实现上述五种不同类型数据具象化综合于一体,同时,通过上述五种原生数据,也有助于保障风电故障诊断覆盖的全面性。
对于步骤S102,在一个实施例中,所述根据数据的类型,采用对应的知识抽取策略进行知识抽取,包括:
对于所述SCADA风机数据和所述SCADA事件数据,采用Redis数据库对预设周期内的数据进行全量提取,并利用机器学习进行知识抽取;
对于所述风机故障运维记录表,直接读取并保存为结构化数据;以及
对于所述故障处理手册和所述静态数据,先进行数据的基本清洗,之后通过正则匹配的方式进行内容的结构化处理。
针对不同类型的数据,采取了不同的知识抽取策略,具体的,对于通过API获取的云平台的SCADA风机数据和SCADA事件数据,由于规模较大,因此并未直接采用,而是采用Redis数据库进行数据短期内(比如,14天)的全量数据提取,然后利用机器学习进行处理。对于持续生成的风机故障运维记录表,由于其源文件为常规的excel文件,可以直接读取并保存为结构化数据,来实现知识抽取。对于短期内容不变的故障处理手册和静态数据,先通过人工校正和编程处理进行数据的基本清洗,之后直接通过正则匹配的方式进行内容的结构化处理,来实现知识抽取。
通过上述实施例方案,在进行知识抽取时,进一步利用了机器学习,有助于使本申请所构建的风电故障诊断知识库在风电故障诊断时还具有可预测性。
在一个实施例中,所述利用机器学习进行知识抽取,包括:
根据全量提取的所述预设周期内的所述SCADA风机数据和所述SCADA事件数据,利用预设故障预测模型得到风电故障事件预测结果;以及
根据全量提取的所述预设周期内的所述SCADA事件数据,结合所述风机故障运维记录表,抽取大于或者等于预设发生频次的事件作为高频事件,然后将抽取的所述高频事件进行组合,利用预设关联规则算法产生关联规则,并利用预设的置信度和提升度进行所述关联规则的筛选。
具体的,风电故障的预测模型是根据云平台的SCADA风机数据和SCADA事件数据建立起来的针对风机故障的预测模型,该模型可采用LightGBM算法构建得到,从线性趋势、波变换、分布描述、异常点和检验统计量等几个角度出发,进行了特征的构建,并通过主成分分析进行数据降维,减少内存占用和运算算力消耗,提高了工程部署后运行效率。
针对SCADA事件数据与风机故障运维记录表,抽取其中的高频事件,如发生频次大于千分之一的事件,然后进行高频事件的组合,可以借助Apirori算法产生关联规则,并利用置信度(Confidence)、提升度(Lift)进行关联规则的筛选,可以考虑置信度大于0.5而提升度大于1的规则。
知识图谱中包含故障运维记录的事件属性、事件原因和处理措施。故障预测输出的为某特定事件是否发生的可能性,而关联规则记录了根据历史数据总结的事件与通过故障运维记录的关联性。根据已过滤的关联规则,本申请将事件与故障运维中的记录进行关联,最终推理出对于预测的故障的原因分析和处理措施推荐。
对于步骤S103,在一个实施例中,其中,对于所述知识图谱的存储,包括:
将所述故障预测模型的输出结果存储于预设关系型数据库,以及将抽取的其它知识存储于图数据库。
进一步地,其中,所述关系型数据库采用Mysql数据库,所述图数据库采用Neo4j数据库。
由于本申请知识图谱的内容多样,且数据性质存在差异,采用了关系型数据库和图数据库对知识图谱进行存储。具体的,以关系型数据库采用Mysql,图数据库采用Neo4j为例,本申请中Mysql用于存储故障预测模型的输出结果,由于故障预测模型的结果存储频率较高,融入Neo4j会产生较多的值插入,拖累整个图数据库的性能,并且实际应用中预测结果还与风电监控平台存在很深的交互,因此进行单独存储,用作图数据库的内容补足。Neo4j作为目前使用最广泛的图数据库,其本质为一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图),这使得它在基于图的查询和搜索方面具备天然的优势。而这和本知识图谱中的知识本体以及关联规则这类数据契合度非常高,因此除了预测模型的输出,其他抽取的知识均存储于Neo4j中。
请参阅图5,图5是根据另一示例性实施例示出的一种风电故障诊断知识库构建方法的流程图,如图5所示,该风电故障诊断知识库构建方法还包括如下步骤:
S104、根据抽取的知识,定期更新所述故障预测模型和所述关联规则,以及根据更新后的所述故障预测模型和所述关联规则更新所述知识图谱。
具体的,SCADA数据平台包含秒级的风机数据和相关事件记录,并可以通过API进行实时的故障预测和评估。由于API获取的原始数据为秒级的海量数据,因此最初模型的训练是离线进行的,之后通过Redis进行短期内(14天)全量的数据存储,然后借助Python编程调用已训练模型进行预测结果的输出和输入数据特征的保存,输入数据特征和预测结果均保存于Mysql中,保留的输入数据特征用于模型的定期更新。
知识图谱随着数据的积累和规则的变化会随之更新。预测模型的更新由于通过提前保存输入数据的特征,定期回溯更新;关联规则需要通过维修记录表和SCADA事件数据的更新来定期更新,具体主要包含高频事件的重新筛选、规则的提升度的重新计算、规则的置信度的重新计算、规则的重新过滤;知识本体的更新则可通过人为修正来实现。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”、“多”的含义是指至少两个。
应该理解,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者可能同时存在居中元件;当一个元件被称为“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件,此外,这里使用的“连接”可以包括无线连接;使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为:表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。