APP下载

基于LabWindows/CVI的导弹舵机性能测试系统

2024-02-21黄家庚封丁路

软件导刊 2024年1期
关键词:舵机控系统通讯

黄家庚,徐 恺,封丁路

(河南科技大学 机电工程学院,河南 洛阳 471003)

0 引言

随着人们对于制导弹药的综合需求日益增强,制导弹药在未来将会向远程化、精确化、智能化、隐形化、通用化、模块化和低成本的趋势发展[1-2]。舵机的功能是根据飞行控制系统的控制信号调节舵面偏转角度,从而控制导弹在空中飞行的姿态。舵机的性能好坏将直接影响导弹飞行的品质和制导的精度[3-4]。因此,如何快速精确地对舵机的性能指标进行测试是一个非常重要的问题。

目前,舵机的性能测试多采取人工测试的方法。由于舵机需要测量的性能参数较多,人工测量方法工作量大,过程繁琐,在测量过程中工作人员难免有操作失误或执行不当的情况,从而容易产生测量误差,影响测量的效率和准确性[5-6]。搭建智能化测控系统完成舵机的性能测试,从而替代传统的人工测量方式,对舵机测试具有重要的实践意义[7]。文献[8]提出一种基于USB 的舵偏角采集系统设计方案,虽然USB 方便使用,但是通讯可靠性还需提高;文献[9]设计了一个通用舵机测试系统,能够测量多种舵机性能,但是没有加载装置,无法全面测试舵机的负载性能;文献[10]设计了一个加载测试系统,但是加载装置为单通道且能够加载的力矩较小,无法满足较高力矩的加载测试需求。

LabWindows/CVI 是NI 公司(美国国家仪器公司)推出的交互式C 语言开发平台。它将功能强大、使用灵活的C语言平台与用于数据采集分析和显示的测试工具巧妙地结合起来,利用其集成化开发环境、交互式编程方法、函数面板和丰富的库函数大大增强了C 语言的功能。与传统开发软件相比,LabWindows/CVI 能够方便地协调和调用外部采集设备,通过GUI 设计能够让用户更加方便地进行人机交互,缩短开发人员的研发时间。

针对舵机测试过程繁琐、测试项目繁多的问题,本文设计了一套舵机性能测试系统。该系统能利用程控电源为舵机提供工作所需的功率电源和信号电源,上下位机通过RS422 协议通讯,稳定可靠。系统上位机通过软件控制指令来模拟弹载计算机控制指令,利用加载系统来模拟导弹飞行过程中舵机需要克服的空气铰链力矩。该系统使用LabWindows/CVI 编写主要程序,能够对信号采集模块采集的舵机控制信号、反馈信号以及加载系统的力矩信号进行数据的读取、显示、存储及处理,实现了舵机性能测试的自动化和数据采集处理的智能化,提高了舵机测试的效率,同时降低了测试人员的工作强度,确保通过测试的舵机能够满足使用要求。

1 测试系统组成

舵机性能测试系统主要由软件控制单元、程控电源、数据采集单元、舵机力矩加载单元、舵机驱动控制单元组成。测试系统整体结构如图1所示。

Fig.1 Structure of the test system图1 测试系统结构

控制主机主要由软件控制单元与数据采集单元构成,软件控制单元为基于LabWindows/CVI 编写的测试软件,数据采集单元由多个数据采集卡和串口卡组成。控制主机的主要功能是根据用户的测试需求,向下位机发送相应的测试波形,同时获取下位机的运动信号反馈,通过对发送信号和反馈信号的比较分析,确定舵机性能是否符合要求。同时能够生成数据波形以供用户直观地了解舵机的性能。下位机主要由程控电源、舵机驱动控制单元(舵控盒)、被测舵机组成,主要功能是接受上位机的控制指令,完成相应的动作,其中舵控盒与上位机软件是通过串口卡进行RS422 通信;力矩加载单元主要由四通道加载测试台、扭矩传感器、光电编码器组成,主要功能是模拟舵机在飞行过程中需要克服的空气铰链力矩。

2 系统主要功能及测试流程

2.1 系统主要功能

