菜鸟学四轴控制器之6:刀具半径补偿算法

为什么要有刀具补偿?

想象一下,如果我们的刀具可以理想到半径无穷小,倒是不需要考虑半径的补偿,但是实际上我们用到的是刀具的边沿在雕刻物体,如下图:

简单来看,好像是直接平行于轮廓进行移动就可以了,其实不然,单条直线的雕刻是平行,但是直线和直线,直线和圆弧,圆弧和圆弧都是不同的,并且!直线与直线的刀具补偿也分为三种情况分析。并且,在理论上有两种方法来进行补偿。

且慢,还分为三步,第一步是建立补偿,第二步 进行补偿,第三步撤销补偿。

两种方法分别为:

1、B刀具半径补偿

2、C刀具半径补偿

按照以往惯例,显然第一种方法是简单粗暴有效。第二种复杂一点,但是更加精准。

单条直线和圆弧的刀具偏移如图,很简单的可以计算出直线和圆弧的刀具补偿公式如下:


公式是很简单,其实和插补的算法结合到一起以后,就比较复杂了,典型的方法有R2法,极坐标法和矢量判别法,如果想知道具体的方法的原理,可以参考下面的链接:

http://jpkc.nwpu.edu.cn/jpkc2005/34/dianzikejian/

要注意的是,在B刀具半径补偿的时候,比如直线和圆弧连接,则需要一个过度的算法,否则刀具不连续而产生错误。过度时我们用到补偿一个相切的圆弧,并且在B刀具补偿的时候,还有一个尖角的问题需要处理,所以在数控系统中,专门加入了一条G39的补偿指令。

C刀具补偿法:

这个补偿法用到了4个缓存,按照顺序分别叫做BS,CS,AS,OS,简单来说,插补的线段指令先送入BS,第一条,继续往下传递到CS,继续加载第二条指令到BS,这时候判断BS和CS需要做何种刀具补偿,这个是问题的关键,处理完成以后,加入补偿后送入AS,AS进行运算,送到OS进行脉冲的输出。

当指令传入下一个缓冲器时,也就是上一个缓冲器完成一个传递以后,继续取下一条指令。

其中需要补偿的情况氛围三种:

直线和直线

直线和圆弧

圆弧和圆弧

以直线和直线的转接来说,按照两条直线的夹角,可以分为以下的五种情况。

总体来说,就是缩短型,插入型和伸长型。

另外两种情况类似也有这五种情况。

圆弧的计算流程如下:

总结下来,刀具半径补偿的算法就是理想与现实搭建起来的桥梁的一种算法,理解起来不难,但是要把每一种可能性都经过判断,计算和执行,其实不是一件容易做到的事情。

问题:MCX314和PCL6045这种专用芯片,应该用到了刀具补偿的算法,比如插补算法用比较原始的DDA算法,而刀具补偿用到的是C刀具补偿法。

时间: 2024-10-20 08:05:45

菜鸟学四轴控制器之6:刀具半径补偿算法的相关文章

菜鸟学四轴控制器之1:插补是啥东西

之前看过运动控制芯片的手册,包括了NOVA的MCX314和PCL6045等,知道插补的概念. 但是插补到底是啥玩意,其实一直是有点疑惑的,然后就傻乎乎的去问一些专家,他们的说法是: 插补可以同时多轴输出,速度很快.然后就不知道问啥了. 基于我之前做步进电机的经验,以及测试步进电机驱动器的经验,我一般情况下都是通过单片机发一个固定脉冲来测试驱动器的性能.如果需要测试电机各种速度下的力矩特性,最多采用了S加减速曲线,在我看来,要画一个直线,那太简单了,直接X轴和Y轴同时给不同速度的脉冲不就OK了么?

菜鸟学四轴控制器之2:逐点比较法

逐点比较法是基准脉冲插补算法中,最简单和直接的一种方式. 简单粗暴,速度快! 可以实现直线插补,圆形插补和其他的插补,比如椭圆形等. 逐点比较法,顾名思义,就是每走一步都要将加工点的瞬时坐标同规定的图形轨迹相比较,判断其偏差,然后决定下一步的走向,如果加工点走到图形外面去了,那么下一步就要向图形里面走:如果加工点在图形里面,那么下一步就要向图形外面走,以缩小偏差.这样就能得出一个非常接近规定图形的轨迹,最大偏差不超过一个脉冲当量. 所以说,一般的雕刻机应该可以满足要求吧,关键是速度也快啊,比如说

