简单飞机吧 关注:26,365贴子:955,938

[ASTRO]LFM-Sec5|简单飞机1.7游戏环境中机翼类的升力与阻力计算

只看楼主收藏回复

摘要:
本文是“洛伦兹升力模型(LFM)”项目的第五次研究得到的结论。自简单飞机2014年发布至今,窝们对SP的机翼类在原厂游戏环境中的升力与阻力计算机制仍然没有了解,多数研究仅限于不精确的、对局部特性的粗略的估计与测量。最近一些玩家找到了SP中与机翼升力和阻力计算相关的文件,使窝们有机会从代码上重新认识简单飞机的一些气动特性。在这里,窝们给出了已解析的一些程序描述的机翼升力和阻力的计算机制。
关键词:
简单飞机空气动力学,洛伦兹升力模型,游戏内容相关程序
作者与单位:
Physics981123[1],魂裂_猎魂,1669504372
[1]AdcancedScience and Technology Researching Organization, ASTRO


IP属地:英国1楼2018-07-16 20:10回复
    文章正文:
    一、简单飞机中的机翼类
    简单飞机的机翼升力与阻力计算一直在简单飞机玩家中是一个重要的话题,如今借助部分从游戏中获取的代码,窝们可以从更为本质的角度了解简单飞机中这些内容。SP中的机翼类指的是具有partType="Wing-2"或partType="Wing-3"属性的零件。每一个机翼类都有对应的翼型(airfoil),且翼型共有三种,Symmetric,Semi-Symmetric,Flat Bottom。窝们在代码中确认了这三种翼型分别对应了”NACA0009”,”NACA23015”,”NACA23016”三个数据来源。现有的实验数据表明这三个数据来源记录的CL(升力曲线),CD(阻力曲线),与同名NACA翼型有一定相似之处,但没有确凿证据显示现实的NACA翼型数据与这三个数据库拥有同样数据[2][3]。

    可以确定游戏从另一些文件中提取翼型的攻角-升阻关系,并代入运算。但目前并没有解读那些文件的能力。
    对于每一个机翼part,在程序中有一个Wing类数据组,记录这个机翼在简单飞机游戏环境中的数据,包括有攻角(AngleofAttack),空气密度比(FluidDensityRatio),速度向量(Vector3)等。这些数据将在下文中的升力、阻力计算中被使用。


    IP属地:英国2楼2018-07-16 20:13
    回复

      二、简单飞机中大气的模型
      简单飞机中的大气模型采用了本系列项目Sec3中的大气标高模型,取海平面的大气压为P’=100kPa,大气标高为7640 m,海平面高度h’=0 m,可以由以下公式

      计算任意高度h的大气压强P,其中

      为空气密度比(FluidDensityRatio ),物理含义为当前高度h下大气压强与海平面大气压的比值。


      IP属地:英国3楼2018-07-16 20:14
      回复
        二、简单飞机中的坐标系与相关
        简单飞机中采用x,y,z三轴空间直角坐标系,x轴正方向为飞机设计界面初始驾驶舱右方,方向向量写作(1,0,0);y轴正方向为飞机设计界面初始驾驶舱上方,方向向量写作(0,1,0);z轴正方向为飞机设计界面初始驾驶舱前方,方向向量写作(0,0,1);


        IP属地:英国5楼2018-07-16 20:18
        回复
          二、简单飞机中升力与阻力的计算
          (1)rhs向量的处理
          简单飞机将每个机翼划分为10个小翼后对每个小翼进行了一次完整的升阻运算。

          上图中第二行代码限制了角速度的最大值为5000。定义了num1,num2与五个三维向量right,vector3_1(下简称为v31,下同),vector3_2,zero2,lhs1。当applyforces(对机翼应用力学效果)生效且实体不为空时,令v31=速度向量,v32=质心位矢,angularVelocity=角速度,
          lhs1=单位化的angularVelocity,num2=|angularVelocity|。
          接下来利用for循环顺序计算S1到S10共计10个小翼的升力。当applyforces成立,游戏判定这一小翼有升阻效果,参与接下来的升阻计算。

          上图中引入了rhs三维向量,当机翼满足Underwater(在水下)时,rhs=0向量,否则为-v31。令v33=气动中心位矢-v32(质心位矢),也就是v33=质心指向气动中心的矢量(简称AM向量),v34=(lhs1×标准化v33)-(num2*|v33|),rhs+=v34,令lhs2=right(右向量,即三中所提(1,0,0))。当机翼不在水下时,上述运算过程方程表达如下所示:




          当机翼在水下时





          IP属地:英国6楼2018-07-16 20:21
          收起回复
            最后一行公式的第一部分含义为为向量rhs赋予新值rhs+v34,是一种不严谨的写法,但为区别于程序中的写法且不引入新变量,固以此写法代替。下文中类似写法同理。
            (2)侧滑的消除
            简单飞机中将机翼在x方向上的速度称作侧滑,通过三行代码进行消除


            (3)攻角(AOA)的计算
            攻角通过翼弦线与速度方向进行系列运算得到,过程如下所示



            最后一步将弧度制度攻角转换为角度制,其中180/π粗略取为57.29578。


            IP属地:英国7楼2018-07-16 20:25
            回复
              瑟瑟发抖.jpg


              8楼2018-07-16 20:27
              回复
                (4)判断机翼的正反
                引入新变量lhs3与localScale,后者为xml文件中Scale=(x,y,z)三维数组,localScale.x意为该数组的x值。

                (5)计算等效升力与阻力
                通过上面的计算可以得知,rhs是一个经过将角速度与速度等效为与速度量纲相同的物理量处理的量,因而通过rhs计算出的升阻称为等效升阻(等效升力与等效阻力)

                游戏中使用了一些常数,上图中wingSection.Area指这个小翼的面积,具体计算过程如下

                Aerofoil.CL(CD).Evaluate(this.AngleOfAttack)的含义是:用(4)中得到的AOA(deg)代入从文章第一部分的三个数据库中对应本小翼翼型的数据库中提取出的CL(CD)曲线,该数据库会返回的一个值。num4与num5分别是num6乘以CL、CD曲线得到的返回值的积。
                用num4与num5分别乘以空气密度比,得到f1与f2,f1为该小翼的升力,f2为该小翼的阻力。
                (6)机翼与小翼的关系
                窝们尚不清楚这两者的确切关系,但考虑到游戏中一片机翼可以提供方向不同的力矩,每个小翼有可能都有一对单独的作用力(不考虑重力),在此不做断言。


                IP属地:英国9楼2018-07-16 20:29
                回复
                  鸣谢
                  感谢魂裂_猎魂为本人讲解C#代码的含义,以及AventadorGT3提供的程序。以上两者的贡献对于本次研究至关重要。
                  辅助材料:
                  建议阅读魂裂_猎魂关于升阻曲线的帖子
                  https://tieba.baidu.com/p/5792840288
                  以及本人的LFM项目Sec3
                  https://tieba.baidu.com/p/5773607122?pid=120570116729&cid=0&red_tag=2480686650#120570116729
                  参考:
                  所有图片来自魂裂_猎魂
                  1. 魂裂_猎魂在吉祥物营地.EXT群组中的解释[由于时间有限未能一一标明]
                  2. 1669504372查阅的airfoil-NACA23016曲线
                  3. NACA23015数据;http://airfoiltools.com/airfoil/details?airfoil=naca23015-il


                  IP属地:英国10楼2018-07-16 20:30
                  回复
                    以上就是LFM的Sec5的全部内容,原文可以本楼链接中下载:
                    实际上核心的工作都是猎魂做的,窝只是把这些整理起来用数学表达式的方式配上文字呈献给大家而已,另外在此感谢AventadorGT3从SP中找到了这些关键的文件。
                    以上
                    ————————————————
                    ASTRO 2018-07-16 20:40


                    IP属地:英国12楼2018-07-16 20:39
                    回复
                      物理酱成功地把一堆原来不是人话的东西转化成另一堆不是人话的东西表述了出来
                      然后这个报道还是存在少许偏差的


                      IP属地:广东来自Android客户端13楼2018-07-16 21:26
                      收起回复
                        另附;机翼焦点为1/4弦长,压心位置尚不明确


                        来自Android客户端14楼2018-07-16 21:29
                        回复
                          非常好的文章!让人眼前一亮,茅塞顿开! 不过我想针对你文中的内容提出一点疑问:你写的都是些啥?


                          IP属地:天津来自Android客户端15楼2018-07-16 21:54
                          收起回复
                            文科狗涩涩发抖
                            但是还是要佩服lz的能力。
                            最后。。。。。。
                            大佬


                            IP属地:上海来自Android客户端16楼2018-07-16 21:57
                            回复
                              ???或许我还没有体验到这个游戏的正确玩法


                              来自Android客户端17楼2018-07-16 21:59
                              回复