由于舵机参数繁多,根据测试需要,舵机性能测试系统主要实现了以下功能:①电源控制。被测舵机所需电源为+56V 功率电源与+28V 信号电源,测试软件通过程控电源对舵控系统进行供电。供电逻辑为信号电源上电成功后功率电源才能上电;下电逻辑为功率电下电成功后信号电源才能下电。通过这两种供电逻辑保证被测舵机能够在舵控系统的可控范围内操作,避免因错误信号指令导致舵机机械结构损坏;②舵机空载测试。在舵机空载的情况下对舵机性能进行测试,主要涉及到舵机的极性测试、额定速度测试、极限行程测试、控制精度测试、零位精度测试与零位调整测试;③舵机加载测试。在弹性负载的情况下测试舵机带负载能力以及在额定负载下舵机性能是否达标,主要对舵机的动态特性、频率特性以及负载速度测试;④下位机通讯。实现上位机软件与下位机舵系统之间的通讯,在进行性能测试之前能够进行系统的上电自检、软件版本检查、位置信息检查;⑤手动测试。区别于空载测试与加载测试,手动测试是用户在舵机能够承受的范围内进行自定义测试,包括自定义波形、周期、零位偏移、幅值、频率等,提高软件的拓展性和适用性;⑥数据显示。在测试过程中,将控制信号与位置反馈信号分别显示在软件示波器中,方便用户进行数据分析及数据存储;⑦零位调整。零位是舵机的默认位置,修改零位可以改变舵机的初始位置,满足不同测试需求。

2.2 测试流程

在系统开始测试时,需要进行测试准备,通过软件控制程控电源对舵控系统上电,上电结束后在软件主界面进行测试项目选择。确定测试项目后即可向舵控系统发送控制指令,舵控系统在接收到控制指令之后会执行测试动作并会产生对应的反馈数据。上位机对反馈的数据进行采集和处理,将数据以波形图的形式显示在软件中。在用户选择是否存储数据之后返回主界面,若停止测试则通过退出键退出测试系统,若不停止测试则需要用户选择接下来的测试项目。总体软件的测试流程如图2所示。

Fig.2 Flow of test图2 测试流程

3 系统功能实现

3.1 通讯帧格式

控制主机与舵控系统之间通过串口进行通信,控制主机向舵控系统发送自检、作动控制或调零指令,舵机根据控制指令执行相应动作,并反馈执行结果。在控制主机与舵控系统通信过程中,以RS422 总线为载体,通过串口卡传输带有协议规定的有效数据的帧格式。通讯帧格式如图3所示。

Fig.3 Communication frame format图3 通讯帧格式

通讯帧中各部分含义如表1所示。

Table 1 Communication frame meaning表1 通讯帧含义

舵控系统上电后,舵控系统每5 ms 自动以消息ID 为0x00 向控制主机发送启动等待状态消息。控制主机根据用户选择向舵控系统发送自检及控制数据帧。其中,自检数据帧中消息ID 值为0x11,控制指令数据帧中消息ID 值为0x22,调零指令数据帧中消息ID 值为0x23。各类消息ID 所代表的数据帧类型以及帧长度如表2所示。

Table 2 Frame type and data length表2 帧类型及数据长度

自检、调零、控制数据帧都是由控制主机向舵控系统发送的控制指令,主要通过消息ID 来区分指令帧。反馈数据帧包含了舵机目前状态的所有参数,包括四路舵机的霍尔状态、位置超限状态、接受到的控制信号、舵反馈位移、舵反馈电流、功率电源电压、功率电源电流、舵控软件版本等信息。为保证通讯高效可靠,通讯波特率设置为614 400 bps,同时对数据帧进行校验和计算,对不满足校验结果的数据包不作响应。校验方法选择循环冗余法(Cyclic Redundancy Check,CRC)进行校验,使用基于Xmodem 协议的CCITT CRC-16 校验方式。通过查表法编写校验程序,部分CRC 校验程序如下所示。

3.2 测试软件关键功能实现方法

