09-仿真技术在直升机飞控试验中的应用(黄剑飞)

更新时间:2023-08-15 21:43:01 阅读量: 教学研究 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二十四届(2008)全国直升机年会论文

仿真技术在直升机飞控试验中的应用

黄剑飞 廖枫 史吉洪 舒舟

(中航二集团中国直升机设计研究所, 江西省景德镇市, 333001)

摘要: 针对性论述了某重点型号直升机飞行控制地面仿真模拟试验(飞控试验)仿真视景系统(飞控视景)的设计重点。本系统以国外前沿软硬件技术结合自主创新的模式研制,达到了引进吸收、节约成本、培养人才的目的,其架构可通用于各类型的视景设计中,并为飞控视景的完全自主研发及创新提供了依据。 关键词: 飞控试验;仿真视景系统;操纵信号

1. 引言

飞控视景是直升机飞控试验系统的重要组成部分,是为设计员及飞行员直观了解直升机模拟飞行姿态、真实感受直升机操控性能而设计的,飞控视景对虚拟场景的全面性和真实度要求不很严格,其研制方向以验证某重点型号飞控系统是否符合型号研发要求为重点。当地面试验启动时,驾驶员或电液信号发生器系统对驾驶杆发出操纵信号,信号经操纵杆系和助力器,由传感器发送到主仿真计算机A/D通道中,主仿真计算机依据操纵信号进行直升机飞行运动方程解算,并将转化为控制信号的操纵信号发送给视景系统及其它飞控分系统……,此时飞控视景应能逼真反映直升机实时飞行状态。因飞控视景软硬件结构庞大复杂,本文重点论述飞控视景中自主设计创新的部分。

2. 飞控视景硬件系统设计

飞控视景硬件系统(图1)由1台自选主仿真计算机、3台EVANS&SUTHERLAND公司的simFUSION图形工作站、1台3Dperception公司的融合计算机、1套自主研制的模拟综合显示系统(模拟综显)、3台SONY公司的PLC-XU35投影仪、1座自行设计投影屏幕等构成。飞控试验(图2)开始后,主仿真计算机将接收的操纵信号解算为控制信号,并通过网络控制模拟综显及图形工作站搭建的仿真模型,图形工作站的模型视频信号由融合计算机修正后,通过投影仪发送到投影屏上。

主仿真计算机负责将操纵信号解算为控制信号后发送给图形工作站、模拟综显及其它飞控分系统。它选用高硬件配置的双核PC机,其CPU型号必须与图形工作站属同系列,因为不同系列CPU的内部时序会有不同,将影响飞控视景软件跟随性,进而破坏飞控视景动态控制稳定性。

图形工作站负责飞控视景模型的构建、控制信号的接收处理及视频信号的发送。根据设计需求飞控视景没有大视场的必要,所以只需采用3台图形工作站,分别仿真座舱

的左、中、右三个方向窗外的场景。

融合计算机负责解决的视频信号线性失真及三通道视频图像的无缝拼接问题。图形工作站视频信号在弧面投影屏幕显示必会产生线性失真,需采用非线性校正技术修正,同时3个场景视频信号需通过边缘融合技术,实现各场景间的无缝拼接才能组成完整的视场。

图1 飞控视景硬件系统架构图

图2 飞控试验原理简图

自主研发的模拟综显负责反映飞控试验过程中直升机实时的飞行姿态,并作为驾驶员模拟飞行时的参考。综显是飞行员准确了解直升机飞行状态的重要途径,以昂贵的综显用于仿真试验及研究必将造成资源浪费,而模拟综显仿真了综显外观及功能(成本约是综显的1/30),其硬件性能稳定且软件继承与可移植性强,软硬件稍加修改即可用于不同型号的飞控视景中,经试验表明其设计完全满足需求,并可当作便携式虚拟测试设备及综显技术创新的试验品。

