航空发动机的控制软件运行出错的恢复方法及系统转让专利

申请号 : CN201410213231.0

文献号 : CN103970571B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邓文革宋云峰刘铁庚高广华张礼华卢圣涛

申请人 : 中国航空动力机械研究所

摘要 :

本发明公开了一种航空发动机的控制软件运行出错的恢复方法及系统,该方法包括:判断控制软件运行过程是否出错,若出错则调用复位指令以复位,其中,判断控制软件运行过程是否出错包括:判断控制软件是否非正常运行达到第一预设时间,若是则判定控制软件出错;接收到中断请求时,判断中断请求是否为异常中断,若是,则清除中断请求,若否则执行中断;在执行中断后,判断在第二预设时间内是否接收到中断的中断返回指令,若否则控制软件出现非正常跳转,设置控制软件执行陷阱程序以调用复位指令进行复位。本发明恢复方法及系统实现了对控制软件运行出错的快速检测及自动复位,减少了发动机短时失控的时长,保证了发动机的平稳可靠运行。

权利要求 :

1.一种航空发动机的控制软件运行出错的恢复方法,其特征在于,包括:判断所述控制软件运行过程是否出错,若出错则调用复位指令以复位,其中,所述判断所述控制软件运行过程是否出错包括:判断所述控制软件是否非正常运行达到第一预设时间,若是则判定所述控制软件出错;其中,所述非正常运行通过所述控制软件是否执行清狗操作判断;和接收到中断请求时,判断所述中断请求是否为异常中断,在处理器调用中断请求时,根据I/O端口的请求与中断请求的比对来判断该中断请求是否为异常中断,若是,则清除所述中断请求,若否则执行中断;在执行所述中断后,判断在第二预设时间内是否接收到所述中断的中断返回指令,若否则所述控制软件出现非正常跳转,设置所述控制软件执行陷阱程序以调用所述复位指令进行复位。

2.根据权利要求1所述的方法,其特征在于,

调用所述复位指令进行复位时,判断所述复位指令是否为运行出错复位,若否则所述控制软件执行正常的自检和数据初始化操作;若是则跳过所述自检操作。

3.根据权利要求2所述的方法,其特征在于,

在所述复位指令为运行出错复位时,判断所述控制软件的当前的状态指令是否为停车状态指令;

若是,则跳过所述自检操作,进入所述数据初始化操作;

若否,则跳过所述自检操作,并采集复位前数据缓冲区的数据进行快速赋值,以恢复所述控制软件的运行。

4.根据权利要求3所述的方法,其特征在于,

所述控制软件的当前的状态指令不为停车状态指令时,所述控制软件输出开关量使得发动机的燃油供应通路导通。

5.根据权利要求3或者4所述的方法,其特征在于,

所述数据缓冲区采用堆栈结构存储复位前的数据,所述数据经过滤波处理。

6.一种航空发动机的控制软件运行出错的恢复系统,其特征在于,包括:出错检测单元,用于判断所述控制软件运行过程是否出错,若出错则调用复位单元;其中,所述复位单元用于控制所述控制软件调用复位指令以复位;

所述出错检测单元包括:

非正常运行检测模块,用于判断所述控制软件是否非正常运行达到第一预设时间,若是则判定所述控制软件出错;其中,所述非正常运行通过所述控制软件是否执行清狗操作判断;和中断异常检测模块,用于在接收到中断请求时,判断所述中断请求是否为异常中断,在处理器调用中断请求时,根据I/O端口的请求与中断请求的比对来判断该中断请求是否为异常中断,若是,则清除所述中断请求,否则执行中断;在执行所述中断后,判断在第二预设时间内是否接收到所述中断的中断返回指令,若否则所述控制软件出现非正常跳转,设置所述控制软件执行陷阱程序以调用所述复位指令进行复位。

7.根据权利要求6所述的系统,其特征在于,所述复位单元包括:复位类型判断模块,用于判断所述复位指令是否为运行出错复位,若否则所述控制软件执行正常的自检和数据初始化操作;若是则跳过所述自检操作。

