基于STM32的四轴飞行器运动控制系统设计
2019-09-05廉文昊李波葛国庆张海涛
廉文昊 李波 葛国庆 张海涛
摘要:本设计主要分析了四轴飞行器的飞行原理,通过STM32单片机作为控制核心对四轴飞行器进行姿态信息采集和姿态控制,根据四轴飞行器的飞行特点,设计了四轴飞行器运动控制系统。通过对四旋翼工作模式与控制参数的研究,设计了串级PID控制器驱动电动机工作,从而实现四轴飞行器的起飞,悬停等姿态控制。
关键词:四轴飞行器;STM32;四元数;串级PID控制器
四轴飞行器作为一种具有特殊结构的旋转翼无人飞行器,体积小,负载能力强,易于控制,能够垂直起降,单位体积能够产生更大升力,具有很强的机动性,且能执行各种特殊、危险任务。四轴飞行器包含四个独立的控制输入以及六个自由度的输出,是一种非完全驱动性系统,所以四轴飞行器在软件控制上具有一定的复杂性,在飞行控制上,为了达到比较好的控制效果,需要通过合理的控制算法。本文主要分析了其飞行原理和相关飞行控制算法。
以STM32f103芯片为控制核心,陀螺仪保持四轴飞行器的稳定,3轴加速度传感器MPU6050对四轴飞行器的姿态进行检测,两者构成惯性导航模块,将位置信息发送给主控芯片,STM32f103芯片通过算法进行姿态解算,MCU再通过串级PID控制器以PWM信号调节电子调速器,从而控制电机的转速,实现飞行器的飞行姿态控制,其控制原理示意图如图1所示。
二、姿态运动原理
如图2所示。四轴飞行器有四个动力源,但四轴飞行器有六个自由度。四个动力源控制六个自由度,因此是欠驱动系统。电机转动会产生对机身的反扭矩,为平衡其对机身的反扭矩,对角线上的电机旋转方向應该相同,相邻的电机旋转方向应该相反。下面结合四轴飞行器的前后运动及俯仰运动姿态进行分析。
图2中,增加3号电机转速,同时减小1号电机转速,保持其它两个电机转速不变,但是反扭矩仍然要保持平衡。飞行器会发生一定程度的倾斜,使旋翼拉力产生水平分量,四轴飞行器会向前运动。
保持2,4电机转速相等,改变1,3电机转速。根据右手螺旋定则可判断出四轴机身绕X轴方向旋转即可实现俯仰运动。
飞行器在进行俯仰、翻滚运动的同时也会产生沿X、Y轴的水平运动。因此飞行器系统是一个高度耦合的非线性系统。
三、坐标变换矩阵
如图2,根据右手定则建立坐标系,用右手螺旋定则确定轴的正旋转方向。刚体固连坐标系b系为机体坐标系,并规定沿Y轴正方向为机头指向。n系为地理坐标系,并规定XYZ轴指向为东、北、天。根据空间向量在另两坐标轴上投影坐标的关系,可得到基本旋转的坐标变换矩阵。
飞行器的空间姿态可看作依次绕偏航轴、俯仰轴、翻滚轴做基本旋转后的复合结果。根据单位正交矩阵的性质从机体坐标系到地理坐标系的坐标变换阵为
四、四元数法求欧拉角
由于旋转矩阵法求欧拉角有奇异点,故采用四元数法。 根据四元数与向量旋转的关系,可得
上式对比坐标变换阵,发现可用四元数来求欧拉角。可用一阶龙格库塔法更新四元数,其中 为采样周期。则有
即只需知道在机体坐标系下的角速度即可更新四元数。
五、控制算法
利用串级PID控制算法,外环为角度环,内环为角速度环。角度期望值减去传感器反馈的角度值得到角度偏差值,这个值作为内环角速度环的输入,角速度环输出姿态控制量,控制量转化为PWM信号去控制电机,从而控制四轴飞行器的姿态。
六、总结
本文对四轴运动原理、姿态表示、数学模型、控制算法的一些方法进行了讨论,由于篇幅有限,本文仅为读者提供大概思路。
参考文献:
[1]何瑜.四轴飞行器控制系统设计及其姿态解算和控制算法研究[D].成都:电子科技大学,2015.
[2]刘豹,唐万生.现代控制理论[M].3版.北京:机械工业出版社,2006.
[3]秦永元.惯性导航[M].2版.北京:科学出版社,2014.
项目:该项目受河南科技大学大学生研究训练计划(SRTP)项目资助(NO.2018082)