它好像比我更会介绍它自己。但有一个小问题,billion应该是十亿。英文的175 billion被它自己错误地翻译成了175千万,数量级少了一点。看来它还蛮谦虚。
关于这些介绍,我想大部分读者这两天都已经或多或少读到过了。我们更关心的还是在仿真工作中,它能怎么样帮到我们。
用chatGPT写ANSYS命令流
直接上比较硬的内容。试着让它写一段ANSYS APDL脚本,提取结果中von-Mises应力大于10MPa的单元并计算其体积。
这段脚本的正确性我们先不谈,可以看到,这段命令流中还包括了/prep7前处理 定义单元的命令和/sol中的solve命令。因为我们实际上没告诉AI【假设已经有了一个计算完成的ANSYS模型】。这些信息提示我们,向chatGPT提问或许也需要一些技巧,就好像使用AI绘画工具时要耐心选择提示词一样。如果能尽可能详细、准确地描述你的现状和需求,AI或许能给出更准确的回答。
比如,像这样补充一些条件:
而且,我用文字描述x方向正应力,它能够准确理解为sx。这件事对人类来说理所当然,但对AI来说,我想你在此之前大概从未期待过你家的小爱同学或者siri能有类似程度的知识吧。
但……更关键的问题是——chatGPT给出的命令它真的正确吗?
看上去,它不仅有模有样地给出了命令流,还贴心的帮你写了每一行命令的注释。但是,只有前两行是正确的。从第三行开始,它写的这都是些啥?!
我还去翻了翻帮助文档,R 这一个字母的命令,实际作用是在PREP7前处理器中定义单元的实常数。SF这条命令,实际是用来施加表面载荷的。
当然,刚才提的问题可能对它来说确实是太难了。我们问它一个简单一些且定义清晰的问题:
一起来仔细看看它给出的命令结果。
! Start of ANSYS APDL script
! Define variables
DIM = 3
LEN = 4
WID = 10
P = 100
! Create a block of size DIM x LEN x WID
/prep7
et,1,solid185
block,1,(0,0,0),(DIM,LEN,WID)
! Assign material properties to the block
mp,ex,1,1e-7
mp,ey,1,1e-7
mp,dens,1,8960
! Apply inward pressure of 100 N on one face of the block
/solu
bcs,1,press,ramp,dir,3,p1,-P
! Assign free boundary conditions to all other faces of the block
bcs,1,face,none,1
bcs,1,face,none,2
bcs,1,face,none,4
bcs,1,face,none,5
bcs,1,face,none,6
! Set up a second order analysis
et,1,2nd
! Mesh the block with 1mm size elements
/mesh,1,gener
cg,1,1mm
! Perform a static analysis
/solu
sol,stat
! End of ANSYS APDL script
看上去是麻雀虽小五脏俱全,但实际上——
从建模的第一句就出错了。
block命令的语法不是这样的。
如果你直接原样输入APDL,软件会提示你:
它的自我认知倒是比较一致。我没有验证,不知道是不是在其他编程语言里、或者在ANSYS的哪个旧版本里,block命令的语法真的是这样?
还有,我刻意把材料不写成结构钢,而写成了金属铜。ANSYS Workbench中内置的铜合金,弹性模量为1.1E5 MPa。我们先不谈它生成的命令里,弹性模量为什么是 1e-7,这单位是怎么来的,也不谈为什么重复给了x和y方向的弹性模量却没给z——
! Assign material properties to the block
mp,ex,1,1e-7
mp,ey,1,1e-7
mp,dens,1,8960
大哥,你的泊松比去哪了?
它干脆就没定义泊松比。
后面更多的问题就不说了。从这两个例子来看,比它更难的ANSYS脚本问题,大概率是没戏。
用chatGPT解答仿真类问题
其实,它倒也没有前面写的那么不堪。甚至可以说在大多数情况下,chatGPT还是非常有用的。
解答一些仿真类问题时,会给出非常详细的信息。例如在我的仿真秀专栏下面的一条评论:
(机翻结果如下)
错误消息“error ID:760 RADISS STOP DUE TO INPUT error”通常表示您的RADISS模拟的输入数据有问题。要确定错误原因,可以检查以下来源:
RADIOSS日志文件:RADISSS日志文件包含有关模拟的详细信息,包括运行期间发生的任何错误。该文件通常位于模拟的工作目录中,通常命名为“radios.log”。
输入文件:检查模拟的输入文件,以查看数据中是否存在任何错误或不一致。这可以包括网格文件、材质财产、边界条件等。
用户手册:当排除错误时,RADIOSS用户手册是一个很好的资源。它提供了有关常见错误消息的信息以及如何解决这些错误的建议。
技术支持:如果您无法自行解决错误,您可以联系RADIOSS的技术支持。支持团队将能够为您提供如何解决问题的进一步指导。
重要的是要记住,输入错误的具体原因可能会因模拟的具体情况而异。但是,通过检查以上来源并与技术支持合作,您应该能够识别并解决问题。
chatGPT给出了相当不错的回答:
是的。根据题主给出的现有信息,最优的回答就只能是建议根据试验数据修正材料参数。AI的回答已经非常细致了。
另外一位网友提出的问题,
下方周炬老师给出的回答是:
而chatGPT的回答是:
这次AI回答的似乎就稍显偏题了。不过我觉得这也是因为现阶段chatGPT不能同时理解文字和图像,没有接收到完整的提问信息。能够根据定义不完备的问题给出比较接近主题的回答,我认为它已经非常优秀。
——如果我是判卷老师,chatGPT对这题的答案我肯定不会给满分。我会觉得这位同学并没有足够深刻地理解弹性模量和泊松比的概念。
泊松比相同,杨氏模量不同的两种材料,在不同的加载条件下结果差异情况不一样。如果是类似单轴拉伸这样的工况,位于相对开放的空间,而且材料的弹性模量和结构钢大致在同一数量级的话,静力学分析结果应当是位移有比较显著的差别,但应力差别不大。相反,如果在相对受限的空间,那么泊松比和材料的不可压缩性有关,两者计算出的应力结果就会差别比较大了。
总结来看,chatGPT作为一款通用的人工智能语言模型,在有限元这个细分领域能有如此表现是非常amazing的。但它的回答不可尽信。还是要用自己的理论知识对问题进行分析,自己得到可靠的结论。
如何看待chatGPT和类似技术
我看到 水木人CAE 的林丽老师试着用它写了几段Abaqus的Python脚本,大体上效果不错。我也做了一些尝试。总结来说,我是这么想的。
首先,它虽然是一个千亿级参数的通用人工智能模型,但它的训练数据基础仍然是已发表的文本和信息。AI只能从已有的文本和数据中做排列组合、提取信息,但它在本质上无法做出新东西。
第二,任何人在认知陌生事物时,对新事物的看法都会本能的在两个极端之间摇摆。从一开始的“奇技淫巧”、不屑一顾,到尝试后,如果它没实现预期作用,就印证了心中的猜测,感觉“不过如此”;如果这东西居然真的如期完成它承诺的功能,你又会将它奉若神明,感觉它似乎无所不能。
黔人看驴的感受如此,工业界初次接触仿真时的态度如此,大家试用chatGPT的体验,大致也是类似。一段时间以后,它又将变成我们习以为常的现代生活的一部分。就和今天的智能手机、打车和外卖、网课以及拍照搜题软件一样。有些人新鲜过后用不上它就将其束之高阁,另一些人尝试后将它融入自己的工作流当中,将自己的精力从更多重复性工作中解放,投入其他AI暂时无法替代的工作中去。
第三,让我们回到CAE领域的应用中来。从原理上说,ANSYS APDL命令和Abaqus的Python命令基本上是结构仿真领域,互联网上资料最丰富的两种脚本语言了。即使是GPT模型,巧妇也难为无米之炊,它并不具备真正的创造性,暂时也还不能只通过阅读API和帮助文档来从无到有的写出一段脚本程序。它生成APDL和Abaqus-Python命令的结果都还有bug,对于其他一些更小众的语言,其可用性就更加有限。
在仿真(或者任何其他细分技术领域)领域里,真的想做到用自然语言命令AI完成一些任务,背后的难度当然远小于实现一个通用的能通过大部分领域图灵测试的人工智能。只需要在模型中补充领域特定的一些知识即可。
其实,对于仿真分析工程师来说,使用chatGPT辅助完成一些脚本编写工作,还是有很大可行性的。至少它可以给你一些提示。结合帮助文档,将有问题的代码做些修改,用得好的话有望提升工作效率。
目前对于仿真工程师来说,我想或许不用过度焦虑,它还替代不了你。长期来看,如果不能坚持学习,什么职位和技能都避免不了被淘汰的命运。
留言说说:工程师朋友,有限元仿真工程师会被AI取代吗?欢迎点击文尾阅读原文留言互动,如果有希望咨询ChatGPT 问题请留言告诉我,我们代你想AI提问并给出答案。
ChatGPT下载地址-点击下载