一种无人机的大气边界层环境自主探测系统及其控制方法与流程

文档序号:11863902阅读:817来源:国知局
一种无人机的大气边界层环境自主探测系统及其控制方法与流程

本发明属于边界层探测技术领域,尤其涉及一种无人机的大气边界层环境自主探测系统及其控制方法。



背景技术:

目前,现代边界层探测手段有多普勒天气雷达、激光雷达和声雷达、卫星探测等,获得密集的基本气象资料是对边界层研究的前提,由探空气球、系留汽艇等携带探空仪对气象要素进行直接测量是大气探测的重要手段。但是,探空气球、系留汽艇等存在回收难、成本高等特点,再加上低空复杂的气流、地形环境等使得常规探空气球以及系留气球等对边界层探测存在着一定的局限性。因此,寻求可靠性和稳定性高、低成本、可连续使用的边界层探测仪器具有重要的意义。而雷达和遥感的观测手段是通过对间接变量的观测进而反演得到气象参数信息,相对于实际的物理测量来说,这种观测方法获取的数据精度和可信度相对较低。进入21世纪以来,随着计算机、微电子、通信、信息、材料等科学技术的快速发展,直流驱动的小型多旋翼无人机发展迅速,不仅起降方便,还具有自主巡航、定点悬浮等功能,使得通过无人机搭载探空仪,对大气垂直气象要素廓线的直接测量成为可能。

综上所述,目前大气边界层的探测主要有探空气球、系留汽艇等直接物理测量方法和激光雷达、超声雷达、卫星遥感等反演测量方法。第一种观测手段,存在传感器单一固定、观测成本高、回收困难的问题,第二种观测手段存在数据观测精度和可信度低的问题。



技术实现要素:

本发明的目的在于提供一种无人机的大气边界层环境自主探测系统及其控制方法,旨在解决目前大气边界层的探测存在传感器单一固定、观测成本高、回收困难,数据观测精度和可信度低的问题。

本发明是这样实现的,一种无人机的大气边界层环境自主探测方法,主控制器通过调用一系列的SDK函数控制M100飞行器按照预先设定的速度、角度执行飞行动作,同时在飞行器爬高的过程中控制器按照定时(如1s顺序采集一次各传感器数据)或者定高度(到达指定的间隔高度顺序采集一次各传感器数据,如5m,10m,15m…490m,495m,500m)采集数据,直到完成一组完整的0-500m剖面测量,然后飞行器返航降落,所述无人机的大气边界层环境自主探测控制方法,具体包括以下步骤:

主控制器上电后依次初始化UART2接口、定时器TIM2、模数转换器ADC、系统滴答器Systick、实时时钟RTC、姿态传感器、无线通讯模块、SD卡、LCD显示器、温度传感器、湿度传感器、气压传感器、二氧化碳传感器,并对温度传感器、湿度传感器、气压传感器、二氧化碳传感器进行读数据测试,判断传感器是否工作正常;

主控制器通过UART2接口与飞行器飞行控制系统通讯,依次调用SDK函数coreApi->getDroneVersion(),函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令;通过飞控系统UART口给控制器返回行器机体的固件版本序列号;控制器调用SDK函数coreApi->getSDKVersion(),该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,通过飞控系统UART口给控制器返回获取SDK版本序列号;

主控制器调用函数coreApi->setControl(1)从遥控器获取控制器对飞行器机体的飞行控制权,该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,其中参数为1表示获取控制权,获取控制权命令函数执行成功,则飞控系统通过UART口给控制器返回命令执行成功状态信息,否则返回命令执行失败状态信息;

主控制器调用SDK函数flight.task使飞行器机体完成起飞动作,该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,飞控系统收到此协议命令后,执行起飞动作,并悬停在距地面1.5米的高度;起飞命令函数执行成功,则飞控系统通过UART口给控制器返回命令执行成功状态信息,否则返回命令执行失败状态信息;

