基于路径优化与模糊PID温度控制的三维打印控制系统开发

2017-12-08 03:16:30罗仁泽曹文昌
计算机应用与软件 2017年11期
关键词:温度控制限位打印机

罗仁泽 曹文昌 郭 俊

1(西南石油大学地球科学与技术学院 四川 成都 610500) 2(西南石油大学电气信息学院 四川 成都 610500)

基于路径优化与模糊PID温度控制的三维打印控制系统开发

罗仁泽1曹文昌2郭 俊2

1(西南石油大学地球科学与技术学院 四川 成都 610500)2(西南石油大学电气信息学院 四川 成都 610500)

目前市面上所售的桌面级3D打印机操作系统大多数使用Arduino开源主板为核心进行设计,存在着打印速度较慢、片内资源较为缺乏、后期外设扩展性较差、机械误差较大等问题。针对上述问题,设计了一款基于ARM STM32F103为主控芯片的开源3D打印机控制系统,主要包括步进电机控制系统、热床温腔温度模糊PID闭环控制系统、光电限位开关模块的设计,同时以Visual Studio为平台编写了上位机操作软件。该系统资源丰富,可扩展性强,实验结果表明该系统运行良好,温腔温度加热到230摄氏度所需时间仅需50秒左右,超调量小于4%,打印截面分辨率可达0.2毫米,打印速度提高30%。

三维打印 步进电机 系统开发 界面开发

0 引 言

3D打印机技术起源于20世纪80年代出现的快速成型制造技术RPM(Rapid Prototyping Manufacturing),目前已经发展成为全球众多国家关注的研究领域[1]。目前市场上大多数桌面级3D打印机的核心控制模块大多基于Arduino进行开发[2]。Arduino使用较为方便,无需深厚的编程基础即可进行开发,但是Arduino本质是一款8位的AVR单片机,存在着运算速度慢、可用片内资源较少、外设电路设计繁杂、开发成本较高、后期扩展性不足等问题。现在3D打印机设计流行使用的Arduino Mega2560主控板资源是堪堪满足整个3D打印系统的需要,后期添加外设功能十分困难[3-4]。桌面级3D打印机控制模块的核心组成部分必须向着以DSP数字信号处理器或以ARM作为核心控制芯片的方向发展,在其系统开发中,需要设计性能更加优越、可使用资源更为丰富的主控模块,ARM系列芯片以其高性能和低价格的优势应当成为首选[5]。本文针对上述问题研究设计了一款基于STM32F103的3D打印机主控制模块,在该控制系统中,主控制器用于对XYZ三轴步进电机的行为控制、热床温度和打印喷头温腔加热控制以及耗材进给料的控制,并重点叙述了步进电机两轴联动算法与温腔温度模糊PID算法的设计。通过实际测试,使用本文设计的控制系统在打印速度和打印精度上都有了明显的提升。

1 3D打印机系统设计

1.1 3D打印机工作原理

具体打印流程分为上位机数据处理部分和3D打印机执行部分[5],上位机主要完成待打印物体的三维模型建立、模型的切片工作,以及生成3D打印机可以识别的工作流文件,通常为G-Code文件,并将G-Code文件中包含的位置路径信息传送给3D打印机主控芯片;主控芯片接收到位置路径信息后进行逐层打印工作,最终完成整个物体的打印。3D打印流程框图如图1所示。

图1 3D打印流程框图

1.2 3D打印控制系统总体设计

本设计采用ARM系列的STM32F103芯片作为主控芯片,主要完成对X、Y、Z轴步进电机控制、挤出电机控制、温腔、热床加热控制等子系统的控制,此外,3D打印机与上位机的通信、读取打印数据文件、读取配置文件的任务也由主控芯片完成。

系统的总设计框图如图2所示。整个系统的用电都从电源端接入,各子系统按照自身不同的电压要求进行分压降压。步进电机驱动电路与主控芯片相连接,接受主控芯片的运动控制指令并将指令转化为脉冲信号驱动步进电机转动;通过主控芯片的片内SPI接口读取离线打印数据,或者通过USB接口直接与上位机相连进行在线打印;光电限位传感器分别接在X、Y、Z轴的末端,用于初始化起始坐标,限定步进电机最大移动范围;喷头温度控制模块与热床温度控制模块负责控制电热管两端电压调节功能,并使之保持恒定的温度,以利于打印耗材的充分融化和更好地依附在热床上。

