2024年3月28日发(作者:臧清一)
ELECTRONICS WORLD
・
技术交流
基于Matlab/Simulink仿真的STM32F407VET6六轴无人飞行器PID控制
吉林大学珠海学院 刘梦亭 庾振邦
珠海全志科技股份有限公司 马一飞
本设计以STM32F407VET6控制芯片为核
心控制器实现了六轴飞行器的设计,通过中央
控制器控制陀螺仪等传感器采集自身的状态数
据,通过相应的姿态拟合,PID等算法,最终
控制电机转速实现飞行器的自身悬停,定点
飞行,路线规划飞行,自动返航飞行。采用
Matlab/Simulink对PID算法进行数学模型的建
立及仿真,结果表明能够满足要求。
随着近年来科技的高速发展,人们已
经迈入智能化时代。而作为智能化时代最突
出产物之一的旋翼无人飞行器,其应用领域
越来越广泛。旋翼无人飞行器按照旋翼的个
数,旋翼无人机可以划分为单旋翼无人机和
多旋翼无人机(多轴无人机)。其中多轴无
人机通过协调各个旋翼的转速,可以实现垂
直起降、悬停、侧飞、倒飞等多种飞行动
作。多轴无人机的飞行姿态十分稳定,能够
有效克服外界环境对飞行姿态的不良影响。
而多轴无人机一般分为四轴、六轴或八轴飞
行器,其稳定性一般来说是八轴大于六轴大
于四轴。四轴飞行器尚且是一个欠驱动系
统,而六轴飞行器是一个完全驱动系统了。因此六轴飞行器受到
许多无人机爱好者以及需要应用无人机的部门或企业的青睐。发
展六轴飞行器必将会成为当今社会发展的趋势所需,对六轴飞行
器的研究也将是科技创新的潮流。
本设计应用STM32F407VET6为主芯片作为飞行器的行为
控制器,控制器内集成了惯性传感器icm20602;1个磁场传感器
ak8975;1个气压传感器spl06;8路硬件PWM采集;8路硬件PWM
输出;5路串口。飞行器通过中央控制器控制陀螺仪等传感器采集
自身的状态数据,通过相应的姿态拟合,PID等算法,最终控制电
机转速实现飞行器的自身悬停,定点飞行,路线规划飞行,自动返
航飞行。采用Matlab/Simulink进行PID控制的仿真,对比参数变化
对飞行器的稳定性的影响。
图1 总硬件电路连接示意图
收机接口。经飞行控制器处理后将所对应的信号传输到电子调速器。
通过电子调速器控制相对应的无刷电机,带动螺旋桨实现飞行动作。
主控芯片在飞行器上起着至关重要的作用,采集ICM20602六
轴传感器,AK8975电子罗盘,SPL06-001气压传感器,GPS数据信
号和遥控信号,控制飞行器电调电机的稳定运行实现飞行器的飞行
姿态,同时控制LED为状态显示。
2 软件设计
系统软件设计主要包括飞行器中央控制器的程序设计,飞控一
方面要接收和解析遥控器发送的飞行命令,另一方面还要融合惯性
测量单元六轴传感器和电子罗盘的数据进行飞行姿态的检测和调整
控制,使飞行器能平稳悬停和执行飞行任务。飞行器软件流程图如
图2所示。
1 硬件设计
飞行器的控制实现方式:通过Devo10遥控将信号传输到rx1002接
收机上,接收机将获取的信号转换成PPM信号传输到飞行控制器的接
主程序首先单片机内部始终初始化、中断配置初始化和引脚功
能配置,接着进行各通讯串口的初始化与传感器进行对接,遥控器
接收和电调控制输出初始化等,再接着进行各通讯串口的初始化与
•
116
•
ELECTRONICS WORLD
・
技术交流
传感器进行对接,遥控器接收和电调控制输出初始化等,再接着进
行参数配置的读取,参数配置对于多旋翼无人机来说至关重要,不
同的飞行环境,不同的硬件安装,参数配置也会不尽相同,事先调
试好各个参数配置,无人机的飞行状态效果就会更好。
图2 飞行器软件流程图
飞行器飞起后,MCU不停接受惯性测量传感器传回来的飞行
器姿态数据,经过融合转换后,控制PWM波的输出从而控制电
调,控制电机和螺旋桨的转速,达到控制飞行器稳定悬停的作用,
在融合惯性测量的同时飞行器还一边等待遥控器是否发出遥控指
令,从而控制飞行器的飞行运动。进一步的再融合GPS模块的位置
信息既能进行自主巡航任务,流程图如图3所示。
STM32F407VE6芯片在接受到PC地面站发送的坐标信息后进行
存储,并用方向余弦算法计算出当前的起飞位置到设定的巡航点的
偏航交,自动巡航控制算法启动后,将控制飞行器起飞,期间不断
地调整飞行器达到预设的高度值,同时计算飞行器的偏航角,当实
际偏航角等于计算的理论值附近时,飞行器开始飞向事先设定的目
标巡航点,在向目标飞行的过程中,控制器将会不断地执行上述的
算法调整,保持飞行器的最佳飞行姿态,保证了飞行器在收到环境
外力的影响后依然也稳定地朝着设定目标巡航点前进。在达到目标
巡航点后,六轴飞行器执行降落命令。
图3 自主巡航程序流程图
3 仿真
飞行器应用的PID控制算法属于一种线性控制器,这种控制器
被广泛应用于多轴飞行器上。要控制多轴飞行器,显而易见的是控
制它的角度,那么最简单,同时也是最容易想到的一种控制策略就
是角度单级PID控制器,如图4所示。
图4 角度单级PID原理框图
角度单级PID算法只考虑到飞行器的角度信息,如果期望飞行
器稳定性更佳并提高其运动性能,我们可以再加一个PID算法控制
其角速度。那么将角度PID算法和角速度PID算法串起来,就成了
角度/角速度-串级PID算法了。
角度/角速度-串级PID原理框图如图5所示。
在MATLAB/SIMULINK环境下搭建仿真模型,对角度单级PID
算法进行Simulink建模如图6所示。
•
117
•
ELECTRONICS WORLD
・
技术交流
图5 角度/角速度-串级PID原理框图
图6 PID控制仿真系统
图7
图8
假设输入误差为6,调参后得时
图像最稳定,如图7所示。取参数
时,P直接影响是否达到或超过期望值,如图8所示。取参数
时,I影响系统追踪期望的速度快慢,即
•
118
•
响应快慢,如图9所示。取参数
时,D影响
系统阻尼大小,在PI调解后能润滑曲线,但影响不大,如图10所示。
图9
图10
4 结束语
本设计通过STM32F407VE6控制陀螺仪等传感器采集自身的状
态数据,通过相应的姿态拟合,PID等算法,最终控制电机转速实
现飞行器的自身悬停,定点飞行,路线规划飞行,自动返航飞行。
基金项目:2017年广东省大学生创新创业项目“基于STM32F4
的自动巡航六轴飞行器”(2);2018年吉林大学珠
海学院教学质量工程“基于Matlab的数字信号处理实践教学层次设
计”(ZLGC20180802)。
作者简介:
刘梦亭(1981—),女,江西景德镇人,工学硕士,讲师,主
要研究方向:系统工程,信号处理,智能控制。
庾振邦(1998—),男,广东广州人,在校大学生,主要研究
方向:自动控制,信号处理。
马一飞(1997—),男,广东广州人,工学学士,软件助理工
程师,主要研究方向:图像质量优化,ISP驱动算法。
2024年3月28日发(作者:臧清一)
ELECTRONICS WORLD
・
技术交流
基于Matlab/Simulink仿真的STM32F407VET6六轴无人飞行器PID控制
吉林大学珠海学院 刘梦亭 庾振邦
珠海全志科技股份有限公司 马一飞
本设计以STM32F407VET6控制芯片为核
心控制器实现了六轴飞行器的设计,通过中央
控制器控制陀螺仪等传感器采集自身的状态数
据,通过相应的姿态拟合,PID等算法,最终
控制电机转速实现飞行器的自身悬停,定点
飞行,路线规划飞行,自动返航飞行。采用
Matlab/Simulink对PID算法进行数学模型的建
立及仿真,结果表明能够满足要求。
随着近年来科技的高速发展,人们已
经迈入智能化时代。而作为智能化时代最突
出产物之一的旋翼无人飞行器,其应用领域
越来越广泛。旋翼无人飞行器按照旋翼的个
数,旋翼无人机可以划分为单旋翼无人机和
多旋翼无人机(多轴无人机)。其中多轴无
人机通过协调各个旋翼的转速,可以实现垂
直起降、悬停、侧飞、倒飞等多种飞行动
作。多轴无人机的飞行姿态十分稳定,能够
有效克服外界环境对飞行姿态的不良影响。
而多轴无人机一般分为四轴、六轴或八轴飞
行器,其稳定性一般来说是八轴大于六轴大
于四轴。四轴飞行器尚且是一个欠驱动系
统,而六轴飞行器是一个完全驱动系统了。因此六轴飞行器受到
许多无人机爱好者以及需要应用无人机的部门或企业的青睐。发
展六轴飞行器必将会成为当今社会发展的趋势所需,对六轴飞行
器的研究也将是科技创新的潮流。
本设计应用STM32F407VET6为主芯片作为飞行器的行为
控制器,控制器内集成了惯性传感器icm20602;1个磁场传感器
ak8975;1个气压传感器spl06;8路硬件PWM采集;8路硬件PWM
输出;5路串口。飞行器通过中央控制器控制陀螺仪等传感器采集
自身的状态数据,通过相应的姿态拟合,PID等算法,最终控制电
机转速实现飞行器的自身悬停,定点飞行,路线规划飞行,自动返
航飞行。采用Matlab/Simulink进行PID控制的仿真,对比参数变化
对飞行器的稳定性的影响。
图1 总硬件电路连接示意图
收机接口。经飞行控制器处理后将所对应的信号传输到电子调速器。
通过电子调速器控制相对应的无刷电机,带动螺旋桨实现飞行动作。
主控芯片在飞行器上起着至关重要的作用,采集ICM20602六
轴传感器,AK8975电子罗盘,SPL06-001气压传感器,GPS数据信
号和遥控信号,控制飞行器电调电机的稳定运行实现飞行器的飞行
姿态,同时控制LED为状态显示。
2 软件设计
系统软件设计主要包括飞行器中央控制器的程序设计,飞控一
方面要接收和解析遥控器发送的飞行命令,另一方面还要融合惯性
测量单元六轴传感器和电子罗盘的数据进行飞行姿态的检测和调整
控制,使飞行器能平稳悬停和执行飞行任务。飞行器软件流程图如
图2所示。
1 硬件设计
飞行器的控制实现方式:通过Devo10遥控将信号传输到rx1002接
收机上,接收机将获取的信号转换成PPM信号传输到飞行控制器的接
主程序首先单片机内部始终初始化、中断配置初始化和引脚功
能配置,接着进行各通讯串口的初始化与传感器进行对接,遥控器
接收和电调控制输出初始化等,再接着进行各通讯串口的初始化与
•
116
•
ELECTRONICS WORLD
・
技术交流
传感器进行对接,遥控器接收和电调控制输出初始化等,再接着进
行参数配置的读取,参数配置对于多旋翼无人机来说至关重要,不
同的飞行环境,不同的硬件安装,参数配置也会不尽相同,事先调
试好各个参数配置,无人机的飞行状态效果就会更好。
图2 飞行器软件流程图
飞行器飞起后,MCU不停接受惯性测量传感器传回来的飞行
器姿态数据,经过融合转换后,控制PWM波的输出从而控制电
调,控制电机和螺旋桨的转速,达到控制飞行器稳定悬停的作用,
在融合惯性测量的同时飞行器还一边等待遥控器是否发出遥控指
令,从而控制飞行器的飞行运动。进一步的再融合GPS模块的位置
信息既能进行自主巡航任务,流程图如图3所示。
STM32F407VE6芯片在接受到PC地面站发送的坐标信息后进行
存储,并用方向余弦算法计算出当前的起飞位置到设定的巡航点的
偏航交,自动巡航控制算法启动后,将控制飞行器起飞,期间不断
地调整飞行器达到预设的高度值,同时计算飞行器的偏航角,当实
际偏航角等于计算的理论值附近时,飞行器开始飞向事先设定的目
标巡航点,在向目标飞行的过程中,控制器将会不断地执行上述的
算法调整,保持飞行器的最佳飞行姿态,保证了飞行器在收到环境
外力的影响后依然也稳定地朝着设定目标巡航点前进。在达到目标
巡航点后,六轴飞行器执行降落命令。
图3 自主巡航程序流程图
3 仿真
飞行器应用的PID控制算法属于一种线性控制器,这种控制器
被广泛应用于多轴飞行器上。要控制多轴飞行器,显而易见的是控
制它的角度,那么最简单,同时也是最容易想到的一种控制策略就
是角度单级PID控制器,如图4所示。
图4 角度单级PID原理框图
角度单级PID算法只考虑到飞行器的角度信息,如果期望飞行
器稳定性更佳并提高其运动性能,我们可以再加一个PID算法控制
其角速度。那么将角度PID算法和角速度PID算法串起来,就成了
角度/角速度-串级PID算法了。
角度/角速度-串级PID原理框图如图5所示。
在MATLAB/SIMULINK环境下搭建仿真模型,对角度单级PID
算法进行Simulink建模如图6所示。
•
117
•
ELECTRONICS WORLD
・
技术交流
图5 角度/角速度-串级PID原理框图
图6 PID控制仿真系统
图7
图8
假设输入误差为6,调参后得时
图像最稳定,如图7所示。取参数
时,P直接影响是否达到或超过期望值,如图8所示。取参数
时,I影响系统追踪期望的速度快慢,即
•
118
•
响应快慢,如图9所示。取参数
时,D影响
系统阻尼大小,在PI调解后能润滑曲线,但影响不大,如图10所示。
图9
图10
4 结束语
本设计通过STM32F407VE6控制陀螺仪等传感器采集自身的状
态数据,通过相应的姿态拟合,PID等算法,最终控制电机转速实
现飞行器的自身悬停,定点飞行,路线规划飞行,自动返航飞行。
基金项目:2017年广东省大学生创新创业项目“基于STM32F4
的自动巡航六轴飞行器”(2);2018年吉林大学珠
海学院教学质量工程“基于Matlab的数字信号处理实践教学层次设
计”(ZLGC20180802)。
作者简介:
刘梦亭(1981—),女,江西景德镇人,工学硕士,讲师,主
要研究方向:系统工程,信号处理,智能控制。
庾振邦(1998—),男,广东广州人,在校大学生,主要研究
方向:自动控制,信号处理。
马一飞(1997—),男,广东广州人,工学学士,软件助理工
程师,主要研究方向:图像质量优化,ISP驱动算法。