作者:nenn(百度id:正正正正正好

注1:本文中提到的所有Minecraft版本均为1.12。

1.基本概念

1) 描述Minecraft铁路系统的基本物理量

Minecraft铁路系统中的基本物理单位包括长度单位、时间单位和质量单位。长度单位为格(b),即Minecraft中一个方块的边长。时间单位为游戏刻(gt),即Minecraft中两次相邻更新之间的时间间隔。质量单位为矿(ku),即空的普通矿车在未到达饱和速度时,动量与速度的比。

2)I、II、III、IV和V类铁轨

铁轨按照符合的动力学规律可以分为5类。同类铁轨满足相同的动力学规律,同类铁轨间的互换不会影响矿车在铁轨上的运动。

I类铁轨仅指充能铁轨(激活),是唯一一种可以提供动力的铁轨,也叫动力直轨。

II类铁轨包括普通直轨、探测铁轨和激活铁轨,也叫阻尼直轨。

III类铁轨仅指连续弯轨,即连续同向放置的弯轨。

IV类铁轨仅指交叉弯轨,即连续交错放置的弯轨。

V类铁轨仅指充能铁轨(未激活),是唯一一种可以制动矿车的铁轨,也叫制动直轨。

01 all rails in list

3)I、II、III和IV类矿车

矿车按照符合的动力学规律可以分为4类。同类矿车满足相同的动力学规律,同类矿车间的互换不会影响矿车在铁轨上的运动。

I类矿车包括空的普通矿车、TNT矿车、命令方块矿车和刷怪箱矿车,也叫非运矿车。

II类矿车包括运输矿车和漏斗矿车,这类矿车可以运输物品,也叫货运矿车。

III类矿车仅指载有玩家或生物的普通矿车,这类矿车可以运输玩家或生物,也叫客运矿车。

IV类矿车仅指动力矿车,是唯一一种自带动力的矿车。

02 all minecarts in list2

4)滑行距离与最大滑行距离

矿车在铁轨上的滑行过程中经过的铁轨长度即滑行距离,可通过entitydata获得实体“Position”值测得。

除了被激活的动力直轨外,其他连续同类铁轨上的矿车总会在滑行一段距离后变为静止状态,这一过程中矿车滑行的距离即最大滑行距离。

滑行距离S  与最大滑行距离Smax  的单位为格(b)。

5)速度与饱和速度

矿车的速度通过单位时间内的滑行距离来描述。

矿车在被激活的连续动力直轨上运动时,一开始矿车会不断加速。但当达到某一速度后,矿车的速度不会继续增加,而是维持这一速度。这一速度就是矿车的饱和速度,是矿车可以在铁轨上运动达到的最大速度,也称满速。

速度v  与饱和速度vmax  的单位为格/游戏刻(b/gt)。

6)加速度

矿车的加速度通过单位时间内的速度变化来描述。

加速度a  的单位为格/游戏刻2(b/gt2)。

7)动量与饱和动量

动量描述了矿车保持运动状态的趋势,可通过entitydata获得实体“Motion”值测得。

矿车在被激活的连续动力直轨上运动时,动量会不断增加。但当达到某一动量后,矿车的动量不会继续增加,而是维持这一动量。这一动量就是矿车的饱和动量,是矿车可以在铁轨上运动达到的最大动量。

动量p  与饱和动量pmax  的单位为矿·格/游戏刻(ku·b/gt)。

8)矿车质量

矿车质量描述了矿车的动量与速度的比值关系。非运矿车、货运矿车和动力矿车具有相同的质量,而客运矿车是它们质量的4/3倍。

矿车质量m  的单位为矿(ku)。

9)冲量

冲量是指一段时间内矿车动量的变化量。

冲量I  的单位为矿·格/游戏刻(ku·b/gt)。

10)载物量与载物信号强度

货运矿车的载物量就是指货运矿车中容纳的物品数量。不同载物量的货运矿车可以通过探测铁轨和红石比较器输出不同强度的红石信号,这一红石信号的强度由于可以用来描述II类矿车的载物量,所以也称载物信号强度。货运矿车载有不同数量的物品后,会遵循不同的动力学规律。

