0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于RT-Thread与滑模控制的微型多旋翼定点控制系统研究

机电信息杂志 来源:机电信息杂志 2024-01-15 14:07 次阅读

引言

微型飞行器在情报侦察[1]、遥感测绘[2]等领域有着极高的应用价值,而定点悬停是微型飞行器各项动作的基础,研究微型飞行器的定点悬停有着不可小觑的实用价值。

目前,主流的多旋翼定点方法有基于GPS的定点方法、基于视觉系统的定点方法[3]、基于光流的定点方法[4]以及基于UWB的定点方法[5]。本文以微型无人机光流定点控制为研究对象,完成了微型飞行器定点控制系统的设计与实现,提出了基于滑模控制的定点控制方法,并通过实验进行了验证。

1 总体方案与硬件设计

微控制器采用基于Coretex-M3内核的STM32F103C8,内置浮点运算单元等,主频最高72 MHz,非常适合微型飞控开发。无线通信模块为nRF24L01,支持实时双向通信,用于控制指令的接收与控制器参数无线调试。姿态传感器为MPU6050,内置数字运动处理引擎。罗盘为HMC5883L,最大输出频率可达160 Hz。光流模块为PMW3901MB,支持80 mm至无限远的工作距离。ToF测距传感器为VL53L0X,测量频率可达50 Hz。总体方案设计如图1所示。

2050686c-b36c-11ee-8b88-92fbcf53809c.png

硬件设计如图2所示,为尽可能减小PCB面积,便于在微型无人机上安装,元器件采用双面布局,完成后PCB为边长不超过4.5 cm的正方形。

205fb8ee-b36c-11ee-8b88-92fbcf53809c.png

1 现场总线技术的特点分析

虽然仅依靠前台系统即可实现飞行控制,但随着飞控中传感器种类的扩增以及飞行任务需求的日益增多,前后台系统已无法胜任日趋复杂的应用场景。引入RTOS后,将有效解决该问题。本设计中,操作系统采用RT-Thread NanoV3.1.5,小巧精悍,拥有完整内核,支持抢占式调度。此外还添加了FinSH[6]组件,用以查看各线程栈的最大使用量并合理分配各线程栈大小,避免线程栈溢出导致硬错误。姿态传感器和罗盘基于同一路I2C与微控制器通信,因此信号量互斥地使用I2C总线。

多线程调度方式、线程优先级、线程栈大小、中断优先级等的设置是本设计中稍难的点,如果安排不合理,则会导致硬实时控制无法实现、线程死锁、硬错误等问题。一般而言,在单核多任务系统中,并发运行的主线程及其他各线程可视为后台,而支持操作系统运行的SysTick、PendSV中断及其他中断则可视为前台。

除操作系统自带的tShell和tidle线程外,其余线程负责完成远程控制指令接收,姿态、高度、光流信息的获取等,具体如表1所示。

208c70a0-b36c-11ee-8b88-92fbcf53809c.png

设置NVIC分组为两位抢占优先级、两位响应优先级。SysTick中断负责实现RTOS的调度,PendSV中断负责上下文切换,定时器TIM4负责脉冲宽度调制波的发生,定时器TIM1工作于周期中断模式,负责进行4路脉冲宽度调制,完成电机转速控制与姿态控制,USART1实现字符缓冲接收以支持FinSH,具体如表2所示。

209f30a0-b36c-11ee-8b88-92fbcf53809c.png

3 控制方法

微型飞行器中各传感器方向的定义、坐标系定义如图3所示。

20bae1ce-b36c-11ee-8b88-92fbcf53809c.png

姿态获取不作为本文重点,采用Digital Motion Processing库获取四元数(q0,q1,q2,q3)及三轴角速度(ωx,ωy,ωz),按式(1)可由四元数转换得欧拉角(φ,γ,θ),配合三轴角速度作为姿态控制的输入。

20cdc294-b36c-11ee-8b88-92fbcf53809c.png

整体控制设计如图4所示,高度和航向控制较为简单,图中不进行说明。姿态控制上选择串级PID,内环控制角速度,以100 Hz运行,外环控制角度,以25 Hz运行,同时将外环角度环输出的期望角速度等份递增地输出至内环角速度控制器以获得平滑的控制效果。

