速度计算
比赛

速度计算

MyPigeons 用相同的组成部分计算每只鸽子的归巢速度:距离、飞行时长、鸽钟差、死时段,以及在鸽子放慢时把排序切换到归巢时间的关键低速开关。本页面逐步讲解每个输入、它们的应用顺序,以及让多日比赛变得复杂的各种边界情况。

开始之前需要了解

  • 速度默认以 m/min 显示,对于英制国家则以 y/min 显示。精度由全局设置 速度小数位数 控制。
  • 死时段可在全国范围内配置 在单场比赛上覆盖。比赛级别的覆盖始终优先。
  • 飞得比 关键低速(默认 750 m/min)更慢的鸽子,在比赛上启用该选项时,会按归巢时间而非速度排序。

速度的基本公式

系统中的所有速度都使用同一个公式:

速度 = 距离 × 60 / 飞行时长,其中距离以米为单位(英制国家以码为单位),飞行时长以秒为单位。

距离单位换算

单位由 速度单位制 设置决定。公制国家把距离以公里存储并换算为米(× 1000)。英制国家把距离以英里存储并换算为码(× 1760)。孟加拉是有意为之的混合:距离以公里存储,但速度以 y/min 报告,因此距离要乘以 1093.6133。

精度与合理性检查

最终速度按配置的小数位数四舍五入。最后会运行两道保护:飞行时长为零或更小时把速度归零,任何超过 10 000 的速度也归零(通常由方向相反的鸽钟差或在放飞之前录入的归巢造成)。

飞行时长详解

飞行时长不仅仅是 归巢 - 放飞。它是按以下顺序应用的四个步骤的结果:

  1. 计算归巢的绝对时间戳

    归巢的时间戳按从放飞瞬间起经过的秒数计算:放飞 + (归巢日 - 1) × 86400 + 时 × 3600 + 分 × 60 + 秒。这避免了各国之间夏令时切换的问题——通过从放飞起计算经过的秒数,而不是重建日历日期,即使放飞与归巢分别落在切换时刻的两侧,结果也仍然正确。

  2. 减去鸽钟差或相对鸽钟差

    当启用相对鸽钟差时使用相对差;否则使用原始的鸽钟差。符号处理依赖两个开关。使用正向差始终翻转符号——在那些把正向差视为不利方向的国家很有用。使用负向差仅当差为负时应用;正向差被清零,这是大多数协会的默认行为。相对鸽钟差的完整机制在下面有专门一节。

  3. 减去自行车时间

    若鸽友登记自行车时间——把鸽钟从鸽舍运到俱乐部读取所花的时间——它会从飞行时长中减去,以便算入的是归巢登记时间,而不是运输时间。

  4. 减去死时段

    死时段的扣除是最复杂的一步,下面有专门一节。

相对鸽钟差详解

一些协会按比例把鸽钟差分摊到鸽钟运行的时间窗,而不是把整个差值套到每只归巢上。相对鸽钟差所做的就是这件事。启用时,计算器在算飞行时长时使用相对差代替原始的鸽钟差。

鸽钟运行时间窗:开钟时间与关钟时间

处理导入文件时,系统每场比赛保存两个时间戳,用以界定鸽钟的运行时间窗:

  • 开钟时间——鸽钟在装笼前在俱乐部被设置并启动的时间。
  • 关钟时间——比赛后停止鸽钟并完成读取的时间。

两个时间戳位于同一张表中,并按两个层级保存。

俱乐部级记录

每个俱乐部和比赛一条记录,包含默认应用于该俱乐部每位会员的开钟与关钟。这是最常见的情形——整个俱乐部一起装笼并一起读钟,因此一对开/关就覆盖了所有会员。

按鸽友覆盖

某些协会还在鸽友层面导入开钟(以及可选的关钟)时间戳。这些记录会针对该鸽友覆盖俱乐部值。覆盖是部分的:仅含开钟的记录只替换开钟,并继承俱乐部的关钟;同时填写关钟的记录则两者都替换。

存在鸽友记录时,时间窗从鸽友的开钟开始。窗口的结束如果鸽友记录带有关钟时间则取自该记录;否则回退到俱乐部的关钟。

相对鸽钟差如何计算

公式由三部分组成:

  • 运行时长 = 开钟 - 关钟——鸽钟运行的总秒数。
  • 归巢处的运行时长 = 归巢 - 关钟——归巢落在该窗口中的位置。
  • 相对差 = (归巢处的运行时长 / 运行时长) × 鸽钟差——按归巢时刻已过运行窗口的比例分摊到这只鸽子的鸽钟差份额。

