开源改变世界

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199

推推 grbl 3年前 (2023-01-21) 129次浏览

关闭
mschorer 打开了这个问题 2013 年 3 月 11 日 · 11 条评论
关闭

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时#199

mschorer 打开了这个问题 2013 年 3 月 11 日 · 11 条评论

注释

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199

嗨,
在设置我的新机器时,我注意到奇怪的“颤抖”运动和丢失的步骤:

  • grbl 是 0.9.c
  • x-res&yres = 250/rev, 全步
  • zres=500 步/转,全步,2:1 齿轮

做一个例如“G0 X100 Y10”(我沿着哪个轴移动并不重要,只要一个增量比另一个小“很多”)

  • 正确移动 x 轴
  • y 轴来回“颤抖”,并有向正确方向移动的趋势

然后我将机器重新配置为沿 x 和 y 使用半步进,将所有轴的分辨率设置为 500 …现在它可以工作了!?

奇怪不是吗?

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
成员

嗯,这很奇怪。它肯定会丢失步骤吗?如果是这样,多少钱?我问的原因是 v0.9 使用完全不同的步进算法,它可以使步进器发出的声音与 v0.8 或之前的版本有很大不同。它绝对不应该这样做,但您可能已经发现了一个错误。你能告诉我们更多关于这个问题的信息并打印出你的设置吗?这将帮助我诊断问题,

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
作者

是的,它正在失去步伐。我猜大约 60%(丢失)。
这不是一个周期性的来回计划,它像噪音一样不稳定。
只有在“沿着”(梯度低于 ~ 20%)一个轴移动时才会发生:

  • “G0 X100 Y30”正在平稳地移动,
  • “G0 X100 Y20”颤抖……

我今晚会发布设置。

我一直在使用相同的电缆成功使用 0.8.x-edge(但在我机器的 V1 上)。还玩过步进脉冲宽度等。它似乎与拾取电噪声无关。
今晚我会做更多的测试。

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
贡献者

您是否已将 arduino 的数字接地连接到步进驱动器?我第一次犯这个错误,也有类似的问题。

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
作者

是的,数字接地已连接。

我正在使用 easydrivers (4.4) 来驱动电机。arduino 通过 USB 供电——步进电机/驱动器通过(良好的)开关电源供电。主轴单独供应。
用于 pre 0.9 的接线。

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
成员

FWIW 我在使用 EasyDrivers 时遇到了很多噪音问题。上次我尝试使用它们时,我最终将它们弹出并转而使用 bit-banging h-bridges。

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
作者

@simen:在我的第一次迭代(数控机床)中,easydrivers 一直运行良好。现在我已经更换了机械装置(保留接线!)并更新到 grbl 0.9xi 开始出现各种问题……

我的另一个问题:经过不同时间(从 5 分钟到 50 分钟)后,限位开关出现误报。外部上拉是不够的 – 将添加去抖电容器……

@chamnit: 顺便说一句,最大速度和加速度是根据经验确定的——包括 20% 的安全裕度(所以我知道失速步进器的声音是怎样的:-))
所有电机都有 200 步/转并驱动 M5 螺纹杆,z 有一个 2:1 机械齿轮

$$
$0=250.000 (x, step/mm)
$1=250.000 (y, step/mm)
$2=500.000 (z, step/mm)
$3=350.000 (x v_max, mm/min)
$4=350.000 (y v_max,毫米/分钟)
$5=200.000 (z v_max, mm/min)
$6=5.000 (x 加速度, 毫米/秒^2)
$7=6.000 (y 加速度, 毫米/秒^2)
$8=8.000 (z 加速度, 毫米/ sec^2)
$9=20 (步进脉冲, usec)
$10=250.000 (默认进给, mm/min)
$11=160 (步进端口反转掩码, int:10100000)
$12=250 (步进空闲延迟, msec)
$13=0.050 (结点偏差,mm)
$14=0.005 (arc tolerance, mm)
$15=3 (n-decimals, int)
$16=0 (report inches, bool)
$17=1 (auto start, bool)
$18=0 (invert step enable , bool)
$19=1 (硬限制, bool)
$20=1(归位周期,bool)
$21=224(归位方向反转掩码,int:11100000)
$22=50.000(归位进给,mm/min)
$23=150.000(归位搜索,mm/min)
$24=100(归位去抖动, 毫秒)
$25=0.500 (归位牵引, mm)
ok

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
成员

