您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 基于STM32的四旋翼无人飞行器..
1专业方向课程设计论文题目基于STM32的四旋翼无人飞行器2基于STM32的四旋翼无人飞行器摘要:针对四旋翼飞行器,设计并实现了一种基于STM32的微型飞行控制器。以新型ARMCortex-M3内核微处理器STM32作为计算控制单元,对飞行控制器进行了模块化设计,包括主控、惯性测量、执行驱动等单元模块。给出了系统软件设计流程,研究了一种基于互补滤波器的飞行姿态解算方法,实验表明控制器方案合理有效。关键词:四旋翼飞行器;STM32;飞行器控制器;信息融合;飞行控制3AflightcontrollerforquadcopterbasedonSTM32Abstract:Amicroflightcontrollerforquad-rotorbasedonSTM32wasdesignedandimplemented.Thecontrollerworkedwiththenew-fashionedARMCortex-M3microprocessorSTM32asitscalculationandcontrolunit.Andthecontrollerwasmodularizedasmainunit,inertialmeasurementunitandactuatorunit.Inthepaper,thesystemsoftwareflowchart,methodforcalculatingtheflightattitudebasedondistributedfusionfilterwereproposedaswellasthecontrollawinallusiontothepropertyofquad-rotor.Theexperimentsshowthatthedesignoftheflightcontrolleriseffectiveandrational.Keywords:Quadcopter;STM32;flightcontroller;informationfusion;flightcontrol;4目录1四旋翼飞行器简介.......................................................................................................................62飞行控制器硬件设计...................................................................................................................72.1主控模块............................................................................................................................72.2数据采集模块....................................................................................................................72.3遥控信号接收处理模块....................................................................................................82.4执行机构驱动模块............................................................................................................93飞行控制器软件设计.................................................................................................................103.1软件设计流程..................................................................................................................103.2控制方法..........................................................................................................................104参考文献.....................................................................................................................................135微型四旋翼飞行器是一种具有4个对称分布的旋翼、由电驱动、能垂直起降的飞行器。具有结构简单、稳定性好、承载能力强的特点。针对四旋翼飞行器,设计了一种基于STM32的飞行控制器,其具有体积小、功耗低、硬件和软件资源丰富,开发效率高、成本低等优势。STM32系列处理器是ST公司新推出的一款基于高性能、低成本、低功耗要求的嵌入式处理器,应用专门设计的ARMCortex-M3低功耗高速内核。STM32丰富的片上资源可满足各类传感器通讯需求。基于STM32的飞行控制器与传统的飞行控制器相比可大大降低系统的开发成本、节约资源。飞行控制器中姿态角解算应用了互补滤波的思想,该方法在保证精度情况下克服了经典卡尔曼滤波器计算负担大的缺点,具有较大的理论和应用价值。61四旋翼飞行器简介四旋翼飞行器总体布局形式上属于非共轴式碟形飞行器,与常规旋翼式飞行器相比,其结构更为紧凑,能够产生更大的升力。通过控制4个旋翼的转速可使飞行器实现各种飞行动作。四旋翼飞行器的基本结构如图1所示。图1四旋翼飞行器结构示意图四旋翼飞行器的4只旋翼安装于十字形机体的4个顶点位置,分为顺时针旋转(1、3)和逆时针旋转(2、4)2组。当4只旋翼转速相等时,相互间抵消反扭力矩;同时增加或减小4只旋翼的转速可实现上升或下降运动;当1号与3号旋翼转速增加(减小),2号和4号转速不变,飞行器实现偏航。当1号和3号旋翼转速固定,2号旋翼转速增加(减小),4号旋翼转速减小(增加),飞行器实现向左(向右)飞行。当2号和4号旋翼转速固定,1号旋翼转速增加(减小),3号旋翼转速减小(增加),飞行器实现后退(前进)飞行。72飞行控制器硬件设计飞行器控制器要能够通过采集处理微型MEMS惯性器件和三维地磁传感器数据,计算飞行器的姿态角和航向角,并根据飞行指令和任务要求,结合相应的控制律给出适当的控制信号,控制飞行器的执行机构,改变飞行器的姿态和位置等。根据模块化设计思想,设计了飞行控制器,其中包括主控制模块、数据采集模块、信号接收处理模块、执行机构驱动模块以及数据通讯接口。飞行控制器中选取STM32处理器作为主控芯片,硬件平台总体结构如图2所示。图2飞行控制器硬件结构2.1主控模块控制器的核心是主控制模块,它应具有多路模拟信号的高精度采集能力;输出PWM脉冲控制信号能力;具有PPM信号捕获解码能力;;此外,还应具有多个通信信道、充足的负载伺服机输出通道以及数据接口。考虑到不同环境下调试的便捷性,主控模块设计了2种程序下载方案即JTAG方式以及ISP方式,并预留了多个负载外设接口以满足照相机等负载设备的控制需求。2.2数据采集模块为了提高飞行器控制可靠性,需要得到飞行器的俯仰和滚转角作为姿态反馈,形成闭环控制。为提高其飞行稳定性,需加入角速率反馈以增加阻尼。飞行器的飞行姿态通过惯性测量单元来获取,包括3只MEMS陀螺仪、三轴加速度传感器和全向磁场传感器以及最高精度达15cm的静压高度计。飞行器位置8信息通过定位系统获取。传感器原理图如下:图3传感器模块控制器中选用MPU6050作为三轴加速度计和三轴角速度传感器。加速度计和角速率陀螺通过IIC接口与处理器进行通讯。2.3遥控信号接收处理模块如图4:9图4接收机设计中采用了直接购买的发射机和接收机。发射机通过2.4G的免费频段发送PPM信号,接收机接收到信号之后,解码成PWM信号传给主控模块,再有主控模块结合采集的传感器姿态数据进行相应的控制。2.4执行机构驱动模块由于四旋翼飞行器要实现自主悬停的关键是需要飞行器在倾斜时能在最短的时间内回到平衡位置,这就要求执行机构能够快速反应,即能迅速地增大或减小转速。针对四旋翼飞行器,执行机构中选用了无刷电机,无刷电机需要配以无刷电调使用。常见商品电调采用的是PPM信号,周期为20ms。103飞行控制器软件设计3.1软件设计流程本控制器的软件部分采用c语言编制,主要完成硬件平台初始化、数据采集处理、遥控信号解码、电机控制、姿态角解算以及控制律的实现。主程序流程图如5所示。图5程序流程图5中给出了飞行控制器软件部分的基本流程。3.2控制方法比例、积分、微分(PID)控制器是当今工业界广泛使用的过程控制器,具有简单、可靠和容易集成等特点[3]。PID控制器结构清晰,参数可调,适用于各种控制对象,不需要被控系统的精确分析模型,并且算法简单高效,可在现场根据实际调节参数而取得较好的控制效果,通过PID参数整定实现在比例、微分、积分三个方面参数调整的控制策略来达到最佳系统响应和控制效果。完整的PID控制表达式如下:01()()[()()]tpdidetutketetdtTTdt其中,pk为比例增益,iT为时间积分常数,dT为时间微分常数,()ut为输出11变量,()et为偏差数量。在FPGA中,PID算法的实现采用数字逼近的计算方法。由于FPGA的并行处理的方式,在传感器满足其更新速率和传输性能的基础上,随着数值采样速率的增加,其数字逼近的数值越接近真实数值。在这里,采用求和的方法代替积分运算、向后差分运算代替微分运算。FPGA的精确时钟信号能够实现随着传感器性能的提高,使积分、微分运算结果精度越来越高,并能够最大限度保证积分间隔的准确。00()()tkietdtTei()()(1)detekekdtT其中,T为采样周期,k是采样序列号。在四旋翼飞行器控制系统中,可以将其积分运算和微分运算的结果近似看做四旋翼飞行器的姿态和角速度。0()()taxisetdtATt()axisdetMEGdt其中,AT代表相应axis(包括Pitch、Roll、Yaw)三个轴上的姿态,ACC代表相应axis(包括Pitch、Roll、Yaw)三个轴上的角速度。12图6测试平台134参考文献[1]楼然苗.单片机课程设计指导.第三版.北京:航空航天大学出版社2007[2]周润景,袁伟亭,景晓松.Proteus在MCS-51&ARM7系统中的应用百例.北京:电子工业出版社,2006年[3]胡汉才.单片机原理及其接口技术.第二版.北京:清华大学出版社,2004年[4]李荣正、刘启中、陈学军,PIC单片机原理及应用,北京航空航天大学出版社,2006年10月[5]江和、鲍光海,PIC单片机课程设计指导书,2010年6月
本文标题:基于STM32的四旋翼无人飞行器..
链接地址:https://www.777doc.com/doc-5890230 .html