主控制器调用SDK函数flight.setFlight和TIM_Cmd,flightData是SDK库中提供的一个飞行数据结构体,用户分别预设flightData.x,flightData.y,flightData.y,flightData.Yaw,flightData.Pitch,flightData.Roll为指定的值,调用上述函授控制器通过UART2口给飞控系统UART口发送内部协议命令,飞控系统收到此协议命令后按照指定的X轴、Y轴、Z轴速度分量和指定姿态角Yaw,Pitch,Roll飞行,则通过TIM2的中断函数flight.setFlight和TIM_Cmd持续发送即可,控制器在初始化是将TIM2的中断频率设置为50Hz;

飞行器机体飞行过程中,主控制器以指定的周期1秒持续调用SDK函数broadcastdata=coreApi->getBroadcastData()获取飞行器机体的飞行信息,broadcastdata为SDK库中提供的飞行信息结构体,包括飞行器X,Y,Z方向速度信息,GPS位置信息、电池电量信息、飞行器飞行高度信息、飞行器海拔高度信息、磁偏角信息等;该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,飞控系统收到此协议命令后,通过UART口给控制器返回broadcastdata结构体数据;

主控制器判断飞行高度和电量两个参数,若飞行高度值超过阈值500米或者电量值低于阈值30%,则主控制器调用SDK函数flight.task使飞行器机体执行下降并自动降落动作,该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,飞控系统收到此协议命令后,执行下降并着陆飞行动作,该协议命令格式飞行器厂商尚未公开,提供封装函数供用户使用;

主控制器调用SDK函数coreApi->setControl(0)使主控制器释放对飞行器机体的飞行控制权,使遥控器获取飞行器的飞行控制权;该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,其中参数为0表示释放当前控制权,接收到此命令后飞控系统放弃与控制器通讯,把通讯通道与遥控器建立连接,使遥控器获取对飞行器的控制权,协议命令格式飞行器厂商尚未公开,提供封装函数供用户使用;

若未超过阈值,则主控制器依次读取飞行器机体的飞行信息;进而主控制器调用FATFS文件系统操作函数,调用f_open指令创建在SD卡根目录下创建data.txt文件,调用f_lseek函数将文件读写指针定位在文件的最后,调用f_write()函数“hour min sec height temperature humidity air pressure Co2Vx Vy Vz battery<CR><LF>”指定格式存储SD卡,按照”$data,hour,min,sec,height,temperature,humidity,airpressure,Co2,Vx,Vy,Vz,battery<CR><LF>”的数据格式通过无线通讯模块发送到地面接收站并打印飞行器机体的飞行信息在LCD显示器。

进一步,所述主控制器上电前还需进行先手动打开飞行器电池开关为M100飞行器机体供电,由飞控系统进行飞行器机体起飞前3秒-5秒的自检。

进一步,所述无人机的大气边界层环境自主探测方法采集的信息包括:RTC时间、飞行高度值、温度值、湿度值、气压值、二氧化碳浓度值、X轴速度、Y轴速度、Z轴速度、X轴加速度、Y轴加速度、Z轴加速度、Pitch、Roll、Yaw、海拔高度、电量值的信息。

本发明的另一目的在于提供一种所述无人机的大气边界层环境自主探测方法的无人机的大气边界层环境自主探测系统,所述无人机的大气边界层环境自主探测系统包括:

主控制器,通过SPI串行总线连接无线通讯模块,通过I2C总线连接姿态传感器,通过模拟I2C总线连接温度、湿度和气压传感器,通过引脚连接二氧化碳传感器,通过GPIOD I/O口连接LCD显示器,通过SDIO专用接口连接SD卡,用于对无人机的飞行状态进行控制;

姿态传感器,用于获取飞行过程中的X,Y,Z轴加速度和Yaw,Pitch,Roll三轴方向角;

无线通讯模块,用于将飞行过程中控制器采集的数据发送给地面接收上位机;

无人机飞控系统,通过串口与主控制器通讯,用于控制无人机的飞行状态;

LCD显示器,用于显示当前各环境参数值和飞行姿态信息;

温度、湿度和气压传感器,用于获取飞行过程中的温度值,获取飞行过程中的相对湿度值,获取飞行过程中的大气压值;

二氧化碳传感器,用于获取飞行过程中的二氧化碳浓度值。

SD卡,用于存储采集到的各环境参数值。

