一种抽水蓄能电站控制软件在线故障诊断方法及系统的制作方法
【专利摘要】本发明公开了一种抽水蓄能电站控制软件在线故障诊断方法及系统,对于应用级软件故障,根据约束集判断前一个软件模块输出是否异常,一旦异常,确定引起故障的关键变量,同时转入相应的隔离处理;对于代码级软件故障,通过收集各软件模块入口相关运行数据,进行针对性的测试获取样本数据,对样本数据进行判定,找出引起故障的关键变量,一旦关键变量再次出现异常值,转入相应的隔离处理。本发明针对应用级软件故障和代码级软件故障的不同特点,分别采用约束集和布尔函数学习机制进行分析诊断,实现了故障识别、故障模块定位、故障隔离的全流程,有效提高了抽水蓄能电站控制软件的在线故障诊断效果,提高了抽水蓄能电站AGC/AVC控制功能的运行安全。
【专利说明】
一种抽水蓄能电站控制软件在线故障诊断方法及系统
技术领域
[0001]本发明属于电力系统技术领域,具体涉及一种抽水蓄能电站控制软件在线故障诊断方法及系统。
【背景技术】
[0002]抽水蓄能电站不仅具有调峰填谷的静态效益,还具有黑启动、调频调相、事故备用等多项动态效益,以其独特的优势在电网安全、稳定运行中发挥着重要作用。抽水蓄能电站AGC/AVC控制软件安全可靠运行是关键环节,然而即使在软件开发阶段采用非常规范和严格的方法来提高控制软件的可靠性和安全性,软件故障仍然难以避免。一旦软件发生失效,可能会给电网及电厂的安全、经济和设备等方面带来极大损失。另外,某些软件BUG很难复现,如果开发人员不能即时将产生BUG的现场保存下来形成测试用例,用于之后对该BUG进行测试,将给问题分析和解决造成很大的障碍。
[0003]基于以上问题,需要一种抽水蓄能电站控制软件在线故障诊断方法及系统,解决如何有效诊断软件产生故障的原因,以及把可能出现的故障与软件正常运行隔离开,使软件在完全修正前依然能执行某些关键任务,提高抽水蓄能电站自动运行控制的可靠性。
【发明内容】
[0004]针对上述问题,本发明提出一种抽水蓄能电站控制软件在线故障诊断方法及系统,对于应用级软件故障,根据约束集判断前一个软件模块输出是否异常,一旦异常,确定引起故障的关键变量,同时转入相应的隔离处理;对于代码级软件故障,通过收集各软件模块入口指定运行数据,进行针对性的测试获取样本数据,对样本数据进行判定,找出引起故障的关键变量,一旦关键变量再次出现异常值,转入相应的隔离处理。
[0005]实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
[0006]—种抽水蓄能电站控制软件在线故障诊断方法,包括以下步骤:
[0007]步骤1、在每个软件模块执行前,根据约束集判断前一个软件模块输出是否异常,并执行以下操作:
[0008]A:判断出前一个软件模块输出异常,确定引起故障的关键变量,同时转入相应的隔离处理;
[0009]B:判断出前一个软件模块输出未出现异常时,在每个软件模块执行前收集运行数据,一旦该软件模块发生异常,则由当前运行数据形成故障数据集合;
[0010]步骤2、根据故障数据集合,自动产生测试用例;根据测试结果对测试用例数据进行抽象,形成样本数据;
[0011]步骤3、对样本数据进行判定,找出引起故障的关键变量;
[0012]步骤4、再次执行步骤I的B操作时,当关键变量再次异常,转入相应的隔离处理。
[0013]所述步骤I中的约束集包括:出力平衡约束规则、出力约束规则、不可频繁穿越振动区约束规则、水头约束规则、频率约束规则、有功/无功出力与频率/电压相关性约束规贝1J、控制令变化限值约束规则、机组可运行区与机组实际出力相关约束规则,不同的软件模块配置不同的约束规则;所述的隔离处理包括:程序重新启动;忽略异常、继续执行或终止执行同时报警提示。
[0014]所述步骤I中运行数据包括:软件模块名、参数、相关全局变量名和值;所述的由当前运行数据形成故障数据集合包括:在当前运行数据左右区间按固定步长取值,产生测试用例,向左侧依次选取测试用例,当测试结果正常,则该测试用例构成故障数据区间的左边界;向右侧依次选取测试用例,当测试结果正常,则该测试用例构成故障数据区间的右边界,形成故障数据集合。
[0015]所述步骤2中根据故障数据集合,自动产生测试用例具体为:根据故障数据集合,分别在每个集合变量的故障数据区间内外取值,取值组合构成测试用例,从而自动产生测试用例;所述根据测试结果对测试用例数据进行抽象,形成样本数据具体为:根据测试结果对测试用例数据进行抽象,测试用例数据在故障数据区间内则取值为I,否则取值为O,形成样本数据;测试结果正常,该样本数据归入消极样本;测试结果异常,该样本数据归入积极样本。
[0016]所述步骤3对样本数据进行判定,找出引起故障的关键变量,具体为:通过布尔函数学习机制对样本数据进行判定,找出引起故障的关键变量。
[0017]所述步骤4中,隔离处理包括:程序重新启动、终止执行同时报警提示。
[0018]—种抽水蓄能电站控制软件在线故障诊断系统,包括约束集处理模块、运行数据收集模块、样本抽象模块、故障自动诊断模块和故障隔离模块;
[0019]所述约束集处理模块,插装到每个软件模块的入口点,用于在每个软件模块执行之前根据约束集判断前一个软件模块输出是否异常,一旦异常,确定引起故障的关键变量,同时转入相应的隔离处理;
[0020]所述运行数据收集模块,插装到每个软件模块的入口点,用于在每个软件模块执行之前记录软件模块名、参数和全局变量名和值,一旦程序运行出现故障,由当前运行数据形成故障数据集合;
[0021 ]所述样本抽象模块,用于根据故障数据集合,自动产生测试用例;根据测试结果对测试用例数据进行抽象,形成样本数据;
[0022]所述故障自动诊断模块,用于通过布尔函数学习机制自动分析样本数据,找到导致程序故障的若干关键变量;
[0023]所述故障隔离模块,插装到故障软件模块的入口点,用于一旦关键变量再次出现异常值,转入相应的隔离处理。
[0024]所述约束集处理模块中的约束集包括:出力平衡约束规则、出力约束规则、不可频繁穿越振动区约束规则、水头约束规则、频率约束规则、有功/无功出力与频率/电压相关性约束规则、控制令变化限值约束规则、机组可运行区与机组实际出力相关约束规则,不同的软件模块配置不同的约束规则;所述的隔离处理包括:程序重新启动;忽略异常、继续执行或终止执行同时报警提示隔离处理。
[0025]所述运行数据收集模块中形成故障数据集合,具体为:在当前运行数据左右区间按固定步长取值,产生测试用例,向左侧依次选取测试用例,当测试结果正常,则该测试用例构成故障数据区间的左边界;向右侧依次选取测试用例,当测试结果正常,则该测试用例构成故障数据区间的右边界,形成故障数据集合。
[0026]所述样本抽象模块中,根据故障数据集合,自动产生测试用例具体为:根据故障数据集合,分别在每个集合变量的故障数据区间内外取值,取值组合构成测试用例,从而自动产生测试用例;所述根据测试结果对测试用例数据进行抽象,形成样本数据具体为:根据测试结果对测试用例数据进行抽象,测试用例数据在故障数据区间内则取值为1,否则取值为O,形成样本数据;测试结果正常,该样本数据归入消极样本;测试结果异常,该样本数据归入积极样本;所述故障隔离模块中的相应的隔离处理具体为:程序重新启动、终止执行同时报警提示。
[0027]本发明的有益效果:
[0028]本发明提出一种抽水蓄能电站控制软件在线故障诊断方法及系统,针对应用级软件故障和代码级软件故障的不同特点,分别采用约束集和布尔函数学习机制进行分析诊断,实现了故障识别、故障模块定位、故障隔离的全流程,有效提高了抽水蓄能电站控制软件的在线故障诊断效果,提高了抽水蓄能电站AGC/AVC控制功能的运行安全,极大地促进了抽水蓄能电站控制软件在线分析诊断技术的实用化水平。
【附图说明】
[0029]图1是本发明的一种实施例中抽水蓄能电站控制软件在线故障诊断方法的实施步骤图。
[0030]图2是本发明的一种实施例中抽水蓄能电站控制软件的结构图。
[0031]图3是本发明的一种实施例中抽水蓄能电站控制软件在线故障诊断系统的结构示意图。
【具体实施方式】
[0032]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0033]下面结合附图对本发明的应用原理作详细的描述。
[0034]如图1所示,本发明的一种抽水蓄能电站控制软件在线故障诊断方法包括以下步骤:
[0035]I)在每个软件模块执行前根据约束集判断前一个软件模块输出是否异常,并进行以下操作:
[0036]A:当判定前一个软件模块的输出异常时,确定引起故障的关键变量,同时转入相应的隔离处理。
[0037]本发明的步骤I的A操作中,所述的确定引起故障的关键变量,具体为:直接通过前一个软件模块的输出(即变量)和约束集来确定。
[0038]约束集包括:出力平衡约束规则、出力约束规则(高低限值、变化梯度限值和不可运行区约束)、不可频繁穿越振动区约束规则、水头约束规则(高低限值和变化梯度限值)、频率约束规则、有功(无功)出力与频率(电压)相关性约束规则、控制令变化限值约束规则、机组可运行区与机组实际出力相关约束等约束规则。
[0039]不同的软件模块配置不同的约束规则。例如图2所示,本发明的一种抽水蓄能电站控制软件由数据采集模块、预处理模块、开停机模块、负荷分配模块和输出处理模块组成。预处理模块配置出力约束规则、水头约束规则、频率约束规则、控制令变化限值约束规则等基本输入数据约束规则。开停机模块、负荷分配模块配置控制令变化限值约束规则、机组可运行区与机组实际出力相关约束规则。输出处理模块配置出力平衡约束、有功(无功)出力与频率(电压)相关性约束规则。
[0040]本发明中的步骤I中的A操作中的隔离处理包括:程序重新启动;忽略异常、继续执行或终止执行同时报警提示。
[0041]例如,输入数据异常属暂态,可采用终止执行的隔离措施;输入数据异常属随机态,可采用程序重新启动的隔离措施;输入数据异常属稳态,可采用终止执行同时报警提示的隔离措施。
[0042]B判断出前一个软件模块输出未出现异常时,在每个软件模块执行前收集运行数据,一旦该软件模块发生异常,则由当前运行数据形成故障数据集合。
[0043]运行数据包括:软件模块名、参数和相关全局变量名和值。
[0044]软件模块发生异常包括:程序崩溃或程序进入死循环。
[0045]—旦该软件模块发生异常,在当前运行数据左右区间按固定步长取值,产生测试用例,向左侧依次选取测试用例,当测试结果正常,则该测试用例构成故障数据区间的左边界;向右侧依次选取测试用例,当测试结果正常,则该测试用例构成故障数据区间的右边界,形成故障数据集合。
[0046]2)根据故障数据集合,自动产生测试用例;根据测试结果对测试用例数据进行抽象,形成样本数据。
[0047]根据故障数据集合,分别在每个集合变量的故障数据区间内外取值,取值组合构成测试用例,从而自动产生测试用例。
[0048]根据测试结果对测试用例数据进行抽象,测试用例数据在故障数据区间内则取值为I,否则取值为O,形成样本数据。测试结果正常,该样本数据归入消极样本;测试结果异常,该样本数据归入积极样本。
[0049]3)对样本数据进行判定,找出引起故障的关键变量。
[0050]通过布尔函数学习机制对样本数据进行判定,找出引起故障的关键变量。
[0051]4)再次执行步骤I的B操作时,一旦关键变量再次异常,转入相应的隔离处理。
[0052]本发明中所述的再次执行步骤I的B操作时,一旦关键变量再次异常,具体为:当再次执行步骤I的B操作时,如果检测到运行数据中存在属于故障数据集合区间内的异常数据,则自动转入相应的隔离处理,从源头控制了故障。
[0053]隔离处理包括:程序重新启动;终止执行同时报警提示。
[0054]如图3所示,本发明的一种抽水蓄能电站控制软件在线故障诊断系统由约束集处理模块、运行数据收集模块、样本抽象模块、故障自动诊断模块和故障隔离模块等组成。
[0055]约束集处理模块,插装到每个软件模块的入口点,用于在每个软件模块执行之前根据约束集判断前一个软件模块输出是否异常,一旦异常,确定引起故障的关键变量,同时转入相应的隔离处理;
[0056]运行数据收集模块,插装到每个软件模块的入口点,用于在每个软件模块执行之前记录软件模块名、参数和全局变量名和值,一旦程序运行出现故障,由当前运行数据形成故障数据集合;
[0057]样本抽象模块,用于根据故障数据集合,自动产生测试用例;根据测试结果对测试用例数据进行抽象,形成样本数据;
[0058]故障自动诊断模块,用于通过布尔函数学习机制自动分析样本数据,找到导致程序故障的若干关键变量;
[0059]故障隔离模块,插装到故障软件模块的入口点,用于一旦关键变量再次出现异常值,转入相应的隔离处理。
[0060]以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
【主权项】
1.一种抽水蓄能电站控制软件在线故障诊断方法,其特征在于,包括以下步骤: 步骤1、在每个软件模块执行前,根据约束集判断前一个软件模块输出是否异常,并执行以下操作: A:判断出前一个软件模块输出异常,确定引起故障的关键变量,同时转入相应的隔离处理; B:判断出前一个软件模块输出未出现异常,在每个软件模块执行前收集运行数据,一旦该软件模块发生异常,则由当前运行数据形成故障数据集合; 步骤2、根据故障数据集合,自动产生测试用例;根据测试结果对测试用例数据进行抽象,形成样本数据; 步骤3、对样本数据进行判定,找出引起故障的关键变量; 步骤4、再次执行步骤I的B操作时,当关键变量再次异常,转入相应的隔离处理。2.根据权利要求1所述的一种抽水蓄能电站控制软件在线故障诊断方法,其特征在于: 所述步骤I中的约束集包括:出力平衡约束规则、出力约束规则、不可频繁穿越振动区约束规则、水头约束规则、频率约束规则、有功/无功出力与频率/电压相关性约束规则、控制令变化限值约束规则、机组可运行区与机组实际出力相关约束规则,不同的软件模块配置不同的约束规则;所述的隔离处理包括:程序重新启动;忽略异常、继续执行或终止执行同时报警提示。3.根据权利要求1所述的一种抽水蓄能电站控制软件在线故障诊断方法,其特征在于: 所述步骤I中运行数据包括:软件模块名、参数、相关全局变量名和值;所述的由当前运行数据形成故障数据集合包括:在当前运行数据左右区间按固定步长取值,产生测试用例,向左侧依次选取测试用例,当测试结果正常,则该测试用例构成故障数据区间的左边界;向右侧依次选取测试用例,当测试结果正常,则该测试用例构成故障数据区间的右边界,形成故障数据集合。4.根据权利要求3所述的一种抽水蓄能电站控制软件在线故障诊断方法,其特征在于: 所述步骤2中根据故障数据集合,自动产生测试用例具体为:根据故障数据集合,分别在每个集合变量的故障数据区间内外取值,取值组合构成测试用例,从而自动产生测试用例;所述根据测试结果对测试用例数据进行抽象,形成样本数据具体为:根据测试结果对测试用例数据进行抽象,测试用例数据在故障数据区间内则取值为I,否则取值为O,形成样本数据;测试结果正常,该样本数据归入消极样本;测试结果异常,该样本数据归入积极样本。5.根据权利要求1所述的一种抽水蓄能电站控制软件在线故障诊断方法,其特征在于: 所述步骤3对样本数据进行判定,找出引起故障的关键变量,具体为:通过布尔函数学习机制对样本数据进行判定,找出引起故障的关键变量。6.根据权利要求1所述的一种抽水蓄能电站控制软件在线故障诊断方法,其特征在于: 所述步骤4中,隔离处理包括:程序重新启动、终止执行同时报警提示。7.—种抽水蓄能电站控制软件在线故障诊断系统,其特征在于,包括约束集处理模块、运行数据收集模块、样本抽象模块、故障自动诊断模块和故障隔离模块; 所述约束集处理模块,插装到每个软件模块的入口点,用于在每个软件模块执行之前根据约束集判断前一个软件模块输出是否异常,一旦异常,确定引起故障的关键变量,同时转入相应的隔离处理; 所述运行数据收集模块,插装到每个软件模块的入口点,用于在每个软件模块执行之前记录软件模块名、参数和全局变量名和值,一旦程序运行出现故障,由当前运行数据形成故障数据集合; 所述样本抽象模块,用于根据故障数据集合,自动产生测试用例;根据测试结果对测试用例数据进行抽象,形成样本数据; 所述故障自动诊断模块,用于通过布尔函数学习机制自动分析样本数据,找到导致程序故障的若干关键变量; 所述故障隔离模块,插装到故障软件模块的入口点,用于一旦关键变量再次出现异常值,转入相应的隔离处理。8.根据权利要求7所述的一种抽水蓄能电站控制软件在线故障诊断系统,其特征在于, 所述约束集处理模块中的约束集包括:出力平衡约束规则、出力约束规则、不可频繁穿越振动区约束规则、水头约束规则、频率约束规则、有功/无功出力与频率/电压相关性约束规则、控制令变化限值约束规则、机组可运行区与机组实际出力相关约束规则,不同的软件模块配置不同的约束规则;所述的隔离处理包括:程序重新启动;忽略异常、继续执行或终止执行同时报警提示隔离处理。9.根据权利要求7所述的一种抽水蓄能电站控制软件在线故障诊断系统,其特征在于, 所述运行数据收集模块中形成故障数据集合,具体为:在当前运行数据左右区间按固定步长取值,产生测试用例,向左侧依次选取测试用例,当测试结果正常,则该测试用例构成故障数据区间的左边界;向右侧依次选取测试用例,当测试结果正常,则该测试用例构成故障数据区间的右边界,形成故障数据集合。10.根据权利要求7所述的一种抽水蓄能电站控制软件在线故障诊断系统,其特征在于, 所述样本抽象模块中,根据故障数据集合,自动产生测试用例具体为:根据故障数据集合,分别在每个集合变量的故障数据区间内外取值,取值组合构成测试用例,从而自动产生测试用例;所述根据测试结果对测试用例数据进行抽象,形成样本数据具体为:根据测试结果对测试用例数据进行抽象,测试用例数据在故障数据区间内则取值为I,否则取值为O,形成样本数据;测试结果正常,该样本数据归入消极样本;测试结果异常,该样本数据归入积极样本;所述故障隔离模块中的相应的隔离处理具体为:程序重新启动、终止执行同时报警提不。
【文档编号】G06F11/36GK106055484SQ201610505136
【公开日】2016年10月26日
【申请日】2016年6月30日
【发明人】徐麟, 芮钧, 阎应飞
【申请人】南京南瑞集团公司, 国网电力科学研究院, 国网浙江省电力公司