发明名称 一种自识别插补种类的插补控制方法
摘要 一种自识别插补种类的插补控制方法,利用图形采集设备和matlab软件获得加工位置点信息,利用B样条理论构造固定不变的一组基函数,反算控制点,利用B样条均参数理论,计算加工轨迹的曲率变化,根据曲率变化特点对加工轨迹的插补类型进行自动识别。对样条插补段根据弓高误差计算出速度限制曲线,对根据弓高误差求出的速度限制值与给定的最大限制速度进行判断,取二者的较小值,构成新的速度限制曲线。对于圆弧插补段、直线插补段计算特征值,进而进行相应插补计算。本发明提供了一种能自动对插补种类进行识别的插补控制方法,利用基函数固定的B样条理论进行插补计算,有效提高了加工的精度和效率的一种自识别插补种类的插补控制方法。
申请公布号 CN104076743A 申请公布日期 2014.10.01
申请号 CN201410319680.3 申请日期 2014.07.07
申请人 浙江理工大学 发明人 杨亮亮;许守金;史伟民
分类号 G05B19/4103(2006.01)I 主分类号 G05B19/4103(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 一种自识别插补种类的插补控制方法,其特征在于步骤如下:第一步,利用图形采集设备对工件进行拍照,利用matlab软件对照片进行处理,获得加工位置点信息;第二步,构造均匀B样条曲线,根据样条插补的要求以及B样条特性,节点向量取值形式为:U=[‑p+1,‑p+2,...,0,1,2,...,p]   (1)其中p是样条基函数的次数,由样条基函数递推公式可以得到均匀B样条基函数计算公式,具体公式如下所示:<maths num="0001" id="cmaths0001"><math><![CDATA[<mfenced open='' close=''><mtable><mtr><mtd><mrow><msub><mi>N</mi><mrow><mi>n</mi><mo>,</mo><mi>p</mi></mrow></msub><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mi>p</mi><mo>!</mo></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>0</mn></mrow><mi>p</mi></munderover><msup><mrow><mo>(</mo><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>j</mi></msup><msubsup><mi>C</mi><mrow><mi>p</mi><mo>+</mo><mi>i</mi></mrow><mi>j</mi></msubsup><msup><msup><mrow><mo>(</mo><mi>u</mi><mo>+</mo><mi>p</mi><mo>-</mo><mi>n</mi><mo>-</mo><mi>j</mi><mo>)</mo></mrow><mi>p</mi></msup></msup></mtd><mtd><mi>u</mi><mo>&Element;</mo><mo>[</mo><mn>0,1</mn><mo>]</mo><mo>,</mo><mi>n</mi><mo>=</mo><mn>0,1</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>p</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000533612290000011.GIF" wi="1575" he="194" /></maths>其中p是样条基函数的次数,n是基函数的序列号,u是变化参数,假设给定m+p+1个控制点<img file="FDA0000533612290000012.GIF" wi="223" he="94" />可得B样条曲线P<sub>k</sub>(u),计算公式如下所示:<maths num="0002" id="cmaths0002"><math><![CDATA[<mfenced open='' close=''><mtable><mtr><mtd><msub><mi>P</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow><mi>p</mi></munderover><msub><mi>P</mi><mrow><mi>k</mi><mo>+</mo><mi>n</mi></mrow></msub><msub><mi>N</mi><mrow><mi>n</mi><mo>,</mo><mi>p</mi></mrow></msub><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow></mtd><mtd><mn>0</mn><mo>&le;</mo><mi>u</mi><mo>&le;</mo><mn>1</mn></mtd><mtd><mi>k</mi><mo>=</mo><mn>0,1</mn><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mi>m</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000533612290000013.GIF" wi="1496" he="138" /></maths>其中P<sub>k</sub>(u)为p次B样条的第k段曲线,p是样条基函数的次数,n是基函数的序列号,u是变化参数,N<sub>n,p</sub>(u)是相应的基函数,P<sub>k+n</sub>是第k+n个控制点,它的全体(m+1段)称为n次B样条曲线,如果参数u取0,随着控制点的变化可得到一组样条曲线上的点即边界通过点,如果已知这些边界通过点便可以根据这些通过点反算出控制点,第一步已经得到加工轨迹的位置点信息即边界通过点,进而根据位置点信息利用公式3反算控制点;第三步,利用均匀B样条均参数理论对路径轨迹的插补种类进行自动识别:根据样条均参数理论,u值均匀变化,求出每个插补点的一阶导数与二阶导数,计算每个插补点处的曲率,计算公式如下:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>K</mi><mo>=</mo><mfrac><mrow><msup><mi>x</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><msup><mi>y</mi><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>-</mo><msup><mi>x</mi><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><msup><mi>y</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow></mrow><msqrt><msup><mrow><mo>(</mo><msup><mi>x</mi><mo>&prime;</mo></msup><msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mo>&prime;</mo></msup><msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><mn>3</mn></msup></msqrt></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000533612290000021.GIF" wi="1243" he="247" /></maths>其中x'(u)表示用B样条方法表示的x值关于u值的一阶导数,其中y'(u)表示用B样条方法表示的y值关于u值的一阶导数;x''(u)表示用B样条方法表示的x值关于u值的二阶导数,其中y''(u)表示用B样条方法表示的y值关于u值的二阶导数;根据曲率的变化,对加工轨迹类型进行自动识别,当某段曲率为零或者接近零时,记录此段的始末u值,对此段进行直线插补;当某段曲率相同或者曲率之间的差额小到一定值时,可认为此段是圆弧,记录此段的始末u值,对此段进行圆弧插补;当某段曲率变化没有规律时,可认为是自由型曲线,记录始末u值,对此段进行样条插补;第四步,对于样条插补段进行前瞻预判分段:根据控制点、采样周期、弓高误差限制要求,利用均参数B样条理论生成插补曲线,求出速度限制曲线。弓高误差限制下的速度计算公式:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>v</mi><mo>=</mo><mfrac><mrow><mn>2</mn><msqrt><mi>e</mi><mrow><mo>(</mo><mn>2</mn><mo>-</mo><mfrac><msup><mrow><mo>(</mo><msup><mi>x</mi><mo>&prime;</mo></msup><msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mo>&prime;</mo></msup><msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><mn>3</mn></msup><msqrt><msup><mi>x</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><msup><mi>y</mi><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>-</mo><msup><mi>x</mi><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><msup><mi>y</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow></msqrt></mfrac><mo>-</mo><mi>e</mi><mo>)</mo></mrow></msqrt></mrow><mi>Ts</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000533612290000022.GIF" wi="1562" he="295" /></maths>其中x'(u)表示用B样条方法表示的x值关于u值的一阶导数,其中y'(u)表示用B样条方法表示的y值关于u值的一阶导数;x''(u)表示用B样条方法表示的x值关于u值的二阶导数,其中y''(u)表示用B样条方法表示的y值关于u值的二阶导数,Ts是采样周期,e是弓高误差;通过上面的公式,可以建立每个坐标位置下的速度限制曲线;在路径规划时,加工速度有可能会出现二种情况,一种是满足给定的最大限制速度要求,但是无法满足根据弓高误差求出的速度限制要求;另外一种情况是满足根据弓高误差求出的速度限制要求,却无法满足给定的最大限制速度要求,所以为了保证加工精度,需要对根据弓高误差求出的速度限制值与给定的最大限制速度进行判断,取二者的较小值,构成新的速度限制曲线,以保证加工过程中对加工精度要求;根据求出的速度限制曲线,得到样条插补段的速度极小值,以及对应的u值;根据速度极小值记录的u值,可得到u值对应的位置,进而根据速度极小值对应的位置信息对样条插补段进行分段,每段路径进行实际规划时,最大限制速度要取速度限制曲线上对应的极大值进行规划,速根据上述公式5,求出速度极值,具体的计算公式为:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>v</mi><mi>m</mi></msub><mo>=</mo><mfrac><mrow><mn>2</mn><msqrt><mi>e</mi><mrow><mo>(</mo><mn>2</mn><mo>-</mo><mfrac><msup><mrow><mo>(</mo><msup><mi>x</mi><mo>,</mo></msup><msup><mrow><mo>(</mo><msub><mi>u</mi><mn>1</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mo>,</mo></msup><msup><mrow><mo>(</mo><msub><mi>u</mi><mn>1</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><mn>3</mn></msup><msqrt><msup><mi>x</mi><mo>,</mo></msup><mrow><mo>(</mo><msub><mi>u</mi><mn>1</mn></msub><mo>)</mo></mrow><msup><mi>y</mi><mrow><mo>,</mo><mo>,</mo></mrow></msup><mrow><mo>(</mo><msub><mi>u</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>-</mo><msup><mi>x</mi><mrow><mo>,</mo><mo>,</mo></mrow></msup><mrow><mo>(</mo><msub><mi>u</mi><mn>1</mn></msub><mo>)</mo></mrow><msup><mi>y</mi><mo>,</mo></msup><mrow><mo>(</mo><msub><mi>u</mi><mn>1</mn></msub><mo>)</mo></mrow></msqrt></mfrac><mo>-</mo><mi>e</mi><mo>)</mo></mrow></msqrt></mrow><mi>Ts</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000533612290000031.GIF" wi="1484" he="299" /></maths>其中u<sub>l</sub>是速度极值点对应的u值,x'(u)表示用B样条方法表示的x值关于u值的一阶导数,其中y'(u)表示用B样条方法表示的y值关于u值的一阶导数。x''(u)表示用B样条方法表示的x值关于u值的二阶导数,其中y''(u)表示用B样条方法表示的y值关于u值的二阶导数,Ts是采样周期,e是弓高误差;为了避免机床的在每段路径上反复启停,每段速度变化都是从一个极小值到另一个极小值,最后对每段利用S型路径规划理论求出时间点,再利用B样条非均匀理论进行样条插补计算;第五步,对圆弧插补段特征值进行计算,对圆弧进行插补,需要知道圆弧段的圆心、半径、始末点等信息;通过圆弧段记录的始末u值u<sub>0</sub>、u<sub>1</sub>,可以得到圆弧始末点p<sub>0</sub>、p<sub>1</sub>,计算公式如下:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mfenced open='' close=''><mtable><mtr><mtd><msub><mi>p</mi><mn>0</mn></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow><mi>p</mi></munderover><msub><mi>P</mi><mrow><mi>k</mi><mo>+</mo><mi>n</mi></mrow></msub><msub><mi>N</mi><mrow><mi>n</mi><mo>,</mo><mi>p</mi></mrow></msub><mrow><mo>(</mo><msub><mi>u</mi><mn>0</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>p</mi><mn>1</mn></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow><mi>p</mi></munderover><msub><mi>P</mi><mrow><mi>k</mi><mo>+</mo><mi>n</mi></mrow></msub><msub><mi>N</mi><mrow><mi>n</mi><mo>,</mo><mi>p</mi></mrow></msub><mo>(</mo><msub><mi>u</mi><mn>1</mn></msub><mo>)</mo></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000533612290000041.GIF" wi="1485" he="331" /></maths>其中p是样条基函数的次数,n是基函数的序列号,N<sub>n,p</sub>(u)是相应的基函数,P<sub>k+n</sub>是第k+n个控制点,圆弧半径是此段曲率的倒数,圆弧圆心的计算公式为:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><mi>d</mi><mo>=</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>-</mo><msub><mi>x</mi><mn>1</mn></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mn>0</mn></msub><mo>-</mo><msub><mi>y</mi><mn>1</mn></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mtd></mtr><mtr><mtd><mi>R</mi><mo>=</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>o</mi><mi>x</mi></msub><mo>-</mo><mfrac><mrow><msub><mi>x</mi><mn>0</mn></msub><mo>+</mo><msub><mi>x</mi><mn>1</mn></msub></mrow><mn>2</mn></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>o</mi><mi>y</mi></msub><mo>-</mo><mfrac><mrow><msub><mi>y</mi><mn>0</mn></msub><mo>+</mo><msub><mi>y</mi><mn>1</mn></msub></mrow><mn>2</mn></mfrac><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>+</mo><mfrac><msup><mi>d</mi><mn>2</mn></msup><mn>4</mn></mfrac></mtd></mtr><mtr><mtd><mi>R</mi><mo>=</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>-</mo><msub><mi>o</mi><mi>x</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mn>0</mn></msub><mo>-</mo><msub><mi>o</mi><mi>y</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000533612290000042.GIF" wi="1646" he="387" /></maths>其中(x<sub>0</sub>,y<sub>0</sub>)是圆弧起始点p<sub>0</sub>的横纵坐标,(x<sub>1</sub>,y<sub>1</sub>)是圆弧末尾点p<sub>1</sub>的横纵坐标,d是圆弧起始点之间的弦长,(o<sub>x</sub>,o<sub>y</sub>)是圆弧圆心的横纵坐标,(o<sub>x</sub>,o<sub>y</sub>)是未知量可以通过上述方程组求解得到。知道圆心、半径、圆弧始末点即可进行圆弧插补;第六步,对直线段特征值进行计算:直线段由于没有弓高误差的限制,所以插补起来较为简单;通过直线段记录的始末u值,计算出直线段首末点,进而求出两点之间的距离S,进行直线插补计算。
地址 310018 浙江省杭州市江干区下沙高教园区2号路