科研

一个能编程、能引用、能核查的数字孪生。

Studio 逐位确定,模型参数的来源都有记录。可用于控制、加工、计量、教育或 AI 研究——而且每个结果都能复现。

锁步 API

每行一个 JSON 请求;只有你让虚拟时间前进它才前进。只用标准库的 Python 包做了封装,支持批量运行和多进程参数扫描。

FMI 风格的联合仿真

变量、get/set 与 doStep,命名与 FMPy 一致,可以和 Modelica、Simulink 或 Python 模型耦合。

MTConnect

SHDR 适配器,35 个数据项,附设备描述文件,便于接入看板和数据管线。

录制

MCAP 供 Foxglove 与 PlotJuggler 使用;VCD 记录每一个步进脉冲,可在 GTKWave 中查看或与逻辑分析仪对比;CSV 曲线。

切削力学

带 kc(h, vc) 的机理切削力模型,时域再生颤振与半离散法复核,基于机身有限元的静态变形。

在孪生上做计量

几何误差模型(螺距、周期误差、直线度、角度、垂直度、反向间隙、热变形),配 ISO 230-2 与 230-4 测试脚本。

经 MCP 的 AI 智能体

23 个工具、确定性的重放指纹和每次调用的审计日志,让大语言模型的实验可复现、可核查。

逐行统计

每行程序的用时,加起来正好等于总时间;每一处进给没达到的原因,来自 grblHAL 自己的规划器算法。

优化器与生成器

进给、转速与路径的优化,有明确的接受规则,在全新的孪生上验证;并在十五个示例零件上做了基准测试。

孪生是怎样被检验的

245 项验收测试
每次改动都跑;Linux 上跑全套,Windows 上跑程序自己的 119 步窗口自检和 23 项检查
28 个金标准指纹
七个场景 × 四个驱动层级,Windows 与 Linux 完全一致
与上游对比
同样的程序行,位置与应答和 grblHAL Simulator 完全相同
CAMotics 交叉核对
15 个示例零件,97.7%~100% 的网格完全一致
OpenCAMLib
用投影法(drop-cutter)核对材料去除模型
性质测试
随机运动、暂停与软限位,失败时自动收缩到最小反例
MCP 重放
同一次 MCP 会话在 Windows 与 Linux 上得到相同的重放指纹;结果图逐字节相同

模型目前的局限

孪生还做得不够好的地方。我们把它们公开出来,读结果时请一并考虑。

  • 在样机实测之前,参数都是设计值和文献值;标定之前,切削力可能差到两倍。
  • 切削力模型每段路径只取一个切入弧,所有刀形都用平底立铣刀的公式。
  • 热误差只算了滚珠丝杠和主轴;铝机身和工件本身的热胀还没有建模。
  • 材料去除占了大部分计算时间:切削程序通常只比实时快几倍(示例 02:5.8 倍),精细雕刻可能比实时还慢(示例 06:0.7 倍)。
  • 发送软件目前经 TCP 连接;像真控制器那样的虚拟 USB 串口在计划中。

孪生发现、已报告上游的问题

把真实固件放进确定性仿真,能暴露出罕见的时序路径。以下报告已附复现方法和补丁提交给 grblHAL 项目:

grblHAL/core #1023进给保持后恢复的程序段可能在次要轴上丢一步
grblHAL/core #1024暂停期间规划块剩余部分被丢弃,并随下一次移动执行
grblHAL/core #102664 位主机上设置同步的 8 位偏移量导致上电后丢失 G54 等数据
grblHAL/core #1027被拒绝的 G93/G95 程序段仍把进给速度清零
grblHAL/Simulator #27validator 构建卡死,并在程序结束时崩溃

引用

BibTeX
@software{twinwright_studio_2026,
  title   = {Twinwright Studio: a deterministic digital twin of the MC-1 desktop CNC mill},
  author  = {{Twinwright}},
  year    = {2026},
  url     = {https://twinwright.com/research/}
}

与我们合作

欢迎联合项目:其他机床的孪生、在 MC-1 样机上的测量、孪生与真机成对录制的加工数据集,以及教学研究。