图2 3D打印机硬件框图

2 步进电机联动运行方法设计

传统的3D打印机在进行XY平面的打印作业时,其X轴电机与Y轴电机是独立运行的。如图3所示,实线为传统的喷头运行路径,其原理是依据步进电机插补直线插补算法,当喷头需要从A点运行到B点时,X轴电机先运行一步(或几步),Y轴电机再运行一步(或几步),这样X轴Y轴电机依次运行,最后到达B点,因为电机步进速度很快,所以实际打印过程中肉眼看起来喷头是从A点直接运行到B点。但实际上喷头走的是阶梯型路径,这种方法在打印斜边时,不可避免地会出现锯齿纹,直接造成表面打印精度降低。

图3 传统3D打印机电机走向

针对上述问题,本文提出的两轴关联打印算法,该算法打印路径如图3虚线所示,喷头直接从A点沿直线行进至B点,减少了由于步进电机多步前进所代入的扰动量,使物体表面打印精度得到了较大的提升。

在喷头从A开始移动到B时,若要保证沿直线前进,则必须保证X轴与Y轴的步进电机按照一定的速度比进行工作,且具有不同的加速度之比,同时启动,同时停止,图中X方向的位移为Sx,Y方向的位移为Sy,则满足公式:

(1)

其中:Sx与Sy为已知量,将位移较大者所在的轴电机速度设定为初始打印速度,则另一轴电机的速度可根据式(1)计算出,计算出速度后再将速度量换算为相应的步进量,即可实现直线打印。同时,因为在打印的任何时刻,X轴Y轴的打印加速度之比等于此时两轴的路程之比,故两轴的加速度之比满足公式:

(2)

两轴联动打印算法流程如图4所示。

图4 两轴联动打印算法

本设计采用42型双相步进电机作为运动执行器,工作电压24 V,额定电流1.7 A,驱动芯片采用带转换器和过流保护的DMOS微步驱动器A4988[6],A4988是一款完全的微步电动机驱动器,无需编码表操作,直接根据控制芯片脉冲指令驱动电机运行,可在全、半、1/4、1/8、1/16步进工作模式下运行,通过调节JP1的2、6、8号引脚电平输出来控制A4988的细分模式,STEP与DIR端口直接与主控芯片相连接,控制步进电机的转动步数与转动方向,VMOT引脚直接从电源接入12 V电压为电机提供电源。主控芯片、驱动器、步进电机构成了步进电机开环控制系统,其硬件电路连接原理图如图5所示。

图5 步进电机硬件连接原理图

3 模糊PID温度控制与光电限位开关设计

在3D打印系统工作时,受环境和工作方式的影响,在加热阶段温度变化率高,温度波动范围较大,且在打印过程中的温度保持阶段,传统的PID控制方法存在着自适应能力较差,易产生超调震荡等问题,并且由于主控芯片资源的限制。目前3D打印机的温控系统一般只是简单的负反馈调节系统,存在着反馈耗时长、反馈不准确的问题[7],针对上述问题,本文引入模糊控制方法与传统PID控制法相结合,设计了模糊PID温度控制算法。

模糊PID控制算法通过计算设定值与采样值之间的偏差e和偏差变化率ec,把e和ec代入模糊控制系统进行计算,从而得到PID控制器KP、KI、KD的修正值ΔKP、ΔKI、ΔKD。将设置参数与修正参数相加得到新的控制参数,代入系统中替代旧参数,从而达到对系统的矫正功能。系统控制框图如图6所示。

图6 模糊PID控制算法框图