20d60062-b36c-11ee-8b88-92fbcf53809c.png

定点过程中往往需要定航向和定高,由罗盘和测距仪可得出航向与高度,经过简单的反馈控制即可实现航向和高度的锁定。对于航向的锁定采用简单的比例反馈控制即可实现良好的效果,对于高度采用比例积分微分控制可得到良好的效果,值得一提的是,经过激光测距仪测得的距离需引入横滚角和俯仰角校正[7]后才能得到高度。

采用式(1)计算所得偏航角存在漂移现象,因此根据磁力计在其x、y方向测得的磁感应强度分量可计算得到偏航角,在计算前需要对磁力计进行校正。

定点控制需要光流传感器的辅助,光流传感器输出连续两帧之间像素变化量Δpx和Δpy。由于光流传感器的水平位移与像素变化量、光流传感器距离地面高度、姿态角存在联系,因此根据光流传感器距离地面高度、像素变化量、姿态角可计算出光流传感器即飞行器的水平位移,计算方法如下:

20e96bca-b36c-11ee-8b88-92fbcf53809c.png

式中:Sx、Sy为根据光流传感器得到的x、y方向的位移,初值均为0;L为测距传感器测量结果;R为飞行器在距地面1 m时产生1个像素变化量对应的位移;Kx为针对飞行器横滚的校正系数;Ky为针对飞行器俯仰的校正系数;Kx、Ky和R均由实验测得。

光流速度由光流位移差分并经一阶低通滤波器得到,差分间隔不宜过短,否则计算所得光流速度会有很多毛刺,无法反映飞行器实际运动。

以横滚通道为例分析定点控制过程,假定微型多旋翼定高后横滚角γ保持在某非水平值γd>0,由运动学分析可知多旋翼将向右做加速运动。因定高定点过程中运动速度低,故可忽略风阻。可分析得出:

20fafb10-b36c-11ee-8b88-92fbcf53809c.png

式中:px为水平位置;g为重力加速度。

尽管采用速度—位置双闭环控制可将无人机水平位移控制在零附近,实现定点控制,但该方法存在参数多、调参复杂的问题,因此提出了基于滑模控制的多旋翼定点控制方法。

21035bb6-b36c-11ee-8b88-92fbcf53809c.png

式中:pxd为期望的无人机位置,一般取0;s、z1、z2为滑模控制器中间变量;其余的c、k、η为控制器参数。

相比于速度—位置双闭环PID控制,调试参数由6个下降至3个。

4 飞行实验

对所设计的多旋翼定点控制系统进行实验验证。依次调节角速度环PID、角度环PID参数,保证角度控制快速无静差。校正系数Kx和Ky均取480.0像素,R取0.213cm/(m·像素),滑模控制中c=0.0172,k=0.0172,η=5×10-5。开始光流定点后,微型飞行器在其x方向和y方向的位移曲线及位置如图5所示。

211431fc-b36c-11ee-8b88-92fbcf53809c.png

可以看到微型飞行器位置保持在(0,0)附近,x、y方向位置均值分别为1.12cm、-0.86cm,方差分别为16.39cm2、32.69cm2,成功实现了定点控制。

5 结语

本文采用RT-Thread设计并实现了一种微型多旋翼定点控制系统,其软件中多个中断/异常嵌套运行、多个线程并发运行,并采用信号量保护了临界资源;控制上采用DMP和角速度—角度双闭环PID进行姿态控制,应用罗盘和激光测距仪实现偏航角与高度的闭环控制,融合光流传感器、测距仪、姿态传感器数据得到水平速度、位移,并对水平位移采用滑模控制器进行控制,解决了速度—位置双闭环定点方式控制参数多、调参难的问题。最终通过飞行实验验证了本系统的可行性。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6812

    浏览量

    147648
  • 控制系统
    +关注

    关注

    41

    文章

    5964

    浏览量

    108713
  • RT-Thread
    +关注

    关注

    31

    文章

    1149

    浏览量

    38894
  • 微型飞行器
    +关注

    关注

    0

    文章

    2

    浏览量

    3012

原文标题:基于RT-Thread与滑模控制的微型多旋翼定点控制系统研究

