zoukankan      html  css  js  c++  java
  • 数字积分法DDA(DDA(Digital Differential Analyzer)

    数字积分法DDA(DDA(Digital Differential Analyzer)     

         数字积分法又称数字微分分析法DDA(Digital differential Analyzer),是在数字积分器的基础上建立起来的一种插补算法。数字积分法的优点是,易于实现多坐标联动,较容易地实现二次曲线、高次曲线的插补,并具有运算速度快,应用广泛。

    1.直线插补

    基本原理(自己去看,不在赘述)

    原理图:

    实例:设有直线OE,起点在原点,终点E(xe=5,ye=4),寄存器均为三位二进制寄存器,用DDA法实现插补。

    初始化 m=2^n=2^3=8,Σy=0,Σx=0

    每一行出现溢出则移动一次。

    结果:

    实例2

    设有一直线OE,如图3-20所示起点坐标O(0,0),终点坐标为E(4,3),累加器和寄存器的位数为3位,其最大可寄存数值为7(J≥8时溢出)。若用二进制计算,起点坐标O(000,000),终点坐标E(100,011),J≥1000时溢出。试采用DDA法对其进行插补。

    结果

    2. 圆弧插补

    第一象限顺圆弧插补器

    实例:

    加工第一象限顺圆AB,如图3-27,起点A(0,5),终点B(5,0)选用寄存器位数n=3,经过 “半加载”处理后,试用DDA法进行插补计算。

    JVX和JVY初始值在顺圆弧插补图中有解释(可以根据第一象限顺圆弧运动开始时x变化快y变化慢,结束是x变化慢y变化快来理解)。

    结果:

    提高插补精度的措施:

    对于DDA圆弧插补,径向误差可能大于一个脉冲当量。

    减少误差的方法有:

    ①减小脉冲当量;

    ②采用累加器预置数法(规格化)

      即在DDA插补之前,将JRX,JRY的初值不置零,而是预置2^(n-1),使其二进制数最高有效位置“1”,其它各位置零,若再累加100…000,累加器就可以产生第一个溢出脉冲。这种处理方式称为“半加载”(上图中初始值为4就是使用了半加载。)

    3. DDA圆弧插补与直线插补的主要区别

    • 圆弧插补中被积函数寄存器寄存的坐标值与对应坐标轴积分器的关系恰好相反。
    • 圆弧插补中被积函数是变量,直线插补的被积函数是常数。
    • 圆弧插补终点判别需采用两个终点计数器。对于直线插补,如果寄存器位数为n,无论直线长短都需累加2^n次到达终点。
  • 相关阅读:
    jsoup
    【伪装位置神器】神行者AnyLocation 1.3.0001可用于微信,陌陌
    MD5 哈希等各种加密方式 都是对这个对象进行各种运算, 然后得出1个字符串
    【html】param 以及 embed 的有关 flash 属性详解
    【css】绝对定位的元素在 ie6 下不显示
    【javascript】浮点数运算问题分析及解决方法
    【jquery】邮箱自动补全 + 上下翻动
    【javascript】设为首页——setHome
    【javascript】js 检验密码强度
    【jquery】jquery 自定义滚动条
  • 原文地址:https://www.cnblogs.com/skywatcher/p/3552624.html
Copyright © 2011-2022 走看看