Loading
新闻中心库存中心价格中心PDF中心图片中心
ICGLE 电子技术支持中心,为电气人员和相关企业提供全面的信息(IC技术\IC库存\IC图片\PDF资料等)服务
总线设计PCB设计单片机DSPARM
JAVA驱动设计C/C++汇编J2EE网络协议中间件技术嵌入式系统无线通信通信网络模拟技术接口电路显示光电传感与控制EDA/PLD
气流体控制电子产品电机及工具通信设备仪器仪表电线电缆建筑电气低压电器高压电器电源工控自动化广电设备医疗器械More..
电源设计仪器仪表技术专递电路图片电子专栏储存技术汽车电子测量测试音响技术家用电器
成功方案市场分析行业标准应用前沿芯片应用综合专区
固定翼飞机竖直飞行控制系统的设计
来源:中电网   作者:广东省东莞市大朗镇洋乌工业区东冠电子厂 马山
字体大小:[大][中][小]

class=content style=display:block;padding:0px 10px>

引言

固定翼飞机水平飞行是最常见的飞行状态,让其做大仰角飞行则动作不能一直保持,如让其垂直于地面飞行能保持的时间则更短。本项目要实现的是一个可以让飞机垂直于地面飞行并可以稳定在固定高度的控制系统。利用在机身加入的三轴向加速度传感器来检测垂直于地面飞行的飞机的姿态。当检测到飞机前后摇摆时,控制水平尾翼使飞机保持前后方向的稳定性;当检测到飞机左右摇摆时,控制垂直尾翼使飞机保持左右方向的稳定性;当检测到飞机上下窜动时,控制油门的大小(即螺旋桨的转速)来保持飞机飞行高度的稳定性。当这些控制都很精准到位时,固定翼飞机也可以像直升机一样稳稳地悬停在空中了。利用本文设计的控制系统可以让飞机在做垂直飞行减速的同时顺时针或逆时针转90°(投影面积很小),这样就可以减小暴露给后面飞机的投影面积,减小被击中的几率。

设计概述

为了让飞机能竖直飞行,控制电路需要有以下功能:

判断飞机是否要竖直飞行 对于真飞机,它可能只是一个可防止误触发的拨动开关;在本项目的实验品遥控飞机里,它就是某一个通道的脉宽信号。当脉宽大于某一设定值时,控制电路就知道它该上场了。

判断自身姿态 这是本控制电路的核心部分之一,在控制飞机保持竖直飞行之前必须先判断自身的姿态。本项目用MMA7260QT传感器检测飞机的姿态。

控制 这是本项目设计制作过程中最耗时的部分,但其原理很容易理解:姿态电路已经了解了飞机的姿态,控制电路只要做相应动作就可以了。飞机前倾它就让飞机向前移动一些,后倾就向后移动一些。还有一个需要控制的量——高度,飞机在做此动作时高度是要保持稳定的,机身上冲时要减小油门,下降时要加大油门。要完成如此控制,要用两片MC9S08QG8。为了达到上述功能,本项目应有如图1所示的电路框图。

选用两片MC9S08QG8是因为在本项目里有两处对时间要求比较严格的地方:一是读从遥控器送出的脉宽;二是把经过运算的脉宽精确地发送出去,两处都要10μS以内的误差,如用一片来做即使用中断也会有冲突。本项目里两片MC9S08QG8工作的大体分配是:一片作为主控,用于读取遥控器送来的由接收机收到的脉宽(高实时性)、读取飞机姿态(低实时性)、控制运算(PID运算)和数据发送(把需要对飞机如何控制的数据,也就是PID运算的结果送给另一片MCU);另外一片作为辅助,只要把读到的数据实时发给飞机的执行机构就可以了。

硬件描述

硬件电路如图2所示。

·传感器MMA7260QT输出的三个轴的数据分别送入主控MCU的三个A/D输入端ADP0、ADP1和ADP2,电源接一个电阻和电感可防止电源对传感器的干扰。

·整个电路的电源由J1从接收机引入,通过78FC33变为3.3V后给MCU和传感器供电,J2、J3、J4分别是左右、油门和前后控制。

·主控MCU的第二路TPM的捕捉输入端TPMCH1接接收机的信号输出端。本遥控系统是9通道的,也就是可同时控制9个机构,这种9通道的信号见图3。它是由间隔为20ms的一个个脉冲串组成,每个脉冲串有9个脉冲,连续两个脉冲的上升沿的间隔就是遥控器送出的有效控制信号,此间隔最小1ms、最大2ms。TPM捕捉到9个脉冲的宽度后,就可以根据需要直接送给舵机或经PID运算后再送给舵机了。至于如何识别某一脉冲是上一个脉冲串的结尾还是下一个脉冲串的开头,这里涉及到一个同步脉冲的概念,属于软件内容,在此先不作解释。