模拟综显由一台主综显(飞行状态综显)及一台副综显(发动机参数综显)组成,硬件构成主要包括机箱(主综显两套主机共用一个机箱,副综显单独一个机箱)、电源、CF卡、主机(PC104)、液晶显示屏幕及一些辅助元器件等,主综显使用AX10420型的48DI/O板,基地址使用IO板的默认设置0x220,不用中断,板上跳线为默认设置,主综显20个系统对应按键通过改造过的48DI/O数据线与IO板Group #2中的Port A、Port B和Port C相连,PA的地址为基地址+4,PB的地址为基地址+5,PC的地址为基地址+6,控制寄存器的地址为基地址+7,副综显硬件设计原理与主综显雷同。

模拟综显硬件研发需解决跳屏(系统重启)、页面失真(图像变色变形)等可靠性问题,经检测跳屏是PC104在满负荷状态长期运行时的输入电流不稳造成的,如设计专用电源替换给其供电的普通PC电源可解决此问题,但这样成本很高,可将模拟综显的

电源线和数据线更换为航空线、并以手工焊接方法减少接插头,这样即可稳定电流解决跳屏问题。页面失真是机箱过热及机箱内元器件电磁扰动引发的,采用以CF卡代替硬盘后问题解决,因为CF卡的散热远低于硬盘,且CF卡的外形比硬盘也小很多,使机箱空间扩大、散热更快,也利于更好的加装屏蔽套等设施防止电磁扰动。

投影仪负责视频信号的接发。为避免物理视差的产生,需选用3台同型号高流明度的投影仪,显示中部场景的投影仪安装在机舱顶部的机舱中轴线位置,投影仪间平面安装距离是0.8m,注意投影仪的设置及其与投影屏幕的相对安装位置和角度确定下后,才可运用融合技术。

自主设计的投影屏幕负责飞控视景图像的成像显示。它采用弧形钢架加装D型漫反射银幕的设计方法,弧面设计原理相当于大视场球幕的正前部份,根据投影仪、座舱、仿真模型的参数及驾驶员正面视场计算出的投影屏参数为:有效面积7.33m × 2.3m,以驾驶员面部为圆心的视场角120°、 R3.5m,屏底与座舱底平行,屏中线与座舱中线平行,参数微调由投影仪完成。

3. 飞控视景软件系统设计

视景系统软件(图3)主要包括MPI公司的Vega Prime、MultiGen—Creator、3Dperception公司的融合软件以及自主开发的主仿真软件、模拟综显软件等,视景系统软件以Windows2000为运行平台,自主开发的软件是以Visual C++6.0编译的。

Vega Prime软件负责飞控视景的场景驱动。

Mutltigen—Creator软件负责飞控视景仿真模型数据库开发。

融合软件负责修正飞控视景的图像。它以非线性校正技术解决弧面图像线形失真问题,并采用过滤融合、淡出淡入、遮挡光线等边缘融合技术,消除3个视景通道重叠区域的明暗不匀现象,实现视场间的无缝拼接。注意融合完成后,任何投影屏幕与投影仪的相对位置及角度定的变动,都将导致融合工作的重复。

图3飞控视景软件关系图

自主开发的模拟综显软件负责模拟真实综显的软件功能。模拟综显软件页面设计以SGI公司的OpenGL为标准并运用了ActiveX功能, 使用WindowsI/O方法访问I/O端口,网络交互选择Winsock I/O模式,以VC的DLL技术实时调整软件参数,模拟综显软件设计使用了仿真技术(如动态地平仪页面设计)、网络技术(如接收控制信号)、硬件技

术(如I/O板编程)等。

仿真技术中的应用难点是,模拟综显使用的PC104主机价格相对低廉,但系统资源有限,无法承受功能强大的绘图软件和函数,所以采用相对底层的OpenGL技术结合VC位图调用功能——以OpenGL技术实现动态控制页面、以位图实现静态页面,在有限的系统资源下实现与综显同样的视觉效果。

网络技术的应用问题主要是控制信号交互不稳定现象,这个现象的产生是由于PC104的系统资源有限及CF卡的使用, CF卡的读取速度较慢,而其容量有限也会导致软件运行时的虚拟内存不足,于是采用封装模拟综显软件的方法节约系统资源——根据试验需求,只把有用的模块封装成exe文件(如发动机参数及报警等模块在飞控试验中很少用到)装入系统,因模拟综显软件是以“class”的形式设计,添加新模块也只需Copy一个exe或 Dll文件到系统中即可。

