开源改变世界

以 15khz+ 的进给速率轻微停顿/停顿 #21

推推 grbl 2年前 (2023-01-21) 256次浏览

关闭
dirktheeng 打开了这个问题 2011 年 6 月 5 日 · 11 条评论
关闭

以 15khz+ 的进给速率轻微停顿/停顿#21

dirktheeng 打开了这个问题 2011 年 6 月 5 日 · 11 条评论

注释

以 15khz+ 的进给速率轻微停顿/停顿 #21

你好,

我正在将 grbl 用于 CNC 激光项目。我刚把 arduino 连接起来,开始玩这个动作。当我将进给率设置得较高时,我注意到一个小问题。当它加速到速度时,它似乎在运动中有一个可听见的障碍。它似乎并没有在减速时做到这一点。我计算了问题开始的脉冲率,结果非常接近 15khz。我不确定我是否在某处设置错误,但每次都会这样。其他人注意到这一点了吗?它似乎并没有尽我所能地释放脉冲,所以我认为有什么东西导致了脉冲序列的中断。我正在使用 pololu A4988,脉冲宽度在 grbl 中设置为 20 微秒。大约有 81.7 个脉冲/毫米,加速度设置为大约 800 毫米/秒/秒。它不会在 15khz 以下执行此操作。

以 15khz+ 的进给速率轻微停顿/停顿 #21
成员

我会看看示波器。
这可能是您的电机或一般设置的谐波特性是否有意义?您是否可以
使用未连接到任何
机械装置的不同电机进行测试以排除这种可能性?

在 2011 年 6 月 5 日星期日,dirktheeng
reply@reply.github.com
写道:

你好,

我正在将 grbl 用于 CNC 激光项目。我刚把 arduino 连接起来,开始玩这个动作。当我将进给率设置得较高时,我注意到一个小问题。当它加速到速度时,它似乎在运动中有一个可听见的障碍。它似乎并没有在减速时做到这一点。我计算了问题开始的脉冲率,结果非常接近 15khz。我不确定我是否在某处设置错误,但每次都会这样。其他人注意到这一点了吗?它似乎并没有尽我所能地释放脉冲,所以我认为有什么东西导致了脉冲序列的中断。我正在使用 pololu A4988,脉冲宽度在 grbl 中设置为 20 微秒。大约有 81.7 个脉冲/毫米,加速度设置为大约 800 毫米/秒/秒。它不会在 15khz 以下执行此操作。

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/issues/21

以 15khz+ 的进给速率轻微停顿/停顿 #21
作者

我可以用不同的马达试一试。但是,当我将加速设置得更高时,加速所花费的时间似乎比减速所花费的时间要少得多。我认为它是在加速时跳到更高的速度,而不是平稳加速。当我从教堂回来时,我会尝试插入不同的电机。

关于交感振动的事情是你会期望它在下降和上升的过程中达到相同的频率并且它不会在下降的过程中产生噪音。

我还应该提到,问题不会在 15khz 速度下出现,只有当进给率设置在 15khz 以上时才会出现。我不知道挂钩在加速时发生的实际频率,但它会在 15khz 以上的任何进给速度下发生。也就是说,如果我发出命令 g1x100f11000,它会平稳移动,但如果我发出命令 g1x100f12000 或任何高于该值的 f,它每次都会执行。故障发生在加速时间中间的某个地方。我将加速度设置为什么似乎也无关紧要。我肯定没有达到电机的极限而导致打滑。

以 15khz+ 的进给速率轻微停顿/停顿 #21
作者

我用不同的轴试了一下,结果是一样的。当速度设置为 15khz 以上时,肯定会出现可听见的“故障”。

以 15khz+ 的进给速率轻微停顿/停顿 #21
成员

谢谢!今晚我会用示波器看看。您
使用的是哪个版本?从最近的 master 分支或“边缘”预建、自建?

在 2011 年 6 月 5 日星期日,dirktheeng
reply@reply.github.com
写道:

我用不同的轴试了一下,结果是一样的。当速度设置为 15khz 以上时,肯定会出现可听见的“故障”。

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/issues/21#comment_1305211

以 15khz+ 的进给速率轻微停顿/停顿 #21
成员

啊,你能把你的设置转储粘贴给我吗(输入 $ 并输入)

2011 年 6 月 5 日星期日晚上 8:01,Simen Svale Skogsrud simen@bengler.no写道:

谢谢!今晚我会用示波器看看。您
使用的是哪个版本?从最近的 master 分支或“边缘”预建、自建?

在 2011 年 6 月 5 日星期日,dirktheeng
reply@reply.github.com
写道:

我用不同的轴试了一下,结果是一样的。当速度设置为 15khz 以上时,肯定会出现可听见的“故障”。

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/issues/21#comment_1305211

以 15khz+ 的进给速率轻微停顿/停顿 #21
成员

