摘自https://reprap.org/forum/read.php?1,739819,作者是Paul Wanamaker,里面夹带了一些自己的理解

原文如下:

The following will illustrate how Junction Deviation and Acceleration work together for smooth cornering.
Intro:
Printer controllers use a motion control program to plan the timing of every step. Motion controllers based on GRBL use a cornering algorithm called Cornering Junction Deviation, which I'll focus on here. (Other firmware use a different algorithm called Jerk which may be implemented differently - I am not discussing Jerk here.)
I've been researching Junction Deviation as part of my research into pressure compensation.
In layman's terms:
- Junction Deviation determines how tight the controller's motion planner sees an upcoming corner to be.
- Acceleration controls how sharply the breaks and gas pedal are applied.
- The smaller the Junction Deviation, the slower the cornering speed will be.
- Don't worry, the term "Junction Deviation" doesn't mean the printer will deviate from it's course!

I wanted to be able to visualize the effect that Junction Deviation and Acceleration have on cornering speed and segment time. So I extracted and "functionated" the Junction Deviation calculation from Smoothieware and created a visualizer for my use, and these screenshots are the result.

The most critical inputs to the calculation are the AccelerationJunction Angle, and the Junction Deviation, where Junction Deviation is a number between 0 and about 1 (numbers over 0.5 are ridiculous tho). I won't go into the details of the equation here, I'm focusing on the effects.

图中的δ为节点偏差,该值可以做为一个参数来限定通过该点的最大速度,利用向心加速度公式估计该值,作者的另一篇文章详细说明了该值的快速计算方法,见https://onehossshay.wordpress.com/2011/09/24/improving_grbl_cornering_algorithm/

The top plot shows the cornering speed at different junction angles for a maximum printing speed of 40 mm/s, given the inputs on the right. A 90 degree junction angle is simply a 90 degree corner between two segments. The red line shows where the target angle intersects the travel speed - giving the cornering speed for the given angle.

The middle plot shows the cornering speeds for up to a 150 mm/s travel speed.
If the acceleration is the same, then the plots for printing and travel are identical (up to the maximum print speed).

When printing a 90 degree corner: the effector will slow to about 15mm/s given the junction deviation of 0.100 and 1000 mm/sec Acceleration. Increasing either the Junction Deviation or the Acceleration will shift that line up, and the machine will corner faster.

The bottom plot shows a simulation of:
- two printing segments with a 90 degree corner between them,
- and then two travel segments with a 90 degree corner between them.

Each of these pairs of segments shows a dip in the center down to 15 mm/s - this is the cornering speed at the target 90 degree angle.

The motion for each pair of segments in detail is: Accelerate from 0 to the requested speed, speed is flat to before the corner/junction point, decelerate to junction speed between segments, accelerate back to the requested speed in the next segment, speed is flat to before end of segment, decelerate to 0.

If Junction Deviation was not used: the printer would just try to slam around the corner at full speed, and that would cause many problems (lost steps, extreme vibration, etc). If I could turn Junction Deviation off, then the plot of each pair of segments would not dip in the center.

There is one other parameter used with Junction Deviation: "Minimum Planner Speed" in Smoothieware.

For my screen I labeled it "Minimum Junction Speed" as I think that better describes it.
Notice at the beginning of the first two plots there is a knee, it starts out with a speed of 0, and then jumps up suddenly at about 18 degrees. This is a hardcoded "feature" of the J.D. calculation as it was implemented - any angle below about 18 degrees is considered essentially 0 degrees, and the "Minimum Planner Speed" is used.
If you want to make very sharp corners print faster then you can increase the "Minimum Planner Speed" from the default 0 mm/s.

Notice also that at about 162 degrees there is a sharp rise to full speed. This is also how J.D. was implemented - nearly strait angles more than (180 minus 18 degrees) are considered strait.

18度以内的角度,与0度的性质一致,直接采用最小规化速度进行规划即可;与之相对应,162度-180度之间的角度,与180度性质一致,不减速,按直线处理即可。

For comparison the following shows what happens if junction deviation is increased to 0.300. The cornering speed at 90 degrees has increased from about 15 mm/s to about 27 mm/s. That could well be enough to cause ringing - depending on the printer.

The bottom plot shows a simulation of:
- two printing segments with a 90 degree corner between them,
- and then two travel segments with a 90 degree corner between them.

Each of these pairs of segments shows a dip in the center down to 15 mm/s - this is the cornering speed at the target 90 degree angle.

The motion for each pair of segments in detail is: Accelerate from 0 to the requested speed, speed is flat to before the corner/junction point, decelerate to junction speed between segments, accelerate back to the requested speed in the next segment, speed is flat to before end of segment, decelerate to 0.

If Junction Deviation was not used: the printer would just try to slam around the corner at full speed, and that would cause many problems (lost steps, extreme vibration, etc). If I could turn Junction Deviation off, then the plot of each pair of segments would not dip in the center.

There is one other parameter used with Junction Deviation: "Minimum Planner Speed" in Smoothieware.

