基于STM32的四旋翼飞行器控制系统设计

来源:本站
导读:目前正在解读《基于STM32的四旋翼飞行器控制系统设计》的相关信息,《基于STM32的四旋翼飞行器控制系统设计》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《基于STM32的四旋翼飞行器控制系统设计》的详细说明。
简介: 四旋翼飞行器控制系统的性能决定了飞行效果的优劣,如何改善飞行控制系统使其拥有更良好的表现成为近几年的研究热点。根据四旋翼飞行器的飞行原理,设计了一种新型四旋翼飞行器控制系统。该系统以STM32作为主控制器,配合各姿态传感器实现飞行器姿态及位置的控制,并结合以姿态角为主要误差源的双环结构PID控制器,提高了飞行器的平稳性。经实际飞行验证,该飞行控制系统方案能够取得较稳定的飞行效果。

0 引言

目前,以精确的电子技术取代复杂的机械结构已成为一种趋势,四旋翼飞行器(four-rotor)以机载电子设备控制机身的姿态及运动,机械结构得到简化,降低了生产成本及维护成本。它可以实现垂直起降、悬停等空中动作,飞行速度为每秒几米甚至十几米,具有较高的机动性与操控性,与其他类型飞行器相比具有较明显的优势,在军工、警用、民用等诸多领域有广泛的应用前景。

四旋翼飞行器具有4个输入力,但却有6个状态输出,是一个欠驱动系统,具有非线性、强耦合、多变量等特性,因此对控制器的设计要求较高[1]。根据四旋翼飞行器结构特点及实际需求,选用意法半导体公司生产的STM32F405RG微处理器作为控制系统的主控制器,其强大的运算处理能力及丰富的片上资源能够满足四旋翼控制的需求。

1 四旋翼的飞行原理

四旋翼飞行器结构形式是一种最直观、最简单的稳定控制形式。四旋翼飞行器机身为两根刚性支架呈十字形交叉结构,飞控板、外部设备及电池等安装在支架的交叉处,作为飞行器动力来源的4个电机及旋翼轴对称地安装在支架的4个末端,相邻两个旋翼旋转方向相反,空中平衡飞行时相邻旋翼产生的反作用力相互抵消,防止机身自旋[2]。通过控制4个旋翼的转速,产生升力的变化,便可实现飞行器空中姿态的控制。四旋翼飞行器有6种基本的运动状态,分别是:垂直运动、前后运动、侧向运动、俯仰运动、滚转运动和偏航运动。基于以上基本运动状态,四旋翼可以完成各种复杂动作[3]。四旋翼的结构形式如图1所示。

基于STM32的四旋翼飞行器控制系统设计

2 系统硬件选型与电路设计

四旋翼飞行器的控制系统主要由主控制器、各种姿态传感器、数据传输模块、电机及其驱动模块组成。主控器通过SPI、IIC总线采集各姿态传感器的数据,实时计算飞行器相对于地面的姿态角和航向角的变化,结合相应的控制律与任务指令输出恰当的PWM波信号,电调根据PWM波处理产出相应的电压信号输入给4个电机,以此控制电机转速,实现自动调整飞行器在空中的姿态与位置。四旋翼飞行器飞行控制系统设计方案如图2所示。

基于STM32的四旋翼飞行器控制系统设计

2.1 主控制器

四旋翼控制系统对实时性、稳定性及低功耗具有较高要求,因此选用一款高性能的芯片作为其主控制器尤为重要。STM32F405RG基于32位ARM Cortex-M4内核开发,主频可达168 MHz,处理单条指令速度可达1.25 DMIPS/MHz,满足对数据处理速度的要求。它具有功耗动态调整功能,能够在运行模式下和从Flash存储器执行时实现低至238 A/MHz的电流消耗。多达15个高速通信接口,包括6个USART、3个SPI和3个IIC等,可用于将各传感器模块采集的姿态数据传输给主控制器。STM32集成多个PWM定时器,可实现多路PWM脉冲信号的输出。用户可使用SWD或JTAG两种模式下载和调试程序。

2.2 陀螺仪传感器

陀螺仪是飞行器惯导系统中的核心器件,用于检测俯仰、滚转和偏航3个方向的角速度,积分后可得到相应的倾斜角度[4]。控制器对倾斜角的控制使飞行器在受到外界干扰(如气流等)时能保持姿态的平稳。

