骨料筛分数据最容易错在哪:我们把自用的校验工具开源了

技术解读 砼睿AI 阅读 42
骨料筛分数据最容易错在哪:我们把自用的校验工具开源了

一、筛分数据是配比计算的第一个输入,也是出错概率很高的一环

一套配合比是从骨料的筛分曲线开始算的:先算累计筛余和通过率,再算细度模数、判定级配区,然后才是空隙率、浆体量、水胶比、强度。

后面每一步都建立在第一步的数上。第一步歪了,后面算得再精细也没有意义。

但现实是,这一步恰恰是人工抄算最多、最容易出错的地方。原因不在于公式难,而在于方向和口径这两个东西,错了以后曲线看上去完全正常——它依然平滑、依然单调下降,没有任何「不对劲」的迹象。

我们在自己站里做过统计:新来的试验员独立算十组筛分,前三组里必有一组的累计筛余是从小筛孔往大筛孔累加的。他看曲线觉得没问题,因为通过率还是从 100 往下走。

二、三个常见的错法,都是「看起来没问题」

1. 累计筛余的累加方向反了

正确做法是从最大筛孔往小筛孔累加:某一筛孔的累计筛余 = 该筛孔及比它大的所有筛孔的分计筛余之和。

反着累加,得到的数列也是递增的,画出来的曲线也是单调的,肉眼几乎无法分辨。唯一能暴露它的地方是细度模数——因为细度模数只取 0.15 到 4.75 这五个筛的累计筛余,方向一错,这五个数全错。

我们拿一组机制砂实测数据算过:按正确方向,细度模数是 2.71,判定为中砂、II 区。按反向累加算出来的细度模数是 2.95,也会被判成中砂——结论碰巧一样,数却差了一档。哪天真要按这个数调砂率,偏差就出来了。

这就是这类错误的可怕之处:多数情况下它不会让你立刻出错,它只是让你的数一直是错的。

2. 细度模数漏掉大于 4.75mm 的扣减项

细度模数的完整式子是:

  • Mx = [(A2 + A3 + A4 + A5 + A6) − 5·A1] / (100 − A1)

其中 A1 是 4.75mm 筛的累计筛余,A2 到 A6 分别是 2.36、1.18、0.60、0.30、0.15mm 筛的累计筛余。

那个「− 5·A1」和分母上的「100 − A1」不是可选项。 它是在扣除 4.75mm 以上的粗颗粒,把细度模数还原到「砂」这个粒径范围内。

很多手算表和简化 Excel 模板直接把 A1 一起加进分子、分母用 100,算出来的数在 A1 很小时(比如 3% 以内)差异只有 0.0x,看不出问题;一旦机制砂里混了少量 5mm 以上颗粒,或者碎石屑带进来石屑,误差立刻放大。

我们工具里那组算例:A1 = 5% 时,正确值 2.84,漏掉扣减项的值 2.95,差 0.11。而砂的细度模数在 3.0 边缘时,0.11 就是从「中砂」跨到「粗砂」的距离。

3. 细粉含量把「最小筛通过率」当成石粉含量

小于 0.075mm 的细粉(石粉)含量,正确口径是 100 减去全部分计筛余之和——前提是筛分里确实有 0.075mm 这一档。

如果只筛到 0.15mm 就停了,那 0.15mm 筛的通过率并不等于石粉含量,它等于「小于 0.15mm 的全部颗粒」。这里混着 0.075 到 0.15mm 的细砂,量可能差一倍。

石粉含量直接影响两件事:一是用水量(石粉吸水),二是胶凝材料用量的判断(石粉算不算 filler)。喂错一个口径,这两个判断都会歪。

所以我们在工具里做了处理:没筛 0.075 时,它不会硬给你一个「细粉含量」,而是如实显示「最小筛通过率」并注明口径。宁可给一个不同名的数,也不给一个名字对、内容错的数。

三、工具能算什么,不能算什么

