筑见实验室

结构计算结果,为什么不能只发一张结果图?

从 v1.6.0 到 v1.7.0,ArchSight Solver 把结构计算从可接入真实系统推进到结果可携带、可校验和可复算。本文用可信计算包与 6 米简支梁说明,一份结果离开原工作台后还应保留哪些证据,以及软件复算不能替代哪些专业判断。

结构计算软件最容易让人放松警惕的时刻,不是它报错的时候。

是它顺利画出模型,给出位移、弯矩和轴力,而且每个数字都很像真的。

一张结果图可以说明软件算过,却回答不了几个更重要的问题:它算的是什么输入,用的哪个版本,结果有没有被改过,别人拿到以后还能不能重新算出同样的数字?

7 月 13 日那篇介绍 Solver v1.6.0 的文章里,重点还是“力学求解器不只要能算,还要能接进真实系统”。一个月后,这条线已经往前走了四步。今天更值得讨论的,不是又多了多少功能,而是一次计算怎样留下可以带走、检查和复算的证据。

从 v1.6.0 到 v1.7.0,连续解决了什么

这几次更新不是彼此孤立的功能堆叠。

  • v1.6.1 固定项目文件与宿主接入契约,让工作台能够被其他系统加载、保存和只读审阅。
  • v1.6.2 补齐工程生命周期与结果有效性。模型修改后,旧结果立即失效;迟到的计算响应也不能覆盖新模型。
  • v1.6.3 把公开验证集扩展到 66 个算例,其中 26 个可以由仓库内另一条刚度法实现复跑。测试不再只写“通过”,还记录标准值来自哪里。
  • v1.7.0 把输入、结果、版本、诊断、来源证据、复算规则和完整性摘要封装成可信计算包。工作台、REST API、CLI 与 MCP 使用同一个公开格式。
图 1 从接入真实系统到结果可以带走复算的版本演进
图 1 从接入真实系统到结果可以带走复算的版本演进

截至今天,v1.7.0 的公开 Release、版本记录、五分钟上手资料和线上工作台已经发布。它继续保持开源、免费,以及梁、二维平面桁架和二维平面框架的线弹性静力分析边界。

一张结果图,究竟缺了什么

假设有人发来一张弯矩图,告诉你“计算已经通过”。

你仍然不知道:

  • 几何、材料、截面、荷载、支座和单位是否完整;
  • 图片对应的是修改前还是修改后的模型;
  • 结果由哪个求解器版本生成;
  • 数字是否在导出或转发过程中变化;
  • 所谓“通过”是和解析解、独立实现、工程软件,还是上一版自己的快照比较;
  • 如果换一台机器重算,差异按什么规则判断。

这些信息不能靠截图补齐。它们需要跟着结果一起交付。

v1.7.0 的可信计算包是一个 UTF-8 JSON 文件,公开契约包含九个固定区域:求解器与契约版本、原始输入、求解器回显请求、归一化模型、完整记录结果、诊断与适用边界、来源证据、复算规则,以及 SHA-256 完整性摘要。

图 2 可信计算包把输入、结果、证据和复算规则放进同一份文件
图 2 可信计算包把输入、结果、证据和复算规则放进同一份文件

这使复核者可以先检查文件有没有变化,再用当前求解器重放记录输入,逐项比较位移、反力和构件内力。结果不再只存在于原工作台的一张图里。

“能够重放”和“独立复算”不是同一件事

可信计算包的重放可以发现包体变化、版本差异和结果漂移,但它仍会调用当前 Solver。若原来的求解路径存在系统性错误,同源重放可能继续得到一致结果。

所以还需要第二层证据:让关键算例走另一条实现路径。

图 3 主求解链路与独立刚度法基线的复算关系
图 3 主求解链路与独立刚度法基线的复算关系

Solver v1.6.3 建立的 26 个 B 级算例没有调用生产求解器的刚度装配和结果恢复实现。两条路径读取同一份结构输入,分别计算节点位移、支座反力和构件内力,再按明确容许误差比较。

这比“程序今天和昨天结果一样”更有分量,但仍不能代替输入审查。如果两条路径共同读入错误荷载,或者共同误解单位和边界条件,它们仍可能一致。

用一个简支梁看看证据应该怎样留下

公开验证集中的 beam-simply-supported-uniform 是一个可以手算复核的 A 级算例:

  • 结构:6 m 简支梁;
  • 荷载:全跨均布荷载 12 kN/m;
  • 弹性模量:206 GPa;
  • 截面惯性矩:85,000 cm⁴;
  • 主要数值指标容许误差:0.01。