文章出处:【微信号:机电信息杂志,微信公众号:机电信息杂志】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何对RT-Thread内核有基本的了解?

    RT-Thread 的时钟管理以时钟节拍为基础,时钟节拍是 RT-Thread 操作系统中最小的时钟单位。
    的头像 发表于 07-19 10:12 6791次阅读
     如何对<b class='flag-5'>RT-Thread</b>内核有基本的了解?

    教室节能控制系统研究

    教室节能控制系统研究
    发表于 01-18 21:01

    飞行器的设计

    飞行器姿态, 又具 有较强抗干扰和环境 自适应能力的姿态控制器是微小型四飞行器飞行控制系统研究的当务之急。 五.四
    发表于 11-28 09:29

    【EFM8 Universal Bee申请】基于PID控制的四飞行器仿真研究及实验分析

    量、非线性的复杂系统。这个优点可以使四飞行器在更狭小的空间以及更复杂的环境下执行任务。因此,针对微小型四飞行器的关键技术和
    发表于 10-24 17:24

    飞行器设计与控制

    北航飞行器设计与控制详解
    发表于 07-11 07:30

    基于RT-Thread和N32G457的门禁控制系统设计方案

    1、基于RT-Thread和N32G457的门禁控制系统设计应用背景1.应用场景可以作为家庭的安全门锁控制系统;2.同样可以作为企业的门禁考勤系统;实现功能1.通过按键实现指纹的添加和
    发表于 08-05 11:27

    RT-Thread编程指南

    RT-Thread编程指南——RT-Thread开发组(2015-03-31)。RT-Thread做为国内有较大影响力的开源实时操作系统,本文是RT
    发表于 11-26 16:06 0次下载

    MTPA控制的直接转矩控制系统研究

    MTPA控制的直接转矩控制系统研究
    发表于 01-21 11:54 13次下载

    RT-Thread开发,如何有效学习RT-Thread的五个步骤

    RT-Thread推出RT-Thread Inside战略开放RT-Thread开发平台授权合作,与硬件十万个为什么合作首次推出第一款RT-Inside的开发板——iBox物联网开发套
    的头像 发表于 09-25 09:55 3.4w次阅读
    <b class='flag-5'>RT-Thread</b>开发,如何有效学习<b class='flag-5'>RT-Thread</b>的五个步骤

    RT-thread】如何将RT-thread系统移植到stm32

    1.RT-thread简介T-Thread(Real Time-Thread),是一个嵌入式实时多线程操作系统。在 RT-Thread
    发表于 12-08 11:06 20次下载
    【<b class='flag-5'>RT-thread</b>】如何将<b class='flag-5'>RT-thread</b><b class='flag-5'>系统</b>移植到stm32

    RT-Thread开源作品秀】基于RT-Thread的星务平台研究

    本作品为了验证星务软件在RT-Thread系统运行的可行性,底层是否能够驱动星务软件,同时扩展RT-Thread应用范围。ART-Pi作为卫星下位机,...
    发表于 01-25 18:26 5次下载
    【<b class='flag-5'>RT-Thread</b>开源作品秀】基于<b class='flag-5'>RT-Thread</b>的星务平台<b class='flag-5'>研究</b>

    RT-Thread学习笔记 RT-Thread的架构概述

    的种种优越之处。RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS),具有完全的自主知识产权。经过 16 个年头的沉淀,伴随着物联网的兴起,它正演变成一个功能强大、组件丰富
    的头像 发表于 07-09 11:27 4001次阅读
    <b class='flag-5'>RT-Thread</b>学习笔记 <b class='flag-5'>RT-Thread</b>的架构概述

    RT-Thread文档_RT-Thread 简介

    RT-Thread文档_RT-Thread 简介
    发表于 02-22 18:22 5次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> 简介

    RT-Thread文档_RT-Thread SMP 介绍与移植

    RT-Thread文档_RT-Thread SMP 介绍与移植
    发表于 02-22 18:31 7次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> SMP 介绍与移植

    RT-Thread文档_FinSH 控制

    RT-Thread文档_FinSH 控制
    发表于 02-22 18:41 0次下载
    <b class='flag-5'>RT-Thread</b>文档_FinSH <b class='flag-5'>控制</b>台