@mschorer: 没有不尊重的意思。只需要先消除明显的。

您是否尝试过或将尝试将 X 和 Y 步长/mm 从 250 调整 +/- 25 或 50 步长/mm(保持全步进并且一次只改变一个轴)?这会显着改变什么吗?

它可能仍然与新算法有关,在命令像您这样的某些多轴移动时,它可能会导致漏步,并且步长分辨率较低。我的意思是:在新的步进模块中有两个级别的 Bresenham 算法。v0.8 和之前使用的典型基于步进的算法,以及新步进器模块用于对步进计时的附加基于时间的 Ranade 算法。可能是您正在经历两者之间的共振,这会导致您像以前一样错过较慢的离轴上的步骤。如果您调整某些轴上的步长/毫米,这应该会改变共振,使其不会跳过步长。(或者,增加步进分辨率,就像你的半步改变一样,会做类似的事情。)如果这是问题所在,Grbl’ 没有很好的解决办法 此刻的身边。它需要一些思考和新代码。主要与向代码添加自适应步进分辨率有关,以使步进器在慢步进时运行得更加顺畅。可行,但做对并不容易。

无论如何,感谢您发送您的设置。它为我提供了一个良好的开端,希望我们能早日解决这个问题。

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
作者

测试 1:
将 x&y 的设置改回 250steps/mm,但将步进驱动器保持在半步。
似乎适用于提到的动作。???

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
成员

@mschorer: 解决了吗?可能是 250steps/mm 和 halfstep(移动半速率)可能更能容忍抖动。我一直在考虑为低频应用发布第二个版本的 grbl 作为解决方案。它将使用高分辨率的 bresenham step 算法,就像 smoothieware 使用的那样,使抖动消失。但是,代价是它基本上会将步进速率限制在最大值 15kHz(推荐 <10kHz)。这样的事情对你有用吗?我不能说什么时候能完成,因为我现在有很多事情要做,但我会确保完成。

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
作者

你好,

感谢您的努力!
它似乎工作……所以我现在正尝试在我的机器上运行一些……
但我会尽快调查。所以没有压力…

我会及时向大家发布。

现在留给我的唯一真正烦人的事情是#143

2013 年 3 月 15 日 21:49,Sonny Jeon notifications@github.com写道:

@mschorer https://github.com/mschorer:这个问题解决了吗?可能是250steps
/mm 和 halfstep(移动半速率)可能更能
容忍抖动。我一直在考虑为
低频应用发布第二个版本的 grbl 作为解决方案。它将使用
高分辨率的 bresenham step 算法,就像 smoothieware 使用的那样,使
抖动消失。但是,代价是它基本上会将步进
速率限制在最大值 15kHz(推荐 <10kHz)。这样
的事情对你有用吗?我不能说什么时候能完成,因为我现在有很多
事情要做,但我会确保完成。


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ /issues/199 #issuecomment-14984075


马库斯肖勒 | reicheteile/landsberg 电话
​​ +49 172 8932067 | http://www.alrightythen.de/blog/

奇怪的,“不稳定/颤抖”的运动,当“大部分”沿着一个轴移动时 #199
成员

是的。#143现在是最高优先级。Jens 和我正在研究一个解决方案,但它也需要与进给率覆盖一起使用,因为它们是交织在一起的。我们很快就会把它弄出来。谢谢你的耐心。

喜欢 (0)