关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 超小型遥控直升机飞行姿态稳定器的设计

超小型遥控直升机飞行姿态稳定器的设计

作者:时间:2008-08-20来源:网络收藏
引言

  本项目的是无线接收控制电路。本采用飞思卡尔公司生产的MMA7260QT低量程三轴向加速度传感器和低功耗的MC9S08QG8 微控制器,并配合极少量的外围器件。该电路能接收无线发射机的控制指令,使以不同的速度前进、后退、转弯,在没有收到动作指令时能使自动保持稳定。由于该电路的体积小(3212mm),重量轻,因此可以用于直升机。

  概述

  该系统能通过红外遥控指挥直升机以不同的速度前进、后退、转向。该系统主要有两大部分:第一部分输入转换、指令编码、红外发射部分;第二部分红外接收、解码、状态检测、伺服电机控制部分。这两部分的红外接收部分不是本次设计的重点,不做详述。

  直升机是由三个小型电机控制的:一个主旋翼电机,控制飞机的上升或下降;一个尾翼电机,控制飞机的方向;一个前进/后退电机,控制飞机前进或后退。本系统利用螺旋桨产生的推力使直升机的重心发生改变,使直升机向前或向后倾斜,来实现直升机的前进或后退。对直升机的准确控制,就是通过对这三个电机速度的准确控制来实现的。

  利用MMA7260QT三轴向加速度传感器将直升机的状态信息转换为相应的电压信号,再利用MC9S08QG8微控制器的10位ADC转换器将信号转换为数字信号。MC9S08QG8的程序将这些信号综合,自动控制直升机上的三个电机,使直升机状态稳定。

  系统设计

  设计思想和技术关键

  遥控直升机的受飞行环境和设备状态的影响很大。随着飞行环境和设备状态的变化,想要保证稳定的飞行是很难的。有了能自动调节飞行之后,操纵遥控直升机就变得非常简单。该系统是采用飞思卡尔公司的MMA7260QT作为飞行状态传感器来实现的,具体实现方法如下:

  Z轴是直升机的升降轴,在直升机静止时读取MMA7260QT的Z轴数据,作为参考点。飞机上升或下降时读取的数值相对于参考点的变化量,就是Z轴的加速度az,那么飞机上升或下降的速度Vz就是az对时间的积分。上升为正、下降为负。程序按照适当的比例换算后控制主旋翼电机的转速,使直升机保持为悬停状态。当然,这只是对Z轴理想化后的理论计算。

  由于当直升机发生倾斜时,Z轴的数据参考点会发生变化。这样,还以原数据作为参考点得到的gz就不是正确的。为什么直升机倾斜会使静止参考点发生变化呢?那是由MMA7260QT传感器的特性决定的:当Z轴垂直于地面,也就是与重力方向平行时,在Z轴上已经加有一个重力加速度。当直升机发生倾斜时,Z轴上的加速度就只是重力的一部分,这样实际的零加速度参考点已经发生了变化。所以,在求Z轴的加速度时,必须解决这个问题。

  在直升机飞行过程中,由于直升机的重心很低,所以认为在X-Z面上是不会有倾斜的。Y-Z面的倾斜是操纵直升机前进或后退造成的,当Y-Z面发生倾斜时,Y轴的静态参考点也一定发生了变化。当然,在Z轴和Y轴有合成加速度时,也会出现这种结果。无论是哪一种原因造成的,我们都要先去调整Y轴,使Y轴的数据值在静态参考点上。在倾斜度为零、加速度也为零的状态时,Z轴静止没有变化,这时的条件和理想化的条件是一样的。所以,这时得到的gz是正确的。我们就在这时读取gz的值,作为控制Z轴状态的依据。

  在实际飞行状态中,倾斜产生的重力加速度与Y轴加速度的代数和为零是一个特殊状态。这时直升机倾斜在Y轴产生的分力所产生的加速度正好与Y轴的实际加速度数值相等,而方向相反,安装调整时要注意回避这一特殊状态。

  Y轴是直升机的前进/后退轴。因为直升机是在室内飞行,认为环境没有风的影响。所以只要直升机有加速度存在,直升机就有倾斜。直升机前进或后退的力Fy是直升机的升力F0的方向与重力的反方向的夹角β的正弦函数。有Fy=F0sinβ,而Y轴的加速度ay正比于Fy。由于直升机的速度很低,忽略空气阻力的作用,则:ay=Fy/M,式中M是直升机的质量。

  同时,倾斜角会产生一个重力加速度gY,夹角也是β。它与重力加速度g0有:

  gY=-g0sinβ。ay和gY的方向是相反的。测到的加速度a是ay和gY的代数和。这个代数和的方向及大小可以实测得到。

  为了减少实测数据的工作量,只测出a的方向和大概数值即可。控制时使a逐步向零靠近,最终基本等于零。

  由于在直升机转向时,X轴有加速度,同时Y轴也会有加速度。为了简化计算,Y轴的加速度也要在X轴的加速度为零时检测。

  当Y轴有操纵指令时,Y轴的自动控制暂时被停止。

  X轴是直升机的左右转向轴,在Z-X面上,直升机不会有倾斜,所以Z轴的加速度不会影响X轴的加速度。在直升机静止时,若直升机发生方向改变,程序就控制尾翼电机,使方向改变停止,使X轴方向速度为零。当Y轴或X轴有操纵指令时,X轴的自动控制暂时被停止。

  另外,直升机在飞行过程中,电机和螺旋桨转动引起的振动也使传感器产生失真数据。所以,需要排除自动干扰后的数据才能使用。那么,怎样排除这些振动的干扰呢?该方案采用了两种措施:一是将信号限制范围,超过范围的信号被排除。二是用累加平均法:用远高于振动频率的采样率读取数据,再以远大于振动周期的时间段将数据平均。这样得到的数据,可以排除大部分的振动干扰。

  系统的功能和工作过程

  直升机接通电源后,处于接收遥控信号状态。

  发射机必需先按下启动按钮,直升机方可启动。在启动之前,所有其它操作都是无效的。

  收到并确认遥控信号的启动信号时,同时启动三个电机。电机的启动速度很慢,保证直升机不会动。当电机的速度增加到使直升机有微小上升时,控制电路记忆保持直升机不动时电机的最大速度。这时启动过程结束,直升机的移动可随意遥控。

  遥控器左手的纵向控制直升机的升降,右手的纵向控制进退,右手的横向控制方向。长时间无正确的遥控信号时,程序会自动使直升机停下来。

  电池电压不足时,LED会亮1秒,暗1秒来指示。在电池低到一定程度时,会自动进入停止操作,并同时输出电池电压不足LED指示。

  系统框图

  系统框图如图1所示。

  

  硬件描述

  编码、红外发射和红外接收电路不是本次讨论的重点,不做描述。重点描述飞行传感器电路、ADC电路、解码电路、XYZ轴输出电路。图2所示为其原理图。

  

  飞行姿态传感器电路

  该部分电路由MMA7260QT、R1、R2、R3、C1、C2、C3、C5组成。

  MMA7260QT是一个三轴小量程加速度传感器模块。它的灵敏度可通过g-Select1和g-Select2来选择。最高灵敏度可达800mV/g。工作电压低、可工作电压范围宽(2.2~3.6V),功耗小(0.5mA,在睡眠状态只有3μA)。非常适合电池供电的应用。另外,小尺寸封装,使其重量也很轻。g-Select1和g-Select2分别接到PTA2和PTA3上。可以根据需要选择灵敏度。

  XYZ轴的输出经过电阻R1、R2、R3和电容C1、C2、C3滤波后分别接到了MCU的ADC输入。 因为在这项应用中MMA7260QT 保持在工作状态,所以Sleep Mode脚接到了VDD。C5是为了减小电源波动对传感器的影响加的去耦电容。

  XYZ轴输出电路

  XYZ轴输出电路由电机Mz、Mx、My、MOSFET管T1、T2、T3、二极管D1、D2、D3和电阻R6、R7、8组成。XYZ轴电机控制信号分别通过普通的B口输出脚PTB5、PTB4、PTB6输出。这里PTB5、PTB4、TB6已经通过软件将其做成PWM输出口。它们输出的是电压PWM信号,通过PWM信号控制电机的转速。

  这个PWM信号通过电阻R6(R7、R8)送到MOSFET管的控制极,控制MOSFET管的通/断,带动电机工作。因为MOSFET是电压控制器件,是不需要限流电阻的。这里的R6、R7、R8是为减小电机的脉冲干扰信号通过T1、T2、T3耦合对MCU的影响而设。

  D1、D2、D3是在T1、T2、T3关断时为电机提供电流通路。

  Mz是主旋翼电机,带动直升机的主旋翼,控制着直升机的升/降。

  Mx是尾翼电机,带动直升机的尾翼螺旋桨,控制着直升机的方向。

  My是进/退电机,控制着直升机的前进/后退。

  系统软件

  软件流程

  软件流程如图3所示。

  

  软件描述

  飞行姿态信号和电池电压AD转换程序

  实现飞行姿态信号测量的方法是:首先用准确的时间间隔来测飞行姿态信号;将测得的数据进行比较,大于最大限制值时放弃;对于在规定范围内的数据求代数和,同时记录求和的次数;经过一段规定的时间后,将求得的代数和除以求和的次数,就得到了在这段规定时间的平均值。用计时器设一个定期的时间中断就可实现测量时间的准确间隔。

  实现飞行姿态信号测量的程序简略如下:

  在初始化程序中:设置ADC在CH4上,ADC关中断连续转换。在CH4上是X轴数据设置,MTIM计时模块T_n时间中断一次。

  

  

  电池电压监控程序

  当检测到电压低到某一值时,程序会通过LED显示,向操纵人员报警。如没有及时控制直升机停止飞行,电压会继续降低。当电压低到不能允许再低的时候,程序将强制直升机停止飞行。这个"强制停止"不是立刻将电机停止,那样会使直升机坠落,而是平衡地减小PWM输出,使直升机缓慢的降落

红外遥控器相关文章:红外遥控器原理
加速度计相关文章:加速度计原理


评论


相关推荐

技术专区

关闭