硬件技术中的应用难点主要在I/O板编程方面,即如何通过PC104的I/O板,实现模拟综显页面对面板20个对应控制按键的组合响应(图4)。解决方法是先以“class”的方式调用开发的GIVEIO.SYS访问IO端口,之后对各个端口定义编程,而后再根据定义设计制造面板按键。硬件编程的基本模式如下:

h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, //HANDLE h;

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

if(h == INVALID_HANDLE_VALUE) { printf("Couldn't access giveio device\n"); return -1; } {

static int PA,PB,PC; //IO板Group #2中的Port A、Port B和Port C PA = _inp(BASE + 4); PB = _inp(BASE + 5); PC = _inp(BASE + 6);

if((PA & 0x01) == 0) pulseFlag[0] = true;// pulseFlag[]是定义20个按键数目的数组。 if(pulseFlag[0] == true && PA == 0xff) {key = 0;lock = true;pulseFlag[0] = false;}//响CloseHandle(h);

_outp(BASE + 7,0x9b);// IO板Group #2控制记录是 0X9b。

void OnKeyPressed()

应按键组合。 …… }

图4模拟综显按键软硬件对应关系

(IO板端口号-IO线端口号-软件对按键定义-按键功能显示)

自行开发的主仿真软件飞控视景核心软件。软件以“class”的方式封装成三个模块(飞控模块、MC模块、综显模块),分别安装到主仿真计算机飞控软件、MultiGen-Creato软件及模拟综显软件中。飞控模块是主体,负责将接收(或模拟)的操纵信号解算成控制信号后发送,并对仿真飞行数据进行监控、记录、分析。MC模块负责将Vega Prime软件定义的MultiGen-Creator建模的控制函数,与飞控模块发送的控制数据包关联起来。综显模块负责提供面向飞控模块的网络数据包。视景控制软件的设计主要涉及如下关键技术:

3.1网络数据交互

主仿真软件通过网络将视景系统软件连为一体后再与外部环境关联起来,因此主仿真软件的设计重点就在网络数据交互方面,包括交互数据数量、类型、大小、性质、动态IP等的统一定义等,其基本模式如下: SOCKET sr; //发送套接字。

NETSTRUCT recvstruct; //接收数据包。

LPVOID sockBufferS,sockBufferR;// 发送(接收)套接字缓冲区句柄。 HANDLE hSendData,hReceiveData;//发送(接收)套接字缓冲区句柄。 bool socketBuffer(void);//分配发送(接收)套接字缓冲区函数。 {

//接收操纵量信号数据。

hReceiveData=GlobalAlloc(GMEM_MOVEABLE,DataSize); if(!hReceiveData) return false;

}

if((sockBufferR=GlobalLock(hReceiveData))=NULL) { }

hSendData=GlobalAlloc(GMEM_MOVEABLE,DataSize); if(!hSendData) return false;

