历史上的今天
返回首页

历史上的今天

今天是:2025年04月10日(星期四)

正在发生

2018年04月10日 | 基于单片机的无人机真空速测量系统设计

2018-04-10 来源:eefocus

    真空速是指飞机相对空气运动时所具有的真实速度,它是飞机安全飞行的重要参数。准确的真空速数据信息对于提高飞行的安全性、准确性和经济性起着相当大的作用。飞机相对于空气运动时,可根据运动的相对性将飞机看作不动,而空气是以大小相等,方向相反的流速流过飞机。真空速无法直接测出,只能根据大气静压和动压间接计算出来。本文介绍了一种基于C8051F352单片机的无人机真空速测量系统的设计,该系统测量结果的相对误差小于4%,能够满足无人机飞行控制系统的精度要求。

    1 测量原理
    无人机的真空速通常跟大气静压和动压有关,对于飞行高度不超过11 000 m,飞行马赫数不大于1的情况,真空速可由公式(1)计算:
    
    式中,PH为对应高度的大气压力(大气静压),PD为大气动压,是大气总压与静压之差。式中各常数分别为:Pob=101 325 Pa,是标准海平面上的大气静压;Tob=288 K,是标准海平面处大气温度;τb=0.0065 K/m是温度递减率;R=29.2746 m/K,是大气常数;k=1.4是空气绝热指数;g=9.806 65是重力加速度。
    从式(1)可看出,只要测量出大气静压和动压,便可根据计算公式,计算出真空速。

2 系统整体结构
    根据数字式大气数据测量系统的组成和工作原理,笔者设计了以单片机为核心的真空速测量系统,其整体结构如图1所示。绝压传感器和动压传感器感受到静压和动压,并分别将其转换为相应的电压信号。由于传感器的输出信号较为微弱,因此,必须通过放大电路和调零电路以及滤波电路对其进行处理,产生符合要求的信号,然后传送到AD转换输入端。单片机自带的A/D转换器将静压和动压的模拟电压信号转换为数字信号,并送入单片机CPU进行处理,CPU根据真空速计算公式计算出相应真空速值。计算结果通过串口发送至机载飞控计算机,在显示界面显示出来。

b.JPG

  3 系统硬件电路设计

  3.1 压力数据采集模块

  笔者设计的真空速测量系统要求工作在0~5 000 m高度范围内,根据压高公式(2),可计算出静压范围在54 005~101 325 Pa之间。差压传感器的量程取决于飞行器真空速的量程。文中所测量的真空速范围为50~400 km,则根据公式(1)可计算出动压范围在71~7 769 Pa之间。

    d.JPG
    根据静压和动压范围,本文的绝压传感器和差压传感器分别选用HONEYWELL公司的ASDX015A24R型传感器和140PC02D型传感器。ASDX015A 24R的量程为0~15 psi(103.419 kPa),精度在2%以内;140PC02D的量程为0~2 psi(13.7892 kPa),精度为0.25%。测压器件选用GCY-1M型高精度综合测试仪。可根据公式(3)计算出由传感器所引起的误差为3.23%。
   c.JPG
    本系统所选单片机C8051F352有2个16位AD转换(ADC0和ADC1),静压和动压传感器输出信号经放大调零后,可分别送入单片机AD转换输入端转换为数字信号。


  3.2 单片机处理电路

  本设计的使用C8051F352单片机采用32管脚的LQFP封装,是由美国Cygnal公司推出的具有高速度、高性能、高集成等特点,并能与8051兼容的单片机,除了具有标准8052的数字外设部件以外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。

  本系统设计中使用了C8051F352微控器中的AIN0和AIN1两个模拟通道,分别用于静压和动压的模拟/数字转换。单片机的AD将输入的模拟信号转换为数字信号,然后送入CPU进行数据处理。

 

  3.3 串口通信

  解算后的真空速要通过串口发送至上位机,在显示界面显示。真空速由单片机串口经RS-232接口发送至上位机,并使用MAX232芯片实现单片机电平转换从而能与上位机进行正常通信。单片机CPU采用异步串行输出UART0,工作在方式1,中断方式,定时器1设置为自动重装载方式产生115 200的波特率。

  3.4 显示界面

  上位机通讯程序主要使用Visual C++编程,该显示界面用于显示大气静压、动压和真空速值。程序界面如图2所示。

