当前位置:首页 > 消费电子 > 消费电子
[导读]针对在颤振飞行试验实时监控过程中高采样率动态信号时间历程曲线实时显示特点,介绍了如何在C++builder环境中使用TChart控件实时绘制动态参数曲线,并对采用控件和算法的特点及选择准则做了详细分析,给出了相关程序代码。该算法先将颤振数据实时存放在数组里,然后结合TChart控件和TTimer控件采用翻页方式来实时显示其时间历程曲线。通过在颤振试飞监控中实际应用表明,该算法能有效实时显示真实动态信号,满足课题监控需求。该算法还可应用于电力系统的振动检测系统。

0 引言

颤振飞行试验是新机或有重大改型飞机都必须进行的试飞科目,是世界公认的Ⅰ类风险试飞科目,所以必须通过实时监控保障飞行安全。颤振试飞与其他试验科目相比,具有风险高、参数采样率高的特点,对实时监控系统的实时性、可靠性以及精确性都要求较高。

在开发颤振试飞实时监控软件过程中,为了在屏幕上实时精确绘制高采样率颤振参数时间历程曲线,对高采样率动态信号实时绘图技术做了深入研究,并采用C++ builder进行编程实现。通过软件测评和实时系统验证,该监控软件运行稳定、可靠,能实时精确显示高采样颤振参数时域曲线。

1 开发平台介绍

C++ Builder是由Borland公司继Delphi之后又推出的一款高性能可视化集成开发工具[7],它具有快速的可视化开发环境:只要简单地把控件拖到窗体上,定义它的属性,设置它的外观,就可以快速地建立应用程序界面。它内置了100 多个完全封装了Windows 公用特性且具有完全可扩展性(包括全面支持ActiveX控件)的可重用控件。C++ Builder具有一个专业C++开发环境所能提供的全部功能:快速、高效、灵活的编译器优化,逐步连接,CPU透视,命令行工具等,实现了可视化的编程环境和功能强大的编程语言(C++)的完美结合。利用C++ Builder 开发实时监控软件,可以充分利用可视化编程语言的高效、灵活等优点,使得开发出来的应用程序具有更好的用户界面,适合飞行监控使用。

2 高采样率动态信号实时绘图算法研究及实现

颤振试飞实时监控软件通过接收服务器发送过来的数据,对软件界面上参数进行实时显示,并对关键参数数据进行自动或者手动采集。由于颤振参数为高采样率速变参数,如果按照常规缓变参数那样接收每点数据都画图的方法在屏幕上实时绘制时间历程曲线,发现软件数据显示常有迟滞现象,并且严重影响软件数据采集精度,因此对数据绘图方法进行优化研究,将颤振数据实时采集到内存里,并且用数组来存放采集数据,然后利用TChart控件使用翻页方式来实时显示时间历程曲线,每个页面显示一段时间内的数据曲线,其中翻页时间间隔(由采样频率决定)由定时器控制,也可以通过利用接收服务器发送数据点数到达定值后进行翻页的绘图算法来实现。

2.1 C++ builder控件介绍

2.1.1 TTimer控件

TTimer控件是C++ builder提供的一个普通计时器,使用简单方便,但具有两大缺陷:定时精度差和消息优先权低。首先,基于Windows计时器的硬件计时器每隔54.925 ms走1次(约18.2 次/s),也就是说,这种方式的定时器只能精确到大约55 ms,对于55 ms以下的时间精度便无能为力;另外,由于Windows是基于消息机制的系统,任何事件的执行都是通过发送和接收消息来完成的。

TTimer控件的优先权太低,这样一旦计算机的CPU被某个进程占用,或系统资源紧张时,发送到消息队列中的WM_TIMER消息就被暂时挂起,得不到实时处理。

2.1.2 多媒体定时器

多媒体定时器是由Windows系统提供的毫秒级定时器,其定时精度可达1 ms.从运行基理来看,多媒体定时器提供的是硬件中断服务,不传送任何消息,优先级很高。多媒体定时器使用自己独立的线程,调用回调函数进行处理,但在多媒体定时器的使用过程中需要注意的是:在多媒体定时器处理的线程结束之前不要再次启动定时器,否则会造成死机。在使用之后一定要删除定时器及响应的参数,否则系统的响应会变得很慢。

2.1.3 TChart控件

