单位 10 / 11

使用 Python 进行化学工程:数据分析和建模自动化

收益:

  • 能够打印Python代码并逐行理解和接受代码,以进行数据清理、账户自动化和人工智能建模
  • 能够理解未经测试的代码是一个假设,用已知结果验证每个代码,并测试单元和边缘情况
  • 能够理解安全关键的帐户代码需要测试和授权工程师验证。

现代化学工程的无声引擎现在是Python(一种广泛使用、易于学习的编程语言)。清理传感器数据、自动进行质量平衡、将动力学模型拟合到数据、比较数百个模拟结果、生成图表——所有这些都需要手动花费数小时,但使用几行 Python 代码只需几秒钟。在本单元中,您将学习如何使用人工智能来辅助编写、解释和调试Python代码;但我们将了解为什么生成的每个代码在未经测试和验证的情况下不应使用。

化学工程师通常不是专业的软件开发人员;这就是人工智能发挥巨大力量的地方。一位工程师说“我想要一个可以执行此操作的脚本”并编写了一份 AI 草稿。但这个原则始终不变:人工智能编写的代码并不正确,因为它看起来正确;在用已知结果进行检验之前,这只是一个假设。一个无声的错误——错误的单位、错误的指数、变化的公式——可能会在工程计算中产生危险的结果。

Python 与化学工程中的人工智能:一步一步

1. 明确工作职责。输入是什么(CSV、数组、方程),输出应该是什么,单位是什么?不明确的提示意味着错误的代码。

2. 索取代码草案。 AI 使用适当的库(用于数据的 pandas、用于数值处理的 numpy、用于图形的 matplotlib、用于优化/解决方案的 scipy)生成草图。

3.了解库和假设。让 AI 解释每一行和假设(单位、数据格式、接受度)。不要运行您不理解的代码。

4. 用已知结果进行测试。在您已经知道答案的简单示例上运行代码。天平代码必须在可以手动破译的示例中给出正确的结果。

5. 单元和边缘状态控制。在零、负、非常大的值、丢失数据等边缘情况下,代码会做什么?在化学工程中,装置故障是典型的灾难。

6. 用物理方法检验结果。代码产生了一个数字——质量是否守恒,该值是否真实?仅仅因为代码有效并不能证明结果是正确的。

提示:当向 AI 请求代码时,请说“在注释行中写下每个变量的单位并明确指定输入单位”。化学工程错误的很大一部分是由单位混乱引起的(bar/Pa、kg/g、°C/K);在代码中嵌入单元会使这些错误变得可见。

未经测试的代码是一个假设

人工智能可以生成流畅且有效的代码;但“有效”和“正确”是两个不同的东西。该代码可能会正常运行,但会产生不正确的数字:公式中的符号错误、数组中的偏移量(相差一)、不正确的单位转换。因此,黄金法则是:每个代码都在测试用例中进行测试,其中正确答案是独立已知的。一个简单的分析例子、手工计算、或者参考数据都证明了代码的可靠性。任何工程决策都不应基于未通过测试的代码。

注意:执行安全、尺寸标注或安全计算的代码不能仅仅因为它“有效”就被认为是可靠的。安全关键帐户代码应使用已知结果进行测试,并且结果应由授权工程师独立验证。

三个迷你箱子

案例 1 — 数据清理自动化。一名工程师每月从 8 个传感器手动清理 3 个月的数据(约 110 万行)。用 AI 编写的 pandas 脚本将这个时间缩短到了几分钟。工程师首先在一个已知的小样本文件上测试了代码;注意到一列被错误地解析,修复它,然后将其应用到整个数据。

情况 2 — 无声音量错误。 YZ 编写了压降计算代码,但通过假设 bar 和公式 Pa 混淆了输入。代码运行没有错误,但结果错误了 100,000 倍。工程师通过手动控制计算发现了阶次差异。添加单元注释后,错误得到澄清并修复。