·主控MCU的串行输出端接辅助MCU的串行输入端。主控MCU想如何控制飞机动作,只要通过串口把数据发送给辅助MCU就可以了,发送格式如表1所示,共8个字符,其中0xAA、0x55为引导位……

·三个LED,D1是电源指示灯,D3用于指示“我是控制电路,我已经开始控制飞机竖直飞行了”,D2是“出错了,小心出问题,快切换回由你控制吧。”

·辅助MCU有两个工作:一是读主控MCU送来的串行数据,找到引导字符后,把前后左右上下(油门)的数据送入相应的数组贮存;二是每20ms把相应的数组里的数据以脉冲形式发送出去。脉冲最小1ms、最大2ms。这个信号送入飞机的执行机构——舵机后对应的输出规律见图4。1ms的脉冲使舵机摇臂在最左边的位置,1.5ms的脉冲使舵机摇臂位于中位,2ms的脉冲使舵机摇臂在最右边的位置。舵机的摇臂连接飞机的各执行机构,摇臂摇动时飞机的执行机构(如尾翼等)也跟着摆动。

软件描述

主控MCU部分,流程图见图5。

·读取遥控信号:这个遥控信号见图5右上角,是9个脉冲组成的脉冲串,每20ms一串,读取的方法如下,由TPM捕捉到脉冲的上升沿进入模定时器捕捉中断程序后,先看是不是脉冲串里的第一个,若是就把定时器清零,然后把捕捉值存入数组,这样9次后,数组里就由低到高地存下了每个脉冲发生的时间,用减法一算,各脉冲宽度就出来了。为防止出错,附加了脉冲数错误预防,就是对脉冲个数进行计数,如果在一个脉冲串里读到了多于9个脉冲就意味着有干扰了,需要尽快把所有脉宽按中间值1.5ms处理。这样虽然和遥控器发出的指令不一样,但减少了出大问题的机会。

·8ms定时中断:系统有一个模定时器18ms中断程序,因为正常的脉冲串9个脉冲不会超过18ms,所以可以让定时器在第一个脉冲开始时计数,计到18ms就认为一个脉冲串结束,把脉冲数计数器清零。模定时器捕捉中断程序里看到这个计数器被清零了就知道下一个脉冲串开始了。这个中断还为PID的定时运算提供时间标志,每进入一次中断就把标志置位,主程序读到标志被置位就进行PID运算,这样就保证了PID运算的周期是固定的。

·1.67ms中断程序和A/D中断程序:为了读取MMA7260QT输出的数据需要用A/D读值,这里每1.6667ms进入中断一次设定A/D通道,读完三个通道用时5ms,在两个脉冲串的标准间隔20ms内可以各读4次,用滑动平均值算法后可以滤除干扰。

主程序介绍

虽然传感器都是水平放置的,但因为温度电压等的不同,三个轴的输出和计算的输出是不一样的,会有少许偏差,为了解决这个问题,在上电后先对三个轴的值连续读64次后平均,把这个平均值作为飞机要稳定的目标值,这样飞机就基本稳定了。

提到稳定,PID功不可没,主程序里的PID有两处要提一下。一是因为传感器的稳定性问题和飞机的抖动,A/D输出值差2、3个数是很正常的,所以在主程序里要判断一下,如果误差值在3以内,则不进行PID运算,这样就减少了舵机无谓的抖动;二是因为飞机的前后左右重量不一致,所以在飞机前倾后仰左右摆动时要用不同的P值计算。

主程序每20ms更新一次数据,数据就是前后左右上下的控制脉冲的宽度。这个数据是把模定时器捕捉中断程序里捕捉到的数直接拿来用还是要拿PID运算的数据来用?这由一个脉宽(决定此时飞机是否要竖直飞行的脉宽)决定,这里用到的是第7个脉冲的脉宽,也就是遥控器的第7通道,这个参数被命名为Helen,当Helen > 1500(1.5ms)时就是操纵者要竖直飞行,要把PID运算的数据输出;当Helen < 1500时就是正常飞行,直接把模定时器捕捉中断程序里捕捉到的数输出就可以了。

要得到各个脉冲宽度,只要把从低到高的每个脉冲发生的时间做减法就可以了,这个减法运算也是在主程序里完成的。减法完成后还要对脉冲宽度进行出错处理,要检查一下,小于1ms的按1ms算,大于2ms的按2ms算,处理完了就可以调用发送中断发送给辅助MCU了。调用方式是把数组排列好,把发送数据计数器清零,打开发送中断允许位,这时发送缓冲区是空的,发送中断一允许,它就立刻进中断开始发送。

串口发送中断程序:程序进入本中断后首先把发送数据计数器指示的数送到发送缓冲区去发送,如发送完了就把发送中断允许位清零,以防止正在发送的数据发送完后再次进入中断;如没发送完就直接退出,等待下次中断。