C++ Builder嵌入了Borland公司产品Delphi的控件TeeChart[10],可以方便地实现曲线绘制,绘图功能强大,界面友好。本文利用C++ Builder 自带的画图控件TChart,它是TeeChart类库中最主要的类,具有11 种标准的Series 类型,325 个属性,125 个方法以及28 个事件,这使得TChart具有非常强大的绘图功能。

2.2 绘图算法具体实现

将颤振数据实时采集到内存里,并且用数组Show-Buff []来存放采集数据,然后利用TChart控件使用翻页方式来实时显示其时间历程曲线。TChart 控件中Ad-dXY 函数和AddArray 函数都可以来实现绘图功能,但是AddXY 函数每次调用都要刷新屏幕,当需要实时绘图参数较多时会引起监控软件界面数据显示迟滞现象,因此本文采用用于绘制数组数据曲线的AddArray函数进行绘图,经过实时系统验证表明,AddArray 函数比AddXY函数能够有效提高绘图效率。

动态信号实时绘图关键代码如下:

 

 

两种算法实时绘图效果相同,如图1所示为应用于ARJ21 飞机飞行试验实时监控的动态信号实时绘图效果:

 

 

该段动态参数事后处理数据绘图效果如图2所示。

 

 

由图1、图2对比可知,利用本文中高采样率动态信号实时绘图算法能有效还原真实信号,满足任务监控需求。

3 结语

文中基于C++ Builder开发的颤振试飞实时监控软件已经成功应用于ARJ21飞机颤振飞行试验中,对保障飞行安全和任务完成发挥了重要作用。实践表明,软件中涉及到的高采样率动态信号实时绘图算法能有效还原显示动态参数真实信号,可应用于其他用户群体中,如电力系统的振动检测系统等。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

VGA接口主要用于将计算机的数字图像信号转换成模拟信号,从而可以在显示器上显示。这种接口通常包含15个针脚,分成3排,每排5个孔,可以传输红、绿、蓝三种基本颜色的信号以及水平和垂直同步信号。

关键字: vga接口 信号 电压

Holtek新推出BS67F2432具备触控按键、高精准度HIRC与LCD驱动器Flash MCU。主要特色为内建高精准度4MHz HIRC振荡电路、8路触控按键及最大支持4COM×15SEG LCD驱动器。适用于触控接...

关键字: MCU LCD驱动器 定时器

Holtek持续扩展Touch A/D Flash MCU产品,新增系列成员BS86C12CA,延续优良抗干扰特性,提供丰富的定时器资源并支持LXT振荡器。引脚与BS86C08C及BS86D12C相容,具高性价比,适合需...

关键字: MCU LXT振荡器 定时器

采用MCU(微控制器单元)模块实现定时器的设计是通过利用MCU内部的定时器/计数器资源来实现的。定时器是MCU中的一个重要功能模块,它可以在特定的时间间隔内执行特定的操作,如产生中断、更新定时器值、触发其他设备等。

关键字: mcu模块 定时器

单片机的外设是指与单片机核心处理部分相连的附加硬件模块,它们能够扩展单片机的功能和能力。这些外设包括各种模块和接口,用于处理特定的任务或实现特定的功能。

关键字: 单片机 定时器

上海2023年9月4日 /美通社/ -- 2023年8月8日,成都大运会正式落幕。来自113个国家和地区的6500名大学生运动员,在12个比赛日里同台竞技,展现青春与体育的力量。与此同时,在大运会的各个赛场、运动员村以及...

关键字: 信号 TV PS CE

瓦努阿图维拉港2023年8月28日 /美通社/ -- Vantage(或"Vantage Markets")欣然宣布在Vantage应用程序上推...

关键字: GE AN 信号 应用程序

(全球TMT2023年7月19日讯)三星电子宣布已完成其业内首款GDDR7的研发工作,年内将首先搭载于主要客户的下一代系统上验证。继2022年三星开发出速度为每秒24千兆比特(Gbps)的GDDR6 16Gb之后,GD...

关键字: DDR 三星电子 信号 GBPS

频谱分析仪是用于分析信号频谱结构的设备,可以用于测量信号的频率、幅度、功率、谱线宽度等参数,是现代电子测量和通信领域中不可或缺的工具。

关键字: 频谱分析仪 信号

频谱分析仪是用于分析信号的频率成分和功率的电子设备。分辨率是频谱分析仪的一个重要指标,它决定了频谱分析仪能够分辨的信号细节和频谱特征。在频谱分析仪的使用过程中,分辨率受到多种因素的影响,这些因素包括信号频率、信号强度、分...

关键字: 频谱分析仪 信号 分辨率
关闭
关闭