a.JPG

    
    在上位机程序编写时,需要使用MSComm控件,通过设置控件的各个属性来完成串口的参数设置以及数据的接收。真空速显示界面所使用的MSComm控件属性主要有以下几个:CommPort属性(用于设置串口号),PortOpen属性(用于打开或关闭串口),SetSettings属性(用于设置或返回串口波特率、奇偶校验、数据位、停止位参数),InBufferCount属性(设置或返回接收缓冲区中等待计算机接收的字符数),Input属性(从接收缓冲区中读取数据并清空接收缓冲区)。

4 真空速解算方法设计
4.1 线性插值原理
    分段低次插值是函数插值方法的一种,将比较复杂的函数f(x)的插值区间[a,b]分成一系列子区间,在每一个子区间[xi,xi+1]上,用一个简单的函数来近似原函数。当每个子区间采用的近似函数为一次函数时,就成为常用的线性插值法。
    子区间的线性插值公式为:
    f.JPG
    h即为插值步长。在计算函数值时,系统采集到x值,然后找到值所在的插值区间[xi,xi+h]及相应函数值[yi,yi+h],便可根据插值公式计算出y值。
4.2 插值节点计算
    由公式(1)看出真空速计算公式比较复杂,如果直接用单片机进行计算,则会占用大量内存资源,从而降低计算速度。因此,在系统允许误差范围内,对原函数采用插值,将复杂函数用一个简单的函数来近似。由于真空速计算式有两个变量,无法直接采用分段线性插值来解算,考虑到实际运算的方便,使用公式(6)来计算真空速值。
    h.JPG
    则公式(6)中的真空速分为两部分:一部分是只包含动压PD变量的指示空速Vi,另一部分是只含有静压PH变量的气压高度H的函数式H’,通过计算可得1≤H’≤1.289 9。
    指示空速Vi和气压高度日的计算公式分别如公式(7)和公式(8)所示。
   i.JPG


    根据公式(4),对真空速公式的两部分分别进行处理。
    首先对的Vi进行分段线性插值。插值节点个数可由线性插值余项来确定:
    j.JPG
    本设计中将插值计算的相对误差设为0.5%,则δ=400x0.000 5=0.2 km,g.jpg?imageView2/2/w/550,根据公式(9)可得,插值步长为。令h=29,插值节点。因为为整数,所以令,n=266。
    真空速公式的第二部分是气压高度H的函数式H’,在此不对H进行插值,而直接对H’进行插值。本设计中将插值计算的相对误差设为0.01%,则δ=1.2899×0.01%=0.012 899≈0.0013。M=max|(H’)”(Ph)|=.513×10-10,根据公式(9)可得,插值步长为m.JPG。则插值节点n≥n.JPG。为整数,所以令n=8。
    只要通过上述插值算法分别计算出动压相应值和静压相应值,然后相乘即得到实际真空速值。

5 测试结果
    表1是高度分别在0 m,1 000 m,3 000 m和5 000 m实时计算出的真空速实际值。从表中看出,实际真空速最大误差均不超过4%,能够满足设计要求。

o.JPG

   6 结束语

  文中设计的基于单片机的无人机真空速测试系统,电路简单,体积小,重量轻,性能稳定,能够实时、准确地测量出真空速值,适用于小型无人飞行系统。


推荐阅读

史海拾趣

Floeth Electronic Ltd公司的发展小趣事

Floeth Electronic Ltd公司的发展故事

故事一:技术创新与产品线拓展

Floeth Electronic Ltd自1987年在德国迪特FLOETH成立以来,始终致力于电力自动化领域的技术创新。公司最初专注于DC-DC转换器的研发与生产,针对工业、汽车及机载设备设计了能在极端温度(-40℃至+105℃)下稳定工作的产品。随着市场需求的变化,Floeth Electronic逐步扩展了其产品线,推出了包括转换器、驱动器、控制器、放大器、过滤器、逆变器和脉冲变压器在内的多种电力自动化产品。这些产品不仅满足了工业客户对高性能和可靠性的需求,还因其高绝缘性和符合EN/UL/CSA等安全法规认证而备受信赖。