图 4 6 米简支梁公开验证算例的输入、公式与结果
图 4 6 米简支梁公开验证算例的输入、公式与结果

支座反力为:

R = qL / 2 = 12 × 6 / 2 = 36 kN

跨中最大弯矩为:

Mmax = qL² / 8 = 12 × 6² / 8 = 54 kN·m

挠度按经典公式:

δmax = 5qL⁴ / (384EI)

代入单位换算后的参数,最大挠度约为 1.1565 mm,峰值位于跨中 x = 3 m。v1.7.0 使用的公开算例事实源保留了相同输入、标准值、容许误差和验证来源。

这条证据可以被第三方理解,也可以被另一套工具复算。但它只证明这个理想化简支梁,不能外推到所有结构体系和工程工况。

第一次打开 v1.7.0,五分钟先走这一条

如果是第一次接触 Solver,不必先研究全部菜单,也不必先建立复杂项目。可以从公开简支梁案例开始:

  1. 打开“简支梁均布荷载”公开案例,先核对跨度、荷载、材料、截面和支座。
  2. 运行计算,找到支座反力、最大弯矩、最大剪力和最大挠度。
  3. 对照案例给出的标准值、容许误差和验证来源,不只看绿色“通过”。
  4. 把荷载从 12 kN/m 改成另一个明确数值,重新计算,并解释哪些结果应当随之变化。
  5. 导出可信计算包。需要进一步复核时,再用 v1.7.0 Release 中的命令行工具校验完整性并复算。

这条路径同时适合三类人:结构工程师检查结果证据,教师或学生理解公式与模型的对应关系,软件开发者验证工作台、API、CLI 和 MCP 是否遵守同一个计算契约。

五分钟路径证明的是:一个公开案例能够被打开、计算、解释和复算。它不是工程设计能力认证,也不要求第一次使用者先掌握整套软件。

复算结果为什么不只有“通过”和“不通过”

可信计算包返回三种状态:

状态 含义 处置
pass 格式、完整性和同版本复算一致 可以作为本次软件复核证据继续人工审阅
review 包体完整、复算一致,但记录版本与当前版本不同 阅读版本差异和警告后再判断
fail 格式、Hash 或复算结果存在不一致 不再使用该包代表原记录结果

这里最重要的是 review。跨版本仍然算出相同数字,不等于版本差异可以被悄悄忽略。软件把它留给复核者判断,而不是把所有一致结果都显示成绿色“通过”。

它仍然不能替你判断四件事

1. 输入是否正确

荷载、组合、支座、连接、材料、截面和单位,是否如实表达了工程问题?

2. 分析范围是否适用

梁、二维桁架和二维框架的线弹性静力分析,不能自动外推到三维、动力、稳定、非线性、施工阶段和规范设计。

3. 文件由谁负责

SHA-256 可以发现内容变化,不能证明文件由谁生成,也不等同于数字签名、第三方认证或工程签章。

4. 专业责任是否闭合

软件可以保留输入、结果和复算证据,荷载取值、规范适用性、设计判断和签审责任仍然在人。

评估一份结构计算结果,先问五个问题

不论使用什么软件,都可以先问:

  1. 输入能否检查:几何、材料、截面、荷载、支座和单位是否完整?
  2. 版本能否确认:结果由哪个软件版本、什么契约生成?
  3. 文件是否完整:输入、模型和结果变化后,能否被摘要校验发现?
  4. 结果能否复算:换一台机器或另一条实现路径,能否在公开容差内得到一致结果?
  5. 边界是否写清:这份证据证明了什么,又没有证明什么?

如果只能得到一张结果图和一句“测试都通过了”,证据仍然不够。

搜索 ArchSight Solver v1.7.0,可查看公开 Release、版本记录、可信计算包指南与验证资料。

结构计算结果不应只能被观看。它还应该能被带走、被质疑,并在另一处重新接受同样的检查。

参考资料

以下资料均可按标题检索,本文事实依据来自 ArchSight Solver v1.7.0 公开仓库及版本资料:

  • ArchSight Solver:《版本发布记录》。
  • ArchSight Solver:《可信计算包 1.0》。
  • ArchSight Solver:《公开验证集报告》。

关注我们

欢迎搜索并关注 筑见实验室,获取更多建筑 AI、结构计算与工程数字化实践:

筑见实验室关注入口二维码
筑见实验室关注入口二维码