进一步,所述主控制器、姿态传感器、无线通讯模块、无人机飞控系统、LCD显示器、温度、湿度和气压传感器、二氧化碳传感器、SD卡集成在一个控制板上。

进一步,所述无人机非控系统包括:无人机非控系统通过串口与主控制器连接,锂电池、无刷电机、无线通讯单元、控制系统URAT2、罗盘和GPS与无人机非控系统无线或有线通讯。

本发明的另一目的在于提供一种所述无人机的大气边界层环境自主探测方法的探空气球控制方法。

本发明的另一目的在于提供一种所述无人机的大气边界层环境自主探测方法的系留飞艇控制方法。

本发明的另一目的在于提供一种所述无人机的大气边界层环境自主探测方法的探空雷达控制方法。

本发明提供的无人机的大气边界层环境自主探测系统及其控制方法,针对于以上两种观测手段面临的问题,提出一种基于小型无人机的大气边界层探测系统的设计与实现,具有观测成本低、可灵活扩展传感器类型、操作简单方便等、数据精度和可信度高的特点,可在0-500米边界层底层环境探测应用中取代上述两种观测手段。观测成本方面对比,一个万米探空气球的成本为2000元,释放后不可回收,平均每百米的观测成本为20元。本发明无人机探测系统一次充满电电池电量128瓦时,可以执行两次0-500米的剖面观测任务,电的价格为0.6元/千瓦时,计算下来每百米的观测成本为0.008元,观测成本约为前者的1/2500;传感器扩展方面,探空气球和系留飞艇的传感器为厂家固定搭载,不可自行扩展,本发明可根据观测需求扩展其它6个模拟量、2个I2C数字量传感器和3个串口数字量传感器;操作过程面,探空气球的布放需要配置至少3人,1人负责气球充气,1人负责释放前的参数设置,1人负责释放,系留汽艇则人数更多,本发明开机后完全靠控制器自主控制全流程,只需要1人即可完成测量操作;数据精度和可信度方面是相对于采用遥感测量方法的雷达和卫星对比,本发明对大气环境的探测是采用物理传感器的直接测量,其数据精度和可信度要比采用间接物理量测量并反演环境信息的遥感方法来的更精确。本发明操作简单,成本低廉,携带方便,可在0-500米廓线观测的应用场合取代探空气球、系留飞艇、探空雷达等观测设备,降低观测成本。

附图说明

图1是本发明实施例提供的无人机的大气边界层环境自主探测系统结构示意图;

图中:1、主控制器;2、姿态传感器;3、无线通讯模块;4、无人机飞控系统;5、LCD显示器;6、温度、湿度和气压传感器;7、二氧化碳传感器;8、SD卡。

图2是本发明实施例提供的无人机的大气边界层环境自主探测方法流程图。

图3是本发明实施例提供的无人机非控系统结构示意图;

图中:4-1、锂电池;4-2、无刷电机;4-3、无线通讯单元;4-4、控制系统URAT2;4-5、罗盘;4-6、GPS。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

下面结合附图对本发明的结构作详细的描述。

如图1所示,本发明实施例的无人机的大气边界层环境自主探测系统包括:主控制器1、姿态传感器2、无线通讯模块3、无人机飞控系统4、LCD显示器5、温度、湿度和气压传感器6、二氧化碳传感器7、SD卡8。

主控制器1、姿态传感器2、无线通讯模块3、无人机飞控系统4、LCD显示器5、温度、湿度和气压传感器6、二氧化碳传感器7、SD卡8集成在一个控制板上。

主控制器1,通过SPI串行总线连接无线通讯模块3;通过I2C总线连接姿态传感器2;通过模拟I2C总线连接温度、湿度和气压传感器6;通过引脚连接二氧化碳传感器7;通过GPIOD I/O口连接LCD显示器5;通过SDIO专用接口连接SD卡8;

姿态传感器2,用于获取飞行过程中的X,Y,Z轴加速度和Yaw,Pitch,Roll三轴方向角。

无线通讯模块3,用于将飞行过程中控制器采集的数据发送给地面接收上位机。

无人机飞控系统4,通过串口与主控制器1通讯,用于控制无人机的飞行状态。

LCD显示器5,用于显示当前各环境参数值和飞行姿态信息。