系统采用体积小、功耗低的MAX21000型号3轴数字输出陀螺仪。用户可设定±31.25~±2 000 dps的量程范围,灵敏度可达960 digit/dps。通过10 MHz的SPI接口向STM32提供测得的角速度数据。陀螺仪工作时存在一定的温度漂移,需通过软件对陀螺仪中立点进行实时修正来提高数据的精准度。MAX21000陀螺仪电路原理如图3所示。

基于STM32的四旋翼飞行器控制系统设计

2.3 加速度传感器

本系统采用ST公司的LSM303D加速度计。该芯片整合了一个3轴加速度计和一个3轴磁场传感器。通过SPI接口向STM32提供数据。LSM303D加速度计电路原理如图4所示。

基于STM32的四旋翼飞行器控制系统设计

加速度传感器用于检测飞行器轴向的加速度,积分可得飞行速度与距离。陀螺仪的数据因为存在“温漂”,在积分作用下,较长时间后数据将不可靠,加速度计传感器的数据可以对陀螺仪的误差进行矫正。但同时加速度传感器对震动比较敏感,加入简单的滤波会降低数据的实时性,因此精确的姿态采集需多传感器配合实现。

2.4 高度计

HC-SR04超声波测距模块只需提供一个10 ?滋m以上的脉冲触发信号,将自动发射8个40 kHz方波,同时检测是否有返回波,根据发射信号与检测到返回信号的时间差可计算模块与障碍物的距离。该模块测量飞行器离地高度精度可达3 mm,在精度上优于气压计,但是也有其缺陷,当地面为草坪或被测障碍物表面不平整时,返回的信号太弱。同时该模块测距范围为2~400 cm,只能用于较低高度的检测。

飞行器在户外飞行时,高度易超出超声波模块的测量范围,则系统采用MS5611气压传感器测量高度[5]。上电时,气压传感器测量当前的稳定气压并保存为0 m气压,此后飞行器高度改变,在此参数基础上进行叠加。该芯片集成了一个24位AD转换器,将气压值转换成数字信号输出,测距精度可达10 cm。

3 四旋翼飞行器建模

选择合适的坐标系有利于四旋翼飞行器飞行状态的分析。如图1所示,本文选择地面坐标系为E(OXYZ),机体坐标系为B(oxyz)。地面坐标系与机体坐标系的关系为滚转角基于STM32的四旋翼飞行器控制系统设计、俯仰角基于STM32的四旋翼飞行器控制系统设计和偏航角基于STM32的四旋翼飞行器控制系统设计,表示分别绕Bx、By、Bz旋转到Ex、Ey、Ez轴的角度。从机体坐标系B到地面坐标系E的旋转矩阵R可表示为:

基于STM32的四旋翼飞行器控制系统设计

定义Fi(i=1,2,3,4)表示第i个旋翼产生的升力。在机体坐标系下,飞行器所受的拉力为:

基于STM32的四旋翼飞行器控制系统设计

代入旋转矩阵R可转换为飞行器在地面坐标系中的受力:

F基于STM32的四旋翼飞行器控制系统设计

四旋翼飞行器在地面坐标系中的线性位移为[x y z]T,根据牛顿第二定理F=ma,得线性加速度方程为:

基于STM32的四旋翼飞行器控制系统设计

定义l为飞行器臂长,M基于STM32的四旋翼飞行器控制系统设计、M基于STM32的四旋翼飞行器控制系统设计、M基于STM32的四旋翼飞行器控制系统设计分别为飞行器绕机体坐标系3个轴的转矩,I基于STM32的四旋翼飞行器控制系统设计、I基于STM32的四旋翼飞行器控制系统设计、I基于STM32的四旋翼飞行器控制系统设计分别为飞行器绕机体坐标系3个轴的转动惯量,i为旋翼i转速,则飞行器在滚转、俯仰、偏航3个方向上的转矩为:

基于STM32的四旋翼飞行器控制系统设计

由欧拉方程可得,四旋翼飞行器在地面坐标系中的角加速度方程式为:

基于STM32的四旋翼飞行器控制系统设计

令:

基于STM32的四旋翼飞行器控制系统设计

