中华DIY论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4579|回复: 1

DIY五轴摇头机——紧凑型一体式闭环步进电机的制作

[复制链接]
  • TA的每日心情
    开心
    2022-5-15 14:23
  • 签到天数: 1531 天

    [LV.Master]伴坛终老

    213

    主题

    1804

    帖子

    2万

    积分

    论坛元老

    Rank: 8Rank: 8

    积分
    23695

    medal1

    发表于 2019-5-22 18:24:34 | 显示全部楼层 |阅读模式
    本帖最后由 搬运工A 于 2019-5-22 18:30 编辑

    DIY五轴摇头机——紧凑型一体式闭环步进电机的制作 --自【targus2009】


    这个一体式闭环步进最早是从国外一个叫Mechaduino的开源项目中看到的,正好它是开源的(开源网址:https://github.com/jcchurch13/Mechaduino-Firmware),于是就下载下来研究了一下发现程序很简单,于是决定自己也仿做一个。等到实际自己做好上机测试的时候才发现原版问题一大堆,于是自己重起炉灶,前前后后改了好几版终于差不多算完工了。

    1.jpg

           首先讲一下二相步进电机闭环驱动和开环驱动的区别。假设现在上位机主机发DIR/STEP指令给步进驱动器的指令角度是90.5度。开环的驱动器收到指令后即根据细分电流表调整步进电机的两相电流,将电流矢量也指向90.5度,然后步进电机永磁转子就会在电磁力作用下运动到90.5度这个位置上了,这其中步进电机AB两相的驱动电流在设置好后就不变了,只要接下来没有新的角度指令那就一直保持原样不改变。闭环控制器则不然,当闭环控制器收到90.5度的指令角度时,首先利用角度传感器(编码器)测出步进电机现在的实际角度假设是90度,然后跟开环的驱动器一样根据细分电流表调整步进电机的两相电流,但是要将电流矢量指向91.8度(指令角度比实际角度大那就在实际角度上加1.8度,反之减1.8度),与开环控制器不同的是闭环的驱动电流大小不是恒定不变的,而是根据角度误差经过PID算法计算出来的,简单的讲就是指令角度和实际角度的误差大那驱动电流就大相反误差小驱动电流就小,误差为0那驱动电流就为0(这就是闭环步进低发热省电的原因)。闭环驱动和开环驱动的最大区别大体上就是这样,当然想要了解具体的细节的还得看源程序,这里限于篇幅就不再多说。



    2.png


           接下来讲一下我自己做的这个闭环步进和原版的区别,先讲硬件上的。主控芯片用价格4.5块的STM32F030C8T6代替了价格25块钱的ATSAMD21G18A,省钱的同时性能有增无减。驱动芯片用两颗最大驱动电流为3.5A的A4950代替了原来的最大驱动电流为2A的单颗A4954芯片,原版的这颗A4954驱动芯片标的最大驱动电流可以达到2A,实际测试最大也就1.2A左右只能勉强用来驱动3D打印机用的42小步进。因为这颗芯片内部驱动MOS管内阻过大有0.8欧姆以上,导致发热非常严重,电流一大芯片温度就飙升,然后芯片就停机过热保护了,有一次上机测试过程中Z轴就因此停机导致直接撞坏了一把4mm的铣刀。编码器方面用英飞凌的TLE5012B代替了原版的AS5047D,原版的这款编码器芯片货源很不稳定经常会买不到,代替用的TLE5012B是15位更高一级精度的,而且是汽车工业标准的,可靠性和工作容许温度比消费级标准的来的更高。然后加入高速隔离光耦TLP2168,没光耦作隔离的话万一步进驱动器出问题连带烧了雕刻器的驱动板那就得不偿失了。还有一些稳压芯片也作了调整,基本上硬件方面的芯片算是全换了遍。
      

    3.png


       
    4.png

    5.jpg

    6.jpg

    7.jpg


           软件方面也是完全重新编写,编程软件用官方专业软件KEIL-MDK替代了玩具级编译软件ARDUINO。程序里加入了开环模式,虽然闭环优点多多但开环也非一无所长,这样即使编码器坏了还可以切到开环模式继续使用。然后加入了拨码盘的细分选择项,可以利用拨码选择不同细分选向。不管是原版的还是我这修改版的驱动器在初次安装或者二次安装后都要就行编码器芯片的角度校正,因为这种磁编码器芯片都有近2度的非线性误差所以不能直接使用需要二次校正才行,校正的另外一个作用是让编码器的0度位置和步进电机的电位角0度位置对齐。校正的原理是让步进电机在开环的情况下以整步跑1到2圈,因为现在市面上的步进电机都能做到整步5%以下(0.09度)的精度,据此就可以校正编码器芯片。原版的校正过程非常麻烦,需要连着电脑通过串口发指令然后还要二次编程烧录程序等等,我这边程序优化直接拨码盘拨好位置后上电,其它工作全部由程序自动完成。为了加强产品的可靠性,程序中加入看门狗,工控产品没看门狗怎么能行呢。

    8.png


           上叙的都是一些程序中的小升级部分,相应的增加了一部分功能和提高了使用便捷性。除此之外程序中最大的升级优化则在于精度、速度的提高和噪声、振动的减小。国外版的编码器校正程序有一个大的BUG,校正完后编码器的0度位置和步进电机的电位角0度之间有0.3度以上的误差。这个误差值对闭环步进的实际使用性能影响非常大,理论上越接近0度越好,误差值大了导致步进电机左转和右转性能不一,往往一边转动时很平顺但向另一边转动时振动就很大,两边转动时的最高转速和扭矩也不一样,极限情况下甚至会导致步进电机向一个方向乱转无法正常工作。我这边重新改写了编码器校正程序,新的校正程序可以将误差角度值降低到0.1度以下。顺便再说一下现在市面上现在的闭环步进用的是光电编码器(1000线为主),这一对齐编码器的0度位置和步进电机的电位角0度位置的活是在出厂前用专业设备(编码器相位检测器)配合专门的电机驱动来完成的,所以千万不要乱拆闭环步进的编码盘。程序中另外一个大的升级之处是采用了可变PID控制角代替了原版固定的1.8度PID控制角。固定的1.8度PID控制角会产生两个非常严重的问题,第一是步进电机低速运行时振动非常大甚至比开环驱动器驱动时振动更大,另外一个问题是高速时转速上不去,原版的程序驱动普通48mm长度的42步进电机实测最高转速400RPM都达不到,再高的话就会因为电机实际转速跟不上指令转速而导致失步。采用升级后的可变PID控制角算法则可以将转速提高到近800RPM而不失速,与此同时在低速时振动和噪声可以做得很小几乎可以跟伺服电机的振动和噪声程度相媲美。

    9.jpg


    10.jpg


    11.jpg


    12.jpg


    13.jpg


       
           最后再总结一下闭环步进和开环步进的优缺点吧:闭环步进的优点是扭矩大、振动小、精度高不易失步缺点是可靠性稳定性低价格贵;开环步进的优点是可靠性稳定性高价格便宜。这里再着重讲一下转速这个问题,很多淘宝商家都宣称他们的闭环步进转速比一般开环步进高很多可以工作在1500RPM,其实两相闭环步进相较与开环步进在工作转速上基本是只低不高,现在市面上卖的加长两相57闭环步进最高工作转速也就600RPM左右,再高就会失步。想要更高工作转速的就必须花更多的钱买3相的闭环步进或者5相闭环步进。


    网上的现在都是山寨照抄国外那版的,我买过也测过效果很不理想,tb67s109可以做但效果很差,是我的淘汰方案

    14.jpg


           他建了个QQ技术交流群,群号1001482975,欢迎各位技术大佬小白进群交流,开源的闭环步进软硬件资料群内分享。













    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-9-16 08:07
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    0

    主题

    41

    帖子

    2698

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    2698

    medal1

    发表于 2019-5-26 15:27:11 | 显示全部楼层
    这种贴还是不要搬了吧,忽悠的成份太重
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    中华DIY论坛QQ官群:205778249

    Archiver|手机版|小黑屋|中华DIY论坛  

    GMT+8, 2024-4-16 17:27 , Processed in 0.328214 second(s), 40 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表