温度、湿度和气压传感器6,用于获取飞行过程中的温度值,获取飞行过程中的相对湿度值,获取飞行过程中的大气压值。

二氧化碳传感器7,用于获取飞行过程中的二氧化碳浓度值。

SD卡8,用于存储采集到的各环境参数值。

如图2所示,本发明实施例的无人机的大气边界层环境自主探测方法包括以下步骤:

主控制器上电后依次初始化UART2接口、定时器TIM2、模数转换器ADC、系统滴答器Systick、实时时钟RTC、姿态传感器、无线通讯模块、SD卡、LCD显示器、温度传感器、湿度传感器、气压传感器、二氧化碳传感器,并对温度传感器、湿度传感器、气压传感器、二氧化碳传感器进行读数据测试,判断传感器是否工作正常;

主控制器通过UART2接口与飞行器飞行控制系统通讯,依次调用飞行器厂商提供的SDK函数coreApi->getDroneVersion(),该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,该协议命令格式飞行器厂商尚未公开,提供封装函数供用户使用。通过飞控系统UART口给控制器返回行器机体的固件版本序列号;控制器调用SDK函数coreApi->getSDKVersion(),该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,通过飞控系统UART口给控制器返回获取SDK版本序列号;

主控制器调用函数coreApi->setControl(1)从遥控器获取控制器对飞行器机体的飞行控制权,该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,其中参数为1表示获取控制权,获取控制权命令函数执行成功,则飞控系统通过UART口给控制器返回命令执行成功状态信息,否则返回命令执行失败状态信息;

主控制器调用SDK函数flight.task(flight.TASK_TAKEOFF)使飞行器机体完成起飞动作,该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,飞控系统收到此协议命令后,执行起飞动作,并悬停在距地面1.5米的高度。起飞命令函数执行成功,则飞控系统通过UART口给控制器返回命令执行成功状态信息,否则返回命令执行失败状态信息;

主控制器调用SDK函数flight.setFlight(&flightData)和TIM_Cmd(TIM2,ENABLE),flightData是SDK库中提供的一个飞行数据结构体,用户分别预设flightData.x,flightData.y,flightData.y,flightData.Yaw,flightData.Pitch,flightData.Roll为指定的值,调用上述函授控制器通过UART2口给飞控喜用UART口发送内部协议命令,飞控系统收到此协议命令后按照指定的X轴、Y轴、Z轴速度分量和指定姿态角Yaw,Pitch,Roll飞行,根据M100飞行器厂商提供的使用说明,该飞行控制指令需要以50Hz的频率连续发送给M100飞行控制系统,方可保证飞行器按照指定预设参连续飞行。则通过TIM2的中断函数flight.setFlight(&flightData)和TIM_Cmd(TIM2,ENABLE)持续发送即可,控制器在初始化是将TIM2的中断频率设置为50Hz,从而使飞行器可以持续按照设定参数飞行;

飞行器机体飞行过程中,主控制器以指定的周期1秒持续调用SDK函数broadcastdata=coreApi->getBroadcastData()获取飞行器机体的飞行信息,broadcastdata为SDK库中提供的飞行信息结构体,包括飞行器X,Y,Z方向速度信息,GPS位置信息、电池电量信息、飞行器飞行高度信息、飞行器海拔高度信息、磁偏角信息等;该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,飞控系统收到此协议命令后,通过UART口给控制器返回broadcastdata结构体数据,该协议命令格式飞行器厂商尚未公开,提供封装函数供用户使用。本发明中只使用飞行器X,Y,Z方向速度信息、飞行器实际高度信息和电池电量信息。

主控制器判断飞行高度和电量两个参数,若飞行高度值超过阈值500米或者电量值低于阈值30%,则主控制器调用SDK函数flight.task(flight.TASK_LANDING)使飞行器机体执行下降并自动降落动作,该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,飞控系统收到此协议命令后,执行下降并着陆飞行动作,该协议命令格式飞行器厂商尚未公开,提供封装函数供用户使用。;