软件是测试系统的重要组成部分,测试系统的性能很大程度上取决于软件设计[11]。系统软件设计采用美国NI公司开发的虚拟仪器编程语言LabWindows/CVI,其是一套面向计算机测控领域的软件开发平台,能够为测试数据采集、过程监控及监理自动测试系统提供一个理想的开发环境[12-14]。

测试软件可分为舵机通讯、信号生成以及数据显示3个关键部分。舵机通讯的主要功能为接收舵控系统的自检结果、软件版本、舵机位置,确保舵机在测试开始前状态良好。舵机自检状态字在第13、14 号字节处,涉及到舵机的霍尔状态与舵位置超限状态,自检位为0 时代表自检正常,自检位为1 时代表自检异常。48、49 号字节代表舵控软件版本,当上位机需要获取软件版本时则可通过解析这两个字节的数据得到现有的舵控软件版本。25-32 字节为四路舵机的舵机位置信号,通过这8 个字节可以解析到四路舵机各自的实时位置。舵机通讯的数据解析均可通过舵机反馈数据帧函数“analyze_steeringgear”获取。通讯函数如表3所示。

Table 3 Communication function表3 通讯函数

以生成舵机控制数据帧函数为例,该函数的功能是通过串口卡发送数据帧,按照通讯帧格式将相关字节数据写入待发送的数组,相关程序如下所示:

由于舵机性能测试参数繁多,涉及到多种信号的生成,使用的是虚拟仪器自带的波形生成函数,具体如表4所示。

Table 4 Signal generation function表4 信号生成函数

以正弦信号为例,LabWindows/CVI 中产生正弦信号的函数为SinePattern,该函数的作用是生成具有正弦模式的数组。采用公式(1)可以获得双精度输出数组的第i 个元素。

其中,amp为生成函数的幅值,cycle 为周期数,phase为相位差,n为想要生成的函数点个数。通过该函数可以生成一系列元素点,这些函数点组成数组,生成了舵控信号。若为固定测试,函数相关变量由测试按钮的回调函数写入相应结构体中;若为手动测试,变量由用户自己设定,设定完成后点击开始测试后再将变量注入。行程测试舵控信号生成程序如下:

由于测试过程需要同时进行数据发送、采集和显示,如果使用单线程,当点击用户界面时线程就会持续处理用户界面事件,影响数据读取和显示,使用多线程则可以通过线程切换来保证数据采集和显示不会受到影响[15]。LabWindows/CVI 中有两种多线程实现方法,分别为线程池与异步定时器[16]。本设计选用异步定时器来执行多线程任务。相较于普通定时器而言,其优点是线程分里,在产生用户事件时,其他线程不会被打断,保证程序能够连续稳定运行[17]。同时还具有很高的精度,能够满足测试过程中大量的信号点采集需求。使用异步定时器步骤如下:

(1)AThandle=NewAsyncTimer(0.005,G_pointcount,0,AsyncTimer_callback,0);//创建异步定时器并配置间隔触发次数与定时器名称

(2)INT CVICALLBACK AsyncTimer_callback(INT reserved,INT timerId,INT event,VOID *callbackData,INT eventData1,INT eventData2)

{ComWrt(comport,info,sizeof(info));

ComRd(comport,frame_data,55);

analyze_steeringgear(frame_data,&stdata);}//创建异步定时器回调函数,并将数据采集发送指令写入回调函数

(3)SetAsyncTimerAttribute(AThandle,ASYNC_ATTR_ENABLED,1);//使能异步定时器,根据不同测试项执行相应任务

(4)SetAsyncTimerAttribute(AThandle,ASYNC_ATTR_ENABLED,0);//关闭异步定时器

3.3 加载单元实现

系统力矩加载单元采用四路力矩加载通道,采用十字型加载结构,通过弹簧杆被动加载方式实现模拟舵面所受到的负载力矩。弹簧杆加载是以扭矩为被调整量的加载系统,是一个典型的被动式扭矩控制系统,主要用于模拟导弹飞行时的舵面负载力矩,它对舵面或舵片的测试有着非常重要的实际意义。系统可通过调整弹簧杆的有效长度对被测舵机施加一定梯度的扭矩,根据弹簧杆的材料、机械特性、测试标定情况确定有效长度对应的加载梯度。原理图如图4所示。

