(57)【要約】この出願に係る国際出願には要約書の提出がありません。【特許請求の範囲】
【請求項１】
動体の経路データを調整する方法が、
第１の点、第２の点、第３の点および第４の点を含む経路データの４つの連続する点を識別する工程（２１０２）と、
該第２の点が平滑化に適しているかを決める工程（２１０４）とを備えている、
該第２の点が平滑化に適している場合、
該第１の点、該第２の点および該第４の点で規定される第１の円弧を位置付ける（２１０６）、
該第１の点、該第３の点および該第４の点で規定される第２の円弧を位置付ける（２１０８）、
該第２の点を、該第１の円弧と該第２の円弧との間の領域に動かし（２１１０）、
該第２の点に関連する線の動きを、該第２の点に関連する少なくとも１つの円弧の動きで置き換える（２１１２）、
ことを特徴とする方法。
【請求項２】
少なくとも１つの円弧の動きが、前の動きおよび続く動きに接している、ことを特徴とする請求項１記載の方法。
【請求項３】
前記少なくとも１つの円弧の動きが、２つの円弧の動きから成り、該２つの円弧の動きが互いに接している、ことを特徴とする請求項１記載の方法。
【請求項４】
請求項１記載の方法が、前記第３の点を、前記第１の円弧および前記第２の円弧との間の領域に動かす工程を備えている、ことを特徴とする方法。
【請求項５】
前記線の動きおよび前記少なくとも１つの円弧の動きが、第３の点にも関連している、ことを特徴とする請求項１記載の方法。
【請求項６】
請求項１記載の方法が、
前記第４の点に続く第５の連続する点を識別する工程と、
前記第３の点が平滑化に適しているかを決める工程とを備えている、
前記第３の点が平滑化に適している場合、
前記第２の点、前記第３の点および該第５の点で規定される第３の円弧を位置付け、
前記第２の点、前記第４の点および該第５の点で規定される第４の円弧を位置付け、
前記第３の点を、該第３の円弧および該第４の円弧との間の領域に動かし、
前記第３の点に関連する線の動きを、前記第３の動きに関連する少なくとも１つの円弧の動きで置き換える、
ことを特徴とする方法。
【請求項７】
動体の経路データを調整する方法が、
該経路データの３つの連続する点を識別する工程（１８０２）と、
少なくとも次の距離の１つを確認する工程（１８０４）と、
該３つの点で規定される円弧と、該３つの点の第１および第２の点との間に延びる第１の線の中間部分との間の第１の距離、および、該円弧と、該３つの点の該第２および第３の点の間に延びる第２の線の中間部分との間の第２の距離である、
該第１の線および該第２の線の間の折り返し角度を決める工程と、
該第１の距離および該第２の距離の少なくとも１つが、閾値距離よりも小さく、該折り返し角度が、閾値角度よりも大きい場合、第２の点で平滑化を実行する工程を備えている、
ことを特徴とする方法。
【請求項８】
前記第１の点から前記第２の点への第１の動きが、第１の線の動きから成り、前記第２の点から前記第３の点への第２の動きが、第２の線の動きから成る場合、平滑化を前記第２の点で行なう、ことを特徴とする請求項７記載の方法。
【請求項９】
前記平滑化を実行する工程が、前記第１の線の動きおよび前記第２の線の動きの少なくとも１つを、少なくとも１つの円弧の動きで置き換える工程を備えている、ことを特徴とする請求項８記載の方法。
【請求項１０】
前記閾値の線の距離が、略０．０００２〜０．００１インチの間にある、ことを特徴とする請求項７記載の方法。
【請求項１１】
前記閾値の角度が、略１３０〜１６０度の間にある、ことを特徴とする請求項７記載の方法。
【請求項１２】
前記第１の距離が、前記円形の円弧と前記第１の線の中間点との間で、前記第２の距離が、前記円形の円弧と前記第２の線の中間点の間である、ことを特徴とする請求項７記載の方法。
【請求項１３】
前記第１の距離および前記無第２の距離の各々が、閾値の距離よりも小さい場合に、前記第２の点の平滑化を実行する、ことを特徴とする請求項１２記載の方法。
【請求項１４】
動体の経路データを調整する方法が、
第１の点、第２の点、第３の点および第４の点を含む経路データの４つの連続する点を識別する工程（１９０２）と、
該第１の点、該第２の点および第４の点で規定される第１の円弧を位置付ける工程（１９０４）と、
該第１の点、該第３の点および第４の点で規定される第２の円弧を位置付ける工程と１９０６）と、
該第２の点を、該第１の円弧および該第２の円弧との間の領域に動かす工程（１９０８）とを備えている、
ことを特徴とする方法。
【請求項１５】
前記第２の点を、前記第２の円弧上の最も近い点に向かう方向に動かす、ことを特徴とする請求項１４記載の方法。
【請求項１６】
請求項１４記載の方法が、前記第３の点を、前記第１の円弧および前記第２の円弧との間の領域に動かす工程を備えている、ことを特徴とする方法。
【請求項１７】
請求項１６記載の方法が、前記第１の点、前記第２の点および前記第３の点が平滑化に適しているかを決める工程を備えている、ことを特徴とする方法。
【請求項１８】
前記第１の点、前記第２の点および前記第３の点の各々が、平滑化に適している場合、前記第２の点を、前記第２の点と前記第２の円弧との間の距離の４５％より少なく動かし、
前記第２の点が平滑化に適し、前記第１の点および前記第３の点のいずれか１つが平滑化に適し、他方が平滑化に適さない場合、前記第２の点を、前記第２の点と前記第２の円弧との間の距離の略４５％〜５５％だけ動かし、
前記第２の点が平滑化に適し、前記第１の点および第３の点の何れも平滑化に適さない場合、前記第２の点を動かさない、ことを特徴とする請求項１７記載の方法。
【請求項１９】
請求項１８記載の方法が、
前記第４の点に続く第５の連続する点を識別する工程と、
前記第２の点、前記第３の点および該第５の点で規定される第３の円弧を位置づける工程と、
前記第２の点、前記第４の点および該第５の点で規定される第４の円弧を位置づける工程と、
前記第３の点および前記第４の点を、該第３の円弧および該第４の円弧との間の領域に動かす工程とを備えている、
ことを特徴とする方法。
【請求項２０】
前記第２の点を、前記第２の円弧上の最も近い点に向けた方向に動かし、前記第３の点を、前記第３の円弧上の最も近い点に向けた方向に動かす、ことを特徴とする請求項１６記載の方法。
【請求項２１】
動体の経路データを調整する方法が、
該経路データの第１の点から第２の点に延びる線の動きを識別する工程（２００２）と、
該線の動きを、第１の円弧の動きおよび第２の円弧の動きで置き換える工程（２００４）とを備えている、
該第１の円弧の動きは、該第１の点で始まりそして交点で終了する、該第２の円弧の動きは、該交点で始まりそして該第２の点で終了する、
ことを特徴とする方法。
【請求項２２】
前記第１の円弧の動きが、前記第１の点で先行する動きに接する、ことを特徴とする請求項２１記載の方法。
【請求項２３】
前記第１の円弧の動きが、前記交点で前記第２の円弧に接している、ことを特徴とする請求項２１記載の方法。
【請求項２４】
前記第２の円弧の動きが、前記第２の点で次の動きに接している、ことを特徴とする請求項２１記載の方法。
【請求項２５】
前記第１の円弧が第１の半径を有し、前記第２の円弧が該第１の半径と異なる第２の半径を有する、ことを特徴とする請求項２１記載の方法。
【請求項２６】
動体の経路データを処理する方法が、
目標経路に沿う複数の点を識別する工程（２２０２）と、
該複数の点の最後の点での該動体の最大可能な停止距離を決める工程（２２０４）と、
該最後の点での該動体の最後の最大可能な速度を確定する工程（２２０６）と、
該動体は、該最大可能な停止距離内で停止する、
該複数点の他の１つでの該動体の他の最大可能な速度を確立する工程（２２０８）とを備えている、
該動体は、該最後の点に達すると、該最後の最大可能な速度に減速できる、
ことを特徴とする方法。
【請求項２７】
請求項２６記載の方法が、
前記目標経路からの実際経路の最大可能な偏移レベルを確立する工程と、
前記他の点での前記動体の最大可能な許容差速度を決める工程と、
該最大可能な許容差速度は、該偏移の最大可能な許容差レベルに依存する、
より少ない速度が、該最大可能な許容差速度および前記他の点の前記他の最大可能な速度の少ないほうに等しい速度を識別する工程とを備えている、
ことを特徴とする方法。
【請求項２８】
請求項２７記載の方法が、前記他の点に先立つ点の前記動体の先立つ最大可能な速度を確立する工程を備えている、
前記動体は、前記他の点に達すると、少ない方の速度に減速できる、
ことを特徴とする方法。
【請求項２９】
請求項２８記載の方法が、
前記先立つ点で、前記偏移の最大可能なレベルに依存する前記動体の最大可能な許容差速度を決める工程と、
前記先立つ点での前記動体の最大可能な許容差速度および前記先立つ点での前記先立つ最大可能な速度の少ない方を識別する工程とを備えている、
ことを特徴とする方法。
【請求項３０】
前記最後の点での前記最大可能な停止距離が、前記最後の点および次の点との間の部分の長さに対応し、該次の点が、前記最後の点に隣接および下流にある、ことを特徴とする請求項２５記載の方法。
【請求項３１】
前記次の点が、前記目標経路の最後および角の点の１つから成る、ことを特徴とする請求項３０記載の方法。
【請求項３２】
最後の最大可能な速度を確認する工程が、Ｓ曲線を使用し、前記最大可能な停止距離を前記最後の最大可能な速度に関連させる、ことを特徴とする請求項２６記載の方法。
【請求項３３】
動体の経路データを処理する方法が、
目標経路に沿う複数の点を識別する工程（２３０２）と、
該目標経路からの実際経路の最大可能な偏移レベルを確立する工程（２３０４）と、
該目標経路に沿う複数位置の目標経路の曲率を確認する工程（２３０６）と、
該目標経路に沿う該複数点の各々で、該動体の最大可能な許容差速度を決める工程（２３０８）と、
該最大可能な許容差速度は、該最大可能な偏移レベルおよび曲率に依存する、
該複数点の最後での該動体の最大可能な停止距離を決める工程（２３１０）と、
該複数点の最後での該動体の最後の最大可能な停止速度を確認する工程（２３１２）と、
該動体は、該最大可能な停止距離内で停止する、
該最後の点以外の該複数点の各々で、該動体の他の最大可能な停止速度を確立する工程（２３１４）と、
該動体は、該最後の点に達すると、該最後の最大可能な速度に減速できる、
該複数点の各々で、該最大可能な許容差速度および該最大可能な停止速度の少ない方を識別する工程（２３１６）とを備えている、
ことを特徴とする方法。
【請求項３４】
前記最後の点の前記最大可能な停止距離が、前記最後の点と次の点との間の部分の長さに対応し、該次の点が、前記最後の点に隣接および下流にある、ことを特徴とする請求項３３記載の方法。
【請求項３５】
前記次の点が、前記目標経路の最後および角の点の１つから成る、ことを特徴とする請求項３４記載の方法。
【請求項３６】
前記最後の最大可能な停止速度を確認する工程が、Ｓ曲線を使用し、前記最大可能な停止距離を該最大可能な停止速度に関連させる、ことを特徴とする請求項３３記載の方法。
【請求項３７】
他の最大可能な停止速度を確立する工程が、Ｓ曲線を使用し、前記他の点と前記最後の点との間の部分の長さを、該他の最大可能な停止速度に関連させる、ことを特徴とする請求項３３記載の方法。
【請求項３８】
他の最大可能な停止速度を確立する工程が、前記他の各点での各停止距離が、前記点の最後で、前記他の点の間での各部分長さと最後の点の前記最大可能な停止距離との和より小さいか等しいかを確実にする、ことを特徴とする請求項３３記載の方法。
【請求項３９】
請求項３３記載の方法が、前記動体を、前記点の各々で、前記最大可能な許容差速度および前記最大可能な停止速度の小さい方で動かす工程を備えている、ことを特徴とする方法。
【請求項４０】
動体の経路データを処理する方法が、
目標経路に沿う複数の点を識別する工程（２４０２）と、
該複数点から選択する各２つの点は、各々の線分で離れている、
該複数点の最後での該動体の最大可能な停止距離を決める工程（２４０４）と、
前記複数点の他の１つでの該動体の最大可能な速度を確認する工程（２４０６）とを備えている、
該他の点での該動体の必要とする停止距離が、該最後の点での該最大可能な停止距離と、該他の点と該最後の点との間の部分長さとの和に等しいか又はより小さい、
ことを特徴とする方法。
【請求項４１】
請求項４０記載の方法が、
前記目標経路からの実際経路の最大可能な偏移レベルを確立する工程と、
前記最後の点で、前記動体の最大可能の許容差速度を決める工程と、
該最大可能な許容速度は、該偏移の最大可能なレベルに依存する、
該他の点で、該最大可能な許容差速度および該最大可能な速度の小さい方に等しい速度を識別する工程とを備えている、
ことを特徴とする方法。
【請求項４２】
請求項４１記載の方法が、前記他の点に先立つ点での前記動体の先立つ最大可能な速度を確立する工程を備えている、
該先立つ点での前記動体の必要とする停止距離が、前記最後の点の前記最大可能な停止距離と、該先立つ点と前記最後の点との間の部分の長さと、の和に等しいか又はより小さい、
ことを特徴とする方法。
【請求項４３】
請求項４２記載の方法が、
前記偏移の最大可能なレベルに依存する前記先立つ点の前記動体の最大可能な許容差速度を決定する工程と、
前記先立つ点の前記動体の最大可能な許容差速度と前記先立つ点の前記先立つ最大可能な速度の小さい方を識別する工程とを備えている、
ことを特徴とする方法。
【請求項４４】
請求項４１記載の方法が、
前記目標経路に沿う複数の位置での前記目標経路の曲率を確認する工程を備えている    、前記他の点の前記動体の前記最大可能な許容差速度は、曲率に依存する、
ことを特徴とする方法。
【請求項４５】
前記最後の点の前記最大可能な停止距離が、前記最後の点と次の点との間の部分の長さに対応し、該次の点が、前記最後の点に隣接および下流にある、ことを特徴とする請求項４０記載の方法。
【請求項４６】
前記次の点が、前期目標経路の終点および角の点の１つから成る、ことを特徴とする請求項４５記載の方法。
【請求項４７】
前記他の点の最大可能な速度を確認する工程が、Ｓ曲線を使用して、前記他の点の前記必要な停止距離を前記他の点の前記最大可能な速度に関連させる、ことを特徴とする請求項４０記載の方法。
【請求項４８】
動体を操作する方法が、
目標経路を識別する工程（２５０２）と、
該動体に初期位置から該目標経路に追跡する命令を出す工程（２５０４）と、
該命令を出す工程後、該動体の第１の実際の位置を感知する工程（２５０６）と、
該動体の動きでの予測誤差の修正に、該第１の実際の位置から第１の目標副経路を計算する工程（２５０８）とを備えている、
ことを特徴とする方法。
【請求項４９】
請求項４８記載の方法が、前記動体の動きの前記予測誤差を経験的に決定する工程を備え、該経験的に決定する工程が、前記識別する工程の前に起きる、ことを特徴とする方法。
【請求項５０】
前記目標副経路を計算し、前記初期位置から前記実際位置への前記動体の動きの確率的誤差を補償する、ことを特徴とする請求項４８記載の方法。
【請求項５１】
前記計算の工程が、前記動体の前記目標経路からの前記第１の実際位置の偏移に依存する、ことを特徴とする請求項４８記載の方法。
【請求項５２】
請求項４８記載の方法が、
前記動体を前記第１の目標副経路に追跡させる命令を行う工程と、
該命令の工程後、前記動体の第２の実際位置を感知する工程と、
前記動体の動きでの誤差の修正に第２の目標副経路を計算する工程とを備えている、ことを特徴とする方法。
【請求項５３】
請求項４８記載の方法が、所望の時間周期内および所望の最終速度で、前記第１の目標副経路を完了するために必要な加速度を決める工程を備えている、ことを特徴とする方法。
【請求項５４】
請求項４８記載の方法が、前記第１の目標副経路に沿う所望の加速レベルを計算する工程を備えている、ことを特徴とする方法。
【請求項５５】
前記計算の工程が、円弧の動きの求心力の補償、接線加速度の補償、貼り付き摩擦補償、親ねじおよび歯面の遊びの補償、スピンドルの柔らかさの補償、および、システムの遅延補償の少なくとも１つを含んでいる、ことを特徴とする請求項４８記載の方法。
【請求項５６】
前記動体が、前記計算工程中で、前記第１の実際の位置を通過し続ける、ことを特徴とする請求項４８記載の方法。
【請求項５７】
動体を操作する方法が、
該動体の動きの予測的誤差を経験的に決める工程（２６０２）と、
該動体の実際の動きを監視する工程（２６０４）と、
該動体の実際の動きを、該経験的に決めた予測的誤差および該動体の実際の動きでの確率的誤差に依存して制御する工程（２６０６）とを備えている、
ことを特徴とする方法。
【請求項５８】
請求項５７記載の方法が、工作機械に初期位置から目標経路を追跡させる命令を出す工程を備えている、
前記監視する工程が、該命令の工程の後で、前記動体の第１の実際の位置を感知する、
前記制御する工程が、該第１の実際の位置から第１の目標副経路を計算し、前記動体の動きの前記予測的誤差および確率的誤差を修正する、
ことを特徴とする方法。
【請求項５９】
前記第１の目標副経路の前記計算が、前記動体の前記目標経路から前記第１の実際の位置での偏移に依存する、ことを特徴とする請求項５８記載の方法。
【請求項６０】
請求項５８記載の方法が、
前記動体に前記第１の副経路を追跡させる指示をする工程と、
該指示をする工程後、前記動体の第２の実際位置を感知する工程と、
前記動体の動きの誤差の修正に第２の目標副経路を計算する工程とを備えている、
ことを特徴とする方法。
【請求項６１】
請求項５８記載の方法が、前記第１の目標副経路を、所望の時間周期内および所望の最終速度で完了するのに必要な加速度を決める工程を備えている、ことを特徴とする方法。
【請求項６２】
前記経験的に決める工程が、前記監視する工程および制御工程に先行する、ことを特徴とする請求項５７記載の方法。
【請求項６３】
前記制御工程が、前記予測的誤差および確率的誤差の補償を備えている、ことを特徴とする請求項５７記載の方法。
【請求項６４】
請求項５７記載の方法が、前記動体の所望の加速レベルを計算する工程を備えている、ことを特徴とする方法。
【請求項６５】
前記制御工程が、円弧動作の求心力補償、貼り付き摩擦補償、親ねじと歯面遊び補償、スピンドルの柔らかさ補償、システムの遅延補償、の少なくとも１つを備えている、ことを特徴とする請求項５７記載の方法。
【請求項６６】
複数の逐次的動きを有する動体を操作する方法が、
該動体の複数動作での第１の動作後の実際位置を感知する工程（２７０２）と、
該感知工程に基づき、該動体の目標位置を計算する工程（２７０４）と、
該目標位置を計算して、該動体の該複数動作の予測的誤差および確率的誤差を補償する、
該動体の該複数動作の他の動作に対し、感知工程および計算工程を繰り返す工程（２７０６）とを備えている、
ことを特徴とする方法。
【請求項６７】
前記予測的誤差を経験的に決める、ことを特徴とする請求項６６記載の方法。
【請求項６８】
前記予測的誤差を、前記感知工程および計算工程の前に経験的に決める、ことを特徴とする請求項６６記載の方法。
【請求項６９】
前記目標位置を計算し、前記動体の第１の動作および前記他の動作の予測的誤差を補償する、ことを特徴とする請求項６６記載の方法。
【請求項７０】
請求項６６記載の方法が、前記目標位置に、所望の時間周期内および所望の最終速度で到達するのに必要な加速度を決める工程を備えている、ことを特徴とする方法。
【請求項７１】
前記計算工程が、円弧動作の求心力補償、接線加速度補償、貼り付き摩擦補償、親ねじと歯面遊び補償、スピンドルの柔らかさ補償、システムの遅延補償、の少なくとも１つを含んでいる、ことを特徴とする請求項６６記載の方法。
【請求項７２】
前記動体が、前記計算工程中で、前記実際の位置を通過しつづける、ことを特徴とする請求項６６記載の方法。
【請求項７３】
動体を操作する方法が、
該動体の実際位置を感知する工程（２７０２）と、
該動体の実際位置と所望の位置との間の位置誤差を計算する工程（２７０４）と、
該位置誤差を規定の誤差許容差と比較する工程（２６０２．２６０４）と、
該比較工程に基づき該動体の速度を調整する工程（２６０６）とを備えている、
ことを特徴とする方法。
【請求項７４】
前記調整工程で、前記位置誤差が、前記規定の誤差許容差より小さい場合、前記動体の速度を増加し、前記位置誤差が、前記規定の誤差許容差より大きい場合、前記動体の速度を減少する、ことを特徴とする請求項７３記載の方法。
【請求項７５】
動体を操作する方法が、
複数の軸の各々に沿う該動体の実際位置を感知する工程（２７０２）と、
各軸の該動体の実際位置と多次元の基準経路との間の多次元位置誤差を計算する工程（２７０４）と、
該計算工程に基づき多次元位置誤差信号を形成する工程（２６０２，２６０４）と、
該多次元位置誤差信号に基づき、該動体の速度および方向の少なくとも１つを制御する工程（２６０６）とを備えている、
ことを特徴とする方法。
【請求項７６】
前記多次元位置誤差をベクトルとして計算する、ことを特徴とする請求項７５記載の方法。
【請求項７７】
前記制御工程が、接線誤差フィードバック制御装置および法線誤差フィードバック制御装置の使用を含んでいる、ことを特徴とする請求項７５記載の方法。
【請求項７８】
前記制御工程が、前記接線誤差フィードバック制御装置の出力よりも前記法線誤差フィードバック制御装置の出力に、より重点を与える、ことを特徴とする請求項７７記載の方法。
【請求項７９】
前記軸が、工作機械のｘ軸、ｙ軸、ｚ軸から成る、ことを特徴とする請求項７５記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動測定物の経路のナビゲーションに関し、特にコンピュータ制御の工作機械（工具）の動作制御システムに関する。
【背景技術】
【０００２】
自動化は、動作制御の発展に到った。動作制御で、作動装置に信号を送り、所望の経路に沿って関連させた動作で有用な作業を実行する。動作制御は、所定の作業を手動操作よりも速度および精度を向上させる。ロボットおよび自動化製造装置は、動作制御技術を用いる生産物の実例である。これら装置のプログラムは、所望の経路の指定で実施される。この経路は、線／円弧の集合体で、各部分に沿って所望の速度で工作機械（工具）を動かす。工作機械の速度は、多くの場合、複雑な経路の各々の部分または部分の群に沿って一定にしている。経路の各点の速度の最適化は、非常に時間を必要とするためである。
【０００３】
工作機械の経路をプログラムする者は、速度と精度が互いに相殺するものと理解している。高速度になると、制御システムが所望の経路に留まるのが一層難しくなる。従って、経路のプログラマは、所望の経路に沿う動作の速度と精度で妥協している。この決定は、多くの場合、プログラマの経験に基づき、反復のプログラム処理となる。経路を実行し、各部分で速度を低下をさせている。この低下は、所望の経路から好ましくない偏移が観測される場合である。プログラマは、この偏移および動作の特質を制御し、経路に沿って工作機械の速度を操作する。
【０００４】
製造装置の動作制御システムは、多くの場合、コンピュータ数値制御（ＣＮＣ）と呼ばれ、動作制御の速度を最大にし、所望の経路からの偏移を最小にする。コンピュータ数値制御は、旋盤、研削盤および研磨機などの製造装置を制御し、工作機械の即時応答の制御の計算装置である。数値制御は、部品プログラムを形成する一式のコード化した指示を受け取る。部品プログラムは、一般的には、規格Ｇ＆Ｍコード言語または近い派生言語で記述される。言語は、国際規格（ＩＳＯ）または電子工業協会（ＥＩＡ）ＲＳ−２７４−Ｄに基づき、Ｇ，Ｍ，Ｆなどの文字で識別されたコードを使用する。コードは、機械動作の順番を定めて部品の製造での動作を制御する。数値制御装置は、コードを一連の電気信号に変換し、工作機械に取り付けたモータを制御し、プログラムした経路に沿って工作機械を動かす。
【０００５】
フライス盤を操作する動作制御の一例がコンピュータ数値制御（ＣＮＣ）である。  旋盤、研削盤および座標測定機（ＣＭＭ）は他の製造装置の例で、動作制御にコンピュータ数値制御を用いる。３軸のＣＮＣフライス盤は、工作機械を取り付けたヘッドおよびＸＹ面にある工作機械に対し移動可能なテーブルを備えている。モータで、テーブルのＸＹ方向の動きおよび工作機械のＺ方向の動きを制御し、直交のＸＹＺ座標系を確立する。位置センサ（エンコーダまたは目盛り）でフィードバックをさせ、フライス盤の座標系に対し工作機械の位置を示す。ＣＮＣは、部品プログラムを読取り、工作機械の経路を特定する。この経路で、規定の速度または送り速度で工作機械が追跡する。制御装置は、工作機械の現在位置と規定の工作機械の経路とを常に比較する。このフィードバックで、制御装置は、信号を生成しモータを制御する。この制御で、工作機械の実際の経路を所望の工作機械の経路に極力近くに一致させる。工作機械は、所望の速度で工作機械の経路に沿って動く。制御装置をコンピュータ支援工作機械システム（ＣＡＭ）と関連させても良い。
【０００６】
所望の経路または工作機械の経路からの実際の工作機械の偏移を“機械加工誤差”と呼ばれている。機械加工誤差は、瞬間的な工作機械の位置と工作機械の所望の経路との間の距離で計算される。ＣＮＣの許容差は、工作中での許容できる機械加工誤差である。動作制御には、良好または厳密なＣＮＣ許容差の維持が要求される。機械加工誤差は、多くの因子からなり、動作制御の性能および工作中での経路を行き来する送り速度に依存する。概して、高い送り速度は、大きな機械加工誤差になる。
【０００７】
既存の部品プログラムは、ＣＮＣ許容差の問題に明確に対処していない。工作機械の操作者、部品プログラマまたは機械運転者は、送り速度を調整しこの問題に対処している。事実、許容差は、ＥＩＡ  ＲＳ−２７４−Ｄのような既存のプログラム言語で表現が出来ず、既存の運動制御も、ＣＮＣの許容差の仕様に合う束縛運動の概念を支持しない。操作者の作用の１つに送り速度の選択がある。この選択で、許容できる部品の品質となるが、同時に金属の高い除去速度を達成する。適切な送り速度の選択は、操作者の経験に基づいている。一般的な経験則は、幾つかのハンドブックまたは図表から入手できる。例えば、Machinery's Handbook, 24th edition, Industrial Press Inc. New York 1992。このような資料の数字は、正しい条件での仕様では完全に実現可能であるが、特定の機械加工状況では、往々にして不適切である。刊行されている数字は、部分的な機械加工条件を考慮していない。結局、送り速度の最適化を操作者に委ねている。送り速度の選択で、部品プログラムを通して工作機械の生産性を最大化し、所望の部品品質を得るのは、操作者には難しいことである。
【０００８】
ＵＳ６，２４２，８８０（本願で引例している）は、動作制御システムに基づく許容差において、許容差の制限に基づく送り速度の設定方法を開示している。この特許は、動作制御の技術で顕著な展開を表しているが、許容差の範囲内での、許容差の命令、Ｅコードの改良および許容差の範囲が、送り速度の向上に要求される。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、動体の任意の経路に平滑化を加える。本発明は、動体の経路に平滑化の作用をする。例えば、動体の経路の平滑に応用できる。動体は、運搬手段または投射物で、陸、海、空中を問わない。特別な実施例として、本発明は、ＣＮＣ工作機械の送り速度の調整にも応用する。ＣＮＣ工作機械は、プログラマおよびプログラムした工作機械（工具）経路で規定されるＣＮＣ許容差に依存する。許容差は、プログラムした経路に沿う各点での最大可能な送り速度で規定する。この情報で（位置のフィードバックと共に）、実際の動作経路に沿う送り速度を修正し、理想のプログラムした経路からの位置偏移を制限し、要求されたＣＮＣ許容差を得る。
【課題を解決するための手段】
【００１０】
許容差ベースの制御（TBC: Tolerance Based Control)技術は、プログラムおよび機械加工の環境に、ＣＮＣ許容差の概念を導入する。この技術は、ＣＮＣプログラマに、所定の切削状況で、最大の、ほぼ最大の許容送り速度の部品プログラムを可能にする。切削状況として、切削工作機械（工具）、速度、切削深さ、材料状態などがある。この技術で、所望のＣＮＣ許容差を規定する。
【００１１】
許容差制御は、プログラマおよびプログラムした工作機械経路で規定されるＣＮＣ許容差に基づき、送り速度の制限を計算し、プログラムされた経路に沿う各点での最大または最大近くの可能な送り速度を規定する。位置フィードバックとの情報で、動作の実際の経路に沿う送り速度を修正し、理想のプログラム経路からの偏移を制限し、要求されるＣＮＣ許容差を満たす。
【００１２】
古典的な比例、積分、微分（ＰＩＤ）の手法と異なり（古典的手法は、切削機械の位置を幾つかの時間間隔で推測する）、ＴＢＣの手法は、予測的制御技術を用いる。この技術は、非ＴＢＣの２点間固定サイクル制御を動作制御による経路および速度で置き換える。ＴＢＣは、プログラムした経路に関して切削機械の位置を観察し、その位置を調整し、制御ループの誤差項目に従う必要性を除去する。ＴＢＣは、工作機械の位置のフィードバックを、プログラムした経路および機械の性能の情報から処理し、瞬時に制御信号を出す。その信号は、瞬時の機械加工条件に応答している。非ＴＢＣのＰＩＤ制御ループは、プログラムした経路を、事前に計画した目標から、続く誤差を使用する目標へ、切削機械を引っ張ることで近似している。ＴＢＣ制御は、切削機械を所望の経路に沿って押し、出くわす偏移を修正する。ＴＢＣ制御は、工作機械の動きの制御または調整を、所望の工作機械の経路に対し、現在の追跡している位置に基づいて行なっている。事前設計した経路の一つの点に在る時の先の動きだけに基づいていない。
【００１３】
本発明の「真の円弧」技術で、工作機械の動きを、多角形近似ではなく円弧の経路で設計した経路に沿って制御する。つまり、工作機械に命令し、曲線の経路を近似する一連の直線部分で形成する経路よりも弓形の経路を追跡させる。部分ベースの経路でない弓形の経路および実時間の関連するベクトルを用いて、ＴＢＣ制御が、円弧の経路を（円弧の）直線近似への変換を除去し、円弧部分の直接の精密な機械加工、コード誤差の除去、部品プログラムサイズの縮小、複雑な経路の多項式近似への変換に要する処理の除去、を可能にする。
【００１４】
ＴＢＣのデータ平滑化技術は、目標経路（平滑化するＮＣ線分を識別するプログラムされた工作機械の経路）を調べ、このＮＣ線データを、所定の許容差を維持し、円弧に変換する。データ平滑化は、点から点の直線の動きを一連の互いに接する円弧に変換する。許容できる許容差内で、比較的小さな曲率変化の円弧に変換する。平滑化の程度は、規定の許容差に依存する。この技術の利点は、より平滑な経路、より滑らかな速度、加速、より優れた送り速度制御および改善した表面仕上げを実現する。平滑化技術は、多角形近似を使用する複雑な部品形状を表す古典的な部品プログラムには特に重要である。
【００１５】
ＴＢＣの先読み技術は、非ＴＢＣの固定バッファ先読みアルゴリズムに取り代わり、データ枯渇、行き過ぎ、許容差の違反、ドエル（dwell）印、部品生産物の粗末な表面仕上げ、の可能性を低減する。先読みは、１つの速度から他の速度へ加速または減速する十分な距離を保証する。動きの部分の長さが比較的短く、大きな速度変化に十分でない場合、先読みアルゴリズムは、動作プロフィール（Ｓ曲線速度プロフィール）により、その動作部分の速度を計算し制限する。先読みは、通常、実時間で実行し、先に処理した動作命令の繰返し修正を含むので、アルゴリズムの高効率が、ＣＰＵ負荷の低減および工作機械の性能の向上となる。動作の繰返し修正は、論理と加算だけから成る。さらに、アルゴリズムは、以前の命令を修正する繰返しの要求が少ない利点がある。アルゴリズムは、システム速度または処理能力を増す改善した実行時間の利点を持つ。
【００１６】
非ＴＢＣ先読みアルゴリズムの１つの選択は、所望の速度変化の実行に動く距離が不十分な各時期に、速度制限を計算する。この速度制限の計算は、大量の計算を伴う。繰返し実行する計算は、要する処理時間および資源から、好ましくない。本発明の付加的先読みアルゴリズムは、速度制限の計量に停止距離の概念を用いている。このアルゴリズムは、非常に効率的な計算になる。
【００１７】
柔らかな動きの技術は、ＴＢＣ制御の基本である。ＴＢＣ制御は、容易に更新でき、動作制御カードによる費用の掛かるＰＩＤの必要性を除く。
【００１８】
ＴＢＣの典型的なソフトウェアシステムは、Ｗｉｎ３２成分および実時間ソフトウェアシステム（ＲＴＳＳ）成分から成る。用語Ｗｉｎ３２は、アプリケーションプログラムのインターフェイス（ＡＰＩ）を参照しており、一般的に知られているウィンドウＮＴまたはＸＰ（登録商標）で、３２ビットウィンドウのアプリケーションを走らせる。他のインターフェイスを、他のＯＳと使用しても良い。Ｗｉｎ３２成分は、ユーザ要求を処理するインターフェイスモジュールで、状態情報をユーザに戻して与え、グラフィック表示を更新し、Ｇ＆Ｍコードのサブセットを要求される形式に変換する。Ｗｉｎ３２成分は、人間−機械インターフェイス成分およびＧ＆Ｍコードのサブセットの解釈を備えている。人間−機械インターフェイス成分は、ディスプレイソフトウェアおよび制御パネル処理を備えている。
【００１９】
機械のＩ／Ｏソフトウェア成分は、サーボ変換ボードのドライバを備えている。機械のＩ／Ｏサーボドライバは、ＴＢＣ制御で生成された制御信号を受取り、動作をもたらす電気信号に処理する。ドライバは、工作機械からフィードバック信号も取り込み、その信号をＴＢＣソフトウェアで使用される情報に変換する。
【００２０】
ＲＴＳＳ成分は、ＲＴＳＳ内でコードされ、確定的な応答を保証する。ＲＴＳＳ成分は、ＴＢＣ成分、機械Ｉ／Ｏソフトウェア成分、成分の統合と通信成分、から成る。ＴＢＣ成分は、許容差把握成分、データ圧縮成分、データ平滑化成分、先読み成分、動作カーネル成分から成る。ＴＢＣ成分は、機能的には、２つのグループに分かれる。ＴＢＣデータ前処理グループおよびＴＢＣ動作カーネルを含むＴＢＣ動作制御グループである。ＴＢＣデータ前処理グループは、許容差把握成分、データ圧縮成分、データ平滑化成分、先読み成分から成る。ＴＢＣデータ前処理グループは、待ち行列モジュールで実行される。
【００２１】
平滑化作用は、３つの相から成る。平滑化の準備、平滑化の調整および２重円弧の平滑化である。平滑化操作での３つの相の後で、点から点の動きを、一連の互いに接する円弧に変換する。可能な許容差内で、比較的小さい曲率変化で変換する。
【００２２】
本発明は、動体の経路データを調整する方法を備え、経路データの３つの連続した点の識別を備える。３つの点で規定された円形の円弧と、３つの点の第１の点と第２の点の間に延びる第１の線の中間部分と、の間の第１の距離を確認する。円形の円弧と、３つの点の第２の点と第３の点の間に延びる第２の線の中間部分と、の間の第２の距離を確認する。第１の線と第２の線の間の折り返し角を決める。第２の点に平滑化を実行するのは、第１の距離および／または第２の距離が閾値の線の長さよりも小さく、折り返し角が閾値角よりも大きい場合である。
【００２３】
本発明は、動体の経路データを調整する方法から成り、経路データの４つの連続する点の識別から成る。４つの連続する点は、第１の点、第２の点、第３の点、第４の点から成る。第２の点が、平滑化に適するかを決める。第２の点が平滑化に適している場合、第１の円弧および第２の円弧を位置付け、第２の点を、第１の円弧と第２の円弧の間の領域に動かす。第１の円弧は、第１の点、第２の点および第４の点で規定され、第２の円弧は、第１の点、第３の点および第４の点で規定される。第２の点に関連する線の動きは、第２の点に関連する少なくとも１つの円弧の動きで置き換える。
【００２４】
本発明は、動体の経路データを調整する方法から成り、経路データの４つの連続する点の識別から成る。４つの連続する点は、第１の点、第２の点、第３の点、第４の点から成る。第１の点、第２の点および第４の点で規定される第１の円弧を位置付ける。第１の点、第３の点および第４の点で規定される第２の円弧を位置付ける。第２の点を、第１の円弧と第２の円弧との間の領域に動かす。
【００２５】
本発明は、動体の経路データを調整する方法から成り、経路データの第１の点から第２の点に延びる線の動きを識別から成る。線の動きを第１の円弧の動きおよび第２の円弧の動きで置き換える。第１の円弧の動きは、第１の点で始まり、交点で終わる。第２の円弧の動きは、交点で始まり、第２の点で終わる。
【００２６】
本発明は、動体の経路データを処理する方法から成る。動体は、例えば、工作機械である。その方法は、目標の工作機械の経路に沿う複数の点を識別し、工作機械の点の最後での最大可能な停止距離を決める方法から成る。最後の点での工作機械の最後の最大可能な速度を確認する。工作機械が、最大可能な停止距離内で停止に至る速度である。複数の点での他の１つでの工作機械の他の最大可能な速度を確認する。最後の点に工作機械が到達した時に、最後の最大可能な速度に減速する。
【００２７】
本発明は、工作機械の経路データを処理する方法で、その方法が、目標の工作機械の経路に沿う複数の点を識別し、目標経路からの実際の工作機械の経路の最大可能な偏移レベルを確立することを備えている。目標経路に沿う複数の位置での曲率の程度を確認する。目標経路に沿う点の各々での工作機械の最大可能な許容差速度を決める。最大可能許容差速度は、最大可能な偏移レベルおよび曲率の程度に依存する。複数の点の最後での工作機械の最大可能な停止距離を決める。最後の点での最後の最大可能な停止速度を確認する。工作機械が、最大可能な停止距離内で停止する。最後の点以外の点の各々の他の最大可能な停止速度を確立する。 工作機械が、最大可能速度に減速し、最後の点に達する。複数点の各点で、最大可能な許容差速度と最大可能停止距離との少ない方を識別する。
【００２８】
工作機械の経路データを処理する方法が、目標経路に沿う複数の点を識別することから成る。複数点の選択した各２つの点は、それぞれの部分長さで離れている。複数点の最後の点での工作機械の最大可能な停止距離を決める。複数点の他の点での最大可能な速度を確認する。他の点で必要な停止距離が、最後の点の最大可能な停止距離と、他の点と最後の点の間の部分長さと、の和以下とする。
【００２９】
本発明は、工作機械を操作する方法から成り、その方法は、目標経路を識別することから成る。工作機械を命令し、初期の位置から目標経路を追跡させる。工作機械の第１の実際位置を、命令工程の後で感知する。第１の実際位置からの第１の目標副経路を計算し、工作機械の動きの予測的誤差を修正する。
【００３０】
本発明は、工作機械を操作する方法から成り、その方法が、工作機械の動きの予測的誤差を経験的に決めることを備えている。工作機械の実際の動きを監視する。その動きを、経験的に決めた予測的誤差および確率的誤差に基づいて制御する。
【００３１】
本発明は、複数の逐次的な動きを有する工作機械を操作する方法から成り、その方法が、工作機械の動きでの第１の動きの後で、工作機械の実際位置を感知することを備えている。工作機械の目標位置を感知工程に基づき計算する。目標位置を計算し、工作機械の動きの予測的誤差および確率的誤差を補償する。感知および計算工程を、工作機械の動きの他の動きに対し繰り返す。
【００３２】
本発明は、工作機械を操作する方法から成り、その方法は、工作機械の実際位置を感知する工程を備えている。工作機械の実際位置と所望の位置との間の位置誤差を計算する。位置誤差を、規定の誤差許容差と比較する。工作機械の速度を、比較工程に基づき調整する。
【００３３】
本発明は、工作機械を操作する方法から成り、複数の軸の各々に沿う工作機械の実際位置を感知することを備えている。複数の軸での各軸の工作機械の実際位置と多次元の基準経路との間の多次元位置誤差を計算する。多次元の位置誤差信号は、計算工程に依存して形成される。工作機械の速度および／または方向は、多次元位置誤差信号に依存して制御される。
【００３４】
本発明の利点は、工作機械に、改善した経路または通り道を与える。特に、工作機械の通り道が一層平滑になり、高い送り速度、加工中の製品に一層平滑な表面を与える。
【発明を実施するための最良の形態】
【００３５】
図面を通して、対応する部分には対応する参照符号を使用している。図面は、本発明の実施形態を表すが、図面は、必ずしも比例しておらず、誇張して説明している場合がある。ここでの例示は、本発明の範囲を制限するものではない。
【００３６】
図１は、本発明の許容差ベース制御方法１００の１つの実施形態を示す。許容差ベースの制御装置の主要な機能の動作を示し、部品プログラムで規定された部品の機械加工を行なう。本発明の実施形態の制御装置は、特定の場合に関連し、ＣＮＣ工作制御を取扱っている。本発明は、種々の動きの制御状態を備えた動体に、一般的に適用しても良い。当業者が、知り得るロボット制御、運搬制御、自動推進制御等がある。
【００３７】
ステップ１０２で、制御装置は、部品プログラムから部品データを受け取る。部品プログラムは、部品の寸法、形状および他の特徴、または、加工する加工中の製品を特定するデータを含む。経路の予備処理工程１０４は、所望の工作機械（工具）の経路および送り速度の計算を行なう。この経路および送り速度で、工作機械が、比較的短時間で寸法許容差の制限内で部品を製造する。部品の機械加工で、工作機械の実際位置を特定する位置フィードバックを、予測的および確率的誤差の補償工程１０６で使用する。サーボ命令を変更し工作機械の向きを変更し、実際の工作機械経路の予測可能的又は再現性の有る誤差、および、確率的又は再現性の無い誤差を、命令した経路と比較する。最終工程１０８で、修正したサーボ命令を、サーボ増幅器に伝えて工作機械を作動する。
【００３８】
図１の方法を、図２のフローチャートを参照して詳細に説明する。一般には、工程１０２，１０４は、図２の待ち行列管理プログラムタスク、工程１０６，１０８は、実行システムタスク(Run System Task)に対応する。部品プログラムは、部品表面の不連続な点の位置を提供する。数値制御は、この不連続の点の間を補間し、近接する線および円弧から成る所望の経路または工作機械経路を規定する。ここで使用する円弧は、円の一部を示し、円弧は一定の半径を備えている。ユーザが使用する部品プログラムのデータの質は、工作機械による切削の結果の質に直接に関連する。品質の悪いデータは、部品表面が平滑にならない。
【００３９】
待ち行列管理プログラムタスクは、４つの連続した動作の部品プログラム動作データを予備処理する。予備処理で、実行システムタスクが実行する前に、データを高品質の動作データに変換する。４つの動作は、待ち行列管理プログラム内の許容差把握２０２、圧縮待ち行列内のデータ圧縮２０４、平滑待ち行列内のデータ平滑２０６、および、先読み待ち行列内の付加的先読み２０８である。待ち行列管理プログラムは、各待ち行列の対応するデータ処理を実行し、データフローを、連続した待ち行列からパイプライン方式で動かす。データ処理は、４つの待ち行列の各動作を含む。
【００４０】
待ち行列モジュールは、ＮＣ動作命令の予備処理を行なう。この命令は、許容差ベースの制御に使用する位置決め（ＧＯＯ）、線（ＧＯ１）、円弧（Ｇ０２，Ｇ０３）およびＮＣ許容差命令Ｅである。ＴＢＣ技術の使用は、既存の又は古い技術のＣＮＣ部品プログラムに一致している。この技術は、操作者に、実行に既存のＮＣ命令でＮＣ許容差命令の特定を可能にする。新しいＮＣ許容差命令を既存のＧ＆Ｍコード部品プログラムに挿入し、ＣＮＣプログラマは、異なるＣＮＣ許容差制限の特定が出来る。
【００４１】
ＮＣ許容差命令は、範囲および許容値を特定し、命令識別数と共にその領域に適用する。ＮＣ許容差命令は、Ｅコードで規定する。
Ｅ  ｔｏｌ  Ｘｘ１  Ｙｙ１  Ｚｚ１  Ｘｘ２  Ｙｙ２  Ｚｚ２  Ｉｉｄ
【００４２】
Ｅコードの要求は、対角部の座標（ｘ１，ｙ１，ｚ１），（ｘ２，ｙ２，ｚ２），ｘ１＜ｘ２，ｙ１＜ｙ２，ｚ１＜ｚ２で規定される３次元の長方形の領域が、ｔｏｌのＮＣ許容値を持つことである。この特定の許容差命令は、整数値ｉｄで識別される。
【００４３】
重複した許容差の範囲を複合Ｅコードで規定することが出来る。１つの点は、幾つかの進行しているＮＣ許容差の範囲に属しても良い。この場合、その点のＮＣ許容差値の規定は、その領域がこの点は囲む最後のＥコードで記述される。
【００４４】
許容差待ち行列での許容差マッピング操作で、許容差は、工作機械経路内の各線または円弧に指定される。許容差マッピング操作は、可変の許容差範囲の処理をし、その範囲は、部品プログラムで規定され、各動作の動きに要求される許容差を指定する。異なる値を持つ許容差の範囲は、図３ａに示すように互いに重なることもある。３つの領域３０２，３０４，３０６は、各々０．００１インチ、０．０００５インチ、０．０００３インチで規定される許容差を有している。Ｐ0からＰ1に多数の許容差の領域を横切る場合、その動きを多数の動き、Ｐ0からＰ1’、Ｐ1’からＰ1”、Ｐ1”からＰ1に分割し、各動きが異なる許容差値を備える。部品プログラムの許容差命令Ｅコードは、部品の領域に適用する領域及び許容差値を特定しても良い。許容差把握は、正しい許容差値を識別し、プログラムＥコードによる各動作命令の要求に応える。
【００４５】
許容差命令の処理で、命令が新規許容差の指定の場合、許容差の表に新規項目の空間が形成される。許容差表で、許容差値は、それぞれの領域に描かれる。新規項目は、命令から抽出される許容差の指定で満たされる。最後に、新規項目は、許容差の表の先頭に挿入される。処理が進むと、許容差の命令は破棄される。命令からの情報は、許容差の表に記憶される。
【００４６】
線または円弧命令の処理で、命令に要求される許容差値が計算され、命令に取り付けられる。Ｅコードは、異なる許容差の領域を特定する。ＮＣプログラムの各線または円弧は、１つ以上の許容差領域に属する。各線または円弧の要求される許容差を決めるアルゴリズムは、それらの幾つかのサンプル点の許容差の照合を含む。線または円弧が１つの許容差の領域にある場合、サンプル点は、同一の許容差を備え、この線または円弧の要求される許容差となる。これに反して、線または円弧が、２つ以上の許容差領域に及ぶ場合、サンプル点は、異なる許容差を有する。この場合、線は、サンプル点に基づき、部分に分割し、各線は、独自の要求される許容差を備える。同様に、円弧は、異なる許容差で分割されるが、円弧は分割されない。この円弧には最も厳しい許容差値が、要求される許容差として選択される。
【００４７】
所定の点の要求される許容差を決めるのにルーチンを使用する。このルーチンは次の操作から成る。
１）所定点の位置をキー値にする。
２）先頭から開始し、Ｅコードの許容差の表を検索する、この許容差の領域は、キー値を覆っている（所定点は、許容差の領域内に位置する）。
３）最初に見出したＥコードの許容差値を所定点の要求される許容差に指定する。
【００４８】
或る点が、異なる許容差命令で規定される幾つかの許容差の領域に属する場合、最新の許容差命令が制御にある。新許容差命令は、常に許容差の表の先頭に挿入される。従って、上記操作では、最初に見つけたＥコードを最新のＥコードとし、それが所定点の要求される許容差を特定する。
【００４９】
多数の許容差の仕様で、線を分割し部分にするために他のルーチンを使用しても良い。円弧の多数の許容差の仕様で最も厳しい許容差を他のルーチンで決めても良い。
【００５０】
異なる値および互いに重複した許容差の領域の他の実施形態を図３ｂ〜ｃに説明している。図３ｂは、第１の場合、図３ｃは、第２の場合を説明する。この実施形態で、効率的な計算の為に、線の動きを最大２つの線に分割している。ただもう１つの点ｐ’が、点ｐ０とｐ１の間に形成されている。
【００５１】
円弧の場合（図３ｄ）、３つの等距離点ｔ２，ｔ３，ｔ４を開始点ｔ１と終点ｔ５の間に加えている。５つの点の許容差の最低が円弧の許容差を規定する。許容差は次の方程式で与えられる。
Ａ１．ｔｏｌ＝ｍｉｎ｛ｔ１，ｔ２，ｔ３，ｔ４，ｔ５｝
【００５２】
許容差把握操作の後に、許容差待ち行列２０２から読み込み、圧縮待ち行列２０４に送る要素は、位置決め命令、要求された許容差を備えた線命令、要求された許容差を備えた円弧命令、プログラム終了命令である。
【００５３】
データ圧縮
【００５４】
圧縮待ち行列２０４でのデータ圧縮操作で、プログラムデータは圧縮される。多くの部品プログラムでは、短い線の動きがある。この場合、部品は粗末な表面仕上げになる。これらの短い線の幾つかを長い線に結合し、部品の品質を向上する。データ圧縮操作で、短い線を長い線に結合できるかを決め、可能であればデータ圧縮を実施する。図４ａに示すデータ圧縮操作では、点Ｐ1，Ｐ2を省略し、Ｐ0からＰ3の線を形成する。工作機械経路の許容差または制限を点線４０２，４０４で示している。許容差境界４０２，４０４は、Ｅコードによるユーザ規定の数値制御許容差よりも一桁小さい。
【００５５】
線命令は、２点間の動きである。短い線の動きを長い線に結合するのは、新しい線の目標点の順序での、開始点と終点を決め、全ての中間点を取除くことである。新しい長い線の動きは、幾つかの条件が合う場合にのみ、短い線の動きに置き換えることができる。許容差の条件で、取り除かれた各々の点が、新しい線から所定の許容差の範囲にある場合に限る。
【００５６】
データ圧縮は、全ての線の命令を圧縮待ち行列２０４で順次検査する。圧縮操作は、下記工程で２点間の動きを処理する。
１）２点間の動きの順序を、連続した目標点ｐ0，ｐ1，ｐ2，ｐ3，，，，ｐn-1，ｐn で調べる。
２）ｐ0とｐnと間の点、即ちｐ1，ｐ2，ｐ3，，，，ｐｎ-1を取り除く。ただし、下記条件を満たす必要がある。
・全てのｉ（１≦ｉ＜ｎ）に対し、ｐiからｐ0−ｐn間の直線までの距離が所定の許容差より小さい。
・全てのｉ（１≦ｉ＜ｎ）に対し、ｐiからｐ0−ｐn間の直線への垂直射影点が、ｐ0とｐn間に位置する。
・全てのｉ（１≦ｉ≦ｎ）に対し、終点としてのｐiの線の命令が、同じ許容差値を有している。
・ｐ0からｐnの距離が、所定の距離で束縛されている。
【００５７】
このようにして、ｐ0からｐnの線の動きをｎの短い動きに置き換える。圧縮操作後、圧縮待ち行列２０４の要素はさらに小型になる。これは、幾つかの連続した短い線が結合するためである。圧縮待ち行列２０４の全ての要素（位置決めコマンド、圧縮線コマンド、円弧コマンド、プログラム終了コマンドを含む）が、平滑化待ち行列２０６に送られる。
【００５８】
他のデータ圧縮の実施形態として、４つの試験または基準を使用する。次の点を圧縮待ち行列に加えるか、又は、圧縮を圧縮待ち行列にある点のみに実行するか、を決定する。図４ｂで、点ｐ０，ｐ１，ｐ２，ｐ３が圧縮基準を満たし、ｐ４を圧縮待ち行列に加えるか、又は、圧縮を点ｐ０，ｐ１，ｐ２，ｐ３のみに実行するかを決定すると想定する。４つの圧縮基準を以下に記載する。
試験１：｜ｐ４−ｐ０｜＜０．０５インチ。
試験２：点ｐ３に対し、角度θが−９０〜＋９０度の間にある。
試験３：ｐ０の許容差＝ｐ１の許容差＝ｐ２の許容差＝ｐ３の許容差＝ｐ４の許容差。許容差の表から、等しい許容差を各点に指定する。
試験４：ｐ１，ｐ２，ｐ３のｐ０ｐ４への垂直の距離が、規定された許容差よりも小さい。
【００５９】
上記４つの試験を満たすと、ｐ４を圧縮待ち行列に加える。上記４つの試験が満たされない場合、ｐ３を平滑化待ち行列に加え、ｐ１，ｐ２を圧縮で放棄する。基本的には、３つの部分（ｐ０ｐ１，ｐ１ｐ２，ｐ２ｐ３）を１つの部分（ｐ０ｐ３）に結合する。
【００６０】
データ平滑化
【００６１】
データ平滑化操作は、ＮＣの線データを、所定の許容差を維持しながら円弧に変換する。データ平滑化は、より滑らかな速度と加速度、より優れた送り速度の制御、改善した表面仕上げ、ＴＢＣ真円弧技術の全面的な活用となる。
【００６２】
次の異なる平滑化レベルがある。
レベル０：平滑化をせず、切った多角形を形成する。
レベル１：円弧で線を置き換えるが、多くの場合、円弧は、互いに結合していない。
レベル２：円弧で線を置き換え、円弧は互いに結合するが、多くの場合、互いに接していない。
レベル３：円弧で線を置き換え、円弧は互いに結合し、互いに接している。
レベル４：（本発明の平滑化レベル）線を置き換えた円弧は互いに結合し、互いに接しており、円弧の曲率が緩やかに変化する。
予備平滑化操作、修正平滑化操作および２重円弧平滑化を、平滑化待ち行列で、同時におよびパイプライン方式で実行する。
【００６３】
図２８ａ〜ｅは、レベル０−４の平滑化を個々に説明している。レベル０〜３の平滑化では、平滑化の出力、最終の経路は、常にデータ点を通過する。図２８ｄで、ｃ１およびｒ１は、点ｐ０，ｐ１，ｐ２で規定される円弧の中心および半径である。ｃ２およびｒ２は、点ｐ２，ｐ３，ｐ４で規定される円弧の中心および半径である。円弧の曲率は、半径の逆数（１／ｒ）で規定される。図２８ｄのレベル３の場合、半径ｒ１からｒ２の大きな変化は、２つの円弧で対応する大きな曲率の変化になる。
【００６４】
レベル４は、他の平滑化レベルと異なる。データ点を緩やかな曲率変化となるように調整（規定の許容差内で）する。このデータ点の調整が実際に受け入れられるのは、多軸輪郭削り（又は、ＮＣ工作機械を用いた金属の切削）である。調整が、非常に小さく（通常は、０．０００５インチより小さい）規定の許容差以内にする。
【００６５】
点を方向および大きさで調整し緩やかな曲率変化にし、経路を楕円形に近づける。経路に沿う曲率の緩やかな変化は、動作制御を容易にする。曲率の緩やかな変化は、経路に沿う各点の後の曲率変化、または可能な変化と見なされる。図２８ｅに示すが、曲率の半径は、ｐ０からｐ４の経路に沿い、徐々に小さくなっている。つまり半径は、経路に沿う各点で小さくなっている。対照的に図２８ｄの場合、曲率の半径は、経路がｐ２を通過すると１つの大きな段差で落ちている。レベル４の平滑化では、各点の両側で曲率を同一にすることも可能である。図２８ｅの重複した点で示すように、点を調整または動かして、経路を楕円経路に近づけることが出来る。しかし、点は規定の許容差内でのみ調整する。
【００６６】
円弧に沿う工作機械の動きには、求心力と呼ばれる力を必要とし、その力は、円弧の中心に向いている。ＣＮＣ機械の場合、この力はモータで与える。求心力の突然の比較的大きい変化は、大きな行き過ぎ量となり、得られる最終仕上げに問題となる。
【００６７】
図２８ｅは、初期の位置（図２８ｄ）に比べて点ｐ０〜ｐ４の位置を少し調整している。軽微な調整で、楕円に近づく経路を規定する点になる。楕円経路は、理想的または最適である。楕円に沿う曲率は、連続して変化するからである。しかし、調整の大きさ又は量は、本発明では、許容差に依存する。従って、調整した点は、実際には楕円にならない。
【００６８】
本発明の実施形態では、曲率変化の最適化の代わりに、次善の解を取り入れる。この解の経路は、楕円形とは対照的に円弧だけから成る。経路を連続した円弧で規定するのは利点がある。点調整の計算での計算／数学的複雑性を低減する。許容差内で点を調整して楕円形の経路を実施するのは可能であるが、その代わり、本発明では、経路を連続した円弧で規定する。
【００６９】
実施形態では、動作制御を２００μｓｅｃループで実行する。つまり、２００μｓｅｃ毎に更新する。従って、効率的に実行するために２００μｓｅｃ毎の計算が要求される。動作制御に加えて幾つかの他の操作を行なう処理装置の速度の制限で、楕円形の経路よりも連続した円弧で規定される経路が役に立つ。円弧は、曲率の変化が緩やかで、楕円は、曲率の変化が連続している。動作制御を特定の周波数、例えば２００μｓｅｃ毎に更新する。
【００７０】
データ平滑化は、３つの段階を含む。即ち、平滑化の準備、平滑化の調整、および、２重円弧アルゴリズムを用いる平滑化である。本発明の平滑化方法の第１の操作は、線データの平滑化の識別である。所定の許容差を維持し、ＮＣ線データの円弧への変換は、常に適しているとは限らない。鋭い角度で接続している線も同様である。ＮＣ線データ、例えば長い線の動きの平滑化は好ましくない時がある。第１の操作は、線部分を識別する元の線データを調べる。この元の線データは平滑化の条件を満たしている。
【００７１】
平滑化の準備
【００７２】
第１の操作で、全ての線の動きの目標点を平滑化待ち行列で順次調べる。平滑化する線部分を決め、全ての線の目標点を「平滑化」または「平滑化無し」でタグをつける。
【００７３】
ｐ１，ｐ２，ｐ３を平滑化待ち行列の３つの連続した目標点とする。下記条件を満たす場合、点ｐ２に「平滑化」のタグを付ける。
・ｐ１からｐ２の動きは、線の動き。
・ｐ２からｐ３の動きは、線の動き。
・ｐ１からｐ２の長さは、一定の距離で束縛されている。
・ｐ２からｐ３の長さは、一定の距離で束縛されている。
・ｐ１から線ｐ２ｐ３の垂直の距離は、一定の割合で束縛されている。
・ｐ３から線ｐ１ｐ２の垂直の距離は、一定の割合で束縛されている。
・線ｐ１ｐ２と線ｐ２ｐ３の間の角度は、一定の角度で束縛されている。
【００７４】
他の場合、点ｐ２は、「平滑化しない」タグを付ける。第１の操作で処理する平滑化待ち行列２０６の線要素の全てにタグを付ける。１つの実施形態として、ｐ１からｐ２の距離およびｐ２からｐ３の距離は、約１〜２ｃｍの一定の距離の範囲にする。ｐ１から線ｐ２ｐ３の垂直の距離は、ｐ２からｐ３への距離の約２０〜４０％で一定の範囲にする。ｐ３から線ｐ１ｐ２の垂直の距離は、ｐ１からｐ２への距離の約２０〜４０％で一定の範囲にする。線ｐ１ｐ２と線ｐ２ｐ３間の角度は、１３５〜１６５度間で一定の範囲にする。
【００７５】
平滑化待ち行列２０６でのデータ平滑化操作は、線データを円弧に変換する。この円弧は、互いに接続され接し、緩やかに変化する曲率または半径を備えている。この結果、より平滑な動きの速度および加速度が得られ、より優れた部品の表面仕上げになる。データ平滑化の処理は、平滑化工程２１０の準備、平滑化工程２１２の調整、および、２重円弧平滑化工程２１４（図２参照）を含む。平滑化準備工程２１０は、平滑化のデータ点の識別を含む。図５ａで、点ｐ1が平滑化に適している。つまり、ｐ0からｐ1及びｐ1からｐ2の動きの長さ、及び、この動き間の角度５０２が、規定した限界より下である。規定した限界より下に維持した、点ｐ1から最も離れた距離にある点ｐ0を破線５０４で示している。同様に、規定した限界より下に維持した、点ｐ１から最も離れた距離にある点ｐ2を、破線５０６で示している。点ｐ1からの破線５０４は、破線５０６よりも短いが、これらの距離は等しくても良い。１つの実施形態として、点ｐ1が平滑化に適しているのは下記条件の場合である。ｐ0からｐ1の長さ及びｐ1からｐ2の長さ、つまり、点ｐ0点ｐ1間の第１の線の距離および点ｐ1点ｐ2間の第２の線の距離が、制限または閾値の距離である約１〜２ｃｍより小さく、折り返し角５０２が、制限または閾値の角度である約１３５〜１６５度より大きい場合である。
【００７６】
他の実施形態として、点ｐ1の平滑化の更なる要求は、点ｐ0から線ｐ1ｐ2への垂直距離および点ｐ2から線ｐ0ｐ1への垂直距離が、規定の制限または閾値の垂直距離より小さい場合である。点ｐ1の平滑化の実施形態として、点ｐ0から線ｐ1ｐ2の垂直距離ｄ0が、線ｐ1ｐ2の長さの約２０〜４０％より小さく、点ｐ2から線ｐ0ｐ1の垂直距離ｄ2が、線ｐ0ｐ1の長さの約２０〜４０％より小さい場合である。
【００７７】
図５ｂに別の実施形態を示す。３つの点ｐ０，ｐ１，ｐ２が円弧でつながっている。距離ｄ１は、線分ｐ０ｐ１の中間部分と円弧ｐ０ｐ１ｐ２の最短距離である。距離ｄ２は、線分ｐ１ｐ２の中間部分と円弧ｐ０ｐ１ｐ２の最短距離である。距離ｄ１は、線分ｐ０ｐ１の中点と円弧ｐ０ｐ１ｐ２の最短距離である。距離ｄ２は、線分ｐ１ｐ２の中点と円弧ｐ０ｐ１ｐ２の最短距離である。３つの点の中間の点Ｐ１の平滑化には、次の３つの条件または基準が必要である。
試験１：ｐ０ｐ１およびｐ１ｐ２が線であること。
試験２：最大値｛ｄ１，ｄ２｝＜０．０００５インチであること。ｄ１およびｄ２が、所定の距離である約０．０００２〜０．００１インチより小さく、好ましくは０．０００５インチより小さいこと。
試験３：角度＞１４５度、または、約１３０〜１６０度の間の所定角度より大きいこと。
上の３つの条件が合わない場合、点ｐ１は、平滑化の印を付けない。
【００７８】
図１８は、図５ｂを参照した本発明の方法１８００を示す。第１の工程１８０２で、データ経路の３つの連続する点を識別する。例えば、点ｐ０，ｐ１，ｐ２と識別する。工程１８０４で、第１の線の距離（点の第１および第２の間）および第２の線の距離（点の第２および第３の間）の確認を行なう。具体的には、点ｐ０，ｐ１の距離５１８、点ｐ１，ｐ２の距離５２０の確認である。次の工程１８０６で、第１の線（第１の点と第２の点）と第２の線（第２の点と第３の点）間の折り返し角を測定する。図５ｂで、第１の線（点ｐ０と点ｐ１）と第２の線（点ｐ１と点ｐ２）間の折り返し角θを測定する。工程１８０８，１８１０，１８１２で、第２の点で平滑化を実行する。この場合、第１および／または第２の線の距離が、閾値の線の距離より小さく、折り返し角が、閾値の折り返し角が大きい。第１および／または第２の線の距離５１８，５２０が、閾値の線の距離より小さく、折り返し角θが、閾値の折り返し角が大きい。同様に他のデータの３つの連続するデータ点を識別（工程１８０２）し、連続した点ｐ１，ｐ２，ｐ３（図示せず）を識別する。
【００７９】
平滑化の調整
【００８０】
第２の操作で、線データを平滑化のために調整する。第２の操作で、連続した３次元の点の３次元曲線の曲率変化を低減する。曲線での所定点の部分的な曲率は、主に隣接する点で決める。所定の点もしくはその隣接する点の位置の小さな変化は、その部分的な曲率に顕著な変化となる。従って、所定の許容差の範囲にある点の位置を修正する。修正した点の３次元曲線の曲率変化を低減する。曲線の曲率変化が小さければ、曲線はより平滑になる。
【００８１】
第２の操作は、平滑化の待ち行列２０６の第１の操作で処理された一群の４つの連続した目標点を順次照合し、中間の点の位置を調整し部分的な曲率を修正する。点ｐ1，ｐ2，ｐ3，ｐ4を待ち行列２０６の第１の操作で処理された連続した線の目標点とする。点ｐ2，ｐ3に「平滑化」のタグを付け、この中間の点を少し移動させる。点の位置を調整するアルゴリズムを図６に示す。このアルゴリズムは、下記工程から成る。
１）点ｐ1，ｐ3，ｐ4を通る円弧１３４を形成する。
２）点ｐ1，ｐ2，ｐ4を通る円弧１２４を形成する。
３）点ｐ2を円弧１３４に動かし、動かす距離を所定の許容差内に維持する。
４）点ｐ3を円弧１２４に動かし、動かす距離を所定の許容差内に維持する。
【００８２】
位置調整を４つの連続する点の群で連続して進める。
【００８３】
１つの群の調整後、次の群で処理する。次の群は、前の群の最後の３つの点および次の線の要素の新しい目標点を含む。第２の操作の処理による平滑化待ち行列２０６の線要素の目標点を、所定の許容差の範囲で動かす。第２操作前に比べて、これらの点の曲率が、より滑らかにつまり急激でないようにする。
【００８４】
工程２１２は、線の動きの調整による平滑化を含む。線の移動は、互いに調整して、経路の曲率を制御し円弧の調整を準備する。図６ａの場合、２つの構成円弧６０２，６０４は、各々、点ｐ0，ｐ1，ｐ3およびｐ0，ｐ2，ｐ3を通る。点ｐ1，ｐ2を、構成円弧６０２と円弧６０４の間に動かしている。点ｐ1，ｐ2を互いに近づけ、点ｐ2は、構成円弧６０２，６０４の略中間に動かし、点ｐ1を構成円弧６０４にわずか動かしている。点ｐ1を構成円弧６０２，６０４の中間に動かしていない。むしろ、点ｐ1を反対側の構成円弧６０４までの距離の半分より少なく移動している。特に、点ｐ1を、間隔Ｓ1（図７の点ｐ1と構成円弧６０４）の０〜０．５に等しい距離移動させる。０．４５より小さくても良い。図６ａの実施形態では、比率は、約０．１８〜０．２０である。その比率は、数学的に確立したもので、好ましい結果となる。
【００８５】
図７は、拡大図で、より精密に実施形態での点ｐ1，ｐ2の動きの方向および距離を示す。線７０２は、点ｐ2に交差し、点ｐ2で円弧６０４の接する。間隔Ｓ2は、点ｐ2と線７０２に垂直な方向の円弧６０２で規定される。点ｐ2を、線７０２に対し垂直方向に、距離Ｓ2の０．４５〜０．５５の比率の距離で動かす。図６ａ，７では、その比率は約０．５０である。線７０４は、点ｐ1に交差し、点ｐ1で円弧６０２の接する。間隔Ｓ1は、点ｐ1と線７０４に垂直な方向の円弧６０４で規定される。点ｐ1を、線７０４に対し垂直方向に、距離Ｓ1の約０．１９の比率の距離で動かす。
【００８６】
プログラムした経路で、各継続する動きに処理を繰り返す。図８は、次の点ｐ4が識別されて処理の繰り返しを示す。規定する２つの構成円弧８０２，８０４は、各々、点ｐ1，ｐ2，ｐ4および点ｐ1，ｐ3，ｐ4を通る。点ｐ2およびｐ3を、各々０．１９および０．５０だけ動かしている。これは、図６ａ，７の点ｐ1，ｐ2の動きと略同様である。
【００８７】
図６ｂは、線の動きの調整で平滑化をする他の実施形態を示す。線の移動を互いに調整し、経路の曲率を制御し、円弧の調整を準備する。２つの構成円弧６１２，６１４は、同一平面でなく、各々、点ｐ0，ｐ1，ｐ3および点ｐ0，ｐ2，ｐ3を通っている。円弧６１２，６１４の面が交差する線を６１６、円弧６１２および６１４で規定される円の中心をｃ２およびｃ１で表示している。点ｐ１の円弧６１４の平面への投射は、点ｑ１で示す。点ｐ１および点ｑ１を通る線は、円弧６１４の面に垂直である。同様に、点ｐ２の円弧６１２の平面への投射は、点ｑ２で示す。点ｐ２および点ｑ２を通る線は、円弧６１２の面に垂直である。点ｐ１から円弧６１４の最短点をｓ１、点ｐ２から円弧６１２の最短点をｓ２で示している。
【００８８】
点の調整は、その点と隣接する点が平滑化の印が付けられた場合である。平滑化の表示を行なう点は、上記の３つの試験または条件の各々を満たす場合である。つまり、ｐ０ｐ１およびｐ１ｐ２が線である、最大値｛ｄ１，ｄ２｝＜０．０００５インチであること、角度＞１４３．２度であること。図６ｂの例で、ｐ１を平滑化する表示をし、点ｐ０およびｐ２のいずれか又は両方を平滑化する場合、点ｐ１を調整する。可能であれば点ｐ１を点ｐ１からｓ１に延びる調整ベクトルｖ１に沿って調整する。同様に、ｐ２を平滑化する表示をし、点ｐ１およびｐ３のいずれか又は両方を平滑化する場合、点ｐ２を調整する。可能であれば点ｐ２を点ｐ２からｓ２に延びる調整ベクトルｖ２に沿って調整する。
【００８９】
円弧６１２，６１４に関連する調整後、次の４つの点のセット（ｐ１，ｐ２，ｐ３，ｐ４）で形成される円弧に関わる調整を続ける。調整を点ｐ１，ｐ２，ｐ４で規定される円弧および点ｐ１，ｐ３，ｐ４で規定される円弧に基づいて行なう。図６ａ，７の実施形態では、調整処理は、経路に沿う４つの点の次のセットの計算でいつまでも続ける。
【００９０】
調整ベクトルに沿う点の位置の調整の大きさは、隣接する点の１つが平滑化の表示の有無で決まる。特に、印の付いた点が、印の無い点の直後または直前に有る場合、即ち、印の付いた点が、印の無い点と印のある点の間に位置する場合、印の付いた点の位置を、調整ベクトルの長さの半分だけ調整する。つまり、印の付いた点を調整ベクトルに沿い中間まで動かす。つまり、点を０．５の係数または因数で動かす。印の付いた点が、２つの他の印の付いた点の間に位置する場合、点の位置の調整を、０．１９の係数または因数で２回調整を行なう。第１の調整で、調整ベクトルの方向及び大きさを、調整点が図６ｂに示す計算で使用する４つの点の第２となるように決める。第２の調整で、調整ベクトルの方向及び大きさを、調整点が４つの点の第３となるように決める。
【００９１】
０．１９および０．５の調整因数を図６ｂの実施形態と併せて説明した。しかし、図６ａ，７の実施形態では、この因数は、各々、０．１８−０．２０および０．４５−０．５５の範囲となる。
【００９２】
点の調整の全体の大きさは、一定値で制限される。１つの実施形態では、調整の全長の制限は、０．０００２インチである。計算された全調整が、０．０００２インチよりも大きい場合、実際に実行する調整は、計算した調整の方向で、０．０００２インチに設定する。
【００９３】
図６ｂの実施形態を更に分かりやすく説明する。全体の調整が調整制限（例、０．０００２インチ）より小さいことの検証は、省略する。
ケース１：
条件：ｐ０（平滑化の目印無し）、ｐ１（平滑化の目印有り）、ｐ２（平滑化の目印無し）。
結果：点ｐ１が他の目印有りの点に隣接せず、ｐ１に平滑化の目印有りでも、ｐ１の調整はしない。
ケース２：
条件：ｐ０（平滑化の目印無し）、ｐ１，ｐ２（平滑化の目印有り）、ｐ３（平滑化の目印無し）。
結果：ｐ１＝ｐ１＋０．５＊ｖ１，ｐ２＝ｐ２＋０．５＊ｖ２
ケース３：
条件：ｐ０（平滑化の目印無し）、ｐ１，ｐ２，ｐ３（平滑化の目印有り）、ｐ４（平滑化の目印無し）。
結果：ｐ１＝ｐ１＋０．５＊ｖ１，ｐ２＝ｐ２＋０．１８７７＊ｖ２＋０．１８７７＊ｖ２’，ｐ３＝ｐ３＋０．５＊ｖ３（ｖ１，ｖ２は、点ｐ０，ｐ１，ｐ２，ｐ３から、ｖ２’，ｖ３は、点ｐ１，ｐ２，ｐ３，ｐ４から計算している）。
ケース４：
条件：ｐ０（平滑化の目印無し）、ｐ１，ｐ２，ｐ３，ｐ４（平滑化の目印有り）。
結果：ｐ１＝ｐ１＋０．５＊ｖ１，ｐ２＝ｐ２＋０．１８７７＊ｖ２＋０．１８７７＊ｖ２’，ｐ３＝ｐ３＋０．１８７７＊ｖ３＋０．１８７７＊ｖ３’（ｖ１，ｖ２は、点ｐ０，ｐ１，ｐ２，ｐ３から、ｖ２’，ｖ３は、点ｐ１，ｐ２，ｐ３，ｐ４から、ｖ３’は、点ｐ２，ｐ３，ｐ４，ｐ５から計算している）。
【００９４】
図１９は、図６ｂを参照した本発明の方法１９００を説明している。図６ｂは、動体の経路を示す。第１の工程１９０２で、第１の点、第２の点、第３の点、第４の点を含むデータ経路の４つの連続した点を識別する。例えば、点ｐ１，ｐ２，ｐ３，ｐ４を識別する。工程１９０４で、第１、第２および第３の点で規定される第１の円弧を位置付ける。図６ｂの説明で、点ｐ０，ｐ１，ｐ３で規定される第１の円弧６１２が識別される。工程１９０６で、第１、第３および第４の点で規定される第２の円弧が定められる。図６ｂで、点ｐ０，ｐ２，ｐ３で規定される第２の円弧６１４が、識別される。最後の工程１９０８で、第２の点を、第１の円弧と第２の円弧との間の領域に動かす。例えば、点ｐ１を調整ベクトルｖ１に沿って円弧６１２と円弧６１４との間の領域に動かす。
【００９５】
工程２１４（図２）は、２重円弧アルゴリズムを使用する平滑化データを含む。線の動きを２つの円弧の動きに変換する。２つの円弧は、互いに接しており、所定の経路の許容差を維持している。図９に示すように、点Ｐ0，Ｐ1の線の動きを、点Ｐ0，Ｐ1を伴う２つの円弧の動きに置き換えることが出来る。特に、点Ｐ0から点Ｐ1の線の動き９０２を、円弧Ａｒｃ1（点Ｐ0から円弧の交点Ｐ’）と円弧Ａｒｃ2（円弧の交点Ｐ’から点Ｐ1）に変換する。円弧Ａｒｃ1，Ａｒｃ2は、互いに点Ｐ’で接続され、互いに点Ｐ’で接している。円弧Ａｒｃ1は、点Ｐ0で終わる先行する動き９０４に接している。先行する動き９０４は、線または円弧の動きである。さらに、円弧Ａｒｃ2は、続く又は次の動き９０６点（Ｐ1で始まる）に接する。次の動き９０６は、線の動き又は円弧の動きである。次の点Ｐ2（図９に示さず）の調整位置の確定後に規定しても良い。全てのプログラムの動きの間の平滑化が可能となる。実施形態では、円弧Ａｒｃ１の半径９０８は、円弧９０８の半径９１０と異なる。図９は、半径９０８，９１０の部分のみを示す。データ平滑化は、工作機械経路の急な曲がり又は途切れを平滑にし、より平滑な工作機械の動きを提供する。
【００９６】
図２０は、図９を参照した本発明の方法２０００を説明している。第１の工程２００２で、データ経路の第１の点から第２の点の線の動きを識別する。例えば、点Ｐ0から点Ｐ1の線の動き９０２を識別する。第２の工程２００４で、線の動きは、第１の円弧および第２の円弧で置き換える。第１の円弧は、第１の点で開始し、中継点で終了し、第２の円弧は、中継点で開始し、第２の点で終了する。図９の説明では、線の動き９０２は、円弧Ａｒｃ1および円弧Ａｒｃ2で置き換えている。円弧Ａｒｃ1は、点Ｐ0で開始し、中継点Ｐ’で終了し、円弧Ａｒｃ2は、中継点Ｐ’で開始し、第２の点Ｐ1で終了する。
【００９７】
２重円弧平滑化
【００９８】
第３の操作では、２重円弧アルゴリズムで平滑化を行なう。第３の操作は、所定の許容差を維持しながら、線を円弧に変換する。円弧は、互いに接している。この第３の操作は、平滑化待ち行列２０６の第２の操作で処理される連続した線の目標点を順次照合し、線から円弧の変換の実行から成る。
【００９９】
２重円弧アルゴリズムは、第３の操作のためにある。このアルゴリズムで、最終の平滑化した経路が、平滑化する線分の全ての目標点を通過する。従って、許容差の条件が十分に満たされる。
【０１００】
２重円弧アルゴリズムは、パイプライン方式で同時に２つの作用を行なう。最初に、アルゴリズムは、平滑化する線分の各目標点での接線ベクトルを決定する。次に、アルゴリズムは、平滑化する線分を置き換える２重円弧を生成する。点ｐ1，ｐ2，ｐ3，ｐ4，ｐ5，ｐ6，・・・，ｐnを平滑化の待ち行列２０６の第２の操作で処理された連続した線の目標点とする。第１の作用は、次の工程を実行する。
・ｐi，ｐi-1またはｐi+1に、平滑化の目印のタグが有る場合、これらの点の位置に基づき、点ｐiでの接線ベクトルｔi（図２９）を計算する。３点のｐi-1，ｐi，ｐi+1は、円弧Ａｒｃｐi-1ｐiｐi+1を規定し、ｔiは、点ｐiでその円弧の接線ベクトルとなる。
・ｐi-1，ｐi，ｐi+1のいずれも平滑化のタグが無い場合、平滑化を行なわない。
・ｉを１だけ増分する。
・上記工程を繰り返す。
【０１０１】
上記作用は、平滑化する線分の目標点での一連の所望の接線ベクトルを形成する。このベクトルを、ｔ1，ｔ2，ｔ3，ｔ4，ｔ5，ｔ6，・・・ｔnで示す。接線ベクトルを「所望の接線ベクトル」と呼称してもよい。これらベクトルの方向の変化が緩やかで、平滑化した経路で曲率変化を滑らかにする。第２の作用は、次の工程からなる。
・点ｐi，ｐi+1を照合し、対応する所望の接線ベクトルｔi，ｔi+1が、これらの点に対して計算されていることを見る。
・接線ベクトルｔi，ｔi+1の両方が得られる場合、一対の３次元円弧ａi1，ａi2を形成する。
・ａi1は、点ｐiで開始し、接線ベクトルｔiに接する。
・ａi1は、点ｐiと点ｐi+1との間の点ｐでａi2に接する。
・ａi2は、点ｐで開始し、点ｐi+1で終了し、接線ベクトルｔi+1に接する。
・接線ベクトルのｔi，ｔi+1の何れも得られない場合、何もしない。
・ｉを１だけ増す。
・上記工程を繰り返す。
【０１０２】
他の実施形態では、第２の作用が次の工程を行なう。
・ｐi，ｐi+1，ｐi+2が、平滑化の印があり、その点に対応する所望の接線ベクトルｔi，ｔi+1，ｔi+2が計算されている場合。一対の３次元円弧ａi1，ａi2を形成する。
・ａi1は、点ｐiで開始し、接線ベクトルｔiに接する。
・ａi1は、点ｐiと点ｐi+2間の点ｐ’でａi2に接する。
・ａi2は、点ｐ’で開始し、点ｐi+2で終了し、接線ベクトルｔi+2に接する。
・ｐi+1と最も近い円弧の最短距離（ｄ）を調べる。その距離が、所定の許容差内であれば、その２重円弧は有効である。
・ｐiとｐi+2の間の２重円弧が向こうの場合、ｐiとｐi+1の間に一対の３次元円弧ａi1，ａi2を形成する。
・ａi1は、点ｐiで開始し、接線ベクトルｔiに接する。
・ａi1は、点ｐiと点ｐi+1間の点ｐ’でａi2に接する。
・ａi2は、点ｐ’で開始し、点ｐi+1で終了し、接線ベクトルｔi+1に接する。
・上記工程を繰返し、ｐi+1とｐi+2の間に２重円弧を形成する。
・ｉを２だけ増す。
・上記工程を繰り返す。
【０１０３】
上記記載の実施形態の第２の作用の操作を図３０，３１で説明する。図３０に、点ｐ０，ｐ１，ｐ２に平滑化の印をつけている。一対の３次元円弧ａ１，ａ２が形成され、円弧ａ１は、点ｐ０で開始、接線ベクトルｔ１に接している。円弧ａ１は、ｐ０とｐ２間の点ｐ’で円弧ａ２に接している。円弧ａ２は、点ｐ’で開始し、点ｐ２で終了し、接線ベクトルｔ２に接している。点ｐ１と２つの円弧の近い方の円弧ａ１との距離ｄが、所定または予め決めた許容差内にある場合、２重円弧ａ１，ａ２は、有効である。
【０１０４】
他方で、２重円弧ａ１，ａ２が無効の場合、つまり、距離ｄが、所定の許容差内でない場合、他の一対の３次元円弧ａ３，ａ４（図３１）が形成される。円弧ａ３は、点ｐ０で開始し、接線ベクトルｔ０に接し、円弧ａ３は、点ｐ０とｐ１間の点ｐ”で円弧ａ４に接する、円弧ａ４は、点ｐ”で開始し、点ｐ１で終了し、接線ベクトルｔ１に接する。上記工程を繰返し、点ｐ１，ｐ２間で他の一対の３次元円弧を形成する。円弧ａ１〜ａ４の何れか又は全てが円弧で、その半径はそれぞれ異なっていても良い。
【０１０５】
点ｐ０，ｐ１，ｐ２間で完成した２重円弧平滑化で、上記記載の第２の作用を、経路、点ｐ２〜ｐ４に沿った次の３点に対して繰り返す。さらに、第２の作用を、経路に沿う次の３点のセットにそれぞれ繰り返す。
【０１０６】
上記の２重円弧平滑化の実施形態は、ｐ０，ｐ１，ｐ２の各々が平滑化の印が有る場合である。４つの点ｐ０〜ｐ３で、点ｐ１〜ｐ３に平滑化の印有りとする。接線ベクトルｔ０，ｔ１を点ｐ０〜ｐ２で規定される円弧で導出し、接線ベクトルｔ２を点ｐ１〜ｐ３で規定される円弧で導出する。次の５つ工程を経る。
１．２重円弧、ｐ０からｐ’の円弧ａ１およびｐ’からｐ２の円弧ａ２は、点ｐ’に接し、（ｐ０，ｐ２，ｔ０，ｔ２）から生成する（図３０参照）。
２．ｐ１から最短距離にある円弧を調べる。ｘ，ｙ，ｚの距離が所定の距離よりも小さい場合、例えば０．０００２インチ、２重円弧ａ１，ａ２は、有効である。
３．２重円弧ａ１，ａ２が無効の場合、２重円弧ａ３，ａ４を点ｐ０，ｐ１間に形成し、接線ベクトルｔ０，ｔ１に基づく。２つの円弧ａ１，ａ２は、点ｐ”に接する。
４．２重円弧に許容差を調べても良い。距離ｄは、点ｐ”と（点ｐ０，ｐ１間の）線の最短距離である。その距離が所定の距離、例えば０．０００５インチよりも小さい場合、２重円弧ａ３，ａ４は有効である。そうでない場合、２重円弧ａ３，ａ４は無効で、点ｐ０，ｐ１間で経路を規定する。この経路は、２点間の線となる。
５．工程３，４を繰返し、接線ベクトルｔ１，ｔ２に基づきｐ１，ｐ２間で２重円弧を生成する。
【０１０７】
２重円弧アルゴリズムで一対の３次元円弧を有する線分を置き換える。２重円弧アルゴリズムで形成された隣接する円弧は、互いに接しており、全ての円弧が、減少した曲率の変化となる。２重円弧アルゴリズムは、特にＴＢＣと併せての使用で適している。幾つかの利点がある。第１に、大部分の３次元表面および曲線に対し、曲率が一定に変化する。互いに接する短い円弧は、長い円弧に比べて、より良い平滑な近似をもたらす。第２として、５または６軸の機械加工では、短い３次元ＸＹＺ円弧を、ＡＢＣ軸空間での点から点の動きに調整できる。これは顕著な利点となる。非ＴＢＣの長い円弧の３次元平滑化を、５または６軸の機械加工に拡張するのは難しいためである。第３として、全ての３次元円弧命令を、直接に真の円弧技術を使用するＴＢＣで実行できる。真の円弧技術は、多角形近似を使用しないで真の円弧経路に沿って動きを制御する。平滑化の終了後、平滑化待ち行列２０６の要素（位置決め命令、線命令、円弧命令およびプログラム終了命令を含む）を、先読み待ち行列２０８に送る。
【０１０８】
図２１は、上記記載の本発明の方法２１００を図５ｂ，６ｂ，３０，３１を参照して説明する。第１の工程２１０２で、第１、第２、第３、第４の点から成る４つの連続した点を識別する。実施形態では、４つの点は、ｐ０〜ｐ３である（図６ｂ参照）。第２の工程２１０４で、第２の点が平滑化に適しているかを決める。例えば、図５ｂで、点ｐ１が平滑化に適しているかを決める。否の場合、操作は工程２１０２に戻り、他の４つの連続した点を識別する。例えば、４つの連続する点ｐ１〜ｐ４を識別する。第２の点が平滑化に適している場合、第１、第２、第４の点で規定される第１の円弧が定まる（工程２１０６）。図６ｂの実施形態で、円弧６１２が識別される。次の工程２１０８で、第１、第３、第４の点で規定される第２の円弧が定まる。図６ｂの実施形態で、円弧６１４が識別される。次に、工程２１１０で、第２の点を第１円弧と第２円弧の間の領域に移動させる。図６ｂで、点ｐ１を、円弧６１２と円弧６１４間の領域に調整ベクトルｖ１に沿って動かす。最後に、工程２１１２で、第２の点に関する線の動きを、第２の点に関する少なくとも１つの円弧で置換えても良い。例えば、点ｐ１に到る線の動き、または点ｐ１から始まる線の動きを、図３０，３１に示す円弧の動きで置き換えても良い。
【０１０９】
付加的先読み
【０１１０】
先読み待ち行列２０８内の付加的先読み操作で、プログラムデータで全ての速度変化で加速または減速できる距離を保証している。各プログラムした動きで、止まる距離を計算している。軸を減速し、Ｓ曲線の加速の速度を零にする距離である。Ｓ曲線と呼ぶのは、図１０に示す速度プロフィール（時間対速度）の加速／減速が、直線でなくＳのように見える。止まる距離は、次の低い方で決める。ａ）現在および次の動きの角度で決まる最大の動きの速度、ｂ）機械加工モデルで決まる経路曲率の最大の動きの速度。
【０１１１】
先読み操作は、全ての速度変化の加速または減速の十分な距離を保証する。この利点は、機械のぶつかりとドエル印を低減でき、機械加工での表面仕上げが、改善される。
【０１１２】
３つの作用を先読み操作に仕組んでも良い。作用は、３次平滑化、予備先読み、付加的先読みである。付加的先読み作用は、速度及び距離情報の先読み待ち行列２０８での検索、および、機械が１つの動きの命令から次の命令に適切に加速／減速する十分な距離を決めることから成る。もし距離が十分でない場合、情報を保存し、動作カーネルで使用し、機械が適切に加速／減速するように速度を下げる。
【０１１３】
停止距離と速度の間には数学的な変換がある。以下詳細に説明するが、適切な速度は、停止距離とＳ曲線から計算する。
【０１１４】
付加的先読みアルゴリズムは、異なる部分の幾何学に可能な最大速度の情報が必要である。このために許容差／円弧半径／速度表が必要である。表から、異なる許容差の異なる半径または曲率の円弧に可能な速度を得る。
【０１１５】
付加的先読み作用は、先読み待ち行列２０８の先頭の新規の動きの命令を検査し、次の工程で、以前の命令の停止距離を計算する。
・前の命令とそれに先立つ命令とを比較し、この命令間の角度または曲率を得て、この角度で最大の結合点の速度を決める。この最大速度は、２つの連続する動きの命令の結合点での可能な最大速度である。
・許容差／円弧半径／速度表を見る。動きの経路および要求される許容差から、前命令の動き経路の可能な最大の経路−速度を決める。
・最大の結合点速度の小さい方および最大の経路−速度を取り、前命令の停止距離を計算し、この小さい速度をＳ曲線速度プロフィールにより停止距離に変換する。
・計算した停止距離を前命令に取り付ける。
【０１１６】
先読みは、動的な処理である。連続した経路変化は、前に処理した命令に影響を及ぼす。新規命令が先読み待ち行列２０８に加えられ、停止距離が新規命令に計算されるたびに、既に処理された待ち行列の全ての命令が見直され、これらの命令の以前に計算された停止距離の更新の要否を決める。新規動きを処理し、先読み待ち行列２０８に置いてから、待ち行列２０８の全ての以前の動きを見直し、必要に応じて、速度を下方に調整する。この最終の予備処理の操作は、曲線前の道路に速度制限の目印を置くのに類似している。運転者が、その曲線を安全に操縦する為である。
【０１１７】
先読み処理は、結合／経路送り速度変化を決める第１の工程２１６および停止距離を考える第２の工程２１８を含む。工程２１６で、点Ｐi-1から点Ｐiの経路に沿う送り速度変化を決める。工程２１８で、図１１に示す線分Ｌiを、点Ｐi-1，Ｐi間で決める。停止距離を点Ｐi-1および点Ｐiの各々で決める。点Ｐi-1での停止距離は、距離Ｌiと点Ｐiでの停止距離の合計以下にする。点Ｐiを越える速度の制約に適合しないこともある。この合計が、付加的先読みの「加法」を意味する。点Ｐi-1の停止距離が、Ｌiと点Ｐiでの停止距離の総和よりも大きい場合、点Ｐi-1での速度を下げて、点Ｐi-1での停止距離を、Ｌiと点Ｐiでの停止距離の総和に等しくする。方程式では、
（停止距離i＋ΣＬi）＜停止距離i-1
の場合、
（停止距離i＋ΣＬｉ）＝停止距離i-1
にする。
【０１１８】
他の形式で、ｃｍｄ1，ｃｍｄ2，ｃｍｄ3，ｃｍｄ4，ｃｍｄ5，ｃｍｄ6，・・・，ｃｍｄiを処理された先読み待ち行列２０８の連続した命令とする。命令ｃｍｄj，０＜ｊ＜ｉ＋１の場合、経路長さをｌｅｎjそして停止距離をｓｔｏｐｄｉｓjとする。有効停止距離条件は、下記で規定する。命令ｃｍｄjの停止距離ｓｔｏｐｄｉｓjが、経路長さｌｅｎj+1と命令ｃｍｄj+1の停止距離ｓｔｏｐｄｉｓj+1の総和以下の場合、命令ｃｍｄjは、「有効停止距離条件」を満たす。
【０１１９】
新しい命令ｃｍｄi+1を受取り処理した時、命令は、経路長さｌｅｎi+1および停止距離ｓｔｏｐｄｉｓi+1となる。ｊ＝ｉとし、付加的先読みアルゴリズムは、次の工程を実行する。
・命令ｃｍｄjを調べて、その命令が「有効停止距離条件」を満たしているかを決める。「有効停止距離条件」は、ｓｔｏｐｄｉsjが、ｌｅｎj+1とｓｔｏｐｄｉｓj+1の総和以下である。
・命令ｃｍｄjが、有効停止距離条件を満たさない場合、命令ｃｍｄjの停止距離をｌｅｎj+1とｓｔｏｐｄｉｓj+1の総和にする。ｓｔｏｐｄｉｓjが、ｌｅｎj+1とｓｔｏｐｄｉｓj+1の総和より大きい場合である。
・命令ｃｍｄjが有効停止距離条件を満たしている場合、その停止距離を変更せず、更新操作が完了している。
・ｊが０の場合、更新は終了する。
・ｊ＝ｊ−１とし、ｊを１だけ下げる。
・上記工程を繰り返す。
【０１２０】
付加的先読み作用が、逆方向で、先読み待ち行列２０８で以前に処理された命令を順次見直し、有効停止距離条件を調べ、命令の停止距離の更新をすると、更新操作は、有効停止距離条件を満たす第１の命令が見つかると止める。命令が有効停止距離条件を満たすので、命令の停止距離は変化しない。その命令より前の全ての命令が満たされ、なおも有効停止距離条件を満たす。何も変化せず変更の必要も無い。これが付加的先読みアルゴリズムの好都合な特徴である。このアルゴリズムは、先読み操作で大きな効率をもたらす。全体の先読み待ち行列２０８を振り返り更新をする代わりに、待ち行列のほんのわずかな要素を、概して更新すればよい。
【０１２１】
停止距離およびストッパ
【０１２２】
付加的先読みアルゴリズムは、停止距離およびストッパの概念を導入する。公称送り速度ｖ1（図３２ａ）および終点速度ｖ0の動き命令の停止距離は、目標点（図３２ｂ）から完全に停止する点までに走行する距離で規定する。完全に停止する点は、Ｓ曲線の速度プロフィールの場合、図３２ａの斜線部分となる。ストッパは、動きの命令の仮想的な目標点である。システムが、公称の送り速度ｖ1から減少し、Ｓ曲線のストッパで完全な停止をする場合、システムは、所望の終点速度ｖ0で実際の目標点を通過する。停止距離は、目標点とストッパ間の距離で規定される。
【０１２３】
動きの命令の公称送り速度ｖ1が決まると、停止距離と終点速度ｖ0間の相関的な関係が存在する。Ｓ曲線の速度プロフィールの固定を想定している。最大加速度と急な動きを固定している。ここでは、特に記載しない限り、Ｓ曲線のプロフィールを固定している。従って、停止距離は、終点速度に直接の関連を有している。停止距離が与えられると、終点の速度は、一意的に決まる。逆も同様である。付加的先読みアルゴリズムは、終点速度の計量として停止距離を用いる。その計量は、アルゴリズムを計算的に効率的なものにする。以下に説明をする。
【０１２４】
ストッパを、Ｓ曲線制御で、動きのプロフィールの設計に使用できる。Ｓ曲線制御は、実際の目標点の代わりにストッパを目的とする。Ｓ曲線制御は、速度プロフィールを生成する。 そのプロフィールで、制御された工作機械が、適切な時間で同じ点の実際の目標点を通過する。工作機械が、所望の減速となる。
【０１２５】
動作命令の速度制限
【０１２６】
付加的先読みアルゴリズムでは、各動きの命令は、４つの速度制限を備えている。つまり、特定の送り速度、機械の可能な速度、経路の速度制限および結合速度制限。特定の送り速度は、上のレベルの動き設計による所望の送り速度値である。機械の可能な速度は、機械の速度の制限である。経路速度制限は、円弧の動きの制限で、円弧の半径および許容差の仕様に依存する。円弧の半径および許容差が大きくなると、最大の経路速度制限も大きくなる。結合速度制限は、２つの連続した動きの命令の結合での速度軽減である。結合速度制限は、２つの動きの間の角度および許容差の仕様に依存する。許容差が大きく、角度が小さくなると、結合速度制限も大きくなる。
【０１２７】
付加的先読みアルゴリズムでは、公称の送り速度は、特定の送り速度、機械の可能な速度および経路速度制限の最も低い値である。例えば、規定の送り速度が、機会の可能な速度および経路速度制限よりも高い場合、先読みアルゴリズムは、送り速度を、機械の可能な速度および経路速度制限の小さい方の値に、強制的に下げる。
【０１２８】
動きの命令の終点での減速した送り速度は、結合速度制限に依存する。その動きの命令および次の動きの命令の公称送り速度に依存するのは勿論である。公称送り速度は、最も小さい値であり、減速は、現在の動きの部分で起き、加速は、次の動きの部分で起きる。現在の動きの部分の送り速度は、公称値より小さくなる。付加的先読みアルゴリズムは、公称と減速した送り速度を用いて停止距離を計算する。
【０１２９】
有効停止距離条件
【０１３０】
先読みアルゴリズムは、工作機械と工作機械前方の位置間の距離を十分に保証する。 この保証で、工作機械がその位置に達する時に、所望の速度水準に、その工作機械の速度変える。付加的先読みで、この条件を「有効停止距離条件」と呼び、数学的に方程式（１）で規定する。
（１）  ｄｓi≦ｌi+1＋ｄｓi+1
ｄｓおよびｌは、それぞれ、停止距離および動き部分の長さを表し、下付き文字ｉ，ｉ＋１は、動きの命令の指標を表す。図３３の図表で、動きの命令ｃｍｄ＿ｉは、点ｐ＿ｉの終点、ストッパ＿ｉのストッパ点および停止距離ｄｓ＿ｉを有している。ｃｍｄ＿ｉの停止距離が、ｃｍｄ＿（ｉ＋１）の長さと停止距離の総和を越えない、または、ストッパ＿ｉが、ストッパ＿（ｉ＋１）の直前にある場合、ｃｍｄ＿ｉは、有効停止距離条件を満たす。
【０１３１】
有効停止距離条件は、他の方法で方程式（２）のようにも記載できる。
（２）  ｄｓi−ｄｓi+1≦ｌi+1
停止距離ｄｓ＿ｉ，ｄｓ＿（ｉ＋１）は、各々、動きｃｍｄ＿ｉの終点ｐ＿ｉでの送り速度および動きｃｍｄ＿（ｉ＋１）の終点ｐ＿（ｉ＋１）での送り速度に対応する。方程式（２）は、部分長さｌｅｎｇｔｈ＿（ｉ＋１）が、十分に長く、点ｐ＿ｉでの送り速度から点ｐ＿（ｉ＋１）での送り速度の速度の減速を可能とする。
【０１３２】
付加的先読みと非付加的先読み
【０１３３】
ＴＢＣ付加的先読みアルゴリズムと非付加的先読みとの相違点は、付加的先読みアルゴリズムは、ストッパを目標にしたＳ曲線を生成し、その曲線の一部のみを使用する。速度を、目標点でｖ1からｖ0に下げる。非付加的先読みは、実際の目標点を目標にしたＳ曲線を生成し、速度を目標点で、ｖ1からｖ0に下げる。
【０１３４】
図３４は、付加的および非付加的のＳ曲線速度プロフィールの比較を示す。両方のプロフィールで、速度は、目標点でｖ1からｖ0に下がる。付加的Ｓ曲線の場合、減速は、ｔtbc1とｔtbc0の間で起き、非付加的Ｓ曲線の場合、ｔwm1とｔwm0の間で起きる。従って、非付加的Ｓ曲線は、速度をｖ1からｖ0の同じ減速に、付加的Ｓ曲線よりも長い時間と長い距離を要求する。
【０１３５】
付加的先読みは、動的な処理である。連続した経路変化は、先に処理した命令に影響を及ぼす。新しい命令が先読み待ち行列に加えられ、停止距離がその命令に対し計算されると、既に処理された待ち行列の全ての命令を見直し、命令に対し既に計算された停止距離の更新の必要性を見る。
【０１３６】
新しい命令ｃｍｄiを受取り処理すると、その命令は、経路長さｌ＿ｉ、停止距離ｄ＿ｉを備える。付加的先読みアルゴリズムは、次の工程を実行する。
・命令ｃｍｄi-1を照合し、有効停止距離条件を満たすかを見る。ｄｓ＿（ｉ−１）が、ｌ＿ｉとｄ＿ｉの総和以下を確認する。
・ｃｍｄi-1が、有効停止距離条件を満たさない場合、つまり、ｄｓ＿（ｉ−１）が、ｌ＿ｉとｄ＿ｉの総和より大きい場合、命令ｃｍｄi-1の停止距離ｄｓ＿（ｉ−１）をｌ＿ｉとｄ＿ｉの総和で置き換える。
・ｃｍｄi-1が、有効停止距離条件を満たす場合、つまり、ｄｓ＿（ｉ−１）が、ｌ＿ｉとｄ＿ｉの総和以下の場合、命令ｃｍｄi-1の停止距離ｄｓ＿（ｉ−１）は変化せず、更新操作を終了する。
・（ｉ−１）が０の場合、更新操作を終了する。
・ｉの値を減少させ、上記工程を繰り返す。
【０１３７】
付加的先読み作用が、先読み待ち行列で以前に処理された命令を逆に順次見直し、 有効停止距離条件を確認し、命令の停止距離を更新し、有効停止距離条件に合う第１の命令が見つかると、更新操作を止める。この命令は、有効停止距離条件を満たすので、停止距離は、変化しない。条件に合う、まだ満たしている命令に先立つ全ての命令および以前の命令の何れも変更の必要は無い。
【０１３８】
図３５ａ，ｂは、付加的および非付加的先読みアルゴリズムの比較を示す。付加的先読みの場合（図３５ａ）、第３の工程、停止距離ｄｓ＿ｉを計算する工程が、沢山の計算を必要とし、方程式（３）で計算される。この計算は、各動きの命令に対し一度だけ必要で、繰り返す必要が無い。
（３）ｄｓ＝
（１／６）Ｊ（２ｖ0／Ｊ）3/2            ｖ0＜（１／２）ｖ1の場合、
（ｖ1√（ｖ1／Ｊ））＋（１／６）Ｊ（２（ｖ1−ｖ0）／Ｊ）3/2
−（２（ｖ1−ｖ0）／Ｊ）1/2ｖ1        ｖ0≧（１／２）ｖ1の場合
【０１３９】
非付加的先読みアルゴリズムの場合（図３５ｂ）、第３および第５の工程、命令ｉ−１の減速距離および速度減少の計算の工程で多くの計算が必要で、方程式（４），（５）で計算する。方程式（４）の減速の距離は、方程式（３）の停止距離の計算と似ている。
（４）  ｄstop＝
ｖd＞ａmaxＴ1（一般の場合）
ｖ0Ｔ1＋（ｖ0ｖd／ａmax）＋ｖdＴ1／２＋ｖd2／２ａmax
ｖd＝ａmaxＴ1（限界点）
（２ｖ0＋ｖd）Ｔ1
ｖd＜ａmaxＴ1（退化の場合）
（２ｖ0＋ｖd）√（ｖdＴ1／ａmax）
【０１４０】
命令ｉ−１の減速、方程式（５）は、所定距離でのｖ0の最大の可能な速度変化を計算する。その計算は、３次方程式の大きな計算になる。
（５）  ｖｄ＝
ｄ＞ａmaxＴ12＋２ｖ0Ｔ1（一般の場合）
［√（（２ｖ0−ａmaxＴ1）2＋８ａmaxｄ）］−（２ｖ0＋ａmaxＴ1）
ｄ＝ａmaxＴ12＋２ｖ0Ｔ1（限界点）
ａmaxＴ1
ｄ＜ａmaxＴ12＋２ｖ0Ｔ1（退化の場合）
ｖd3＋４ｖ0ｖd2＋４ｖ012ｖd−（ａmaxｄ3／Ｔ1）＝０
正の実の解
【０１４１】
さらに、方程式（４），（５）の非付加的アルゴリズムの２つの工程は、帰納的に行ない減速に十分な距離を持たせる。非付加的先読みアルゴリズムは、図３４に示すが、同一の速度を減速させるのにより長い距離を必要とし、十分な距離を満たすには、付加的先読みアルゴリズムよりループを多く繰り返す必要がある。
【０１４２】
一般には、付加的先読みは、非付加的先読みに比べて計算には効率が良い。付加的先読みは、非付加的の先読みの２つの重い負担のある工程に比べて１つだけの重い負担の工程から成る。付加的先読みが計算で効率が良いのは、その重い工程が、帰納ループの外側にあり、一回だけ実行するからである。非付加的先読みは、２つの重い工程を、十分な距離が有効になるまで帰納的に実行する。図３４に示すが、付加的先読みは、同じ速度の減速に必要な距離が少ない。これは、以前の動きの命令の変更が少ないことを意味する。
【０１４３】
付加的および非付加的先読みのアルゴリズムの運動の比較
【０１４４】
２つの連続する動きの命令ｃｍｄ＿（ｉ−１），ｃｍｄ＿ｉが、各々、公称の送り速度ｖ＿（ｉ−１），ｖ＿ｉを有すると仮定する。２つの動きが結合する時、送り速度をｖ0に減速する必要がある。図３６は、非付加的先読みアルゴリズムとＴＢＣ付加的先読みアルゴリズムの運動の特性を比較している。
【０１４５】
先読み操作は、全ての速度変化の加速または減速に十分な距離を保証する。全ての実時間での動きの制御および経路設計に適用できる。ＣＮＣ工作機械、ロボット工学、自律輸送手段などに適用できる。先読みは、通常、実時間で実行し、以前に処理した動きの命令を帰納的に変更し、アルゴリズムの効率は重要で、ＣＰＵの負荷の低減および機械の能力を向上させる。
【０１４６】
非付加的先読みアルゴリズムは、幾つかの速度プロフィールに基づき、１つの速度から他の速度に加速／減速するのに必要な距離を計算する。動きの部分の距離が、短くて大きな速度変化を十分に許容できない場合、先読みアルゴリズムは、計算してその動きの速度を制限する。速度制限の計算は、多大な量の計算を必要とし、その計算の継続的な実施は、多くの処理時間と手段が必要で好ましくない。
【０１４７】
付加的先読みアルゴリズムは、速度制限の計量として停止距離の考えを用いる。付加的先読みでの速度制限の更新は、一度だけの追加である。これに比べて、非付加的先読みアルゴリズムの場合、３次元方程式を解く大量の計算が必要となる。結局、付加的先読みアルゴリズムが、計算効率、前の動きを修正する繰返しの少なさ、増加するシステムの処理能力で、非付加的先読みアルゴリズムと比較して、幾つかの利点を備えている。
【０１４８】
図２２は、図１１を参照した本発明の方法２２００を説明している。第１の工程２２０２で、目標の工作機械経路に沿う複数の点を識別する。図１１の例では、目標経路に沿う点Ｐi-2，Ｐi-1，Ｐiを識別する。次に、工程２２０４で、最後の点での工作機械の最大に可能な停止距離を決める。図１１で、部分長さＬi+1は、最後の点Ｐiでの最大の可能な停止距離を表す。点Ｐi+1は、その識別にデータパイプラインに遠くまで進んでいない。その特性は、知られていない。つまり、点Ｐi+1の位置、および、その点が目標の工作機械経路の角の点または最後の点であるかが、不明である。しかし、点ＰiとＰi+1の間の最小の可能な距離Ｌi+1は分かっている。点Ｐi+1が、目標の工作機械経路の角の点または最後の点であるため、工作機械が点Ｐi+1で停止または殆ど停止する必要がある。工作機械が点Ｐi+1達して停止するのを保証するために、最後の点Ｐiでの、工作機械の可能な最小停止距離は、点Ｐiと点Ｐi+1間の可能な最小の距離Ｌi+1に等しくする。次の工程２２０６で、最後の点での工作機械の最後の可能な最大の速度を確定する。最後の点で、工作機械が、可能な最大の停止距離で停止する。実施形態では、図１０のＳ曲線は、可能な最大の停止距離Ｌi+1を最後の点Ｐiの最大速度（最後の最大可能速度）に関連させる。最後の点で、工作機械が点Ｐi+1に達すると停止する。最後の工程２２０８で、他の点での工作機械の最大可能速度を確立する。工作機械は、最後の点に達して最後の最大可能速度に減速する。図１１の例では、他の点Ｐi-1で最大可能速度を確立している。工作機械は、工程２２０６で確立した点ｐｉで最後の最大可能速度に減速する。実施形態では、図１０のＳ曲線は、距離Ｌiを他の点Ｐi-1の最大速度に関連させる。工作機械が、点Ｐiに達すると、最後の最大可能速度に減速する。
【０１４９】
他の点Ｐi-1での最大可能速度を他の点Ｐi-1での最大可能許容速度と比較する。最大可能許容速度は、実際の工作機械経路が、その曲率に与えられる許容差内にある。他の点Ｐi-1の最大可能速度および最大可能許容速度を識別する。工作機械は、点Ｐi-1での小さい方の速度で動く。
【０１５０】
他の点Ｐi-1に先立つ点Ｐi-2での工作機械の最大可能速度を確立する。工作機械が、他の点Ｐi-1に達すると小さい方の速度に減速する。先立つ点Ｐi-2での工作機械の最大可能許容速度を決める。この決定は、点Ｐi-2での目標の工作機械経路の偏移および／または曲率の最大可能なレベルに依存する。先立つ点の工作機械の最大可能許容速度および最大可能速度の少ない方を識別する。
【０１５１】
図２３は、図１１を参照する本発明の他の方法２３００を説明している。第１の工程２３０２で、複数の点を識別する。図１１では、点Ｐi-2，Ｐi-1，Ｐiを目標経路に沿って識別している。次に、工程２３０４で、目標経路からの実際の経路の最大可能な偏移レベルを確立する。加工中の製品の要求により、最大可能な偏移レベルを０．１ｃｍとする。工程２３０６で、目標の経路の曲率を、その経路に沿う複数の位置で確認する。例えば、点Ｐi-2から点Ｐi-１の線の動きおよび点Ｐi-1から点Ｐiの線の動きの間の角度１９０７（図１１）を点Ｐi-1で確認する。工程２３０８で、目標経路に沿う各点での工作機械の最大可能許容速度を決める。最大可能許容速度は、偏移の最大可能レベルと曲率に依存する。例えば、角度２３０７の場合、点Ｐi-1での最大可能許容速度を決める。実際の経路が、目標の経路から０．１ｃｍ以下とする。次に、工程２３１０で、最後の点での工作機械の最大可能停止距離を決める。図１１では、部分長さＬi+1は、最後の点Ｐiの最大可能停止距離を表す。点Ｐi+1は、識別されるデータパイプラインに十分に進んでいないので、その特徴は不明である。点Ｐi+1の位置および目標経路の角の点または最後の点であるかは不明である。しかし、点ＰiとＰi+1間の最小可能距離Ｌi+1は分かっている。点Ｐi+1が、目標経路の角の点または最後の点であるので、工作機械は、点Ｐi+1で停止するか、殆ど停止する。工作機械が点Ｐi+1に達して停止するのを保証するために、最後の点の最大可能停止距離を、点Ｐi，Ｐi+1間の最小可能距離に等しくする。次の工程２３１２で、最後の点の工作機械の最後の最大可能停止速度を確定する。工作機械が、最大可能停止距離で停止する。図１０のＳ曲線は、最大可能停止距離Ｌi+1を最後の点の最大速度（最後の最大可能速度）に関連させる。最後の点で、工作機械は、点Ｐi+1に達して停止する。工程１３１４で、最後の点以外の各点での工作機械の最大可能停止速度を確立する。工作機械が、最後の点に達して最後の最大可能速度に減速する。図１１の場合、他の点Ｐi-1で最大可能停止速度を確立する。工作機械は、工程２３１２で確認した点Ｐiでの最後の最大可能速度に減速する。図１０のＳ曲線は、距離Ｌiを点Ｐi-1での最大速度に関連させる。工作機械が、点Ｐiに達して最後の最大可能速度に減速する。最後の工程２３１６で、最大可能許容速度および最大可能停止速度の少ない方を各点で識別する。工程２３０８で決めた最大可能許容速度および工程２３１４で確立した最大可能停止速度の少ない方を、点Ｐi-2，Ｐi-1，Ｐiで識別する。
【０１５２】
図２４は、図１１を参照した本発明の他の方法２４００を説明している。
第１の工程２４０２で、目標の経路に沿う複数の点を識別している。図１１の場合、点Ｐi-2，Ｐi-1，Ｐiを識別している。工程２４０４で、最後の点での工作機械の最大可能停止距離を決めている。図１１で、部分長さＬi+1は、最後の点Ｐiでの最大可能停止距離を表している。点Ｐi+1は、識別するデータのパイプラインに十分に進んでいない。従って、その特性が不明である。点Ｐi+1の位置およびその点が目標経路の角の点または最後の点であるかが不明である。しかし、点Ｐi，Ｐi+1間の最小可能距離Ｌi+1が分かっている。点Ｐi+1が、目標経路の角の点または最後の点であるから、工作機械は、点Ｐi+1で、停止または殆ど停止する。工作機械が点Ｐi+1に達して停止するのを保証するために、最後の点Ｐi+1での工作機械の最大可能停止距離を、点Ｐi，Ｐi+1間の最小可能距離Ｌi+1に等しくする。次の工程２４０６で、他の点での工作機械の最大可能速度、他の点での必要とする停止距離は、最後の点での最大可能停止距離および他の点と最後の点の間の部分の長さの和以下とする。図１１の実施形態では、点Ｐi-1での工作機械の最大可能速度の確認は、点Ｐi-1での工作機械の必要な停止距離を、最後の点での最大可能停止距離と他の点Ｐi-1と最後の点Ｐi間の部分長さＬiの和以下とする。図１０のＳ曲線は、点Ｐi-1での工作機械の必要とする停止距離を、点Ｐi-1での最大可能速度に関連させる。
【０１５３】
点Ｐi-1に先立つ点Ｐi-2での工作機械の最大可能速度は、次のものとなる。先立つ点での工作機械の必要とする停止距離が、点Ｐiでの最大可能停止距離および点Ｐi-1と最後の点Ｐi間の部分長さＬi＋Ｌi-1の総和以下とする。先立つ点Ｐi-2の工作機械の最大可能許容速度は、その点での偏移の最大可能レベルおよび／または目標の工作機械経路の曲率に依存して決まる。先立つ点での工作機械の最大可能許容速度およびその最大可能速度の少ない方を特定する。
【０１５４】
待ち行列管理プログラムタスクは、待ち行列モジュールの一般的な待ち行列管理プログラムで実行する。待ち行列モジュールは、許容待ち行列２０２、圧縮待ち行列２０４、平滑化待ち行列２０６および先読み待ち行列２０８で、パイプライン方式で実行する全ての操作を管理する。操作は、許容差待ち行列２０２の要素の許容差把握、圧縮待ち行列２０４の要素の圧縮、平滑化待ち行列２０６の要素の予備的、修正的な２重円弧の平滑化、３次平滑化（必要な場合）、予備先読み（必要な場合）および先読み待ち行列２０８の要素の先読み、を含む。
【０１５５】
待ち行列管理プログラムは、次の操作の実行で待ち行列パイプラインの管理に関連するルーチンを呼び出す。
１）ＮＣインタプリタから受取ったＮＣ命令を持つ許容差待ち行列を押し込む。
２）許容差待ち行列２０２のＮＣ命令を処理する。Ｅコードの場合、この命令から許容差の情報を得て、規定の許容差の範囲および関連する許容差値を保存する。非ＴＢＣの動作命令の場合、利用できる許容差情報で命令に対する要求される許容差を計算し、その要求される許容差値をその命令に取り付ける。
３）許容差待ち行列２０２からＮＣ命令を取り、それらを圧縮待ち行列２０４に加える。
４）非常に短い線の動きを長い線の動きに吸収させる。圧縮待ち行列２０４で、非常に短い線要素を、長い要素で置き換える。
５）圧縮待ち行列２０４からＮＣ命令を取り、それらを平滑化待ち行列２０６に加える。
６）平滑化待ち行列２０６の全ての線要素を調べ、これらの要素を平滑化するかを識別し、部分的な調整を行なう。
７）これらの線要素を円弧要素に変換する。
８）平滑化待ち行列２０６からＮＣ命令、主に円弧要素を取り込み、先読み待ち行列２０８に加える。
９）新規に加えた命令を照合し、先読み待ち行列２０８の以前に処理した命令に振り返る。
１０）新しい命令に適切な速度を決め、必要な場合、以前の全ての命令の速度を修正する。
１１）先読み待ち行列２０８からＮＣ命令を取り込み、それらを実行の動作制御カーネルに送る。
【０１５６】
待ち行列での上記全ての操作を同時に行なう。待ち行列でのデータ処理は、待ち行列が一杯でなければ、続ける。待ち行列管理プログラムは、第１のルーチンを呼び出し、全ての待ち行列操作を実行し、待ち行列のパイプラインからＮＣ命令を動かす。この操作を、待ち行列の全てが一杯またはＮＣプログラムを完全に読み込むまで実行する。第１のルーチンは、第２のルーチンを呼び出し、許容差、圧縮および平滑化操作を実行し、第３のルーチンを呼び出し先読み操作を実行する。
【０１５７】
動作カーネルモジュールは、許容差をベースにした動きの制御を実行し、プログラムの線および円弧に関連した動きを制御する。動作カーネルは、非ＴＢＣの２点間制御を予測的および実際の円弧の動きで置き換える。線または円弧が、基本的な経路単位となる。制御は、プログラムした経路に沿って軸を押し、出くわす偏移を修正する。
【０１５８】
非ＴＢＣのＣＮＣ制御装置は、プログラムした経路を、要求される速度の順次的な目標点に補完する。プログラムした経路を、ＰＩＤ動作制御カードに読み込んで実行する。非ＴＢＣのＣＮＣ制御装置は、時間ベースの補間に対応する。線／円弧データを砕いて固定（または変化する）時間間隔の位置の点および速度の点にする。動作制御カードは、ＰＩＤループを実行し、瞬時の位置と補完した目標点の間の遅延を最小限にする。直感的には、ゴム紐を想定すると良い。一端が動作軸に取り付けられ、他端は、目標点から目標点に進む。紐の長さが、次に来る誤差を表す。動作制御カードは、軸を押して紐の長さを低減する。動作制御は、牽引機構である。線／円弧データを実行前の時間間隔の位置の点および速度の点に補完する。個々の軸は、動作制御で独立に動く。経路補間回路は、開ループで、次の誤差の制御は出来ない。最後に、目標点を前以て計算し、実時間の条件では調整を少なくする。
【０１５９】
予測的ＴＢＣ動作制御は、異なる機構に基づく。この場合、線／円弧データ（予備計算しない補間の点）を認識し、直接に軸を線／円弧経路に沿って押す。制御サイクル毎（例えば、２００μｓｅｃ周期）で、制御は位置のフィードバックを読取り、現在位置を命令した経路（線または円弧）と比較し、経路上の点（実際の現在位置に最も近い点）を決める。この点は、理想的な現在位置として規定される。実際の現在位置と理想の現在位置の間の差異は、瞬時の確率的な位置誤差または許容差誤差となる。瞬時の確率的位置誤差（単に“位置誤差”とも呼ぶ）は、線／円弧経路からの実際の現在位置の偏移と考えられる。
【０１６０】
ＴＢＣ許容差誤差は、非ＴＢＣの追跡誤差と異なる。追跡誤差は、軸での実際の現在位置と予備計算した目標点との間の差異である。ＴＢＣ許容差誤差は、実際の現在位置と理想の現在位置の間のベクトル差で、実時間で動的に計算される。非ＴＢＣ制御装置の場合、予備計算した目標点は、通常ｍｓｅｃの時間間隔をベースにして補完される。ＴＢＣ制御システムの場合、理想の現在位置を制御サイクル毎で計算する。非ＴＢＣ制御システムの場合、ホストコンピュータよりも動作制御カードで追跡誤差を取扱う。ＴＢＣシステムでは、許容差誤差は、直接にＴＢＣで修正される。非ＴＢＣ制御システムの場合、異なる軸の追跡誤差は独立に扱われる。ＴＢＣシステムの場合、異なる軸の許容差誤差は、ＴＢＣで協調的に扱われる。
【０１６１】
ＴＢＣの予測的動作制御は、制御サイクル毎で次の工程を実行する。
・Ｓ曲線により経路の理想の現在位置での３次元接線速度を計算する。
・瞬間の接線および求心加速力およびそれらの予測的補償ベクトルを計算する。
・瞬間の確率的位置誤差を計算する。
・３次元の確率的修正速度を決める。
・接線速度、予測的補償速度および確率的修正ベクトルを一緒に併せて、軸を経路に沿って押す合成の速度を出す。
【０１６２】
実行システムタスクは、工作機械にサーボ命令を出し、前の待ち行列管理プログラムタスクで決めた工作機械経路および関連した速度に追跡させる。工作機械が追跡する経路の部分を指定する命令を、例えばｍｓｅｃ毎に出す。工作機械経路の部分は、１つ以上の部分および／または１つ以上の円弧からなる。図１２の場合、命令は、ｘ−ｙ−ｚ空間の（１，４，０）から（５，１，６）に延びた線分を規定している。検出した誤差（修正した経路からの実際の経路の偏移）を補償するために工作機械経路の向きを変えるサーボは、命令よりも頻繁に行なう。図１２の実施形態では、サーボを２００μｓｅｃ毎に出している。点Ａ〜Ｆの各々に対応する。図１３は、１ｍｓｅｃの命令での各サーボのタイミングと持続時間を説明している。つまり、図１３は、サーボの制御サイクルのループサイクル時間を説明している。各サーボ持続時間は、３５μｓｅｃより小さい。１つの実施形態では、各サーボの持続時間は、大体１０〜１５μｓｅｃである。サーボ立ち上がりは、現在位置または幾つかの他の工作機械の変数で決める。サーボの持続時間以上は、決めた変数を使用した計算で実行する。サーボの立下りは、加工中の製品に対し工作機械の向きを変える出力信号を出す。２００μｓｅｃの時間周期は、ここでは、サーボの持続の例として繰り返し使用する。勿論、サーボのサイクル時間を２００μｓｅｃより小さく又は大きくしても良い。
【０１６３】
命令の最初の２００μｓｅｃ後、工作機械は、図１２の点Ｂに位置する。エンコーダまたは他の位置感知素子で、点Ｂでの工作機械の実際の位置を読取る。点Ｂの工作機械位置を読取り、新しい目標点Ｔを計算または識別する。工作機械副経路１２０２に沿って、サーボで工作機械の向きを目標点Ｔに変える。目標の工作機械副経路１２０２の計算は、工作機械の実際の位置が目標の工作機械経路からの偏移に依存する。この偏移１２０４の例を図１２に示す。工作機械は、副経路１２０２の計算中に第１の実際の位置Ｂを通過する。図２の実行システムタスクは、サーボ２２０を備える。サーボは、計算位置停止２２２、Ｓ曲線停止２２４、予測的誤差補償停止２２６および確率的誤差補償停止２２８を有する。工作機械が、（１，４，０）から（５，１，６）の直線の経路を追跡せず点Ｂにそれている。系統的かつ再現性のある予測的な誤差だけでなく確率的な誤差による。予測的誤差は、過去の工作機械位置データの経験的な分析で識別できる。予測的誤差に基づいて、点Ｔへ工作機械の向きを変えるのは、工作機械を、実際に、点Ｂから平滑な動きで、所望の直線経路近くに動かすことになる。
【０１６４】
Ｓ曲線工程２２４は、目標の副経路１２０２に沿った所望の加速レベルの計算を含む。具体的には、点Ｂから点Ｔにサーボを完了（目標の工作機械副経路１２０２の完了）させる加速度を、所望の時間および所望の最後の速度で決める。実際には、工作機械は、確率的誤差および特定できない予測的誤差で、点Ｃに到達することもある。追加するサーボで、工作機械は、点Ｄ，Ｅ，Ｆに到着する。点Ｆには、１ｍｓｅｃ命令の最後で到達する。次の目標の副経路は、各サーボの終了で計算される。その方法は、上記記載の目標の副経路１２０２の計算に類似している。（１，４，０）から（５，１，６）の目標経路および目標副経路１２０２を図１２に直線で示す。しかし、目標経路または副経路は、弓形をしていると理解すべきである。
【０１６５】
許容差制御装置で実行される第２の作用は、予測的誤差補償（図１の工程１０６および図２の工程２２６）で、動作カーネルの一部である。動作カーネルは、非ＴＢＣの２点間制御技術を、予測かつ真の円弧経路の動きで置き換える。この場合、線および円弧は、基本的な経路単位と成る。予測的制御は、軸をプログラムした経路に沿って押し、出くわす偏移を修正する。
【０１６６】
実施形態では、２００μｓｅｃ毎の制御サイクルで、許容差制御が、位置のフィードバックを読取り、現在位置を、命令を受けた経路（線または円弧）と比較し、現在の実際の位置に最も近い経路上の点を見つける。経路上の点を規定し、現在の理想的な位置と呼称する。現在の実際の位置と実時間で動的に計算した現在の理想的な位置の間の差異を、位置誤差として規定する。位置誤差を実時間で動的に計算しても良い。
【０１６７】
次に、予測的制御は、動きの経路および機械の条件を分析し、繰り返す動きの誤差を補償する。これら誤差の修正は、機械のパラメータ化した数学的モデルを用いて予測できる。このモデルは、実際の動的な機械の応答を測定して設定する。予測的動作制御は、動きの経路および機械の条件を分析し、動きの誤差での幾つかのタイプに適切な補償を行なう。この誤差は、再現性があり実験で測定できる。位置誤差を予測的修正と結合させ、各軸の新しい速度の命令を計算する。各制御サイクルで行なう予測的修正を図１４に示す。
【０１６８】
予測的誤差補償は、円弧の動きの求心力補償、接線加速度補償、貼り付き摩擦補償、親ねじおよび歯面遊び補償、スピンドルの柔らかさ補償、および、システム遅延補償を含む。これらは、それぞれ、以下順番に記載する。
【０１６９】
予測的制御は、円弧の動きを精密に機械加工する。円弧を多くの線分にする必要が無い。円弧の動きの求心力補償の場合、物理の法則を使用し、予測的制御は、瞬間に実時間で求心力を計算する。この求心力は、各理想的な現在位置で、現在の速度および円弧の経路曲率から、軸を円弧上で牽引または保持するものである。求心力は、予測的補償ベクトルに変換し、そのベクトルを、瞬間に、動きの軸に出される速度に追加する。
【０１７０】
現在の速度および円弧の曲率による求心力ベクトルを、予測的補償ベクトルに加える。この予測的補償ベクトルは、動きの軸に出される速度命令を調整する。この補償で、機械は、非常に精密な円弧を切ることができる。予測的動作は、円弧部分の直接の精密な機械加工を可能にする。円弧経路を直線の近似に変換する必要が無い。
【０１７１】
多数の軸に比例速度を出すのは、３次元の動きが直線となることを保証しない。関与した動きの軸が、要求通りに比例して動かない。これは、異なる軸の加速／減速が、軸から軸に変化する動力学に依存するためである。要求する直線の動きよりもむしろ、動きは、軸の加速／減速の差異で曲がる。この差異は、ベルトの追従またはサーボの増幅器ゲインの異なる軸の動力学で起きる。接線加速度度補償で、予測的制御は、各個別の軸の加速度を分析し、その軸に適した補償を計算する。これらの補償の力は、予測的補償ベクトルに変換し、要求される軸加速を生成する。修正は、軸を調整し、プログラムした経路に正確に進む。これらの補償の力は、予測的補償ベクトルに変換し、要求される軸加速を生成する。
【０１７２】
工作機械の貼り付き摩擦または静止摩擦は、動作制御に相当の影響を持つ。静止から起動する軸は、張り付いた摩擦に打ち勝ち動きを開始するには、特別のけりのエネルギを必要とする。貼り付き摩擦補償で、貼り付き摩擦の影響を修正および補償に、予測的動作は、貼り付き摩擦補償装置を使用する。その装置は、軸がその動きの方向を変える時、即ち零速度点を通過する時に始動する。補償プロフィールは、切り欠き形状で、その高さおよび幅は、速度および経路の部分的な曲率の関数となる。貼り付き摩擦は、工作機械間で異なり、軸間で異なる。この補償は、軸の４分円での円弧の平らな点を除去する。補償装置は、個別の軸に形成する。
【０１７３】
親ねじおよび歯面遊び補償は、機械の軸のボールねじの機械的な不正確さ及び遊びの修正および補償を行なう。位置のフィードバックを得る作用は、親ねじおよび歯面遊び補償に関与している。動作カーネルで使用される位置の値は、親ねじのマッピング表で補償した全ての親ねじおよび歯面遊びである。軸位置のフィードバックを読取る時に、親ねじマッピング表に保存している親ねじおよび歯面遊び補償値で調整する。この補償は、機械的な軸位置誤差の修正および軸方向の変更中の“空動き”の修正をする。
【０１７４】
幾つかの機械で、ｚ軸またはスピンドルの機械の枠は、十分に固定されておらず、機械加工中に好ましくない振動を引起す。スピンドルの柔らかさ補償は、Ｚ軸だけの動きのパラメータを修正し、この好ましくない振動を低減する。修正するパラメータは、Ｚ軸速度、加速度およびジャーク（jerk）から成る。ここでジャークは、単位時間の加速度の変化で規定している。スピンドルの柔らかさ補償で、部品の表面仕上げが向上する。
【０１７５】
動作制御に応答する工作機械システムは、機械的および電気的な理由で遅延する。例えば、軸のモータ動作と実際の軸の動きには、機械の伝動装置で機械的な遅延がある。サーボ増幅器への速度命令の入力とモータでの実際の動きとの間に電気的な遅延もある。予測的制御は、システム遅延補償でこの遅延を補償し、必要な時に予想される調整を与える。プログラムした経路で必要な時に、動きの軸に必要な補償を与える。
【０１７６】
上記記載の補償で、許容差制御は、予測的で繰返しの誤差を補償する。予測的制御は、プログラムした経路に沿って軸を押し、機械モデルからの補償は、再現性のある機械誤差を補償し修正する。この２つの調整は、現在位置と線／円弧経路の間の位置誤差を非常に低減する。
【０１７７】
予測的誤差の補償に加えて、許容差制御は、図１５に示すような確率的誤差を修正する。図１４に示す予測的制御で修正されない残りの位置誤差は、確立的誤差修正機構で低減する。予測的動作および 事前測定／計算補償を利用する。予測的動作は、軸をプログラムした経路に沿って押す。事前測定／計算補償は、再現性のある機械加工誤差を修正する。ＴＢＣは、瞬間の位置誤差を大きく低減する。瞬間の位置誤差は、線／円弧経路からの実際の現在位置の偏移である。確立的誤差修正は、道路で運転しハンドル調整を少し行なうことに類似している。この修正で、道路表面の変化を補償し、正確に道路の中心に留まるようにする。
【０１７８】
実時間で起きる確立的誤差からくる位置偏移は、さらに確立的誤差修正機構で低減する。その機構は、比例制御、積分制御、微分制御、Ｓ曲線加速度および速度制御、および、動的な速度調整を含む。これらの確立的誤差修正機構の各々を、下記に順番に説明する。
【０１７９】
比例制御では、位置誤差は、比例増幅パラメータで掛け算し、確率的修正速度ベクトルを得る。得た確率的修正速度ベクトルは、予測的修正速度、即ち命令速度から引き算しても良い。これで誤差を低減する。
【０１８０】
積分制御では、位置誤差を、修正ラプラス変換アルゴリズムを用いて積分する。修正値（上の積分した結果に比例している）を計算し、予測的修正速度（命令速度）に加える。修正ラプラス変換アルゴリズムは、時間帯に存続する位置誤差を取り除く。直接の積分制御は、好ましくない振動を起こす。低周波修正ラプラス変換は、位置誤差を全く振動無しで積分する。
【０１８１】
微分制御では、位置誤差の微分値を予測的修正速度に加えて、確率的誤差修正を弱める。この低下は、確率的誤差修正の安定性を改善する。人工的な粘性摩擦を加えてシステムの減衰係数を増し、システムをより安定化させる。これは、比例制御と微分制御の和に等しい。
【０１８２】
Ｓ曲線および速度制御では、速度の変化をＳ曲線加速を使用して制御する。速度変化は、部品プログラムで規定または付加的先読みアルゴリズムで調整される。Ｓ曲線加速は、２００μｓｅｃ毎の制御サイクルまたはサーボサイクルで計算される。これにより、軸の動きおよび軸の位置の非常に平滑な制御が得られる。Ｓ曲線加速は、非線形加速方法をもたらす。この方法は、速度相と加速／減速相との間の移行を和らげ平滑にする。
【０１８３】
Ｓ曲線速度プロフィールは、通常、７つの相を備えている。増加する加速、一定の加速、減少する加速、急速（一定速度）、増加する減速、一定の減速、減少する減速である。
【０１８４】
非ＴＢＣのＣＮＣ制御は、時間ベース計画の機構で、Ｓ曲線は時間の関数として実行される。関数の出力は、計画された位置および速度となる。ＴＢＣは、真の円弧技術を用いる。各制御サイクルで、経路の理想の位置を、計画した位置の代わりに計算で行なう。従って、Ｓ曲線から経路に沿う速度のみの計算が必要で、Ｓ曲線は、実時間処理で実行される。
【０１８５】
速度は、各制御サイクルで瞬間の経路距離から計算する。この機構は、速度の誤差蓄積を除去し、幾つかの実時間の要求（送りオーバライド、一時停止、再開および１工程）を支持する。
【０１８６】
ＴＢＣのＳ曲線は、典型的な７つの相を持っている。増加する加速、一定の加速、減少する加速、急速度（一定速度）、増加する減速、一定の減速、減少する減速である。増加する加速の相は、一定の初期ジャークＪ０を持っている。加速は、初期ジャークＪ０で最大加速まで直線的に加速される。速度は、時間の２次関数で増加する。
【０１８７】
一定の加速相では、ジュークは無く、零になる。加速は、最大加速度で続き、速度は、時間の一次関数で増加する。
【０１８８】
減少する加速の相では、ジャークは、−Ｊ（Ｊは最大ジャーク）となる。加速度は、最大の加速からゼロに、負の最大ジャークＪで減少する。速度は、時間の２次関数で増加する。一定速度では、ジャークと加速は共にゼロとなる。速度は、最終の一定速度に等しい。
【０１８９】
減少する減速の相では、ジャークは−Ｊとなる。Ｊは最大ジャークである。減速は、ゼロから直線的に最大減速（最大ジャークＪ）に増加する。速度は、最終速度から時間の２次関数で減少する。
【０１９０】
一定の減速相では、ジャークは無く、ゼロに等しい。減速は、最大減速でとどまる。速度は、時間の一次関数で減少する。
【０１９１】
減少する減速相では、ジャークは最大ジャークＪで、減速は、最大減速から直線的にゼロ（最大ジャークＪ）減少する。速度は、時間の２次関数で減少する。
【０１９２】
先読み処理では、上記記載の付加的先読みアルゴリズムは、停止距離を各動作命令に取り付ける。停止距離は、Ｓ曲線の実行で使用され、速度の加速／減速を適切にする十分な距離を保証する。
【０１９３】
実施形態では、Ｓ曲線の計算は幾つかの変数を使用する。例えば、進む距離（distance＿to＿go）で、これは、現在位置から命令の目標位置までの経路長さを表す。可変の残り停止距離（stop＿distance＿left）は、進む距離と命令に付けた停止距離の値との和を表す。進む距離および残り低距離の値は、機械の瞬間の位置で変化する。可変の必要停止距離（stop＿distance＿required）は、命令の速度、減速およびＳ曲線で、機械を完全に停止するのに必要な動く距離を表す。必要停止距離の値は、速度で変化する。
【０１９４】
動作命令が実行されている時、各制御サイクルで、この命令の可変の残り停止距離および必要停止距離を計算し比較を行なう。残り停止距離の値が、必要停止距離の値以下の時（距離が十分に残されていない）、速度／距離変換アルゴリズムは、残り停止距離から速度を計算する。詳細に以下で説明する。残り停止距離の値が、必要停止距離の値よりも大きい場合（距離が十分に残されている）、７つの相の各々の速度を計算する。
【０１９５】
相１で、加速は、初期のジャークで直線的に増加する。加速度は方程式で計算する。
加速度i+1＝加速度i＋Ｊ０ｘサイクル時間
Ｊ０は、初期ジャーク、サイクル時間は、各制御サイクルの時間間隔で、約２００μｓｅｃである。速度は、加速値に応じて増加し、次の方程式で計算する。
速度i+1＝速度i＋加速度×サイクル時間
加速が、最大加速度に達すると、次のように切捨てを行なう。
加速度≧最大加速度の場合、
加速度＝最大加速度
とし、相２に入る。
【０１９６】
相２では、加速度は、最大加速度に等しくなる。速度を次の方程式から計算する。
速度i+1＝速度i＋最大加速度×サイクル時間
最終速度と現在速度の間の差異で次の方程式で表される。
最終速度−速度＝０．５×Ｊ×ｔ2
Ｊは最大ジャーク、ｔは最終速度に達する時間。加速度は、ジャークと時間の積（Ｊ×ｔ）に等しく、方程式は再配置して、
２×Ｊ×（最終速度−速度）＝加速度2
又は
加速度＝√（２Ｊ（最終速度−速度）
加速度が、最大加速度よりも小さい場合、相３（減少する加速〉に入る。
【０１９７】
相３で、速度を次の方程式で計算する。
加速度＝√（２Ｊ（最終速度−速度））
速度i+1＝速度i＋加速度×サイクル時間
速度が最終速度に達すると、相４（定常状態の速度）に入る。相４で、速度は最大速度になり、加速度は零になる。
【０１９８】
相５（増加する減速），６（一定の減速），７（減少する減速）の各々で、速度を速度／距離変換アルゴリズムで計算する。
【０１９９】
制御サイクルで、残り停止距離の値が、必要停止距離の値以下の時（条件は、自動的に相５〜７を満たす）、速度／距離変換アルゴリズムで、残り停止距離から速度を計算する。このアルゴリズムの実施形態の主要な特徴は後述する。
【０２００】
Ｓ曲線は、速度と時間の関係を規定する関数で、速度の方程式で表される。
速度＝Ｓ曲線（ｔ）
ｔ1を現在時刻そしてｔ2を動作が完全に停止した時刻とする。動作が完全に終了する所要時間は、ｔ2−ｔ1となる。アルゴリズムで適切な速度の選択で、必要停止距離の値を残り停止距離の値に等しくする。ｔ2−ｔ1での機械の動く距離は、時刻ｔ1での必要停止距離として規定される。
【０２０１】
時刻ｔ1での必要停止距離は、速度方程式の時間積分で計算する。
必要停止距離＝∫t1t2Ｓ曲線（ｔ）ｄｔ
この方程式は、停止距離と時間の関係を規定する。簡単にするために、方程式を
必要停止距離＝停止距離（ｔ）
とする。従って、
ｔ＝停止距離-1（必要停止距離）
ここで、（停止距離）-1は、（停止距離）の逆数である。速度方程式にｔを代入すると、
速度＝Ｓ曲線［（停止距離）-1（必要停止距離）］
となる。必要停止距離の値を残り停止距離の値に等しくするために、速度を次の方程式に設定する。
速度＝Ｓ曲線［（停止距離）-1（残り停止距離）］
【０２０２】
工作機械では、異なる軸は、異なる最大速度を有している。Ｚ軸の最大速度は、通常、Ｘ軸またはＹ軸の最大速度よりも小さい。ｍａｘｖ＿ｘ，ｍａｘｖ＿ｙ，ｍａｘｖ＿ｚをＸ，Ｙ，Ｚ軸の最大速度とし、ｄｍｖを３次元空間のベクトルとする。工作機械が、ｄｍｖの方向に動く場合、その方向の可能な最大ベクトル速度は、ベクトルｄｍｖの関数となる。
最大可能速度＝ｆ（ｄｍｖ）
関数は、３次元単位ベクトルから実数の転写である。関数ｆを決める保守的な方法は、定数として規定する。
ｆ（ｄｍｖ）＝Ｍｉｎ｛ｍａｘｖ＿ｘ，ｍａｘｖ＿ｙ，ｍａｘｖ＿ｚ｝
【０２０３】
工作機械が、原点を出発し、任意の方向ベクトルｄｍｖの方向に沿って、所定のベクトル速度ｆ（ｄｍｖ）で、１つの単位時間動くと、工作機械は、１つの終点に到着する。全ての可能な動作方向から到る終点は、３次元表面を形成する。この表面を速度エンベロープと呼ぶ。速度エンベロープは、関数ｆに依存する。この場合、終点から原点の距離は、一定（Ｍｉｎ｛ｍａｘｖ＿ｘ，ｍａｘｖ＿ｙ，ｍａｘｖ＿ｚ｝）で、速度エンベロープは、球となる。
【０２０４】
積極的な方針は、工作機械を方向ｄｍｖに沿って最大可能な速度ベクトルで動かすことである。軸Ｘ，Ｙ，Ｚの速度は、各々ｍａｘｖ＿ｘ，ｍａｘｖ＿ｙ，ｍａｘｖ＿ｚで制限されている。この場合、速度エンベロープは、３次元の立方体の箱で、長さが２×ｍａｘｖ＿ｘ，２×ｍａｘｖ＿ｙで、高さが２×ｍａｘｖ＿ｚとなる。
【０２０５】
速度エンベロープは、軸の速度座標のタイプの規定に使用できる。４つの速度座標タイプが有り、積極性が減少する順で、軸速度立方体タイプ、軸速度円柱タイプ、軸速度楕円タイプ、および、軸速度球タイプが有る。ＴＢＣは、軸速度楕円タイプを使用する。軸速度楕円タイプの速度エンベロープは、Ｘ軸の長さが２×ｍａｘｖ＿ｘ、Ｙ軸の長さが２×ｍａｘｖ＿ｙ、Ｚ軸の長さが２×ｍａｘｖ＿ｚとなる。
【０２０６】
ＴＢＣは、動的な速度調整に対応する。動的速度調整では、許容差制御は、位置誤差を監視し、誤差を指定した許容差と比較する。所要の許容差のパーセントで規定する安全レベルを、位置誤差の制御に用いる。位置誤差が、安全レベルを超えると、軸速度が自動的に減少し、位置誤差を低減する。位置誤差が、安全レベルよりも低いとき、軸速度は、自動的に元の速度に増加する。このようにして、工作機械を可能な限り速く又はそれに近く走らせ、一方、所望の許容差を維持する。動的速度調整は、ラプラス変換に基づいている。
【０２０７】
本発明のＴＢＣ動作カーネルは、先読み待ち行列から動作命令を取り込み、サーボシステムが輪郭経路を通るように制御する。ＴＢＣ動作制御は、非ＴＢＣ動作制御と異なる。ＴＢＣの場合、閉ループ輪郭経路制御である。非ＴＢＣ動作制御とＴＢＣ動作制御の比較を説明する。
【０２０８】
非ＴＢＣ動作制御構造
【０２０９】
３次元輪郭経路の追跡に、非ＴＢＣ動作制御システムは、３次元輪郭をＸ／Ｙ／Ｚ軸に分解し、Ｘ／Ｙ／Ｚの動きを時間で補間する。各軸は、自身の時間ベースの基準経路を有し、フィードバックおよびフィードフォワードを用いて各動作経路を独立に追跡する。理想的には、各軸が、基準経路を完全に追跡する場合、得られる３次元輪郭も、完全なものになる。図３７に示す障害物およびモデル誤差で、完全な追跡は通常実行できず、実際の軸動作および基準経路間で追跡誤差がある。各軸で、これら軸の協力または連携無しで、追跡誤差を最小にする試みがある。各軸の経路は、他の軸の経路状態に無関係に追跡される。例えば、１つの軸の経路が、基準経路の後で、大きな抵抗力および遅延に出会っても、他の２つの軸の事前経路を追跡する。３軸の２軸であっても、経路は完全に追跡されるが、達成される実際の輪郭は、基準の輪郭から著しく偏移している。
【０２１０】
図３７に示す非ＴＢＣ動作制御システムは、時間確定的なものである。つまり、ｘ／ｙ／ｚ軸動作経路が時間ベースで、その全体のシステムの実行時間は、前以て正確に決定できる。Ｆ＿ｘ，Ｆ＿ｙ，Ｆ＿ｚは、３軸の各々のフィードフォワード制御装置を表し、Ｃ＿ｘ，Ｃ＿ｙ，Ｃ＿ｚは、これら軸のフィードバックを表す。輪郭経路は、非ＴＢＣ動作制御では開ループとなる。３軸の各々に沿う動きは、他の軸の動きの情報と無関係にまたは依存しないで独立している。言い換えれば、軸間の協力は存在しない。非ＴＢＣ動作制御の円の補間でも円弧の動きか無い。軸の異なる動特性は、追跡精度および表面品質に否定的な影響を及ぼす。
【０２１１】
非ＴＢＣ動作制御では、輪郭経路は開ループで、得られる実際の輪郭が所望の基準輪郭に十分近い保証は無い。図３８ａ〜ｄに連携しない動作の例を示す。基準経路ｙ＝ｘ（図３８ａ）を時間ベースの軸経路に分解している。ｙ＝ｋｔ（図３８ｂ）およびｘ＝ｋｔ（図３８ｃ）。非ＴＢＣ動作制御装置は、ｘ，ｙ軸の動きを制御し、それらの経路を独立に追跡する。異なる場合を図３８ｂ〜ｄに示す。ケース１は、ｘ，ｙ軸での小さい追跡誤差が特徴である。しかし、図３８ｄに示すように、輪郭誤差は比較的大きい。ケース２は、ｘ，ｙ軸での大きい追跡誤差が特徴である。しかし、図３８ｄに示すが、輪郭誤差は全く無い。非ＴＢＣ動作制御は、他の軸の連携無しで各軸の追跡誤差を低減し、非ＴＢＣ動作制御システムは、ケース２よりもケース１が一層適していると考える。
【０２１２】
輪郭が、ｘ／ｙ／ｚ軸に分解され、３つの時間ベースの経路になると、重要な動的情報（例、求心加速度）が失われる。求心加速度の情報が無いと、円弧の動きを線の動きから区別する要因、真の円弧の動きが不可能となる。さらに、求心力の作用が補償されず、実際の工作機械の位置が、この求心力で径方向外側に付勢される。
【０２１３】
非ＴＢＣ動作制御の場合、各軸の動特性は、輪郭の動作に影響を及ぼす。動きが各軸で互いに合っていない場合、つまり、或る軸が他の軸よりも速くまたは遅く応答する場合、実際の輪郭は、所望の輪郭から変形または偏移している。
【０２１４】
ＴＢＣ動作制御構造
【０２１５】
ＴＢＣ動作制御は、３次元輪郭を３つの独立した時間ベースの軸経路に分解しない。むしろ、ＴＢＣ動作制御は、実際の輪郭位置を基準輪郭と比較し、制御信号を決めて輪郭誤差を最小にする。ＴＢＣ動作制御構造の実施形態を図３９に示す。全ての信号が、ベクトルで太線で示している。対照的に、図３７の非ＴＢＣ動作制御構造の場合、信号はスカラで、細線で表示している。
【０２１６】
図３９のＴＢＣ動作制御構造は、輪郭ベースのフィードバックとフィードフォワード制御を用いる。輪郭の追跡は、閉ループで、真の円弧の動きが可能となる。つまり、工作機械は円弧の経路に従い、曲線経路を近似する一連の線分に従わない。ＴＢＣ動作制御は、時間確定でなく、オンザフライ（on- the-fly）の送り速度調整が可能である。
【０２１７】
各制御サイクル（２００μｓｅｃ）で、制御装置は、実際の輪郭位置のフィードバックを読取り、実際の位置を基準輪郭と比較し、基準輪郭で実際位置に最も近い位置を探す。この点を理想の現在位置（ＩＣＰ）と規定する。制御装置は、３つの関数ブロックを備えている。フィードフォワード、フィードバックおよび貼り付き摩擦／歯面遊び補償から成る（図４０参照）。
【０２１８】
各制御サイクルで、制御装置は、ＩＣＰ（法線および接線方向の加速及び速度を含む）に基づき所望の動きを計算し、フィードフォワード制御装置の所望の動きを速度制御信号の変換を含む。実行時間の送り速度調整装置で、許容差制御の送り速度（速度）を調整する。
【０２１９】
制御装置は、各サイクルで、法線および接線方向の追跡誤差を計算する。法線方向の誤差は、実際の輪郭位置からＩＣＰまでの距離で、許容誤差または輪郭誤差となる。接線方向の誤差は、ＩＣＰが背後で遅延した経路長さの量で規定される。法線誤差は、システムの性能に重要で、ＴＢＣ制御装置は、法線および接線誤差の２つの異なるフィードバック制御装置を備え、追跡誤差を速度制御信号に変換する。貼り付き摩擦および歯面遊び補償は、工作機械の精度を更に向上させる。
【０２２０】
非ＴＢＣ動作制御と比べて、ＴＢＣ動作制御は、閉ループ構造で、閉ループ輪郭追跡制御は、３軸を調整し、制御誤差を最小にする。例えば、ｘ軸が、大きな抵抗力と基準経路に遅れる遅延を持つ場合、他の２つの軸は、速度を落としｘ軸に合わせ、実際の輪郭が基準輪郭に従うようにする。ＴＢＣ動作カーネルは、真の円弧の動きを可能にする。これは、求心加速度を制御で考慮しているためである。
【０２２１】
各サイクルでの所望の動きが、輪郭、ＩＣＰおよび現在のシステム条件（例、許容誤差）に基づいているため、システムは時間に確定的ではない。しかし、オンザフライ送り速度調整は可能である。輪郭／許容差誤差が、所定の値より低い場合、システムの送り速度は増加できる。反対に、輪郭／許容差誤差が、所定の値を越える場合、送り速度を低減し、誤差も下げる。即ち、システムは、輪郭／許容差誤差を所定の範囲に維持し、送り速度を最大にして、最適のシステム実行時間または処理能力を達成する。
【０２２２】
動作カーネルは、先読み待ち行列２０８から動作命令を受取る。動作命令は、動作カーネルの実行前に、許容差把握処理、データ圧縮、データ平滑化および先読み処理に進む。各命令は、ＴＢＣ制御の要求される許容差およびＳ曲線計算の停止距離を持っている。動作カーネルは、ＲＴＳＳ状況で、２００μｓｅｃ毎に実行され、確定的な応答が保証される。
【０２２３】
図１６は、動作カーネルの実行の本発明の方法１６００の実施形態を示す。第１の工程１６０２で、要素を先読み待ち行列２０８から読取る。要素は、次に実行する動作命令もある。次に工程１６０４で、ルーチンを使用して幾つかの変数およびパラメータを初期化し計算する。これは、工程１６０２で読み取った命令の実行に必要である。工程１６０２で、動作カーネルの主要部となるルーチンを実行する。工程１６０６でのルーチンは、予測的動作、真の円弧の動き、許容差制御およびＳ曲線計算を実行する。工程１６０８で、ルーチンは、現在の動作命令が終了したかを決定する。終了している場合、操作は、工程１６０２に戻り、先読み待ち行列から他の動作命令を読み取る。終了していない場合、操作は、工程１６０６に戻り、予測的動作、真の円弧の動き、許容差制御およびＳ曲線計算の実行を続ける。
【０２２４】
工程１６０６は、２０の副工程を含み、図３９，４０に参照している。動作命令を、サーボ増幅器デジタル／アナログ変換（ＤＡＣ）命令に変換、又は、パルス幅変調およびデジタル制御と駆動部とともに使用するサーボ増幅器に変換する。この２０の副工程をサーボ２２０で実行する。工程１で、現在の工作機械の位置を得て、その位置を補償する。
【０２２５】
位置の形状分析は、工程２で行なう。具体的には、４つの計算を行なう。円弧または線の経路上の理想の現在位置、現在の接線移動方向、理想位置からの位置の偏移および許容差誤差の計算がある。
【０２２６】
工程３は、遅れ距離の遅延補償の実行から成る。システムでの時間の遅延の補償に必要な遅れ距離を計算する。この遅れ距離を停止距離に加える。停止距離は、Ｓ曲線の速度の計算に必要である。
【０２２７】
Ｓ曲線速度制御は工程４で行なう。工作機械速度はＳ曲線から、停止距離の関数として計算する。出力は相対的な速度で、０と１の間の値となる。
【０２２８】
修正ラプラス変換および接線の予測的制御は、工程５で行なう。現在の速度は、修正ラプラス変換で予測でき、接線の予測的制御を加える。
【０２２９】
工程６は、軸の速度制御を含む。速度成分を各軸に対して計算する。計算は、工程４の計算の速度および工程２で計算した接線の移動方向に基づく。
【０２３０】
加速度は工程１１で計算する。求心補償の補償ベクトルに加え求心力を計算する。工程５から７の順番、順序は任意でプログラムコードで変更しても良い。
【０２３１】
工程８は、求心性の予測的補償を含む。求心性の補償ベクトルを速度に加える。工程９は、統計的な分析を含み、研究用に使用する。
【０２３２】
工程１０で、現在の移動方向を計算する。現在の移動方向は、親ねじのマッピング表を調べるのに必要で、親ねじ／歯面遊び補償を実施する。工程１１は、粘性摩擦の評価を含み、その誤差速度を見積もる。
【０２３３】
工程１２は、確率的誤差修正および粘性摩擦修正を含む。確率的誤差修正ベクトルを計算し、粘性摩擦をそれに加える。
【０２３４】
実行時間の速度調整は、工程１３で行なう。位置誤差が、安全な許容差レベル内で有るかを決める。範囲内の場合、減速作用は無効になり、範囲外の場合、減速作用が有効になり、速度を減少させる。
【０２３５】
工程１４は、可変ゲインの計算からなり、一定ゲイン、１次ゲイン、２次ゲイン、組合せゲインを計算する。工程１５で、機械の振動を分析、補償および／または除去する。
【０２３６】
確率的誤差修正は、工程１６で行なう。確率的誤差修正は、組合せゲインで拡大する。確率誤差修正ベクトルは、切り捨ておよび／または速度に適用する。
【０２３７】
工程１７で、ベクトル誤差を修正ラプラス変換で低減する。工程１８は、モータの飽和保護を含む。ＤＡＣ電圧変化を各サイクルで検出する。ＤＡＣ電圧値は、高すぎる場合切り捨てる。
【０２３８】
速度の連携は、工程１９で行ない、軸に対する機械の動きは、一様でない最大速度で連携する。
【０２３９】
工程２０で、速度命令（−１０〜＋１０Ｖ）を伝えて速度を制御する。
【０２４０】
表２２は、２０の工程が３つのタイプの動作命令のサーボ増幅器ＤＡＣ命令の変換を説明している。急速な線命令は、直線の動きを起こす。この場合、動作の各軸に、最大の送り速度で実行させる。急速な線命令は、動きの終点で常に終わる。線命令は、終了しない。急速な線の命令は、工作機械を所定の点に可能な限り速く動かすのに使用する。
【０２４１】
ＴＢＣ動作カーネルを、幅広い種類のＣＮＣ定盤タイプに配置する。他のＣＮＣ制御装置同様に、パラメータを調整し、特定の工作定盤または状況に対し制御の性能を最適化する。このパラメータの調整を「チューニング」と呼ぶ。
【０２４２】
本発明は、５つのチューニングパラメータの種類から成る。Ｓ曲線制御変数、平滑化／圧縮制御変数、モータ速度調整変数、動的制御ゲインおよび速度／半径許容差関係索引表がある。Ｓ曲線制御変数を適当な範囲で調整し、最大可能速度、最大可能加速度、最大可能減速度、最大可能開始ジャークおよび／または最大可能最終ジャークを達成する。平滑化／圧縮制御変数を適当な範囲で調整し、１次平滑化長さ制限（値よりも長い部分の平滑化をしない）、１次平滑化角度制限（値よりも大きい角度の平滑化をしない）、２次平滑化長さ制限および／またはデータ圧縮オン／オフ制御を達成する。モータ速度調整変数を手動で調整し、Ｍ−マルチプライア（最大電圧のＸ％で、最大速度のＸ％が実行される）および／または各軸のＢ−一定ドリフト調整を達成する。動的制御ゲインは、工作機械の種類で事前にセットし、必要に応じて、手動で修正できる。この動的制御ゲインは、時間／応答ゲイン変数を含む。極端に高い時間／応答ゲイン変数は、振動を引起し、低い値は、遅い／滑らかな動作応答になる。最後に、速度／半径許容差関係索引表は、各機械の種類で事前にセットし、必要に応じて、手動で調整する。上記チューニング変数を、他のシステム設定変数と一緒に、設定ファイルに記入する。この設定ファイルをシステム設定時に読み込み解釈する。
【０２４３】
ＴＢＣ形状分析
【０２４４】
動作命令の事前分析
【０２４５】
任意の動作命令の実行前に、ＴＢＣ動作カーネルは、命令を取り込んでその形状を分析する。ストッパ面の法線（ＳＰＮ）方向およびストッパ位置を事前分析で計算し、全体の実行期間で使用し、動作命令を終了する。線の動きの場合、ＳＰＮは、方程式（６）で計算する〈図４１参照）。図は、線の動きの形状事前分析を示す。
（６）  ＳＰＮi＝（Ｐi-1−Ｐi）／‖Ｐi-1−Ｐi‖
【０２４６】
円弧の動きの場合、ＳＰＮは方程式（７）で示され、図４２に示す。図は、円弧動作の形状事前分析を示す。ＡＰＮは、円弧面法線方向の単位方向ベクトル、およびＣは、円弧の中心を意味する。
（７）  ＳＰＮi＝−ＡＰＮ×（Ｐi-1−Ｃi）／‖Ｐi-1−Ｃi‖
【０２４７】
線および円弧の動きに対するストッパ位置Ｐｓiを方程式（８）で計算する。
（８）  Ｐｓi＝Ｐi−ｄｓi・ＳＰＮi
【０２４８】
実時間の形状分析
【０２４９】
各制御サイクルで、ＴＢＣ動作カーネルは、実際の制御輪郭（工作機械）位置フィードバックＰｔ１を読み込み、実際位置と基準輪郭とを比較する。そして理想の現在位置（ＩＣＰ）、輪郭／許容差誤差（ｅn）および進む距離（ストッパまでの）を見つける。
【０２５０】
線の動きの場合、形状を図４３に示す。図は、線の動きの形状分析を示し、方程式（９），（１０）で計算する。
（９）    ｄ＝＜Ｐｔｌ−Ｐｓｉ，ＳＰＮ＞
（１０）  ｅn＝（Ｐｔｌ−Ｐｓｉ）−ｄ・ＳＰＮ
＜ａ，ｂ＞は、ベクトルａおよびベクトルｂの内積である。ａ＝［ｘａ，ｙａ，ｚａ］、ｂ＝［ｘｂ，ｙｂ，ｚｂ］の場合、＜ａ，ｂ＞＝ｘａ＊ｘｂ＋ｙａ＊ｙｂ＋ｚａ＊ｚｂとなる。Ｐｔｌは工作機械位置、Ｐｓｉはｉの動き部分のストッパ位置、ＳＰＮはストッパ面の法線方向の単位方向ベクトルである。方程式（９）は、距離ｄが、ＳＰＮ方向のＰｔｌ−Ｐｓｉの距離に等しいと解釈できる。
【０２５１】
円弧の動きの場合、実際の輪郭または工作機械位置は、円弧面に無く、工作機械位置は、最初、円弧面に投影される。これは、方程式（１１）で計算し、図４４ａ−ｂに示している。円弧の動きの形状分析を説明している。
（１１）  Ｐ’ｔｌ＝（Ｐｔｌ−Ｃｉ）−＜Ｐｔｌ−Ｃｉ，ＡＰＮ＞・ＡＰＮ
方程式（１１）は、Ｐ’ｔｌが、単位円弧面の法線方向ベクトルＡＰＮに等しいと解釈できる。法線方向ベクトルＡＰＮを、ベクトル（Ｐｔｌ−Ｃｉ）とベクトル＜Ｐｔｌ−Ｃｉ，ＡＰＮ＞の差で乗じている。
【０２５２】
ベクトルＰ’ｔｌは、円弧面の（Ｐｔｌ−Ｃｉ）の投射である。ベクトルＰ’ｔｌが円弧面で見つかると、ＩＣＰ、単位接線および動径方向ベクトルｄｔ，ｄｒ、輪郭／許容差誤差ｅn（標準誤差とも呼ぶ）を方程式（１２）〜（１５）で決める。
（１２）  ｄｒ＝Ｐ’ｔｌ／‖Ｐ’ｔｌ‖
（１３）  ＩＣＰ＝Ｃｉ＋Ｒ・ｄｒ
（１４）  ｄｔ＝ｄｒ×ＡＰＮ
（１５）  ｅn＝Ｐｔｌ−ＩＣＰ
【０２５３】
進む距離（ＩＣＰからストッパの経路長さ）の計算に、ＩＣＰと目標点Ｐｉの間の円弧長さを先ず計算する。１８０度より大きい円弧は、２つの円弧に切る。進む距離を、次の方程式（１６）〜（１８）で計算する。方程式（１６）〜（１８）の変数の意味は、図４４ａ〜ｂを参照すれば理解できる。
（１６）  ｌ＝‖Ｐｉ−ＩＣＰ‖／２
（１７）  ａ＝ｓｉｎ-1（ｌ／Ｒ）
（１８）  ｄ＝２ａＲ＋ｄｓｉ
【０２５４】
ＴＢＣのＳ曲線制御装置
【０２５５】
Ｓ曲線加速は、非線形の加速方法をもたらす。非線形の加速は、一定速度の相と加速／減速相の間の移行を柔軟かつ滑らかにする。Ｓ曲線と呼称するのは、速度プロフィールの加速／減速部分が、直線でなくＳ字形状をしているからである。
【０２５６】
Ｓ曲線速度プロフィールは、通常、７つの相を備えている。増加する加速、一定の加速、減少する加速、一定速度、増加する減速、一定の減速、減少する減速である。
【０２５７】
非ＴＢＣ動作制御システムは、Ｓ曲線を用いて、基準経路、即ち、指定した位置、速度、加速度などを生成する。Ｓ曲線は、時間ベースで、制御ループ（実時間の部分）の外で実行される。ＴＢＣのＳ曲線制御装置は、非ＴＢＣのＳ曲線制御装置と異なる。各制御サイクルで、進む距離を基にして、ＴＢＣのＳ曲線制御装置は、基準輪郭経路に沿う所望の速度および加速度を計算する。ＴＢＣのＳ曲線制御装置は、距離ベースで、実時間処理で実行される。速度を、各制御サイクルでの瞬間の経路距離から計算する。この機構は、速度誤差の蓄積を低減し、幾つかの実時間の要求（オンザフライ送り速度調整、フィードオーバライド、一時停止、再開および単一の工程）にも対応する。
【０２５８】
ＴＢＣのＳ曲線制御装置の操作方法４５００による実施形態のフローチャートを図４５に示す。第１の工程４５０２では、フラッグで現在のシステム状態が加速か減速かを検証する。減速の場合、操作は、工程４５１２に進む。加速の場合、必要停止距離を工程４５０４で計算する。必要停止距離は、最小距離で規定する。この最小距離は、システムが工作機械を停止させる前に、工作機械がＳ曲線で走行する距離である。停止距離は、現在の速度および加速度の関数となる。工程４５０６で、進む距離ｄが、必要停止距離ｄ０よりも大きい場合、即ち、前方に安全に動くことが出来る、操作は工程４５１２に進み、所望の加速度および速度を計算する。進む距離ｄが、必要停止距離ｄ０よりも小さい場合、即ち、即座にシステムにブレーキをかける、ブレーキの情報を計算し、フラッグを設定し、工程４５０８で減速する。進む距離ｄは、システムが元のＳ曲線（事前設定の最大ジャークおよび加速度）によりブレーキをかけるには十分大きくないため、最大ジャークを工程４５１０で修正し、システムの行き過ぎを避ける。２つの距離ｄ１，ｄ３をＳ曲線の相の検出に使用し、工程４５１０でも更新する。工程４５１２は、Ｓ曲線制御装置の核となる。現在のシステム状態および事前に計算した限界の距離で、Ｓ曲線相、所望の速度および加速度を工程４５１２で決める。Ｓ曲線の制御装置は、実時間で作動するので、制御装置がデータからはみ出ないようにする必要がある。待ち行列での動作命令の工作機械の動く距離が、非常に短くなると、システムを減速させデータの枯渇を防ぐ。工程４５１６で、オンザフライ送り速度調整およびユーザのオーバライドを適用する。工程４５１８で、高度の非線形ジャーク加速度−速度（ＪＡＶ）フィルタを適用し、速度信号のノイズを取り除く。
【０２５９】
ＴＢＣフィードフォワード制御
【０２６０】
フィードフォワード信号およびゲイン
【０２６１】
フィードフォワードは、理想の現在位置（ＩＣＰ）に基づく。３つのフィードフォワード部の計算を図４６に示す。それぞれ法線加速度ＦＦａｎ、接線速度ＦＦｖｔ、接線加速度ＦＦａｔである。速度および加速度のフィードフォワードを示す。図４６で、ｄは形状分析から得た進む距離、ｄｔ，ｄｒは、それぞれ、接線および径方向／法線方向のベクトルを示す。
【０２６２】
遅延距離補償ブロック４６０２で、システムの時間遅延の補償に必要な遅延距離を計算し、進む距離に加えて補償した距離にする。Ｓ曲線制御装置４６０４は、補償した距離を受け取り、経路に沿う所望の速度ｖおよび加速度ａ（ｖ，ａ共にスカラである）を計算する。
【０２６３】
線４６０６の加速度ａは、単位接線方向ベクトルｄｔ４６０８で乗じて、４６１０で接線加速度ベクトルを生成する。フィードフォワードゲインＫａｆｆは、接線加速度ａｔを制御信号ＦＦａｔに変換する。制御信号は、サーボシステムに受け入れられる。
【０２６４】
修正ラプラスブロック４６１２は、現在速度を見積もり、最後の速度命令と比較し、予測的補償をＳ曲線速度命令ｖに加え、接線の追跡誤差を低減する。補償した速度命令は、単位接線方向ベクトルｄｔ４６０８を乗じ、接線速度ベクトルｖｔ４６１４になる。サーボシステムが、速度制御命令を取るので、速度ベクトルに追加の変換を必要としない。４６１６でのフィードフォワードゲイン１は、信号ＦＦｖｔになり、全てのチャネルを同一レベルにする。
【０２６５】
求心加速度ａｎ４６１８を円運動物理で計算する。ａn＝ｖ2／Ｒ。求心加速度は、円弧中心に向いており、径方向／法線方向の反対になる。接線加速度に加わる同じフィードフォワードゲインＫａｆｆは、法線の加速度を適切な制御信号ＦＦａｎに変換する。
【０２６６】
実行時間送り速度の調整装置（μ）
【０２６７】
実行時間またはオンザフライの送り速度の調整装置は、ＴＢＣ動作制御の独特の特徴で、他の制御システムには利用できない。非ＴＢＣ、時間ベース制御方法の基準輪郭経路は、制御ループ外で予め決められ、修正は、制御ループ内で出来ない。これに対して、ＴＢＣ動作カーネルは、所定の基準経路を持たず、所望の動きが、現在のシステム状況で、各制御サイクルでの制御ループ内で決まる。実行時間の送り速度の調整装置が可能となる。
【０２６８】
実際の現在位置と理想の現在位置との差異は、瞬間の位置誤差または許容差誤差と規定される。瞬間の確率的位置誤差（単に位置誤差とも呼ぶ）は、実際の現在位置の所望の線／円弧の経路からの偏移である。実行時間の送り速度調整装置は、位置／許容差誤差を所定の誤差許容差と比較する。位置誤差が、所定の誤差の許容差より大きいか、または非常に近い場合、実行時間の送り速度の調整装置は、送り速度を下げて追跡精度を高める。一方、誤差が所定の許容差よりも小さく、近くでもない場合、実行時間の送り速度の調整装置は、送り速度を増し、システムの処理能力を高める。一般的には、工作機械の速度は、位置誤差が所定の誤差の許容差より小さい場合、増加し、位置誤差が所定の誤差の許容差より大きい場合、減少する。実施形態で、輪郭誤差が非常に小さい場合でも、送り速度を増加しないで、必要に応じて、送り速度を増加または減少して能力を維持する。
【０２６９】
実行時間送り速度の調整装置は、条件付最適化機構である。所定範囲の輪郭／許容差誤差の条件で、実行時間送り速度の調整装置は、送り速度を最大化し、最適なシステムの処理能力を達成する。
【０２７０】
ＴＢＣフィードバック制御
【０２７１】
可変ゲインを備えた正規誤差フィードバック制御（τ）
【０２７２】
正規誤差ｅn、または輪郭／許容差誤差は、現在の工作機械位置から基準輪郭への最短距離で規定され、ＴＢＣ動作制御は、この誤差を低減する。これは、３次元誤差で、３つの軸での連携した動作が、誤差の修正に必要である。誤差は、５または６次元となる。追加の軸（回転軸の形で）を、経路および計算に含む場合である。３次元または３軸を参照する場合、議論は、３次元および３軸よりも大きい多次元システムにも等しく適用できる。
【０２７３】
ＴＢＣおよび非ＴＢＣ制御の根本的な相違は、次の点にある。非ＴＢＣ制御の場合、３次元の基準輪郭経路を３つの独立した軸の動作に分解し、輪郭／許容差誤差の情報無しで３軸を制御する。対照的に、ＴＢＣ動作制御は、直接に３次元の輪郭／許容差誤差をアドレス指定する。工作機械の実際位置を３軸の各々に沿って察知する。３軸の各軸の工作機械の実際位置と所望位置の間の３次元位置誤差を計算する。計算した３次元位置誤差に依存する３次元位置誤差信号を形成する。工作機械の速度および／または方向を、３次元位置誤差の信号で制御する。３次元の位置誤差は、ベクトル数学を用いて計算する。
【０２７４】
上記の記載から明らかなように、ＴＢＣ制御は、１つの軸に沿う動作で、実時間で、他の２つの軸に沿う動作制御に影響を与えることが出来る。つまり、異なる軸の動作制御の間で、結合がある。非ＴＢＣ動作制御は、ＴＢＣ動作制御のような軸間の影響（例、求心力）の補償を含まない。求心力の補償を欠くので、非ＴＢＣ方法で制御する工作機械は、システム的に所望の弓形の経路の外側径方向に動く。
【０２７５】
図４７は、法線誤差の可変ゲインフィードバック制御を説明している。ＴＢＣ動作制御は、可変ゲインフィードバック制御を用いて法線誤差を修正する。誤差は、実時間の形状分析４００２（図４０）で計算する。特別なフィードバック制御装置Ｃｎが、システムに安定性をもたらし、法線誤差を低減する。
【０２７６】
可変ゲインτ４７０２は、接線速度および法線加速度の関数である。大雑把に言うと、システムが速く動けば、法線誤差の修正に必要なゲインは増加する。ゲインが増加すれば、法線誤差の修正を一層速くする。
【０２７７】
接線誤差のフィードバック制御
【０２７８】
各制御サイクルで、ＴＢＣは、接線速度命令を生成する。接線速度の命令の融合は、基準輪郭に位置を形成する。その位置は、基準輪郭の現在の目標点となる。接線誤差は、理想の現在位置（ＩＣＰ）から現在の目標点までの経路長さで規定する。フィードバック制御装置Ｃｔ４００４（図４０）は、接線誤差を低減する。
【０２７９】
２つのフィードバック制御の異なる動特性
【０２８０】
ＴＢＣフィードバック制御は、２つの部分から成る。接線誤差フィードバック制御および法線誤差フィードバック制御である。２つの誤差を同一または等しく取扱う代わりに、２つのフィードバック制御装置を誤差に設ける。各フィードバック制御装置が、２つの誤差の各々にアドレス指定を行なう。２つの誤差を異なる処理の第１の理由は、法線誤差が、接線誤差よりも重要である。追跡精度および表面仕上げの品質の点からである。従って、法線誤差に重点を置く。２つの誤差を異なる処理の第２の理由は、サーボシステムの動力は限られており、動力をより重要な事を最初にするのが望ましい。２つの異なるフィードバック制御装置を、法線および接線誤差の処理に用いる。法線誤差ループは、より高いバンド幅または速い動特性を有している。大雑把に言えば、接線誤差よりも法線誤差の修正によりサーボ動力を必要とする。法線誤差は、接線誤差よりも速く低減される。
【０２８１】
ＴＢＣ貼り付き摩擦および歯面遊び補償
【０２８２】
貼り付き摩擦は、動作制御に著しい影響を持つ。貼り付き作用の修正に、ＴＢＣ動作カーネルは、貼り付き摩擦補償を使用する。この補償装置が起動するのは、軸が動きの方向を変える時（零速度点を横切る）である。補償プロフィールは、切り欠きの形をしており、切り欠きの高さおよび幅は、速度および経路の部分的な曲率の関数である。
【０２８３】
親ねじを工作機械で使用し、機械的伝動として回転運動を直線運動に変換する。ボールねじおよび歯面遊びの不正確さの補償を行なう。動作カーネルで使用する位置の値は、親ねじのマッピング表により補償された親ねじおよび歯面遊びである。
【０２８４】
補償ブロックは、現在の動きの方向を決める。その方向は、親ねじマッピング表を調べ、親ねじ／歯面遊びの位置補償を実行する。補償ブロックは、貼り付き摩擦の補償もする。
【０２８５】
ＴＢＣ制御信号保護
【０２８６】
ＴＢＣ動作制御信号は、フィードフォワード制御信号、フィードバック制御信号および貼り付き摩擦補償信号の和である。制御信号をデジタル・アナログ変換器（ＤＡＣ）を通してサーボシステムに送る前に、保護処置が実行され、機械の過負荷を避ける。保護処置は、２つの工程から成り、制御信号の変化速度を制限する第１工程を含む。サーボシステムが、速度命令を受取り、制御信号変化速度は、加速度／減速度に対応する。Ｓ曲線制御装置は、加速度／減速度を考慮するが、全体の制御信号は、他の理由で非常に速く変化する。理由として、追跡誤差のフィードバック、障害、貼り付き摩擦補償などがある。サーボシステムの能力を超えず、平滑な動きのために、制御信号変化を制限する。現在および前の制御命令間の差異が、閾値を越える場合、現在の命令を制限し、差異を閾値で飽和させる。
【０２８７】
保護処置の第２の工程は、制御信号の制限である。ＤＡＣおよびサーボシステムの両方が、制限された制御信号入力だけを最大量まで受取ることが出来る。現在の制御命令が、この閾値を越える場合、工程は、現在の制御命令を最大制御入力に飽和させる。
【０２８８】
図１７は、加工中の製品を機械加工する本発明の方法１７００の実施形態のブロック図を示す。機械１７００は、制御カード１７０４の制御装置、サーボ駆動部１７０６ｘ，１７０６ｙ，１７０６ｚ，１７０６ｓの駆動部、切削工作機械１７０８およびエンコーダの位置センサ１７１０ｘ，１７１０ｙ，１７１０ｚ，１７１０ｓを備える。
【０２８９】
切削工作機械が回転し、加工部品に係合している間、工作機械は、切削工作機械１７０８を保持し運ぶ。図１７に、加工部品と切削工作機械の間の点線で示している。工作機械は、取り付け手段および直線／回転の駆動手段を切削工作機械に提供する。切削機械１７０８は、機械１７００の材料を除去するもので、回転するスピンドル機構（図示せず)に取り付けている。スピンドル機構は、工作機械のｚ軸に取り付ける。加工部品に対する切削機械の形状の方位は、取り付け位置によりｚ軸に固定している。
【０２９０】
多くの動作制御カードと同様に、制御カード１７０４は、制御カード１７０４に物理的に接続するコネクタ１７１２，１７１４，１７１６，１７１７を備え、駆動部１７０６および位置センサ１７１０をサーボして情報伝達を促進する。サーボ駆動部１７０６は、加工部品１７０２をｘ，ｙ，ｚ軸で動かし、ｚ軸で切削工作機械１７０８を回転する。４つのコネクタ１７１２，１７１４，１７１６，１７１７を制御カード１７０４に示している。１つは各動きの制御した軸、そして１つは切削工作機械１７０８の回転であるが、他の配置も可能である。制御カード１７０４とサーボ駆動部１７０６の間で交換される情報伝達信号は、適当な形式に変換する必要が多い。例えば、幾つかの駆動部モータは、−１０Ｖ〜＋１０Ｖの間のアナログ電圧入力信号を用いて、モータの回転速度を決める。
【０２９１】
大部分のデジタルコンピュータ（ＩｎｔｅｌのＰｅｎｔｉｕｍ（登録商標）搭載ＰＣ）は、アナログ電圧に対応せず、不連続の電圧レベル（＋５Ｖ，０Ｖ）で表示されるビットグループ（１，０）を利用する。従って、ＰＣベースの動作制御カードが、モータを最大速度（＋１０Ｖ）で時計方向に回転させる場合、この要求を表すビットの集合を、モータが理解できる＋１０Ｖ信号に変換する。情報伝達目的の信号変換は、業界では標準的で、多くの場合、制御装置のカードの入力／出力（Ｉ／Ｏ）モジュールで実行される。図１７に、Ｉ／Ｏモジュール（１７１８，１７２０，１７２２）を、各制御された軸に図示している。
【０２９２】
幾つかの制御カードは、プログラムおよび制御アルゴリズムの実行に、ＣＰＵ１７２４および内蔵メモリ１７２６を組み込んでいる。Delta TauのＰＭＡＣおよびGalil Motion Control, Inc. of Mountain View, CalifのＤＭＣ−１７００は、ＣＰＵと目盛りを内蔵する典型的なカードである。Hurco Companies, Inc. of Indianapolis, Ind.が供給するサーボトランスデューサ５軸ＰＣＢ組立部品（部品番号415-0622-001）を、制御カードとして本発明で使用している。Hurcoのサーボトランスデューサは、内蔵ＣＰＵおよびメモリを持たないが、コンピュータのＣＰＵおよびメモリを利用し、コンピュータに押し込む。この２つの構成の差異は、主としてコストであり、本発明の許容差ベースの制御技術を遂行するプログラマには重要でない。これらの部品の一体化および制御アルゴリズムをＣＰＵに記憶させ実行する方法は、従来技術で知られている。この処理の詳細は、簡潔にするために省略する。発明の説明を簡単にするために、図１７は、動作制御カード１７０４に組み込んだＣＰＵ１７２４およびメモリ１７２６を示す。
【０２９３】
実施形態では、マルチタスクＯＳ（Microsoft Corporation of Redmond WashingtonのWindows（登録商標） XP）を用いて、この発明を遂行するアルゴリズムを実行する。実時間ＯＳ（Ready Systems of Sunnyvale, CalifのＲＴＸ）も、アルゴリズムの実行時間能力の向上に使用する。どの基本ソフトを使用するか、マルチタスクパラダイムを採用するかどうかの決定は、手元にあるアプリケーションに依存し、コンピュータシステムのプログラムおよび設計の当業者には日常的な決定である。メモリ１７２６は、目先のタスクに関する値を保存するデータ領域である。１７２８は、動作命令および許可された送り速度、１７３０は、ＮＣ許容差命令、１７３２は、送り速度制限マッピング、１７３４は、他のデータである。当業者には通常に使用されている。
【０２９４】
位置センサ１７１０ｘ，１７１０ｙ，１７１０ｚは、ｘ，ｙ，ｚ方向の加工部品１７０２の位置を感知する。図１７で、位置センサと加工部品の間の点線で示す。特に、実施形態では、位置センサ１７１０ｘ，１７１０ｙ，１７１０ｚは、３つのそれぞれのボールねじ機構（図示せず）の位置を感知する。ボールねじは、工作機械の移動可能な位置決めスライド（図示せず）を駆動する。加工部品を、位置決めスライドの１つに取り付ける。位置決めスライドは、加工部品を２つの方向（ｘ，ｙ方向）に動かす。全ての位置決めスライドを縦列で取り付けている。従って、ｘ，ｙ平面での加工部品の位置は、加工部品のｘ，ｙ位置決めスライドに取付けた場所の情報およびボールねじ機構の位置の情報から推測できる。加工部品、ボールねじ機構および位置決めスライドの間には、通常、固定した幾何学的関係がある。回転スピンドル機構を、ｚ軸位置決めスライドに取り付けている場合、位置センサ１７１０ｚは、ｚ軸（第３の方向）のボールねじ機構の位置を感知する。ボールねじ機構は、ｚ軸に沿う切削工作機械の線形の位置を推定する。位置センサ１７１０ｓは、切削工作機械１７０８の回転位置を感知する。この感知を図１７に位置センサ１７１０ｓと切削工作機械の間の点線で示している。位置センサ１７１０ｘ，１７１０ｙ，１７１０ｚ，１７１０ｓは、関連する位置信号を、コネクタ１７１２，１７１４，１７１６，１７１７を経由してＣＰＵ１７２４に伝達する。位置センサ１７１０は、図１に示す位置フィードバックを提供する。
【０２９５】
図２５は、図１２を参照した上記記載の本発明の方法２５００を説明している。第１の工程２５０２で、目標の工作機械経路を識別する。図１２の例では、（１，４，０）から（５，１，６）の目標経路を識別している。工程２５０４で、工作機械が、初期の位置から目標経路に従う命令を受ける。初期位置（１，４，０）から（５，１，６）の経路の命令を受ける。次に、工程２５０６で、工作機械の実際位置が、命令工程後に感知される。図１２の場合、点Ｂの工作機械の実際位置が感知される。最終工程２５０８で、実際の位置からの目標工作機械の副経路が計算され、工作機械の動きの予測的誤差を修正する。実施例では、点Ｂが実際位置で、副経路１２０２が、これに対応する。修正される予測的誤差は、点Ａと点Ｆの間の経路に沿い何処でも起きる。予測的誤差は、目標経路の識別のかなり前に経験的に決めても良い。
【０２９６】
図２６は、本発明の他の方法２６００を説明する（図１２参照）。第１の工程２６０２で、工作機械の動きの予測的誤差を経験的に決めている。工作機械が、（１，４，０）に到達する前に、または、工作機械が、加工部品の近傍に入る前に、試験で予測的誤差を決める。経験的な決定は、実験室、製造プラント又はこの組合せで生じる。予測的誤差の決定は、周囲の温度および／または湿度に依存する。工程２６０４で、工作機械の実際の動きを監視する。位置センサ１７１０が、工作機械１７０８の位置を感知し、上記記載したように、関連する位置信号をＣＰＵ１７２４に伝達する。最終工程２６０６で、工作機械の実際の動きは、経験的に決めた予測的誤差および実際の動きの確率的誤差で制御する。例えば、工作機械を、目標工作機械副経路１２０２に沿って、サーボ増幅器１７０６で導く。
【０２９７】
図２７は、本発明の他の方法２７００を説明する（図１２参照）。第１の工程２７０２で、第１の複数の連続した動きの後の工作機械の実際の位置を感知する。例では、位置センサ１７１０が、工作機械１７０８の動きの後で、工作機械１７０８の位置を感知する。次に、工程２７０４で、工作機械の目標位置を、感知工程に基づき計算する。目標位置は、工作機械の動きの予測的誤差および確率的誤差の補償に計算する。例えば、ＣＰＵ１７２４が、位置センサ１７１０を基に目標位置Ｔを計算する。位置センサ１７１０は、点Ｂの工作機械１７０８の位置を感知する。目標位置Ｔを計算して、工作機械１７０８の動きの予測誤差および確率的誤差を補償する。目標位置Ｔを計算し、点（１，４，０）と点（５，１，６）の間の目標経路での点Ｃの確率（サーボ後の実際の位置）を最大にする。サーボ中の予測的誤差の影響の後で行う。最終工程２７０６で、感知および計算工程を、工作機械の他の動きに対し繰り返す。例として、点Ｃ〜Ｆの各点の工作機械の位置を感知し、新しい目標位置を、感知工程の後そしてそれに基づき計算する。
【０２９８】
本発明の経路の動作制御方法の１つの実施形態での、ＴＢＣフローチャートを、表１〜表１６に、ＴＢＣカーネルフローチャートを表１７〜２１に示す。
【０２９９】
【表１】
2010511919.tif 000002
ＴＢＣフローチャート１を表す。
【０３００】
【表２】
2010511919.tif 000003
ＴＢＣフローチャート２を表す。
【０３０１】
【表３】
2010511919.tif 000004
ＴＢＣフローチャート３を表す。
【０３０２】
【表４】
2010511919.tif 000005
ＴＢＣフローチャート４を表す。
【０３０３】
【表５】
2010511919.tif 000006
ＴＢＣフローチャート５を表す。
【０３０４】
【表６】
2010511919.tif 000007
ＴＢＣフローチャート６を表す。
【０３０５】
【表７】
2010511919.tif 000008
ＴＢＣフローチャート７を表す。
【０３０６】
【表８】
2010511919.tif 000009
ＴＢＣフローチャート８を表す。
【０３０７】
【表９】
2010511919.tif 000010
ＴＢＣフローチャート９を表す。
【０３０８】
【表１０】
2010511919.tif 000011
ＴＢＣフローチャート１０を表す。
【０３０９】
【表１１】
2010511919.tif 000012
ＴＢＣフローチャート１１を表す。
【０３１０】
【表１２】
2010511919.tif 000013
ＴＢＣフローチャート１２を表す。
【０３１１】
【表１３】
2010511919.tif 000014
ＴＢＣフローチャート１３を表す。
【０３１２】
【表１４】
2010511919.tif 000015
ＴＢＣフローチャート１４を表す。
【０３１３】
【表１５】
2010511919.tif 000016
ＴＢＣフローチャート１５を表す。
【０３１４】
【表１６】
2010511919.tif 000017
ＴＢＣフローチャート１６を表す。
【０３１５】
【表１７】
2010511919.tif 000018
ＴＢＣカーネルフローチャート１を表す。
【０３１６】
【表１８】
2010511919.tif 000019
ＴＢＣカーネルフローチャート２を表す。
【０３１７】
【表１９】
2010511919.tif 000020
ＴＢＣカーネルフローチャート３を表す。
【０３１８】
【表２０】
2010511919.tif 000021
ＴＢＣカーネルフローチャート４を表す。
【０３１９】
【表２１】
2010511919.tif 000022
ＴＢＣカーネルフローチャート５を表す。
【表２２】
2010511919.tif 000023
２０の工程での３つのタイプの動作命令のサーボ増幅器ＤＡＣ命令の変換。
【０３２０】
発明を例示的な設計で記載したが、明細書の精神および範囲内での変更は可能である。この出願は、一般原理を使用した発明のいかなる変形、使用、適用を含む。
【図面の簡単な説明】
【０３２１】
【図１】本発明の許容差ベースの制御方法の実施形態のフローチャートである。
【図２】本発明の許容差ベースの制御システムの実施形態のブロック図である。
【図３】（ａ）異なる許容差値を機械加工の場所の異なる領域へのマッピングを説明する図式。（ｂ）マッピングの他の実施形態の第１の場合を説明する図式。（ｃ）マッピングの他の実施形態の第２の場合を説明する図式。（ｄ）異なる許容差値を、円弧の場合での機械加工の場所の異なる領域のマッピングの他の実施形態を説明する図式である。
【図４】（ａ）プログラムのデータ点の作図で、本発明の実施形態によるデータ圧縮の方法を説明している。（ｂ）プログラムのデータ点の作図で、本発明の他の実施形態によるデータ圧縮の方法を説明している。
【図５】（ａ）プログラムのデータ点の作図で、本発明の１つの実施形態によるデータ平滑化のデータ点の選択する方法を説明している。（ｂ）プログラムのデータ点の作図で、本発明の他の実施形態によるデータ平滑化のデータ点の選択する方法を説明している。
【図６】（ａ）プログラムのデータ点の作図で、本発明の１つの実施形態による平滑化するために線の動きを調整する方法を説明している。（ｂ）プログラムのデータ点の作図の斜視図で、本発明の他の実施形態による平滑化するために線の動きを調整する方法を説明している。
【図７】図６（ａ）の中央の２つの点の拡大図である。
【図８】次のプログラムのデータ点を伴う図６（ａ）のプログラムのデータ点の作図で、平滑化のために図６ａの方法の次の工程を説明している。
【図９】プログラムのデータ点の作図で、本発明の１つの実施形態による２重円弧アルゴリズムを用いたデータを平滑化する方法を説明している。
【図１０】工作機械（工具）の速度対時間の作図で、Ｓ曲線とも呼ばれる。
【図１１】工作機械の経路に沿う２つの連続する点の間に延びる部分長さの作図である。
【図１２】所望の工作機械経路からの実際の経路の偏移を説明する作図である。
【図１３】本発明の１つの実施形態のサーボ信号の制御ループサイクル時間の作図である。
【図１４】プログラムのデータ点の作図で、本発明の１つの実施形態による予測的誤差を修正する方法を説明する。
【図１５】プログラムのデータ点の作図で、本発明の１つの実施形態による確率的誤差を修正する方法を説明する。
【図１６】動作カーネルを実行する本発明の方法を説明するフローチャートである。
【図１７】加工中の製品を機械加工する本発明の工作機械の１つの実施形態のブロック図である。
【図１８】図５に示す本発明の方法の１つの実施形態のフローチャートである。
【図１９】図６，７に示す本発明の方法の１つの実施形態のフローチャートである。
【図２０】図９に示す本発明の方法の１つの実施形態のフローチャートである。
【図２１】図５〜９に示す本発明の方法の１つの実施形態のフローチャートである。
【図２２】図１１に示す本発明の方法の１つの実施形態のフローチャートである。
【図２３】図１１に示す本発明の方法の他の実施形態のフローチャートである。
【図２４】図１１に示す本発明の方法の更に他の実施形態のフローチャートである。
【図２５】図１２に示す本発明の方法の１つの実施形態のフローチャートである。
【図２６】図１２に示す本発明の方法の他の実施形態のフローチャートである。
【図２７】図１２に示す本発明の方法の更に他の実施形態のフローチャートである。
【図２８】（ａ）レベル０のデータ平滑化のグラフ表示である。（ｂ）レベル１のデータ平滑化のグラフ表示である。（ｃ）レベル２のデータ平滑化のグラフ表示である。（ｄ）レベル３のデータ平滑化のグラフ表示である。（ｅ）レベル４のデータ平滑化のグラフ表示である。
【図２９】本発明の２重円弧の平滑化アルゴリズムの１つの実施形態の１つの工程を説明する作図である。
【図３０】本発明の２重円弧の平滑化アルゴリズムの１つの実施形態の他の工程を説明する作図である。
【図３１】本発明の２重円弧の平滑化アルゴリズムの１つの実施形態の更に他の工程を説明する作図である。
【図３２】（ａ）工作機械の速度対時間のほかの作図で、Ｓ曲線と呼ばれる。（ｂ）距離が、図３２ａの作図に関連する方法を示す図表である。
【図３３】停止距離の概念を説明する図表である。
【図３４】付加的および非付加的先読みアルゴリズムに対する工作機械の速度対時間の他の作図である。
【図３５】（ａ）本発明の付加的先読みアルゴリズムの１つの実施形態のフローチャート。（ｂ）本発明の非付加的先読みアルゴリズムの１つの実施形態のフローチャートである。
【図３６】非付加的先読みアルゴリズムの運動特性とＴＢＣ付加的先読みアルゴリズムを比較する表である。
【図３７】本発明の非ＴＢＣ動作制御配置の１つの実施形態のブロック図である。
【図３８】（ａ）基準経路ｙ＝ｘの作図である。（ｂ）時間ベースのｙ軸経路ｙ＝ｋｔに分解した図３８ａの基準経路の作図である。（ｃ）時間ベースのｘ軸経路ｘ＝ｋｔに分解した図３８ａの基準経路の作図である。（ｄ）図３８ａ〜ｃの基準経路から生ずる実際の経路の作図である。
【図３９】本発明のＴＢＣ動作制御配置の１つの実施形態のブロック図である。
【図４０】図３９のＴＢＣ動作制御配置の他の実施形態のブロック図である。
【図４１】線の動きのストッパ面法線方向の計算を説明する作図である。
【図４２】円弧の動きのストッパ面法線方向の計算を説明する作図である。
【図４３】線の動きの形状分析を説明する作図である。
【図４４】（ａ）円弧の動きの形状分析を説明する第一の作図である。（ｂ）円弧の動きの形状分析を説明する第２の作図である。
【図４５】ＴＢＣのＳ曲線制御装置の１つの実施形態の操作を説明するフローチャートである。
【図４６】本発明のＴＢＣフィードフォワード制御配置の１つの実施形態を説明するブロック図である。
【図４７】法線誤差の可変ゲインフィードバック制御の本発明の配置の１つの実施形態を説明するブロック図である。
【図１】
2010511919.tif 000024
【図２】
2010511919.tif 000025
【図３ａ】
2010511919.tif 000026
【図３ｂ】
2010511919.tif 000027
【図３ｃ】
2010511919.tif 000028
【図３ｄ】
2010511919.tif 000029
【図４ａ】
2010511919.tif 000030
【図４ｂ】
2010511919.tif 000031
【図５ａ】
2010511919.tif 000032
【図５ｂ】
2010511919.tif 000033
【図６ａ】
2010511919.tif 000034
【図６ｂ】
2010511919.tif 000035
【図７】
2010511919.tif 000036
【図８】
2010511919.tif 000037
【図９】
2010511919.tif 000038
【図１０】
2010511919.tif 000039
【図１１】
2010511919.tif 000040
【図１２】
2010511919.tif 000041
【図１３】
2010511919.tif 000042
【図１４】
2010511919.tif 000043
【図１５】
2010511919.tif 000044
【図１６】
2010511919.tif 000045
【図１７】
2010511919.tif 000046
【図１８】
2010511919.tif 000047
【図１９】
2010511919.tif 000048
【図２０】
2010511919.tif 000049
【図２１】
2010511919.tif 000050
【図２２】
2010511919.tif 000051
【図２３】
2010511919.tif 000052
【図２４】
2010511919.tif 000053
【図２５】
2010511919.tif 000054
【図２６】
2010511919.tif 000055
【図２７】
2010511919.tif 000056
【図２８ａ】
2010511919.tif 000057
【図２８ｂ】
2010511919.tif 000058
【図２８ｃ】
2010511919.tif 000059
【図２８ｄ】
2010511919.tif 000060
【図２８ｅ】
2010511919.tif 000061
【図２９】
2010511919.tif 000062
【図３０】
2010511919.tif 000063
【図３１】
2010511919.tif 000064
【図３２】
2010511919.tif 000065
【図３３】
2010511919.tif 000066
【図３４】
2010511919.tif 000067
【図３５】
2010511919.tif 000068
【図３６】
2010511919.tif 000069
【図３７】
2010511919.tif 000070
【図３８ａ】
2010511919.tif 000071
【図３８ｂ】
2010511919.tif 000072
【図３８ｃ】
2010511919.tif 000073
【図３８ｄ】
2010511919.tif 000074
【図３９】
2010511919.tif 000075
【図４０】
2010511919.tif 000076
【図４１】
2010511919.tif 000077
【図４２】
2010511919.tif 000078
【図４３】
2010511919.tif 000079
【図４４ａ】
2010511919.tif 000080
【図４４ｂ】
2010511919.tif 000081
【図４５】
2010511919.tif 000082
【図４６】
2010511919.tif 000083
【図４７】
2010511919.tif 000084
【手続補正書】
【提出日】平成19年1月26日(2007.1.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
本体に経路を生成する方法が、
該経路に含まれる複数の線分を識別する工程と、
該複数の線分の少なくとも一部分を平滑化する工程とを備えている、
該線分の該一部分を、該経路に対し許容差内にとどまる複数の円弧に変換する、
ことを特徴とする方法。
【請求項２】
前記複数の円弧の第１の円弧が、前記複数の円弧の第２の円弧に、点で結合し、該第１および該第２の円弧が、該点で互いに接する、ことを特徴とする請求項１記載の方法。
【請求項３】
前記本体が、ＣＮＣ工作機械の切削ヘッドである、ことを特徴とする請求項１記載の方法。
【請求項４】
請求項１記載の方法が、前記経路を計算する工程と、前記許容差を計算する工程と、および、前記経路に関連する送り速度を計算する工程とを備えている、ことを特徴とする方法。
【請求項５】
前記経路を計算する工程が、部品プログラムから複数の点の位置を読み取る工程と、該複数の点の間を補間して前記経路を規定する工程とを備えている、ことを特徴とする請求項４記載の方法。
【請求項６】
前記部品プログラムが、複数のＮＣ動作命令および複数のＮＣ許容差命令を備えている、ことを特徴とする請求項５記載の方法。
【請求項７】
請求項１記載の方法が、前記複数の線分の少なくとも一部分を圧縮する工程を備えている、ことを特徴とする方法。
【請求項８】
前記圧縮工程が、
第１線分の開始点を決める工程と、
隣接する第２の線分の終点を決める工程と、
該第１の線分と該第２の線分に共通な点を決める工程と、
該第１の線分と該第２の線分を、第３の線分で置き換える工程とを備えている、
複数の条件が満たされる場合、該第３の線分は、該開始点で始まり、該終点で終わる、
ことを特徴とする請求項７記載の方法。
【請求項９】
前記複数の条件が、開始点と終点の間の距離制限を含んでいる、ことを特徴とする請求項８記載の方法。
【請求項１０】
前記複数の条件が、前記第１の線分および第２の線分で形成される角度の角度制限を含んでいる、ことを特徴とする請求項８記載の方法。
【請求項１１】
前記複数の条件が、前記開始点、前記終点および前記共通の点に関連する許容差の許容差要件を含んでいる、ことを特徴とする請求項８記載の方法。
【請求項１２】
前記複数の条件が、前記共通の点と前記第３の線分の間の垂直距離の垂直距離制限を含んでいる、ことを特徴とする請求項８記載の方法。
【請求項１３】
前記垂直距離の制限が、前記共通の点に関連する許容差よりも小さい、ことを特徴とする請求項１２記載の方法。
【請求項１４】
前記平滑化工程が、
前記複数の線分を規定する複数の点を識別する工程と、
前記複数点の少なくとも一部分の位置を調整する工程とを備えている、
前記複数の円弧が、前記複数の点を通り、前記経路の一部分を規定し、前記経路の該一部分が、楕円形で近似できる緩やかに変化する曲率を備えている、
ことを特徴とする請求項１記載の方法。
【請求項１５】
前記経路の前記一部分が楕円形である、ことを特徴とする請求項１４記載の方法。
【請求項１６】
前記平滑化工程が、
前記複数の線分を規定する複数の点を識別する工程と、
該複数の点の少なくとも一部分の位置を調整する工程とを備えている、
前記複数の円弧が、該複数の点を通り、前記経路の一部分を規定する円形の円弧である、
ことを特徴とする請求項１記載の方法。
【請求項１７】
前記平滑化工程が、平滑化を準備する工程と、平滑化を調整する工程と、２重円弧アルゴリズムを用いて平滑化する工程とを含んでいる、ことを特徴とする請求項１記載の方法。
【請求項１８】
前記平滑化を準備する工程が、
第１の点、該第１の点に隣接する第２の点、および、該第２の点に隣接する第３の点を識別する工程と、
該第１から該第３の点は、前記経路の一部分を規定する、
該第１から該第３の点を通る円弧を決める工程と、
該第１と該第２の点の間に第１の線分を決める工程と、
該第１の線分の中間点と該円弧との間の第１の最短距離を計算する工程と、
該第２と該第３の点との間に第２の線分を決める工程と、
該第２の線分の中間点と該円弧との間の第２の最短距離を計算する工程と、
該第２の点に平滑化の印を付ける工程とを備えている、
平滑化の印を付ける条件が、該第１および該第２の最短距離が、規定の距離よりも短く、該第１および該第２の線分で形成される角度が、規定の角度より大きい場合である、
ことを特徴とする請求項１７記載の方法。
【請求項１９】
前記平滑化を準備する工程が、
点に印を付ける工程を備えている、
印を付ける点は、前記経路の一部分が、複数の条件が満足されるかに依存し、平滑化の適・不適を規定する、
ことを特徴とする請求項１７記載の方法。
【請求項２０】
前記平滑化を調整する工程が、
前記経路の一部分を共に規定する４つの隣接する点を識別する工程と、
第１の構成円弧を決める工程と、
該第１の構成円弧は、前記第１、第２および第４の点を通り、第１の面に位置する、
第２の構成円弧を決める工程と、
該第２の構成円弧は、前記第１、第３および第４の点を通り、第２の面に位置する、
前記第２の点から該第２の構成円弧上の第１の終点に延びる第１のベクトルを決める工程と、
該第１の終点は、前記第２の点に最も近い、
前記第３の点から該第１の構成円弧上の第２の終点に延びる第２のベクトルを決める工程と、
該第２の終点は、前記第３の点に最も近い、
前記第２の点を、該第１のベクトルに沿って、第１の調整距離に調整する工程と、
該調整の工程の条件は、前記第２の点が、平滑化に適する印が付けられ、 前記第１および前記第３の点の少なくとも１つが、平滑化に適する印が付けられている場合である、
前記第３の点を、該第２のベクトルに沿って、第２の調整距離に調整する工程とを備えている、 
該調整の工程の条件は、前記第３の点が、平滑化に適する印が付けられ、前記第２および前記第４の点の少なくとも１つが、平滑化に適する印が付けられている場合である、
ことを特徴とする請求項１７記載の方法。
【請求項２１】
前記第１のベクトルを決める工程が、
前記第２の構成円弧で規定される円の第１の中心点を決める工程と、
第１の投射点を決める工程と、
該第１の投射点は、前記第２の点と、前記第２の面に垂直な線を規定する、
該第１の中心点と該第１の投射点を通り、前記第２の構成円弧に交差する線を決めて、前記第１の終点を位置付ける工程とを備えている、
ことを特徴とする請求項２０記載の方法。
【請求項２２】
前記第２のベクトルを決める工程が、
第２の投射点を決める工程と、
該第２の投射点は、前記第３の点と、前記第１の面に垂直な線を規定する、
該第２の中心点と該第２の投射点を通り、前記第１の構成円弧に交差する線を決めて、前記第２の終点を位置付ける工程とを備えている、
ことを特徴とする請求項２０記載の方法。
【請求項２３】
前記平滑化を調整する工程が、４つの隣接するデータ点の複数の組で、複数回実行し、該各組は、前の組および次の組を備える３つのデータ点を共有している、ことを特徴とする請求項２０記載の方法。
【請求項２４】
前記第１および前記第３の点の１つだけに平滑化に適する印が付いている時、前記第１の調整距離は、第１の値と前記第１のベクトルの長さの積になり、
前記第１および前記第３の点の両方に平滑化に適する印が付いている時、前記第１の調整距離は、第２の値と前記第１のベクトルの長さの積になる、
ことを特徴とする請求項２０記載の方法。
【請求項２５】
前記第１の値は、ほぼ０．５で、前記第２の値は、ほぼ０．１９である、ことを特徴とする請求項２４記載の方法。
【請求項２６】
２重円弧アルゴリズムを使用する平滑化の工程が、
前記平滑化の調整の工程で処理された複数の点の各々に対し所望の接線ベクトルを決める工程と、
２重円弧を生成する工程とを備えている、
該２重円弧は、第１の点と第２の点との間の第１の線分、および、該第２の点と第３の点との間の第２の線分、を置き換える、
ことを特徴とする請求項１７記載の方法。
【請求項２７】
請求項２６記載の方法が、
前記２重円弧が有効であるかを決める工程を備えている、
前記第２の点から前記２重円弧の最も近い方の円弧までの距離を、所定の距離と比較して決める、
ことを特徴とする方法。
【請求項２８】
前記２重円弧が有効でない場合、前記第１の点、前記第２の点、および、前記第１と前記第２の点の中間点を通る第２の一対の円弧を生成する、ことを特徴とする請求項２７記載の方法。
【請求項２９】
請求項２８記載の方法が、
前記第２の一対の円弧が有効であるかを決める工程を備えている、
前記中間点から前記第１と前記第２の点との間に延びる線分までの距離を、所定の距離と比較して決める、
ことを特徴とする方法。
【請求項３０】
前記第２の一対の円弧が有効でない場合、前記第１と前記第２の点との間の経路の部分を線分として規定する、ことを特徴とする請求項２９記載の方法。
【請求項３１】
前記圧縮工程が、
第１の線分と該第１の線分に隣接しない第２の線分から成る複数の隣接する線分を、第３の線分で置き換える工程を備えている、
該第３の線分の開始点が、該第１の線分の開始点に対応している、
該第３の線分の終点が、該第２の線分の終点に対応している、
ことを特徴とする請求項７記載の方法。
【請求項３２】
本体の経路データを調整する方法が、
該経路データの第１の点から該経路データの第２の点に延びる線の動きを識別する工程と、
該線の動きを、第１の円弧の動きおよび第２の円弧の動きで置き換える工程とを備えている、
該第１の円弧の動きは、該第１の点で始まり交点で終了し、該第２の円弧の動きは、該交点で始まり該第２の点で終了する、
ことを特徴とする方法。
【請求項３３】
前記第１の円弧の動きは、前記第１の点で前の動きに接する、ことを特徴とする請求項３２記載の方法。
【請求項３４】
前記第１の円弧の動きは、前記交点で前記第２の円弧の動きに接する、ことを特徴とする請求項３２記載の方法。
【請求項３５】
前記第２の円弧の動きは、前記第２の点で次の動きに接する、ことを特徴とする請求項３２記載の方法。
【請求項３６】
前記第１の円弧の動きは、第１の半径を有し、前記第２の円弧の動きは、該第１の半径と異なる第２の半径を有する、ことを特徴とする請求項３２記載の方法。
【請求項３７】
経路に沿う速度制限を計算する方法が、
複数の動作命令を含む先読み待ち行列（２０８）を与える工程と、
該複数の動作命令は、関連する第１の停止距離を有する第１の動作命令を含んでいる、
第２の動作命令を、該先読み待ち行列（２０８）の該複数の動作命令に加える工程と、
該第２の動作命令に関連する第２の停止距離を計算する工程と、
該第１の動作命令に関する該第１の停止距離を、該第２の停止距離に基づき、低減すべきかを決める工程とを備えている、
ことを特徴とする方法。
【請求項３８】
前記第１の動作命令に関連する前記第１の停止距離を、前記第２の停止距離に基づいて、低減すべきかを決める工程が、
前記第２の動作命令の前記長さおよび前期第２の停止距離の和を計算する工程と、
前記第１の停止距離を該和と比較する工程とを備えている、
ことを特徴とする請求項３７記載の方法。
【請求項３９】
前記第１の停止距離が前記和を超える場合、前記第１の停止距離を低減する、ことを特徴とする請求項３８記載の方法。
【請求項４０】
前記第１の停止距離を前記和に低減する、ことを特徴とする請求項３９記載の方法。
【請求項４１】
前記第１の停止距離を低減しない場合、
第３の動作命令を前記先読み待ち行列（２０８）に加える工程と、
該第３の動作命令に関連する第３の停止距離を計算する工程と、
前記第２の動作命令に関連する前記第２の停止距離を、該第３の停止距離に基づき、低減すべきかを決める工程とを備えている、
ことを特徴とする請求項３７記載の方法。
【請求項４２】
経路に沿う速度制限を計算する方法が、
該経路は、第１の速度を有する第１の点および第２の速度を有する第２の点を含んでいる、
第１の終速度を有する第１の終点を決める工程と、
決めた該第１の終点では、該第１の速度および該第１の終速度で制約された速度プロフィールが、前記本体が前記第２の点に在る時に、ほぼ同時に該第２の速度を通り、該第２の速度が該第１の終速度より大きく、該第１の速度が該第２の速度よりも大きい、
前記速度プロフィールに基づいて、前記第１の点から前記第２の点まで、前記本体の現在速度を制御する工程とを備えている、
ことを特徴とする方法。
【請求項４３】
前記第１の終速度が、零である、ことを特徴とする請求項４２記載の方法。
【請求項４４】
前記速度プロフィールが、Ｓ曲線速度プロフィールである、ことを特徴とする請求項４２記載の方法。
【請求項４５】
前記速度プロフィールが、前記第１の点から前記第２の点まで、前記本体の各位置に対し、唯一の速度値を有している、ことを特徴とする請求項４２記載の方法。
【請求項４６】
請求項４２記載の方法が、前記第２の点と前記第１の終点との間の第１の距離を決める工程を備えている、ことを特徴とする方法。
【請求項４７】
前記経路は、第３の速度を有する第３の点を含んでいる、ことを特徴とする請求項４２記載の方法。
【請求項４８】
請求項４７記載の方法が、
第２の終速度を有する第２の終点を決める工程を備えている、
決めた該第２の終点では、前記第２の速度および該第２の終速度で制約された第２の速度プロフィールが、前記本体が前記第３の点に在る時に、ほぼ同時に、該第３の速度を通る、
ことを特徴とする方法。
【請求項４９】
請求項４８記載の方法が、
前記第２の点と前記第１の終点との間の第１の距離を決める工程と、
前記第３の点と前記第２の終点との間の第２の距離を決める工程と、
該第１の距離が、前記本体の現在速度を、前記第１の点での前記第１の速度から、前記第２の点での前記第２の速度に、変えるのに十分であるかを決める工程とを備えている、
ことを特徴とする請求項４８記載の方法。 
【請求項５０】
前記第１の距離が、前記第２の距離と前記第２の点から前記第３の点までの長さとの和以下の場合、
前記第１の距離が、前記本体の現在速度を、前記第１の点での前記第１の速度から、前記第２の点での前記第２の速度に変えるのに十分であると決定する、ことを特徴とする請求項４９記載の方法。
【請求項５１】
前記第１の距離が、前記第２の距離と前記第２の点から前記第３の点までの長さとの前記和より大きい場合、
前記第１の距離が、前記本体の現在速度を、前記第１の点での前記第１の速度から、前記第２の点での前記第２の速度に変えるのに十分でないと決定する、ことを特徴とする請求項４９記載の方法。
【請求項５２】
前記第１の距離が、前記第２の距離と前記第２の点から前記第３の点までの長さとの前記和より大きい場合、
前記本体の現在速度が、前記第１の点での前記第１の速度から、前記第２の点での前記第２の速度に変えるのに十分となる距離に前記第１の距離を下げる、ことを特徴とする請求項５１記載の方法。
【請求項５３】
前記第１の距離が、前記第２の距離と前記第２の点から前記第３の点までの長さとの和より大きい場合、
前記第１の距離を減じて前記和に等しくする、ことを特徴とする請求項５２記載の方法。
【請求項５４】
前記本体が、ＣＮＣ工作機械の切削ヘッドである、ことを特徴とする請求項４２記載の方法。
【請求項５５】
前記第１の点から前記第２の点までの前記本体の前記現在速度を制御する工程が、
少なくとも２つの規定の速度を比較する工程と、
該２つの速度は、機械の許容速度および経路速度の制限である、
前記現在の速度を、少なくとも該２つの規定の速度の最低値を越えないように設定する工程とを備えている、
ことを特徴とする請求項５４記載の方法。
【請求項５６】
前記第２の点での前記現在速度が、結合速度制限を越えない、ことを特徴とする請求項５５記載の方法。
【請求項５７】
複数の部分を有する経路の速度制限を計算する方法が、
停止距離および各部分に関連する長さを、待ち行列に順次保存する工程と、
現在の部分に関連する現在の停止距離が、次の停止距離と次の部分に関連する次の長さとの和より大きい場合、該現在の停止距離を該和に等しく設定する工程と、
前の部分に関連する前の停止距離が、該現在の停止距離に該現在の部分に関連する現在の距離を加えた距離以下であることを確認する工程とを備えている、ことを特徴とする方法。
【請求項５８】
請求項５７記載の方法が、
各停止距離が、停止距離と次の部分に関連する長さとの次の和以下であることを繰返し照合し、該次の和より大きい停止距離を前記待ち行列に設定する工程と、
停止距離と次の部分に関連する長さとの和以下の停止距離に出合った時に停止する工程とを備えている、
ことを特徴とする方法。
【請求項５９】
一連の動作命令で本体の動きを制御する方法で、該一連の動作命令の代表的な動きに対して該方法が、
輪郭を有する動作命令を取得する工程と、
該動作命令の形状を分析する工程と、
該形状を分析する工程は、
該動作命令に関連するストッパ位置を決める工程と、
該動作命令に関連するストッパ面を表すベクトルを決める工程とを備える、
少なくとも決定した該ストッパ面に基づき、前記本体に、所望の速度および所望の加速度を決める工程と、
該動作命令を実行する工程とを備えている、
ことを特徴とする方法。
【請求項６０】
前記動作命令の実行での多数の時期で、前記本体の実際の位置をフィードバックで与える、ことを特徴とする請求項５９記載の方法。
【請求項６１】
前記多数の時期の各時期が、約２００μｓｅｃの間隔である、ことを特徴とする請求項６０記載の方法。
【請求項６２】
前記動作命令の実行中で、前記多数の時期での所定の１つで、前記本体の前記実際の位置を、前記動作命令の前記輪郭と比較して、許容差誤差を決める、ことを特徴とする請求項６０記載の方法。
【請求項６３】
前記許容差誤差が、前記実際の位置から前記輪郭上の最も近い点までの距離である、ことを特徴とする請求項６２記載の方法。
【請求項６４】
請求項６３記載の方法が、
前記許容差誤差を前記動作命令に関連する許容差値と比較し、前記許容差誤差が該許容差値よりも小さい場合、前記所望の速度上げ、前記許容差誤差が、該許容差誤差よりも大きい場合、前記所望の速度を下げる工程を備えている、
ことを特徴とする方法。
【請求項６５】
前記動作命令が円弧の動きで、前記本体の前記実際の位置が、該円弧の動きで規定される面に投射される、ことを特徴とする請求項６０記載の方法。
【請求項６６】
多次元環境の経路に沿う本体の動きを、間隔の有る時期で制御する方法が、
該多次元環境に有る該本体の現在の位置を現在の時期で決める工程と、
該経路上に理想の点を決める工程と、
該理想の点は、該現在位置に最も近い該経路上の点である、
該現在位置と該理想の点との間のベクトル差を決める工程と、
該ベクトル差に基づいて、次の時期での前記本体の速度を調整する工程とを備えている、
ことを特徴とする方法。
【請求項６７】
請求項６６記載の方法が、
前記現在位置から前記理想の点までの距離に対応する法線方向の第１のトラッキング誤差を計算する工程と、    
前記理想の点が背後で遅延する経路の長さに対応する接線方向の第２のトラッキング誤差を計算する工程とを備えている、
ことを特徴とする方法。  
【請求項６８】
前記本体は、ＣＮＣ機械加工ヘッドで、前記現在位置をフィードバック情報で決める、ことを特徴とする請求項６６記載の方法。
【請求項６９】
前記経路が一連の円弧から成り、該円弧の各々は、前の円弧および次の円弧に接する、ことを特徴とする請求項６６記載の方法。
【請求項７０】
請求項６６記載の方法が、
前記現在位置から前記理想の点までの距離に対応する前記法線方向のトラッキング誤差を決める工程で、
前記ベクトル差に基づいて前記本体の速度を調整する工程が、
前記法線方向の前記トラッキング誤差が、規定値より小さい場合、前記速度を増加する工程と、
前記法線方向の前記トラッキング誤差が、規定値より大きい場合、前記速度を減少する工程とを備えている、
ことを特徴とする方法。
【請求項７１】
前記経路が、複数の動作命令を備え、動作命令の形状特徴の分析を該動作命令の実行前に行なう工程を備えている、ことを特徴とする請求項６６記載の方法。
【請求項７２】
前記分析の工程が、ストッパ面の法線方向を決める工程と、ストッパ位置を決める工程とを備えている、ことを特徴とする請求項７１記載の方法。
【請求項７３】
請求項６６記載の方法が、前記本体の貼り付き摩擦の影響を補償するために速度を調整する工程を備えている、ことを特徴とする方法。
【請求項７４】
請求項６６記載の方法が、前記本体の歯面遊びの影響を補償するために速度を調整する工程を備えている、ことを特徴とする方法。
【請求項７５】
請求項６６記載の方法が、複数の制御信号を前記本体の動きを起こすサーボシステムに与える工程を備えており、該制御信号が前記速度に関連している、ことを特徴とする方法。
【請求項７６】
経路に沿って本体の動きを制御する方法が、
状態フラッグの設定を加速または減速に決める工程と、
該状態フラッグが加速の場合、
該本体の現在の状態に対し停止距離を決める、
該現在の状態は、位置と速度を含む、
該停止距離を、該本体の理想の現在位置と終点の位置との間の第２の距離と比較する、
該第２の距離が、該停止距離よりも小さい場合、該状態フラッグを減速に変える、
該第２の距離が、該停止距離よりも大きい場合、該本体に所望の加速度および所望の速度を決める、
該所望の加速度および所望の速度に基づいて該本体の速度を調整する工程とを備えている、
ことを特徴とする方法。
【請求項７７】
前記状態フラッグが減速に変化する場合、前記本体の前記現在位置に関連する最大ジャーク値を修正する工程を備える、ことを特徴とする請求項７６記載の方法。
【請求項７８】
前記所望の加速度および所望の速度が、前記修正したジャークに依存する、ことを特徴とする請求項７６記載の方法。
【請求項７９】
前記本体を、前記現在の速度から、速度プロフィールでの終点位置で略零速度に減速させる場合、前記停止距離は、前記本体が前記現在位置から移動する第１の距離である、ことを特徴とする請求項７６記載の方法。
【請求項８０】
前記速度プロフィールがＳ曲線プロフィールである、ことを特徴とする請求項７９記載の方法。
【請求項８１】
前記本体の前記現在の状態が加速を含む、ことを特徴とする請求項７６記載の方法。
【請求項８２】
経路に沿う本体の動きを制御する方法が、
該本体の実際の位置を決める工程と、
該本体の該実際位置と該経路上の位置との間の３次元誤差を決める工程と、
該経路は、複数の円弧の動きから成り、該円弧の動きは、少なくとも１つの線の動きを置き換える、
該３次元誤差に基づき該本体の動きを制御する工程とを備えている、
ことを特徴とする方法。
【請求項８３】
前記３次元誤差が、規定の許容差よりも小さい場合、前記本体の前記速度を増加する、ことを特徴とする請求項８２記載の方法。
【請求項８４】
前記３次元誤差が、規定の許容差よりも大きい場合、前記本体の前記速度を減少する、ことを特徴とする請求項８２記載の方法。
【請求項８５】
前記複数の円弧が互いに接する、ことを特徴とする請求項８２記載の方法。
【請求項８６】
請求項８２記載の方法が、
前記経路に基づいて求心加速度を計算する工程と、
該求心加速度に基づいて、前記本体の動きを制御する工程とを備えている、
ことを特徴とする方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動体の経路のナビゲーションに関し、特に、コンピュータ制御工作機械の動作制御システムに関する。
【背景技術】
【０００２】
自動化が、動作制御装置の発展になっている。動作制御装置は、作動装置に信号を送り、所望の経路に沿って連携した動きを実行し、有用な作業を実施する。動作制御装置は、所定の作業の実行で、手動操作よりも速度および精度が増している。ロボットおよび自動製造装置は、生産物の例で、動作制御技術を利用している。これら装置のプログラムで、所望の経路を、線／円弧部分の集合として特定し、各部分に沿って工作機械（工具）を所望の速度で遂行する。工作機械の速度は、しばしば、複雑な経路の各部分または部分の組に沿って一定に保つ。経路の各点に沿う速度の最適化は、多大な時間を必要とする。
【０００３】
工作機械の経路をプログラムする殆どの人は、速度と精度の間に妥協点があるのを認識している。高速度になると、制御システムが、所望の経路上に留まるのが難しくなる。従って、経路のプログラマは、所望の経路に沿う動きの速度および精度の間で妥協している。この決定は、多くの場合、プログラマの経験に基づき、反復するプログラム処理となる。経路を実行し、所望の経路から好ましくない偏移が観察されると、その部分で速度を下げて修正する。プログラマは、所望の経路からの偏移および動きの質を制御して、経路に沿う工作機械の速度を操作する。
【０００４】
製造装置の動作制御システム（多くの場合、コンピュータ数値制御装置（ＣＮＣ）と呼ぶ）は、所望の経路からの偏移を最小限にし、動作制御を最大限にする。ＣＮＣは、製造装置（旋盤、研削盤、研磨機）の制御に使用する。ＣＮＣは、計算装置で、工作機械の実時間制御に適応させている。数値制御装置は、部品プログラムを形成する一連のコードした命令を受取る。部品プログラムは、典型的には、標準のＧ＆Ｍコード言語、またはこの言語に近い派生語で表している。これらの言語は、国際標準化機構（ＩＳＯ）または電子工業会（ＥＩＡ）ＲＳ−２７４−Ｄに基づき、Ｇ，Ｍ，Ｆの文字で識別されるコードを使用する。コードは、一連の機械加工操作を規定し、部品製造の動きを制御する。数値制御装置は、コードを一連の電気信号に変換する。電気信号は、工作機械に取付けたモータを制御し、プログラムした経路に沿って工作機械に動きをもたらす。
【０００５】
フライス盤を操作する動作制御は、ＣＮＣの一例である。旋盤、研削盤および座標測定機械（ＣＭＭ）は、動作制御にＣＮＣを利用する製造装置の他の例である。３軸ＣＮＣフライス盤は、工作機械を取付けるヘッド、および、Ｘ，Ｙ面で工作機械に対し移動可能なテーブルを備えている。モータが、Ｘ，Ｙ方向にテーブルの動きを、Ｚ方向に工作機械の動きを制御する。モータは、Ｘ，Ｙ，Ｚ直交座標系を確立する。位置センサ（エンコーダまたは定規）が、フライス盤の座標系に対する工作機械の位置を表すフィードバックを与える。ＣＮＣは、工作機械の通り道経路を特定する部品プログラムを読み込む。工作機械は、規定の速度または送り速度で、その経路を追跡する。制御装置は、継続的に現在の工作機械の位置を規定の工作機械の経路と比較する。このフィードバックで、制御装置は、信号を生成し、モータを制御する。工作機械の実際の経路が、所望の工作機械の通り道または経路に、出来る限り近くに合致するようにする。この間に、工作機械は、所望の速度で、通り道に沿って動く。制御装置は、コンピュータ支援工作機械（ＣＡＭ）システムと併せて使用する。
【０００６】
所望の経路または工作機械の通り道からの実際の工作機械の偏移を「機械加工誤差」と呼ぶ。機械加工誤差は、瞬間の工作機械の位置と工作機械の通り道で規定される所望の経路との間の距離として計算される。ＣＮＣ許容差は、加工中の許容できる機械加工誤差の量で規定する。機械加工誤差は、多くの要因に依存する。要因として、動作制御装置の性能および加工中に経路の移動に選択した送り速度がある。一般的に、高い送り速度は、機械加工誤差が大きくなる。
【０００７】
既存の部品プログラムは、ＣＮＣ許容差の問題を明確に述べていない。工作機械の操作者、部品プログラマおよび機械運転者は、送り速度を設定し、この問題に対処する。事実、許容差は、既存のＣＮＣプログラム言語（ＥＩＡ  ＲＳ−２７４−Ｄ）の仕様では表現できない。ＣＮＣ許容差の仕様に合う制約動作の概念に対応する動作制御装置は存在しない。
【０００８】
許容差ベースの動作制御システム（許容差に基づく送り速度の設定方法を含む）は、米国特許６，２４２，８８０に開示されており、参照として取り入れている。この発明は、動作制御の技術に顕著な前進を表すが、改良により、許容差限界内の操作で、送り速度を向上できる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、動体の経路の平滑化に適用する。例えば、如何なる動体の経路の平滑化に応用できる。動体は、運搬手段または投射物で、陸、海、空中を問わない。特別な実施例として、本発明は、ＣＮＣ工作機械（工具）の送り速度の調整にも応用する。ＣＮＣ工作機械は、プログラマおよびプログラムした工作機械経路で規定されるＣＮＣ許容差に依存する。許容差は、プログラムした経路に沿う各点での最大可能な送り速度で規定する。この情報で（位置のフィードバックと共に）、実際の動作経路に沿う送り速度を修正し、理想のプログラムした経路からの位置偏移を制限し、要求されたＣＮＣ許容差を得る。
【課題を解決するための手段】
【００１０】
許容差ベースの制御（TBC: Tolerance Based Control)技術は、プログラムおよび機械加工の環境に、ＣＮＣ許容差の概念を導入する。この技術は、ＣＮＣプログラマに、所定の切削状況で、最大の、ほぼ最大の、許容送り速度の使用による部品のプログラムを可能にする。切削状況として、切削工具、速度、切削深さ、材料状態などがある。この技術で、所望のＣＮＣ許容差を規定する。
【００１１】
ＴＢＣのデータ平滑化技術は、目標経路（平滑化するＮＣ線分を識別するプログラムされた工作機械（工具）の経路）を調べ、このＮＣ線データを、所定の許容差を維持し、円弧に変換する。データ平滑化は、点から点の直線の動きを一連の互いに接する円弧に変換する。許容できる許容差内で、比較的小さな曲率変化の円弧に変換する。平滑化の程度は、規定の許容差に依存する。この技術の利点は、より平滑な経路、より滑らかな速度、加速、より優れた送り速度制御および改善した表面仕上げを実現する。
【００１２】
本発明の利点は、工作機械（工具）に改善した経路または通り道を提供する。特に、工作機械の通り道が、より平滑になり、高い送り速度を可能にし、加工中の製品に、より平滑な表面を提供する。
【００１３】
ＴＢＣの先読み技術は、非ＴＢＣの固定バッファ先読みアルゴリズムに取り代わり、データ枯渇、行き過ぎ、許容差の違反、ドエル（dwell）印、部品生産物の粗末な表面仕上げ、の可能性を低減する。先読みは、１つの速度から他の速度へ加速または減速する十分な距離を保証する。動きの部分の長さが、比較的短く、大きな速度変化に十分でない場合、先読みアルゴリズムは、動作プロフィール（Ｓ曲線速度プロフィール）により、その動作部分の速度を計算し制限する。先読みは、通常、実時間で実行し、先に処理した動作命令の繰返し修正を含むので、アルゴリズムの高効率が、ＣＰＵ負荷の低減および工作機械の性能の向上となる。動作の繰返し修正は、論理と加算だけから成る。さらに、アルゴリズムは、以前の命令を修正する繰返しの要求が少ない利点がある。アルゴリズムは、システム速度または処理能力を増し、改善した実行時間の利点を持つ。
【００１４】
非ＴＢＣ先読みアルゴリズムの１つの選択は、所望の速度変化の実行に動く距離が不十分な時に、速度制限を計算する。この速度制限の計算は、大量の計算を伴う。繰返し実行する計算は、要する処理時間および資源から、好ましくない。本発明の付加的先読みアルゴリズムは、速度制限の計量に停止距離の概念を用いている。このアルゴリズムは、非常に効率的な計算になる。
【００１５】
古典的な比例、積分、微分（ＰＩＤ）の手法と異なり、ＴＢＣの手法は、予測的制御技術を用いる。この技術は、非ＴＢＣの２点間固定サイクル制御を、動作制御による経路および速度で置き換える。ＴＢＣは、プログラムした経路に対する切削機械の位置を観察し、それに応じて調整する。ＴＢＣは、工作機械の位置のフィードバックを、プログラムした経路および機械の性能の情報から処理し、瞬時に制御信号を出す。その信号は、瞬時の加工条件に応答している。
【００１６】
本発明で使用する「真の円弧」技術では、工作機械の動きを経路に沿って制御するが、経路は、多角形近似ではなく、円弧を描く経路で設計している。つまり、工作機械に、円弧を描く経路を追跡する命令を与えている。曲がった経路を近似する一連の直線部分で形成される経路ではない。部分ベースの経路の代わりに、円弧を描く経路および関連するベクトルの使用で、ＴＢＣ制御は、円弧経路を円弧の直線近似への変換を排除し、円弧部分の直接精密加工、コード誤差の除去、部品プログラム規模の縮小、および、複雑な経路の多項式近似への変換に要する処理の除去を可能にする。
【００１７】
本発明のＴＢＣ動作カーネルは、先読み待ち行列から動作命令を読み込み、サーボシステムを制御し、輪郭経路を追跡する。ＴＢＣ動作制御が、非ＴＢＣ動作制御と異なる点は、閉ループの輪郭トラッキング制御である。
【発明を実施するための最良の形態】
【００１８】
図面を通して一致する参照符号は、一致する部分を表す。図面は、本発明の実施形態を表すが、図面は、必ずしも一定の率ではなく、本発明を分かりやすく説明するために一部の特徴を強調している。ここに掲示する例示は、本発明の実施形態の１つの形式であり、本発明の範囲に制限を加えるものではない。 
【００１９】
図面（特に図１）は、本発明による許容差ベースの制御方法１００の１つの実施形態を示す。図は、制御装置の主要な作用の遂行を示し、部品プログラムで規定される部品の機械加工を行なう。実施形態の制御装置は、特別な場合（ＣＮＣ機械制御）に関するが、発明は、種々の動作制御の状態にある本体に一般的に適用できる。動作制御の状態は、ロボット制御、運搬制御、投射物制御等がある。
【００２０】
第１工程１０２で、制御装置は、部品プログラムから部品データを受取る。部品プログラムは、加工する部品または加工中の製品の寸法、形状および他の特性を指定するデータを備えている。一般に、経路予備処理工程１０４で、所望の工作機械（工具）の経路および送り速度を計算する。計算により、工作機械を比較的に短い時間間隔と寸法の許容差制約内で動かし、部品を製造する。部品の機械加工で、工作機械の実際の位置を指定する位置フィードバックを、予測的および確率的誤差補償工程１０６で使用する。サーボ命令を修正し、工作機械の方向を変えて、命令した工作機械の経路と比較した実際の工作機械の経路での予測的（再現性の）および確率的（非再現性の）誤差を補償、即ち修正する。最終工程１０８で、修正したサーボ命令をサーボ増幅器に伝えて、工作機械の作動に使用する。
【００２１】
図１の方法を、図２の工程系統図を参照して詳細に説明する。一般には、工程１０２，１０４が、図２の待ち行列管理プログラムタスク、工程１０６，１０８が、実行システムタスクに該当する。部品プログラムが、部品表面上の不連続な点を与える。数値制御が、これらの不連続な点の間を補間し、連続した線および円弧から成る所望の経路または工作機械の経路を規定する。ここで使用する用語「円弧」は、円の一部分で、一定の半径を備えている。
【００２２】
待ち行列管理プログラムタスクは、４つの連続する操作で、部品プログラムの動作データの予備処理をする。この操作で、実行システムタスクが実行する前に、動作データを高品質の動作データに変換する。４つの操作は、許容差待ち行列２０２、圧縮待ち行列２０４でのデータ圧縮、平滑化待ち行列２０６でのデータ平滑化、および、先読み待ち行列２０８での付加的先読み、での許容差の把握である。待ち行列管理プログラムは、各待ち行列の対応するデータ処理を実行し、そのデータをパイプライン方式で、連続する待ち行列に貫流して動かす。
【００２３】
待ち行列管理プログラムは、ＮＣ動作命令およびＮＣ許容差命令Ｅの予備処理を行なう。ＮＣ動作命令には、位置決め（Ｇ００）、線（Ｇ０１）、円弧（０２，Ｇ０３）がある。ＮＣ許容差命令Ｅは、許容差ベースの制御に使用される。この技術で、操作者は、ＮＣ許容差命令を、既存のＮＣ命令と一緒に指定して実行できる。新しいＮＣ許容差命令を、既存のＧ＆Ｍコード部品プログラムに挿入して、ＣＮＣプログラマは、異なるＣＮＣ許容差制約の指定が出来る。
【００２４】
ＮＣ許容差命令は、領域およびそれに適用する許容差値を命令識別番号で指定する。ＮＣ許容差命令は、Ｅコードで規定される。
Ｅ  ｔｏｌ  Ｘｘ１  Ｙｙ１  Ｚｚ１  Ｘｘ２  Ｙｙ２  Ｚｚ２  Ｉｉｄ
【００２５】
Ｅコードの要求で、対角部の座標（ｘ１，ｙ１，ｚ１）および（ｘ２，ｙ２，ｚ２）、ｘ１＜ｘ２，ｙ１＜ｙ２，ｚ１＜ｚ２、で規定される３次元の長方形の領域は、零でないＮＣ許容差値を持つ。この特定の許容差命令を、整数値ｉｄで識別する。
【００２６】
複数Ｅコードで、重なった許容差領域の規定が出来る。１つの点が、多数の動作中のＮＣ許容差領域に属する。
【００２７】
図３ａ〜ｃは、異なる値で、互いに重なった許容差領域の１つの実施形態を示す。図３ａは、第１の場合、図３ｂは、第２の場合を示す。計算の効率の為に、線の動きを、少なくとも２つの線に分割する。点ｐ０と点ｐ１の間に点ｐ’を１つだけ生成する。
【００２８】
円弧の場合（図３ｃ）、円弧の開始点ｔ１と終点ｔ５の間に、等距離の点ｔ２，ｔ３，ｔ４を加える。５つの点の許容差で最も低い許容差が、円弧の許容差を規定する。次の方程式で示される。
ｔｏｌ＝ｍｉｎ｛ｔ１，ｔ２，ｔ３，ｔ４，ｔ５｝
【００２９】
許容差把握操作の後で、許容差待ち行列２０２から受取り、圧縮待ち行列２０４に送る要素は、位置決め命令、所要の許容差を取付けた線の命令、所要の許容差を取付けた円弧の命令、および、プログラム終了命令である。
【００３０】
圧縮待ち行列２０４でのデータ圧縮操作で、プログラムデータを圧縮する。多くの部品プログラムには、短い線の動きがあり、部品の粗末な表面仕上げになる。これらの短い線の幾つかを結合させて長い線にし、部品の品質を改善する。データ圧縮操作は、短い線が長い線に結合できるかを決定し、もし可能であれば、データ圧縮を行なう。図４ａのデータ圧縮操作では、点Ｐ１，Ｐ２を取り除き、新しい線を点Ｐ０から点Ｐ３に形成している。工作機械の経路での許容差の限界または制約を破線４０２，４０４で示す。許容差の限界４０２，４０４は、ユーザ規定のＥコードの数値制御許容差より一桁小さい。
【００３１】
線の命令は、２地点間の動きである。短い線の動きを１つの長い線に結合し、新しい線の動きに対する目標の点順序での開始点および終点を決め、中間の点を全て取り除く。新しい長い線の動きで、古い短い線の動きを置き換える幾つかの条件は、許容差の条件を含む。つまり、取り除いた点の各々の新しい線への距離が、所定の許容差以内である。
【００３２】
データ圧縮で、全ての線の命令を圧縮待ち行列２０４で順次調べる。４つの検査または基準で、次の点を圧縮待ち行列に加えるかの決定、または、圧縮待ち行列に現在有る点だけに圧縮を行なうかの決定を行なう。図４ｂで、点ｐ０，ｐ１，ｐ２，ｐ３が、圧縮基準を満たしているとする。そして、点ｐ４を圧縮待ち行列に加えるかの決定、または、点ｐ０〜ｐ３だけに圧縮を行なうかの決定を行なう。４つの圧縮基準を下記に記す。
検査１：｜ｐ４−ｐ０｜＜０．０５インチ、
検査２：−９０°≦θ≦＋９０°（点ｐ３での角度θ）、
検査３：ｐ０．ｔｏｌ＝ｐ１．ｔｏｌ＝ｐ２．ｔｏｌ＝ｐ３．ｔｏｌ＝ｐ４．ｔｏｌ（許容差表から各点に等しい許容差を指定されている）、
検査４：点ｐ１，ｐ２，ｐ３から線ｐ０ｐ４への垂直距離が所定の許容差よりも小さい。
【００３３】
上記４つの検査を満たすと、点ｐ４を圧縮待ち行列に加える。４つの検査を満たさない場合、点ｐ３を平滑化待ち行列に加え、点ｐ１，ｐ２を圧縮で捨てる。３つの部分（ｐ０ｐ１，ｐ１ｐ２，ｐ２ｐ３）を１つの部分（ｐ０ｐ３）に結合する。
【００３４】
Ｉ．データ平滑化
【００３５】
データ平滑化操作は、ＮＣ線データを、所定の許容差を維持し、円弧に変換する。データの平滑化は、滑らかな速度および加速、送り速度の良好な制御、改善した表面仕上げ、および、ＴＢＣ技術の最大限の利用に有利になる。
【００３６】
図５ａ〜ｅは、それぞれレベル０、レベル１、レベル２、レベル３、レベル４の平滑化を示す。
レベル０：平滑化をせず、切り取った多角形を形成している。
レベル１：線を円弧で置き換え、多くの場合、円弧は互いに接続していない。
レベル２：線を円弧で置き換え、円弧が互いに接続しているが、多くの場合、互いに接していない。
レベル３：線を円弧で置き換え、円弧が互いに接続し、互いに接している。
レベル４：（本発明が提供する平滑化レベル）線を円弧で置き換え、円弧が互いに接続し、互いに接し、円弧の曲率が緩やかに変化する。レベル０〜３の平滑化では、平滑化の出力、最終経路は、常にデータ点を通過する。図５ｄでは、ｃ１，ｒ１は、点ｐ０，ｐ１，ｐ２で規定される円弧の中心および半径で、ｃ２，ｒ２は、点ｐ２，ｐ３，ｐ４で規定される円弧の中心および半径である。円弧の曲率は、半径の逆数（１／ｒ）で規定される。図５ｄのレベル３の場合、ｒ１からｒ２の比較的大きい半径の変化は、２つの円弧間で相当する大きな曲率変化となる。
【００３７】
レベル４は、他の平滑化レベルと異なる。データ点を調整し、緩やかな曲率変化を実現（規定の許容差内で）している。データ点の調整が可能な応用は、多軸輪郭削り（又は、ＣＮＣ機械を使用した金属切削）である。これは、調整が、非常に小さく（通常、０．０００５インチより小さい）、規定の許容差内になる。
【００３８】
点を調整し、緩やかな曲率変化を実現し、経路の通路を楕円形にする。経路に沿う緩やかな曲率変化は、動作制御を容易にする。
【００３９】
円弧に沿う工作機械の動きには、円弧の中心に向ける力（求心力と呼称）を必要とする。ＣＮＣ機械の場合、この力は、モータから得る。突然の比較的に大きい求心力の変化（動きが、１つの円弧から次の円弧に移る）は、大きな行過ぎ量となり、不利な表面仕上げになる。
【００４０】
図５ｅは、図５ｄに示す位置と比べて、点ｐ０〜ｐ４の位置を微調整している。微調整で、点が、楕円形になる経路を規定する。楕円形の経路は、理想的または最適で、楕円に沿う曲率は、連続して変化する。しかし、本発明の範囲内での調整の大きさは、許容差に依存する。従って、実際には、調整後、点は楕円にならない。  
【００４１】
本発明の実施形態では、曲率変化の最適化の代わりに、次善の解決として、楕円形でなく、円形の円弧だけを備える経路を用いる。経路を連続した円形の円弧で規定する利点は、点調整を計算する計算／数学的複雑性を低減する。従って、許容差内で点を調整し、楕円形の経路を実現しても、本発明では、点を調整し、経路を一連の円形の円弧で規定する。
【００４２】
実施形態では、動作制御を２００μｓｅｃループで実行する。つまり、動作制御を、２００μｓｅｃ毎で更新する。従って、計算を２００μｓｅｃ毎に効率的に実行する必要がある。動作制御以外に幾つかの他の操作を行なう処理装置の速度制限により、一連の円形の円弧で規定される経路（緩やかな曲率変化）が、楕円形の経路（連続した曲率変化）よりも助けになる。
【００４３】
データ平滑化は、３つの段階または操作から成り、平滑化の準備、平滑化の調整および２重円弧アルゴリズムの使用から成る。本発明の平滑化方法の第１の操作は、線データの識別である。ＮＣ線データを所定の許容差を維持した円弧への変換は、常に適しているとは限らない。例えば、急な角度でつながった線である。ＮＣ線データ（例、長い線の動き）を平滑化するのが望ましくない時が有る。未処理の線データを平滑化する前に、満たすべき条件がある。第１の操作で、平滑化の条件を満たす線分を識別する最初の線データを調べる。
【００４４】
Ａ．平滑化の準備
【００４５】
第１の操作で、全ての線動作の目標点を、順次、平滑化待ち行列で調べる。平滑化できる線分を決め、全ての線の目標点に「平滑化」または「無平滑化」のタグを付ける。
【００４６】
図６で、３つの点ｐ０，ｐ１，ｐ２が円弧でつながっている。実施形態では、距離ｄ１は、線分ｐ０ｐ１の中間点と円弧ｐ０ｐ１ｐ２との間の最短距離で、距離ｄ２は、線分ｐ１ｐ２の中間点と円弧ｐ０ｐ１ｐ２との間の最短距離である。３つの点の真中の点ｐ１が、次の３つの条件または基準を満たす場合、平滑化の印を付ける。
検査１：ｐ０ｐ１およびｐ１ｐ２が共に線である、
検査２：Ｍａｘ｛ｄ１，ｄ２｝＜０．０００５インチ（ｄ１，ｄ２が共に所定の距離（例、０．０００５インチ）より小さい）、
検査３：角度θ＞１４５度または他の所定角度。
上記３つの条件が合わない場合、点ｐ１に平滑化の印を付けない。 
【００４７】
Ｂ．平滑化の調整
【００４８】
第２の操作で、線データを平滑化する調整を行なう。第２操作で、一連の３次元の点で表される３次元曲線の曲率変化を低減する。曲線上の所定の点での部分的な曲率は、主に隣接する点で決定される。所定の点またはその隣接する点の位置の小さな変更は、その部分の曲率を著しく変える。所定の許容差内で、点の位置を修正し、修正点が表わす３次元曲線上の曲率変化を低減する。曲線の曲率変化が小さいほど、曲線は滑らかになる。
【００４９】
図７は、本発明の実施形態で、平滑化するために線の動きの調整を示す。２つの構成円弧６１２，６１４は、同一平面でなく、それぞれ、点ｐ０ｐ１ｐ３および点ｐ０ｐ２ｐ３を通っている。円弧６１２の円の中心は、ｃ２、円弧６１４の円の中心はｃ１である。点ｐ１の円弧６１４の面への投影をｑ１で示す。点ｐ１および点ｑ１を通る線は、円弧６１４の面に垂直である。点ｐ２の円弧６１２の面への投影をｑ２で示す。点ｐ２および点ｑ２を通る線は、円弧６１２の面に垂直である。円弧６１４上で点ｐ１に最も近い点をｓ１、円弧６１２上で点ｐ２に最も近い点をｓ２とする。
【００５０】
一般的には、点および隣接する点の両方が平滑化の印が付いている場合、点を調整する。点が、上記の３つの検査または基準の各々を満たす場合、平滑化の印を付ける。３つの条件は、検査１：ｐ０ｐ１およびｐ１ｐ２が共に線で、検査２：Ｍａｘ｛ｄ１，ｄ２｝＜０．０００５インチ、検査３：角度θ＞１４５度、である。図７の例の場合、点ｐ１が平滑化の印が付き、点ｐ０，ｐ２の何れかまたは両方に平滑化の印が付いている場合、点ｐ１を調整する。点ｐ１を、可能であれば、点ｐ１からｓ１に延びる調整ベクトルｖ１に沿って調整する。点ｐ２が平滑化の印が付き、点ｐ１，ｐ３の何れかまたは両方に平滑化の印が付いている場合、点ｐ２を調整する。点ｐ２を、可能であれば、点ｐ２からｓ２に延びる調整ベクトルｖ２に沿って調整する。
【００５１】
円弧６１２，６１４に関する調整後、処理は次の調整を続ける。次の４つの点ｐ１，ｐ２，ｐ３，ｐ４の一組が形成する円弧で処理を行なう。つまり、点ｐ１，ｐ２，ｐ４で規定される円弧および点ｐ１，ｐ３，ｐ４で規定される円弧に基づき調整を行なう。調整処理を、経路に沿う次の４点の組で、計算を無制限に続ける。
【００５２】
調整ベクトルに沿う点の位置の調整の大きさは、２つの隣接する点の１つに平滑化の印が付いていないかどうかに依存する。具体的には、印の付いた点が、印の無い点の直後または直前に位置する場合、即ち、印の付いた点が、印の無い点および他の印の付いた点の間に位置する場合、印の付いた点の位置を、調整ベクトルの長さの半分だけ調整する。印の付いた点を、調整ベクトルに沿って半分動かす。方程式では、点の位置は、ｐ＝ｐ＋０．５＊ｖとなる。つまり、点を０．５の係数または因数で動かす。印の付いた点が、印が付いた他の２つの点の間に位置する場合、２つの調整の各々で、約０．１９の係数または因数で、２回調整する。第１の調整では、調整ベクトルの方向および大きさを、調整した点が、図７で説明した計算で使用する４つの点の２番目になるように決める。第２の調整では、調整ベクトルの方向および大きさを、調整した点が、４つの点の３番目になるように決める。
【００５３】
図７の実施形態を一層理解するために、種々の調整の筋書きを記載する。全体の調整が、調整限界（例、０．０００２インチ）より小さいことを確認する照合は、説明を簡潔および簡単にするために省略する。
事例１：
条件：ｐ０（平滑化の印無し）、ｐ１（平滑化の印有り）、ｐ２（平滑化の印無し）
結果：点ｐ１が、隣接する他の印の付いた点でなく、平滑化の印が付いていても、点ｐ１の調整は行なわない。
事例２：
条件：ｐ０（平滑化の印無し）、ｐ１およびｐ２（平滑化の印有り）、ｐ３（平滑化の印無し）
結果：ｐ１＝ｐ１＋０．５＊ｖ１；ｐ２＝ｐ２＋０．５＊ｖ２
事例３：
条件：ｐ０（平滑化の印無し）、ｐ１〜ｐ３（平滑化の印有り）、ｐ４（平滑化の印無し）
結果：ｐ１＝ｐ１＋０．５＊ｖ１；ｐ２＝ｐ２＋０．１８７７＊ｖ２＋０．１８７７ｖ２’；ｐ３＝ｐ３＋０．５＊ｖ３、ここでｖ１，ｖ２は、点ｐ０ｐ１ｐ２ｐ３から計算し、ｖ２’，ｖ３は、点ｐ１ｐ２ｐ３ｐ４から計算する。
事例４：
条件：ｐ０（平滑化の印無し）、ｐ１〜ｐ４（平滑化の印有り）
結果：ｐ１＝ｐ１＋０．５＊ｖ１；ｐ２＝ｐ２＋０．１８７７＊ｖ２＋０．１８７７ｖ２’；ｐ３＝ｐ３＋０．１８７７＊ｖ３＋０．１８７７ｖ３’、ここでｖ１，ｖ２は、点ｐ０ｐ１ｐ２ｐ３から計算し、ｖ２’，ｖ３は、点ｐ１ｐ２ｐ３ｐ４から計算し、ｖ３’は、点ｐ２ｐ３ｐ４ｐ５から計算する。 
【００５４】
Ｃ．２重円弧の平滑化
【００５５】
第３の操作で、平滑化を２重円弧アルゴリズムを使用して行なう。第３の操作は、線を円弧に変換し、円弧は互いに接し、所定の許容差を維持している。第３の操作は、平滑化待ち行列２０６の第２の操作で処理された連続した線の目標点を順次照合し、線を円弧に変換する。
【００５６】
２重円弧アルゴリズムで、最終の平滑化した経路が、平滑化する線分の全ての目標点を通り抜ける。許容差の要求が十分に満たされている。
【００５７】
２重円弧アルゴリズムは、パイプライン方式で同時に２つの作用を実行する。第１に、アルゴリズムで、平滑化する線分の各目標点での接線ベクトルを決める。第２として、アルゴリズムは、２重円弧を生成し、平滑化する線分を置き換える。点ｐ１〜ｐｎを、平滑化待ち行列２０６の第２操作で既に処理された連続した線の目標点とする。第１の作用は、次の工程を実行する。
・点ｐｉ，ｐｉ＋１，ｐｉ＋２に平滑化のタグが付いている場合、点ｐｉ，ｐｉ＋１，ｐｉ＋２の位置に基づき、点ｐｉ＋１での所望の接線ベクトルｔｉ＋１（図８）を計算する。３つの点ｐｉ，ｐｉ＋１，ｐｉ＋２は、円弧ｐｉｐｉ＋１ｐｉ＋２を規定し、ｔｉ＋１は、点ｐｉ＋１での接線ベクトルである。
・点ｐｉ，ｐｉ＋１，ｐｉ＋２の何れにも平滑化のタグが無い場合、何もしない。
・ｉを１だけ増す。
・上記工程を繰り返す。
【００５８】
上記作用は、平滑化する線分の目標点で、一連の所望の接線ベクトル（ｔ１，ｔ２，ｔ３，，，，ｔｎ）を作り出す。接線ベクトルは、「所望の接線ベクトル」と呼称される。これは、ベクトルの方向変化が緩やかなためである。平滑化した経路の曲率変化を更に平滑にする。
【００５９】
第２の作用は、下記工程を実行する。
・点ｐｉ，ｐｉ＋１，ｐｉ＋２に平滑化の印が付き、対応する所望の接線ベクトルｔｉ，ｔｉ＋１，ｔｉ＋２が各点で計算されている場合、１対の３次元の円弧ａｉ１，ａｉ２を作り出す。
・ａｉ１は、点ｐｉで始まり、接線ベクトルｔｉに接する。
・ａｉ１は、点ｐｉと点ｐｉ２間の点ｐｉ＋１でａｉ２に接する。
・ａｉ２は、点ｐｉ＋１で始まり、点ｐｉ＋２で終わり、接線ベクトルｔｉ＋２に接する。
・点ｐｉ＋１と最も近い円弧の間の最短距離（ｄ）を照合する。距離が、所定の許容差以内の場合、２重円弧は有効である。
・点ｐｉと点ｐｉ＋１間の２重円弧が無効な場合、点ｐｉとｐｉ＋１の間に一対の３次元円弧ａｉ１，ａｉ２を作り出す。
・ａｉ１は、点ｐｉで始まり、接線ベクトルｔｉに接する。
・ａｉ１は、点ｐｉと点ｐｉ＋１の間の点ｐ’でａｉ２に接する。
・ａｉ２は、点ｐ’で始まり、点ｐｉ＋１で終わり、接線ベクトルｔｉ＋１に接する。
・上記工程を繰り返し、ｐｉ＋１とｐｉ＋２の間に２重円弧を生成する。
・ｉを２だけ増す。
・上記工程を繰り返す。
【００６０】
上記記載の実施形態での第２の作用の操作を図９，１０に示す。図９で、点ｐ０，ｐ１，ｐ２は、平滑化の印が付いている。一対の３次元の円弧ａ１，ａ２を作り出す。円弧ａ１は、点ｐ０で始まり、接線ベクトルｔ０に接する。円弧ａ１は、ｐ０とｐ２の間の点ｐ’で、円弧ａ２に接する。円弧ａ２は、点ｐ’で始まり、点ｐ２で終わり、接線ベクトルｔ２に接する。ｐ１と、２つの円弧の近い方の円弧ａ１と、の間の距離ｄが、所定または予め定めた許容差内の場合、２重円弧ａ１，ａ２は有効である。
【００６１】
２重円弧ａ１，ａ２が無効、即ち、距離ｄが、所定の許容差内にない場合、別の一対の３次元円弧ａ３，ａ４を作る（図１０）。円弧ａ３は、点ｐ０で始まり、接線ベクトルｔ０に接する。円弧ａ３は、ｐ０とｐ１の間の点ｐ”で、円弧ａ４に接する。円弧ａ４は、点ｐ”で始まり、点ｐ１で終わり、接線ベクトルｔ１に接する。上記工程を繰り返し、点ｐ１と点ｐ２の間に更にもう１つの３次元円弧（図示せず）を作り出す。円弧ａ１，ａ２，ａ３，ａ４の何れか又は全てが、円形の円弧で、それぞれ異なる半径を有する。
【００６２】
点ｐ０，ｐ１，ｐ２間での２重円弧の平滑化が完了すると、上記の第２の作用を、経路に沿う次の３つの点（ｐ２，ｐ３，ｐ４）で繰り返す。更に次の３点の組合せで繰り返す。
【００６３】
上記の２重円弧平滑化の実施形態は、点ｐ０，ｐ１，ｐ２が、各々、平滑化の印が付いている場合である。４つの点ｐ０，ｐ１，ｐ２，ｐ３で、ｐ１，ｐ２，ｐ３が平滑化の印が有るとする。接線ベクトルｔ０，ｔ１を、点ｐ０，ｐ１，ｐ２で規定される円弧から導出し、接線ベクトルｔ２を、ｐ１，ｐ２，ｐ３で規定される円弧から導出する。次の５つの工程から成る。
１．２重円弧ａ１（ｐ０からｐ’）およびａ２（ｐ’からｐ２）を、図９に示すように、（ｐ０，ｐ２，ｔ０，ｔ２）から生成する。円弧は互いに点ｐ’で接する。
２．ｐ１と、２つの円弧の近い方と、の最短距離を照合する。ｘ，ｙ，ｚ方向の距離が、所定の距離（０．０００２インチ）よりも小さい場合、２重円弧ａ１，ａ２は、有効である。
３．２重円弧ａ１，ａ２が無効の場合、２重円弧ａ３，ａ４を、点ｐ０と点ｐ１の間におよび接線ベクトルｔ０，ｔ１に基づき生成する。２つの円弧ａ１，ａ２は、点ｐ”で接する。
４．２重円弧の許容差照合が有る。図１０の距離ｄは、点ｐ”と、点ｐ０，ｐ１の間に延びる線と、の間の最短距離である。距離ｄが、所定の距離（例、０．０００５インチ）よりも小さい場合、２重円弧ａ３，ａ４は、有効である。そうでない場合、２重円弧ａ３，ａ４は、無効で、ｐ０，ｐ１間の経路をｐ０，ｐ１間で延びる線で規定する。
５．工程３，４を繰返し、接線ベクトルｔ１，ｔ２に基づき、ｐ１，ｐ２の間に２重円弧を生成する。
【００６４】
ＩＩ．付加的先読み
【００６５】
先読み待ち行列２０８の付加的先読み操作で、プログラムデータ内の全ての速度変化の間での加速または減速する距離が十分に有るかを保証する。これは、機械の衝突およびドエル印を減らす利点があり、加工の表面仕上げが改善される。各プログラムされた動きで、停止距離の計算は、Ｓ曲線の加速で軸を減速し、零速度にする必要な距離として行なう。Ｓ曲線と呼称するのは、速度プロフィール（速度対時間のプロット）の加速／減速の部分が、Ｓの外観をしているからである（図１１参照）。停止距離は、下記ａ），ｂ）の少ない方で決める。ａ）現在および次の動きの間の角度で決まる最大動作速度、ｂ）工作機械のモデルで決まる経路曲率の最大動作速度。
【００６６】
付加的先読み作用は、先読み待ち行列２０８で速度および距離情報を検索し、工作機械が、１つの命令から次の命令に、適切に加速／減速する十分な距離の有無を確認する。
【００６７】
停止距離と速度の間に数学的な変換がある。適切な速度を、停止距離およびＳ曲線から計算する。方法は、以下に詳述する。
【００６８】
付加的先読みアルゴリズムは、異なる部分の形状に可能な最大速度の情報を必要とする。このために、許容差／円弧半径／速度の表を作る。この表が、異なる許容差の要求で、異なる半径または曲率の円弧の最大可能速度を与える。
【００６９】
Ａ．停止距離およびストッパ
【００７０】
付加的先読みアルゴリズムは、停止距離およびストッパの概念を導入する。基準の送り速度ｖ１（図１２ａ）および終点速度ｖ０の動作命令の停止距離は、目標点（図１２ｂ）から完全に停止する点に進む距離で規定する。Ｓ曲線の速度プロフィールでは、図１２ａの斜線領域となる。ストッパは、動作命令での実質上の目標点である。システムが、Ｓ曲線に従い、速度を基準の送り速度ｖ１から速度を下げ、ストッパで完全停止する。システムは、実際の目標点を、所望の終点速度ｖ０で通過する。停止距離は、目標点とストッパ間の距離とする。
【００７１】
動作命令の基準送り速度ｖ１が決まると、停止距離と終点速度ｖ０間には一対一のマッピングが存在する。ただし、Ｓ曲線プロフィールが固定、つまり、最大加速度およびジャーク（jerk）が固定されているものとする。ここでは、特に明記しない限り、Ｓ曲線のプロフィールを固定している。従って、停止距離は、終点速度に直接に対応している。停止距離が与えられると、終点速度が一義的に決まり、逆も同様である。付加的先読みアルゴリズムは、停止距離を終点速度の計量として使用する。その計量は、アルゴリズムの計算を有効的にする。
【００７２】
ストッパをＳ曲線制御装置で使用し、動作プロフィールを設計する。Ｓ曲線制御装置は、実際の目標点の代わりにストッパを目指す。Ｓ曲線制御装置は、速度プロフィールを生成する。制御された工作機械が、実際の目標点を通過する時に、工作機械は、所望の減速になる。
【００７３】
Ｂ．動作命令の速度制限
【００７４】
付加的先読みアルゴリズムでは、各動作命令は、４つの速度制限を備えている。これは、規定の送り速度、工作機械の許容速度、経路速度制限および結合速度制限、である。規定の送り速度は、上限の動きの設計で与えられる所望の送り速度値で規定している。工作機械の許容速度は、機械の速度の限界で、機械のハードウェアおよび物理の法則に依存する。経路速度制限は、円弧の動きの制限である。経路速度制限は、円弧半径および許容差の規格に依存する。円弧半径および許容差規格が、大きいほど、最大経路速度制限は、大きくなる。結合速度制限は、２つの連続した動作命令の結合での速度制限である。結合速度制限は、２つの動作間の角度および許容差規格に依存する。許容差が大きく、角度が小さければ、結合速度制限値は、大きくなる。
【００７５】
付加的先読みアルゴリズムでは、基準の送り速度は、規定の送り速度、工作機械の許容速度および経路速度制限の中での最も低い値になる。規定の送り速度が、工作機械の許容速度および経路速度制限よりも高い場合、先読みアルゴリズムは、送り速度を減速し、工作機械の許容速度および経路速度制限の低い方の値にする。
【００７６】
動作命令の終点での減速した送り速度は、結合速度制限に依存する。勿論、その動作命令および次の命令の基準送り速度にも依存する。基準送り速度が、規定の送り速度、工作機械の許容速度および経路速度制限の中で最も小さいもので、現在の動きの部分で減速が起き、次の動きの部分で加速が起きる。現在の動きの部分での送り速度が、基準値よりも小さくなる。付加的先読みアルゴリズムは、基準および減速の送り速度を用いて、停止距離を計算する。
【００７７】
Ｃ．有効停止距離の条件
【００７８】
先読みアルゴリズムで、工作機械とその先の位置との間の距離を確保する。その距離は、工作機械がその位置に到着する時に、工作機械の速度が所望のレベルに変わるのに十分な距離である。この条件は、付加的先読みアルゴリズムの「有効停止距離の条件」と呼ぶ。数学的には、方程式（１）で規定する。
（１）  ｄｓｉ≦ｌｉ＋１＋ｄｓｉ＋１
ここで、ｄｓ、ｌは、それぞれ、停止距離および動作部分の長さを表す。下付き文字ｉ，ｉ＋１は、動作命令の指数を表す。図１３で、動作命令ｃｍｄ＿ｉは、終点ｐ＿ｉ、ストッパ点ｓｔｏｐｐｅｒ＿ｉおよび停止距離ｄｓ＿ｉを有している。ｃｍｄ＿ｉの停止距離が、ｃｍｄ＿（ｉ＋１）の距離と停止距離の和を超えない場合、または、ｓｔｏｐｐｅｒ＿ｉが、ｓｔｏｐｐｅｒ＿（ｉ＋１）の前にある場合、ｃｍｄ＿ｉは、有効停止距離条件を満たしている。
【００７９】
有効停止距離条件は、方程式（２）でも表現できる。
（２）  ｄｓｉ−ｄｓｉ＋１≦ｌｉ＋１
停止距離ｄｓ＿ｉ，ｄｓ＿（ｉ＋１）は、命令ｃｍｃ＿ｉの終点位置ｐ＿ｉの送り速度および命令ｃｍｃ＿（ｉ＋１）の終点位置ｐ＿（ｉ＋１）の送り速度にそれぞれ対応する。方程式（２）は、部分の長さｌ＿（ｉ＋１）が十分に長く、点ｐ＿ｉでの送り速度から、点ｐ＿（ｉ＋１）での送り速度に減速できることを示す。
【００８０】
Ｃ．付加的先読みと非付加的先読み
【００８１】
ＴＢＣ付加的先読みアルゴリズムと非付加的先読みアルゴリズムの相違は次の点にある。付加的先読みアルゴリズムは、ストッパを目標にするＳ曲線を生成し、Ｓ曲線の部分のみを使用する。そして、速度を、目標点でｖ１からｖ０に下げる。非付加的先読みは、実際の目標点を目標にするＳ曲線を生成し、速度を、目標点でｖ１からｖ０に下げる。
【００８２】
図１４は、付加的および非付加的Ｓ曲線の速度プロフィルの比較を示す。速度は、両方のプロフィールで、目標点でｖ１からｖ０に下げる。付加的Ｓ曲線の場合、減速は、時間ｔｔｂｃ１とｔｔｂｃ０の間に起きる。非付加的Ｓ曲線の場合、減速は、時間ｔｗｍ１とｔｗｍ０の間に起きる。従って、非付加的Ｓ曲線は、付加的Ｓ曲線よりも長い時間および長い距離で、速度ｖ１からｖ０の減速を達成する。
【００８３】
付加的先読み処理では、連続した経路変化は、以前に処理した命令に影響を及ぼす。新しい命令が先読み待ち行列に加えられ、その命令の停止距離が計算されると、既に処理した待ち行列の全ての命令を見直し、これらの命令に以前に計算した停止距離の更新の用・不要を見る。
【００８４】
新しい命令ｃｍｄｉを受け取り処理すると、その命令は、経路長さｌ＿ｉおよび停止距離ｄｓ＿ｉを備える。付加的先読みアルゴリズムは、次の工程（図１５）を実行する。
・命令ｃｍｄｉ−１を調べて、有効停止距離条件を満たす、即ち、ｄｓ＿（ｉ−１）が、ｌ＿ｉおよびｄｓ＿ｉの和以下であるかを見る。
・命令ｃｍｄｉ−１が、有効停止距離条件を満たさず、即ち、ｄｓ＿（ｉ−１）が、ｌ＿ｉおよびｄｓ＿ｉの和より大きい場合、命令ｃｍｄｉ−１の停止距離ｄｓ＿（ｉ−１）を、ｌ＿ｉおよびｄｓ＿ｉの和で置き換える。
・命令ｃｍｄｉ−１が、有効停止距離条件を満たす、即ち、ｄｓ＿（ｉ−１）が、ｌ＿ｉおよびｄｓ＿ｉの和以下の場合、命令ｃｍｄｉ−１の停止距離ｄｓ＿（ｉ−１）を、変更せず、更新操作を終了する。
・  （ｉ−１）が０に等しい場合、更新操作は完了している。
・ｉ−−（ｉの値を減少する）そして上記工程を繰り返す。
【００８５】
付加的先読み作用が、先読み待ち行列２０８で以前に処理された命令を逆に順次見直し、有効停止距離条件を照合し、命令の停止距離を更新する時、有効停止距離条件を満たす第１の命令が見つかると、更新操作を止める。この命令が、有効停止距離条件に合うので、その命令の停止距離を変更しない。更にこの命令が、有効停止距離条件に合うので、以前の命令の何れも変更は不要となる。
【００８６】
付加的先読み（図１５）で、第３の工程、即ち、停止距離ｄｓ＿ｉを計算する工程は、多くの計算を必要とし、方程式（３）で計算する。この計算は、各動作命令に一度だけ行い、繰り返す必要は無い。
（３）  ｖ０＜（１／２）ｖ１の場合、
ｄｓ＝（１／６）Ｊ（２ｖ０／Ｊ）３／２
ｖ０≧（１／２）ｖ１の場合、
ｄｓ＝［ｖ１√（ｖ１／Ｊ）］＋
（１／６）Ｊ（２（ｖ１−ｖ０）／Ｊ）３／２
−（２（ｖ１−ｖ０）／Ｊ）１／２ｖ１
【００８７】
一般に、付加的先読みアルゴリズムは、非付加的先読みアルゴリズムより計算的には効率が良い。付加的先読みアルゴリズムは、重い負荷工程を１つだけ有し、繰返しループの外で、一度だけ実行される。付加的先読みアルゴリズムは、より少ない距離で同じ速度を低減でき（図１４参照）、修正する以前の動作命令が少ないことを意味する。
【００８８】
ＩＩＩ．動作カーネル
【００８９】
動作カーネルモジュールは、許容差ベースの動作制御を実行し、プログラムの線および円弧に関する動きを制御する。動作カーネルは、予測的および真の円弧の動作を与える。線または円弧は、基本的な経路単位である。制御は、プログラムした経路に沿って軸を押し、軸が出くわす偏移を補償する。
【００９０】
予測的ＴＢＣ動作制御は、異なる機構に基づいている。この機構は、線／円弧データ（事前に計算した補間点は無い）を認識し、直接に軸を線／円弧の経路に沿って押す。各制御サイクル（例、２００μｓｅｃの時間周期）で、制御は、位置のフィードバックを読取り、現在位置を、命令した経路（線または円弧）と比較し、経路上の点を決める。その位置は、実際の現在位置に最も近い点である。この点を、理想の現在位置と規定する。実際の現在位置と理想の現在位置の相違は、瞬間の確率的な誤差または許容差誤差として規定する。瞬間の確率的位置誤差は、単に「位置誤差」と呼び、実際の現在位置の線／円弧の経路からの偏移と考えられる。
【００９１】
ＴＢＣ許容差誤差は、実際の現在位置と理想の現在位置との間のベクトル差で、実時間で動的に計算される。ＴＢＣ制御システムでは、理想の現在位置を各制御サイクルで計算し、許容差誤差を直接にＴＢＣで修正する。さらに、ＴＢＣシステムでは、異なる軸の許容差誤差は、協調して取扱う。
【００９２】
ＴＢＣ予測的動作制御は、各制御サイクルで、次の工程を実行する。
・Ｓ曲線から経路の理想の現在位置の３次元接線速度を計算する。
・瞬間の接線および求心加速力、および、それらの予測的補償ベクトルを計算する。
・瞬間の確率的位置誤差を計算する。
・３次元の確率的修正速度を決める。
・接線速度、予測的補償ベクトルおよび確率的修正速度を互いに組合せて、経路に沿って軸を押す速度を出す。
【００９３】
本発明のＴＢＣ動作カーネルは、先読み待ち行列２０８から動作命令を取り込み、サーボシステムを制御し、輪郭の経路を追跡させる。ＴＢＣ動作制御と非ＴＢＣ動作制御の相違は、閉ループ輪郭トラッキング制御である。比較を下記に記載する。
【００９４】
Ａ．非ＴＢＣ動作制御構造
【００９５】
３次元輪郭の経路の追跡で、従来の制御システムは、３次元の輪郭をＸ／Ｙ／Ｚ軸に分解し、時間に関してＸ／Ｙ／Ｚ動作を補間する。各軸は、自身の時間ベースの基準経路を有し、フィードバックおよびフィードフォワード制御を用いて、自身の動作経路を独立に追跡する。理想的には、各軸が、自身の基準経路を完全に追跡する場合、得られる３次元輪郭も、完全に追跡される。妨害の存在（図１６）およびモデリング誤差で、通常、完全なトラッキングは実現できない。実際の軸の動きと基準経路との間にトラッキング誤差がある。各軸でトラッキング誤差を最小にする必要がある。ただし、３軸間の協力または協調を要求しない。各軸の経路は、他の軸の経路での状態を意識または気にかけずに追跡出来る。例えば、１つの軸の経路が、基準経路を背景に、大きな抵抗力および遅延に出会っても、他の２軸の事前に設定した経路を追跡しようとする。結果として、経路が、３軸の２つで完全に追跡されても、実際の輪郭は、基準の輪郭から著しくずれる。
【００９６】
図１６に示す動作制御システムは、時間確定的である。つまり、ｘ／ｙ／ｚ軸の動作経路は、時間ベースで、全体のシステムの実行時間は、正確に事前に決められている。Ｆ＿ｘ，Ｆ＿ｙ，Ｆ＿ｚは、３軸の各々のフィードフォワード制御装置で、  Ｃ＿ｘ，Ｃ＿ｙ，Ｃ＿ｚは、３軸の各々のフィードバック制御装置を示す。
【００９７】
Ｂ．ＴＢＣ動作制御構造
【００９８】
ＴＢＣ動作制御は、３次元輪郭を、３つの独立した時間ベースの軸経路に分解しない。むしろ、ＴＢＣ動作制御は、実際の輪郭位置を基準輪郭と比較し、制御信号を決めて輪郭誤差を最小にする。図１７にＴＢＣ動作制御構造の実施形態を示す。全ての信号が、ベクトルとなる。対照的に、非ＴＢＣ動作制御構造の場合、信号はスカラとなる（図１６）。
【００９９】
図１７のＴＢＣ動作制御構造は、輪郭ベースのフィードバック及びフィードフォワード制御を用いている。輪郭トラッキングは、閉ループで、真の円弧動作が可能となる。つまり、工作機械は、一連の線分で形成される経路よりも円弧の経路の追跡命令を受ける。一連の線分経路は、円弧経路を近似する。ＴＢＣ動作制御は、時間確定的でなく、オンザフライ（on-the-fly）の送り速度調整となる。
【０１００】
各制御サイクル（例、２００μｓｅｃ）で、制御装置は、実際の輪郭位置フィードバックを読取り、実際位置を基準輪郭と比較し、基準輪郭上で実際位置に最も近い点を見つけ出す。この点を、理想の現在位置（ＩＣＰ）と規定する。制御装置は、３つの作用ブロックから成る。フィードフォワード、フィードバックおよび貼り付き摩擦／歯面の遊び補償である（図１８参照）。
【０１０１】
各制御サイクルで、制御装置は、ＩＣＰ（法線および接線方向の加速度および速度を含む）に基づき所望の動作を計算し、フィードフォワード制御装置で所望の動作を速度制御信号に変換する。実行時間の送り速度の調整装置も加えて、許容差制御に送り速度（速度）を調整する。
【０１０２】
制御装置は、各サイクルで、法線及び接線方向のトラッキング誤差も計算する。法線方向の誤差は、実際の輪郭位置からＩＣＰまでの距離で、許容差誤差または輪郭誤差である。接線方向の誤差は、ＩＣＰが背後に遅延する経路長さの量で規定する。法線誤差が、システムの性能に重要であり、ＴＢＣ制御装置は、法線及び接線誤差に２つの異なるフィードバック装置を備え、トラッキング誤差を速度制御信号に変換する。貼り付き摩擦および歯面遊び補償は、さらに、工作機械の精度を改善する。
【０１０３】
非ＴＢＣ動作制御と比べて、ＴＢＣ動作制御の利点は、閉ループ構造にある。閉ループ輪郭トラッキング制御は、３つの軸を調整し、輪郭誤差を最小にする。
例えば、ｘ軸が、大きな抵抗力と基準経路の背後に遅延が有る場合、他の２軸は、減速してｘ軸の動きに合わせ、実際の輪郭を基準輪郭に従わせる。ＴＢＣ動作カーネルも真の円弧動作が可能である。これは、求心加速を制御で考慮しているからである。
【０１０４】
各動作サイクルでの所望の動きが、輪郭、ＩＣＰ、現在のシステム条件（許容差誤差）に基づいているので、システムは、時間確定的でなくなる。オンザフライ送り速度の調整が可能となる。輪郭／許容差誤差が、規定値よりも小さい時、システムの送り速度は増加する。反対に、輪郭／許容差誤差が、規定値を越える時、送り速度は減少し、誤差を下げる。換言すれば、システムは、送り速度を最大限にし、一方では、輪郭／許容差誤差を規定の範囲に維持し、システムの実行時間または処理能力の最適化を行なう。
【０１０５】
Ｃ．ＴＢＣ形状分析
１．動作制御の事前分析
【０１０６】
如何なる動作命令の実行前に、ＴＢＣ動作カーネルは、命令を読み込み、形状を分析する。ストッパ面の法線（ＳＰＮ）方向およびストッパ位置を事前分析で計算し、全体の実行期間を通して使用し、動作命令の終了まで使用する。線の動きに対し、ＳＰＮを方程式（６）で計算する。図１９は、線の動きの形状事前分析を示す。
（６）  ＳＰＮｉ＝（Ｐｉ−１−Ｐｉ）／‖Ｐｉ−１−Ｐｉ‖
【０１０７】
円弧の動きに対し、ＳＰＮを方程式（７）で計算する。図２０は、円弧動作の形状事前分析を示す。ＡＰＮは、円弧面の法線方向の単位方向ベクトル、Ｃは、円弧の中心を表す。
（７）  ＳＰＮｉ＝−ＡＰＮ×（Ｐｉ−１−Ｃｉ）／‖Ｐｉ−１−Ｃｉ‖
【０１０８】
ストッパ位置Ｐｓｉは、方程式（８）で線及び円弧動作に対し計算する。
（８）  Ｐｓｉ＝Ｐｉ−ｄｓｉ・ＳＰＮｉ
２．実時間の形状分析
【０１０９】
各制御サイクルで、ＴＢＣ動作カーネルは、実際の輪郭（工作機械）位置のフィードバックＰｔｌを読取り、実際の位置を、基準輪郭と比較し、理想の現在位置（ＩＣＰ）、輪郭／許容差誤差（ｅｎ）およびストッパまでの距離（進む距離（ｄｉｓｔａｎｃｅ＿ｔｏ＿ｇｏ，ｄ）を見つける。
【０１１０】
線の動きの対し、図２１に線の動作の形状分析を示す。方程式（９），（１０）で計算する。
（９）  ｄ＝＜Ｐｔｌ−Ｐｓｉ，ＳＰＮ＞
（１０）  ｅｎ＝（Ｐｔｌ−Ｐｓｉ）−ｄ・ＳＰＮ
ここで、＜Ａ，Ｂ＞は、ベクトルＡ，Ｂの内積である。Ａ＝［ｘａ，ｙａ，ｚａ］，Ｂ＝［ｘｂ，ｙｂ，ｚｂ］の場合、＜Ａ，Ｂ＞＝ｘａ＊ｘｂ＋ｙａ＊ｙｂ＋ｚａ＊ｚｂとなる。Ｐｔｌは、工作機械の位置、Ｐｓｉは、ｉ動作部分のストッパ位置、ＳＰＮは、ストッパ面法線（ＳＰＮ）方向の単位方向ベクトルである。方程式（９）は、距離ｄが、ＳＰＮ方向のＰｔｌ−Ｐｓｉの長さに等しいと解釈できる。
【０１１１】
円弧動作の場合、実際の輪郭または工作機械の位置は、円弧の面でなく、円弧の面に先ず投射され、方程式（１１）で計算する。図２２ａ，ｂは、円弧動作の形状分析を示す。
（１１）  Ｐ’ｔｌ＝（Ｐｔｌ−Ｃｉ）
−＜Ｐｔｌ−Ｃｉ，ＡＰＮ＞・ＡＰＮ
方程式（１１）は、Ｐ’ｔｌが、ベクトル（Ｐｔｌ−Ｃｉ）とベクトル＜Ｐｔｌ−Ｃｉ，ＡＰＮ＞の間の差を、円弧面の単位法線方向ベクトルＡＰＮに乗じたものに等しいと解釈される。
【０１１２】
ベクトルＰ’ｔｌは、（Ｐｔｌ−Ｃｉ）の円弧面への投射である。ベクトルＰ’ｔｌが円弧面で見つかると、ＩＣＰ、単位接線および半径方向のベクトルｄｔ，ｄｒ、および、輪郭／許容差誤差ｅｎ（法線誤差とも呼ぶ）が、方程式（１２）〜（１５）で決まる。
（１２）  ｄｒ＝Ｐ’ｔｌ／‖Ｐ’ｔｌ‖
（１３）  ＩＣＰ＝Ｃｉ＋Ｒ・ｄｒ
（１４）  ｄｔ＝ｄｒ×ＡＰＮ
（１５）  ｅｎ＝Ｐｔｌ−ＩＣＰ
【０１１３】
進む距離、即ち、ＩＣＰからストッパまでの経路長さの計算には、ＩＣＰと目標点Ｐｉの間の円弧長さを先ず計算する。１８０度より大きい円弧は、２つの円弧に切る。進む距離は、３つの方程式（１６）〜（１８）で計算する。方程式の変数の意味は、図２２ａ，ｂで認められる。
（１６）  ｌ＝（１／２）‖Ｐｉ−ＩＣＰ‖
（１７）  ａ＝ｓｉｎ−１（ｌ／Ｒ）
（１８）  ｄ＝２ａＲ＋ｄｓｉ
【０１１４】
Ｄ．ＴＢＣのＳ曲線制御装置
【０１１５】
Ｓ曲線の加速は、非線形の加速方法を与える。その方法は、一定速度の相から加速／減速相の間の移行を和らげ、円滑にする。Ｓ曲線と呼ぶのは、速度プロフィールの加速／減速部分が、直線でなくＳ形状している故である。
【０１１６】
Ｓ曲線プロフィールは、普通、７つの相を有している。増加する加速、一定の加速、減少する加速、一定速度、増加する減速、一定の減速、減少する減速である。
【０１１７】
非ＴＢＣ制御システムは、Ｓ曲線を用いて、基準経路（指定した位置）、速度、加速などを生成する。Ｓ曲線は、時間ベースで、制御ループ（実時間部分）の外で実行される。各制御サイクルで、進む距離に基づき、ＴＢＣのＳ曲線制御装置は、基準の輪郭経路に沿う所望の速度および加速度を計算する。Ｓ曲線制御装置は、距離ベースで、実時間処理で実行される。速度は、各制御サイクルで、瞬間の経路距離から計算する。この機構は、速度誤差の蓄積を低減し、幾つかの実時間の要求、オンザフライ送り速度調整、フィードオーバライド、一時停止、再開および単一工程も対応する。
【０１１８】
ＴＢＣのＳ曲線制御装置の操作４５００方法の実施形態のフローチャートを図２３に示す。第１工程４５０２で、フラッグを調べて、現在のシステム状態が、加速か減速かを見る。状態が、減速の場合、操作を工程４５１２に進める。  現在の状態が加速の場合、必要停止距離を工程４５０４で計算する。必要停止距離は、最小距離で規定される。この最小距離は、システムが工作機械を停止するまでに、工作機械がＳ曲線で進む距離である。停止距離は、現在の速度および加速度の関数である。工程４５０６で、所定の進む距離ｄが、必要停止距離ｄ０よりも大きい場合、即ち、安全に前方に動き続けられる場合、操作を工程４５１２に進み、所望の加速度および速度を計算する。進む距離ｄが、必要停止距離ｄ０より少ない場合、すぐにシステムにブレーキをかけ、ブレーキ情報を計算し、工程４５０８で減速するフラッグの設定をする。進む距離ｄが、元のＳ曲線（事前設定した最大ジャークと加速度）によるシステムのブレーキに十分でないため、最大ジャークを工程４５１０で修正し、システムの行き過ぎを防ぐ。２つの距離ｄ１，ｄ３をＳ曲線の相の検出に使用し、工程４５１０で更新もする。工程４５１２は、Ｓ曲線制御装置の核となる。現在のシステム状態および事前に計算した重要な距離で、Ｓ曲線の相、所望の速度及び加速度を、工程４５１２で決める。Ｓ曲線制御装置は、実時間で実行するので、制御装置にデータが切れないようにする注意が必要である。待ち行列での動作命令の全ての動く距離が、非常に短くなると、システムを速度を減速し、データ枯渇を防ぐ。工程４５１６で、オンザフライ送り速度の調整および使用者のオーバライドを適用する。
【０１１９】
Ｅ．ＴＢＣフィードフォワード制御
１．フィードフォワード信号およびゲイン
【０１２０】
フィードフォワードは、理想の現在位置（ＩＣＰ）に基づく。図２４に、３つのフィードフォワードの計算を示す。これらは、法線加速度ＦＦａｎ、接線速度ＦＦｖｔ、接線加速度ＦＦａｔである。図は、速度および加速度フィードフォワードを説明している。図２４で、ｄは、形状分析から得られた進む距離、ｄｔ，ｄｒは、それぞれ、単位接線および半径／法線方向ベクトルを表す。
【０１２１】
Ｓ曲線制御装置は４６０４は、距離を受取り、経路に沿う所望の速度ｖおよび加速度ａ（ｖ，ａ共にスカラ）を計算する。
【０１２２】
線４６０６の加速度ａは、単位接線方向ベクトルｄｔ４６０８を乗じて、４６１０で、接線加速度ベクトルを形成する。フィードフォワードゲインＫａｆｆは、接線加速度ａｔを制御信号ＦＦａｔに変換する。この制御信号は、サーボシステムが受取る。
【０１２３】
修正ラプラスブロック４６１２は、現在の速度を推定し、現在の速度を最後の速度命令と比較し、予測的補償をＳ曲線速度命令に加え、接線のトラッキング誤差を下げる。補償した速度命令は、単位接線方向ベクトルｄｔ４６０８を乗じ、接線速度ベクトルｖｔ４６１４になる。サーボシステムが速度制御命令を読み込むので、速度ベクトルに更なる変換を必要としない。
【０１２４】
求心加速度ａｎ４６１８は、円運動の物理、ａｎ＝ｖ２／Ｒ、で計算する。求心加速度は、円弧中心に向き、半径／法線方向と逆である。接線加速度に適用する同じフィードフォワードゲインＫａｆｆを適用し、法線加速度を適切な制御信号ＦＦａｎに変換する。
２．実行時間送り速度の調整装置（μ）
【０１２５】
実行時間またはオンザフライ送り速度の調整装置は、ＴＢＣ動作制御の特徴である。ＴＢＣ動作カーネルは、所定の基準経路を持たず、所望の動作を、現在のシステム条件に基づき、各制御サイクルの制御ループ内で決める。従って、実行時間送り速度の調整装置が可能となる。
【０１２６】
実行時間送り速度の調整装置は、位置／許容差誤差を、規定の誤差許容差と比較する。位置誤差が、規定の誤差許容差より大きく、または非常に近い場合、  実行時間送り速度の調整装置は、送り速度を減速し、トラッキング精度を良くする。誤差が、規定の許容差よりも小さく、近くない場合、実行時間送り速度の調整装置は、送り速度を増し、システムの処理能力を高める。一般的に、工作機械の速度は、位置誤差が、規定の誤差許容差よりも低い場合、増加させ、規定の誤差許容差よりも低い場合、減少させる。実施形態では、輪郭誤差が非常に小さくても、送り速度を増加せず、適切に増加または減少する能力を維持している。
【０１２７】
実行時間送り速度の調整装置は、条件付最適化の機構である。所定の範囲での輪郭／許容差誤差の制約で、実行時間送り速度の調整装置は、送り速度を最大にし、システムの処理能力の最適化を実現する
【０１２８】
Ｆ．ＴＢＣフィードバック制御
１．変数ゲインの法線誤差フィードバック制御（τ）
【０１２９】
法線誤差ｅｎまたは輪郭／許容差誤差を、現在の工作機械の位置から基準輪郭への最短距離で規定するＴＢＣ動作制御は、この誤差を低減する。これは、３次元誤差のため、３軸の共に協調した動きが、その修正に必要である。誤差は、５または６次元にもなる。これは、追加の軸として、回転軸を、経路および計算に含む場合である。以下の議論は、３次元または３軸を参照するが、これより多い多次元システムにも等しく適用できる。
【０１３０】
上記したが、ＴＢＣ制御と非ＴＢＣ制御の相違は、非ＴＢＣ制御は、３次元の基準輪郭経路を３つの独立した軸の動きに分解し、輪郭／許容差誤差の情報無しで、３軸を制御する。ＴＢＣ制御は、３次元の輪郭／許容差誤差を、直接にアドレス指定する。工作機械の実際の位置を、３軸の各々に沿って感知する。工作機械の各軸の実際位置と所望の位置との間の３次元位置誤差を計算する。計算した３次元位置誤差に依存する３次元位置誤差信号を形成する。工作機械の速度および／または方向を、３次元位置誤差信号により制御する。３次元位置誤差をベクトルの数学で計算する。
【０１３１】
上記記載から明らかであるが、ＴＢＣ制御は、１つの軸に沿う動きが、実時間で他の２つの軸に沿う動作制御の作用を可能にする。つまり、異なる軸の動作制御の間に互いの交わりが有る。
【０１３２】
図２５は、法線誤差の可変ゲインフィードバック制御を示し、ＴＢＣ動作制御は、可変ゲインフィードバック制御を使用して、法線誤差のアドレスを指定する。誤差は、実時間の形状分析４００２（図１８）で計算する。特別なフィードバック制御装置Ｃｎが、システムの安定性を与え、法線誤差を低減する。
【０１３３】
可変ゲインτ４７０２は、接線速度および法線加速度の関数である。大雑把には、システムが速く動けば、法線誤差の修正に必要なゲインは、大きくなる。ゲインが大きくなれば、法線誤差をより素早く修正する。
２．接線誤差フィードバック制御
【０１３４】
各制御サイクルで、ＴＢＣは、接線速度命令を生成する。接線速度命令の一体化で、基準輪郭に位置を形成する。その位置は、基準輪郭上の現在の目標点となる。接線誤差は、理想の現在位置（ＩＣＰ）から現在位置までの経路長さで規定する。フィードバック制御装置Ｃｔ４００４（図１８）が、接線誤差を低減する。
３．２つのフィードバック制御の異なる動特性
【０１３５】
ＴＢＣフィードバック制御は、接線誤差フィードバック制御および法線誤差フィードバック制御から成る。２つの誤差を同等または等しく取扱う代わりに、２つのフィードバック制御装置を、誤差に対し設ける。各フィードバック制御装置が、２つの誤差の各々にアドレス指定をする。２つの誤差の異なる取り扱いの第１の理由は、法線誤差が、接線誤差よりも重要である。トラッキング精度および表面仕上げの品質に関するためである。従って、法線誤差に一層の重点を置く。第２の理由は、サーボシステムの能力に制限があり、その能力の使用を、より重要なことに先ず行なうのが好ましい。２つの異なるフィードバック制御装置は、法線および接線誤差に使用する。法線誤差のループは、高いバンド幅または速い動特性を備える。接線誤差よりも法線誤差の修正に、より多くのサーボ動力が必要である。法線誤差は、接線誤差よりも素早く低減される。
【０１３６】
Ｇ．ＴＢＣ貼り付き摩擦および歯面遊びの補償
【０１３７】
貼り付き摩擦は、動作制御に相当の影響を有する。貼り付き摩擦の影響の修正に、ＴＢＣ動作カーネルは、貼り付き摩擦補償装置を使用する。この補償装置の起動は、軸がその動きの方向を変える時である。つまり、零速度の点を横切る時である。補償プロフィールは、切り欠いた形をしている。切り欠きの高さおよび幅は、速度と経路の部分的な曲率の関数である。
【０１３８】
親ねじを工作機械で伝動装置として使用し、回転運動を直線運動に変換する。ボールねじおよび歯面遊びの誤りを補償する必要がある。動作カーネルで使用する位置の値は、全て、親ねじと歯面遊びである。親ねじと歯面遊びは、親ねじのマッピング表で補償している。
【０１３９】
補償ブロックは、現在の動く方向を決める。このブロックは、親ねじのマッピング表を探すのに必要で、親ねじ／歯面遊びの位置補償を実行する。
【０１４０】
Ｈ．ＴＢＣ制御信号保護
【０１４１】
ＴＢＣ動作制御信号は、フィードフォワード制御信号、フィードバック制御信号および貼り付き摩擦補償信号の和である。制御信号をデジタル／アナログ変換器（ＤＡＣ）を通してサーボシステムに送る前に、保護手段が働き、機械の過負荷を避ける。保護手段は、２つの工程から成り、制御信号の変化速度を制限する第１の工程を含む。サーボシステムは、速度命令を受取り、制御信号の変化速度は、加速／減速に対応する。Ｓ曲線制御装置は、加速／減速を考慮するが、全体の制御信号は、他の理由で非常に早く変化する。理由として、トラッキング誤差フィードバック、妨害、貼り付き摩擦補償等がある。サーボシステムの能力を越えるのを避け、平滑な動きの為に、制御信号の変化速度を制限する。つまり、現在および前の制御命令間の差が、閾値を越える場合、現在の命令を限定し、その差を閾値で飽和させる。
【０１４２】
保護手段の第２の工程は、制御信号を制限する。ＤＡＣおよびサーボシステムの両方が、制限した制御信号入力だけを最大量で受取ることできる。現在の制御命令が、この閾値を越える場合、工程は、現在の制御命令を最大制御入力まで飽和させる。
【０１４３】
本発明の経路動作制御方法の実施形態での、ＴＢＣフローチャートを、表１〜表１６に、ＴＢＣカーネルフローチャートを表１７〜２１に示す。
【０１４４】
【表１】
2010511919.tif 000085
ＴＢＣフローチャート１を表す。
【０１４５】
【表２】
2010511919.tif 000086
ＴＢＣフローチャート２を表す。
【０１４６】
【表３】
2010511919.tif 000087
ＴＢＣフローチャート３を表す。
【０１４７】
【表４】
2010511919.tif 000088
ＴＢＣフローチャート４を表す。
【０１４８】
【表５】
2010511919.tif 000089
ＴＢＣフローチャート５を表す。
【０１４９】
【表６】
2010511919.tif 000090
ＴＢＣフローチャート６を表す。
【０１５０】
【表７】
2010511919.tif 000091
ＴＢＣフローチャート７を表す。
【０１５１】
【表８】
2010511919.tif 000092
ＴＢＣフローチャート８を表す。
【０１５２】
【表９】
2010511919.tif 000093
ＴＢＣフローチャート９を表す。
【０１５３】
【表１０】
2010511919.tif 000094
ＴＢＣフローチャート１０を表す。
【０１５４】
【表１１】
2010511919.tif 000095
ＴＢＣフローチャート１１を表す。
【０１５５】
【表１２】
2010511919.tif 000096
ＴＢＣフローチャート１２を表す。
【０１５６】
【表１３】
2010511919.tif 000097
ＴＢＣフローチャート１３を表す。
【０１５７】
【表１４】
2010511919.tif 000098
ＴＢＣフローチャート１４を表す。
【０１５８】
【表１５】
2010511919.tif 000099
ＴＢＣフローチャート１５を表す。
【０１５９】
【表１６】
2010511919.tif 000100
ＴＢＣフローチャート１６を表す。
【０１６０】
【表１７】
2010511919.tif 000101
ＴＢＣカーネルフローチャート１を表す。
【０１６１】
【表１８】
2010511919.tif 000102
ＴＢＣカーネルフローチャート２を表す。
【０１６２】
【表１９】
2010511919.tif 000103
ＴＢＣカーネルフローチャート３を表す。
【０１６３】
【表２０】
2010511919.tif 000104
ＴＢＣカーネルフローチャート４を表す。
【０１６４】
【表２１】
2010511919.tif 000105
ＴＢＣカーネルフローチャート５を表す。
【０１６５】
発明を典型的な設計で記載しているが、発明の精神および範囲内での変形は可能である。この明細書は、この一般原理を用いた発明の如何なる変形、使用、適用も保護するものである。
【図面の簡単な説明】
【０１６６】
【図１】本発明の許容差ベースの制御方法の１つの実施形態のフローチャートを示す。
【図２】本発明の許容差ベースの制御システムの１つの実施形態のブロック図を示す。
【図３】（ａ）加工場所の異なる領域への異なる許容差値のマッピングを説明する図である。（ｂ）加工場所の異なる領域への異なる許容差値のマッピングを説明する図である。（ｃ）加工場所の異なる領域への異なる許容差値のマッピングを説明する図である。
【図４】（ａ）プログラムのデータ点の作図で、本発明の実施形態によるデータ圧縮の方法を説明している。（ｂ）プログラムのデータ点の作図で、本発明の他の実施形態によるデータ圧縮の方法を説明している。
【図５】（ａ）レベル０のデータ平滑化のグラフ表示である。（ｂ）レベル１のデータ平滑化のグラフ表示である。（ｃ）レベル２のデータ平滑化のグラフ表示である。（ｄ）レベル３のデータ平滑化のグラフ表示である。（ｅ）レベル４のデータ平滑化のグラフ表示である。
【図６】プログラムのデータ点の作図で、本発明の１つの実施形態によるデータ平滑化のデータ点の選択方法を説明している。
【図７】プログラムのデータ点作図の斜視図で、本発明の１つの実施形態による平滑化の線の動きを調整する方法を説明している。
【図８】本発明の２重円弧平滑化アルゴリズムの１つの実施形態の１つの工程を説明する作図である。
【図９】本発明の２重円弧平滑化アルゴリズムの１つの実施形態の他の工程を説明する作図である。
【図１０】本発明の２重円弧平滑化アルゴリズムの１つの実施形態の更に他の工程を説明する作図である。
【図１１】工作機械（工具）の速度と時間の作図で、Ｓ曲線とも呼ぶ。
【図１２】（ａ）時間に対する工作機械の速度の他の作図（Ｓ曲線）である。（ｂ）距離と図３２ａの作図の関係を示す図表である。
【図１３】停止距離の概念を説明する図表である。
【図１４】付加的および非付加的先読みアルゴリズムの時間対工作機械速度の他の作図である。
【図１５】本発明の付加的先読みアルゴリズムの１つの実施形態のフローチャートである。
【図１６】非ＴＢＣ動作制御配置の１つの実施形態のブロック図である。
【図１７】本発明のＴＢＣ動作制御配置の１つの実施形態のブロック図である。
【図１８】図１７のＴＢＣ動作制御配置の他のブロック図である。
【図１９】線の動きに対するストッパ面法線方向の計算を説明する作図である。
【図２０】円弧の動きに対するストッパ面法線方向の計算を説明する作図である。
【図２１】線の動きの形状分析を説明する作図である。
【図２２】（ａ）円弧の動きの形状分析を説明する第１の作図である。（ｂ）円弧の動きの形状分析を説明する第２の作図である。
【図２３】ＴＢＣのＳ曲線制御装置の１つの実施形態の操作を説明するフローチャートである。
【図２４】本発明のＴＢＣ制御配置の１つの実施形態を説明するブロック図である。
【図２５】法線誤差の可変ゲインフィードバック制御の本発明の配置の１つの実施形態を説明するブロック図である。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010511919.tif 000106
【図２】
2010511919.tif 000107
【図３】
2010511919.tif 000108
【図４】
2010511919.tif 000109
【図５】
2010511919.tif 000110
【図６】
2010511919.tif 000111
【図７】
2010511919.tif 000112
【図８】
2010511919.tif 000113
【図９】
2010511919.tif 000114
【図１０】
2010511919.tif 000115
【図１１】
2010511919.tif 000116
【図１２】
2010511919.tif 000117
【図１３】
2010511919.tif 000118
【図１４】
2010511919.tif 000119
【図１５】
2010511919.tif 000120
【図１６】
2010511919.tif 000121
【図１７】
2010511919.tif 000122
【図１８】
2010511919.tif 000123
【図１９】
2010511919.tif 000124
【図２０】
2010511919.tif 000125
【図２１】
2010511919.tif 000126
【図２２】
2010511919.tif 000127
【図２３】
2010511919.tif 000128
【図２４】
2010511919.tif 000129
【図２５】
2010511919.tif 000130