案例 3 — 测试已保存。一个团队从 AI 获取了质量平衡求解器的代码。他们首先在双组分、可手溶的样品中进行了测试;该代码错误地关闭了环回并且没有相加。该错误在应用于真实的复杂模型之前就被捕获了。如果不进行测试,错误就会蔓延到所有结果。

四个可复制模板

1)数据分析代码稿:

您的角色:化学工程的 Python 助手。任务:[描述]。输入:[CSV/数组、列、单位]。输出:[什么,在哪个单元].use pandas/numpy。在代码中:(1) 解释每个变量的单位,(2) 在开头陈述输入假设,(3) 处理边缘情况(缺失数据、零)。我将用一个已知的例子来测试代码;不要使用幻数,明确定义常量。

2)代码解释及验证:

逐行解释以下 Python 代码:它的作用、它做出什么假设、它期望什么单位。突出显示可能的错误点(单位混淆、索引移位、除以零、溢出)。建议我可以使用哪些简单的已知测试用例来验证此代码。代码:[粘贴]

3) 设置具有已知结果的测试:

编写一个测试集来验证此函数:至少 3 个简单案例,通过分析或手动已知答案。对于每个测试,描述预期结果以及我们期望该结果的原因。未经测试,我不会将代码应用于实际数据。功能:【粘贴】

4)调试:

此代码给出以下错误/错误结果:[错误消息或预期 vs 实际输出]。按概率顺序列出可能的原因,并告诉我如何测试每个原因。不要直接说“我修好了”;我们先一起验证一下根本原因。还建议检查单位和订单。代码和数据:[粘贴]

弱提示/强提示

弱提示:

给我写一个压降计算代码。

输入格式、单位、方程、条件不清楚。人工智能隐藏其假设,可能会混淆单位。

强力提示:

你的角色:化学工程Python助手。任务:圆管中摩擦引起的压降。输入:流量[m3/s]、直径[m]、长度[m]、密度[kg/m3]、粘度[Pa·s]。输出:压降[Pa]。使用Darcy-Weisbach;检查流动状态 (Re) 的摩擦系数。评论每个单元,说明假设(满载、稳定流量)。我将在层流示例上针对手动计算测试代码。

区别很明显:输入单元、方法、输出单元和测试意图使代码可靠。

Python 使用中的角色分配

商业

人工智能的作用

男人的决定

写代码

创建草稿

职位描述、单位

库选择

建议

合格确认

描述

逐行

理解并接受

测试

测试集推荐

用已知结果进行验证

调试

假设、方向

根本原因确认

结论

号码生成

用物理测试

常见错误

  • 使用代码而不测试它。工作代码不是正确的代码;除非用已知结果进行测试,否则不能信任它。
  • 使单位不确定。单位混淆是化学工程中最常见和最危险的错误。
  • 不懂就操作。在没有理解 AI 一行一行写的代码之前,不要相信结果。
  • 绕过边缘状态。零、负、缺失数据可能会默默地导致代码得出错误的结论。
  • 仅基于代码进行安全性计算。安全关键代码需要测试+独立权威验证。

总之

使用 Python 实现化学工程中的人工智能;它是一个强大的助手,可以为数据清理、会计自动化、建模和图形起草、解释和提供调试指导。但人工智能的代码之所以可靠,并不是因为它看起来正确,而是因为它已经用已知的结果进行了测试。必须明确指定单位、理解代码、测试边缘情况并用物理验证结果;安全关键计算还需要授权工程师验证。

应用任务

选择计算(例如管道压降或二组分质量平衡)。通过“数据分析/账户代码草案”模板从AI获取代码,明确单位。然后使用“使用已知结果设置测试”模式验证可手动解码示例中的代码;如果结果不匹配,请使用“调试”模式查找根本原因。

清单

  • [ ] 我已经清楚地说明了输入/输出单位和方法。
  • [ ] 我逐行理解了代码并看到了它的假设。
  • [ ] 我在一个已知/可手动破译的示例上测试了代码。
  • [ ] 我测试了边缘情况(零、负、缺失数据)。
  • [ ] 我用物理验证了结果(质量守恒、秩序);我的安全账户也得到了官方的确认。