菜鸟学四轴控制器之3:数字积分法DDA实现直线插补

上一篇的逐点比较法显然是无法画一条有倾角的直线的.因为X轴和Y轴永远都不同步,也就是像打台球一样,你打一个,我打一个,如果我进了球,我再接着打一个. 也就是说,如果直线为45度,也是没有办法画出来的,只能是锯齿形状. 如何实现X和Y同时动?也就是说,如果要画一条45度的线,X和Y同时动不就行了么? 比如起点为0,0,终点为5,5,如果采用逐点比较法,则需要运动10次,如果两轴同时运动,则5步就可以实现了.实现的途径如下: 初始值为0,0,然后下一步,我们每个坐标增加5,则结果为5,5,这样会溢出

iOS边练边学--父子控制器之自定义控制器的切换

一.如图所示的界面,按钮One.Two.Three分别对应三个控制器的view,点击实现切换.个人感觉父子控制器的重点在于,控制器的view们之间建立了父子关系,控制器不建立的话,发生在view上面的事件,对应的view可能接收不到,控制器们建立了父子关系后,可以将事件传递给相应的控制器. 练习代码如下: 1 #import "ViewController.h" 2 #import "OneTableViewController.h" 3 #import "

菜鸟学Python第十七天

菜鸟学python第十七天 1.logging 模块 logging模块即日志记录模块 用途:用来记录日志 为什么要记录日志: 为了日后复查,提取有用信息 如何记录文件 直接打开文件,往里写东西 直接写入文件的两个问题:(logging模块解决这两个问题) 你写的数据格式 别人看不懂 解析数据模块 logging的使用 logging模块的两种记录日志的方式 使用logging提供的模块级别函数 使用logging日志系统四大组件 <!--本质上logging模块级别函数日志记录就是对日志系统四

《跟菜鸟学Cisco UC部署实战》-视频课程-学习投资

有朋友,有学生,问到学习投资些什么,注意:投资可重复利用!就看你怎么用!!! 所以,我写下此博文,目的为了更方便学员学习! 一.在线培训(直播): 1. 学费: 8168元. (目前没开班,如果需要培训大纲,培训计划,请联系QQ:学无止境 3313395633 ) 2. 1条电话初装费 初装费:150元(大约)+31元/月,测试后可以,如果不用,请停机保号,停机保号:5元/月. 3. 1条宽带 默认大家都能上网,不用单独投资! 4. 语音网关 680元(老师为购买此组合,本课程中使用此组合! 一

菜鸟学jQuery源码(一)

整个jQuery是一个自调用的匿名函数: 1 (function(global, factory) { 2 if (typeof module === "object" && typeof module.exports === "object") { 3 module.exports = global.document ? 4 factory(global, true) : 5 function(w) { 6 if (!w.document) { 7

菜鸟学jQuery源码(前言)

前言 相信任何一名前端开发人员或者是前端爱好者都对jQuery不陌生.jQuery简单易用,功能强大,特别是拥有良好的浏览器兼容性,大大降低了前端开发的难度,使得前端开发变得“平易近人起来”.自从本人用了jQuery,顿时感觉到人生再也不是灰色的了,又能够快乐的工作了. 不过在每天码得飞起的同时,我也对jQuery充满好奇,所以也特意的去查了一下资料.现在网上和书店里面有非常多的资料对jQuery源码从各种角度进行解析,大多都是对jQuery进行总结.归纳从上往下的分析.不过本人作为一名刚毕业的

菜鸟学Java(十九)——WEB项目测试好帮手,Maven+Jetty

做WEB开发,测试是一件很费时间的事情.所以我们就应该用更简单.更快捷的方式进行测试.今天就向大家介绍一个轻量级的容器--jetty.j今天说的etty是Maven的一个插件jetty-maven-plugin,与Maven配合起来使用非常的方便,它的配置也非常的简单,下面我们就看看它怎么用吧! 在pom.xml 文件的<project>标签下加入如下代码: <build> <plugins> <plugin> <groupId>org.mort