你能用机枪作为向上的动力飞行吗?这就是兰德尔·门罗(Randall Munroe)在 What if? 的文章,“机关枪喷气背包”(https://what-if.xkcd.com/21/)中问的问题。事实证明你可以,因为有些机枪有足够的推力来举起自己的重量。在这篇文章中,我将探索向下射击机枪的动力学,并研究可以达到的实际力量、速度和高度。我还将重复 What if? 中的警告:千万不要在家里尝试这个。请使用我们的建模软件(https://www.wolfram.com/system-modeler/pricing/)。

顶部有松鼠的机枪

让我们从比人类更小的动物开始,从原始故事中的一只灰松鼠开始。把这只松鼠放在机关枪上,在全自动设置下向下射击,看看会发生什么。我将使用Wolfram System Modeler(https://www.wolfram.com/system-modeler/)对该系统的动力学进行建模。

机枪模型

上图显示了机关枪的模型。它包含受重力影响的有质量的子弹和枪组件。它们很容易通过组合内置机械组件来构建:

受地球引力影响的质量

弹匣组件更先进一些,因为它在每次射击时都会弹出子弹和弹壳。它通过获取整个弹匣的初始质量并减去弹药筒的质量乘以发射的射击次数来实现这一点,该射击次数由射击计数器组件给出。

将它与松鼠的简单模型、地面位置传感器和碰撞检测器结合起来,当一切都在地面上碰撞时停止模拟,我现在有了一个完整的模型。

为了获得良好的模拟,我需要为不同组件的模型填充参数。我将使用灰松鼠,它通常重约 0.5 公斤(约 1.1 磅)。

然后我需要一些我们机枪的数据。我将使用随处可见的 AK-47 突击步枪。以下是这款步枪的一些基本数据:

枪产生的推力可以通过子弹的质量、子弹离开枪口时的速度以及开枪的频率来计算:

然后,我可以估计用于实际推动子弹穿过枪管的每个射击间隔的百分比。我将假设枪管中的平均速度等于最终速度的一半:

然后可以使用推力计算这段短时间内的力:

现在我有了让松鼠在机枪上飞行所需的所有参数:

现在我们用枪中的一颗子弹来模拟机枪上的松鼠:

随着时间的推移,看到高度,我得出结论,松鼠达到了大约 9 厘米(3.5 英寸)的高度,飞行时间仅为 0.27 秒。

换一种方式:

这并没有让松鼠离地很远。明显的解决方案是什么呢?用枪发射更多子弹。标准弹匣有 30 发子弹:

这给出了近 5.8 秒的飞行时间,松鼠达到了令人眼花缭乱的 17.6 米(58 英尺)的高度。好吧,这对人类来说会令人头晕目眩;对于松鼠来说,可能没那么可怕。

哈,现在我们到达了某个地方:

我已经证明松鼠可以用机关枪飞行。让我们继续讨论人类,直接使用标准弹匣大小,30 发子弹:

一把枪不足以将一个人抬得很远。我需要更多的枪。让我们使用从 1 到 80 的枪数进行参数扫描:

这显示了一些有趣的模式。50支枪及以上的效果很容易解释。更多的枪意味着更多的力量,这意味着更高的飞行。不过,使用 15 支和 32 支枪的模拟更有趣一些。让我们仔细看看 15 支枪的场景。红点表示射击间隔,这意味着枪每 0.1 秒发射一发子弹:

你可以看到飞行器设法稍微起飞,再次开始下降,再次发射,但随后下降到比它所获得的高度更远的地方。您还可以查看随时间变化的速度:

第一次射击时,飞船以零速度开始,静止在地面上。它的速度急剧增加,但在下一次射击之前,速度下降到零以下。这意味着在一个射击周期中,即使枪内还有子弹,速度也会有净损失,最终导致坠落。然后它可以从静止在地面上重新开始,上下跳跃。

32 支枪的场景展示了另一种行为。开始看起来类似于使用 15 支枪时的行为,它会获得一定的高度,但随后会因为在每个射击周期中失去净速度而回落。但随后在 2.5 秒左右,它开始升高高度,直到所有弹药在 3 秒时用完。

如果您查看随着时间的推移弹匣的质量,可以解释这一点:

您可以看到,在每次射击时,弹匣都会减轻重量,因为它会弹出一颗子弹和一个弹壳。一段时间后,这使得整个飞行器足够轻,可以升高高度。这表明每个机枪可以携带多少子弹并且仍然能够飞行,这是您可以改变的另一个有趣参数。假设我创建了自己的自定义弹匣,让我们尝试使用以下 AK-47 弹匣尺寸飞行:

因为更多的枪意味着更多的力量,所以我会使用大量的枪,1000支:

当使用 1000 支枪时,每支枪带 165 发子弹并不是一个好主意:

这是因为如果你携带太多子弹,枪支就会变得太重而无法获得任何高度。既然我已经找到了一个合理的(如果尝试用机枪飞行有什么合理的话)可以携带的子弹数量,让我们看看在改变枪支数量时达到的高度。我希望有了更多的枪支,我们将获得更高的高度和飞行时间。

这是使用不同数量的枪达到的最大高度:

事实证明,大幅增加枪支数量(从 1,500 到 5000 万)只会略微增加所达到的顶部高度。这是因为随着枪支数量的增加,每把枪承载的人的部分减少,直到每把枪只承载自己的重量加上很少的额外质量。这使得整个飞行器在没有任何额外重量的情况下接近与单枪相同的最大高度,并且添加更多的枪不会带来更多优势。

最后,你可以用 AK-47 制造的最好的机枪喷气背包由至少约 5,000 挺机枪组成,每挺装有 145 发子弹。

使用机枪可以飞多高

本文源代码和模型请扫码“联系墨光工作人员

Wolfram System Modeler:机枪后坐力可以把松鼠射多远——不可能飞行的真实物理学相关推荐

  1. mathematica 基础及其在数学建模中的应用_Mathematica 在高考数学与高等数学等学习中的简单应用与思考...

    前言 一年一度的高考落下了帷幕,和往年[1][2][3]一样,我们又能看到不少讨论如何"使用某某工具快速解决高考难题的",例如[4](更加侧重对于教师的效果演示)和[5](侧重 W ...

  2. “谷歌杀手”发明者,科学天才 Wolfram

    作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) [程序人生编者按]有一位少年天才,15岁发表首篇粒子物理方面的学术论文:19岁,到加州理工学院研究基本粒子物理学, ...

  3. 作为怀孕的亲历者,你觉得最值得分享的经验或者技巧是什么?

    亲爱的各位知友,祝福我吧,快要当爸爸了,所以想请教各位这个问题,请注意: 1.无论爸爸.妈妈,还是长辈,都请谈谈 2.各种经验和技巧均可,例如特别需要准备什么东西:特别好用但不常见的备孕物品:值得推荐 ...

  4. 【Spring】工厂模式解耦

    问题: 程序的耦合    耦合:程序间的依赖关系    包括:类之间的依赖       方法之间的依赖 解耦:降低程序之间的耦合关系    实际开发:编译期不依赖,运行期才依赖    解耦思路:    ...

  5. Mac OS X 下查看和设置JAVA_HOME

    原文链接 : http://blog.csdn.net/done58/article/details/51138057 1, 查看Java版本 打开Mac电脑,查看JAVA版本,打开终端Termina ...

  6. SystemProperities

    SystemProperties与Settings.System 1 使用 SystemProperties.get 如果属性名称以"ro."开头,那么这个属性被视为只读属性.一旦 ...

  7. CAS是什么?ABA问题的产生和解决方法

    CAS是什么? 比较并交换(compare and swap)是一条CPU并发原语 功能 判断内存中某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的,中间不予许中断,解决数据一致性问题 ...

  8. SpringMVC中过滤器和拦截器的区别

    文章目录 1.引言 2.共同点 3.区别 3.1.拦截器 3.2.过滤器 4.具体实现 4.1.拦截器 4.1.1.拦截实现方式 4.1.2.拦截实现 4.2.过滤器 4.2.1.过滤器实现方式 4. ...

  9. (Head First 设计模式)学习笔记(1)

    以下内容转载请注明来自"菩提树下的杨过(http://blog.sqlsky.com)"   把书中开篇duck问题的代码翻译成了c#版: 概述: 某游戏公司要设计一款鸭子的游戏, ...

最新文章

  1. Adobe源码泄漏?3行代码搞定,Flash动画无缝导入Android/iOS/cocos2dx(二)
  2. 有程序员称:阿里拼多多什么的跟hw相比,性价比都不高.....元芳,你怎么看?...
  3. 一图读懂58大数据平台架构演进
  4. esp8266make相关文件改进
  5. ORB-SLAM学习--GitHub上较好的版本
  6. [转]C#中多路IP摄像机的视频监控系统
  7. 割平面法只能求解纯整数规划吗_离散规划 解法
  8. linux apache jk,Linux下Apache+Tomcat+JK实现负载均衡和群集的完整过程
  9. BUAAOO电梯作业总结
  10. 在C#中什么时候用分号?
  11. 微软承认iPad牛逼,正计划为其定做Office?
  12. Java高级:面试题-1
  13. python exec 返回值_Python exec()用法及代码示例
  14. 无法访问此网站 localhost 拒绝了我们的连接请求
  15. 谷歌借Google Play重返中国,这次能成功吗?
  16. 如何向Oracle数据库中插入带有特殊符号“”的数据
  17. iphone手机获取udid最简单的方法
  18. cf各区服务器所在位置,为什么说“黑区”是CF第一服务器
  19. 关于日文系统的安装[转]
  20. PHP--入门(一)

热门文章

  1. 推荐系统系列——推荐系统的分类
  2. pycuda 安装完毕,验证步骤
  3. 2022-09-17青少年软件编程(C语言)等级考试试卷(一级)解析
  4. lol12月25服务器维护,英雄联盟12月10日更新到几点 LOL10.25版本更新维护公告
  5. nio-buffer
  6. Windows电脑密码忘记解决方法
  7. html下拉列表默认未选择,Html.DropdownListFor未设置选定值
  8. Python入门习题大全——宠物
  9. 【CGAL_网格处理】Isotropic Remeshing均匀化网格
  10. android 首页广告位,IT之家安卓版 7.25:去文章内广告位、修正专题和头像显示异常...