8.根据权利要求7所述的系统,其特征在于,所述复位单元还包括:停车状态检测模块,用于判断所述控制软件的当前的状态指令是否为停车状态指令;

若是,则跳过所述自检操作,进入所述数据初始化操作;

若否,则跳过所述自检操作,并采集复位前数据缓冲区的数据进行快速赋值,以恢复所述控制软件的运行。

9.根据权利要求8所述的系统,其特征在于,所述复位单元还包括:开关量控制模块,用于所述控制软件的当前的状态指令不为停车状态指令时,所述控制软件输出开关量使得发动机的燃油供应通路导通。

10.根据权利要求8或者9所述的系统,其特征在于,所述复位单元还包括:缓冲区存储模块,用于以堆栈结构存储复位前的数据,所述数据经过滤波处理。

说明书 :

航空发动机的控制软件运行出错的恢复方法及系统

技术领域

[0001] 本发明涉及航空发动机控制技术领域,特别地,涉及一种航空发动机的控制软件运行出错的恢复方法及系统。

背景技术

[0002] 航空发动机电子控制器是发动机的大脑,而航空发动机的控制软件则是电子控制器的核心。它通过电子控制器的硬件采集发动机传感器信号,利用通讯接收来自飞机的指令,再通过控制算法,控制相应的执行机构动作(开关量输出),以实现发动机的状态变换。
[0003] 一方面,航空发动机的电子控制器工作在一个恶劣的电磁环境中,尽管采用了电磁兼容设计方法,但其受干扰还是不可避免的。另一方面,电子控制器的CPU系统是一个非常精确的系统,其数据/地址线及控制线(如读写、片选及取指等)的时序都是微秒级的,如果数据/地址线及控制线串入一个尖峰,或者由于干扰使数据/地址线及控制线某个波形发生微小变化(如电平信号垂直的上升/下降沿斜率变小),都会导致CPU系统的数据及指令出现错误,从而使控制软件运行出错、软件复位。例如,从某型号车台试验时进行的一次实时监测过程中发现,在不到一个小时试车过程中,控制软件复位竟多达20多次。
[0004] 为了解决此问题,目前,国内外航空发动机电子控制器通常是在硬件上采用了抗干扰措施,以尽量减少控制软件运行出错的机会。但是,一旦出现软件复位,电子控制器还是会短时停止对发动机的控制,使发动机转速大幅波动。针对此情况,尽管某些型号电子控制器也采用了一些改进措施(如减少初始化自检时间、判断区分复位情况等),但是发动机的短时失控仍不可避免。如国外某发动机电子控制器,其软件复位会使发动机短时失控达300多毫秒,发动机转速波动达10%以上。因此,仅从硬件上采用抗干扰措施无法避免控制软件运行出错,还是会出现因软件复位造成的发动机转速大幅波动。

发明内容