Fig.4 Torque loading schematic diagram图4 力矩加载原理

调整刚度调节装置,使弹簧杆的有效长度为l,对应梯度为k。被测舵机旋转α角度时,弹簧杆施加给舵机的扭矩为kα,即扭矩大小与舵机偏转角度成正比例关系。

根据实际需求设计了一个四通道舵机加载台,可以同时进行四路舵机的加载测试。加载台外形如图5所示。

Fig.5 Loading table shape图5 加载台外形

角度编码器选用成都某公司生产的DT005D-7200P/r增量型光电编码器,精度能够达到0.05°。扭矩传感器采用AKC-98 扭矩传感器,该传感器采用电阻应变式原理,精度高、性能可靠稳定、安装使用方便,能够满足量程与精度的要求。

角度编码器和扭矩传感器可以实时测量被测舵机的偏转角度和弹簧杆施加的扭矩大小。两个传感器安装在弹簧杆两端,如图6所示。

Fig.6 Sensor location图6 传感器位置

4 系统验证

在测试之前首先将舵控系统与控制主机和电源进行组装,以空载测试为例,系统硬件如图7所示。

Fig.7 System hardware diagram图7 系统硬件

根据测试需求设计了舵机性能测试程序,主界面如图8 所示,主要包括舵机信号电与功率电的启停,舵机测试通道的选择,零位调整,常用测试项,如极性检查、行程测试、精度测试等。在舵机信号电与功率电上电成功后,即可通过舵机通讯页面进行舵机自检与位置信息反馈,界面效果如图9 所示,由于本次测试时仅测试了单路舵机,所以其他通道反馈为0mm。

Fig.8 System main interface图8 系统主界面

Fig.9 Communication interface图9 通讯界面

自检成功后即可开始项目测试,在点击测试项后,通过按键的回调函数向函数中注入对应的信号生成数据,信号生成数据通过异步定时器的回调函数发送给舵控系统,舵控系统控制舵机运动并将实时位置数据反馈给控制主机。图10展示了系统产生的5种信号。

Fig.10 Generation of 5 kinds of signal图10 5种信号的产生

以方波测试为例,当启动测试时,上位机将生成的方波控制信号通过串口传递给舵控盒,舵控盒控制舵机动作并将舵机位置的反馈信号反馈给上位机,上位机接收到反馈信号后通过PlotPoint 函数画出反馈信号点。效果如图11所示。

Fig.11 Feedback signal display图11 反馈信号显示

同时,用户可以根据自己的需求通过数据保存按钮将反馈数据保存起来,以供后期查看。保存的部分数据如表5所示。

Table 5 Partial feedback data of square wave表5 方波信号部分反馈数据

反馈数据点之间的间隔时间为5ms,通过数据处理计算可以得出被测舵机的相关性能数据,如舵机空载速度等。

通过方波测试实例可以证明,控制主机与舵控系统通讯良好,能够正常发送和接收控制指令。同时系统可以正常生成待测信号,能快速采集反馈信号并将反馈信号展现出来,达到了预期的设计标准。

5 结语

为提高舵机参数性能测试的效率与准确率,本文利用虚拟仪器软件LabWindows/CVI 设计了一种能够进行多参数测量的导弹舵机综合测试系统。该系统不仅能够完成对导弹舵机空载性能的全面测试,还设计了四通道十字加载台,同时完成对四路舵机的加载测试需求,在测试过程中能够直观动态地显示舵机的实时反馈数据。同时根据用户需要可完成多种自定义非常规测试,大大提升了舵机测试速度与准确率。后续改进工作为优化软件代码,同时提供更多测试项目来满足用户的多种需求。

猜你喜欢

舵机控系统通讯
《茶叶通讯》简介
《茶叶通讯》简介
通讯报道
关于DALI灯控系统的问答精选
联调联试中列控系统兼容性问题探讨
含齿隙弹载舵机的全局反步模糊自适应控制
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
通讯简史
一种新型列控系统方案探讨