3D打印在汽车、建筑、航空航天和医疗等领域应用十分广泛,如模具制造[1]、零部件加工[2]、日用品模型加工和外形设计.FDM型3D打印机具有操作环境干净、安全,工艺简单,易操作且不产生垃圾,尺寸精度较高,表面质量较好,易于装配和原材料种类多,费用低等优点[3-4].进料系统作为FDM型3D打印机的核心部件,直接影响到成型件的精度和质量.材料收缩率、喷头温度、进料速度与挤出速度的匹配等,都会影响FDM型3D打印机进料系统的精度.材料的收缩率属于外部因素,可通过喷头温度和进料速度与挤出速度的匹配改善.因此,研究进料系统温度控制及其具体实现方法,有一定意义和价值.限于篇幅,本文主要研究喷头温度控制对进料精度的影响.
1 进料系统总体进料系统主要由四部分组成:加热模块、温度模块、电机模块和风扇模块,组成框图如图 1所示.其中,加热模块由加热控制电路和加热管组成,实现固体塑料融化;温度模块由温度测量电路和温度传感器组成,实现温度和进料控制;电机模块由电机控制电路和电机组成,实现送料量控制;风扇模块由风扇控制电路和风扇组成,实现气体扩散和系统冷却.本文研究的关键点集中在加热模块和温度测量模块,以实现进料系统的恒温控制.在本系统中,选用STM32F103VBT6作为主控制器(LQFP100封装),选用铂热电阻Pt100作为温度传感器[5-6].
![]() |
图 1 进料系统组成框图 Fig.1 Block diagram of the feed system |
FDM型3D打印常用的塑料耗材有PLA和ABS两种,直径分别为1.75 mm和3.0 mm.PLA是生物分解性材料,具有较低的熔体强度,打印模型更容易塑形,表面光泽性优异,色彩艳丽,气味宜人,适于环保产品;ABS有刺鼻气味,但它的耐撞和耐热性好,适于对耐热和耐磨要求较高的产品.PLA耗材最佳的打印温度为180~210 ℃,ABS耗材最佳的打印温度为190~210 ℃.根据热学理论和进料量,加热管功率在30~40 W时效果较佳.
加热模块电路如图 2所示.图 2中,选用N沟道、HEXFET、功率MOSFET IRF530N(图中Q2).IRF530N具有90 mΩ的超低导通电阻,最大漏极电流ID=17 A,漏源击穿电压VDSS=100 V.HOT为来自主控器STM32F103VBT6的I/O信号,幅值电压为0~3.3 V,而IRF530N的栅源极导通电压VDS=2.0~4.0 V,因此为保证IRF530N可靠工作,先用HOT控制NPN型三极管9013(图中Q1)的工作状态,再用Q1控制Q2,实现加热管控制.当Q1处于截止状态时,Q2导通,加热管加热;当Q1处于导通状态时,Q2截止,加热管停止加热.STM32F103VBT6内部集成4个16位定时计数器TIM1,TIM2,TIM3和TIM4,每个定时计数器有4路定时计数通道TIMx_CH1,TIMx_CH2,TIMx_CH3和TIMx_CH4,每路定时计数通道都具有PWM工作模式.
![]() |
图 2 加热模块电路 Fig.2 Heating module circuit |
本文中选用PWM模式下TIM2_CH2定时计数通道,作为HOT信号.STM32F103系列在PWM模式设置时,应注意以下几点:
1) PWM通道对应的I/O引脚设置为复用功能的推挽输出模式;
2) 在定时器复位后,设置其有关参数和系数;
3) 时钟预分频系数TIM_Prescaler的取值范围为0~65 535,定时计数时钟频率等于系统时钟频率fosc除以1与TIM_Prescaler的和.例如当fosc=72 MHz,TIM_Prescaler=71时,定时计数时钟频率等于1 MHz;
4) 可通过函数“TIM2- > CCR2=xx”设置TIM2_CH2定时计数通道PWM的占空比.
注意:在停止加热时不仅要关闭TIM2_CH2,还要通过函数“TIM_ForcedOC2Config(TIM2,TIM_ForcedAction_InActive)”,使其强制输出非匹配电平(高电平),以保证场效应管IRF530N处于截止状态.
3 温度模块设计铂热电阻Pt100是一种常用的温度传感器,测量范围为-190~630 ℃,精度为±1 ℃.在0~630 ℃时,铂热电阻Pt100的阻值温度关系为
$ {{R}_{t}}\text{=100}\left( \text{1+at+b}{{\text{t}}^{2}} \right), $ | (1) |
式中:a=3.96847×10-3℃-1, b=5.847×10-7℃-2.因此,0 ℃时,Pt100的阻值为100 Ω;250 ℃时,Pt100的阻值为194.1 Ω.本文为保证测温模块有合理的余量,设计测温上限为250 ℃.温度模块电路如图 3所示.
![]() |
图 3 温度模块电路 Fig.3 Temperature module circuit |
图 3中,选用低成本运算放大器LM324,构成差动运算放大电路对温度信号进行调理,输出V3为
$ {{V}_{3}}=\frac{{{R}_{6}}}{{{R}_{9}}}\left( {{V}_{2}}-{{V}_{1}} \right), $ | (2) |
式中:R6=110 kΩ,R9=3.3 kΩ.经计算,知0~250 ℃时,V3变化范围为0~3.14 V.LM324在单+5V供电时,输出信号范围为0~3.5 V,在有效测温范围内,信号可完整传输.
图中U2是一款高精度基准电压芯片REF3033,输出电压为(3.3±0.006)V,输出电流为25 mA.电阻R8和R7组成串联电阻分压结构,分压V1向差动电路提供反相端输入电压.电阻R10和铂热电阻RT1也组成串联电阻分压结构,分压V2向差动电路提供同相端输入电压.于是,式(2)可表示为
$ {{V}_{3}}=\frac{{{R}_{6}}}{{{R}_{9}}}\left( \frac{{{R}_{{{\text{T}}_{1}}}}}{{{R}_{10}}+{{R}_{{{\text{T}}_{1}}}}}-\frac{{{R}_{8}}}{{{R}_{7}}+{{R}_{\text{8}}}} \right){{V}_{\text{ref}}}. $ | (3) |
R7和R10阻值相同,R8和RT1在0 ℃时的阻值相同,R10远远大于RT1.因此,根据式(1),则式(3)可近似为
$ {{V}_{3}}\gg \frac{{{R}_{6}}}{{{R}_{9}}}\left( \frac{\text{100}\left( \text{at+b}{{\text{t}}^{2}} \right)}{{{R}_{10}}+\text{100}\left( \text{1+at+b}{{\text{t}}^{2}} \right)} \right){{V}_{\text{ref}}}, $ | (4) |
式中Vref=3.3 V.再将R6,R9和R10的阻值代入式(4),式(4)可表示为
$ {{V}_{3}}=110\left( \frac{\text{at+b}{{\text{t}}^{2}}}{33+\text{at+b}{{\text{t}}^{2}}} \right). $ | (5) |
式(5)即为进料系统温度与电压的关系.选用差动放大电路不仅可简化温度与电压的关系,又可明显降低电阻温漂对测量结果的影响.
对测温电路的几点说明:1) R6至R12选用精度为0.05%的低温漂精密电阻;2) 稳压二极管D1将温度信号钳制在3.3 V以下,对单片机STM32F103VBT6的ADC_IN0通道进行电压保护;3) 电阻R13既可限流,又可在V3 > 3.3 V时保护LM324;4) ADC0连接单片机STM32F103VBT6的ADC_IN0通道.
4 恒温控制算法设计PID是一种经典的闭环控制方法,很多场合都用其来实现恒温控制[7-10].本文先利用ADC,经标度变换,得到当前温度T_feed.再用目标温度T_Set与当前温度T_feed做差运算:如果偏差在0.1 ℃以内,继续保持当前PID参数;如果偏差超出0.1 ℃,调用PID算法进行调节.本文采用±0.1 ℃的理论偏差,保证±1 ℃的实际误差.PID恒温控制的核心实现方法如下:
if(fabs(T_Set-T_feed) > 0.1)
{
float Pv;
Pv=PIDCalc (Temp_HOT,T_feed);
CCR_feed=5995-(CCR_feed+Pv*20.0); //将温度转换为TIM2_CH2的占空比参数
if(CCR_feed < =1) CCR_feed=1;
else if(CCR_feed > =5950) CCR_feed=5950;
TIM2- > CCR2=CCR_feed; //更新占空比,实现PID温度调节
}
typedef struct PID {float SetPoint,Proportion,Integral,Derivative,LastError,PrevError,SumError; } PID;
在结构体PID中,SetPoint为目标温度,Proportion为比例常数,Integral为积分常数,Derivative为微分常数,LastError为当前偏差,PrevError为上次偏差,SumError为总偏差.
float PIDCalc(PID *Temp,float NextPoint) // PID计算,Temp为PID型数组
{
float dError,Error;
Error=Temp- > SetPoint-NextPoint; //计算偏差
Temp- > SumError+=Error; //计算积分
dError=Temp- > LastError-Temp- > PrevError; //计算微分
Temp- > PrevError=Temp- > LastError; //更新上次偏差
Temp- > LastError=Error; //更新当前偏差
if(Temp- > SumError < 900)
Temp- > SumError=900; //限制总偏差
else if(Temp- > SumError < -900)
Temp- > SumError=-900;
return (Temp- > Proportion * Error //返回得到比例项
+Temp- > Integral * Temp- > SumError //返回得到积分项
+Temp- > Derivative * dError //返回得到微分项
);
}
5 电机模块设计电机模块控制进料量大小.本文选用2相4线制混合式步进电机为系统的驱动装置,电机驱动电路是电机模块的电路核心.目前,集成的步进电机驱动芯片较多,如A39系列、L62系列、TA83系列和THB系列等.应选择输出电流可调、细分数可程控选择的步进电机驱动芯片,以保证系统柔性.虽然步进电机具有成本低和可准确定位等优点,但失步现象是其核心缺陷,产生失步的本质是电机输出扭矩偏小[11].为减少失步现象,在电机模块软硬件设计时,应注意以下几点:1) 尽可能得到准确的负载大小,使电机扭矩有20%以上的余量,即大马拉小车;2) 采用梯形结构的启动、运行和停止方式[7];3) 大负载选用低速、小步距角和小细分数,小负载可选用高速、大步距角和大细分数;4) 电机驱动芯片至少有20%的功率余量,同时提供上限电压使电流动态调整[12-13].
6 实验以本文设计的FDM型3D打印机进料系统为平台,测得表 1所示的温度数据.由表 1可知,进料系统温控范围为180~250 ℃,最大正偏差为+0.6~+0.9 ℃,最大负偏差为-0.5~-0.8 ℃,完全达到±1 ℃的精度.如果要进一步减小偏差,可选用高精度温度传感器和高速ADC,但对于FDM型3D打印进料系统,温度控制没有实际意义,实际应用中±5 ℃的误差即可完全满足要求.
℃ | ||||||
目标温度 | 180 | 190 | 200 | 210 | 230 | 250 |
实测值1 | 180.3 | 189.5 | 199.8 | 210.1 | 229.6 | 250.7 |
实测值2 | 180.2 | 190.1 | 200.2 | 210.7 | 229.8 | 250.6 |
实测值3 | 179.8 | 190.4 | 200.7 | 210.2 | 229.4 | 249.5 |
实测值4 | 180.3 | 190.6 | 200.5 | 210.8 | 230.1 | 250.1 |
实测值5 | 179.5 | 189.3 | 199.4 | 209.5 | 230.7 | 250.8 |
实测值6 | 179.7 | 189.3 | 199.6 | 209.7 | 230.9 | 250.3 |
实测值7 | 180.6 | 190.0 | 200.9 | 210.5 | 229.3 | 249.6 |
实测值8 | 180.2 | 189.2 | 200.3 | 210.6 | 230.4 | 249.8 |
平均值 | 180.1 | 189.8 | 200.2 | 210.3 | 230.0 | 250.2 |
最大正偏差 | +0.6 | +0.6 | +0.9 | +0.7 | +0.9 | +0.8 |
最大负偏差 | -0.5 | -0.8 | -0.6 | -0.5 | -0.7 | -0.5 |
本文研究并设计出一套完整的FDM型3D打印机进料控制系统,将PWM、PID、差动放大电路和铂热电阻有机结合,实现180~250 ℃,±1 ℃精度的恒温控制,为FDM型3D打印机系统的打印质量和精度提供了保证.同时,该进料系统还具有以下特点:1) 调整差动放大电路的增益,可改变测温范围;2) 选用高精度温度传感器和高速ADC[14-15],可实现更高精度的温度控制;3) 对电路进行简单调整,还可实现对湿度、压力、位移和角度的控制.
[1] |
刘媛媛, 张付华, 陈伟华.
面向3D打印复合工艺的生物CAD/CAM系统及试验研究[J]. 机械工程学报 , 2014, 50 (15) : 147–153.
LIU Yuan-yuan, ZHANG Fu-hua, CHEN Wei-hua. CAD/CAM system and experimental study of biological 3D printing composite process[J]. Journal of Mechanical Engineering , 2014, 50 (15) : 147–153. DOI:10.3901/JME.2014.15.147 |
[2] |
王海军, 黄卫东.
矿机易损设备3D打印修复技术的应用初探[J]. 煤炭工程 , 2014, 46 (12) : 72–74.
WANG Hai-jun, HUANG Wei-dong. Discussion on application of 3D printing and repair technology to easily worn equipment of mine machinery[J]. Coal Engineering , 2014, 46 (12) : 72–74. |
[3] |
谭秀腾, 郭小定, 李小龙.
基于ARM的桌面型3D打印机控制系统设计[J]. 应用科技 , 2014, 41 (5) : 57–61.
TAN Xiu-teng, GUO Xiao-ding, LI Xiao-long. Design of desktop 3D printer control system based on ARM[J]. Applied Science and Technology , 2014, 41 (5) : 57–61. |
[4] |
阴贺生, 赵文豪, 宋杰, 等.
基于三臂并联结构的桌面3D打印机[J]. 机械 , 2015, 42 (2) : 36–40.
YIN He-sheng, ZHAO Wen-hao, SONG Jie, et al. A desktop 3D printer based on delta structure[J]. Machinery , 2015, 42 (2) : 36–40. |
[5] |
严长城, 应贵平.
基于PT100铂热电阻的高精度测温系统的设计[J]. 机电工程技术 , 2015, 44 (3) : 71–74.
YAN Chang-cheng, YING Gui-ping. The design of a temperature collection system with high precision based on PT100[J]. Mechanical & Electrical Engineering Technology , 2015, 44 (3) : 71–74. |
[6] |
赵宇佳, 姜汉钧, 张羊, 等.
一种超低功耗高精度温度传感器芯片设计[J]. 微电子学与计算机 , 2015, 12 (1) : 40–43.
ZHAO Yu-jia, JIANG Han-jun, ZHANG Yang, et al. A novel ultra-low power temperature sensor IC with high precision[J]. Microelectronics & Computer , 2015, 12 (1) : 40–43. |
[7] |
张军.
基于ARM的高精度PID温度控制器[J]. 仪表技术与传感器 , 2013, 50 (10) : 65–66.
ZHANG Jun. ARM-based high-precision PID temperature controller[J]. Instrument Technique and Sensor , 2013, 50 (10) : 65–66. |
[8] |
闫兵, 马琰.
单螺杆挤出机温度时变性与非线性控制的解决方法[J]. 计算机测量与控制 , 2014, 22 (4) : 1076–1078.
YAN Bing, MA Yan. Single screw extruder temperature time-varying and non-linear control solution[J]. Computer Measurement & Control , 2014, 22 (4) : 1076–1078. |
[9] |
马洪涛.
基于PID的波峰焊温度控制研究[J]. 加热热工艺 , 2013, 42 (9) : 205–207.
MA Hong-tao. Temperature control of wave soldering based on PID technology[J]. Hot Working Technology , 2013, 42 (9) : 205–207. |
[10] |
谭宝成, 康祖清.
模糊PID算法在定型机温控系统上的应用[J]. 西安工业大学学报 , 2012, 32 (11) : 895–898.
TAN Bao-cheng, KANG Zu-qing. Application of fuzzy-PID to boarding machine temperature control system[J]. Journal of Xi'an Technological University , 2012, 32 (11) : 895–898. |
[11] |
李茂军, 刘鼎邦.
步进电机细分驱动电磁转矩分析[J]. 控制工程 , 2013, 20 (2) : 243–245.
LI Mao-jun, LIU Ding-bang. Study on electromagnetic torque of stepping motor subdivided driving[J]. Control Engineering of China , 2013, 20 (2) : 243–245. |
[12] |
李敬一, 王会彬.
基于PID算法的步进电机位置控制[J]. 军民两用技术与产品 , 2015, 4 (1) : 55–57.
LI Jing-yi, WANG Hui-bin. Position control method based on PID algorithm for stepper motor[J]. Dual Use Technologies & Products , 2015, 4 (1) : 55–57. |
[13] |
孙孔政, 徐抒岩, 曹小涛, 等.
基于矩频曲线的步进电机加减速控制[J]. 微电机 , 2014, 47 (1) : 81–85.
SUN Kong-zheng, XU Shu-yan, CAO Xiao-tao, et al. Speed control of step motor based on torque curve[J]. Micromotors , 2014, 47 (1) : 81–85. |
[14] |
肖汉波.
基于EV10AQ190的高速ADC接口设计[J]. 电子器件 , 2015, 38 (3) : 569–575.
XIAO Han-bo. Design of interface circuit for high speed ADC based on EV10AQ190[J]. Chinese Journal of Electron Devices , 2015, 38 (3) : 569–575. |
[15] |
孙建涛, 马小兵, 陈兵, 等.
一种基于片同步技术的高速接口电路设计方法[J]. 测试技术学报 , 2008, 22 (5) : 442–448.
SUN Jian-tao, MA Xiao-bing, CHEN Bing, et al. Design of high-speed interface circuits with chipsync technology[J]. Journal of Test and Measurement Technology , 2008, 22 (5) : 442–448. |