发明名称 一种高精度实时轮廓误差估计方法
摘要 本发明一种高精度实时轮廓误差估计方法属于精密高效数控加工技术领域,涉及一种数控参数曲线插补加工过程中基于初值再生牛顿迭代法的高精度实时轮廓误差估计方法。该方法首先在每步迭代计算前,根据当前插补点参数和实际刀位点,基于一阶泰勒级数展开法计算参数曲线上用于牛顿迭代计算垂足点的迭代参数初值;其次,利用牛顿迭代法,根据迭代初值计算单步迭代参数终值;最后,为避免大幅增加算法计算时间,根据迭代终止条件及最大迭代次数条件双重约束结束迭代,得到垂足点参数估计值,进而计算轮廓误差矢量估计值。本发明可有效避免迭代发散、提高轮廓误差估计精度,对保证参数曲线插补加工中轮廓控制精度具有重要意义。
申请公布号 CN106125674A 申请公布日期 2016.11.16
申请号 CN201610628783.7 申请日期 2016.08.03
申请人 大连理工大学 发明人 马建伟;宋得宁;贾振元;高媛媛;刘振
分类号 G05B19/4103(2006.01)I 主分类号 G05B19/4103(2006.01)I
代理机构 大连理工大学专利中心 21200 代理人 关慧贞
主权项 一种高精度实时轮廓误差估计方法,其特性在于,该方法在每步牛顿迭代计算垂足点前,基于一阶泰勒级数展开法计算参数曲线上用于牛顿迭代的参数初值,再利用牛顿迭代法,根据参数初值计算单步迭代参数终值;最后,为避免大幅增加算法计算时间,根据迭代终止精度条件及最大迭代次数条件,得到垂足点参数估计值,进而计算轮廓误差矢量估计值;方法的具体步骤如下:设参数曲线的参数方程为C=C(u),其中u为曲线参数,当前理想刀位点为R,对应的曲线参数值为u<sub>r</sub>,实际刀位点为P,首先令算法的迭代初始点参数u<sub>a</sub>=u<sub>r</sub>,初始点C<sub>a</sub>=C(u<sub>a</sub>);第一步计算牛顿迭代参数初值为避免牛顿迭代法不收敛,每步迭代前皆进行迭代参数初值再生;以向量PC<sub>a</sub>在理想轮廓的C<sub>a</sub>点处切线方向上的投影长度为基准,根据一阶泰勒级数展开法,确定用于牛顿迭代计算的参数初值u<sub>b</sub>:<maths num="0001"><math><![CDATA[<mrow><msub><mi>u</mi><mi>b</mi></msub><mo>=</mo><msub><mi>u</mi><mi>a</mi></msub><mo>-</mo><mfrac><mrow><mi>d</mi><mi>u</mi></mrow><mrow><mi>d</mi><mi>s</mi></mrow></mfrac><msub><mo>|</mo><mrow><mi>u</mi><mo>=</mo><msub><mi>u</mi><mi>a</mi></msub></mrow></msub><mrow><mo>(</mo><msub><mi>C</mi><mi>a</mi></msub><mo>-</mo><mi>P</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><mi>T</mi><mi>a</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001068224930000011.GIF" wi="806" he="167" /></maths>其中,s为曲线弧长,T<sub>a</sub>为C<sub>a</sub>点处理想轮廓曲线的单位切矢,参数u对弧长s的导数为:<maths num="0002"><math><![CDATA[<mrow><mfrac><mrow><mi>d</mi><mi>u</mi></mrow><mrow><mi>d</mi><mi>s</mi></mrow></mfrac><msub><mo>|</mo><mrow><mi>u</mi><mo>=</mo><msub><mi>u</mi><mi>a</mi></msub></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mfrac><mrow><mi>d</mi><mi>s</mi></mrow><mrow><mi>d</mi><mi>u</mi></mrow></mfrac><msub><mo>|</mo><mrow><mi>u</mi><mo>=</mo><msub><mi>u</mi><mi>a</mi></msub></mrow></msub></mrow></mfrac><mo>=</mo><mfrac><mn>1</mn><mrow><mo>|</mo><mo>|</mo><msup><mi>C</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>u</mi><mi>a</mi></msub><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001068224930000012.GIF" wi="774" he="239" /></maths>其中,C′(u<sub>a</sub>)为参数方程C(u)对参数u的导矢在u<sub>a</sub>处的值;T<sub>a</sub>为:<maths num="0003"><math><![CDATA[<mrow><msub><mi>T</mi><mi>a</mi></msub><mo>=</mo><mfrac><mrow><msup><mi>C</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>u</mi><mi>a</mi></msub><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mo>|</mo><msup><mi>C</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>u</mi><mi>a</mi></msub><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001068224930000013.GIF" wi="453" he="175" /></maths>将公式(2)、(3)带入公式(1)得:<maths num="0004"><math><![CDATA[<mrow><msub><mi>u</mi><mi>b</mi></msub><mo>=</mo><msub><mi>u</mi><mi>a</mi></msub><mo>-</mo><mfrac><mrow><mo>(</mo><msub><mi>C</mi><mi>a</mi></msub><mo>-</mo><mi>P</mi><mo>)</mo><mo>&CenterDot;</mo><msup><mi>C</mi><mo>&prime;</mo></msup><mo>(</mo><msub><mi>u</mi><mi>a</mi></msub><mo>)</mo></mrow><mrow><mo>|</mo><mo>|</mo><msup><mi>C</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>u</mi><mi>a</mi></msub><mo>)</mo></mrow><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001068224930000021.GIF" wi="750" he="188" /></maths>第二步计算单步迭代终值根据第一步中所求得参数u<sub>b</sub>所对应曲线上的点C<sub>b</sub>=C(u<sub>b</sub>)一定是距离理想垂足点较近的点,此时,应用牛顿迭代法,根据参数初值u<sub>b</sub>计算单步迭代终值u<sub>c</sub>;令函数f(u)为:<maths num="0005"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>(</mo><mi>C</mi><mo>(</mo><mi>u</mi><mo>)</mo><mo>-</mo><mi>P</mi><mo>)</mo><mo>&CenterDot;</mo><msup><mi>C</mi><mo>&prime;</mo></msup><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mrow><mo>|</mo><mo>|</mo><mi>C</mi><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>-</mo><mi>P</mi><mo>|</mo><mo>|</mo><mo>|</mo><mo>|</mo><msup><mi>C</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001068224930000022.GIF" wi="747" he="187" /></maths>则垂足点参数值即可通过求解非线性方程f(u)=0获得;利用牛顿迭代方法进行一次迭代得到单步迭代终值u<sub>c</sub>为:<maths num="0006"><math><![CDATA[<mrow><msub><mi>u</mi><mi>c</mi></msub><mo>=</mo><msub><mi>u</mi><mi>b</mi></msub><mo>-</mo><mfrac><mrow><mi>f</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>b</mi></msub><mo>)</mo></mrow></mrow><mrow><msup><mi>f</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>u</mi><mi>b</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001068224930000023.GIF" wi="518" he="174" /></maths>式中,f′(u<sub>b</sub>)为函数f(u)对参数u的导函数在u<sub>b</sub>处的值,计算为:<maths num="0007"><math><![CDATA[<mrow><msup><mi>f</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>u</mi><mi>b</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>|</mo><mo>|</mo><mi>C</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>b</mi></msub><mo>)</mo></mrow><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup><mo>+</mo><mrow><mo>(</mo><mi>C</mi><mo>(</mo><msub><mi>u</mi><mi>b</mi></msub><mo>)</mo><mo>-</mo><mi>P</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msup><mi>C</mi><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><msub><mi>u</mi><mi>b</mi></msub><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mo>|</mo><mi>C</mi><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>-</mo><mi>P</mi><mo>|</mo><mo>|</mo><mo>|</mo><mo>|</mo><msup><mi>C</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001068224930000024.GIF" wi="1082" he="191" /></maths>其中,C″(u<sub>b</sub>)为参数方程C(u)在u<sub>b</sub>处的二阶导矢;第三步计算轮廓误差矢量估计值给定迭代最多次数条件k<sub>m</sub>和迭代终止精度条件e,e为较小的正数;记录当前迭代次数为k,若k<k<sub>m</sub>且|f(u<sub>1</sub>)|>e,令k=k+1,u<sub>a</sub>=u<sub>c</sub>,返回第一步循环执行上述步骤;否则,说明已满足迭代终止精度条件或迭代次数已达规定的上限值,此时终止迭代,将最后获得的单步迭代参数终值u<sub>c</sub>作为估计的垂足点参数,则垂足点即为C(u<sub>c</sub>),估计的轮廓误差矢量值<img file="FDA0001068224930000025.GIF" wi="31" he="60" />为:<maths num="0008"><math><![CDATA[<mrow><mover><mi>&epsiv;</mi><mo>^</mo></mover><mo>=</mo><mi>C</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>c</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>P</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001068224930000026.GIF" wi="454" he="86" /></maths>在参数曲线插补时的每一个插补周期内,执行上述迭代循环实现每一插补点处轮廓误差矢量值的实时高精度估计。
地址 116024 辽宁省大连市甘井子区凌工路2号