货运矿车中同类可堆叠至64的物品数量,使用“{J,T}D  ”这样的符号表示。其中J  表示物品组数,T  表示剩余不足一组的物品个数,下标D  表示矿车的种类,运输矿车标记为C  ,而漏斗矿车标记为H  。例如{2,32}H  表示载有2组另加32个同类物品的漏斗矿车,而{10,0}C  表示载有10组同类物品的运输矿车。

而对于不可堆叠物品,1个等价于1组可堆叠至64的物品数量。对于可堆叠至16个物品,1个等价于4个可堆叠至64的物品数量。

03 quantity and signal strength

[1]中也给出了较为简单的计算公式:

信号强度 = 向下取整(1 + (所有物品栏的满度和 / 物品栏总数) * 14)
单格的满度 = 单格中的物品数 / 此类物品最大堆叠数

虽然公式看似简单,但一般使用时,查阅上表可以更方便地获得结论。

载物信号强度h  单位为1。

11)作用力

铁轨对矿车的作用力是造成矿车动量改变的原因。激活的动力直轨可以对矿车产生推力。未激活的动力直轨以及阻尼直轨、连续弯轨和交叉弯轨都会对矿车产生阻尼力。

作用力F  的单位为矿·格/游戏刻2(ku·b/gt2)。

12)饱和耗时

饱和耗时是指某个物理量达到饱和所需要的时间。矿车从静止到饱和速度所消耗的时间即速度饱和耗时,记为tv  ,矿车动量从零到饱和动量所消耗的时间即动量饱和耗时,记为tp  。矿车抵达滑行最远距离的耗时即滑行距离饱和耗时,记为ts  

饱和耗时tv  tp  ts  的单位为游戏刻(gt)。

2.研究方法

04 research method2

蓝色表示通过Minecraft的内部途径获得的原始数据。Entitydata detection  是指通过命令方块rcb执行entitydata指令获得矿车坐标和动量的检测手段[2]h是指通过红石比较器获得的货运矿车的载物强度信号。

通过记录每一个游戏刻中矿车的坐标和动量,可以获得矿车的滑行距离S(t)  和动量p(t)  ,然后进一步获知速度v(t)  、加速度a(t)  、受力F(t)  。这些通过计算获得的量标记为红色

矿车速度v(t)  、动量p(t)  和滑行距离S(t)  有时并不随耗时t  的增加而无限增加,而是会趋于一个常数。速度v(t)  会趋于饱和速度vmax  ,矿车p(t)  动量会趋于饱和动量pmax  ,滑行距离S(t)  会趋于最远滑行距离Smax  ,而达到饱和速度vmax  、饱和动量pmax  和最远滑行距离Smax  的耗时则分别为tv  tp  ts  。这些值仅取决于矿车和铁轨种类,标记为紫色

也就是说,通过Minecraft可以获得的原始数据仅有S(t)  p(t)  以及h  ,其他量均通过数据处理获得。

v(t)=dS(t)/dt

a(t)=dv(t)/dt=d2S(t)/dt2

F(t)=dp(t)/dt

t→∞,v(t)→vmax或极限不存在

t→∞,p(t)→pmax或极限不存在

t→∞,S(t)→Smax或极限不存在

而动量p(t)  和速度v(t)  的关系为:

v(t)=Min[p(t)/m,vmax]

对于货运矿车,受力F(t)  和饱和动量pmax  与载物信号强度h  有关,即F(t,h)  pmax(h)  

3.铁路系统的研究意义

1) 加深对Minecraft指令的理解

02

