发明名称 一种高精度快速空间圆弧插补方法
摘要 一种高精度快速空间圆弧插补方法,该方法有六大步骤:步骤1,定义空间圆弧插补代码格式;步骤2,译码获取空间圆弧插补数据信息;步骤3,计算圆弧插补半径、圆心角、弧长以及插补弓高误差约束下的最大进给速度修正值;步骤4,计算插补参数增量;步骤5,计算插补点;步骤6,插补终点判断。该插补方法能根据给定的圆弧起点、终点以及圆弧平面法矢完成任意空间平面内的圆弧插补。
申请公布号 CN104155916B 申请公布日期 2016.12.07
申请号 CN201410339127.6 申请日期 2014.07.16
申请人 北京航空航天大学 发明人 刘强;刘焕;周胜凯;李传军
分类号 G05B19/4103(2006.01)I 主分类号 G05B19/4103(2006.01)I
代理机构 北京慧泉知识产权代理有限公司 11232 代理人 王顺荣;唐爱华
主权项 一种高精度快速空间圆弧插补方法,其特征在于:该方法具体步骤如下:步骤1,定义空间圆弧插补代码格式:定义空间圆弧插补代码格式为:G02.1X(U)_Y(V)_Z(W)_I_J_K_NX_NY_NZ_FX,Y,Z为圆弧终点绝对坐标,U,V,W为相对于起点的圆弧终点相对坐标;I,J,K为相对于起点的圆弧圆心相对坐标;NX,NY,NZ为圆弧平面的法矢,并规定绕法矢逆时针方向插补圆弧;F为插补进给速度;步骤2,译码获取空间圆弧插补数据信息:令圆弧插补的起点为(x<sub>s</sub>,y<sub>s</sub>,z<sub>s</sub>),即前一段代码插补的终点,为已知;若读取的圆弧插补代码为:G02.1 Xx<sub>e</sub> Yy<sub>e</sub> Zz<sub>e</sub> Ii<sub>c</sub> Jj<sub>c</sub> Kk<sub>c</sub> NXn<sub>x</sub> NYn<sub>y</sub> NZn<sub>z</sub> Ff,则圆弧插补的终点为(x<sub>e</sub>,y<sub>e</sub>,z<sub>e</sub>),圆心为(x<sub>c</sub>,y<sub>c</sub>,z<sub>c</sub>)=(x<sub>s</sub>+i<sub>c</sub>,y<sub>s</sub>+j<sub>c</sub>,z<sub>s</sub>+k<sub>c</sub>),圆弧平面法矢为(n<sub>x</sub>,n<sub>y</sub>,n<sub>z</sub>),最大进给速度为f;步骤3,计算圆弧插补半径、圆心角、弧长以及插补弓高误差约束下的最大进给速度修正值:圆弧插补半径:<img file="FDA0000972613360000011.GIF" wi="804" he="79" />圆弧插补圆心角:计算起点向量为V<sub>s</sub>=(x<sub>s</sub>‑x<sub>c</sub>,y<sub>s</sub>‑y<sub>c</sub>,z<sub>s</sub>‑z<sub>c</sub>),终点向量为V<sub>e</sub>=(x<sub>e</sub>‑x<sub>c</sub>,y<sub>e</sub>‑y<sub>c</sub>,z<sub>e</sub>‑z<sub>c</sub>),圆弧平面法矢为N=(n<sub>x</sub>,n<sub>y</sub>,n<sub>z</sub>),计算起点向量、终点向量与圆弧平面法矢的混合积为(V<sub>s</sub>,V<sub>e</sub>,N)=(V<sub>s</sub>×V<sub>e</sub>)·N,若(V<sub>s</sub>,V<sub>e</sub>,N)>0,则圆弧插补圆心角<img file="FDA0000972613360000012.GIF" wi="398" he="135" />若(V<sub>s</sub>,V<sub>e</sub>,N)≤0,则圆弧插补圆心<img file="FDA0000972613360000013.GIF" wi="507" he="134" />圆弧插补弧长:L=Rθ;最大进给速度修正值:若规定的最大插补弓高误差为δ,插补周期为T<sub>c</sub>,则最大进给速度修正为<img file="FDA0000972613360000021.GIF" wi="651" he="151" />步骤4,计算插补参数增量:根据圆弧弧长与最大进给速度,进行进给速度规划后的第i个插补周期的进给速度为V<sub>i</sub>,加速度为A<sub>i</sub>,加加速度为J<sub>i</sub>,则插补步长为<img file="FDA0000972613360000022.GIF" wi="550" he="119" />插补参数增量计算为<img file="FDA0000972613360000023.GIF" wi="396" he="143" />其中||N||为圆弧平面法矢的三维欧几里德模长;步骤5,计算插补点:令当前插补点为(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>),下一个插补点为(x<sub>i+1</sub>,y<sub>i+1</sub>,z<sub>i+1</sub>),按如下计算:<maths num="0001"><math><![CDATA[<mfenced open = "" close = ""><mtable><mtr><mtd><mrow><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><mo>(</mo><mn>2</mn><mi>h</mi><mrow><mo>(</mo><mrow><msub><mi>n</mi><mi>z</mi></msub><msub><mi>y</mi><mi>c</mi></msub><mo>-</mo><msub><mi>n</mi><mi>z</mi></msub><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>n</mi><mi>y</mi></msub><msub><mi>z</mi><mi>c</mi></msub><mo>+</mo><msub><mi>n</mi><mi>y</mi></msub><msub><mi>z</mi><mi>i</mi></msub><mo>+</mo><msubsup><mi>hn</mi><mi>y</mi><mn>2</mn></msubsup><msub><mi>x</mi><mi>c</mi></msub><mo>+</mo><msubsup><mi>hn</mi><mi>z</mi><mn>2</mn></msubsup><msub><mi>x</mi><mi>c</mi></msub><mo>-</mo><msubsup><mi>hn</mi><mi>y</mi><mn>2</mn></msubsup><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msubsup><mi>hn</mi><mi>z</mi><mn>2</mn></msubsup><msub><mi>x</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>2</mn><msub><mi>hn</mi><mi>x</mi></msub><mo>(</mo><mrow><msub><mi>hn</mi><mi>y</mi></msub><msub><mi>y</mi><mi>c</mi></msub><mo>-</mo><msub><mi>hn</mi><mi>y</mi></msub><msub><mi>y</mi><mi>i</mi></msub><mo>+</mo><msub><mi>hn</mi><mi>z</mi></msub><msub><mi>z</mi><mi>c</mi></msub><mo>-</mo><msub><mi>hn</mi><mi>z</mi></msub><msub><mi>z</mi><mi>i</mi></msub></mrow><mo>)</mo><mo>)</mo><mo>/</mo><mrow><mo>(</mo><msup><mi>h</mi><mn>2</mn></msup><msubsup><mi>n</mi><mi>x</mi><mn>2</mn></msubsup><mo>+</mo><msup><mi>h</mi><mn>2</mn></msup><msubsup><mi>n</mi><mi>y</mi><mn>2</mn></msubsup><mo>+</mo><msup><mi>h</mi><mn>2</mn></msup><msubsup><mi>n</mi><mi>z</mi><mn>2</mn></msubsup><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000972613360000024.GIF" wi="1405" he="159" /></maths><maths num="0002"><math><![CDATA[<mfenced open = "" close = ""><mtable><mtr><mtd><mrow><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><mo>(</mo><mn>2</mn><mi>h</mi><mrow><mo>(</mo><mrow><msub><mi>n</mi><mi>z</mi></msub><msub><mi>x</mi><mi>c</mi></msub><mo>-</mo><msub><mi>n</mi><mi>z</mi></msub><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>n</mi><mi>x</mi></msub><msub><mi>z</mi><mi>c</mi></msub><mo>+</mo><msub><mi>n</mi><mi>x</mi></msub><msub><mi>z</mi><mi>i</mi></msub><mo>-</mo><msubsup><mi>hn</mi><mi>x</mi><mn>2</mn></msubsup><msub><mi>y</mi><mi>c</mi></msub><mo>-</mo><msubsup><mi>hn</mi><mi>z</mi><mn>2</mn></msubsup><msub><mi>y</mi><mi>c</mi></msub><mo>+</mo><msubsup><mi>hn</mi><mi>x</mi><mn>2</mn></msubsup><msub><mi>y</mi><mi>i</mi></msub><mo>+</mo><msubsup><mi>hn</mi><mi>z</mi><mn>2</mn></msubsup><msub><mi>y</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>+</mo><mn>2</mn><msub><mi>hn</mi><mi>y</mi></msub><mo>(</mo><mrow><msub><mi>hn</mi><mi>x</mi></msub><msub><mi>x</mi><mi>c</mi></msub><mo>-</mo><msub><mi>hn</mi><mi>x</mi></msub><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><msub><mi>hn</mi><mi>z</mi></msub><msub><mi>z</mi><mi>c</mi></msub><mo>-</mo><msub><mi>hn</mi><mi>z</mi></msub><msub><mi>z</mi><mi>i</mi></msub></mrow><mo>)</mo><mo>)</mo><mo>/</mo><mrow><mo>(</mo><msup><mi>h</mi><mn>2</mn></msup><msubsup><mi>n</mi><mi>x</mi><mn>2</mn></msubsup><mo>+</mo><msup><mi>h</mi><mn>2</mn></msup><msubsup><mi>n</mi><mi>y</mi><mn>2</mn></msubsup><mo>+</mo><msup><mi>h</mi><mn>2</mn></msup><msubsup><mi>n</mi><mi>z</mi><mn>2</mn></msubsup><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000972613360000025.GIF" wi="1406" he="151" /></maths><maths num="0003"><math><![CDATA[<mfenced open = "" close = ""><mtable><mtr><mtd><mrow><msub><mi>z</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>z</mi><mi>i</mi></msub><mo>+</mo><mo>(</mo><mn>2</mn><mi>h</mi><mo>(</mo><msub><mi>n</mi><mi>y</mi></msub><msub><mi>x</mi><mi>c</mi></msub><mo>-</mo><msub><mi>n</mi><mi>y</mi></msub><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>n</mi><mi>x</mi></msub><msub><mi>y</mi><mi>c</mi></msub><mo>+</mo><msub><mi>n</mi><mi>x</mi></msub><msub><mi>y</mi><mi>i</mi></msub><mo>+</mo><msubsup><mi>hn</mi><mi>x</mi><mn>2</mn></msubsup><msub><mi>z</mi><mi>c</mi></msub><mo>+</mo><msubsup><mi>hn</mi><mi>y</mi><mn>2</mn></msubsup><msub><mi>z</mi><mi>c</mi></msub><mo>-</mo><msubsup><mi>hn</mi><mi>x</mi><mn>2</mn></msubsup><msub><mi>z</mi><mi>i</mi></msub><mo>-</mo><msubsup><mi>hn</mi><mi>y</mi><mn>2</mn></msubsup><msub><mi>z</mi><mi>i</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><msub><mi>hn</mi><mi>x</mi></msub><msub><mi>n</mi><mi>z</mi></msub><msub><mi>x</mi><mi>c</mi></msub><mo>+</mo><msub><mi>hn</mi><mi>x</mi></msub><msub><mi>n</mi><mi>z</mi></msub><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>hn</mi><mi>y</mi></msub><msub><mi>n</mi><mi>z</mi></msub><msub><mi>y</mi><mi>c</mi></msub><mo>+</mo><msub><mi>hn</mi><mi>y</mi></msub><msub><mi>n</mi><mi>z</mi></msub><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo><mo>)</mo><mo>/</mo><mrow><mo>(</mo><msup><mi>h</mi><mn>2</mn></msup><msubsup><mi>n</mi><mi>x</mi><mn>2</mn></msubsup><mo>+</mo><msup><mi>h</mi><mn>2</mn></msup><msubsup><mi>n</mi><mi>y</mi><mn>2</mn></msubsup><mo>+</mo><msup><mi>h</mi><mn>2</mn></msup><msubsup><mi>n</mi><mi>z</mi><mn>2</mn></msubsup><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000972613360000026.GIF" wi="1382" he="163" /></maths>计算得到的(x<sub>i+1</sub>,y<sub>i+1</sub>,z<sub>i+1</sub>)即为插补点,通过伺服位置控制完成空间圆弧插补;步骤6,插补终点判断:更新剩余插补长度为L=L‑L<sub>i</sub>,若L>0,则返回步骤4继续插补;否则,插补结束。
地址 100191 北京市海淀区学院路37号