For my screen I labeled it "Minimum Junction Speed" as I think that better describes it.
Notice at the beginning of the first two plots there is a knee, it starts out with a speed of 0, and then jumps up suddenly at about 18 degrees. This is a hardcoded "feature" of the J.D. calculation as it was implemented - any angle below about 18 degrees is considered essentially 0 degrees, and the "Minimum Planner Speed" is used.
If you want to make very sharp corners print faster then you can increase the "Minimum Planner Speed" from the default 0 mm/s.

Notice also that at about 162 degrees there is a sharp rise to full speed. This is also how J.D. was implemented - nearly strait angles more than (180 minus 18 degrees) are considered strait.

For comparison the following shows what happens if junction deviation is increased to 0.300. The cornering speed at 90 degrees has increased from about 15 mm/s to about 27 mm/s. That could well be enough to cause ringing - depending on the printer.

参考资料

LinuxCNC Documentation Wiki: TrajectoryControl

节点偏差Junction Deviation相关推荐

  1. python可视化46|最常用6个偏差(Deviation)关系图

    ❝ 本文分享最常用「6个偏差(Deviation)关系图」. ❞ 本文目录 二.偏差 (Deviation)关系图

  2. JERK、Junction Deviation、Linear Advance

    JERK:速度低于阈值时,速度可以突变(理论加速度→±∞) Junction Deviation:相当于根据转弯的角度选择不同大小的JERK(参考:1.速度变化,2.轨迹计算) Linear Adva ...

  3. SAP QM 将业务上的偏差管理集成进入SAP系统?

    SAP QM 将业务上的偏差管理集成进入SAP系统? SAP标准功能是不支持管理业务上经常有的偏差(Deviation)的管理的.在一般的SAP项目实施过程中,对于业务部门的偏差(以及变更)等多半不会 ...

  4. 2018 ICML | Junction Tree Variational Autoencoder for Molecular Graph Generation

    2018 ICML | Junction Tree Variational Autoencoder for Molecular Graph Generation Paper: https://arxi ...

  5. gbrl参数_grbl-0.9运行参数配置说明

    grbl-0.9运行参数配置说明 2018-09-14 平台:ArduinoUNO R3 软件:Grbl 默认IO口配置 Grbl基本操作指令 参考[https://github.com/grbl/g ...

  6. 【雕刻机】Grbl程序使用入门

    平台:ArduinoUNO R3 软件:Grbl 默认IO口配置 Grbl基本操作指令 参考[https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0 ...

  7. lasterGrbl和GRBL使用指南

    软件 https://github.com/svenhb/GRBL-Plotter 0. 目录: 首页:https://github.com/gnea/grbl/wiki 编译Grbl:https:/ ...

  8. Grbl程序使用入门

    Grbl程序使用入门 槐之林 | 2017-07-07 22:51:14    阅读:7760   发布文章 平台:Arduino UNO R3 软件:Grbl 默认IO口配置 Grbl基本操作指令 ...

  9. CV领域论文常用单词汇总

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者:王大东 来源:https://zhuanlan.zhihu.com/p/58 ...

最新文章

  1. 以太坊和EOS的DApps数量飙升但用户量滞后
  2. git svn 一个疯(傻)子的想法
  3. C++ explicit关键字
  4. 拖链电缆 机器人电缆_洞头高柔性拖链网线标柔电缆
  5. 注册中心解决了什么问题
  6. [Web开发] 如何改变IE滚动条的颜色
  7. PrintNightmare 漏洞的补丁管用吗?安全界和微软有不同看法
  8. Mono喜迁新家-http://www.xamarin.com/
  9. Leetcode 64. 最小路径和 -- DP算法
  10. 上海展盟网络科技有限公司的 gamebox 组件注入进程导致软件崩溃
  11. C++萌新来看,一篇文让你让你彻底搞定类(超详细)!
  12. linaro交叉编译工具安装配置
  13. 数据结构选择练习题(有解析)
  14. tween.js--使用/教程/实例
  15. Universal Style Transfer via Feature Transforms (WCT,风格迁移,NIPS2017)
  16. spyder汉化方法
  17. u-boot-2012.04.01移植到TQ2440(八):支持烧写yaffs文件系统
  18. Flink Record has Long.MIN_VALUE timestamp (= no timestamp marker). Is the time characteristic
  19. 杨毅-kafka集群部署
  20. 苹果6s能安装通讯测试软件么,iOS 13在iPhone 6S和SE上运行情况如何

热门文章

  1. 概率论:魏布斯分布Weibull cumulative distribution function
  2. C++ 数据结构(三)列表(3)有序列表
  3. 思科《计算机网络》期末考试答案A卷
  4. linux下g 的core文件,gcore提取coredump方法
  5. 设计模式01策略模式
  6. vue watch监听中 immediate, deep, hander的作用
  7. 优先队列 HDU4544
  8. C语言中关于四舍五入的计算方法
  9. 计算机通过华为手机上网,华为手机网络怎么共享给电脑(必知网络共享3步曲)...
  10. 与matlab里面 imadjust 函数相同的python代码