具体而言,运行窗口最开始的归巢贡献 0 差;最末端的归巢得到全部鸽钟差;中间的得一半。结果四舍五入到四位小数后再返回飞行时长公式。

相对鸽钟差何时被跳过

两种情形会完全跳过计算并返回 0。其一:当国家配置中 使用相对鸽钟差 设置关闭时。其二:当该比赛既无俱乐部记录也无鸽友记录时——通常是因为导入文件未带开钟/关钟。这两种情况下速度计算器都会回退到原始鸽钟差。

符号处理与正/负开关

鸽钟差是一个带符号的数值,但各协会对哪个符号代表什么并不一致。MyPigeons 如何解读由两个全国性的开关决定。

使用负向差控制录入时的符号。打开(默认)时差按原样保存。关闭时,用户输入的正数在保存时会被翻转为负数——对那些把差以正数报告但当作罚时的协会很有用。

使用正向差会在差进入速度公式的瞬间翻转符号。关闭(默认)时所存数值原样进入;打开时则先乘以 -1——当你的协会对符号的解释与 MyPigeons 默认相反时很有用。

两个开关都是全国级设置;一旦与你的协会规则匹配,就不必逐场比赛改动。它们作用于当前正在使用的差类型——如果相对差启用,相同的符号规则作用于相对差,而不是原始的鸽钟值。

开钟和关钟时间从何而来

开钟与关钟时间在比赛数据上传时从导入文件中填入。大多数 ETS 导出会同时携带俱乐部的两个时间;采用鸽友层级覆盖的协会还会附上鸽友记录。如需在重算之前手动更正错别字或补充缺失的条目,也可以从鸽钟时间界面编辑这些记录。

死时段区域

死时段区域是反复出现的夜间窗口,在该窗口中鸽子不飞。系统会从飞行时长中扣除该窗口,使多日归巢不会因没有任何鸽子可能在天上的时段被惩罚。

死时段区域有 日期范围(适用于赛季的哪几周)和 时段范围(夜间窗口,例如 21:00 - 05:00)。被扣除的时长是一整天加上两个时间之间的差——也就是说 21:00 - 05:00 的窗口每晚为 32 小时,因为窗口跨过了午夜。

配置死时段的两种方式

死时段可以在两个地方设置。计算速度时按固定顺序读取。

全局死时段(全国范围)

管理面板 → 死时段区域 中配置。可以按赛季需要创建任意多个区间——通常夏季比赛使用较短的夜间窗口(例如 22:00 - 04:00),马拉松周使用较长的(例如 21:00 - 05:30)。每个区间有自己的赛季日期范围,可以无重叠地覆盖一年中的不同部分。表单会拒绝与已有记录重叠的区间。

按比赛覆盖

在比赛的管理标签上直接设置,作为对单场比赛的一次性覆盖。当某场比赛对死时段有不同寻常的需要时使用——例如长距离飞行只针对该比赛延长死时段窗口。覆盖只保存时段范围;它隐式应用于该比赛覆盖的所有日期。

哪一个胜出

速度计算器会按以下顺序查找两者:

  1. 查找全局区域

    全局查找针对 比赛放飞瞬间 进行。覆盖放飞瞬间的全局区间被加载——开始时间、结束时间和夜间时长。匹配按日期;时段范围之后用于扣除死时段,而不是用于过滤查找。

  2. 应用按比赛覆盖

    若存在按比赛覆盖,其值会 覆盖 全局查找加载的所有内容——覆盖始终胜出,包括三个字段(开始、结束、时长)。若没有匹配到全局区间但存在覆盖,则单独使用覆盖。

  3. 没有匹配就没有扣除

    若两者都未给出结果,死时段为零,飞行时长保持不变。

多日比赛与重叠区域

死时段的大部分复杂性只在超过一天的归巢中才显现。两个规则决定结果。

扣除多少夜

在确定匹配的区域后,其 夜间时长 与放飞和归巢之间的日历天数相乘。两天后归巢的鸽子被扣除两整夜的死时段;同日归巢的则一夜不扣。天数按日历日期计算,而不是按经过的秒数,因此从周五下午到周日早晨的飞行无论确切小时都计为两天。

落在死时段窗口内的归巢

