机器教程

关于步进电机参数调节的分析

字号+ 作者:王 来源:未知 2016-06-07 20:30 我要评论( )

导读: 步进电机 是kossel中的动力系统,其代码的最终执行者,所以需要准确无误。 在我们发现电机移动有误差,更换了同步轮,或者 挤出机 挤出长度不准确时,我们就需要检

导读: 步进电机是kossel中的动力系统,其代码的最终执行者,所以需要准确无误。在我们发现电机移动有误差,更换了同步轮,或者挤出机挤出长度不准确时,我们就需要检查更改固件中关于步进电机的参数了。
1:我们先在marlin固件中找到更改参数代码的位置吗,其代码为
#defineDEFAULT_AXIS_STEPS_PER_UNIT{XYZ_STEPS, XYZ_STEPS, XYZ_STEPS, MY_DEFAULT_AXIS_STEPS_PER_UNIT_E};对于会写代码的同学来讲,很简单,但是对于代码小白来讲,看到这段代码的第一印象,好长,有点复杂,如何才能找到它?其实有一个及其简单快捷的方法,用arduino软件中按ctrl+F的弹出搜索框搜索。
2:我们分析这段代码:#define是宏定义,这是c语言中的一种语法规定,了解它对我们现在做的事情没有任何的意义,DEFAULT_AXIS_STEPS_PER_UNIT:是程序编写者对宏定义 起的名字(命名原则上,具有代表性,白话说,通过这个名字,你就得知道这个宏定义是起什么作用的)这段英文翻译过来:默认_轴_步数_每_单位,很明显的看出{XYZ_STEPS,XYZ_STEPS,XYZ_STEPS,MY_DEFAULT_AXIS_STEPS_PER_UNIT_E}的含义的是电机带动同步带每走1mm,电机需要接受多少个脉冲的数据。
(题外:为什么{}里面是英文,而不是数字,因为那些英文是其他宏定义的名称,程序可以通过宏定义XYZ_STEPS找到一个对应的数字,我们通过这种方式,把所有需要修改的数据集合在一个config.h中,带来便利,你可以尝试搜索XYZ_STEPS,一定有一个结果是XYZ_STEPS = ??(一个数字))
3:所以我们要计算,同步带每走1mm,电机需要接受n个脉冲,得出结论,然后填写进去。这里有一个公式可以计算


我们在分析这个公式之前:有几个概念一定要清楚
①步距角:当步进驱动器接收到一个脉冲信号步进电机按设定的方向转动一个固定的角度(称为“步距角”),而42电机基本都是1.8°步距角,所以(360°/步进电机)这个公式是计算在没有细分的情况下,电机旋转一周需要多少步,答案呼之欲出:需要200步。
②细分数:RAMPS默认为16细分, 通俗点来讲,在每一步1.8°中又分为了16份,以前1个脉冲旋转1.8°,现在需要16个脉冲才能旋转1.8°,很显然,控制的更加细微,自然精度更高。
同步带齿间距:晦涩的定义:齿轮分度圆周上所量得的相邻两齿同侧齿廓间的弧长,称为该圆上的齿距


其实就是箭头所示的长度,以常用的GT2 20齿(GT代表齿型,2代表齿距2mm),所以同步轮旋转一周,使同步带位移 20*2mm = 40mm,
这几个概念一清楚,那么公式含义也就清晰可见了
同时,大家也可从固件中看到运用了这个公式,#define XYZ_STEPS (XYZ_FULL_STEPS_PER_ROTATION * XYZ_MICROSTEPS / double(XYZ_BELT_PITCH) / double(XYZ_PULLEY_TEETH))
#define XYZ_FULL_STEPS_PER_ROTATION 200
#define XYZ_MICROSTEPS 16
#define XYZ_BELT_PITCH 2
#define XYZ_PULLEY_TEETH MY_XYZ_PULLEY_TEETH
#define MY_XYZ_PULLEY_TEETH 16
从阅读程序的角度看,转了几个小弯,其实都是一个含义。
4.上面关于xyz同步轮的计算方式明了了,那么挤出机的调试更加简单了


得出答案,然后调试。
大家会发现,在调试完关于挤出机部分的参数并烧录之后,挤出机挤出量总是和理论有误差,比如我们设定挤出长度20mm,实际会挤出19.xxmm,会比实际短一点。
关于这个问题有一点是确认的,公式不会出错,出错的只能是公式中某个或者多个元素有误差



分析上面的公式:① 公式的分子部分 <--360°/(步进电机步距角)×细分数-->出错的几率很小且相对排查困难,②相比而言,挤出轮周长确实最好核实的,问题也多半出在这里。


我用的是这种挤出轮,姑且以它为蓝本分析,首先我们先观察一下用于挤出测试的耗材


我们仔细观察,会发现上面图片所示的压痕,但是这个对挤出会有什么影响呢?


这是用软件画出来的轴测图,为下面的两张图做铺垫,目的是让大家心里预先有个场景概念


上面这张图是理论中挤出轮和耗材的相对关系,我们在耗材上选择一个参考点(耗材和挤出轮的切点,如图所示),那么挤出轮运行一周,耗材则前进一个挤出轮周长。然而实际情况是这样的


因为挤出机弹簧的压紧,形成了上图所示的挤出轮和耗材的相对关系,同时也形成了耗材上面的牙痕,对比理论和实际两张图,我们发现,参考点实际的运动轨迹要比理论中更加靠近挤出轮的中心点,运动轨迹形成的圆直径更小,周长更短。
这 也就是为什么挤出量总是比理论值小的原因。
那么怎么调节呢?我们以Φ(直径)11.0的挤出轮,1.8°步进电机,16细分为例分析(也是我的配置):经过计算得出理论steps_per_mm=92后,烧录固件,打开pronterface进行20mm的挤出测试,发现实际挤出18.5mm,计算
20mm/18.5mm= 1.08(实际和理论的比值)
推导实际steps_per_mm=92/1.08=85,烧录,测试,发现相差无几,反复很少的次数,就可以达到大家想要的精度。
我想这一点应该很好理解。
题外:①我所用的挤出轮很容易造成耗材牙痕,所以对挤出机的弹簧压紧力很敏感,挤出机校正后,尽可能的避免调节弹簧压紧力,但是同时附带一个优点,耗材传送问题(咬的紧)。



这一种挤出轮,因为和耗材的接触面积更大,所以对弹簧压紧力敏感度更小,咬合力也不错,综合考虑耗材质量的参差不齐,软硬度不同,推荐选用这一种对弹簧压力迟钝的挤出轮。
②挤出量矫正、耗材直径尽量准确,这涉及到程序计算挤出耗材体积的运算,影响到打印质量。

转载请注明出处。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • A4988驱动板常见问题解读

    A4988驱动板常见问题解读

    2016-06-04 14:31

  • 电机过热或者吱吱响(赤兔板子)

    电机过热或者吱吱响(赤兔板子)

    2016-05-12 20:06

  • 3D打印机中42步进电机A+ A- B+ B- 绕组的区分

    3D打印机中42步进电机A+ A- B+ B- 绕组的区分

    2016-05-07 21:35

  • 电机噪音大的解决办法

    电机噪音大的解决办法

    2016-04-28 21:09

网友点评