故事二:台湾生产单元的建立

为了进一步提升产能和效率,Floeth Electronic于1994年在台湾桃园设立了生产单元。这一战略举措使得公司能够更灵活地应对亚洲市场的需求,并利用台湾成熟的电子制造业供应链优势。台湾生产单元专注于高精度、高效率的电力自动化产品生产,不仅提高了产品质量,还降低了生产成本。这一举措不仅增强了Floeth Electronic在全球市场的竞争力,也为其后续的发展奠定了坚实基础。

故事三:IGBT驱动器及控制器的高电压应用

在电力电子领域,IGBT(绝缘栅双极型晶体管)的应用日益广泛。Floeth Electronic凭借其深厚的技术积累,成功研发了高电压应用的IGBT驱动器及控制器,最高可达8kVAC MS。这些产品广泛应用于高压电力传输、工业电机控制等领域,以其卓越的性能和稳定性赢得了市场的广泛认可。这一技术的突破不仅提升了Floeth Electronic在电力自动化领域的地位,也为其在新能源、智能电网等新兴领域的发展提供了有力支持。

故事四:脉冲变压器的广泛应用

Floeth Electronic的脉冲变压器在雷达、变换技术等领域有着广泛的应用。这些变压器通过匹配负载电阻与馈线特性阻抗、升高或降低脉冲电压、改变脉冲极性等方式,实现了对复杂电路的高效控制。此外,脉冲变压器还广泛应用于变压器次级电路和初级电路的隔离应用,以及作为功率合成及变换元件等。这些产品的广泛应用不仅展示了Floeth Electronic在电力电子技术领域的深厚实力,也为其在更多领域的发展提供了可能。

故事五:国际合作与市场拓展

随着全球电子市场的不断融合与发展,Floeth Electronic积极寻求国际合作机会,以拓展其市场版图。公司与中国、美国等多个国家的知名企业建立了紧密的合作关系,共同研发和推广电力自动化产品。这些合作不仅为Floeth Electronic带来了先进的技术和管理经验,还帮助其更好地了解不同市场的需求和趋势。通过国际合作,Floeth Electronic不断提升其品牌影响力和市场竞争力,为全球客户提供更加优质的产品和服务。

ETC1公司的发展小趣事

万集科技是ETC行业中另一家知名的企业。公司专注于ETC设备的研发、生产和销售,以及ETC系统的集成与服务。在市场拓展方面,万集科技采取了多元化的策略,不仅与国内众多高速公路管理机构建立了合作关系,还积极开拓海外市场。通过不断的市场拓展和品牌建设,万集科技逐渐成为了ETC行业中的佼佼者。

Herotek Inc公司的发展小趣事

在全球倡导绿色低碳的背景下,Henkel也积极投身于绿色材料的研发和应用中。在电子行业中,Henkel推出了多款环保型粘合剂产品,这些产品不仅具有优异的性能表现,还符合国际环保标准和法规要求。通过推广绿色材料和技术解决方案,Henkel不仅为电子行业的可持续发展做出了贡献,也进一步巩固了其在该领域的领先地位。

以上五个故事展示了Henkel公司在电子行业中的发展历程和成就。凭借其创新的技术、全面的解决方案以及对可持续发展的承诺,Henkel将继续在电子行业中发挥重要作用。

Conexcon Group公司的发展小趣事

随着全球化进程的加速,Conexcon Group积极实施国际化战略,将业务拓展至海外市场。公司通过在海外设立研发中心和生产基地,进一步提升了自身的研发能力和生产效率。同时,公司还加强了与国际知名品牌的合作,通过共同推广和营销活动,提升了自身品牌在国际市场的知名度和影响力。这些举措不仅为公司带来了丰厚的利润回报,也为公司的长远发展奠定了坚实的基础。

德欣(COV)公司的发展小趣事

随着技术的不断成熟和产品的不断优化,德欣公司开始积极拓展市场。公司通过参加各类行业展会、举办技术交流会等方式,与国内外客户建立了广泛的联系。同时,德欣公司还注重品牌建设,通过优质的产品和服务赢得了客户的信任和认可。逐渐地,德欣品牌在电子行业中崭露头角,成为了一家备受瞩目的企业。