我现在已经尝试使用 master 和 edge 分支,但无法
重现您的问题。
脉冲序列在逻辑分析仪上看起来非常干净。此外,我无法通过
设置记录重现您的问题。需要您的确切设置和 g 代码,并且还想
知道您使用的是哪种 *duino。

2011 年 6 月 5 日星期日晚上 8:32,Simen Svale Skogsrud simen@bengler.no写道:

啊,你能把你的设置转储粘贴给我吗(输入 $ 并输入)

2011 年 6 月 5 日星期日晚上 8:01,Simen Svale Skogsrud simen@bengler.no写道:

谢谢!今晚我会用示波器看看。您
使用的是哪个版本?从最近的 master 分支或“边缘”预建、自建?

在 2011 年 6 月 5 日星期日,dirktheeng
reply@reply.github.com
写道:

我用不同的轴试了一下,结果是一样的。当速度设置为 15khz 以上时,肯定会出现可听见的“故障”。

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/issues/21#comment_1305211

以 15khz+ 的进给速率轻微停顿/停顿 #21
作者

以下是可能导致问题的设置
$0 = 157.738(步数/mm x)
$1 = 157.738(步数/mm y)
$2 = 157.738(步数/mm z)
$3 = 15(微秒步进脉冲)
$4 = 14000.0(mm/min默认进给速率)
$5 = 14000.0(mm/min 默认寻道速率)
$6 = 0.100(mm/arc 段)
$7 = 0(步进端口反转掩码。二进制 = 0)
$8 = 800.0(加速度以 mm/sec^2 为单位)
$9 = 0.0(增量毫米/分钟的最大瞬时转弯速度变化)
“$x=value”设置参数或仅“$”转储当前设置

我希望我有一个范围来检查这个。

我正在使用主干版本。我复制了源代码并使用 WinAvr 构建了十六进制,并使用 arduino 上传器将其加载到芯片上。

我如何完全闪存/格式化芯片并重新加载它。我在想它的加载方式可能有问题。

以 15khz+ 的进给速率轻微停顿/停顿 #21
作者

当加速度这么低时,你可以肯定地说它的加速速度也比减速速度快。你能把加速和减速的波形发给我吗?

以 15khz+ 的进给速率轻微停顿/停顿 #21
作者

我下载了你的构建代码并试过了,它做了同样的事情。我真的希望我的 arduino 不错。

以 15khz+ 的进给速率轻微停顿/停顿 #21
成员

德克,我认为这与斯蒂芬尼克斯注意到的长坡问题有关。我也遇到了声音障碍。在测试了一个理论之后,我认为这是由于规划器使用的精确积分解决方案与步进程序执行的离散减速/加速之间的差异。当我在 config.h 中启动 ACCELERATION_TICKS_PER_SECOND(必须完全重新编译代码)时,故障逐渐消失。

grbl 默认是每秒更新加速度 40 次。使用 800mm/sec^2 设置,在达到标称速度之前,您可能只经过一两个加速节拍,并完全超过或低于以下速度变化。通过像您一样降低加速度,您基本上允许 grbl 在该加速周期内执行更多的加速度滴答更新。所以问题消失或变得不那么明显。通过启动 ACCELERATION_TICKS_PER_SEC,您可以保持 800mm/sec^2 的高加速度,并允许 grbl 在该加速度上创建更多的加速度滴答。您可能必须找到一个最佳点,让 grbl 平稳运行并且不会使 CPU 过载。

如果您在调高参数时遇到问题,我已经重新编写了规划器代码以提高效率和效果,并且我已经将 ACCELERATION_TICKS_PER_SEC 在 5kHz 步进频率下设置为 360L。我没有尝试过更快,因为这些问题对我来说在 120 升左右消失了。我目前正在寻找一种方法来有效地解决这个固有问题,方法是尝试找到一种更好的方法来预测步进程序在规划器估计中所做的事情。但不要屏住呼吸。Arduino CPU 在 grbl 上已经用完了,很难想出一个干净简单的解决方案。

以 15khz+ 的进给速率轻微停顿/停顿 #21
成员

短剑。这是我在 stephanix 的问题上发布的内容,我相信这也是您问题的解决方案。


好的。我已经找到导致此问题的主要问题。它在 stepper.c 中,它与减速/加速完成的方式和时间有关。为了修复它,我应用了曲线近似的中点规则(或者将它的速度开始变化的时间稍微不同)并确保步进中断将始终准确地准时停止和开始加速和减速。在我的工厂进行了测试,效果非常好。

在 config.h 中增加 ACCELERATION_STEPS_PER_SECOND 的另一个权宜之计解决方案仍然适用,特别是对于运行非常高加速度和进给率的人。

预计代码将在本周末的某个时候发布在我的叉子上。

喜欢 (0)