[0005] 本发明目的在于提供一种航空发动机的控制软件运行出错的恢复方法及系统,以解决现有的航空发动机因控制软件运行出错难以快速恢复导致的发动机的短时失控和转速波动的技术问题。
[0006] 为实现上述目的,本发明采用的技术方案如下:
[0007] 根据本发明的一个方面,提供一种航空发动机的控制软件运行出错的恢复方法,该方法包括:
[0008] 判断控制软件运行过程是否出错,若出错则调用复位指令以复位,其中,判断控制软件运行过程是否出错包括:
[0009] 判断控制软件是否非正常运行达到第一预设时间,若是则判定控制软件出错;其中,非正常运行通过控制软件是否执行清狗操作判断;
[0010] 接收到中断请求时,判断中断请求是否为异常中断,若是,则清除中断请求,若否则执行中断;在执行中断后,判断在第二预设时间内是否接收到中断的中断返回指令,若否则控制软件出现非正常跳转,设置控制软件执行陷阱程序以调用复位指令进行复位。
[0011] 进一步地,调用复位指令进行复位时,判断复位指令是否为运行出错复位,若否则控制软件执行正常的自检和数据初始化操作;若是则跳过自检操作。
[0012] 进一步地,在复位指令为运行出错复位时,判断控制软件的当前的状态指令是否为停车状态指令;
[0013] 若是,则跳过自检操作,进入数据初始化操作;
[0014] 若否,则跳过自检操作,并采集复位前数据缓冲区的数据进行快速赋值,以恢复控制软件的运行。
[0015] 进一步地,控制软件的当前的状态指令不为停车状态指令时,控制软件输出开关量使得发动机的燃油供应通路导通。
[0016] 进一步地,数据缓冲区采用堆栈结构存储复位前的数据,数据经过滤波处理。
[0017] 根据本发明的另一方面,还提供一种航空发动机的控制软件运行出错的恢复系统,该系统包括:
[0018] 出错检测单元,用于判断控制软件运行过程是否出错,若出错则调用复位单元;其中,复位单元用于控制控制软件调用复位指令以复位;
[0019] 出错检测单元包括:
[0020] 非正常运行检测模块,用于判断控制软件是否非正常运行达到第一预设时间,若是则调用复位指令以复位;其中,非正常运行通过控制软件是否执行清狗操作判断;和/或[0021] 中断异常检测模块,用于在接收到中断请求时,判断中断请求是否为异常中断,若是,则清除中断请求,否则执行中断;在执行中断后,判断在第二预设时间内是否接收到中断的中断返回指令,若否则控制软件出现非正常跳转,设置控制软件执行陷阱程序以调用复位指令进行复位。
[0022] 进一步地,复位单元包括:
[0023] 复位类型判断模块,用于判断复位指令是否为运行出错复位,若否则控制软件执行正常的自检和数据初始化操作;若是则跳过自检操作。
[0024] 进一步地,复位单元还包括:
[0025] 停车状态检测模块,用于判断控制软件的当前的状态指令是否为停车状态指令;
[0026] 若是,则跳过自检操作,进入数据初始化操作;
[0027] 若否,则跳过自检操作,并采集复位前数据缓冲区的数据进行快速赋值,以恢复控制软件的运行。
[0028] 进一步地,复位单元还包括:
[0029] 开关量控制模块,用于控制软件的当前的状态指令不为停车状态指令时,控制软件输出开关量使得发动机的燃油供应通路导通。
[0030] 进一步地,复位单元还包括:
[0031] 缓冲区存储模块,用于以堆栈结构存储复位前的数据,该数据经过滤波处理。
[0032] 本发明具有以下有益效果:
[0033] 本发明航空发动机的控制软件运行出错的恢复方法及系统,通过检测控制软件的运行出错和及时对控制软件进行复位操作,避免程序跑飞,进一步地,本发明包括对控制软件的非正常运行出错检测、中断请求时的异常中断检测及中断后的非正常跳转检测,实现了控制软件运行过程出错的及时检测和复位,从而确保了控制软件运行出错后的快速恢复,与传统的采用硬件抗干扰措施相比,本发明恢复方法及系统实现了对控制软件运行出错的快速检测及自动复位,减少了发动机短时失控的时长,保证了发动机的平稳可靠运行。
[0034] 除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。

附图说明

[0035] 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0036] 图1是本发明优选实施例一航空发动机的控制软件运行出错的恢复方法的步骤流程示意图;
[0037] 图2是本发明优选实施例二航空发动机的控制软件运行出错的恢复方法的步骤流程示意图;
[0038] 图3是本发明优选实施例三航空发动机的控制软件运行出错的恢复系统的原理方框示意图。

具体实施方式

