FDM3D打印会自己看自己改:哈工大实时缺陷控制方法
AM易道科研分享
AM易道最近读到哈工大团队在国庆节发在《Additive Manufacturing》上的一篇论文,讲的是给FDM打印机装上眼睛和大脑,让它能自己发现打印缺陷并实时调整参数。

论文开篇就用一张系统架构图(Fig. 1)把整个思路讲清楚了:

左边是带摄像头的打印机实时监控挤出过程,中间是视觉模型做缺陷检测和流量预测,右边是控制器根据检测结果调整参数。
这个方向其实很多团队都在做,但这篇文章特别之处在于,我们认为它用控制理论的数学分析把为什么现有方案会失败讲得很透,然后给出了一套真正能用的解决办法。
AM易道对于该文章的许多理解和表达已脱离原文章的原始技术表述,有大量原创主观的解读创作成分,如需要了解更多原始硬核技术内容,请自行阅读原文。
56万张图像怎么来的
要训练一个靠谱的视觉检测模型,首先得有足够多的标注数据。
团队开发了一套自动标注系统,Fig. 2展示了整个流程。

他们在打印头风扇下面装了个直径不到4毫米的小摄像头,镜头正对着喷嘴挤出区域。
打印过程中每隔300秒自动调一次流量参数(50%到150%之间,每次变5%),同时以每秒5帧的速度采集图像。
因为知道每个时刻的流量设定值,图像就自动打上标签了。
为了让模型有泛化能力,他们换着花样打印:
从网上下载各种开源模型,用不同的填充图案、不同的填充方向和密度来切片,换红黄蓝三种颜色的耗材,还换了两种型号的喷嘴。
最后收集了100多万张图像,筛选后留下56万多张。
Fig. 2d的柱状图显示了这些图像在不同流量范围的分布,基本覆盖了从严重欠挤出到严重过挤出的各种情况。

模型选择上,他们对比了8种网络架构,Fig. 3d的散点图很直观地展示了参数量和性能的关系。

MobileNetV3-Small只有254万个参数,是ResNet-18的五分之一,但在外部验证集上的R²反而更高,达到0.9638。
模型训练其实挺顺利。
选的MobileNetV3-Small是个轻量级网络,参数量只有ResNet-18的五分之一,但效果反而更好。
训练30轮之后损失就不再下降了,说明模型学到东西了。
关键是这个模型在没见过的新数据上表现怎么样。
团队专门打印了一批零件来测试,把模型预测的流量和实际设定的流量画成散点图,发现绝大多数点都落在理想直线附近。
预测误差的平均值接近零,波动范围也很小,说明模型既准确又稳定,不会出现系统性偏差。
简单说就是:这个视觉模型看一眼打印过程,就能准确判断当前流量是多少,准确率在95%左右。这为后面的实时控制打下了基础。
为什么比例控制会失效
现在很多研究宣称做了闭环控制,实际上要么是检测到问题后暂停打印手动调整,要么就是用最简单的比例控制,结果系统来回震荡根本稳定不下来。
团队做了个对比实验,用常规的统计滤波加比例控制去应对流量突然降低的情况,结果打印机花了将近200秒才勉强恢复稳定。
问题出在哪?
Fig. 4a把整个闭环系统拆成两部分:左边Part I是挤出系统加视觉检测,右边Part II是数据滤波和控制器。
他们从控制理论角度建了个数学模型,通过阶跃响应测试(Fig. 4c)发现,FDM的挤出过程可以用一阶加纯滞后模型来描述。

这里有两个关键发现。一个是系统响应速度会随打印路径变化,Fig. 4b画了两种路径:
纵向打印(耗材挤出方向跟移动方向平行)和横向打印(耗材挤出方向跟移动方向垂直)。
Fig. 4c的曲线对比显示,显然,A路径(纵向)响应明显比B路径(横向)快。
另一个是时间延迟。
从修改G代码指令到真正看到挤出效果的变化,中间有大约5秒延迟。
再加上常用的统计滤波方法会再引入至少1个控制周期的延迟,整个系统就变得特别难控制。
Fig. 4d的实验结果很说明问题:给系统加一个正弦波扰动,用统计滤波加比例控制,系统输出始终跟不上,一直在延迟和振荡。
团队推导了系统的特征方程,用数学证明了在这种延迟条件下,简单的比例控制最多只能让系统处于临界稳定状态,也就是会一直振荡。
如果延迟再大一点,系统就会完全不稳定,越调越偏。
模糊控制怎么解决问题
解决方案的核心是重新设计数据处理和控制器。
Fig. 5a展示了整个控制框架:

