一种基于故障树分析的风力发电机组备品备件需求预测方法与流程

文档序号:11678229阅读:392来源:国知局
一种基于故障树分析的风力发电机组备品备件需求预测方法与流程
本发明涉及风力发电机故障诊断领域,特别涉及变速变桨距风力发电机组的备品备件问题。
背景技术
:风能作为一种绿色无污染、可再生的新能源,对于解决环境污染和能源危机具有重要的意义。近些年来,风电转换技术在世界范围内获得快速发展,风力发电领域异军突起。截止2016年底,风力发电机组装机总容量达到486749兆瓦,其中中国占比高达34.66%,位列世界第一。风力发电机组作为一种新兴产业的新型设备,在备品备件的需求上也呈现出新的特点:备品备件种类多、需求数量大,备品备件通用性不强、采购周期长,备品备件缺货损失大以及备品备件库存成本高等等。对于风场业主或者第三方服务公司,备品备件费用投入已经成为风力发电机组运维费用的重要部分。备品备件需求预测分析与故障预警同样,能够极大地降低风电机组停机事故发生的风险,同时还可以减少备品备件过量带来的资源浪费,提高用户备件使用效率,减少资金占压。针对备品备件需求预测问题,国内风力发电行业普遍使用的技术手段仍旧是传统的经验总结、直觉预测的方法。但这种方法存在很大的主观性和不确定性,季节气候、风场地理位置以及风力发电机组生产厂商等因素的变化都会对备品备件需求产生巨大影响。于是往往出现直观经验与实际情况不符的情况,或者造成库存管理成本增高资源浪费,或者造成故障部件更换不及时生产效率降低,最终都将会导致企业发电利润受损。技术实现要素:为了克服现有风力发电机组备品备件需求预测分析方法结果不准确的问题,本发明提供一种基于故障树分析的风力发电机组备品备件需求预测方法。本发明解决其技术问题所采用的技术方案是:一种基于故障树分析的风力发电机组备品备件需求预测方法,包括以下步骤:(1)确定风力发电机组故障表象,利用树形图以及逻辑符号将故障表象与故障原因抽象描述,建立风力发电机组故障树抽象模型;(2)根据风力发电机组的scada历史故障记录数据,统计分析并得到故障树中各个底事件所对应部件的日化年故障概率;(3)利用simulink平台搭建故障树仿真模型并对顶事件的布尔函数表达式进行化简,该步骤包括以下子步骤:(3.1)确定字符型数据与数值型数据的编码转码方式,以实现simulink平台上的字符运算功能;(3.2)确定总线上数值型数据的传输协议,采用数据包分时发送方式,将底层数据向顶层传输;(3.3)利用simulink中matlabfunction模块编写字符串操作子函数;所述字符串操作子函数包括字符串接收、发送、拼接比较、相乘以及实现布尔吸收律等子函数;(3.4)依据布尔函数结合律、分配律、吸收律、幂等律运算规则,调用字符串操作子函数,得到实现“与”“或”抽象逻辑关系运算的化简函数;(3.5)将化简函数封装成控件,通过调用控件实现风力发电机组故障树仿真模型的可视化效果,并完成对顶事件的布尔函数表达式的化简操作;(3.6)定义底事件的字符标号,依据风力发电机组故障树抽象模型,在simulink数值仿真平台上搭建故障树仿真模型,利用封装好的控件进行字符仿真运算,实现故障树顶事件的布尔表达式化简操作;(4)根据风力发电机组故障树的顶事件的布尔表达式的化简结果,求取故障树最小割集;(5)依据风力发电机组的故障树最小割集,编写计算各个底事件的概率重要度、关键重要度指标的数值运算子函数,该子函数以故障树最小割集和各个底事件的日化年故障概率作为输入;(6)利用matlab的gui功能,开发人机交互界面,用户输入各个底事件的日化年故障概率,并调用数值运算子函数计算各个底事件的概率重要度、关键重要度指标,最终将各个底事件的概率重要度、关键重要度指标显示在人机交互界面上;(7)根据历史故障数据,结合各个底事件的概率重要度和关键重要度指标,计算未来阶段各个部件的备品备件的数目。进一步地,步骤6得到备品备件的数目后,根据各个部件的成本,得到下一阶段备品备件投入总金额;或者在给定的投入总金额条件下,根据各个底事件的概率重要度和关键重要度指标分配各个部件的备品备件的资金投入。进一步地,预测下一阶段备品备件投入总金额的公式为:其中,m:某阶段备品备件资金预算,pi:日化年故障率,d:下一阶段天数,ci:底事件xi对应部件的成本。进一步地,步骤2中所述日化年故障概率公式为:其中,pi:底事件xi的日化年发生频率,即底事件xi对应部件的日化年故障率,某一年中,底事件xi发生的次数。本发明的有益效果是:本发明提供了一种基于风力发电机组故障树、模型参数可调、适应不同厂商产品差别、适应不同工况的备品备件需求预测方法,细化风力发电机组故障原因,并结合专家知识经验与历史数据分析结果,计算不同部件备品备件需求预测值,提高备件使用效率,降低库存成本,以达到风力发电企业降低运维费用的目标。附图说明图1是故障树抽象模型示意图;图2是字符串发送子函数程序框图;图3是字符串接收子函数程序框图;图4是字符串拼接比较子函数程序框图;图5是字符串相乘子函数程序框图;图6是布尔吸收律化简子函数程序框图;图7是整体函数程序框架图;图8是二输入“与”逻辑运算函数所需调用子函数;图9是二输入“或”逻辑运算函数所需调用子函数;图10是二输入“与”逻辑运算函数控件外观图;图11是二输入“或”逻辑运算函数控件外观图;图12是二输入“与”逻辑运算函数控件内部结构图;图13是二输入“或”逻辑运算函数控件内部结构图;图14是四输入“与”逻辑运算函数控件外观图;图15是四输入“与”逻辑运算函数控件内部结构图;图16是显示模块函数控件外观图;图17是显示模块函数控件内部结构图;图18是风力发电机组某一故障树抽象模型;图19是风力发电机组某故障树抽象模型对应的仿真模型;图20是仿真运行结果示意图;图21是matlab人机交互(gui)开发工具;图22是人机交互界面开发函数示意图;图23是“自动解缆故障报警”故障树仿真模型;图24是“自动解缆故障报警”故障树人机交互界面;图25是“自动解缆故障报警”故障树仿真结果;图26是“自动解缆故障报警”底事件重要度计算结果。具体实施方式下面结合附图和具体实施例对本发明作进一步详细说明。本发明提供的一种基于故障树分析的备品备件需求预测方法,包括下述步骤:步骤1,确定故障表象与相应的故障原因,进行逻辑结构分析,建立风力发电机组的抽象故障树模型,可由类似图1所示的树型图表示。图1中,xi:故障树底事件,位于故障树底端,简称底事件,即不同故障原因的字符代号;mi:故障树中间事件,位于底事件与顶事件之间,简称中间事件,即故障原因引发的不同中间现象的字符代号;t:故障树顶事件,位于故障树顶端,简称顶事件,即故障原因最终引发的故障表象的字符代号;逻辑门:故障树中,用于表示各个事件之间关系的符号,常用逻辑门如下表:以上工作可以通过总结现场工程师经验和相关技术手册资料的方式得到,并利用visio等软件工具,将某一具体的故障表象与相应的故障原因抽象为故障树的逻辑结构图。步骤2,根据风力发电机组的scada故障数据记录,得到所有故障树底事件发生的概率,并且计算出各个底事件所对应部件的日化年故障概率。步骤1得到的风力发电机某一故障的抽象逻辑模型,包含有描述故障原因发生概率的参数,这些参数需要通过历史故障数据分析得到,对于一些无法通过数学工具计算得到的参数,可参考工程师经验知识获得。以年作为时间尺度,通过统计的方法得到某一底事件(故障原因)发生的概率,并求出该底事件对应的日化年故障概率,采用公式如下:其中,pi:底事件xi的日化年发生频率,即底事件xi对应部件的日化年故障率;某一年中,底事件xi发生的次数。通过上述表达式可计算出,风力发电机组某个部件每一天发生故障的平均概率大小,作为该部件备件数目的输入参数。同样的,可以采用日化季度故障率、日化月故障率等。步骤3,根据步骤1得到的故障树逻辑结构图,通过计算机字符运算功能完成顶事件的布尔函数表达式化简工作。故障树中的“或门”和“与门”的计算方式与逻辑电路中的“或门”“与门”相同。将顶事件关于底事件的布尔表达式化简,需用到结合律、分配律、多余项定律和吸收律等,以图1所示故障树为例,化简过程如下:t=(x2∩x3)∪(x1∩x2∩x3)∪(x3∩x4)=(x2·x3)+(x1·x2·x3)+(x3·x4)=(x2·x3)+(x3·x4)利用matlab软件中的simulink数值仿真平台,可将风力发电机组故障树抽象模型转换成仿真模型,进而对风力发电机组故障树的顶事件的布尔函数表达式进行化简。由于simulink数值仿真平台的不同层级不同模块之间,无法直接传输字符类型数据,而仅仅允许数字类型数据传输,所以需要确定字符型数据与数值型数据的编码转码方式,例如可以借助ascii表将字符类型数据编码成相应的数字值,然后将该数字存入数组,对该数组处理后再将结果进行发送,最终将结果转码成对应的字符显示在屏幕上。同时,由于simulink平台无法传输数组,于是需要将数组中的元素合并为一个数字进行发送。另外simulink数值仿真平台限制了数值类型数据的最大位长,所以考虑将位长过长的数字拆分,人为确定传输协议后,采用数据包分时发送的方式。利用simulink中matlabfunction模块编写字符串操作子函数,包括字符串接收子函数、发送子函数、拼接子函数、比较子函数、相乘子函数以及实现布尔吸收律的子函数。将风力发电机组故障树顶事件的布尔函数表达式转化为字符串,并利用字符串操作函数,实现该布尔函数的化简。而相应的“与门”、“或门”的抽象逻辑关系运算函数,是由字符串接收子函数、发送子函数、拼接子函数、比较子函数、相乘子函数以及实现布尔吸收律子函数组合而成。字符串发送子函数的程序框图如图2所示。由于数据包采用分时发送的方式,所以字符串发送子函数需要将字符串的每个字符编码成对应的ascii数字,于是字符串对应的编码结果为一个数值型数组r;然后再将数组r分割成小数组cell,每个cell中包含n个元素;每个cell数组的元素需合并为一个数字d,并且该数字位长低于simulink规定的上限;根据数组r和人为选定的n的大小,计算出cell数组的个数,即为数据包package的总个数s(需要注意的是最后一个cell数组的元素个数可能少于n个);每个package中包含两个内容,cell数组(数据包package)总个数s以及当前cell数组对应的数字d;另外变量n用于判断package是否全部发送完毕。字符串接收子函数程序框图如图3所示,字符串接收子函数中各个字符变量与发送子函数中的字符变量含义相同。字符串拼接比较子函数主要用于二输入的“或”逻辑运算,旨在于将接收到的两个输入字符串组合,并剔除两个字符串中重复的字符子串,其程序框图如图4所示。字符串相乘子函数需要使用matlab函数库中的expand();sym();char();函数。对于二输入“与”逻辑运算,首先利用sym();将接收到的两个字符串类型数据转换成sym类型数据,然后利用expand();函数实现二者的相乘运算,然后利用char();函数将sym类型的结果转换成字符串。但需要注意的是,结果字符串中包含无用的空格字符和幂次符号,因此结果字符串不能直接用于后续处理。程序框图如图5所示。布尔吸收律化简子函数,该子函数的目的在于,依据布尔吸收律,将“与”“或”逻辑关系运算后的结果进行化简,程序框图如图6所示。利用上述主要子函数,可以实现二输入“或”、“与”逻辑运算,同时可将顶事件的布尔函数化简结果显示在命令窗口,具体程序框架图如图7所示。“与”、“或”逻辑运算函数的框架相同,如图7所示,区别仅在于框架中使用了不同的“逻辑运算函数”。二输入“与”、二输入“或”逻辑运算函数的实现需要调用上文提到的字符串操作子函数,两种运算函数需调用的子函数分别如下图8和图9所示。将上述二输入“与”、二输入“或”逻辑关系运算函数封装成控件,如图10和图11所示,控件内部结构如图12和图13所示。对于多输入的“与”、多输入“或”逻辑关系运算函数,可以利用上述的二输入“与”和二输入“或”逻辑关系运算函数得到。例如一个四输入的“与”逻辑关系运算函数控件,便可由两个二输入“与”逻辑关系运算函数控件搭建而成,控件如图14所示,内部结构如图15所示。图16和图17是能够将顶事件的布尔函数表达式化简结果显示在命令窗口的控件,图16是控件外观图,图17是内部结构图。对于风力发电机组的某一故障树抽象模型,如图18所示,首先需定义各个底事件的字符标号,然后利用多输入“与”、多输入“或”逻辑关系运算函数控件,显示模块控件以及数据传输总线,在simulink仿真平台上,搭建该故障树抽象模型所对应的仿真模型,如图19所示。在simulink中运行图19所示的mdl文件,可以在命令窗口得到该故障树顶事件的布尔函数表达式的化简结果,如图20所示。其中re代表了最终的结果,a、b、c、d、e为各个底事件的字符标号。步骤4,根据步骤3得到的顶事件布尔表达式结果,可以得到故障树的所有最小割集。风力发电机组故障树的顶事件的布尔函数表达式化简结果中的所有加和项即为该故障树的最小割集的总和。例如,针对图20所示的结果,可以知道该故障树的最小割集为{d,e}、{a,e}、{b,e}、{c,e}步骤5,通过步骤4可以得到故障树的所有最小割集,假设有k个最小割集,每个最小集合用ki表示,于是而顶事件可由最小集合表示为一般的,故障树的最小割集是相容关系,因此计算顶事件发生概率采用相容事件概率公式如下:其中t:顶事件,xi:底事件;g(t):顶事件发生概率的表达式,是关于qi的显式表达式;p(ki):最小集合ki发生的概率,由于底事件相互独立,p(ki,kj):最小集合ki和kj同时发生的概率,然后需要计算各个底事件的概率重要度。当底事件xi发生的概率发生变化时,会引起顶事件发生概率的变化,而概率重要度则用以衡量变化程度的大小,即顶事件对底事件的敏感程度,公式为:其中t:顶事件,xi:底事件;g(xi):底事件发生概率的表达式,qi:底事件的发生概率;g(t):顶事件发生概率的表达式,是关于qi的显式表达式;最后计算得到底事件xi的关键重要度,该指标旨在从顶事件对底事件的敏感度和该事件自身发生概率大小,这两个角度同时衡量底事件的重要程度,公式为:将概率重要度公式带入,可以得到关键重要度与概率重要度的关系:从关键重要度可以看出,改善一个已经比较可靠的部件,比改善一个尚不太可靠的部件要难得多。同时当顶事件发生时,有理由首先怀疑故障原因是关键重要度更大的部件。步骤6,利用matlab的gui工具箱,开发人机交互界面如图21所示,相应的程序开发代码如图22所示。步骤7,根据底事件的重要度水平以及可用于备品备件的资金总额,计算各个部件备件数目。当资金预算充足、库存空间足够且不考虑存储和运输等其他因素影响时,可以利用各个部件的日化年故障率(或者日化季度故障率等),不断规划未来一个阶段的备品备件资金预算总额。同时,随着时间的推移,可以不断更新历史故障数据,相应地调整日化故障概率以及备品备件下一阶段的周期长短,以动态规划预算投入。其中m:某阶段备品备件资金预算,pi:日化年故障率,d:下一阶段天数,ci:底事件xi对应部件的成本;不论备品备件预算金额根据历史数据获得,或者根据公司财政情况给定,均可以根据各个部件的关键重要度大小关系,得到备品备件需考虑的优先级顺序,并据此为不同部件分配恰当的备件可用金额,也便可以得到各个部件的备件数目。底事件xi对应的部件备件数目公式为:其中n(xi):底事件xi对应的部件备件数目,m:某阶段备品备件资金预算,ig(xi):底事件xi的关键重要度,ci:该部件的成本;当结果出现小数的情况,为了不超出资金预算,需要将备件结果进行向下取整操作。实施例本实施例对某风电股份有限公司生产的某款额定功率1.5mw大型风力发电机组出现的偏航角度超限故障,做备品备件需求预测分析。附图23是利用matlab软件的simulink平台,搭建风力发电机组自动解缆故障的故障树仿真模型。附图24是该故障树仿真模型的人机交互界面,其中“openmdlprofile”是执行打开仿真文件的操作,“closemdlprofile”是执行关闭仿真文件的操作,“executemdlprofile”是执行开始仿真的操作,即求解故障树最小割集操作,“calculateimportance”是执行计算各个底事件关键重要度的操作,在计算之前,需人为在“probabilityinput”栏中输入各个底事件的日化年故障概率。附图25是执行“executemdlprofile”操作后得到的结果。附图26为用户输入底事件的日化年故障概率后,计算得到的各个底事件的关键重要度的结果。程序中首先为不同底事件赋予不同的字符代号,如下表所示。底事件含义字符代码偏航电机n损坏a偏航大齿圈损坏b前轴承n损坏c后轴承n损坏d限位开关凸轮计数器损坏e然后借助simulink仿真程序,可以得到该故障树的最小割集为:{a,e},{b,e},{c,e},{d,e}分析2015年某风场该型号风机的故障数据记录,并结合相容事件概率公式得到最终各个底事件的概率重要度和关键重要度,相应的数据如下表所示字符代码日化年故障概率概率重要度关键重要度资金分配比重a0.0360.0023660.203210.43%b0.00150.0022840.0081740.42%c0.0820.0024850.486024.95%d0.0440.0023580.250412.86%e0.00270.1553151.34%由结果可知,限位开关凸轮计数器是最为重要的部件。这是由于在实施例故障树结构特殊,当凸轮计数器部件损坏,并触发了极限报警信号,那么只要偏航驱动部分出现某个小故障,也同样会导致顶事件的发生。同时,可以从该故障树实施例的最小割集看出,底事件e同时出现在所有的最小割集中,因此该部件的位置最为关键,所以即使该部件故障概率很低,其重要度也很高。而同属于偏航驱动部分的部件(偏航电机、偏航大齿圈、前轴承和后轴承),他们的关系是平级关系(或门),于是故障概率大的部件,相应的重要度更大。然后可以根据备品备件投入金额预算,并结合各部件成本,以及故障次数,合理分配购买各个部件备件的金额。本发明不仅局限于上述具体实施方式,本领域一般技术人员根据本发明公开的内容,可以采用其它多种具体实施方案实施本发明。因此,凡是采用本发明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1