3GO模拟飞行网|3GO Cyber Air Force

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2432|回复: 8

[提问] 求助攻,模拟飞行系统里面如何刻画飞机的攻角和俯仰?

[复制链接]
发表于 2017-6-28 08:17:11 | 显示全部楼层 |阅读模式
本帖最后由 biller 于 2017-6-28 08:21 编辑

RT..
我最近在从底层用C++重新写虚幻4的默认飞行模版

打算制作(Fake)一个飞行模拟程序,用一些便宜的投机取巧的办法去让这个东西玩起来有飞机的感觉。。

思路大概是这样,用BMS里的SU-27的dat文件里的数据,把其数据抽出来弄到matlab里拟合出升力阻力计算函数(因为我不会插值),然后再用这个函数放回虚幻4里的飞机动力学的cpp文件里面
Untitled.jpg
(现在的进度大概是这样)

BMS4里简易模型的做法,根据Data\Sim\Acdata文件加下的dat文件,似乎是用间断点插值的方法对各种力进行计算的,即判断飞机的某个姿态(如AoA)处于哪个区间,然后对应的数据(如升力系数CL)就在该(AoA)区间内插值

现在,升力和阻力的计算函数有了
Untitled2.jpg
u3.jpg

现在基本的进度是
飞机的发动机,高度/气压/密度,表速和真空速的换算,飞机的以自身轴线为X轴的体轴系,飞机以速度矢量为X轴的航迹坐标系定义出来了
这样攻角就定义出来

控制飞机的平动已经问题不大了。(虚幻4飞行模版默认键盘输入直接影响俯仰,然后新的速度增量直接增加到体轴系X轴上)

但是在如何处理转动的问题上遇到了很大的麻烦。
核心问题在于如何描述俯仰输入后,在下一帧如何改变攻角和俯仰角的问题。

实话说,飞机纵轴的转动方面的动力学我没仔细去看,因为这涉及了很多力矩和重心,焦心位置的数学。。。所以利用转动惯量和力矩,角加速度去定义飞机的俯仰和攻角变化我看来是做不到的。另外,三代机这些静不稳定的纵轴特性,我即使真模拟出来了,还得写个飞控系统去控制他,要不然一进游戏叫兽们准失控。另外我也没接触过PID系统。。。

现在的出路可能是去定义当前攻角下的最大俯仰速率去插值(当然最后可能还是去matlab里拟合一个函数。。。。)

我们先忽略侧滑侧力,先看飞机在铅垂平面的运动
当飞机的升降舵开始偏转(游戏里),飞机的俯仰角(Pitch)就要开始改变,我需要去调整飞机航迹系X轴的指向(速度矢量的指向),那我代码上大概就是

Delta_Velocity_Rotation.X=xxx;
Velocity_Rotation.X=Velocity_Rotation.X+Delta_Velocity_Rotation.X;
(速度矢量被翘起来了)

但是攻角怎么办我到没有办法,我不知道攻角应该怎么改变
如果我什么也不作,那飞机的攻角会一直都不变,在任何速度下,都不会改变攻角
但是具体怎么做,我不知道。

附代码Github地址:https://github.com/wildbill16/DummyFlightSim

东西都在myproject12pawn.cpp和myproject12pawn.h里面
注意cpp文件现在应该还是缺少一些代码所以还处于break状态,但是架子拉起来了。头文件里有些还是epic的代码

PS:我在FSX里的默认机文件里看到了转动惯量,我估摸着FSX里是计算力矩的,但是我看BMS里的SU-27.dat文件,没找到。
我倒是找到了BMS里的SU-27用的是定义滚转峰值角速度的办法去控制飞机的滚转速率的。
滚转看来不是大问题。 偏航。。。都不管侧力侧滑了了,没啥难度


发表于 2017-6-28 12:34:20 | 显示全部楼层
靠,太过于专业了
发表于 2017-6-28 19:38:26 | 显示全部楼层
太佩服你们玩程序的了 整天盯着屏幕那几十万行的代码 眼睛能不疼.......上次试着篡改A10C 盯着屏幕看了几天程序 也能篡改一些了 可是眼睛都不敢直盯屏幕了........幸亏没学计算机专业
发表于 2017-7-11 22:08:14 | 显示全部楼层
   楼主看来考虑十分周到,很多“纸飞机飞行游戏”里,飞机机头至指哪里飞机就往哪里飞,这显然导致了没有真实飞行的感觉。既然只是让游戏里的飞机有“飞”的感觉,不知是否可以采用一些强制的代码来约束俯仰角和攻角的变化,比如弄出一个公式,这个公式根据飞机当前的速度,质量以及杆量的多少,强行给飞机弄出一个“攻角”值出来,有了攻角,再根据攻角值计算升力和阻力,有了升力和阻力,俯仰角的变化也就容易得到了吧。
    我打开过《伊尔2 1946》的气动文件看过,发现伊尔2气动参数里很重要的两个参数就是升力系数Cy和阻力系数Cx随着攻角变化而变化的曲线,至于伊尔2怎么让飞机飞起来“有感觉的”,我就不太清楚了。
    不懂编程只是鲁莽的想法,望楼主不要介意。
 楼主| 发表于 2017-7-12 07:58:42 | 显示全部楼层
翼菲 发表于 2017-7-11 22:08
楼主看来考虑十分周到,很多“纸飞机飞行游戏”里,飞机机头至指哪里飞机就往哪里飞,这显然导致了没有 ...

我大概是这样摸索的。
我不打算通过模拟力臂还有转动惯量去模拟转动,我想直接给攻角一个恢复力矩造成的俯仰角加速度,给洗流时差和阻尼力矩的合成效应一个角加速度,给操纵舵面一个角加速度
直接去模拟最后的效果。。
不过现在我好想已经被数据海淹没了。。
这个数值不太好平衡。。。

发表于 2017-7-12 13:08:44 | 显示全部楼层
楼主好牛的想法,看不懂,祝你成功
 楼主| 发表于 2017-7-19 14:26:31 | 显示全部楼层
raptor 发表于 2017-7-12 13:08
楼主好牛的想法,看不懂,祝你成功

多谢版主。。
话说。。。241大人知不知道是什么因素在决定攻角和攻角变化率?
。。
我现在项目卡在这里,只能固定0攻角飞行。。。。


发表于 2017-7-21 15:29:02 | 显示全部楼层
這實在是看不太懂啊.......
发表于 2018-1-10 11:50:00 | 显示全部楼层
看起来好复杂啊,学习一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|3GO模拟飞行网|3GO Cyber Air Force ( 沪ICP备08002287号|沪ICP备14050587号 )

GMT+8, 2024-11-21 21:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表