一种飞机飞行控制方法及系统与流程

文档序号:29407914发布日期:2022-03-26 11:04阅读:275来源:国知局
一种飞机飞行控制方法及系统与流程

1.本技术属于非电变量的控制或调节系统领域,特别涉及飞机飞行控制方法及系统。


背景技术:

2.现有的飞机飞行控制通常采用机载飞控或飞管软件实现,其主要接收机上传感器或者驾驶员的操控指令,基于飞控或飞管软件的解算结果对飞机的高度、姿态等进行控制。飞控或者飞管软件中存在一类比较容易被忽视的错误,即浮点数运算非数值(nan)错误。非数值(nan)错误的产生原因包括以下几种浮点数运算:除法运算的除数为0;开平方运算的操作数小于0;对数运算的操作数小于等于0;反正弦/反余弦运算的操作数不在[-1,1]之间等。
[0003]
非数值(nan)错误会导致飞控或飞管软件计算出来的结果为nan,该错误结果在其他系统中似乎不会产生什么影响,但由于飞控飞管软件的特殊性,有可能对输出结果需要进一步使用,而在使用过程中,nan具有和任意数值作相等判断均得到逻辑假(false)的结果,因此如果将非数值(nan)的计算结果作为逻辑判断的操作数,会产生难以察觉而又不易解释的逻辑错误。因此非数值(nan)错误事实上会扩散而对软件项目中使用到它的代码段产生影响,从而降低了飞机的安全性。


技术实现要素:

[0004]
为了解决上述问题,本技术提供了一种飞机飞行控制方法及装置,针对飞控、飞管软件中的浮点数运算非数值错误,通过增加合适的保护策略,从而确保软件的内部不会有非数值错误的存在,以及确保其仅停留在接口层面而不扩散到软件内部。
[0005]
本技术第一方面提供了一种飞机飞行控制方法,包括:接收与飞控处理器连接的机载电子设备传送来的待处理参数;将所述待处理参数输入到飞控处理器内的飞行控制软件或飞机管理软件中;基于所述飞行控制软件或飞机管理软件对所述待处理参数进行运算,获取飞行控制数据或者飞机管理数据;基于所述飞行控制数据控制飞机飞行,基于所述飞机管理数据对飞机设备进行管理;其中,基于所述飞行控制软件或飞机管理软件对所述待处理参数进行运算时,进一步包括对所述待处理参数进行预处理,所述预处理包括:除法运算修改步骤,当所述待处理参数作为除法运算的除数参数,且所述除数参数为0时,将其值修改为最小非零值eps;开平方运算修改步骤,当所述待处理参数作为开平方运算的操作数,且该操作数小于0时,将其值设置为0;对数运算修改步骤,当所述待处理参数作为对数运算的操作数,且该操作数小于或等于0时,将其值修改为最小非零值eps;反三角函数运算修改步骤,当所述待处理参数作为反正弦或反余弦运算的操作
数,且该操作数大于1时,将其值修改为1,当所述待处理参数作为反正弦或反余弦运算的操作数,且该操作数小于-1时,将其值修改为-1。
[0006]
优选的是,所述最小非零值eps设定为10-6

[0007]
优选的是,在将所述待处理参数输入到飞行控制软件或飞机管理软件之前,进一步包括:数据隔离步骤,将所述待处理参数与其自身作“不相等”比较,若比较结果为布尔值true,则采用设定值替代所述待处理参数,否则继续使用原有的待处理参数。
[0008]
优选的是,所述设定值为0。
[0009]
本技术第二方面提供了一种飞机飞行控制系统,包括:数据接收模块,用于接收与飞控处理器连接的机载电子设备传送来的待处理参数;发送模块,用于将所述待处理参数输入到飞控处理器内的飞行控制软件或飞机管理软件中;解算模块,用于基于所述飞行控制软件或飞机管理软件对所述待处理参数进行运算,获取飞行控制数据或者飞机管理数据;以及控制模块,用于基于所述飞行控制数据控制飞机飞行,基于所述飞机管理数据对飞机设备进行管理;其中,所述解算模块包括用于对所述待处理参数进行预处理的预处理单元,所述预处理单元包括:除数修改单元,用于当所述待处理参数作为除法运算的除数参数,且所述除数参数为0时,将其值修改为最小非零值eps;开平方操作数修改单元,用于当所述待处理参数作为开平方运算的操作数,且该操作数小于0时,将其值设置为0;对数操作数修改单元,用于当所述待处理参数作为对数运算的操作数,且该操作数小于或等于0时,将其值修改为最小非零值eps;三角操作数修改单元,用于当所述待处理参数作为反正弦或反余弦运算的操作数,且该操作数大于1时,将其值修改为1,当所述待处理参数作为反正弦或反余弦运算的操作数,且该操作数小于-1时,将其值修改为-1。
[0010]
优选的是,所述最小非零值eps设定为10-6