式(7)为四旋翼飞行器控制系统的4个输入力,U1、U2、U3、U4分别为飞行器的滚转力、俯仰力、偏航力及升力。结合式(4)、式(6)和式(7)可得四旋翼飞行器的动力学模型为:

基于STM32的四旋翼飞行器控制系统设计

该动力学模型忽略了空气阻力、机体形变、重力加速度随高度的改变而变化等对系统影响较小的因素,相对于实际飞行状态,该模型进行了简化,有利于控制算法的设计。

4 PID控制器设计

本系统采用双环PID设计,内回路为姿态PID回路,外回路为位置PID回路[6]。给出预期位置指令后,位置PID回路计算出所需改变的姿态角,输入给姿态回路,姿态回路计算出电机的控制量。姿态的改变可引起飞行器线性的运动,因此实施闭环设计以精确控制飞行器的姿态。位置控制回路的设计可以使飞行更精确、快速地按照设定轨迹飞行。PID控制器结构如图5所示。

基于STM32的四旋翼飞行器控制系统设计

四旋翼平衡飞行时,PID控制器以倾斜角作为其主要的误差来源,通过将偏差量的比例、积分和微分进行线性组合,构成控制量。比例参数的大小决定了控制器的响应速度,但参数过大会使系统不稳定;对角速度积分后可得飞行器的倾斜角度,从而产生抵抗力,消除倾斜角,直到飞行器达到平衡位置;飞行器偏差的产生与控制器的响应之间存在微秒级的滞后,微分环节能提前抑制倾斜角的偏差,但是过强的微分会放大传感器的噪声干扰,降低控制器的抗干扰性能。因此设定恰当的PID控制参数才能保证飞行器达到稳定的飞行状态。

5 飞行试验结果

飞行实验在室内进行,实验过程中,地面监控站接收飞行器通过串口模块传送的实时飞行数据,并将其保存,同时设定悬停高度为2 m。手动操控四旋翼飞行器起飞至2 m左右,切换到平衡模式,使其进行悬停飞行,在此过程中,飞控系统对飞行器的滚转角、俯仰角及高度进行自主控制。飞行实验时间约为2 min,实验结果如图6~8所示。

基于STM32的四旋翼飞行器控制系统设计

从图6和图7可以看出,飞行器的滚转角度和俯仰角度基本控制在±2°以内,俯仰角的稳定性略高于滚转角,两个姿态角都达到了较理想的控制效果。

图8为高度曲线,从图中可以看出,飞行器在最初的几秒内自主调整到设定的高度位置,之后的时间稳定在1.9 m到2.1 m之间。飞行器高度的自主调整在0.2 m的范围波动,但总体仍在目标高度附近。

6 结论

本文提出了一套四旋翼飞行器控制系统的设计方案,经悬停飞行实验验证,飞行器能够成功实现滚转、俯仰和高度的自主控制,各个模块性能可靠、稳定,达到了设计要求。飞行控制系统以STM32为主控制器,与传统单片机相比具有较明显优势,其丰富的片上资源有利于系统功能的进一步扩展,为后续课题的研究提供了良好的平台。四旋翼飞行器操控难度低、飞行角度灵活,在军事侦查、安全巡检、低空航拍等众多领域具有广泛的应用前景。

参考文献

[1] 刘乾,孙志锋.基于ARM的四旋翼无人飞行器控制系统[J].机电工程,2011(10):1237-1240.

[2] 殷强.四旋翼无人机自主控制系统研究[D].天津:天津大学,2011.

[3] 杨明志,王敏.四旋翼微型飞行器控制系统设计[J].计算机测量与控制,2008,16(4):485-490.

[4] 韩涛.四倾转旋翼机直升机模式飞行控制系统研究[D].哈尔滨:哈尔滨工业大学,2012.

[5] 冀明,卢京潮.基于Cortex-M4的四旋翼飞行控制系统设计[J].计算机测量与控制,2013,21(7):1816-1821.

[6] 宿敬亚,樊鹏辉,蔡开元.四旋翼飞行器的非线性PID姿态控制[J].北京航空航天大学学报,2011,37(9):1054-1058.

提醒:《基于STM32的四旋翼飞行器控制系统设计》最后刷新时间 2024-03-14 00:57:13,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《基于STM32的四旋翼飞行器控制系统设计》该内容的真实性请自行鉴别。