基于FPGA的逐点比较圆弧插补算法设计(3)

2019-07-13 18:06

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

第三章 逐点比较法原理2010届毕业设计6月7日修改版

3.3 节拍控制和运算程序的流程图

圆弧插补的节拍控制:综上所述,逐点比较法圆弧插补的全过程,每走一步都要进行以下四个节拍,如图所示。第一节拍——偏差判别:判断道具当前位置相对于给定的轮廓的偏差情况,以此决定道具移动的方向;

第二节拍——进给:根据偏差判断结果,控制道具相对于工件轮廓进给一步,即向给定的轮廓靠拢,减小偏差;

第三节拍——偏差计算:由于道具进给已经改变了位置,因此应计算出道具当前位置的新偏差,为下次判别做准备;

第四节拍——终点判别:判别刀具是否已到达被加工轮廓的终点。若已经到达终点,则停止插补;若还未到达终点则继续插补。如此不断重复上述四

个节拍就可以加工出所要加工的轮廓。

3.4圆弧插补的象限处理与坐标交换

3.4.1圆弧插补的象限处理

上面仅讨论了第一象限的逆圆弧插补,实际上圆弧所在的象限不同,顺逆不同,则插补公式和进给方向均不同。逆圆插补有四种情况,如右图所示

现将逆圆弧插补的四种情况的偏差计算及进给方向列于表3-1中,其中R表示圆弧,N表示逆时针,四个象限分别用数字1、2、3、4标注,例如NR1表示第一象限逆圆。

表3-1 xy平面内逆圆插补的进给方向与偏差计算

线型 NR1 偏差 F?0 偏差计算 F←F+2x+1 进给方向与坐标 ??x

共 25 页 第 7 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

第四章 圆弧插补算法VHDL实现2010届毕业设计6月7日修改版

NR1 NR2 NR2 NR3 NR3 NR4 NR4 F?0F?F?F?F?F?F? 0 0 0 0 0 0 x←x+1 F←F-2x+1 x←x-1 F←F+2y+1 y←y+1 F←F-2y+1 y←yx-1 ??x??y ??y3.3.2圆弧自动过象限

所谓圆弧自动过象限,是指圆弧的起点和终点不在同一象限内,如图3-4所示。为实现一个程序段的完整功能,需设置圆弧自动过象限功能。

要完成过象限的功能,首先应判别何时过象限。过象限有一显著特点,就是过象限时刻正好是圆弧与坐标轴相交的时刻,因此在两个坐标值中必有一个为零,判断是否过象限只要检查是否有坐标值为零即可。

过象限后,圆弧线型也改变了,但过象限时象限的转换是有一定规律的。当圆弧起点在象限时,逆时针圆弧过象限后转换顺序NR1→NR2→NR3→NR4→NR1,每过一次象限,象限顺序号加1,当从第四象限向第一象限过象限时,象限顺序号从4变为1。

3-4圆弧过象限

第四章 圆弧插补算法VHDL实现

逐点比较法第Ι象限圆插补计算流程图如图4.1所示:

共 25 页 第 8 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

第四章 圆弧插补算法VHDL实现2010届毕业设计6月7日修改版

图4.1 逐点比较法第Ι象限圆插补计算流程图

4.1 圆弧插补逻辑状态

在VHDL脉冲输出真值表4-1

CLK clk'event and clk='0' clk'event and clk='0' F<0 无脉冲 有脉冲 F F>=0 CPX 有脉冲 CPY 无脉冲 脉冲输出状态表示如4.2图所示:

共 25 页 第 9 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

第四章 圆弧插补算法VHDL实现2010届毕业设计6月7日修改版

图4.2圆弧插补状态图

结束 是 进行X轴方向进给,计算偏差函数 否 F>=0 否 进行Y轴方向进给,计算偏差函数 判断插补步数是否等于总步数 计算插补步长,初始化偏差F 将clk分频赋值给pul 开始 触发clk 触发P1进程,判断象限 触发pul进程 是 程序中,p1:process(g,clck)为进程语句,clk为敏感变信号,敏感信号有事件发生时,进程中的顺序语句都会按照他们出现的顺序执行。

程序中我设置了clk时钟输入口,还设置了变量clck,clk经分频处理后赋值给clck。DIR:='0'时表示为逆圆,DIR:='1'时则表示为顺圆。clck'event and clck='1'表pul上升沿,'EVENT是信号预定义属性,表示有事件发生,clck'event and clck='1'为clck发生变化且clck=1,从而实现clck的上升沿,clck为上升沿有效。

这里定义变量xcp,ycp分别表示X轴和Y轴的方向进给,分别对应cpx,cpy。

共 25 页 第 10 页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

第四章 圆弧插补算法VHDL实现2010届毕业设计6月7日修改版

其中cpx代表X轴方向进给,cpy代表Y轴方向进给。F是整型数,代表偏差函数寄存器,用来存放偏差值,当F>0时,(1)DIR:='0'时为逆圆计算公式,-X方向进给一个脉冲,(2)DIR:='1'时为顺圆计算公式,-Y方向进给一个方向;当F<0时,(1)DIR:='0'时为逆圆计算公式,+Y方向进给一个方向(2)DIR:='1'时为顺圆计算公式,+X方向进给一个脉冲。

r、s代表的是动态的X,Y坐标,也是整型数,主要用来存放插补时插补点的坐标,动点坐标是变化的,要不断修正坐标值并存入寄存器中。

p2进程程序是将clk分频的程序,用于消除毛刺。

以上程序插补算法是根据逐点比较法的原理来设计,圆弧插补分为四个象限通过观察,逐点比较法四象限的插补之间具有共同点。其它三个象限都可以和第一象限联系起来,所以在设计四象限圆弧是可以参照第一象限圆弧的插补算法。

程序增加了一个中间常量,用来存放中间CPU送入的直线终点坐标值,再通过判别CPU送入的坐标的象限,来修正坐标,把它对应到第一象限中进行插补运算,再输出脉冲。

4.2 圆弧插补方向进给

表4-2 四象限圆弧插补偏差计算与进给方向

线型 SR1 NR2 SR3 NR4 NR1 SR2 NR3 SR4 F=F-2|X|+1 |X|=|X|-1 F=F-2|Y|+1 |Y|=|Y|-1 F≥0 偏差计算 坐标进给 -ΔY -ΔY +ΔY +ΔY -ΔX +ΔX +ΔX -ΔX F=F+2|Y|+1 |Y|=|Y|+1 F=F+2|X|+1 |X|=|X|+1 偏差计算 F<0 坐标进给 +ΔX -ΔX -ΔX +ΔX +ΔY +ΔY -ΔY -ΔY 4.3圆弧插补VHDL仿真

共 25 页 第 11 页


基于FPGA的逐点比较圆弧插补算法设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:重庆市书法家协会会员名录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: