一种简化的单旋翼带尾桨类直升机飞行控制仿真方法与流程

文档序号:22889393发布日期:2020-11-10 18:11阅读:148来源:国知局
一种简化的单旋翼带尾桨类直升机飞行控制仿真方法与流程
本发明属于计算机仿真和航空工程
技术领域
,具体为一种简化的单旋翼带尾桨类直升机飞行控制仿真方法。
背景技术
:目前,直升机仿真系统广泛应用于直升机性能评估、操作培训、虚拟战场模拟等方面,同时,在一些危险的飞行任务的训练中,国内外常通过虚拟现实仿真技术对受训人员进行模拟训练。直升机仿真具有经济性、可重复性、安全性以及不受场地限制等特点,进而高效达到目的。随着计算机仿真技术的发展,对性能评估、操作训练等要求的不断提高,对虚拟仿真训练环境的模拟逼真程度要求也越来越高。除却对飞行员控制直升机的训练要求,更要求增加针对管理层制定的决策与判断的可行性进行评估。简化的单旋翼带尾桨类直升机飞行控制在直升机训练以及决策与判断仿真系统中有非常重要的作用,需要在确保简化直升机飞行控制不影响或改变直升机飞行形态,保证受训人员或ai操控能够实时展现直升机的飞行参数,并据此做出相应操作,借以提高训练质量和效率。现有飞行控制仿真可分为实物仿真、半实物仿真和虚拟式仿真,其中实物与半实物仿真外观模型均采用物理模拟方式,交互设备需采用实装部件,因此采用虚拟式仿真可不受诸多客观条件限制。常用的虚拟式飞行控制仿真模型的建立仍以真实模型为基础,对不同的直升机首先需要进行不同的模型构建,其次才是简化的飞行控制逻辑脚本,考虑到飞行控制的通用性和直升机飞行姿态展现等因素,目前仍需要不断改进。技术实现要素:为解决上述技术问题,本发明目的是通过本发明的方法,为直升机仿真提供一种通用于所有直升机飞行控制的仿真方法,在保证所有直升机飞行状态通用特性的前提下实现直升机飞行的快速高度仿真,具有通用性、设计周期短等优点。本发明完整的技术方案包括:一种简化的直升机飞行控制仿真系统,其特征在于,包括数字模型模块、输入模块、解算模块、控制模块、仿真模型模块和显示模块;所述数字模型模块,根据单旋翼带尾桨类直升机机体系统、动力系统、执行系统、飞行控制系统,构建单旋翼带尾桨类直升机通用数字仿真模型;所述输入模块采用双手操作飞行控制摇杆,并采集摇杆外接设备输入的动态参数;所述解算模块对通过摇杆获取的动态参数进行解算,得到对应的遥感参数解算值;所述控制模块根据遥感参数解算值进行计算,得到当前直升机飞行控制数据,包括直升机前进速度、后退速度,直升机姿态左倾角度、右倾角度、直升机动力上升速率、下降速率;所述仿真模型模块通过控制模块获得的直升机飞行控制数据,将参数值直接反馈于直升机模型,直升机模型根据获取的参数值做出相应的姿态变化;所述显示模块用于实时显示直升机飞行仿真过程中形成的各直升机飞行仿真状态数据折线图;控制模块与输入模块和显示模块相连,并调用输入模块数据进行计算,由控制模块计算结果进行动态控制。采用上述仿真系统进行直升机飞行控制的仿真方法,包括如下步骤:步骤1:基于现实中单旋翼带尾桨类直升机分析出直升机飞行通用的基础参数,构建直升机通用数字仿真模型;步骤2:输入模块使用双手操作飞行控制摇杆,通过外接摇杆获得动态参数步骤3:将获取的动态参数输入解算模块,对应单旋翼带尾桨类直升机飞行控制所需要的实时飞行参数,基于预先编写的单旋翼带尾桨类直升机仿真飞行操纵指令采集程序进行仿真计算匹配;步骤4:通过控制模块确定单旋翼带尾桨类直升机初始状态,根据实际情况确定直升机的上限值,得到直升机在真实环境中飞行的姿势仪态参数与外接摇杆的每个刻度值相对应,然后根据输入模块所得参数进行数据转换,在vs编译环境中进行计算,得到直升机的飞行航向、飞行速率、前后俯仰角度、左右倾斜角度、发动机升降的控制数据;步骤5:将所述控制数据输出到直升机显示模块;步骤6:在虚拟世界中进行单旋翼带尾桨类直升机简化建模并与简化飞行控制脚本绑定,将步骤4得到的控制数据输出到直升机模型上,实现直升机简化飞行操控的仿真。进一步的,所述直升机飞行通用的基础参数,包括直升机机体信息和性能数据。进一步的,所述步骤1中使用c#代码技术构建单旋翼带尾桨类直升机数字仿真数据模型的c#原形代码程序;基于unity3d仿真环境,创建c#工程仿真平台,并将生成的c#原型代码程序以及预先编写的直升机仿真操作指令采集程序和图形绘制程序添加到构建的c#工程仿真平台中。进一步的,所述c#原型代码程序用于实时对其所接收到的操纵指令进行处理,生成直升机飞行仿真状态数据;进一步的,所述的直升机仿真飞行操纵指令采集程序用于采集直升机飞行仿真过程中输入的各相应直升机飞行仿真操纵指令;所述直升机仿真飞行操纵指令对应的飞机状态数据包括:飞机的俯仰角,横滚角,偏航角度,飞行航速和升降速。进一步的,所述实时图形绘制程序用于实时接收所述c#原型代码程序生成的直升机飞行仿真状态数据,实时生成相应的直升机飞行仿真状态数据折线,并发送至所述显示模块进行显示。进一步的,所述的c#工程仿真平台采用qt面向对象界面仿真工程平台。进一步的,所述的直升机通用数字仿真模型包含:直升机四通道显示数字模型、直升机特性仿真数字模型和飞行控制辅助器数字模型。进一步的,所述四通道显示数字模型包含:纵向通道、横向通道、航向通道和总距通道。进一步的,所述直升机特性仿真数字模型包含:飞机最大升限,飞机最大载重,飞机最大航速,飞机自重,飞机最大动力,通过采集的飞机性能参数输入直升机通用仿真数字模型,仿真获得单旋翼带尾桨类直升机的飞行特性。进一步的,所述飞行操纵辅助器数字模型包含:飞机自主配平系统和飞机自主悬停系统。进一步的,所述飞机自主配平系统:计算飞机自身空间坐标轴y轴与仿真环境空间坐标轴y轴的夹角,当夹角小于设定值,飞机机体自动回正。进一步的,所述飞机自主悬停系统:计算当前所受升力与飞机自身所受重力的差值,比较该差值与飞机最大动力和设定的百分比的乘积的大小,小于乘积值,则设飞机升降速为零,飞机保持悬停。进一步的,步骤2中的摇杆采用市售的飞行游戏摇杆。进一步的,步骤2中通过摇杆上的升降控制轴仿真输出直升机俯仰操纵指令、通过摇杆上的左右方向控制轴仿真输出直升机横滚操纵指令、通过摇杆上的左右旋转轴仿真输出直升机航向操纵指令、通过摇杆上的的油门滑块仿真输出直升机总距操纵指令。控制脚本中的预设参数和公式如下:throttle_y总距杆值:杆值的硬件取值范围为(1到-1)公式中30取值为假定飞机偏转30度获得最大动力进行计算;rotor_velocity转子转速(动力百分比,影响飞机全局速度):通过rotor_velocity=((1-throttle_y)/2);计算出当前转速比例:通过公式计算出当前提供动力(max_force)大小:max_force=((max_rotor_force-massf)*((maxheight-max_posy)/maxheight))*rotor_velocity-massf*rotor_velocity;max_force为当前飞机所受到的力的总和;前后受力计算:joystick1_y前后杆值;forward_y前后方向受力;anager是根据杆值计算出当前合力的方向的比值大小;max_force当前飞机所受到的力的总和;math.abs()计算绝对值;math.cos()计算余弦值;math.sin()计算正弦值;math.atan2计算从x坐标轴到点的角度;math.pi一个圆的周长与其直径的比值(大约为3.14159);通过公式计算出前后受力(forward_y)大小:forward_y=vector3.left*(float)math.cos(anager)*force2;通过addrelativeforce(forward_y)使飞机在工程运行时受到相对于自身前后的力的影响;左右杆值(joystick1_x)大于前后杆值(joystick1_y);force2=math.abs((float)math.sin((joystick1_x*30)*math.pi/180)*max_force);前后杆值(joystick1_y)大于左右杆值(joystick1_x);force2=math.abs((float)math.sin((joystick1_y*30)*math.pi/180)*max_force);当前合力方向的左右前后的比值anager=(float)math.atan2(joystick1_x,joystick1_y);左右受力计算:joystick1_x左右杆值;forward_x左右方向受力;anager是根据杆值计算出当前合力的方向的比值大小;max_force当前飞机所受到的力的总和;math.abs()计算绝对值;math.cos()计算余弦值;math.sin()计算正弦值;math.atan2计算从x坐标轴到点的角度math.pi一个圆的周长与其直径的比值(大约为3.14159);通过公式计算出左右受力(forward_x)大小:forward_x=vector3.back*(float)math.sin(anager)*force2;通过addrelativeforce(forward_x);使飞机在工程运行时受到相对于自身左右的力的影响;左右杆值(joystick1_x)大于前后杆值(joystick1_y);force2=math.abs((float)math.sin((joystick1_x*30)*math.pi/180)*max_force);前后杆值(joystick1_y)大于左右杆值(joystick1_x);force2=math.abs((float)math.sin((joystick1_y*30)*math.pi/180)*max_force);当前合力方向的左右前后的比值:anager=(float)math.atan2(joystick1_x,joystick1_y)。本发明的有益效果:1.本发明采用面向对象的设计思想。使用简化单旋翼带尾桨类直升机飞控的方法,极大简化了直升机逐个建模构建复杂飞行控制逻辑以及诸多算法公式计算的过程,也使得极大的简化了用户操控单旋翼带尾桨类直升机飞行,输入设备可选择市面普遍的摇杆,具有通用性。2.本发明的单旋翼带尾桨类直升机飞行控制仿真方法可以快速建模,将直升机飞行参数实时展示在直升机模型上,在飞行任务的训练中提高虚拟环境逼真度,提高训练受训人员的训练效率,也可应用于直升机评估,方便不同型号单旋翼带尾桨类直升机的建模。3.飞行操纵辅助器数字模型包含的飞机自主配平和飞机自主悬停更加简化直升机的飞行操控,使得人员无需具有专业性的直升机飞行控制知识,从而减少学习成本,使参训人员更加专注于任务流程的熟悉和团队协作。同时,在直升机设计初期,也可先采用实时动态给直升机本身加力使用力矩换算的仿真,方便在之后的评测中进行改进。附图说明图1是单旋翼式带尾桨类直升机飞行控制仿真方法流程示意图。图2是单旋翼式带尾桨类直升机飞行控制系统功能框示意图。图3是终端仿真效果显示图。具体实施方式以下结合实例对本发明做进一步阐述,但本发明并不局限于具体实施例。如图1-3所示,本实施例所使用的unity物理引擎,编译环境为visualstudio,是基于虚幻引擎unity的一种单旋翼带尾桨类直升机飞行控制仿真。步骤1:在unity仿真环境下构建单旋翼带尾桨类直升机数字模型c#原型代码程序。采集任务中所使用的直升机机体信息、性能数据、以及飞行控制指令。步骤2:输入模块数据采集。本实施例中,使用的设备适用于市面上所有普及的双手操作飞行控制摇杆,通过外接摇杆设备获得动态参数。步骤3:解算模块分析。输入获取的外接设备的动态参数,对应单旋翼带尾桨类直升机飞行控制所需要的实时飞行参数包括有前进、后退、俯仰、滚转、升降等。通过飞行控制装置的输入数据,基于预先编写的单旋翼带尾桨类直升机仿真飞行操纵指令采集程序进行仿真计算匹配。步骤4:控制模块计算。首先确定单旋翼带尾桨类直升机初始状态,根据实际情况确定直升机的上限值,加以得到直升机在真是环境中飞行的姿势仪态参数与外接设备摇杆的每个刻度值相对应。其次根据输入模块所得飞行参数进行数据转换后,在vs编译环境中进行计算,得到直升机飞行航向、飞行速率、前后俯仰角度、左右倾斜角度、发动机升降。步骤5:将所述控制数据输出到直升机显示模块。步骤6:在虚拟世界中进行单旋翼带尾桨类直升机简化建模并与简化飞行控制脚本绑定,将步骤4得到的控制数据输出到直升机模型上,实现直升机简化飞行操控的仿真。在本实施例中,由步骤1-4实现了简化的直升机飞行控制作用于直升机模型本身姿势仪态的变化,代表某一时刻的飞行状态。使用普通摇杆设备便将飞行参数输入,通过直升机模型飞行姿态的变化实现简化的单旋翼带尾桨类直升机飞行控制。以ec135作为设计实例:表1ec135飞机模型数据:表2ec135飞机性能数据:最大起飞重量:2632千克最大飞行速度:278公里/小时最大飞行高度:3000米最大爬升率7.6米/秒最大航程635千米空重1455千克最大功率472千瓦以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1