辅助MCU程序流程图见图6。

串口接收中断:辅助MCU程序的关键在串口接收中断,接收到的数要存入指定的数组,这个容易实现,而把引导头找出来就不那么容易了,因为作为引导头的0xAA、0x55也有可能是数据,只有连起来的才是引导头,判断方法详见图6。

因为本MCU只有两个定时器,但需要控制三路脉冲,所以有两路脉冲用定时器的PWM功能实现,另外一路需要用软件模拟,本文选用的方法是用一个20ms的中断,进入中断后把I/O口置位,然后在主程序里循环判断定时器的值,当定时器的值大于要送的脉冲值时把I/O复位。

Upload by 小刘(2008-8-13)
IC
·基于ARM和DM9000的网卡接口设..
·基于LVDS技术的远端数据传输系统实..
·GPS99808模块在汽车防盗系统中..
·用串行RapidIO交换处理高速电路..
·热插拔可靠性的新标准
·基于LT1641的双路热插拔电路设计
·四通道I2C多路复用器提供了地址扩展..
·RS422/RS485总线模型分析与..
·基于FPGA的ARINC429总线接..
·基于PCI总线和DSP芯片的图像处理..
·TMS320VC5402 DSP与串..
·基于TMS320LF2407A的模块..
·Linux 2.6 内核中的最新电源..
·高功率以太网供电不再困难
·负电荷泵白光LED驱动器的设计
·采用UCC28051的100W通用线..
·电压不足期间支持电信电源的小电容
·负载管理与负载开关的设计与实现
·交叉耦合门防止推挽驱动器交叠
·台式电源测试的革命
·锂电池组的主动电荷平衡
·绿色动力新潮流——燃料电池
·输出电容器的等效串联电阻对滞环控制功..
·动态电源路径管理简化了太阳能板对电池..
·今天的绿色 POL DC/DC 转换..
·基于嵌入式系统的虚拟仪器设计
·DSP技术协助进行高速串行数据分析
·基于ARM和DSP的嵌入式智能仪器系..
·使用LXI加强汽车电子测试
·针对无线宽带相位噪声的测试方案
·在低成本测试夹具上实现对表面贴装射频..
·射频IC MFRC522在智能仪表中..
·基于JP7-T的GPS接收机和定位系..
·基于CC2430的ZigBee无线数..
·基于CC1100的无线手持终端的设计
·Wi-Fi无线产品的研发与测试解决方..
·核磁共振系统中微波射频开关的设计与应..
·基于无线传感器网络的电机运行状态监测..
·Zigbee无线传感器网络平台的设计..
·利用红外技术解决音频无线传输难题
IC
推荐技术文章:
·基于GSM的无线智能监控设计..
·温度传感器TMP275在家庭环境监控....
·CF+插槽宿主的供电及热插拔控制设计..
·一种新型的高压变频分布式控制系统..
·铁电存储器FM3116在复费率电能表....
·基于倾角传感器设计的帆船姿态仪..
·利用34970A在LabVIEW中实....
·基于ARM7TDMI的配电综合测控仪....
·基于加速度传感器MMA7260QT的....
·霍尔效应技术提供紧凑型电流测量传感器..
·语音控制的智能小车设计..
·高精度超声波测距系统的设计与实现..
·基于PLC的玩具整体燃烧自动测试仪的....
·用于各类摄像应用的高速CMOS图像传....
·设计下一代自动化测试系统..
·基本电能质量测量方法和常见问题原因..
·基于FPGA的通用开关电源控制器硬件....
·FPGA器件的设计实现、设计优化与模....
·ARM的位置无关程序设计在Bootl....
·基于OV6630图像传感器和DSP的....
·基于DSP和CPLD的软开关电源数字..
·解决DSP设计面临的终极挑战
·基于P89C52RD2和FPGA的可..
·单片机的图形化编程方法探讨
·单片机系统多串行口设计技术研究
·51单片机红外遥控解码程序
·基于16位单片机的无刷直流电动机控制..
·PIC单片机控制lcd12864液晶..
·用PIC单片机实现LCD显示单个B字
·AVR内部EEPROM读写范例
·AVR模拟比较器使用范例
·用51单片机做的拉幕式数码显示课程设..
·用AT89S51单片机来制作的手动计..
·用AT89S51单片机多路开关状态指..
·单片机AT89S51与ADC0809..
·报警产生器-课程设计
·USB总线在光栅位移传感器检测系统中..
·无线传感器网络低占空比MAC协议研究
·基于微控制器的web服务器设计
·基于OMAP5910的移动媒体播放机..
IC
IC

©2007 版权归ICGLE所有   页面执行时间:62.500毫秒