从图像采集到缺陷检测,再到模糊推理输出控制量,最后执行参数调整,形成完整闭环。
数据处理方面,他们改用指数平滑滤波。
Fig. 6a和6b对比了两种处理方式。传统的统计滤波是设个阈值,超过就扔掉。

听起来合理,但问题是打印机刚开始响应调整时,数据变化最剧烈,恰恰会被判定为异常扔掉。
结果就是系统看到的都是几秒前的旧数据。
他们改用指数平滑,简单说就是最新的数据权重最大,越往前权重越小。而且只看最近2秒的数据来判断要不要调整,这样响应就快多了。
效果立竿见影。

比例控制(Fig. 6c)花了近200秒才收敛,打印件上留下了很长一段质量不好的区域。
模糊控制(Fig. 6d)只用了20秒左右就把流量拉回到正常范围,打印件上的缺陷区域明显短很多。
如何适配到新设备新任务
深度学习模型有个通病:在一个设备上训练的模型,换到另一个设备或者检测不同类型的缺陷时,往往要重新收集大量标注数据。
论文的第三部分就是解决这个问题。
Fig. 7a展示了应用场景:一个六轴机械臂的FDM系统,用来打印圆柱形零件。

再重申下这个深度学习的麻烦:在桌面FDM上训练的,换到机械臂FDM上就不灵了。
Fig. 7d的颜色分布对比很直观,两套设备拍出来的图像颜色差异明显,模型直接搬过去肯定不行。
传统做法是重新拍几万张图手工标注,太费劲。
团队的思路是让AI自己给图像分类。具体怎么做?
Fig. 7f和7g画出了流程:把机械臂系统拍的17000张无标签图像输入预训练模型,模型会把相似的图像归为一堆,每一堆就算一个类别。
比如所有拉丝缺陷的图像会被归到一起,挤出不足的图像会被归到另一堆。
有了这些标签,就可以微调模型了。
但怎么微调效果最好?Fig. 7h展示了四种方案:从只训练最后一层到把整个网络全练一遍。
全练一遍精度最高(93.2%),但耗时也最长;
只练最后一层最快但精度低(63.6%);
折中方案是练深层加分类器,精度89.4%,耗时只有全练的一半。
89.4%这个数字意味着什么?
想想看,只有17000张无标签图像,还是从流量检测跨到缺陷分类,完全不同的任务,居然能达到接近90%的准确率。
关键是整个过程不需要人工标注一张图,收集好数据跑个脚本就行。
如果你有十台不同厂家的打印机,或者要检测十种不同的缺陷,用这套方法复制起来就很快。
怎么实际应用
虽然论文比较学术,但我们认为从实验部分可以提炼出一些落地经验。
硬件上,需要在打印头附近装一个小型摄像头,参考Fig. 2b的安装方式,视野覆盖喷嘴挤出区域。
摄像头要跟打印头保持相对固定,避免震动导致视野变化。
分辨率不需要太高,1280×720就够用,但采集频率至少要5帧每秒。
软件上,如果要检测流量相关的缺陷,可以按照Fig. 2的流程收集自动标注数据训练模型。
模型结构可以参考Fig. 3a的MobileNetV3-Small架构。
控制系统的关键参数包括:
控制周期设为5秒,用最近2秒的检测数据计算误差,模糊控制器的函数可以参考Fig. 5b的配置,抗延迟阈值设为0.2赫兹(也就是5秒)。
如果要适配到新设备或检测新类型缺陷,可以走Fig. 7的迁移学习路线:
收集无标签数据,用预训练模型提取特征做聚类伪标注,然后按照策略2(Fig. 7h)微调模型。
实际部署时建议先做Fig. 6那样的应力测试,确认系统能在20秒左右就能把干扰抑制下来。
写在最后
AM易道读完最大的感受是:终于有人把FDM闭环控制为什么这么难这个问题说清楚了。
很多团队做AI检测,结果系统要么不响应,要么振荡个没完。
为什么?因为他们把FDM当成了一个静态系统,但实际上本文讲清楚了这是个有延迟、会变化、还不太线性的动态过程。
对于想做AI实时监控和控制企业来说,我们认为这篇论文提供的价值是:
知道为什么会失败,知道怎么避开这些坑,知道如何适配到自己的设备。


京公网安备11010802046387号