温控系统将采样所得温度值与系统初始设定值相比较,得到系统的输入变量偏差e和偏差变化率ec,输出为PID调节参数的变化ΔKP、ΔKI、ΔKD。本文引用文献[8]的经验归纳法建立的模糊规则模糊控制器,将偏差变化率以及温度偏差以定义为模糊集上的论域{-3,-2,-1,0,1,2,3},模糊子集为{NB,NM,NS,ZO,PS,PM,PB},子集中元素分别为负大、负中、负小、零、正小、正中、正大,ΔKP论域为{-3,-2,-1,0,1,2,3},ΔKI论域为{-0.6,-0.4,-0.2,0,0.2,0.4,0.6},ΔKD论域为{-3,-2,-1,0,1,2,3},模糊集为ΔKP、ΔKI、ΔKD:{NB,NM,NS,Z,PS,PM,PB}。

在调整PID参数时必须考虑3个参数之间的联系以及相互作用,根据文献[9]得出的经验规律,被控系统对参数的自调节规则如下:

1) 当|e|较大时,为了加快响应速度,应取较大的KP和较小的KD,同时为了避免因积分饱和引起超调,通常取KI为0;

2) 当|e|较小时,为了保证稳态性,应增大KI与KD的值,同时为了避免稳态震荡,KD的值应与|ec|呈反比例关系;

3) 当|e|与|ec|为中等大小时,为减小系统的响应超调,KP的值要小一些,同时根据实际情况选择KI与KD。

基于上述经验,KP、KI、KD的模糊控制规则分别如表1-表3所示。

表1 KP模糊控制规则表

表2 KI模糊控制规则表

表3 KD模糊控制规则

利用上述规则,使用Mamdani推理机进行推理,即可得到PID各个参数变化的模糊值,然后解模糊,即可得到参数变化准确值。其中,解模糊的方法根据实际使用效果而定,本文选用k-means聚类算法。k-means聚类算法的原则是当一个元素即可属于集合A,又可属于集合B时,根据一定规则判断该元素对应集合A、B的归属度,按照归属度数值较大的进行分类。其软件设计流程图如图7所示。

图7 模糊PID算法控制流程图

PID运行曲线如图8所示。从图中可以看出,温腔加热到230摄氏度大概需要50秒,超调量在3%左右,后期温度平稳,几乎没有出现波动。由此可见,将PID控制运用于温度控制系统能够较大改善温度控制的稳定性,从而提高打印精度,由于实际应用与仿真存在一定差距,故使用时可能会需要进行系统微调。热床和喷头温腔的温度控制电路原理图如图9所示。

图8 Fuzzy-PID仿真响应曲线

图9 热床与温腔温度控制电路

本设计采用光电限位开关设计,克服了传统的机械行程开关反馈延迟、误差大的缺陷。在传统的机械限位开关使用中,若设定步进电机在1/4步进模式下工作,当喷头或热床已经到了设定行进路线终点,由于机械限位开关的触发误差,喷头或热床会继续前进0.4 mm左右,这对打印物体质量精度的影响是致命的。光电限位开关则没有机械上的触发误差,且响应速度快,可以大幅度减少由行程开关带来的误差,光电行程开关电路如图10所示。

图10 光电行程开关电路原理图

将控制光电限位开关的STM32F103引脚设置为上升沿中断模式,关电限位器放置于各个轴运动的起始点,当喷嘴或热床运动到起始点时,固定在轴上的挡片会进入到开关电器件槽内,将1、2脚的光线隔离,此时U1的3脚输出高电平,P11的2号端口输出高电平信号给控制芯片,控制芯片接收到下降沿信号后向A4988驱动芯片发出指令停止电机工作。

4 系统软件部分设计

上位机控制软件通过Visual Studio2010编写。本设计所使用上位机主要实现与打印机的串口连接以及串口波特率的设置、设置步进电机的转速、X轴Y轴Z轴电机的正向反向控制、打印数据文件的导入、温腔温度与热场温度的设置、挤出机挤出速度的控制等,其界面如图11所示。

图11 3D打印机上位机控制软件界面

从图11可以看到,当上位机与3D打印机相连后,通过导入文件按钮将数据文件导入进缓存区,开始打印后3D打印机一行一行地从缓存区读取打印坐标数据。PC端随机分配给3D打印机的端口为COM3口,数据传输波特率设置为115 200 bit/s,XY轴步进电机转速设为3 200 mm/min,Z轴转速设为100,温腔加热温度设置为230摄氏度,热床加热温度设置为40摄氏度。从具体实验可以看出,3D打印机运行状态良好。