已经开源的这个工具只做数据口径校验这一件事:

  • 分计筛余 → 累计筛余 → 通过率:按 JGJ 52 的方向换算,从最大筛孔往下累加
  • 细度模数:含大于 4.75mm 的扣减项,输出时同时显示扣减了多少
  • 砂的级配区判定:JGJ 52 表 4.2.2 的 I 区、II 区、III 区全表比对,逐筛孔标注落在区带内还是区带外
  • 小于 0.075mm 细粉含量:筛了 0.075 就给真实值,没筛就如实标注口径
  • 与 Fuller 参照曲线的偏差:n = 0.5 的连续级配参照,用来判断断级配和中间粒径空缺
  • 数据体检:分计筛余合计是否落在 98% 到 102%、累计筛余是否单调、有没有漏筛底、有没有明显断级配

它不做这些:空隙率计算、堆积模型、配合比求解、强度预测、成本优化。

这条边界是刻意划的。前面六项是客观口径问题,对错只有一个答案,谁算都一样;后面那几项是方法论问题,各家做法不同,属于产品本身的价值。混在一起开放,既保护不住东西,也会让工具本身变得不可信。

四、三种用法,按需要挑

  1. 在线版(推荐给试验室):直接打开网页 https://jun4033323689.github.io/aggregate-grading-toolkit/ ,把筛分数据填进去或拖一个 CSV 进去,立刻出结论,不用装任何东西
  2. 单文件版:从 https://github.com/jun4033323689/aggregate-grading-toolkit/releases 下载 zip,解压后双击 index.html,无需联网,适合现场没有网络或不允许外网的站
  3. 命令行批量校验:仓库地址 https://github.com/jun4033323689/aggregate-grading-toolkit ,把所有历史筛分记录丢进去一次跑完,有问题的文件会返回非零退出码,可以接进 CI 或日报流程

命令行这一项,我们自己用得最多。站里几百组历史筛分数据,人工抽查根本查不过来,跑一遍就能把所有「累计方向反了」「缺筛底」「合计不到 98%」的记录捞出来。

五、为什么要开源

说到底,筛分数据算错这件事,跟买不买谁的软件没有关系。它是行业里普遍存在的口径问题,而且错了不报警。

我们把它开源,是因为这件事本来就应该有一个公共的、可以对答案的东西:你算出来的细度模数是 2.71,我也算出来 2.71,说明我们口径一致,后面讨论配比才有共同语言。如果有人算出 2.95,那先别争配比,先对一下口径。

工具用 MIT 许可,可以商用、可以改、可以嵌到自己系统里,保留版权声明就行。代码量不大,逻辑都是透明的,任何一行都能自己去核。

问:这个工具需要装什么环境吗?

不需要。在线版打开网页就能用;单文件版是一个 HTML 文件,双击用浏览器打开即可,不依赖 Node、不依赖后端、不联网也能算。命令行版需要本机有 Node.js,但那是给批量处理用的,日常单组数据用不上。

问:为什么不把配比求解、强度预测也开源?

因为那部分的答案不是唯一的。数据口径只有一个正确答案,配比设计没有——同样的骨料和强度等级,不同站、不同泵送条件、不同材料单价,合理的方案就不一样。开源一套「唯一答案」的配比算法,反而会误导人。

另外这一块也是我们产品的主体,投入了大量实测数据和现场验证,不开放是合理的商业选择。但上游的数据校验不涉及这些,开放了只有好处。

问:工具算出来的细度模数和试验室手工算的不一样,怎么办?

先查三件事,按这个顺序:

  1. 累计筛余的累加方向:是不是从最大筛孔往小筛孔累加的
  2. 细度模数的扣减项:分子里有没有减 5 倍的 4.75mm 累计筛余,分母是不是 100 减 4.75mm 累计筛余
  3. 筛孔序列是否和规范一致:4.75、2.36、1.18、0.60、0.30、0.15 这六档,缺一档或换一档,细度模数都会变

这三条排查完,如果还差,把两边的分计筛余逐项对一遍——差异一定在某一个筛孔上,不会平白无故出现。

骨料筛分细度模数级配区数据校验开源工具

想看你自己的站能省多少?

把你们站的标号、方量和现在的配比发我,我按你的料价给你算一版。不合适就不做,不绕弯子。

jun403323689