质量完全是为了整个体系的自洽而引入的。这是因为部分实验结果与[3]中习惯使用的说法不相符(上图)。根据[3]中的表述,“Motion”标签描述了实体的速度矢量。我们来看下图的数据,其中的数据点均来自实验结果,描述了I类铁轨上的I、II、III和IV类铁轨的速度与动量的关系。纵轴描述的是矿车的实际速度,其通过单位时间内的滑行距离获得。横轴描述的是矿车的“动量”,通过记录“Motion”标签的数据获得。之所以将这个测量到的量称之为“动量”,是因为实验结果中发现,即使矿车没有达到饱和速度,对于不同矿车来说,矿车的实际速度也不总是等于“Motion”标签的数据。下图说明,对客运矿车而言,“Motion”标签的数据总是矿车实际速度的4/3倍,而对其他矿车,“Motion”标签的数据的确是矿车实际速度的1倍。如果解释说,一辆空旷车上坐上了玩家以后,“Motion”标签的数据读出的就是矿车实际速度的4/3倍了,不是会显得非常不合理吗?毕竟,按照[3]的说法,“Motion”标签的数据标记的就是实体的速度矢量,而矿车显然是实体的一种。

H:¿ó³µ�2 ʵÑéԭʼÊý¾Ý¼°´¦Àí[S,v,a,p,F] rail I and cart I,II,III,IV.opj/[S,v,a,p,F] rail I and cart I,II,III,IV/Folder1//p-v

另外一个证据证明“Motion”标签的数据与矿车的速度并不是同一个概念,就是在于饱和速度和稳定后的“Motion”标签数据值不相同。任何种类的矿车,经过足够多的(400格以上可以保证)动力直轨加速作用后,“Motion”标签的数据才会不再变化。而任何种类的矿车,经过2格动力直轨加速作用后,实际运动速度就会达到饱和。也就是说,矿车放在充能铁轨上加速滑行,滑行2格以后,就是匀速运动了,每个游戏刻就移动0.4格,不多也不少。但是“Motion” 标签的数据还会继续增加一段时间才会稳定在另一个值,这个值远远超过矿车的实际速度大小。从这个角度来说,很难再把“Motion”标签的数据解释为矿车速度,而应理解为另一种“与运动相关的量”。

可见,引入矿车质量的概念可以避免很多解释的困难。速度和动量在一定条件下呈线性关系,但速度和动量毕竟不是相同的概念,因而饱和速度与饱和动量可以遵循不同的规律也不难理解。“Motion”测量的是动量而不是速度则可以避免许多不可避免的矛盾。

2) 提高创新效率

通过研究不同铁轨对不同矿车的作用,通过上述的研究方法可以进行较精确的数学建模。这样的数学模型可以帮助很多玩家在设计矿车相关的系统时避免不必要的冗余的摸索过程。下图为[2]中的设计,这一设计就通过1格充能铁轨对不同矿车的作用模型获知了阻尼用的普通铁轨的最佳数量,从而避免了盲目的试错,提高了创新效率。

2017-08-05_18.51.33

3) 实现矿车的精确控制

通过不同铁轨对不同矿车的数学模型,可以实现对矿车的精确控制。可控车队的建立可以减少铁路搭建的成本,提高铁路的利用率和运输效率;而基于铁路的计时系统也可以获得更高的精度,基于铁路的时序控制也会有更广阔的应用。

3.参考文献

[1] 红石比较器 Minecraft Wiki 中文

[2] 《矿车分类的基本模块》

[3] NBT命令标签 Minecraft Wiki 中文

自动化铁路系统的设计准备

作者:nenn(百度id:正正正正正好) 注1:本文中提到的所有Minecraft版本均为1.12。 1.实现意义及基本技术 设计自动化铁路系统主要是为了解决两类物流问题...

阅读全文

安检模块的优化

作者:nenn(百度id:正正正正正好) 注1:本文中提到的所有Minecraft版本均为1.12。 1.主要优化 来自TopologyCraft的璺斝薧(百度id:璺斝薧)设计的一种...

阅读全文

自动化堆叠矿车分离模块

作者:nenn(百度id:正正正正正好) 注1:本文中提到的所有Minecraft版本均为1.12。 1.功能说明 [1]中提出的新型仓库系统中,车队操控技术是最重要的基础...

阅读全文

评论已经关闭。