5 结 语

本文设计了一套基于STM32F103的3D打印机控制系统。通过对X、Y轴步进电机的联动控制,提高了打印斜边与曲边的打印分辨率,通过光电行程开关减少了电机运动的机械误差,通过PID温度调节减短了温腔加热时间,温度超调量不超过5%,仿真后期温度平稳,几乎没有出现温度波动。通过具体运行证明系统运行稳定,打印质量能够满足要求。

[1] 史玉升.3D打印技术的工业应用及产业化发展[J].机械设计与制造工程,2016(2):11-16.

[2] 邓佳文,王冰,沈峰,等.基于熔融挤压快速成型的3D打印关键技术发展现状[J].化工新型材料,2016(10):36-38.

[3] 程伟,李向阳,戴俊平,等.基于Arduino桌面级折叠3D打印机的设计[J].机械研究与应用,2016,29(4):97-99.

[4] 李轩,莫红,李双双,等.3D打印技术过程控制问题研究进展[J].自动化学报,2016,42(7):983-1003.

[5] 佚名.ST展示STM32开放式开发环境[J].单片机与嵌入式系统应用,2016,16(6):86-86.

[6] 李智强,周杰,任胜杰.基于单片机的步进电机细分驱动控制系统[J].机电工程,2007,24(7):67-69.

[7] 谢可,姚鸿强.基于PWM的数字音频播放器设计[J].计算机应用与软件,2014,31(5):328-329,333.

[8] 王吉龙.基于模糊PID的温度控制系统[J].信息化研究,2008,34(5):77-80.

[9] 杨航,刘凌,阎治安,等.双闭环Buck变换器系统模糊PID控制[J].西安交通大学学报,2016,50(4):35-40.

DEVELOPMENTOF3DPRINTINGCONTROLSYSTEMBASEDONPATHOPTIMIZATIONANDFUZZY-PIDTEMPERATURECONTROL

Luo Renze1Cao Wenchang2Guo Jun2

1(SchoolofGeoscienceandTechonology,SouthwestPetroleumUniversity,Chengdu610500,Sichuan,China)2(SchoolofElectricalEngineeringandInformation,SouthwestPetroleumUniversity,Chengdu610500,Sichuan,China)

Now most of the desktop 3D printers on the market use Arduino open source board as the core controller. There are a few problems such as slow printing speed, lack of on-chip resources, poor expansibility of later peripherals, large mechanical error. To solve these problems, we designed an open source 3D printer control system based on ARM STM32F103. The system included stepper motor control system, hot bed and cavity temperature fuzzy PID closed-loop control system, photoelectric limit switch module design. At the same time, the PC operation software was written on the platform of Visual Studio. The system is rich in resources and strong scalability. The experimental results show that the system runs well. Temperature cavity heating to 230 degrees Celsius takes only about 50 seconds. The overshoot is less than 4%, the resolution of the print section is up to 0.2 millimeters, and the printing speed is increased by 30%.

3D print Stepper motor System development Interface development

2016-12-22。四川省高校科研创新团队专项基金项目(15TD008)。罗仁泽,教授,主研领域:信号处理与地学信息处理。曹文昌,硕士生。郭俊,硕士生。

TP3

A

10.3969/j.issn.1000-386x.2017.11.057

猜你喜欢
温度控制限位打印机
一种用于BMC或DMC塑料的分散机
船舶主机温度控制方法优化
浅谈起重机双限位的设置
某型轴承限位销装配工装的改进与应用
哈尔滨轴承(2020年4期)2020-03-17 08:13:40
分阶段减少母猪限位栏的使用
猪业科学(2018年4期)2018-05-19 02:04:36
锻造温度控制
另类3D打印机
基于模糊控制的PLC在温度控制中的应用
电子制作(2016年21期)2016-05-17 03:53:01
打印机基板大型注塑模具设计
中国塑料(2016年7期)2016-04-16 05:25:55
FDM型混色3D打印机的设计