收益:
- 能够使用人工智能驱动的 Python 代码实现工程计算、单元管理和数据处理的自动化
- 能够通过单元检查、已知结果测试和边缘情况来验证 AI 代码
- 能够养成生成可重复、可追踪和版本控制的账户文档的习惯
在机械工程中,一遍又一遍地进行相同的计算:一系列零件的应力、一系列工作点的泵功率、不同温度下的性能表。手动执行这些操作既缓慢又容易出错。 Python(一种易于学习的编程语言,具有丰富的工程库)自动执行这些迭代;它使帐户可重复、可追踪和版本受控。人工智能 (AI) Python 生成代码的速度令人难以置信:将公式转换为函数、添加单元管理、读取数据、绘制图表。但这里存在一个危险的误解:仅仅因为代码运行没有错误并不意味着它计算正确。 AI代码可能会由于不正确的单位转换、不正确的公式或边缘情况而默默地返回不正确的结果,而程序将继续运行而不会出现任何错误。这就是为什么每一个工程代码都是由人工智能生成的;如果没有通过单元(大小)检查和边缘案例试验进行验证,具有已知结果的测试输入是不可靠的。在本单元中,您将学习如何使用 AI 安全地设置 Python 帐户自动化。
为什么要使用代码帐户?可追溯性和可重复性
手动计算是一次性的;当输入发生变化时,它会从头开始完成,并且中间步骤会丢失。用代码完成的计算就像一个文档:输入、公式和输出都写得很清楚;您更改输入并在几秒钟内获得新结果;通过版本控制(如 git),可以跟踪“我在哪个日期用哪个值计算出的内容”。这对于控制和责任来说是无价的。但这种能力取决于代码的正确性;错误的代码会产生错误的结果,而且可重复且快速。
提示:为每个计算函数编写一个测试,旁边有一个已知的真实结果(在 Python 中断言)。例如,已知样品中的应力函数应为 28.1 MPa。如果您将来更改代码时破坏了某些内容,此测试会立即向您发出警告。未经测试的工程代码是未经验证的帐户。
卷管理:最常见的错误来源
在工程规范中,大多数误差来自单位:N 与 kN、m 与 mm、Pa 与 MPa,这些单位可能会因 1000 或 1,000,000 倍而混淆。有两种防御方式。第一个是规则:从一开始就选择一个单位系统(例如 N、mm、MPa),然后将所有输入转换为该系统,并将单位添加到变量名称中(length_mm、force_N)。第二个是工具:像 pint 这样的库携带代码中的单元并将不一致的操作捕获为错误。
方法
它是如何运作的
优势
命名规则
如力_N、长度_mm
简单,无依赖
单一单元系统
全部换算为N-mm-MPa
简单、速度
品脱图书馆
通过变量移动单位
自动捕获不一致的情况
已知结果测试
带断言的引用
捕获公式/单位错误
注意:AI 生成的代码中的单位转换可能会丢失或不正确,但该代码仍将“工作”。例如,如果直径为mm,面积预计为m²,则结果将偏差1,000,000倍,但程序不会报错。运行代码之前,注释掉输入和输出的单位;然后用已知的例子提供结果。
一步一步:AI 可验证账户代码
- 明确问题和单位制度。输入、输出、单位。
- 生成函数。单一负责、解释、团结。
- 添加已知结果测试。通过参考示例进行断言。
- 尝试边缘情况。零、负、很大/很小的输入。
- 进行单位检查。输出单位与预期相符吗?
- 文档和版本。假设、来源、日期;使用 git 进行追踪。
生成函数和测试的提示
角色:经验丰富的Python开发人员编写工程计算。任务:编写一个函数来计算矩形截面悬臂梁的最大弯曲应力。输入:F(N)、L(毫米)、b(毫米)、h(毫米)。输出:sigma(MPa)。约定:单位制N-mm-MPa;注释每个条目的单位。规则:使用 I = b*h^3/12 和 sigma = M*c/I;注释步骤。规则:添加已知结果的测试:sigma ~28.1 MPa for F=500,L=300,b=20,h=40;用断言检查(小公差)。
边缘状态提示
向上述函数添加边缘情况检查:- 如果 b、h 或 L 为零或负值,则给出显着错误(引发 ValueError)。- 如果输入非常大/小,则评论是否存在溢出/精度问题。还添加 3 个不同的测试输入并写出预期结果;以我可以手动验证的方式解释结果。
单位安全(品脱)提示
单位安全与“pint”库相同的帐户。让输入以单位定义(例如 500 * ureg.newton)。将输出转换为 MPa 并打印。添加一个小示例,显示当输入单位错误时,品脱如何失败。
代码检查提示
从代码审查的角度批评我下面的工程计算代码,不同意我的观点。特别是:单位转换是否正确、公式是否正确、是否考虑了边缘情况(零、负)、测试是否真正具有验证性?对于每个发现,写下如何修复它。[代码]
弱提示/强提示
弱提示:
编写Python代码进行应力计算。
无需选择单位、公式、输入定义和测试;人工智能生成的代码可以工作,但未经验证,其单位未知。
强力提示:
写出悬臂梁的弯曲应力函数。输入F(N)、L(mm)、b(mm)、h(mm);输出西格玛(MPa)。 N-mm-MPa 系统,请在注释中指定每个单位。添加具有已知结果的测试(F=500、L=300、b=20、h=40 → ~28.1 MPa,断言)。给出零/负输入错误。解释边缘情况。
第二个提示需要单位系统、公式、输入、测试和边缘情况;它使代码可验证。
三个迷你箱(按数字)
情况 1 - 无声音量错误。 AI 生成的面积计算采用以 mm 为单位的直径,并给出 mm² 和 pi*d**2/4,但下一行将其放入期望 m² 的公式中;该代码运行时没有错误,压力降低了 1,000,000 倍。当工程师使用已知结果(断言abs(sigma-28.1)<0.5)运行测试时,测试会爆炸并捕获错误。如果没有进行测试,错误的结果就会在不被注意到的情况下进入报告。教训:工作代码≠正确代码。
情况 2 - 边缘状态崩溃。在为零件族循环的代码中,在一行中输入厚度 h=0;当 I = b*h**3/12 = 0 时,sigma = M*c/I 给出除以零的误差。得益于 AI 添加的 if h<=0: raise ValueError 控件,代码会停止并显示有意义的消息,并且不会默默地生成 inf。教训:提前处理边缘情况。
情况 3 - 重复性增益。工程师花了半天时间手动计算了 40 个不同工作点的泵功率。该脚本采用 AI 编写,读取 CSV,计算每条线的功率,并使用断言验证已知点,将工作时间减少到约 2 分钟,并将结果写入可跟踪文件。当条目更改时,整个表每秒都会更新。教训:经过验证的自动化既快速又可靠。
常见错误
- “有效 = 正确”谬误:认为没有错误的代码就是正确的。
- 不编写测试:依赖于没有已知结果的参考测试的代码。
- 单位模糊:不解释输入/输出单位,跳过转换。
- 忽略边缘情况:零/负输入时出现无声错误或崩溃。
- 未记录来源/假设:未写下所用公式的来源和假设。
- 无版本控制:将帐户保留为一次性文件,而不使其可追踪 (git)。
综上所述
- Python 使工程计算可重复、可追踪和版本受控。
- 人工智能生成代码的速度非常快;但代码运行没有错误并不意味着它计算正确。
- 每个代码都应该通过已知结果测试、单元检查和边缘情况进行验证。
- 单位错误是最常见、最隐蔽的错误来源;通过单一单位系统、命名法或品脱进行防御。
- 经过验证的自动化可以节省时间并给人信心;未经验证的代码是危险的。
应用任务
选择重复的工程计算(例如应力、泵功率、热负荷)。为执行此计算的 AI 编写一个 Python 函数;注释掉每个输入和输出的单位,并添加具有已知结果的断言测试。运行测试并查看是否通过。然后再进行两次验证:尝试边缘情况(零或负输入)来检查代码是否返回重大错误,并在示例中手动提供输出的单位。如果可能的话,还应提供品脱生产的单位安全版本。最后,将计算的假设、公式来源和日期作为简短标题添加到代码中,并写下为什么此代码仍需要工程师批准。
清单
- [ ] 输入和输出单元在代码中清晰记录;选择单一单元系统。
- [ ] 添加并通过了结果已知的测试(断言)。
- [ ] 至少尝试了一种边缘情况(零/负);该代码给出了一个重大错误。
- [ ] 输出单位由手动示例提供(不假设“工作=正确”)。
- [ ] 代码中注明的公式来源、假设和日期。
- [ ] 账户保持可追踪/追踪;最终批准权留给了工程师。