计算游戏的汽车发动机转速


2

我正在尝试为游戏进行高级汽车物理模拟。我现在需要做的是以非常精确的方式计算发动机转速。由于计算之间的时间步长非常小(每秒60帧或0.166667毫秒),我可以在新帧中使用旧帧数据,因此这不是问题。

我想要做的是计算发动机转速。我可以访问的值是:

  • 油门(一个可伸缩之间值和)fthrottlefloat0.01.0
  • Clutch (就像油门一样 - 可扩展)fclutchfloat
  • 发动机扭矩输出基于扭矩曲线(转矩曲线RPM,然后使用RPM作为输入返回转矩作为转矩轴之间lineary插补曲线输出)。ŤËñG一世ñËfloat
  • 车轮角速度(一个在值,对驱动轮它是Ť /,用于自由滚动的车轮它是V / [R )。ωw ^HËË小号floatrad/sŤ/一世V/[R

我需要以每分钟转数计算发动机转速。


4
忽略离合器的滑动,你似乎错过了最重要的部分:齿轮。车轮和发动机将机械锁定在一起。车轮转速和发动机转速的唯一区别在于齿轮比。
hazzey

π

α=τ/I

Answers:


3

有许多变量,但你的大部分系统都可以通过汽车内部传感器和OBD-II系统进行经验测量(或者可能制造数据,但我不会屏住呼吸)。对于RPM,您需要独立建模两种方案; 离合器接合离合器分离


离合器接合:如评论中提到的那样,发动机将以车轮速度的齿轮比转动。取你的转速并将其放入扭矩曲线(对于你给定的油门位置),以给你扭矩。扭矩乘以您的齿轮比和轮胎半径为您提供力量。然后用车辆的质量求解F = MA,给你加速度。然后使用运动学方程v = a * t + v0根据您当前的速度和时间步长求解新的速度。然后用于计算新的RPM ......迭代也是如此。同样,你可以用动能方程来解决它。


离合器分离:这种情况可以通过考虑发动机的能量输入和内部摩擦来建模。当您停止按压燃气时,即使没有车轮在地面上,系统也会减速。您可以通过在移除油门输入时绘制RPM图表来根据经验测量特定车辆。离开地面的轮子和脱离的离合器之间的唯一区别是存储在纺纱系统中的惯性量或动能量以及由其他纺纱部件施加的额外摩擦力。这也可以凭经验确定。

将RPM调整到扭矩曲线(对于您给定的节气门位置),它可以为您提供扭矩。
扭矩* RPM =自由旋转发动机的功率输入。

功率输入=内部摩擦+动能

内部摩擦由基于RPM的经验曲线计算。然后求解动能输入。然后使用惯性矩(根据经验找到特定的发动机)来解决你的新RPM ...再次将其重新放入并迭代。


请注意,发动机摩擦力仍明显存在于离合器接合模型中,但与其他力和系数(例如阻力)相比可能无关紧要。通常最好先让模型以简单模式运行。如有必要,您可以随后提高模型的准确性。我说“经验”的每个地方都可以用初始模型测试的软糖因子(假设/猜测系数)代替。但是,对于高度精确的模型,您需要高度准确的数据。


α=T/I

在物理学不准确的游戏中,具有精确模拟的RPM将是非常困难/不可能的。也许你提出的任何东西都会足够好。或许可以提取其他数据来指示汽车是否在地面上(从重力垂直加速),这对于你进行一些计算是很好的。
ericnutsch 2016年

好吧,我使用光线投射轮子,这可以确定材料之类的东西,或者轮子接触地面,这不是问题。更多的问题是检测汽车是否有撞击(例如撞在树上或其他车内)并且在这种情况下计算适当的发动机转速和车轮角速度。它可以是近似值,但它仍然必须感觉真实。
Adrians Netlis 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.