[0011]
优选的是,还包括隔离模块,用于在将所述待处理参数输入到飞行控制软件或飞机管理软件之前,进行nan类型数据的隔离,所述隔离模块包括:输入数据自身比较单元,用于将所述待处理参数与其自身作“不相等”比较,若比较结果为布尔值true,则采用设定值替代所述待处理参数,否则继续使用原有的待处理参数。
[0012]
优选的是,所述设定值为0。
[0013]
本技术能够避免飞控飞管软件中出nan值错误引起的连锁反应,提高了飞控飞管软件的鲁棒性和健壮性,隔离和屏蔽非数值nan错误,确保飞机运行正常。
附图说明
[0014]
图1为本技术实施例提供的飞机飞行控制方法的一优选实施例的待处理参数预处理流程图。
具体实施方式
[0015]
为使本技术实施的目的、技术方案和优点更加清楚,下面将结合本技术实施方式中的附图,对本技术实施方式中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施方式是本技术一部分实施方式,而不是全部的实施方式。下面通过参考附图描述的实施方式是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。基于本技术中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本技术保护的范围。下面结合附图对本技术的实施方式进行详细说明。
[0016]
本技术针对飞控、飞管软件中的浮点数运算非数值(nan)错误,通过增加合适的保护策略,从而达到以下两方面目的:a) 在软件内部考虑所有产生非数值(nan)错误的可能性,并采取措施进行规避,从而确保软件的内部接口和输出接口不会有非数值(nan)错误的存在。
[0017]
b) 在软件外部接口处加入非数值(nan)错误输入判断,如由于外部输入产生非数值(nan)错误,则采取措施将该非数值(nan)错误进行隔离,确保其仅停留在接口层面而不扩散到软件内部。
[0018]
为了实现上述目的,本技术第一方面提供了一种飞机飞行控制方法,主要包括:接收与飞控处理器连接的机载电子设备传送来的待处理参数;将所述待处理参数输入到飞控处理器内的飞行控制软件或飞机管理软件中;基于所述飞行控制软件或飞机管理软件对所述待处理参数进行运算,获取飞行控制数据或者飞机管理数据;基于所述飞行控制数据控制飞机飞行,基于所述飞机管理数据对飞机设备进行管理,例如根据飞机管理数据控制飞机飞行参数的显示,或者控制某些飞控设备开关的开启或关闭。
[0019]
如图1所示,基于所述飞行控制软件或飞机管理软件对所述待处理参数进行运算时,进一步包括对所述待处理参数进行预处理,所述预处理包括:除法运算修改步骤,当所述待处理参数作为除法运算的除数参数,且所述除数参数为0时,将其值修改为最小非零值eps;开平方运算修改步骤,当所述待处理参数作为开平方运算的操作数,且该操作数小于0时,将其值设置为0;对数运算修改步骤,当所述待处理参数作为对数运算的操作数,且该操作数小于或等于0时,将其值修改为最小非零值eps;反三角函数运算修改步骤,当所述待处理参数作为反正弦或反余弦运算的操作数,且该操作数大于1时,将其值修改为1,当所述待处理参数作为反正弦或反余弦运算的操作数,且该操作数小于-1时,将其值修改为-1。
[0020]
在一个具体实施例中,除法运算修改步骤用于对除法运算的除数为0的情况,将除数置为最小非零值(eps)。该操作会消除非数值(nan)错误,并且得到一个很大的浮点数,这与除零运算的本意是最为接近的。在不同的浮点数表示法中最小非零值(eps)对应不同的数值,但是对于飞控、飞管软件来说,取最小非零值为10-6
是最为合理的。
[0021]
在一个具体实施例中,开平方运算修改步骤用于对开平方运算的操作数小于0的情况,将操作数置为0。在实数范围内对负数开平方是非法操作,结果是未定义的,因而实际上用任何非负数替代原操作数都会消除非数值(nan)错误。本实施例采用0替代原操作数是
为算法实现方便,即在算法中,只需将原操作数与0中取较大值作为开平方运算的操作数即可。
[0022]
在一个具体实施例中,对数运算修改步骤用于在对数运算的操作数小于或等于0的情况,将该操作数置为最小非零值(eps)。该方案的选择原因及得到的结果与除法运算的除数为0的情况相同。
[0023]
在一个具体实施例中,对于反正弦或者反余弦运算的操作数不在[-1,1]之间的情况,将操作数限幅在[-1,1]之间后,再进行反正弦/反余弦运算。即如果操作数大于1,则将1作为操作数;如果操作数小于-1,则将-1作为操作数。在实数范围内对[-1,1]以外的数进行反正弦/反余弦运算的是非法操作,结果是未定义的,因而实际上用任何[-1,1]之间的数替代原操作数都会消除非数值(nan)错误。这里采用限幅方案是为软件实现方便,例如直接调用saturation函数即可实现。
[0024]
在一些可选实施方式中,在将所述待处理参数输入到飞行控制软件或飞机管理软件之前,进一步包括:数据隔离步骤,将所述待处理参数与其自身作“不相等”比较,若比较结果为布尔值true,则采用设定值替代所述待处理参数,否则继续使用原有的待处理参数。
[0025]
在该实施例中,是通过在软件外部加入非数值(nan)错误输入判断来对非数值错误进行隔离。具体实现算法为:如果输入变量为x,那么针对x的非数值(nan)错误输入判断可以写为:if (x != x),如果返回的布尔值为true,则表明x为非数值(nan),否则x为正常值。原理为nan参与的任何“相等”判断结果都是false,因此判断“不等”会得到true,而非nan的上述判断结果一定为false。
[0026]
事实上,将等于nan的浮点数设置为任意非nan数都会消除非数值(nan)错误,在一些可选实施方式中,所述设定值一般可以置为0。这里置0是一种平凡操作,经过验证发现,置0后对于大多数飞控、飞管软件都是适用的。在具体操作过程中,可以通过c语言软件实现上述算法,通过一个函数接口,只需要按如下调用killnan(&input, 0.0f)函数即可实现本技术中的隔离算法,该函数内部通过if (x != x)判断输入的x(x为形参,对应于实参input)是否为nan,如果是,则将第二个实参0赋值给input。经过隔离处理,即便传到软件中的外部输入是非数值(nan)错误,也可以将其在接口级进行隔离,从而确保非数值(nan)错误不扩散到软件内部,确保了软件的正常运行。
[0027]
现有的飞控、飞管软件中大多缺少严格的非数值(nan)错误判断。某些逻辑严谨的软件会考虑一种或几种非数值(nan)错误状况,但是并没有形成标准方法。尤其是外部输入接口,很少有飞控、飞管软件会考虑非数值(nan)错误。但事实上,对于一个软件部件(或者配置项)来说,外部输入究竟是什么根本无法控制。所以本技术采用上述步骤对飞控、飞管软件做完整的非数值(nan)错误保护,从而避免飞控或飞管软件中出现该错误引起的连锁反应。以飞管控制律软件为例,其中包含大量的动态环节(积分器、滤波器等),而动态环节的实现必然依赖前一周期或者前几周期的输入信号。这种情况下,如果某个周期的输入信号出现非数值(nan)错误,那么由于nan与任何操作数的任意运算都将返回nan,则非数值(nan)错误将会蔓延到整个软件生命周期而无法消除。采用本技术的保护策略之后,不仅非数值(nan)错误不会随输入接口进入软件内部(通过数据隔离步骤进行隔离),而且也可以确保内部运算不会产生非数值(nan)错误(通过除法运算修改步骤、开平方运算修改步骤、
对数运算修改步骤及反三角函数运算修改步骤进行屏蔽)。因此本技术可以提高飞控、飞管软件的鲁棒性和健壮性,隔离和屏蔽非数值(nan)错误,确保飞机运行正常。
[0028]
本技术第二方面提供了一种与上述方法对应的飞机飞行控制系统,包括:数据接收模块,用于接收与飞控处理器连接的机载电子设备传送来的待处理参数;发送模块,用于将所述待处理参数输入到飞控处理器内的飞行控制软件或飞机管理软件中;解算模块,用于基于所述飞行控制软件或飞机管理软件对所述待处理参数进行运算,获取飞行控制数据或者飞机管理数据;以及控制模块,用于基于所述飞行控制数据控制飞机飞行,基于所述飞机管理数据对飞机设备进行管理;其中,所述解算模块包括用于对所述待处理参数进行预处理的预处理单元,所述预处理单元包括:除数修改单元,用于当所述待处理参数作为除法运算的除数参数,且所述除数参数为0时,将其值修改为最小非零值eps;开平方操作数修改单元,用于当所述待处理参数作为开平方运算的操作数,且该操作数小于0时,将其值设置为0;对数操作数修改单元,用于当所述待处理参数作为对数运算的操作数,且该操作数小于或等于0时,将其值修改为最小非零值eps;三角操作数修改单元,用于当所述待处理参数作为反正弦或反余弦运算的操作数,且该操作数大于1时,将其值修改为1,当所述待处理参数作为反正弦或反余弦运算的操作数,且该操作数小于-1时,将其值修改为-1。
[0029]
在一些可选实施方式中,所述最小非零值eps设定为10-6

[0030]
在一些可选实施方式中,所述开平方操作数修改单元中,通过在开平方运算的操作数与0之间取最大值的运算方法修改开平方运算的操作数。
[0031]
在一些可选实施方式中,还包括隔离模块,用于在将所述待处理参数输入到飞行控制软件或飞机管理软件之前,进行nan类型数据的隔离,所述隔离模块包括:输入数据自身比较单元,用于将所述待处理参数与其自身作“不相等”比较,若比较结果为布尔值true,则采用设定值替代所述待处理参数,否则继续使用原有的待处理参数。
[0032]
在一些可选实施方式中,所述设定值为0。
[0033]
虽然,上文中已经用一般性说明及具体实施方案对本技术作了详尽的描述,但在本技术基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本技术精神的基础上所做的这些修改或改进,均属于本技术要求保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1