if((sockBufferS=GlobalLock(hSendData))==NULL) {

GlobalFree(hSendData); return false;

GlobalFree(hReceiveData); return false;

//反馈信号。

…… return true;

bool makeSocket(void);//套接字初始化及绑定函数。 {

//动态修改本机IP地址。

unsigned long address; char *addr = new char[20]; gethostname(addr,20);

hostent *host = gethostbyname(addr);

address = *((unsigned long *)host->h_addr_list[0]); delete addr;

sr = socket(AF_INET,SOCK_DGRAM,0); ss = socket(AF_INET,SOCK_DGRAM,0);

if((sr==INVALID_SOCKET)||(sr==INVALID_SOCKET))

return(false); unsigned long ul = 1;

int nRet = ioctlsocket(sr,FIONBIO,&ul); if(nRet == SOCKET_ERROR)

MessageBox(NULL,"创建非锁定模式失败", "Error", MB_ICONERROR |

//设定非锁定模式套接字,保证视景动态图像的流畅性。

MB_OK);

//设定本机与目标机IP地址。 }

void CloseSocket(void); //套接字关闭函数。

网络交互的主要飞行参数有俯仰角、滚转角、航向角、风速、风向、……,均以“structure”的方式定义在主仿真软件网络数据包中,辅助参数如vsd 、end、thf 等以“class”的方式单独定义,需要时再调用。

here_recv.sin_family = AF_INET;

here_recv.sin_port = htons(LOCAL_HOST_PORT_RECV); here_recv.sin_addr.s_addr = address; here_send.sin_family = AF_INET;

here_send.sin_addr.s_addr = inet_addr(LOCAL_HOST_ADDR); here_send.sin_port = address;

socketBuffer();//套接字缓冲区锁定设置。

setsockopt(sr,SOL_SOCKET,SO_RCVBUF|SO_REUSEADDR,(char if(bind(sr,(SOCKADDR *)&here_recv,sizeof(here_recv)))

return(false);

setsockopt(ss,SOL_SOCKET,SO_SNDBUF,(char FAR*)sockBufferS,DataSize); if(bind(ss,(SOCKADDR *)&here_send,sizeof(here_send)))

return(false); return(true);

……

FAR*)sockBufferR,DataSize);

3.2定时器编程

主仿真软件调试期间出现过视景图像及模拟综显动态页面与操纵信号不同步的现象,经检测发现, Windows2000平台虽最稳定,但其提供的定时器是建立在DOS的1CH中断基础上的,其发送WM_TIMER消息只能精确到大约55ms,无法适应飞控试验的需求,造成接收方采样频率无法与发送方同步,于是采用Windows2000下,包含于mmsystem.dll动态链接库中,多媒体编程接口中的底层定时器操作函数,实现计时精度可达1ms高精度的系统计时器, 解决了跟随性问题,下面是系统计时器的编程的关键代码段:

unsigned int wAccuracy; //定义分辨率。 int TimerID; //定时器的句柄。

#include <mmsystem.h>//包含所用系统函数的头文件。

if(timeGetDevCaps(&tc, sizeof(TIMECAPS)) == TIMERR_NOERROR) ////启动定时器。

{

wAccuracy = min(max(tc.wPeriodMin,1),tc.wPeriodMax); ////定时控制精度越高wAccuracy数值应越大。

timeBeginPeriod(wAccuracy); //设置定时器的分辨率。

TimerID = timeSetEvent(//安装异步计时器。

//定时间隔为1ms。

//回调函数。

//分辨率。

1.00, }

void PASCAL OnTimerProc(UINT wTimerID, UINT msg, DWORD dwUser, DWORD dwl, DWORD dw2) //多媒体定时器的回调函数。 {//调用接收数据函数。}

timeKillEvent(TimerID); //删除定时器。

wAccuracy,

(LPTIMECALLBACK) OnTimerProc,

(DWORD) this, //传送到回调函数的飞控数据。

TIME_PERIODIC ); //发送周期。

……

4. 结束语

飞控视景圆满实现了设计初衷、有力保障了某重点型号的研发任务,它以国外前沿软硬件技术结合自主创新的模式研制,不但达到引进吸收的目的,而且极大节约了成本、培养了人才,良好扩展性还使其架构可通用于各类型的视景设计中,并为飞控视景的完全自主研发及创新提供了依据。

参 考 文 献

[1] 田玉平.自动控制原理[M].北京:电子工业出版社,2002

[2] Microsoft Visual C++ 6.0 MFC Library Reference[S] .USA: Microsoft出版社,1999

Design of the Helicopter Control Visual System

HUANGJianFei LIAO Feng SHIJiHong SHUZhou

(China Helicopter Research and Development Institute,JiangXiJingdezhen,333001,China) Abstract: Discuss the keystone of helicopter control visual system.The system develop use overseas foreland soft ware and hand ware art or independent innovative means for absorb、economize and bring up person with ability,the mode use for else visual system develop,offer gist for visual system freedom empolder and inaugurate。

Key words: helicopter control system test;visual system;control signal

本文来源:https://www.bwwdw.com/article/8qoj.html

Top