飞行器的中断控制方法及系统与流程

文档序号:11948485阅读:490来源:国知局
飞行器的中断控制方法及系统与流程
本发明涉及飞行中断控制领域,尤其涉及一种飞行器的中断控制方法及系统。
背景技术
:目前,在飞行器的中断控制方面缺乏对各项中断子程序的执行顺序管控设计,当飞行器的执行模块同时接收到多个中断源提出的执行中断子程序的申请时,由于没有对提出申请的各所述中断子程序的执行顺序进行管控,因此常出现各项中断子程序执行混乱的问题,从而无法根据各项中断子程序的实时性要求依次执行各项中断子程序。技术实现要素:本发明的主要目的是提供一种飞行器的中断控制方法及系统,旨在在多个中断源同时提出执行中断子程的申请时,按照各项中断子程序的实时性要求依次执行各项中断子程序。为实现上述目的,本发明提出的所述飞行器的中断控制方法包括如下步骤:读取脚本程序,根据所述脚本程序获取飞行器所有用于控制飞行的中断子程序,并获取用户根据各所述中断子程序的实时性要求对应设定的优先级;根据各所述中断子程序及其优先级生成映射表,所述映射表中记录每个所述中断子程序的执行顺序信息,以使优先级高的所述中断子程序对应优先的执行顺序;存储所述映射表;判断是否有多个中断源同时提出执行所述中断子程序的申请;若是,则从所述映射表中读取提出申请的各所述中断子程序的执行顺序信息,按照所述执行顺序信息依次执行提出申请的各所述中断子程序。优选地,所述所有的中断子程序包括系统时钟子程序、I2C事件中断子程序、脉宽测量子程序、主中断子程序、Xbee发送子程序、Xbee接收子程序、Mti发送子程序和Mti接收子程序。优选地,所述系统时钟子程序、所述I2C事件中断子程序及所述脉宽测量子程序的优先级相等。优选地,所述系统时钟子程序、所述I2C事件中断子程序及所述脉宽测量子程序的优先级为最高级。优选地,所述主中断子程序的优先级为最低级。优选地,所述Xbee发送子程序、所述Xbee接收子程序、所述Mti发送子程序及所述Mti接收子程序的优先级相等。优选地,所述Xbee发送子程序、所述Xbee接收子程序、所述Mti发送子程序及所述Mti接收子程序的优先级为中间级。优选地,所述从所述映射表中读取提出申请的各所述中断子程序的执行顺序信息,按照所述执行顺序信息依次执行提出申请的各所述中断子程序包括:向数据缓存区传输执行提出申请的各所述中断子程序时发送或接收的信息数据;对传输至所述数据缓存区内的所述信息数据进行数据处理。本发明还提供一种飞行器的中断控制系统,包括:读取模块,用于读取脚本程序,根据所述脚本程序获取飞行器所有用于控制飞行的中断子程序,并获取用户根据各所述中断子程序的实时性要求对应设定的优先级;映射表生成模块,用于根据各所述中断子程序及其优先级生成映射表,所述映射表中记录每个所述中断子程序的执行顺序信息,以使优先级高的所述中断子程序对应优先的执行顺序;存储模块,用于存储所述映射表;判断模块,用于判断是否有多个中断源同时提出执行所述中断子程序的申请;执行模块,若有多个中断源同时提出执行所述中断子程序的申请,则所述执行模块从所述映射表中读取提出申请的各所述中断子程序的执行顺序信息,按照所述执行顺序信息依次执行提出申请的各所述中断子程序。优选地,所述执行模块还包括:DMA控制器模块,用于向数据缓存区传输执行提出申请的各所述中断子程序时发送或接收的信息数据;数据抓取函数模块,用于对传输至所述数据缓存区内的所述信息数据进行数据处理。本发明的技术方案中,用户根据各所述中断子程序的实时性要求对应设定的优先级存储于所述脚本程序中,通过读取所述脚本命令获取各所述中断子程序的优先级,并且生成各所述中断子程序与其优先级的所述映射表,所述映射表中记录了每个所述中断子程序的执行顺序,且各所述中断子程序的执行顺序与其优先级的顺序对应,当有多个中断源同时提出执行所述中断子程序的申请时,从所述映射表中读取提出申请的各所述中断子程序的执行顺序信息,按照所述执行顺序信息依次执行提出申请的各所述中断子程序,因此,所述飞行器的中断控制方法可以保证在有多个中断源同时提出执行所述中断子程序的申请时,按照各项中断子程序的实时性要求依次执行提出申请的各所述中断子程序。附图说明为了更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。图1为本发明飞行器的中断控制方法的流程示意图;图2为本发明飞行器的中断控制系统的功能模块示意图;图3为针对本发明的飞行器的中断控制方法进行悬停实验的姿态响应曲线;图4为针对本发明的飞行器的中断控制方法进行抗干扰实验的姿态响应曲线;图5为针对本发明的飞行器的中断控制方法进行跟踪实验的姿态响应曲线;图6为针对本发明的飞行器的中断控制方法进行高度控制的响应曲线。附图标号说明:标号名称标号名称11读取模块13映射表生成模块15存储模块17判断模块19执行模块本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式下面将结合本实施例中的附图,对本实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明,本实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。本发明提出一种飞行器的中断控制方法和系统。请参照图1,本发明提出的所述飞行器的中断控制方法包括如下步骤:步骤S10,读取脚本程序,根据所述脚本程序获取飞行器所有用于控制飞行的中断子程序,并获取用户根据各所述中断子程序的实时性要求对应设定的优先级;本发明实施例提供的所述飞行器的中断控制方法主要应用于飞行器控制中。具体的,所述脚本程序记载了所有的所述中断子程序,并记载了所有的所述中断子程序的优先级,所述优先级是用户根据各中断子程序的实时性要求对应设定的,实时性要求高的所述中断子程序优先级高。用户根据各所述中断子程序的实时性要求对应设定的各所述中断子程序的优先级,可以进一步考虑执行各所述中断子程序所占用的时长,实时性要求不高且执行时占用时间长的所述中断子程序所对应的优先级低,实时性要求高或实时性要求较高且执行时占用时间短的所述中断子程序对应的优先级高。根据中断控制需要,可以将优先级设置为任意个数的等级,且每个优先级可以由任意数字表示。在本实施例中,采用0以上的数字对优先级进行标识,数值越大,对应的优先级越低。步骤S20,根据各所述中断子程序及其优先级生成映射表,所述映射表中记录每个所述中断子程序的执行顺序信息,以使优先级高的所述中断子程序对应优先的执行顺序;具体的,所述映射表可以是一对一的映射表,即一个优先级只对应一个所述中断子程序;所述映射表也可以是一对多的映射表,即一个优先级对应多个所述中断子程序。为了减少执行所述中断子程序的等待时间,在本实施例中,所述映射表为一对多的映射表。步骤S30,存储所述映射表;步骤S40,判断是否有多个中断源同时提出执行所述中断子程序的申请;具体的,当没有中断源提出执行所述中断子程序的申请时,重复步骤S50;当仅有一个中断源提出执行所述中断子程序的申请时,执行该中断子程序;当有多个中断源同时提出执行所述中断子程序的申请时,则执行步骤S60。步骤S50,若是,则从所述映射表中读取提出申请的各所述中断子程序的执行顺序信息,按照所述执行顺序信息依次执行提出申请的各所述中断子程序。具体的,按照所述执行顺序信息依次执行提出申请的各所述中断子程序,即按照各所述中断子程序的实时性要求执行提出申请的各所述中断子程序。本发明的技术方案中,用户根据各所述中断子程序的实时性要求对应设定的优先级存储于所述脚本程序中,通过读取所述脚本命令获取各所述中断子程序的优先级,并且生成各所述中断子程序与其优先级的所述映射表,所述映射表中记录了每个所述中断子程序的执行顺序,且各所述中断子程序的执行顺序与其优先级的顺序对应,当有多个中断源同时提出执行所述中断子程序的申请时,从所述映射表中读取提出申请的各所述中断子程序的执行顺序信息,按照所述执行顺序信息依次执行提出申请的各所述中断子程序,因此,所述飞行器的中断控制方法可以保证在有多个中断源同时提出执行所述中断子程序的申请时,按照各项中断子程序的实时性要求依次执行提出申请的各所述中断子程序。进一步地,所述所有的中断子程序包括系统时钟子程序、I2C事件中断子程序、脉宽测量子程序、主中断子程序、Xbee发送子程序、Xbee接收子程序、Mti发送子程序和Mti接收子程序。所述系统时钟子程序、所述I2C事件中断子程序、所述脉宽测量子程序、所述主中断子程序、所述Xbee发送子程序、所述Xbee接收子程序、所述Mti发送子程序和所述Mti接收子程序属于飞行控制过程中常运行的所述中断子程序,因此,对用于控制飞行的各所述中断子程序进行中断控制时,至少要考虑到上述中断子程序。进一步地,所述系统时钟子程序、所述I2C事件中断子程序及所述脉宽测量子程序的优先级相等。所述系统时钟子程序、所述I2C事件中断子程序及所述脉宽测量子程序的实时性要求相同,执行占用时长相近,且同时执行时不会造成数据干扰,因此可以设置为同一优先级,即,当所述系统时钟子程序、所述I2C事件中断子程序及所述脉宽测量子程序中的任意一个提出中断申请时,都是按照相同的执行顺序执行。进一步地,所述系统时钟子程序、所述I2C事件中断子程序及所述脉宽测量子程序的优先级为最高级。所述系统时钟子程序、所述I2C事件中断子程序及所述脉宽测量子程序的实时性要求高于所述主中断子程序,对实时性要求最高,因此,将所述系统时钟子程序、所述I2C事件中断子程序及所述脉宽测量子程序的优先级设置为最高。进一步地,主中断子程序的优先级设定为最低级。所述主中断子程序的频率为100Hz,每次运行都会占用很长的CPU时间,并且该项中断子程序对于实时性的要求并不高,只要能在10ms内运行完毕即可,因此,所述主中断子程序的优先级预设为最低级。进一步地,所述Xbee发送子程序、所述Xbee接收子程序、所述Mti发送子程序及所述Mti接收子程序的优先级相等。所述Xbee发送子程序、所述Xbee接收子程序分别用于遥控器信号发送和接收,所述Mti发送子程序及所述Mti接收子程序分别用于姿态传感器信号的发送及接收,且所述Xbee发送子程序、所述Xbee接收子程序、所述Mti发送子程序及所述Mti接收子程序均属于通过串口通讯的中断子程序,并且同时执行不会相互干扰,因此,可将四者的优先级设为相同,以减少各中断子程序的执行等待时间。进一步地,所述Xbee发送子程序、所述Xbee接收子程序、所述Mti发送子程序及所述Mti接收子程序的优先级为中间级。处理串口通讯的中断子程序对于实时性的要求低于所述I2C中断子程序,但又高于所述主中断子程序,因此,将所述Xbee发送子程序、所述Xbee接收子程序、所述Mti发送子程序及所述Mti接收子程序设置为中间级最为合理。进一步地,所述从所述映射表中读取提出申请的各所述中断子程序的执行顺序信息,按照所述执行顺序信息依次执行提出申请的各所述中断子程序,包括:步骤S61(图未示),向数据缓存区传输执行提出申请的各所述中断子程序时发送或接收的信息数据;具体的,由于串口在该飞控系统中应用得比较多,诸如Mti、Xbee、光流模块等传感器都需要用串口进行通讯,所以,对于串口的处理尤其需要注意。步骤S61用于进行数据搬运,而不进行数据处理,即先向所述数据缓存区传输各所述中断子程序发送或接收的信息数据。步骤S62(图未示),对传输至所述数据缓存区内的所述信息数据进行数据处理。首先定义所述数据缓存区,然后执行各所述中断子程序,将数据搬运与数据处理分开进行的处理方式,使得数据搬运与数据处理可以分别由不同的执行单元执行,因此,数据处理可以由具有完善的数据过滤功能的单元执行,大大增强了所述飞行器的中断控制的可靠性。进一步地,所述获取用户根据各中断子程序的实时性要求对应设定的优先级包括:获取用户根据各中断子程序的实时性要求对应设定的抢占优先级和响应优先级。在本实施例中,同一所述中断子程序的抢占优先级和响应优先级设置为同一优先级,同一所述中断子程序的抢占优先级和响应优先级设置为同一优先级,可以保证在所述飞行器的中断控制方法的执行中,同一所述中断子程序抢占顺序和响应顺序均处于相同顺序,防止执行出错。各中断子程序的优先级排列,详见下表。请参照图2,本发明还提供一种飞行器的中断控制系统,包括:读取模块11,用于读取脚本程序,根据所述脚本程序获取飞行器所有用于控制飞行的中断子程序,并获取用户根据各所述中断子程序的实时性要求对应设定的优先级;映射表生成模块13,用于根据各所述中断子程序及其优先级生成映射表,所述映射表中记录每个所述中断子程序的执行顺序信息,以使优先级高的中断子程序对应优先的执行顺序;存储模块15,用于存储所述映射表;判断模块17,用于判断是否有多个中断源同时提出执行所述中断子程序的申请;执行模块19,若有多个中断源同时提出执行所述中断子程序的申请,则所述执行模块从所述映射表中读取提出申请的各所述中断子程序的执行顺序信息,按照所述执行顺序信息依次执行提出申请的各所述中断子程序。优选地,所述执行模块19还包括:DMA控制器模块(图未示),用于向数据缓存区传输执行提出申请的各所述中断子程序时发送或接收的信息数据;数据抓取函数模块(图未示),用于对传输至所述数据缓存区内的所述信息数据进行数据处理。对于所述Mti传感器,其每一帧姿态信息的长度为固定的,因此,相关技术中,很容易想到如下处理方式:设置所述DMA控制器模块进行定长的串口接收,一旦接收到了固定长度的信息,就触发所述数据处理函数模块进行数据接收与处理。上述做法有一个很大的缺点——容错性极弱。假定在数据传输过程中由于干扰丢失了一个字节的数据,那么,所述DMA控制器模块会在接收到第二帧数据的第一个字节时进行处理,而实际上第一帧的数据已经不能再用。接下来的每一帧数据都将错位,无法再使用,这将导致严重的后果,由于所述Mti传感器是姿态控制的核心传感器,一旦所述Mti传感器的信息数据无法获得,整个飞行器将失去控制,因此,应当避免上述方案的使用。在本实施例中,对于串口的处理采用了一种新的方式。将所述DMA控制器模块的功能定义为搬运工,即定义一个较长的所述数据缓冲区,所述DMA控制器模块只负责向所述数据缓冲区搬运数据,而不进行数据处理。而数据处理的职责则分配给所述主中断子程序内的所述数据抓取函数模块进行,所述数据抓取函数模块具有完善的数据过滤功能,能够识别并滤除无效数据。这种搬运与数据处理分开的处理方式,大大增强了软件系统的可靠性。通过实际的飞行数据对飞行器的中断控制系统的性能作评估。实验中,飞行器采用无线链路向地面站发送实时姿态信息,地面站接收实时姿态信息并进行保存。针对本发明的飞行器的中断控制方法进行悬停实验的姿态响应曲线如图3所示。使飞行器从地面起飞,达到一定高度之后,使姿态控制器输入的俯仰角与横滚角给定为0°,偏航角给定为起飞时角度。使得飞行器进入空中悬停状态。在悬停状态中,俯仰角与横滚角均在零值附近的小范围内波动,抖动的范围基本维持在0.5°以内。偏航角维持在69°附近的小范围内抖动,波动范围大致在1°范围内。根据悬停测试,可以看出姿态控制器已经可以达到很高的控制精度,基本可以保证俯仰角、横滚角在给定角度的±0.5°范围内,保证偏航角在给定角度的±1°范围内,已经逼近了姿态传感器的精度,达到了非常好的控制效果。针对本发明的飞行器的中断控制方法进行抗干扰实验的姿态响应曲线如图4所示。使飞行器从地面起飞,并在空中进入悬停状态,通过拨动起落架的方式对飞行器的各个轴上施加干扰。在122s左右,飞行器受到了来自横滚角与俯仰角的干扰,其中,俯仰角的干扰达到了11°,横滚角上的干扰较小,约为4°,飞行器迅速调整姿态,在123s恢复了悬停状态,通过约1s时间就快速修正了姿态,可以看出横滚角与俯仰角具有较强的抗干扰性能。由于122s的干扰并没有对偏航角造成太大的影响。因此,偏航轴的抗干扰特性采用了发生在91s到92s的一次干扰,干扰的量值达到了25°,飞行器在干扰撤去的91.7s开始调整偏航轴姿态,经过了约3s调整到了稳定状态。从图中可以看出,在偏航角恢复的过程中有一个量值约为10°的超调量,这应该是由于控制量中的积分作用过大造成的,可以进一步调整积分作用进而调整控制效果。针对本发明的飞行器的中断控制方法进行跟踪实验的姿态响应曲线如图5所示。信号跟踪实验中,采用起飞后用摇杆给出指令的方式进行,飞行器按照摇杆给定指令进行飞行。可以看出,俯仰角与横滚角具有相似的跟踪性能,在给定一个±10°左右的给定信号的时候,虽然会有一定的跟踪延迟,但是对于控制效果的影响不大,均能够在约0.5s内完成响应,达到了较好的控制效果。在偏航角上,当给定一个速度信号的时候,偏航角也能够快速地逼近给定信号。针对本发明的飞行器的中断控制方法进行高度控制的响应曲线如图6所示。首先通过手动控制从地面起飞,达到特定高度之后切入自动高度控制模式,可以得到高度控制效果的数据。当高度给定为132cm,高度的实际输出在132cm附件约为10cm的条形带内波动,基本可以达到对于控制系统的要求。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的
技术领域
均包括在本发明的专利保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1