主控制器调用SDK函数coreApi->setControl(0)使主控制器释放对飞行器机体的飞行控制权,进而使遥控器获取飞行器的飞行控制权;该函数的执行是通过控制器的UART2口给飞控系统UART口发送内部协议命令,其中参数为0表示释放当前控制权,接收到此命令后飞控系统放弃与控制器通讯,把通讯通道与遥控器建立连接,使遥控器获取对飞行器的控制权,该协议命令格式飞行器厂商尚未公开,提供封装函数供用户使用。

若未超过阈值,则主控制器依次读取飞行器机体的飞行信息;进而主控制器调用FATFS文件系统操作函数,调用f_open(&fil,"0:/data.txt",FA_CREATE_ALWAYS|FA_WRITE)指令创建在SD卡根目录下创建data.txt文件,调用f_lseek(&fil,f_size(&fil))函数将文件读写指针定位在文件的最后,调用f_write()函数“hour min sec height temperature humidity air pressure Co2Vx Vy Vz battery<CR><LF>”指定格式存储SD卡,按照”$data,hour,min,sec,height,temperature,humidity,airpressure,Co2,Vx,Vy,Vz,battery<CR><LF>”的数据格式通过无线通讯模块发送到地面接收站并打印飞行器机体的飞行信息在LCD显示器。

如图3所示,无人机飞控系统4包括:锂电池4-1、无刷电机4-2、无线通讯单元4-3、控制系统URAT2 4-4、罗盘4-5、GPS4-6。

无人机飞控系统4通过串口与主控制器1连接,锂电池4-1、无刷电机4-2、无线通讯单元4-3、控制系统URAT2 4-4、罗盘4-5和GPS 4-6与无人机飞控系统4无线或有线通讯。

本发明的工作原理:

在需要起飞执行测量任务时,先手动打开飞行器电池开关为M100飞行器机体供电,完成飞行器起飞前的自检工作此过程需要3-5秒时间,由M100飞行器自身的飞控系统完成。进而给控制器上电,控制器依次初始化主控制器片上外设UART2,定时器TIM2,模数转换器ADC,系统滴答器Systick,实时时钟RTC,姿态传感器,无线通讯模块,SD卡,LCD显示器,各环境参数传感器初始化及读写测试。进而控制器通过UART2和飞行器通讯,依次调用SDK函数coreApi->getDroneVersion()获取飞行器的固件版本号,控制器调用SDK函数coreApi->getSDKVersion()获取SDK版本号,控制器调用函数coreApi->setControl(1)从遥控器获取控制器对飞行器的飞行控制权,控制器调用SDK函数flight.task(flight.TASK_TAKEOFF)使飞行器完成起飞动作,控制器调用SDK函数flight.setFlight(&flightData)和TIM_Cmd(TIM2,ENABLE),设置飞行器按照指定的X轴、Y轴、Z轴速度分量和指定方向角Yaw飞行,该飞行控制命令的发送频率为50Hz,通过TIM2中断函数完成,从而使飞行器可以持续按照设定参数飞行。飞行器飞行过程中,控制器以指定的周期1秒持续调用SDK函数broadcastdata=coreApi->getBroadcastData()获取飞行器的飞行信息,包括飞行高度、X轴速度、Y轴速度、Z轴速度、X轴加速度、Y轴加速度、Z轴加速度、Pitch、Roll、Yaw、经纬度、海拔、电池电量等,控制器判断飞行高度和电量两个关键参数,如果超过阈值,则控制器调用SDK函数flight.task(flight.TASK_LANDING)使飞行器执行下降并自动降落动作,控制器调用SDK函数coreApi->setControl(0)使控制器释放对飞行器的飞行控制权,进而使遥控器获取飞行器的飞行控制权。如果未超过阈值,则控制器依次读取RTC时间信息、飞行高度值、温度值、湿度值、气压值、二氧化碳浓度值、X轴速度、Y轴速度、Z轴速度、X轴加速度、Y轴加速度、Z轴加速度、Pitch、Roll、Yaw、海拔高度、电量值。进而控制器调用FATFS文件系统操作函数按照指定格式存储上述信息到SD卡,按照约定协议格式通过无线通讯模块发送到地面接收站,打印上述信息在液晶屏。系统主要可通过控制器的软件设置以定高和定时两种方式采集0-500米大气边界层剖面环境参数信息。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1