Advanced Electronic Packaging公司的发展小趣事

面对电子行业的快速发展和不断变化的市场需求,Advanced Electronic Packaging公司始终保持敏锐的洞察力和强烈的创新意识。公司不断加大研发投入,推动封装技术的持续创新。从最初的单一材料封装,到后来的多功能复合封装,再到如今的智能化封装技术,公司的每一次创新都引领着电子封装行业的发展潮流。这些创新成果不仅提升了产品的附加值,还推动了整个电子产业的升级换代。

问答坊 | AI 解惑

不知道坛里有多少朋友在用NIOSS2呢

我看见群里没有多少朋友发有关NIOSS2方面的资料,我来发点有关NIOSS的资料。我也是刚开始学这个的,希望能够与大家多多交流!…

查看全部问答>

WinCE 5.0 重装问题

各位兄弟姐妹们帮帮忙啊,我的WINCE 5.0系统是嵌入式系统,但是现在系统崩溃了无法重新启动了,无法开机,请问如何重新烧入WINCE 5.0呢?请问一下如果想像机子没有WINCE系统之前一样重新烧入系统,可以实现吗? 需要什么工具,该怎么做呢?我并非此 ...…

查看全部问答>

累加和校验的问题

单片机485通信的一个程序,调试程序的时候发现程序老卡在语句\"while(RI0!=1);//主机接收正确,发回F0\"这里不往下运行,发送程序片段如下,请大家帮我看看是什么问题.    int sum;    unsigned char i;     &n ...…

查看全部问答>

上海工作机会

要求: 驱动开发2年以上经验(USB驱动开发经验为佳), 沟通能力强, 团队协作意识好. 待遇: 8-10k. 地点: 徐家汇. 性质: 全职. 有意向者请emai至: window.d(at)gmail.com …

查看全部问答>

大家帮我看看我的hpi程序,谢谢了!

我现在在做arm2410和DM642的HPI口驱动程序,在驱动中各个寄存器定义如下: /* HPIC 寄存器*/ #define HPIC_L  *(volatile u16*)(HPI_BASE+0x0) //00 0 0 #define HPIC_H  *(volatile u16*)(HPI_BASE+0x2) //00 1 0 /* HPIA ...…

查看全部问答>

请教大家(关于ADC12单通道多次转换)

我刚接触msp430单片机,最近要用ADC12的单通道多次转换模式,请教大家转换的次数怎么设置?比如说我要转换10次,然后求平均值。先谢谢各位了。…

查看全部问答>

Porting linux to Stellaris Cortex-M3

最近Linux讨论组里面比较火的一个主题,谁有兴趣耍耍,目标平台LM3S9B96     <5>Linux version 2.6.33-arm1 (fernando@fernando-POS-MIG31AG) (gccversion 4.5.2 (Sourcery G++ Lite 2011.03-41) ) #127 Tue Sep 2709:14:21 BRT 2 ...…

查看全部问答>

MSP捕获频率!

我用CCR1测量PWM的周期,下降沿捕获:初始化如下:   P1SEL |= 0x04;  // P1.2/TA1 is used to capture signal  P1DIR |= 0x04;    TACCTL1 = CM_2 + CCIS_0 + SCS;  TACCTL1 = CAP;  &nbs ...…

查看全部问答>

ucos中任务删除自身后,其他任务不运行了,是怎么回事?

#include <includes.h> #define  TASK_STK_SIZE    128 //定义任务堆栈的大小 OS_STK TaskOneStack[TASK_STK_SIZE]; //为任务TaskOne建立一个堆栈OS_STK TaskTwoStack[TASK_STK_SIZE]; //为任务TaskTwo建立一个堆栈OS_ST ...…

查看全部问答>

ARM 用 SPI 接外部扩展 AD

小弟新手,刚掌握 arm 2119基本的功能,现在想用SPI 总线外接一个外部扩展的AD, 目前想用AD7714. 但不知道如何下手,相关的手册都读过了,但对外接AD内部寄存器的操作不知道如何编程。 哪位大哥有类似的SPI控制外扩AD或者FLASH的程序,求一个,万 ...…

查看全部问答>