若归巢的当日时间落在死时段开始与结束之间,计算器会在扣除前把归巢前移到窗口结束。两种情况对称处理:

  1. 午夜之前在窗口内归巢

    示例:21:00 - 05:00 窗口,鸽子在 22:30 归巢。归巢被前移至次日凌晨 05:00——加上从归巢到午夜的时间,再加上从午夜到窗口结束的时间。

  2. 午夜之后仍在窗口内归巢

    示例:同样 21:00 - 05:00 窗口,鸽子在 03:00 归巢。归巢被前移至当日的 05:00。两种情况都把归巢落在死时段结束处,从而扣除保持对称。

重要提示:仅使用放飞日的区域

全局查找 仅运行一次,针对比赛的放飞瞬间。如果你的国家为赛季不同部分定义了不同的死时段区间 单场比赛的飞行跨越其中两个,放飞日的区间会被用于其后每一晚——系统不会把不同日期的配置拼接起来。请规划全国级区间,使任何单场比赛都能落入一个区间。

对于一次性的、确实需要不同死时段(例如马拉松飞行而标准夜间窗口太短)的比赛,请在比赛管理标签上设置覆盖。覆盖仅替换该比赛的全部三个值(开始、结束、时长),是最干净的处理方式。

关键低速(默认 750 m/min)

当鸽子在路上停下——极端高温、逆风、过夜停歇的鸽群——速度会降到舍-至-舍的距离不再产生有意义排序的水平。仅按速度评判会不公平地偏向短距离的鸽舍,因为相同飞行时间下,距离越短速度越高。关键低速开关正是为此而设。

阈值如何配置

由两个设置驱动。关键低速定义阈值本身——默认 750,公制系统为 m/min,英制系统为 y/min。主开关 使用关键低速 在比赛界面中暴露该功能。

比赛如何加入

每场比赛在详情对话框中有两个开关:

速度低于阈值时按归巢时间排序

当此开关打开时,速度低于阈值的鸽子会以其 调整后的归巢时间戳 而非速度写入临时结果——排名因此按谁先到来排序,而非按谁在更短距离上飞得更快。阈值之上的鸽子不受影响;对它们仍按速度排序。两套排序系统在同一比赛中并存。

应用平均距离修正

此开关应用奥地利风格的修正:每个鸽舍的归巢时间按 每相差 100 m 偏移 8 秒 相对于比赛的平均距离进行平移。距离放飞地更远的鸽舍获得正向偏移(其归巢被视为更早),更近的鸽舍获得负向偏移。这样在不放弃基于时间排序的前提下补偿距离差异。

平均距离从何而来

比赛的平均距离从 不同鸽友的鸽舍距离 计算,而不是按只鸽距离。每个鸽友只贡献一次他的鸽舍,无论装笼了多少羽鸽——这样单个大鸽舍无法扭曲平均值。

速度何时被重新计算

只要某个进入公式的输入发生变化,速度就会被计算。最常见的入口有:

  • 新归巢——从 ETS 文件导入或手动录入,会触发针对该单条归巢的速度计算。
  • 批量编辑——比赛上的(鸽钟差、距离、死时段)会重新计算该比赛的每条归巢。
  • 比赛级重算——遍历该比赛的每条归巢——正式归巢、进行中的临时结果以及对外公布的归巢。当相对鸽钟差启用时,每位鸽友的相对差也会在重算速度之前从鸽钟时间记录中重新推导。
  • BENZING Live 归巢——无论是私人训练还是俱乐部共享训练,每次现场设备报告新归巢都会重新计算速度。
  • 转发 API——通过公开 API 推送归巢的第三方工具走的是同一计算路径。
  • 训练模式使用一个独立的、更简单的公式,完全忽略鸽钟差、死时段和自行车时间。用于个人训练记录,绝不与比赛结果合并。

值得了解的边界情况

夏令时切换

归巢时间戳按从放飞瞬间起经过的秒数计算,而不是从重建的日历日期计算。这使计算对放飞与归巢之间发生的夏令时切换免疫,即使比赛跨越多个国家也是如此。

组织的时区

当时区设置启用且比赛所属组织设置了自己的时区时,所有死时段时段比较都使用该时区。在两个国家设有办事处的协会因此获得一致结果——死时段窗口按组织当地时间解读。

英制与孟加拉单位

英制比赛把距离以英里存储,并在计算速度前换算为码(× 1760);单位后缀变为 y/min。孟加拉以公制距离(km)工作但报告 y/min,因此当公制系统与 y/min 标记同时配置时,距离会乘以 1093.6133 而不是 1000。

合理性上限

任何高于 10 000 的计算速度都会归零。这是对错误数据的防护——通常是方向相反的鸽钟差或在放飞之前录入的归巢。