[0039] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0040] 本发明实施例通过对控制软件的运行出错进行检测并在控制软件运行出错后进行快速恢复,以减少发动机的短时失控的时长,从而保证航空发动机的平稳运行。
[0041] 参照图1,本发明的优选实施例一提供一种航空发动机的控制软件运行出错的恢复方法,该方法包括:
[0042] 步骤S101,判断控制软件是否非正常运行达到第一预设时间,若是则执行步骤S102,若否则控制软件正常往下执行;其中,非正常运行通过控制软件是否执行清狗操作判断。本实施例中,在控制软件中设置软件看门狗,处理器按照控制软件的顺序执行的规律,每个循环周期(本实施例以10us为例)都会执行到清狗程序,即对软件看门狗的计时器进行清零操作,如果一旦控制软件跑飞,则没有按照顺序执行指令,当处理器超过第一预设时间(本实施例以11.86ms为例)仍没有执行清狗程序,则软件看门狗调用中断请求,则表明控制软件非正常运行达到第一预设时间,执行步骤S102,否则,控制软件按顺序往下执行。
[0043] 步骤S102,处理器调用复位指令以复位,即控制软件从程序起点开始执行程序,以对控制软件出错快速恢复。
[0044] 步骤S103,处理器接收到中断请求时,判断中断请求是否为异常中断,若是,执行步骤S104,若否则执行步骤S105,此步骤中处理器根据I/O端口的异常请求指令执行应急处理程序,在处理器调用中断请求时,根据I/O端口的请求与中断请求的比对来判断该中断请求是否为异常中断,若为异常中断,则清除该中断请求及相关标识位,按原顺序继续执行主程序,若否,则调用并执行中断。
[0045] 步骤S104,在中断请求被判定为异常中断时,清除该中断请求及相关标识位,按原顺序继续执行主程序,即控制软件。
[0046] 步骤S105,处理器暂停控制软件的现行程序,转为执行中断请求,以确保处理器的实时控制能力。
[0047] 步骤S106,判断处理器在第二预设时间内是否接收到该中断的中断返回指令,若处理器在第二预设时间内接收到中断返回指令RETI,则执行步骤S107;若处理器在第二预设时间内未接收到中断返回指令RETI,则表明控制软件出现非正常跳转,此时执行步骤S108。
[0048] 步骤S107,处理器执行完中断程序,返回主程序,以继续执行控制软件。
[0049] 步骤S108,控制软件执行陷阱程序,即在控制软件出现非正常跳转的情形下进入陷阱程序,陷阱程序为引导指令,强行将乱飞的程序引向一个指定的地址,本实施例中,陷阱程序指定存储复位指令的地址,即处理器执行步骤S102,处理器调用复位指令以复位。
[0050] 本实施例通过检测控制软件的运行出错和及时对控制软件进行复位操作,避免程序跑飞,进一步地,本发明包括对控制软件的非正常运行出错检测、中断请求时的异常中断检测及中断后的非正常跳转检测,实现了控制软件运行过程出错的及时检测和复位,从而确保了控制软件运行出错后的快速恢复,与传统的采用硬件抗干扰措施相比,本发明恢复方法及系统实现了对控制软件运行出错的快速检测及自动复位,减少了发动机短时失控的时长,保证了发动机的平稳可靠运行。
[0051] 图2给出了本发明优选实施例二航空发动机的控制软件运行出错的恢复方法的步骤流程示意图,参照图2,实施例二的恢复方法与实施例一的恢复方法的区别在于,实施例二的恢复方法在实施例一的基础上,对控制软件的初始化和自检程序进行了区别对待,以满足控制软件出错后快速恢复的需求,特别是针对非停车状态下的控制软件的快速恢复,本实施例采用了调用数据缓冲区存储的数据快速恢复控制软件的方法。
[0052] 实施例二的恢复方法包括以下步骤:
[0053] 步骤S201,判断控制软件是否非正常运行达到第一预设时间,若是则执行步骤S208,若否则控制软件正常往下执行;其中,非正常运行通过控制软件是否执行清狗操作判断。本实施例中,在控制软件中设置软件看门狗,处理器按照控制软件的顺序执行的规律,每个循环周期(本实施例以10us为例)都会执行到清狗程序,即对软件看门狗的计时器进行清零操作,如果一旦控制软件跑飞,则没有按照顺序执行指令,当处理器超过第一预设时间(本实施例以11.86ms为例)仍没有执行清狗程序,则软件看门狗调用中断请求,则表明控制软件非正常运行达到第一预设时间,执行步骤S208,否则,控制软件按顺序往下执行。
[0054] 步骤S202,处理器接收到中断请求时,判断中断请求是否为异常中断,若是,执行步骤S203,若否则执行步骤S204,此步骤中处理器根据I/O端口的异常请求指令执行应急处理程序,在处理器调用中断请求时,根据I/O端口的请求与中断请求的比对来判断该中断请求是否为异常中断,若为异常中断,则清除该中断请求及相关标识位,按原顺序继续执行主程序,若否,则调用并执行中断。
[0055] 步骤S203,在中断请求被判定为异常中断时,清除该中断请求及相关标识位,按原顺序继续执行主程序,即控制软件。
[0056] 步骤S204,处理器暂停控制软件的现行程序,转为执行中断请求,以确保处理器的实时控制能力。
[0057] 步骤S205,判断处理器在第二预设时间内是否接收到该中断的中断返回指令,若处理器在第二预设时间内接收到中断返回指令RETI,则执行步骤S206;若处理器在第二预设时间内未接收到中断返回指令RETI,则表明控制软件出现非正常跳转,此时执行步骤S207。
[0058] 步骤S206,处理器执行完中断程序,返回主程序,以继续执行控制软件。
[0059] 步骤S207,控制软件执行陷阱程序,即在控制软件出现非正常跳转的情形下进入陷阱程序,陷阱程序为引导指令,强行将乱飞的程序引向一个指定的地址,本实施例中,陷阱程序指定存储复位指令的地址,即处理器执行步骤S208,处理器调用复位指令以复位。
[0060] 步骤S208,处理器调用复位指令以复位,以对控制软件出错快速恢复,本实施例中,调用复位指令后,处理器执行步骤S209。
[0061] 步骤S209,判断复位指令是否为运行出错复位,系统复位后,控制软件会从入口处开始运行。根据设置的标志位判断复位指令是运行出错复位还是初次上电复位。若为初次上电复位,则执行步骤S210,若为运行出错复位,则执行步骤S211。
[0062] 步骤S210,系统初次上电复位,则控制软件进行正常自检和数据初始化,并且只有自检正常后控制软件才能设置上电复位正常标志位。
[0063] 步骤S211,若为运行出错复位,则进一步判断发动机的当前状态是否为停车状态,即处理器是否接收到飞机的停车指令,若控制软件的当前状态指令为停车指令,则表明发动机处于停车状态,若控制软件的当前状态指令为非停车指令,则表明发动机处于非停车状态。由于发动机处于非停车状态时,发动机转子还处于高速运转状态,此时,发动机的短时失控则会严重影响飞机的平稳运行,故本实施例中,当判定发动机处于停车状态时,执行步骤S212;当判定发动机处于非停车状态时,则执行步骤S213和步骤S214。
[0064] 步骤S212,控制软件跳过自检操作,进入数据初始化操作,由于控制软件已通过上电复位,故可省去自检操作,直接进入数据初始化操作,以节省控制软件的恢复时间。
[0065] 步骤S213,控制软件输出开关量使得发动机的燃油供应通路导通。本实施例中,一旦判断发动机的控制软件是非停车状态下的运行出错复位,则控制软件马上设置合理的开关量输出,使得燃油电磁阀设置为“开”的状态,燃油泵电机驱动器电源也设置为“开”的状态,以保证燃油供应通路导通,不出现断油情况,相应地,其它的开关输出及模拟量输出也根据复位前的数据马上恢复设置。这些设置能够保证发动机的供油等不会有突变,从而保证发动机转速相对平稳。
[0066] 步骤S214,控制软件跳过自检操作,并采集复位前数据缓冲区的数据进行快速赋值,以恢复控制软件的运行,以使得控制软件最快速进入循环等待程序。本实施例中,处理器对控制软件进行运行出错复位时,片内RAM及片外RAM都能保持复位前的数据,CPU寄存器会发生部分变化,具体为:作为数据缓冲区的CPU寄存器采用堆栈结构存储复位前的数据,即采用先进先出的方式存储数据,保证复位前的数据不会被清零。优选地,供处理器采集的数据经过滤波处理,本实施例中,对超限的数据直接剔除,不存入数据缓冲区;采集数据缓冲区的数据视情去掉若干极值后平均。由于软件运行中的复位会使个别输入数据有较大变化,通过采用上述方法,能够剔除因复位引起的个别变化较大的输入数据,从而保证数据采集平稳。
[0067] 根据本发明的另一方面,参照图3,还提供一种航空发动机的控制软件运行出错的恢复系统,该系统包括:
[0068] 出错检测单元310,用于判断控制软件运行过程是否出错,若出错则调用复位单元320;其中,复位单元320用于控制控制软件调用复位指令以复位。
[0069] 本实施例中,出错检测单元包括:
[0070] 非正常运行检测模块311,用于判断控制软件是否非正常运行达到第一预设时间,若是则调用复位指令以复位;其中,非正常运行通过控制软件是否执行清狗操作判断;本实施例中对控制软件进行非正常运行检测的步骤与实施例一和实施例二相同。
[0071] 中断异常检测模块312,用于在控制软件接收到中断请求时,判断中断请求是否为异常中断,若是,则清除中断请求,否则执行中断,在执行中断后,判断在第二预设时间内是否接收到中断的中断返回指令,若否则控制软件出现非正常跳转,设置控制软件执行陷阱程序以调用复位指令进行复位,检测原理参见实施例一和实施例二。
[0072] 优选地,本实施例中,复位单元320包括:
[0073] 复位类型判断模块321,用于判断复位指令是否为运行出错复位,若否则控制软件执行正常的自检和数据初始化操作;若是则跳过自检操作。
[0074] 优选地,该复位单元320还包括:
[0075] 停车状态检测模块322,用于判断控制软件的当前的状态指令是否为停车状态指令;
[0076] 若是,则跳过自检操作,进入数据初始化操作;
[0077] 若否,则跳过自检操作,并采集复位前数据缓冲区的数据进行快速赋值,以恢复控制软件的运行。
[0078] 优选地,该复位单元320还包括:
[0079] 开关量控制模块323,用于控制软件的当前的状态指令不为停车状态指令时,控制软件输出开关量使得发动机的燃油供应通路导通。本实施例中,一旦判断发动机的控制软件是非停车状态下的运行出错复位,则控制软件马上设置合理的开关量输出,使得燃油电磁阀设置为“开”的状态,燃油泵电机驱动器电源也设置为“开”的状态,以保证燃油供应通路导通,不出现断油情况,相应地,其它的开关输出及模拟量输出也根据复位前的数据马上恢复设置。这些设置能够保证发动机的供油等不会有突变,从而保证发动机转速相对平稳。
[0080] 优选地,该复位单元320还包括:
[0081] 缓冲区存储模块324,用于以堆栈结构存储复位前的数据,该数据经过滤波处理。本实施例中,处理器对控制软件进行运行出错复位时,片内RAM及片外RAM都能保持复位前的数据,CPU寄存器会发生部分变化,具体为:作为数据缓冲区的CPU寄存器采用堆栈结构存储复位前的数据,即采用先进先出的方式存储数据,保证复位前的数据不会被清零。优选地,供处理器采集的数据经过滤波处理,本实施例中,对超限的数据直接剔除,不存入数据缓冲区;采集数据缓冲区的数据视情去掉若干极值后平均。由于软件运行中的复位会使个别输入数据有较大变化,通过采用上述方法,能够剔除因复位引起的个别变化较大的输入数据,从而保证数据采集平稳。
[0082] 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0083] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0084] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。