JP2023122566A - Numerical control device, numerical control method, and storage medium - Google Patents

Numerical control device, numerical control method, and storage medium Download PDF

Info

Publication number
JP2023122566A
JP2023122566A JP2023024980A JP2023024980A JP2023122566A JP 2023122566 A JP2023122566 A JP 2023122566A JP 2023024980 A JP2023024980 A JP 2023024980A JP 2023024980 A JP2023024980 A JP 2023024980A JP 2023122566 A JP2023122566 A JP 2023122566A
Authority
JP
Japan
Prior art keywords
trajectory
command
filter
speed
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023024980A
Other languages
Japanese (ja)
Inventor
英二 社本
Eiji Shamoto
浩資 石崎
Kosuke Ishizaki
弦 寺田
Gen Terada
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Publication of JP2023122566A publication Critical patent/JP2023122566A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Numerical Control (AREA)

Abstract

To provide a numerical control device that can accurately suppress errors in the movement trajectory of a control object based on a command even when an acceleration/deceleration filter is applied to the command trajectory of the control object, a numerical control method, and a storage medium storing a numerical control program.SOLUTION: A numerical control device applies a filter to a command trajectory that is a movement trajectory of a control object moving according to a command. The numerical control device determines a corresponding point on a filter trajectory to which the filter is applied as a point corresponding to each of base points that are points on the command trajectory (S31). The numerical control device calculates, for each base point, an error vector indicating the distance and direction from the base point to the corresponding point (S33). The numerical control device calculates a gain corresponding to the calculated error vector for each base point (S37). The numerical control device applies the calculated error vector and gain to the corresponding base point and corrects the command trajectory (S41).SELECTED DRAWING: Figure 19

Description

本発明は、数値制御装置、数値制御方法、及び記憶媒体に関する。 The present invention relates to a numerical controller, a numerical control method, and a storage medium.

数値制御装置は、工具やテーブル(以下、「制御対象」という。)を移動制御する為の指令信号に加減速フィルタを適用する。数値制御装置は、加減速フィルタの適用後の指令信号により制御対象を移動制御することで、制御対象を移動させる為のモータが過剰な駆動条件で駆動することを抑制する。加減速フィルタの適用後の指令信号に基づいて移動する制御対象の移動軌跡が、加減速フィルタの適用前の指令信号に基づいて移動する制御対象の移動軌跡に対してずれる場合がある。このずれを抑制する為の技術が提案されている。 A numerical controller applies an acceleration/deceleration filter to a command signal for movement control of a tool or table (hereinafter referred to as "controlled object"). The numerical controller controls the movement of the controlled object by the command signal after applying the acceleration/deceleration filter, thereby suppressing the motor for moving the controlled object from being driven under excessive driving conditions. The movement trajectory of the controlled object that moves based on the command signal after application of the acceleration/deceleration filter may deviate from the movement trajectory of the controlled object that moves based on the command signal before application of the acceleration/deceleration filter. Techniques for suppressing this deviation have been proposed.

特許文献1に記載の数値制御装置では、はじめに、加減速処理前の移送パルスから得られる基準機械軸パスと、加減速処理後の移送パルスから得られる機械軸パスとの誤差の近似値に相当する補正量を算出する。次に数値制御装置は、誤差を相殺する方向に基準機械軸パスを補正量分移動させ、変換後機械軸パスを算出する。次に数値制御装置は、変換後機械軸パスをNCプログラムに変換し、変換後NCプログラムを生成する。数値制御装置は、変換後NCプログラムに基づき加減速処理を行うことで、基準機械軸パスと実際の機械軸パスとのずれを抑制する。 In the numerical control device described in Patent Document 1, first, it corresponds to the approximate value of the error between the reference machine axis path obtained from the transfer pulse before the acceleration/deceleration process and the machine axis path obtained from the transfer pulse after the acceleration/deceleration process. Calculate the amount of correction to be made. Next, the numerical controller moves the reference mechanical axis path by the correction amount in the direction of canceling out the error, and calculates the converted mechanical axis path. Next, the numerical controller converts the post-conversion machine axis path into an NC program to generate the post-conversion NC program. The numerical controller suppresses deviation between the reference machine axis path and the actual machine axis path by performing acceleration/deceleration processing based on the converted NC program.

特許第5399537号公報Japanese Patent No. 5399537

加減速フィルタの適用前の制御対象の移動軌跡に対して、加減速フィルタの適用前の制御対象の移動軌跡と、加減速フィルタの適用後の制御対象の移動軌跡との誤差そのものを用いて補正した場合、残存する誤差が大きいという問題点がある。このとき残存する誤差の大きさは、移動軌跡の形状と移動速度により異なる。又、加減速フィルタの適用前の制御対象の移動軌跡と、加減速フィルタの適用後の制御対象の移動軌跡の誤差を求めるためには、加減速フィルタの適用前後の移動軌跡上の指令点同士を対応付ける必要がある。しかし、加減速フィルタによる遅れ時間により対応付けを行う場合、移動軌跡や加減速フィルタの構成によっては、計算が困難になるという問題点がある。 The trajectory of the controlled object before application of the acceleration/deceleration filter is corrected using the error itself between the trajectory of the controlled object before application of the acceleration/deceleration filter and the trajectory of the controlled object after application of the acceleration/deceleration filter. In this case, there is a problem that residual error is large. The size of the remaining error at this time varies depending on the shape of the movement locus and the movement speed. In addition, in order to obtain the error between the movement trajectory of the controlled object before application of the acceleration/deceleration filter and the movement trajectory of the controlled object after application of the acceleration/deceleration filter, command points on the movement trajectory before and after application of the acceleration/deceleration filter must be associated. However, there is a problem that the calculation becomes difficult depending on the movement trajectory and the configuration of the acceleration/deceleration filter when the correlation is performed by the delay time of the acceleration/deceleration filter.

本発明の目的は、制御対象の移動軌跡に加減速フィルタを適用する場合でも、指令に基づく制御対象の移動軌跡との誤差を精度良く抑制できる数値制御装置、数値制御方法、及び数値制御プログラムを記憶した記憶媒体を提供することである。 An object of the present invention is to provide a numerical control device, a numerical control method, and a numerical control program that can accurately suppress errors from the movement trajectory of a controlled object based on commands even when an acceleration/deceleration filter is applied to the movement trajectory of the controlled object. It is to provide a storage medium that stores.

本発明の第1態様に係る数値制御装置は、工作機械のテーブル及び工具の少なくとも一方である制御対象を移動させる為の指令を取得する取得部と、前記取得部が取得した前記指令により前記制御対象が移動する時の移動軌跡である指令軌跡に対して第一フィルタを適用する第一フィルタリング部と、前記指令軌跡上の点である複数の基点に対応する点として、前記指令軌跡に対して前記第一フィルタリング部により前記第一フィルタを適用した結果であるフィルタ軌跡上の対応点を決定する決定部と、前記基点の夫々から、前記決定部が決定した対応する前記対応点の夫々までの距離と方向を示す誤差ベクトルを、前記基点毎に算出するベクトル算出部と、前記ベクトル算出部により算出した前記誤差ベクトルに対応するゲインを、前記基点毎に算出するゲイン算出部と、前記ベクトル算出部により算出した前記誤差ベクトルと、前記ゲイン算出部により算出した前記ゲインとを、対応する前記基点に適用することで、前記指令軌跡を補正する軌跡補正部と、を備えたことを特徴とする。 A numerical control apparatus according to a first aspect of the present invention includes an acquisition unit that acquires a command for moving a controlled object that is at least one of a table and a tool of a machine tool, and the control unit that uses the command acquired by the acquisition unit. a first filtering unit that applies a first filter to a commanded trajectory that is a movement trajectory when an object moves; a determination unit that determines corresponding points on the filter trajectory that is the result of applying the first filter by the first filtering unit; A vector calculation unit that calculates an error vector indicating a distance and a direction for each base point; a gain calculation unit that calculates a gain corresponding to the error vector calculated by the vector calculation unit for each base point; a trajectory correction unit that corrects the command trajectory by applying the error vector calculated by the unit and the gain calculated by the gain calculation unit to the corresponding base points. .

数値制御装置は、指令軌跡上の基点毎に、誤差ベクトルとゲインとを算出する。数値制御装置は、算出した誤差ベクトルとゲインとを基点の夫々に適用して指令軌跡を補正する。この場合、数値制御装置は、指令軌跡上の基点毎にゲインを最適化できる。従って、数値制御装置は、第一フィルタを適用した場合における制御対象の移動軌跡を、第一フィルタを適用しない場合における制御対象の移動軌跡と近似させることができる。従って、数値制御装置は、指令軌跡に第一フィルタを適用して制御対象を移動制御する場合において、実際の制御対象の移動軌跡と、元の指令軌跡との誤差を精度良く抑制できる。 The numerical controller calculates an error vector and a gain for each base point on the command locus. The numerical controller applies the calculated error vector and gain to each base point to correct the commanded trajectory. In this case, the numerical controller can optimize the gain for each base point on the command locus. Therefore, the numerical controller can approximate the movement trajectory of the controlled object when the first filter is applied to the movement trajectory of the controlled object when the first filter is not applied. Therefore, when applying the first filter to the commanded trajectory to control the movement of the controlled object, the numerical controller can accurately suppress the error between the actual movement trajectory of the controlled object and the original commanded trajectory.

第1態様において、前記指令は、前記制御対象の少なくとも二つの位置を規定し、前記取得部により取得した前記指令が規定する前記少なくとも二つの位置の間を前記取得部が取得した指令速度で前記制御対象が移動するときに、前記工作機械の制御周期毎に通過する点を、前記基点として補間する補間部を更に備え、前記第一フィルタリング部は、前記補間部により補間された前記基点を経由する前記指令軌跡に対して前記第一フィルタを適用してもよい。以後、補間部が補間を行う周期(=制御周期)を補間周期と称する。数値制御装置は、指令にて規定される少なくとも二つの位置の間に、複数の基点を補間する。従って、数値制御装置は、実際の制御周期毎に出力される制御点を用いて指令軌跡を補正することができるので、実際の制御対象の移動軌跡と、元の指令軌跡との誤差を精度良く抑制できる。 In the first aspect, the command specifies at least two positions of the object to be controlled, and between the at least two positions specified by the command acquired by the acquisition unit, the command velocity acquired by the acquisition unit is used. An interpolating unit that interpolates, as the base point, a point that the machine tool passes through every control cycle when the object to be controlled moves, wherein the first filtering unit passes through the base point interpolated by the interpolating unit. The first filter may be applied to the commanded trajectory to be set. Hereinafter, the cycle (=control cycle) in which the interpolator performs interpolation will be referred to as an interpolation cycle. A numerical controller interpolates a plurality of base points between at least two positions defined by the command. Therefore, since the numerical controller can correct the commanded trajectory using the control points output in each actual control cycle, the error between the actual movement trajectory of the controlled object and the original commanded trajectory can be accurately corrected. can be suppressed.

第1態様において、前記指令軌跡に基づき、前記補間部により補間した前記基点における接線方向の移動距離を算出する距離算出部を更に備え、前記第一フィルタリング部は、前記距離算出部により算出した前記移動距離に基づく一次元軌跡に対して前記第一フィルタを適用し、前記決定部は、前記第一フィルタを適用した前記移動距離に基づく前記一次元軌跡を利用して、前記基点に対応する前記対応点を決定してもよい。一次元指令軌跡を補間部により補間した基点と、第一フィルタを適用した結果である一次元フィルタ軌跡上の点との対応関係を指令軌跡上の基点とフィルタ軌跡上の点の対応付けに利用することで、数値制御装置は、指令軌跡上の基点に対応するフィルタ軌跡上の対応点を精度良く決定できる。 In the first aspect, a distance calculation unit is further provided for calculating a movement distance in a tangential direction at the reference point interpolated by the interpolation unit based on the commanded trajectory, and the first filtering unit calculates the distance calculated by the distance calculation unit. The first filter is applied to the one-dimensional trajectory based on the moving distance, and the determining unit uses the one-dimensional trajectory based on the moving distance to which the first filter is applied to determine the corresponding one-dimensional trajectory corresponding to the base point. Corresponding points may be determined. The correspondence relationship between the base point interpolated from the one-dimensional command trajectory by the interpolator and the points on the one-dimensional filter trajectory that is the result of applying the first filter is used to associate the base points on the command trajectory with points on the filter trajectory. By doing so, the numerical controller can accurately determine the corresponding point on the filter trajectory corresponding to the base point on the command trajectory.

第1態様において、前記指令軌跡に基づき、前記補間部により補間した前記基点における角速度を算出する角速度算出部を更に備え、前記ゲイン算出部は、前記角速度算出部により算出した前記角速度に基づき、前記ゲインを算出してもよい。数値制御装置は、指令軌跡上の基点毎に最適なゲインを、角速度に基づいて算出できる。 In the first aspect, an angular velocity calculation unit that calculates the angular velocity at the reference point interpolated by the interpolation unit based on the command locus, and the gain calculation unit calculates the angular velocity based on the angular velocity calculated by the angular velocity calculation unit. A gain may be calculated. The numerical controller can calculate the optimum gain for each base point on the command locus based on the angular velocity.

第1態様において、前記ゲイン算出部は、前記指令軌跡が円弧状である時に前記フィルタ軌跡を前記指令軌跡と一致させることが可能な前記ゲインと前記角速度との関係に基づいて規定される関数を、前記角速度算出部により算出した前記角速度に適用することで、前記ゲインを前記角速度毎に算出してもよい。数値制御装置は、角速度の値に関わらず、指令軌跡上の基点毎に最適なゲインを算出できる。 In the first aspect, the gain calculator calculates a function defined based on the relationship between the gain and the angular velocity that allows the filter trajectory to match the command trajectory when the command trajectory is circular. , the gain may be calculated for each angular velocity by applying it to the angular velocity calculated by the angular velocity calculator. The numerical controller can calculate the optimum gain for each base point on the command locus regardless of the value of the angular velocity.

第1態様において、前記関数は、前記ゲインが前記角速度毎にプロットされたグラフの包絡線を示してもよい。数値制御装置は、指令軌跡上の基点毎に最適なゲインを精度良く算出できる。 In the first aspect, the function may represent an envelope of a graph in which the gain is plotted for each angular velocity. The numerical controller can accurately calculate the optimum gain for each base point on the command locus.

第1態様において、前記角速度算出部により算出した前記角速度に対して、前記第一フィルタと同じ時定数を有する第二フィルタを適用する第二フィルタリング部を更に備え、前記ゲイン算出部は、前記第二フィルタリング部により前記第二フィルタを適用した後の角速度に基づき、前記ゲインを算出してもよい。数値制御装置は、角速度の瞬時変化が大きい場合でも、最適なゲインを算出できる。
第1態様において、前記軌跡補正部が補正した補正軌跡上の点に対して前記第一フィルタを適用する第三フィルタリング部と、前記第三フィルタリング部でフィルタリング処理した後の基点対応する点の速度を算出する速度算出部と、前記速度算出部が算出した速度が前記指令速度を超えるか否かを判定する速度判定部と、前記速度算出部が算出した速度が前記指令速度を超えると前記速度判定部が判定したとき、前記速度算出部が算出した速度を前記指令速度以下に変更する速度変更部とを更に備えてもよい。数値制御装置は、指令速度以下の速度で制御対象を制御するので加工精度の悪化を防ぐことができる。
In the first aspect, further comprising a second filtering unit that applies a second filter having the same time constant as the first filter to the angular velocity calculated by the angular velocity calculating unit, wherein the gain calculating unit The gain may be calculated based on the angular velocity after the second filter is applied by the second filtering unit. The numerical controller can calculate the optimum gain even when the instantaneous change in angular velocity is large.
In the first aspect, a third filtering unit that applies the first filter to points on the corrected trajectory corrected by the trajectory correcting unit; a speed calculation unit that calculates the speed, a speed determination unit that determines whether or not the speed calculated by the speed calculation unit exceeds the command speed, and if the speed calculated by the speed calculation unit exceeds the command speed, the speed A speed changing unit may be further provided for changing the speed calculated by the speed calculating unit to be equal to or less than the command speed when the determining unit makes the determination. Since the numerical controller controls the controlled object at a speed equal to or lower than the commanded speed, it is possible to prevent deterioration of machining accuracy.

本発明の第2態様に係る数値制御方法は、工作機械のテーブル及び工具の少なくとも一方である制御対象を移動させる為の指令を取得する取得工程と、前記取得工程が取得した前記指令により前記制御対象が移動する時の移動軌跡である指令軌跡に対して第一フィルタを適用する第一フィルタリング工程と、前記指令軌跡上の点である基点の夫々に対応する点として、前記指令軌跡に対して前記第一フィルタリング工程により前記第一フィルタを適用した結果であるフィルタ軌跡上の対応点を決定する決定工程と、前記基点の夫々から、対応する前記対応点の夫々までの距離と方向を示す誤差ベクトルを、前記基点毎に算出するベクトル算出工程と、前記ベクトル算出工程により算出した前記誤差ベクトルに対応するゲインを、前記基点毎に算出するゲイン算出工程と、前記ベクトル算出工程により算出した前記誤差ベクトルと、前記ゲイン算出工程により算出した前記ゲインとを、対応する前記基点に適用することで、前記指令軌跡を補正する軌跡補正工程と、を備えたことを特徴とする。この場合、第1態様と同様の効果を奏する。 A numerical control method according to a second aspect of the present invention includes an acquiring step of acquiring a command for moving a controlled object, which is at least one of a table and a tool of a machine tool; A first filtering step of applying a first filter to a commanded trajectory that is a movement trajectory when an object moves; a determination step of determining corresponding points on the filter locus resulting from applying the first filter by the first filtering step; and an error indicating the distance and direction from each of the base points to each of the corresponding corresponding points. A vector calculation step of calculating a vector for each base point; a gain calculation step of calculating a gain corresponding to the error vector calculated by the vector calculation step for each base point; and the error calculated by the vector calculation step. a trajectory correction step of correcting the commanded trajectory by applying the vector and the gain calculated by the gain calculation step to the corresponding base point. In this case, the same effects as in the first mode are obtained.

本発明の第3態様に係る記憶媒体は、工作機械のテーブル及び工具の少なくとも一方である制御対象を移動させる為の指令を取得する取得工程と、前記取得工程が取得した前記指令により前記制御対象が移動する時の移動軌跡である指令軌跡に対して第一フィルタを適用する第一フィルタリング工程と、前記指令軌跡上の点である基点の夫々に対応する点として、前記指令軌跡に対して前記第一フィルタリング工程により前記第一フィルタを適用した結果であるフィルタ軌跡上の対応点を決定する決定工程と、前記基点の夫々から、対応する前記対応点の夫々までの距離と方向を示す誤差ベクトルを、前記基点毎に算出するベクトル算出工程と、前記ベクトル算出工程により算出した前記誤差ベクトルに対応するゲインを、前記基点毎に算出するゲイン算出工程と、前記ベクトル算出工程により算出した前記誤差ベクトルと、前記ゲイン算出工程により算出した前記ゲインとを、対応する前記基点に適用することで、前記指令軌跡を補正する軌跡補正工程と、を、コンピュータに実行させる為の数値制御プログラムを記憶する。この場合、第1態様と同様の効果を奏する。 A storage medium according to a third aspect of the present invention comprises: an acquisition step of acquiring a command for moving a controlled object, which is at least one of a table and a tool of a machine tool; A first filtering step of applying a first filter to the commanded trajectory, which is the movement trajectory when moving, and a point corresponding to each of the base points, which are points on the commanded trajectory, for the commanded trajectory a determination step of determining corresponding points on the filter trajectory resulting from applying the first filter by a first filtering step; and an error vector indicating the distance and direction from each of the base points to each of the corresponding corresponding points. a vector calculating step of calculating for each base point; a gain calculating step of calculating a gain corresponding to the error vector calculated by the vector calculating step for each base point; and the error vector calculated by the vector calculating step and a trajectory correction step of correcting the commanded trajectory by applying the gain calculated in the gain calculation step to the corresponding base point. In this case, the same effects as in the first mode are obtained.

工作機械1の斜視図である。1 is a perspective view of a machine tool 1; FIG. 数値制御装置30と工作機械1の電気的構成を示すブロック図である。2 is a block diagram showing electrical configurations of a numerical controller 30 and a machine tool 1; FIG. 指令軌跡Gc(1)とフィルタ軌跡Gf(1)を示す図である。FIG. 10 is a diagram showing a command trajectory Gc(1) and a filter trajectory Gf(1); 指令軌跡Gc(2)を示す図である。FIG. 10 is a diagram showing a command locus Gc(2); 図4の範囲W1~W3を拡大した図である。5 is an enlarged view of the range W1 to W3 of FIG. 4; FIG. 多次元の指令軌跡Gcとフィルタ軌跡Gfを示す図である。FIG. 4 is a diagram showing a multidimensional command trajectory Gc and a filter trajectory Gf; 一次元の指令軌跡Dcとフィルタ軌跡Dfを示す図である。FIG. 4 is a diagram showing a one-dimensional command trajectory Dc and a filter trajectory Df; 多次元における移動距離と変数i、jとの関係を示すグラフである。It is a graph which shows the relationship between the moving distance in multi-dimensions, and the variables i and j. 一次元における移動距離と変数i、jとの関係を示すグラフである。It is a graph which shows the relationship between the moving distance and variables i and j in one dimension. 図4の範囲W1~W3を拡大した図である。5 is an enlarged view of the range W1 to W3 of FIG. 4; FIG. 指令軌跡Gc(3)とフィルタ軌跡Gf(3)を示す図である。FIG. 10 is a diagram showing a command locus Gc(3) and a filter locus Gf(3); 指令軌跡Gcの変化量と補正ゲインkとの関係を示すグラフである。7 is a graph showing the relationship between the amount of change in the command locus Gc and the correction gain k; 指令軌跡Gc(4)とフィルタ軌跡Gf(4)を示す図である。FIG. 10 is a diagram showing a command locus Gc(4) and a filter locus Gf(4); 累積軌跡誤差に基づいて算出した補正ゲインkの最適解を示すグラフである。7 is a graph showing an optimum solution for correction gain k calculated based on cumulative trajectory error; 指令軌跡Gc(5)と、指令軌跡Gc(5)の角速度を示すグラフである。7 is a graph showing a command trajectory Gc(5) and the angular velocity of the command trajectory Gc(5); 補正ゲイン関数K(ω)を示すグラフである。4 is a graph showing a correction gain function K(ω); 角速度フィルタの重み関数W(t)の例を示すグラフである。4 is a graph showing an example of a weighting function W(t) of an angular velocity filter; 主処理の流れ図である。It is a flow chart of main processing. 主処理の流れ図であって、図18の続きである。FIG. 18 is a flowchart of the main processing, continued from FIG. 評価した工作機械1の基台2上の状態を示す写真である。It is a photograph which shows the state on the base 2 of the machine tool 1 evaluated. 加速度計により検出された共進周波数を示すグラフである。Fig. 4 is a graph showing co-advance frequencies detected by an accelerometer; 角速度フィルタの特性を示すグラフである。4 is a graph showing the characteristics of an angular velocity filter; 累積軌跡誤差の測定結果を示す表である。4 is a table showing measurement results of cumulative trajectory errors; 指令軌跡Gc(6)とフィルタ軌跡Gf(6)、Gf(6)´を示す図である。It is a figure which shows command locus|trajectory Gc(6) and filter locus|trajectory Gf(6), Gf(6)'. フィルタ軌跡Gf(6)、Gf(6)´の夫々の誤差を示すグラフである。7 is a graph showing respective errors of filter trajectories Gf(6) and Gf(6)'; 指令軌跡Gc(6)、フィルタ軌跡Gf(6)、Gf(6)´に沿って移動する制御対象の速度を示す。The velocity of the controlled object moving along the command locus Gc(6) and the filter locus Gf(6), Gf(6)' is shown. 梁の振動周波数の解析結果を示すグラフである。7 is a graph showing analysis results of vibration frequencies of beams; 指令軌跡Gc(7)とフィルタ軌跡Gf(7)、Gf(7)´を示す図である。It is a figure which shows command locus|trajectory Gc(7) and filter locus|trajectory Gf(7), Gf(7)'. フィルタ軌跡Gf(7)、Gf(7)´の夫々の誤差を示すグラフである。7 is a graph showing respective errors of filter trajectories Gf(7) and Gf(7)'; 指令軌跡Gc(7)、フィルタ軌跡Gf(7)、Gf(7)´に沿って移動する制御対象の速度を示す。The velocity of the controlled object moving along the command trajectory Gc(7) and the filter trajectories Gf(7) and Gf(7)' are shown. 指令軌跡Gc(8)とフィルタ軌跡Gf(8)、Gf(8)´を示す図である。FIG. 10 is a diagram showing a command trajectory Gc(8) and filter trajectories Gf(8) and Gf(8)'; フィルタ軌跡Gf(8)、Gf(8)´の夫々の誤差を示すグラフである。7 is a graph showing respective errors of filter trajectories Gf(8) and Gf(8)'; 指令軌跡Gc(8)、フィルタ軌跡Gf(8)、Gf(8)´に沿って移動する制御対象の速度を示す。The velocity of the controlled object moving along the command trajectory Gc(8) and the filter trajectories Gf(8) and Gf(8)' is shown. 変形例の主処理の流れ図である。It is a flow chart of main processing of a modification. 変形例の主処理の流れ図であって、図34の続きである。FIG. 34 is a flow chart of the main processing of the modification, continued from FIG. 34 .

本発明の実施形態を説明する。以下説明は、図中に矢印で示す左右、前後、上下を使用する。工作機械1の左右方向、前後方向、上下方向は、夫々、工作機械1のX軸方向、Y軸方向、Z軸方向である。図1に示す工作機械1は、主軸9に装着した工具4を回転し、テーブル13の上面に保持された被削材3に切削加工を施す機械である。数値制御装置30(図2参照)は、工作機械1の動作を制御する。 Embodiments of the present invention will be described. In the following description, left and right, front and back, and top and bottom indicated by arrows in the drawings are used. The horizontal direction, the longitudinal direction, and the vertical direction of the machine tool 1 are the X-axis direction, the Y-axis direction, and the Z-axis direction of the machine tool 1, respectively. A machine tool 1 shown in FIG. 1 is a machine that rotates a tool 4 mounted on a spindle 9 and cuts a workpiece 3 held on the upper surface of a table 13 . A numerical controller 30 (see FIG. 2) controls the operation of the machine tool 1 .

<工作機械1の概要>
図1を参照し、工作機械1の構造を説明する。工作機械1は、基台2、コラム5、主軸ヘッド7、主軸9、テーブル装置10、工具交換装置20、制御箱6、操作パネル15(図2参照)等を備える。基台2は金属製の略直方体状の土台である。コラム5は基台2の上部後方に固定される。主軸ヘッド7はコラム5の前面に沿ってZ軸方向に移動可能に設けられる。主軸ヘッド7は内部に主軸9を回転可能に支持する。主軸9は下部に装着穴(図示略)を有する。主軸9は該装着穴に工具4を装着し、主軸モータ52(図2参照)の駆動で回転する。主軸モータ52は主軸ヘッド7に設けられる。主軸ヘッド7はコラム5の前面に設けられたZ軸移動機構(図示略)により、Z軸方向に移動する。数値制御装置30は、Z軸モータ51(図2参照)の駆動を制御することで、主軸ヘッド7をZ軸方向に移動制御する。
<Overview of machine tool 1>
The structure of the machine tool 1 will be described with reference to FIG. The machine tool 1 includes a base 2, a column 5, a spindle head 7, a spindle 9, a table device 10, a tool changer 20, a control box 6, an operation panel 15 (see FIG. 2), and the like. The base 2 is a substantially rectangular parallelepiped base made of metal. A column 5 is fixed to the upper rear portion of the base 2 . A spindle head 7 is provided movably along the front surface of the column 5 in the Z-axis direction. The spindle head 7 rotatably supports the spindle 9 therein. The main shaft 9 has a mounting hole (not shown) in its lower part. The tool 4 is mounted in the mounting hole of the spindle 9, and is rotated by driving the spindle motor 52 (see FIG. 2). A spindle motor 52 is provided in the spindle head 7 . The spindle head 7 is moved in the Z-axis direction by a Z-axis movement mechanism (not shown) provided on the front surface of the column 5 . The numerical controller 30 controls the movement of the spindle head 7 in the Z-axis direction by controlling the drive of the Z-axis motor 51 (see FIG. 2).

テーブル装置10は、Y軸移動機構(図示略)、Y軸テーブル12、X軸移動機構(図示略)、テーブル13等を備える。Y軸移動機構は基台2の上面前側に設け、Y軸レール、Y軸ボール螺子、Y軸モータ54(図2参照)等を備える。Y軸レールとY軸ボール螺子は、Y軸方向に延びる。Y軸レールは、上面にY軸テーブル12をY軸方向に案内する。Y軸テーブル12は略直方体状に形成され、底部外面にナット(図示略)を備える。該ナットはY軸ボール螺子に螺合する。Y軸モータ54がY軸ボール螺子を回転すると、Y軸テーブル12はナットと共にY軸レールに沿って移動する。つまり、Y軸移動機構はY軸テーブル12をY軸方向に移動可能に支持する。 The table device 10 includes a Y-axis movement mechanism (not shown), a Y-axis table 12, an X-axis movement mechanism (not shown), a table 13, and the like. The Y-axis movement mechanism is provided on the front side of the upper surface of the base 2, and includes a Y-axis rail, a Y-axis ball screw, a Y-axis motor 54 (see FIG. 2), and the like. The Y-axis rail and the Y-axis ball screw extend in the Y-axis direction. The Y-axis rail guides the Y-axis table 12 on the upper surface in the Y-axis direction. The Y-axis table 12 is formed in a substantially rectangular parallelepiped shape, and has a nut (not shown) on the bottom outer surface. The nut threads onto the Y-axis ball screw. When the Y-axis motor 54 rotates the Y-axis ball screw, the Y-axis table 12 moves along the Y-axis rail together with the nut. That is, the Y-axis moving mechanism supports the Y-axis table 12 so as to be movable in the Y-axis direction.

X軸移動機構は、Y軸テーブル12の上面に設けられ、X軸レール(図示略)、X軸ボール螺子(図示略)、X軸モータ53(図2参照)等を備える。X軸レールとX軸ボール螺子はX軸方向に延びる。テーブル13は平面視矩形板状に形成され、Y軸テーブル12の上面に設けられる。テーブル13は底部にナット(図示略)を備える。該ナットはX軸ボール螺子に螺合する。X軸モータ53がX軸ボール螺子を回転すると、テーブル13はナットと共にX軸レールに沿って移動する。つまり、X軸移動機構はテーブル13をX軸方向に移動可能に支持する。テーブル13は、Y軸移動機構、Y軸テーブル12、X軸移動機構により、基台2上をX軸方向とY軸方向に移動する。 The X-axis movement mechanism is provided on the upper surface of the Y-axis table 12 and includes an X-axis rail (not shown), an X-axis ball screw (not shown), an X-axis motor 53 (see FIG. 2), and the like. The X-axis rail and the X-axis ball screw extend in the X-axis direction. The table 13 is formed in a rectangular plate shape in plan view, and is provided on the upper surface of the Y-axis table 12 . The table 13 has a nut (not shown) on its bottom. The nut screws onto the X-axis ball screw. When the X-axis motor 53 rotates the X-axis ball screw, the table 13 moves along the X-axis rail together with the nut. That is, the X-axis moving mechanism supports the table 13 so as to be movable in the X-axis direction. The table 13 is moved on the base 2 in the X-axis direction and the Y-axis direction by the Y-axis movement mechanism, the Y-axis table 12, and the X-axis movement mechanism.

工具交換装置20は主軸ヘッド7の前側に設けられ、円盤型の工具マガジン21を備える。工具マガジン21は、外周に複数の工具(図示略)を放射状に保持する。工具交換装置20は、マガジンモータ55(図2参照)により工具マガジン21を駆動し、工具交換指令が指示する工具4を工具交換位置に位置決めする。工具交換位置は工具マガジン21の最下部位置である。工具交換装置20は、主軸9に装着する工具4と工具マガジン21に取り付けられた工具とを、主軸ヘッド7の上昇、工具マガジン21の回転、主軸ヘッド7の下降の一連の動作により入れ替え交換する。 A tool changer 20 is provided on the front side of the spindle head 7 and has a disk-shaped tool magazine 21 . The tool magazine 21 radially holds a plurality of tools (not shown) on its outer periphery. The tool changer 20 drives the tool magazine 21 by means of the magazine motor 55 (see FIG. 2), and positions the tool 4 designated by the tool change command at the tool change position. The tool changing position is the lowest position of the tool magazine 21 . The tool changer 20 replaces the tool 4 mounted on the spindle 9 and the tool attached to the tool magazine 21 by a series of operations of raising the spindle head 7, rotating the tool magazine 21, and lowering the spindle head 7. .

制御箱6は、数値制御装置30(図2参照)を格納する。数値制御装置30は、工作機械1に設けられたZ軸モータ51、主軸モータ52、X軸モータ53、Y軸モータ54(図2参照)を夫々制御し、テーブル13及び工具4を、X軸方向、Y軸方向、Z軸方向に沿って相対移動させる。この場合、テーブル13上に固定した被削材3と主軸9に装着した工具4は相対移動し、各種加工を被削材3に施す。各種加工とは、ドリル、タップ等を用いた穴空け加工、エンドミル、フライス等を用いた側面加工等である。 The control box 6 houses a numerical controller 30 (see FIG. 2). The numerical controller 30 controls a Z-axis motor 51, a spindle motor 52, an X-axis motor 53, and a Y-axis motor 54 (see FIG. 2) provided in the machine tool 1, and controls the table 13 and the tool 4 along the X-axis. direction, the Y-axis direction, and the Z-axis direction. In this case, the workpiece 3 fixed on the table 13 and the tool 4 mounted on the spindle 9 are moved relative to each other, and the workpiece 3 is subjected to various machining operations. The various types of processing include drilling using a drill, tap, or the like, and side surface processing using an end mill, milling cutter, or the like.

操作パネル15(図2参照)は、例えば工作機械1を覆うカバー(図示略)の外壁に設ける。操作パネル15は入力部16と表示部17(図2参照)を備える。入力部16は各種情報、操作指示等の入力を受け付け、数値制御装置30に出力する。表示部17は数値制御装置30からの指令に基づき、各種画面を表示する。 The operation panel 15 (see FIG. 2) is provided on the outer wall of a cover (not shown) that covers the machine tool 1, for example. The operation panel 15 includes an input section 16 and a display section 17 (see FIG. 2). The input unit 16 receives inputs such as various information and operation instructions, and outputs them to the numerical controller 30 . The display unit 17 displays various screens based on commands from the numerical controller 30 .

<電気的構成>
図2を参照し、数値制御装置30と工作機械1の電気的構成を説明する。数値制御装置30と工作機械1は、CPU31、ROM32、RAM33、記憶装置34、入出力部35、駆動回路51A~55A等を備える。CPU31は数値制御装置30を統括制御する。ROM32は、主プログラム等を記憶する。主プログラムは、主処理(図18、図19参照)を実行する為のプログラムである。主処理は、NCプログラムから一行ずつ読み込んで各種動作を実行する。NCプログラムは、工具交換指令を含む各種制御指令を含む複数行で構成する。NCプログラムの制御指令は、工作機械1の基台2及び主軸9に装着した工具4の軸移動、工具交換等を含む各種動作を行単位で制御する。RAM33は各種情報を一時的に記憶する。記憶装置34は不揮発性であり、NCプログラム、各種情報を記憶する。CPU31は作業者が操作パネル15の入力部16を介して入力したNCプログラムに加え、外部入力で読み込んだNCプログラム等を記憶装置34に記憶できる。
<Electrical configuration>
The electrical configuration of the numerical controller 30 and the machine tool 1 will be described with reference to FIG. The numerical control device 30 and the machine tool 1 are provided with a CPU 31, a ROM 32, a RAM 33, a storage device 34, an input/output section 35, drive circuits 51A to 55A, and the like. The CPU 31 centrally controls the numerical control device 30 . The ROM 32 stores main programs and the like. The main program is a program for executing main processing (see FIGS. 18 and 19). The main process reads the NC program line by line and executes various operations. The NC program consists of multiple lines containing various control commands including tool change commands. The control command of the NC program controls various operations, including axis movement of the tool 4 mounted on the base 2 and the spindle 9 of the machine tool 1, tool exchange, etc., line by line. The RAM 33 temporarily stores various information. The storage device 34 is non-volatile and stores NC programs and various information. The CPU 31 can store, in the storage device 34, an NC program that is input by the operator via the input unit 16 of the operation panel 15, as well as an NC program that is read from an external input.

駆動回路51Aは、Z軸モータ51とエンコーダ51Bに接続する。駆動回路52Aは主軸モータ52とエンコーダ52Bに接続する。駆動回路53AはX軸モータ53とエンコーダ53Bに接続する。駆動回路54AはY軸モータ54とエンコーダ54Bに接続する。駆動回路55Aはマガジンモータ55とエンコーダ55Bに接続する。Z軸モータ51、主軸モータ52、X軸モータ53、Y軸モータ54、マガジンモータ55は、何れもサーボモータである。駆動回路51A~55AはCPU31から指令を受け、対応するモータ51~55に駆動電流を夫々出力する。駆動回路51A~55Aはエンコーダ51B~55Bからフィードバック信号を受け、位置と速度のフィードバック制御を行う。入出力部35は操作パネル15の入力部16と表示部17に夫々接続する。以下、モータ51~55を総称する時、モータ50という。駆動回路51A~55Aを総称する時、駆動回路50Aという。 The drive circuit 51A is connected to the Z-axis motor 51 and the encoder 51B. Drive circuit 52A is connected to spindle motor 52 and encoder 52B. The drive circuit 53A is connected to the X-axis motor 53 and the encoder 53B. Drive circuit 54A is connected to Y-axis motor 54 and encoder 54B. The drive circuit 55A is connected to the magazine motor 55 and the encoder 55B. The Z-axis motor 51, the main shaft motor 52, the X-axis motor 53, the Y-axis motor 54, and the magazine motor 55 are all servo motors. The drive circuits 51A-55A receive commands from the CPU 31 and output drive currents to the corresponding motors 51-55, respectively. The drive circuits 51A to 55A receive feedback signals from the encoders 51B to 55B and perform position and speed feedback control. The input/output unit 35 is connected to the input unit 16 and the display unit 17 of the operation panel 15, respectively. Hereinafter, when the motors 51 to 55 are collectively referred to as the motor 50 . When collectively referring to the drive circuits 51A to 55A, the drive circuit 50A is used.

<指令軌跡の補正方法の概要>
数値制御装置30では、基台2及び工具4(以下、「制御対象」という。)の移動時における加速度が、工作機械1において対応可能な上限値を超えないようにする必要がある。上限値を超えないようにする為の方法の一例として、NCプログラムの制御指令のうち制御対象を移動させる為の位置指令を、加減速フィルタにより平滑化して加速度を制限する方法がある。この方法が用いられた場合、制御対象の移動軌跡のうち変化が急峻な部分が滑らかになる。一般的に、加減速フィルタとして、多段の移動平均フィルタが用いられる。
<Outline of Correction Method for Command Trajectory>
In the numerical controller 30, it is necessary that the acceleration during movement of the base 2 and the tool 4 (hereinafter referred to as "controlled object") does not exceed the upper limit value that the machine tool 1 can handle. As an example of a method for preventing the upper limit value from being exceeded, there is a method in which the position command for moving the controlled object among the control commands of the NC program is smoothed by an acceleration/deceleration filter to limit the acceleration. When this method is used, portions of the movement trajectory of the controlled object that change steeply are smoothed. Generally, a multistage moving average filter is used as the acceleration/deceleration filter.

なお、移動平均フィルタは、特定の周波数成分を除去できるという特性を有する。このため、工作機械1の共振周波数を除去するように移動平均フィルタを調整することにより、工作機械1の振動を抑制する方法も提案されている。 Note that the moving average filter has the characteristic of being able to remove specific frequency components. For this reason, a method of suppressing the vibration of the machine tool 1 by adjusting a moving average filter so as to remove the resonance frequency of the machine tool 1 has also been proposed.

一方、加減速フィルタにより位置指令を平滑化した場合、元の位置指令に応じた移動軌跡(以下、「指令軌跡」という。)に対して加減速フィルタを適用した後の移動軌跡(以下、「フィルタ軌跡」という。)がずれ、誤差が生じる場合がある。図3(A)に示すように、例えば、指令軌跡Gc(1)のうち直線コーナ部分Cs、Ctで、対応するフィルタ軌跡Gf(1)が内側に配置されたり(矢印Ys、Yt)、指令軌跡Gc(1)のうち円弧部分Cuの半径よりも、対応するフィルタ軌跡Gf(1)の半径の方が小さくなったりする(矢印Yu)。 On the other hand, when the position command is smoothed by the acceleration/deceleration filter, the movement trajectory according to the original position command (hereinafter referred to as the "command trajectory") after applying the acceleration/deceleration filter (referred to as "filter trajectory") may deviate, resulting in an error. As shown in FIG. 3A, for example, at the straight corner portions Cs and Ct of the commanded trajectory Gc(1), the corresponding filter trajectory Gf(1) is arranged inside (arrows Ys, Yt), or the commanded The radius of the corresponding filter locus Gf(1) may be smaller than the radius of the arc portion Cu of the locus Gc(1) (arrow Yu).

これに対し、数値制御装置30は、以下に示す方法で指令軌跡Gc(1)を補正する。はじめに、数値制御装置30は、指令軌跡Gc(1)上の複数の点(以下、夫々を「基点」という。)と、基点に対応するフィルタ軌跡Gf(1)上の点(以下、夫々を「対応点」という。)を決定する。次に、数値制御装置30は、基点の夫々から、対応する対応点までの距離と方向とを示す誤差ベクトルを、基点毎に算出する。次に数値制御装置30は、算出した誤差ベクトルに対応する補正ゲインを、基点毎に算出する。 In response to this, numerical control device 30 corrects command locus Gc(1) in the following manner. First, the numerical controller 30 detects a plurality of points on the command trajectory Gc(1) (hereinafter each referred to as "base points") and points on the filter trajectory Gf(1) corresponding to the base points (hereinafter each referred to as "base points"). (referred to as "corresponding points"). Next, the numerical controller 30 calculates, for each base point, an error vector indicating the distance and direction from each base point to the corresponding corresponding point. Next, the numerical controller 30 calculates correction gains corresponding to the calculated error vectors for each base point.

次に数値制御装置30は、誤差ベクトルと補正ゲインとに基づき、指令軌跡Gc(1)とフィルタ軌跡Gf(1)との間の誤差が相殺される向きに基点を移動させる(矢印Zs、Zt、Zu、図3(B)参照)ことで、指令軌跡Gc(1)を補正する。図3(B)に示すように、補正後の指令軌跡Gc(1)である補正軌跡Gh(1)は、フィルタ軌跡Gf(1)に対して指令軌跡Gc(1)と反対側に配置される。指令軌跡Gc(1)に対する補正軌跡Gh(1)の移動方向は、誤差ベクトルと反対方向を向く。指令軌跡Gc(1)に対する補正軌跡Gh(1)の移動量は、補正ゲインにより規定される。 Next, based on the error vector and the correction gain, the numerical controller 30 moves the base point in the direction in which the error between the command locus Gc(1) and the filter locus Gf(1) is canceled (arrows Zs, Zt , Zu, see FIG. 3B) to correct the command locus Gc(1). As shown in FIG. 3B, the corrected trajectory Gh(1), which is the corrected command trajectory Gc(1), is arranged on the opposite side of the filter trajectory Gf(1) from the command trajectory Gc(1). be. The moving direction of the correction trajectory Gh(1) with respect to the command trajectory Gc(1) is opposite to the error vector. The amount of movement of the correction trajectory Gh(1) with respect to the command trajectory Gc(1) is defined by the correction gain.

数値制御装置30は、補正軌跡Gh(1)に沿って制御対象を移動させる為の移動指令に対し、加減速フィルタによりフィルタリング処理を実行する。図3(B)において、フィルタリング処理後の軌跡は、フィルタ軌跡Gf(1)´として示されている。フィルタ軌跡Gf(1)´は、制御対象が実際に移動する移動軌跡に対応する。フィルタ軌跡Gf(1)´は、この場合、指令軌跡Gc(1)の直線コーナ部分Cs、Ctの前後の位置で、指令軌跡Gc(1)よりも僅かに外側に配置される。しかし、指令軌跡Gc(1)とフィルタ軌跡Gf(1)´との間の誤差は、指令軌跡Gc(1)とフィルタ軌跡Gf(1)との間の誤差と比べて大幅に減少する。更に、フィルタ軌跡Gf(1)´は、指令軌跡Gc(1)の円弧部分Cuに対応する位置で、指令軌跡Gc(1)との誤差を略0にできる。 The numerical controller 30 performs filtering processing using an acceleration/deceleration filter for a movement command for moving the controlled object along the corrected locus Gh(1). In FIG. 3B, the trajectory after filtering is indicated as filtered trajectory Gf(1)'. The filter trajectory Gf(1)' corresponds to the movement trajectory along which the controlled object actually moves. In this case, the filter trajectory Gf(1)' is positioned slightly outside the command trajectory Gc(1) at positions before and after the straight corner portions Cs and Ct of the command trajectory Gc(1). However, the error between the commanded trajectory Gc(1) and the filtered trajectory Gf(1)' is significantly reduced compared to the error between the commanded trajectory Gc(1) and the filtered trajectory Gf(1). Furthermore, the filter trajectory Gf(1)' is at a position corresponding to the arc portion Cu of the command trajectory Gc(1), and the error from the command trajectory Gc(1) can be made substantially zero.

なお、上記の方法は、指令軌跡Gc(1)の基点の位置を補正するのみであり、制御対象の移動速度を減速させない。従って、制御対象の移動時におけるサイクルタイムを増加させずに、指令軌跡Gc(1)とフィルタ軌跡Gf(1)´との誤差を抑制できる。 Note that the above method only corrects the position of the base point of the command locus Gc(1), and does not reduce the moving speed of the controlled object. Therefore, the error between the command locus Gc(1) and the filter locus Gf(1)' can be suppressed without increasing the cycle time during movement of the controlled object.

<対応点の決定方法>
上記のように、指令軌跡Gcを補正する為には、誤差ベクトルが必要である。誤差ベクトルは、方向と大きさとを示す。以下、図4、図5に示す指令軌跡Gc(2)を例に挙げ、誤差ベクトルを算出する具体的な方法を説明する。指令軌跡Gc(2)は、原点(0,0)から反時計回りに1周する。加減速フィルタとして、一般的な移動平均フィルタが2段使用される。図5において、加減速フィルタを適用した後の指令軌跡Gc(2)であるフィルタ軌跡Gf(2)を、破線で示す。
<How to determine corresponding points>
As described above, an error vector is required to correct the commanded trajectory Gc. The error vector indicates direction and magnitude. A specific method for calculating the error vector will be described below using the command locus Gc(2) shown in FIGS. 4 and 5 as an example. The command trajectory Gc(2) makes one round counterclockwise from the origin (0, 0). As the acceleration/deceleration filter, two stages of general moving average filters are used. In FIG. 5, the broken line indicates the filter locus Gf(2), which is the command locus Gc(2) after applying the acceleration/deceleration filter.

指令軌跡Gc(2)とフィルタ軌跡Gf(2)との間の誤差は、指令軌跡Gc(2)上の基点と、対応するフィルタ軌跡Gf(2)上の対応点との間の距離で示される。このため、指令軌跡Gc(2)上の基点に対応するフィルタ軌跡Gf(2)上の対応点をどのように決定するかが重要となる。 The error between the command trajectory Gc(2) and the filter trajectory Gf(2) is indicated by the distance between the base point on the command trajectory Gc(2) and the corresponding point on the corresponding filter trajectory Gf(2). be Therefore, how to determine the corresponding point on the filter locus Gf(2) corresponding to the base point on the command locus Gc(2) is important.

図5(A)は、図4の範囲W1において、フィルタ軌跡Gf(2)上に配置された対応点と、この対応点に対して最短距離に設定された指令軌跡Gc(2)上の基点とが対応付けられた場合を示す。この場合、基点から対応点に向かう誤差ベクトルの方向は、指令軌跡Gc(2)の直線コーナ部分Caの前後で急激に変化する。又、直線コーナ部分Caの近傍に基点が存在しなくなり、誤差ベクトルも存在しなくなる。一方、直線コーナ部分Caにおいて指令軌跡Gc(2)との誤差が小さくなるよう補正するためには,指令軌跡Gc(2)の直線コーナ部分Caの近傍にも誤差ベクトルが設定される必要がある。このため、この方法により算出される誤差ベクトルは不適切であることになる。 FIG. 5A shows corresponding points arranged on the filter trajectory Gf(2) in the range W1 of FIG. and are associated with each other. In this case, the direction of the error vector directed from the base point to the corresponding point abruptly changes before and after the straight corner portion Ca of the command locus Gc(2). Further, there is no reference point near the straight corner portion Ca, and no error vector exists. On the other hand, in order to correct so that the error from the command locus Gc(2) is small at the straight corner portion Ca, it is necessary to set an error vector also in the vicinity of the straight corner portion Ca of the command locus Gc(2). . Therefore, the error vector calculated by this method is inappropriate.

図5(B)(C)は、図4の範囲W2、W3において、指令軌跡Gc(2)上に等間隔に配置した基点と、この基点に対して最短距離に設定されたフィルタ軌跡Gf(2)上の対応点とが対応付けられた場合を示す。この場合、図5(B)に示すように、範囲W2において、Gc(2)のコーナ部分CbはGf(2)のコーナ部分と対応付けられており、基点から対応点に向かう誤差ベクトルは適切に求められることがわかる。一方、図5(C)に示すように、範囲W3においては、基点から対応点に向かう誤差ベクトルの方向が急激に変化する部分が生じる。この理由は、指令軌跡Gc(2)上の基点に対する対応点が、フィルタ軌跡Gf(2)のうちコーナ部分Cb(図5(B)参照)よりも前の部分と後の部分とに設定される為である。このため、この方法により算出される誤差ベクトルも不適切であることになる。 5(B) and (C) show, in the ranges W2 and W3 in FIG. 2) Shows the case where the above corresponding points are associated. In this case, as shown in FIG. 5B, in the range W2, the corner portion Cb of Gc(2) is associated with the corner portion of Gf(2), and the error vector from the base point to the corresponding point is appropriate. It can be seen that it is required for On the other hand, as shown in FIG. 5C, in range W3, there is a portion where the direction of the error vector from the base point to the corresponding point changes abruptly. The reason for this is that the points corresponding to the base point on the command locus Gc(2) are set at the portions before and after the corner portion Cb (see FIG. 5(B)) of the filter locus Gf(2). This is because Therefore, the error vector calculated by this method is also inappropriate.

誤差ベクトルに基づき指令軌跡Gcを精度よく補正する為には、指令軌跡Gc上の基点に対応するフィルタ軌跡Gf上の対応点を適切に算出することが必要となる。本実施形態では、以下に示す方法でフィルタ軌跡Gf上の対応点を算出する。 In order to accurately correct the command trajectory Gc based on the error vector, it is necessary to appropriately calculate the corresponding points on the filter trajectory Gf corresponding to the base points on the command trajectory Gc. In this embodiment, corresponding points on the filter trajectory Gf are calculated by the following method.

指令軌跡Gcとして、単純な一次元の直線軌跡を想定する。この場合、指令軌跡Gcとフィルタ軌跡Gfとで形状が一致する。従って、指令軌跡Gcとフィルタ軌跡Gfとの間の誤差は0になる。又、指令軌跡Gc上の基点と、この基点に対応するフィルタ軌跡Gf上の対応点とで、位置は一致するべきである。なお、指令軌跡Gcとして一次元の直線軌跡を想定した為、位置が一致するということは、指令軌跡Gcの開始点からの距離が一致することと等しい。つまり、本手法では、開始点からの距離が一致する対応点を特定することで、精度良く誤差を計算する。又、指令軌跡Gc上の基点の夫々に対し、フィルタ軌跡Gf上の対応点が一つずつ対応することになる。 A simple one-dimensional linear trajectory is assumed as the command trajectory Gc. In this case, the command locus Gc and the filter locus Gf match in shape. Therefore, the error between the command locus Gc and the filter locus Gf becomes zero. Also, the base point on the command locus Gc and the corresponding point on the filter locus Gf corresponding to this base point should coincide in position. Since a one-dimensional linear trajectory is assumed as the command trajectory Gc, matching the positions is equivalent to matching the distance from the starting point of the command trajectory Gc. In other words, in this method, the error is calculated with high accuracy by specifying corresponding points having the same distance from the starting point. Also, one corresponding point on the filter locus Gf corresponds to each base point on the command locus Gc.

上記の考え方を、指令軌跡Gcが多次元の軌跡である場合に適用する。ここで図6に示すように、指令軌跡Gcの直線コーナ部分Cにおいて、フィルタ軌跡Gfは内側に配置され、フィルタ軌跡Gfの距離が短くなる。このため、指令軌跡Gc上の開始点からの距離を、そのままフィルタ軌跡Gfに適用させることができない。そこで本手法では、指令軌跡Gcの接線方向の移動のみを考慮した、一次元方向に移動する仮想的な直線軌跡を想定する。図7に示すように、この一次元指令軌跡Dcに対して一次元フィルタ軌跡Dfを生成し、一次元指令軌跡Dcにおける開始点からの距離を一次元フィルタ軌跡Dfにそのまま適用する。 The above concept is applied when the commanded trajectory Gc is a multi-dimensional trajectory. Here, as shown in FIG. 6, at the straight corner portion C of the command trajectory Gc, the filter trajectory Gf is arranged inside, and the distance of the filter trajectory Gf is shortened. Therefore, the distance from the starting point on the command locus Gc cannot be directly applied to the filter locus Gf. Therefore, in this method, a virtual linear trajectory that moves in a one-dimensional direction is assumed, considering only the movement in the tangential direction of the commanded trajectory Gc. As shown in FIG. 7, a one-dimensional filter trajectory Df is generated for this one-dimensional command trajectory Dc, and the distance from the starting point in the one-dimensional command trajectory Dc is directly applied to the one-dimensional filter trajectory Df.

図6に示すように、指令軌跡Gc上の基点pは、指令軌跡Gcの開始点から終了点までの間の部分を補間することにより決定される。補間は、指令軌跡Gcの開始点から移動を開始した仮想点が、補間周期毎に通過する位置の夫々を基点pとして決定することにより実行される。指令軌跡Gcのうち、開始点から周期的に決定されるi番目の基点をpと表記し、pにおける接線方向の移動距離(開始点からの距離)を、sと表記する。同様に、フィルタ軌跡Gfの開始点から移動を開始した仮想点が補間周期毎に通過する位置の夫々のうち、j番目に通過する点を、サーカムフレックス付きのpと表記する。 As shown in FIG. 6, the base point p on the commanded trajectory Gc is determined by interpolating the portion between the start point and the end point of the commanded trajectory Gc. Interpolation is performed by determining, as base points p, the positions that a virtual point that starts moving from the starting point of the command locus Gc passes through in each interpolation cycle. In the command trajectory Gc, the i-th base point periodically determined from the starting point is denoted by pi , and the tangential movement distance (distance from the starting point) at pi is denoted by si . Similarly, of the positions through which the virtual point that started moving from the starting point of the filter locus Gf passes in each interpolation cycle, the j-th point is denoted as pj with circumflex.

一方で、図7に示すように、一次元指令軌跡Dcのうち、開始点から周期的に決定されるi番目の基点も、その開始点からの移動距離はsとなる。なぜなら、一次元指令軌跡Dcは、指令軌跡Gcの接線方向の移動のみを考慮した、一次元方向に移動する仮想的な直線軌跡であり、各軌跡の各開始点から同時に移動を開始した仮想点の移動距離は常に等しいからである。上記と同様に、一次元フィルタ軌跡Dfの開始点から移動を開始した仮想点が補間周期毎に通過する位置の夫々のうち、j番目に通過する点を、サーカムフレックス付きのsと表記する。 On the other hand, as shown in FIG. 7, the i-th base point periodically determined from the starting point in the one-dimensional command trajectory Dc also has a moving distance of si from the starting point. This is because the one-dimensional command trajectory Dc is a virtual linear trajectory that moves in a one-dimensional direction, considering only the movement in the tangential direction of the command trajectory Gc. is always equal. Similarly to the above, of the positions through which the virtual point that started moving from the starting point of the one-dimensional filter trajectory Df passes in each interpolation cycle, the j-th point is denoted as s j with circumflex. .

図8、図9に示すように、指令軌跡Gcまたは一次元指令軌跡Dcにおけるi番目のsが、一次元フィルタ軌跡Dfにおけるj番目の^sとj+1番目の^sj+1との間に存在する場合、以下の式(1-1)の関係を満たす。

Figure 2023122566000002
As shown in FIGS. 8 and 9, the i- th si on the command trajectory Gc or the one-dimensional command trajectory Dc is between the j-th ^s j and the j+1-th ^s j+1 on the one-dimensional filter trajectory Df. If it exists, it satisfies the relationship of the following formula (1-1).
Figure 2023122566000002

補間周期を数msec以下とした場合、補間周期ごとの移動速度は一定と考えても問題ない。このため,式(1-1)の関係を満たすjを用いた場合、指令軌跡Gcの基点pに対応するフィルタ軌跡Gfの対応点^(pj+u)は、以下の式(1-2)(1-3)に示すように算出できる。

Figure 2023122566000003
Figure 2023122566000004
なお、式(1-3)で示されるuは、^sと^sj+1との内分点に対応する係数(以降、「内分係数」と呼ぶ)である。つまり、指令軌跡Gcのi番目の基点pは、フィルタ軌跡Gfのj+u番目の対応点^(pj+u)に対応し、その関係が式(1-2)で示されているということができる。 If the interpolation period is set to several milliseconds or less, there is no problem even if the moving speed is constant for each interpolation period. Therefore, when j that satisfies the relationship of formula (1-1) is used, the corresponding point ^(p j+u ) of the filter trajectory Gf corresponding to the base point p i of the command trajectory Gc is given by the following formula (1-2) It can be calculated as shown in (1-3).
Figure 2023122566000003
Figure 2023122566000004
Note that u in equation (1-3) is a coefficient (hereinafter referred to as an "internal division coefficient") corresponding to the point of internal division between ̂s j and ̂s j+1 . That is, it can be said that the i-th base point p i of the command trajectory Gc corresponds to the j+u-th corresponding point ^(p j+u ) of the filter trajectory Gf, and the relationship therebetween is expressed by equation (1-2). .

指令軌跡Gcまたは一次元指令軌跡Dcのs、及び、一次元フィルタ軌跡Dfの^sは、加減速フィルタとして移動平均フィルタが用いられる場合、式(1-4)(1-5)により示すことができる。なお、指令軌跡Gcまたは一次元指令軌跡Dcにおいて補間周期を「T」と表記し、開始点から終了点まで移動する仮想点のk番目の補間周期での速度を「F」と表記し、m番目の加減速フィルタの時定数を「τ」と表記し、加減速フィルタフィルタの段数を「M」と表記する。

Figure 2023122566000005
Figure 2023122566000006
s i of the command trajectory Gc or the one-dimensional command trajectory Dc, and ^s j of the one-dimensional filter trajectory Df are given by equations (1-4) and (1-5) when a moving average filter is used as the acceleration/deceleration filter. can be shown. In the command trajectory Gc or the one-dimensional command trajectory Dc, the interpolation cycle is denoted as "T s ", and the speed of the virtual point moving from the start point to the end point in the k-th interpolation cycle is denoted as "F k ". , the time constant of the m-th acceleration/deceleration filter is expressed as "τ m ", and the number of stages of the acceleration/deceleration filter is expressed as "M".
Figure 2023122566000005
Figure 2023122566000006

式(1-4)(1-5)に式(1-1)~(1-3)を代入し,jとuについて解くことで、指令軌跡Gcの基点pに対応するフィルタ軌跡Gf上の対応点^(pj+u)を求めることもできる。しかし、一般には、式(1-4)(1-5)でも示されるように、加減速フィルタは複数用いられる。また、微小ブロックの連続による軌跡も多く、速度が複雑に変化する場合がある。このため,解析的にjとuを解くことは難しい。従って本実施形態では、一次元指令軌跡および一次元フィルタ軌跡を利用し、式(1-1)~(1-3)から数値的に対応点を探索する。 By substituting equations (1-1) to (1-3) into equations (1-4) and (1-5) and solving for j and u , we obtain It is also possible to obtain the corresponding point ^(pj +u ). However, in general, a plurality of acceleration/deceleration filters are used as shown in equations (1-4) and (1-5). In addition, there are many trajectories due to continuation of minute blocks, and the speed may change in a complicated manner. Therefore, it is difficult to solve for j and u analytically. Therefore, in this embodiment, the one-dimensional command trajectory and the one-dimensional filter trajectory are used to numerically search for corresponding points from equations (1-1) to (1-3).

図10は、式(1-1)~(1-3)に基づいて基点pに対する対応点^(pj+u)を決定した場合の誤差ベクトルを示す。図10(A)に示すように、範囲W1において、直線コーナ部分Caの前後での誤差ベクトルの方向の急激な変化は見られず、且つ、直線コーナ部分Caの基点に対しても適切な誤差ベクトルが求められている。又、図10(C)に示すように、範囲W3において、指令軌跡Gc(2)の基点に対する対応点は、フィルタ軌跡Gf(2)のうちコーナ部分Cb(図10(B)参照)よりも後の部分に設定され、誤差ベクトルの急激な変化は見られない。従って、式(1-1)~(1-3)に基づいて基点p及び対応点^(pj+u)を決定することにより、指令軌跡Gcを補正する為の誤差ベクトルを適切に決定できることが分かる。 FIG. 10 shows the error vector when the corresponding point ^(p j+u ) for the base point p i is determined based on equations (1-1) to (1-3). As shown in FIG. 10A, in the range W1, there is no abrupt change in the direction of the error vector before and after the straight corner portion Ca. A vector is wanted. Further, as shown in FIG. 10(C), in the range W3, the point corresponding to the base point of the command locus Gc(2) is closer to the corner portion Cb (see FIG. 10(B)) of the filter locus Gf(2). It is set in the later part and no abrupt change in the error vector is seen. Therefore, by determining the reference point p i and the corresponding point ^(p j+u ) based on the equations (1-1) to (1-3), it is possible to appropriately determine the error vector for correcting the commanded trajectory Gc. I understand.

<円弧状の指令軌跡に対する補正>
次に,単純な形状を有する指令軌跡Gcとフィルタ軌跡Gfとの誤差について説明する。まず、単純な円弧状の指令軌跡Gcを想定する。指令軌跡Gcの半径は、加減速フィルタを適用することにより収縮する。指令軌跡Gcに対するフィルタ軌跡Gfの半径の収縮量は、加減速フィルタの周波数特性から求めることができる。円弧状の指令軌跡GcのX,Y座標は、以下の式(2-1)で示されるように単一の周波数成分の運動として記述できる。なお、円弧の半径をRと表記し、角速度をωと表記し、時刻をtと表記する。

Figure 2023122566000007
<Correction for circular command locus>
Next, the error between the command trajectory Gc having a simple shape and the filtered trajectory Gf will be described. First, a simple arcuate command locus Gc is assumed. The radius of the commanded trajectory Gc is contracted by applying the acceleration/deceleration filter. The amount of contraction of the radius of the filter trajectory Gf with respect to the command trajectory Gc can be obtained from the frequency characteristics of the acceleration/deceleration filter. The X, Y coordinates of the arcuate command trajectory Gc can be described as motion of a single frequency component as shown in the following equation (2-1). Note that the radius of the arc is denoted as R, the angular velocity is denoted as ω, and the time is denoted as t.
Figure 2023122566000007

従って、(x,y)に加減速フィルタを適用したときのX座標^x、Y座標^yは、単純に加減速フィルタの周波数特性(ゲインH(ω),位相Φ(ω))の影響を受け、以下の式(2-2)ように変化する。

Figure 2023122566000008
Therefore, when the acceleration/deceleration filter is applied to (x, y), the X coordinate ^x and the Y coordinate ^y are simply influenced by the frequency characteristics (gain H(ω), phase Φ(ω)) of the acceleration/deceleration filter. , and changes as shown in the following formula (2-2).
Figure 2023122566000008

従って、円弧の半径の収縮量dは、位相のずれとは関係なく、以下の式(2-3)で示される。

Figure 2023122566000009
Therefore, the contraction amount d R of the arc radius is given by the following equation (2-3) regardless of the phase shift.
Figure 2023122566000009

図11(A)は、単純な円弧状の指令軌跡Gc(3)及びフィルタ軌跡Gf(3)を示す。指令軌跡Gc(3)上の基点の夫々から、対応するフィルタ軌跡Gf(3)上の対応点に向けて延びる誤差ベクトルεは、指令軌跡Gc(3)及びフィルタ軌跡Gf(3)の中心を基準とした半径方向に沿って延びることが確認できる。つまり、誤差ベクトルεの大きさは、指令軌跡Gc(3)に対するフィルタ軌跡Gf(3)の半径の収縮量dと一致する。 FIG. 11A shows a simple circular command locus Gc(3) and filter locus Gf(3). The error vector ε extending from each base point on the command trajectory Gc(3) toward the corresponding point on the corresponding filter trajectory Gf(3) is the center of the command trajectory Gc(3) and the filter trajectory Gf(3). It can be confirmed that it extends along the reference radial direction. That is, the magnitude of the error vector ε matches the contraction amount dR of the radius of the filter trajectory Gf(3) with respect to the command trajectory Gc(3).

補正ゲインkを、誤差ベクトルεと反対方向を向くベクトル-εに乗算することで得られるパラメータ(以下、「補正ベクトル」という。)-kεを定義する。そして、算出した補正ベクトル-kεに基づき、円弧状の指令軌跡Gcの半径が拡大するように指令軌跡Gc(3)を補正する。そして、補正後の指令軌跡Gc(3)である補正軌跡Gh(3)に対し、加減速フィルタによりフィルタリング処理を行う。これにより、元の指令軌跡Gcと、補正軌跡Gh(3)に対してフィルタリング処理を行った後のフィルタ軌跡Gf´との誤差を小さくできる。 A parameter (hereinafter referred to as “correction vector”) −kε obtained by multiplying the correction gain k by the vector −ε pointing in the opposite direction to the error vector ε is defined. Then, based on the calculated correction vector -kε, the commanded trajectory Gc(3) is corrected so that the radius of the arc-shaped commanded trajectory Gc is increased. Then, the corrected trajectory Gh(3), which is the commanded trajectory Gc(3) after correction, is filtered by the acceleration/deceleration filter. As a result, the error between the original commanded trajectory Gc and the filtered trajectory Gf' after filtering the corrected trajectory Gh(3) can be reduced.

補正ベクトル-kεにより指令軌跡Gc(3)を補正した補正軌跡Gh(3)に加減速フィルタを適用したフィルタ軌跡Gf(3)´と,元の指令軌跡Gc(3)間の誤差eは、次の式(2-4)により示される。フィルタ軌跡Gf(3)´での角速度を、ω´と表記する。

Figure 2023122566000010
The error e between the filtered trajectory Gf(3)′ obtained by applying the acceleration/deceleration filter to the corrected trajectory Gh(3) obtained by correcting the commanded trajectory Gc(3) using the correction vector −kε and the original commanded trajectory Gc(3) is It is shown by the following formula (2-4). The angular velocity on the filter locus Gf(3)' is expressed as ω'.
Figure 2023122566000010

なお、図11(A)で示されるように、誤差ベクトルεは半径方向に沿って延びるベクトルであり、円周方向の成分は持たない。従って、補正により角速度は変化せず,ω´はωと等しい。このため、式(2-4)は、式(2-5)のように変形できる。

Figure 2023122566000011
Note that, as shown in FIG. 11A, the error vector ε is a vector extending along the radial direction and does not have a component in the circumferential direction. Therefore, the correction does not change the angular velocity and ω' is equal to ω. Therefore, equation (2-4) can be transformed into equation (2-5).
Figure 2023122566000011

実際の運動では,円弧の半径Rは0より大きく,角速度ωは0でない。このため、加減速フィルタのゲインH(ω)は1より小さくなる。従って、補正ゲインk(ω)が次の式(2-6)を満たす場合、誤差eを0にすることができる。

Figure 2023122566000012
In actual motion, the arc radius R is greater than zero and the angular velocity ω is not zero. Therefore, the gain H(ω) of the acceleration/deceleration filter becomes smaller than one. Therefore, the error e can be reduced to 0 when the correction gain k(ω) satisfies the following equation (2-6).
Figure 2023122566000012

図12は、式(2-6)の計算結果の一例を示す。解析条件として、加減速フィルタには2段(M=2)の移動平均フィルタを用い、それらの時定数(τ及びτ)を94msec及び127msecとした。図11(B)は、図12の結果から導出した補正ゲインkにより決定した補正ベクトル-kεにより指令軌跡Gc(3)を補正した場合の補正軌跡Gh(3)を示す。 FIG. 12 shows an example of the calculation result of formula (2-6). As analysis conditions, a two-stage (M=2) moving average filter was used as the acceleration/deceleration filter, and their time constants (τ 1 and τ 2 ) were set to 94 msec and 127 msec. FIG. 11B shows a corrected trajectory Gh(3) obtained by correcting the commanded trajectory Gc(3) with the correction vector −kε determined by the correction gain k derived from the result of FIG.

以上の結果から、円弧状の指令軌跡Gcの場合、補正ベクトル-kεに基づいて指令軌跡Gcを補正することにより、指令軌跡Gcとフィルタ軌跡Gf´との誤差を0にすることができることが分かる。又、補正ベクトル-kεは、指令軌跡Gcとフィルタ軌跡Gfとの間の誤差eと角速度ωとから、簡単に求めることができることが分かる。 From the above results, it can be seen that in the case of the arc-shaped commanded trajectory Gc, the error between the commanded trajectory Gc and the filtered trajectory Gf' can be reduced to 0 by correcting the commanded trajectory Gc based on the correction vector -kε. . Further, it can be seen that the correction vector -kε can be easily obtained from the error e between the command locus Gc and the filter locus Gf and the angular velocity ω.

<指令軌跡の直線コーナ部分Cに対する補正>
次に、指令軌跡Gcのうち単純な直線コーナ部分Cに関し、指令軌跡Gcとフィルタ軌跡Gfとの誤差について説明する。図13(A)に示すように、指令軌跡Gc(4)の直線コーナ部分Cc近傍において、指令軌跡Gc(4)に加減速フィルタを適用したフィルタ軌跡Gf(4)は、指令軌跡Gc(4)に対して内側に配置される。この理由は、指令軌跡Gc(4)に加減速フィルタを適用することにより、加減速フィルタの時定数の範囲にある指令軌跡Gc(4)の点同士が影響し合う為である。フィルタ軌跡Gf(4)のうち指令軌跡Gc(4)に対して内側に配置される部分を通過する時間は、加減速フィルタの時定数と一致する。
<Correction for straight corner portion C of commanded trajectory>
Next, the error between the commanded trajectory Gc and the filter trajectory Gf will be described with respect to the simple straight corner portion C of the commanded trajectory Gc. As shown in FIG. 13A, in the vicinity of the straight corner portion Cc of the command trajectory Gc(4), the filtered trajectory Gf(4) obtained by applying the acceleration/deceleration filter to the command trajectory Gc(4) is the command trajectory Gc(4 ) is placed inside. The reason for this is that applying the acceleration/deceleration filter to the command locus Gc(4) causes the points of the command locus Gc(4) within the range of the time constant of the acceleration/deceleration filter to influence each other. The time taken to pass through a portion of the filter trajectory Gf(4) located inside the command trajectory Gc(4) matches the time constant of the acceleration/deceleration filter.

図13(B)は、指令軌跡Gc(4)とフィルタ軌跡Gf(4)との誤差を抑制する為に用いられる補正ベクトル-kεについて、直線コーナ部分Ccの近傍において補正ゲインkを一律1.5(倍)とした場合を示す。補正軌跡Gh(4)は、直線コーナ部分Ccにおいて指令軌跡Gcに対して外側に配置される。図13(C)は、補正軌跡Gh(4)に加減速フィルタを適用したフィルタ軌跡Gf(4)´を示す。この結果から、指令軌跡Gc(4)の直線コーナ部分Ccにおいて、指令軌跡Gc(4)とフィルタ軌跡Gf(4)´との誤差が、指令軌跡Gc(4)とフィルタ軌跡Gf(4)との間の誤差よりも減少していることが確認できる。 FIG. 13B shows that the correction vector −kε used to suppress the error between the command locus Gc(4) and the filter locus Gf(4) is uniformly set to 1.5 in the vicinity of the straight corner portion Cc. A case of 5 (fold) is shown. Correction trajectory Gh(4) is arranged outside command trajectory Gc at straight corner portion Cc. FIG. 13C shows a filtered trajectory Gf(4)' obtained by applying the acceleration/deceleration filter to the corrected trajectory Gh(4). From this result, at the straight corner portion Cc of the command trajectory Gc(4), the error between the command trajectory Gc(4) and the filter trajectory Gf(4)' is the difference between the command trajectory Gc(4) and the filter trajectory Gf(4) It can be confirmed that the error is smaller than the error between

なお上述のように、加減速フィルタの時定数の範囲にある指令軌跡Gc(4)の点同士は影響し合う。このため、直線コーナ部分Ccの近傍において指令軌跡Gc(4)とフィルタ軌跡Gf(4)とが離隔する部分の開始点Paから終了点Pbまでの指令軌跡Gc(4)を補正することにより、直線コーナ部分Ccの近傍において指令軌跡Gc(4)とフィルタ軌跡Gf(4)´との間の誤差が減少する。又、フィルタ軌跡Gf(4)´は、開始点Pa及び終了点Pbの近傍において、指令軌跡Gc(4)に対して僅かに外側に配置されるが、指令軌跡Gc(4)の直線コーナ部分Ccにおいてフィルタ軌跡Gf(4)´との誤差が大幅に減少する。 As described above, the points of the command locus Gc(4) within the range of the time constant of the acceleration/deceleration filter affect each other. Therefore, by correcting the command trajectory Gc(4) from the start point Pa to the end point Pb of the portion where the command trajectory Gc(4) and the filter trajectory Gf(4) are separated in the vicinity of the straight corner portion Cc, The error between the command locus Gc(4) and the filter locus Gf(4)' decreases in the vicinity of the straight corner portion Cc. Also, the filter locus Gf(4)' is located slightly outside the command locus Gc(4) in the vicinity of the start point Pa and the end point Pb. At Cc, the error from the filter locus Gf(4)' is greatly reduced.

なお、補正ゲインkの大きさに応じ、指令軌跡Gc(4)とフィルタ軌跡Gf(4)´との誤差は変化する。しかし、円弧状の指令軌跡Gc(3)(図11参照)を想定した場合とは異なり、指令軌跡Gc(4)の直線コーナ部分Ccでは、誤差を0とすることが可能な補正ゲインkは存在しない。 Note that the error between the command locus Gc(4) and the filter locus Gf(4)' changes according to the magnitude of the correction gain k. However, unlike the case where the arc-shaped command trajectory Gc(3) (see FIG. 11) is assumed, in the straight corner portion Cc of the command trajectory Gc(4), the correction gain k that can make the error zero is not exist.

従って本実施形態では、直線コーナ部分Cの近傍全体で誤差を減少させる為に、指令軌跡Gcとフィルタ軌跡Gfとの間の面積を用いる。以下、指令軌跡Gcとフィルタ軌跡Gfとの間の面積を、「累積軌跡誤差」という。直線コーナ部分Cc前後で軌跡が離間する部分の開始点Pa及び終了点Pbの近傍で外側に配置されるフィルタ軌跡Gf´と指令軌跡Gcとの誤差が増加する程、累積軌跡誤差も増加する。一方、直線コーナ部分Ccの近傍において指令軌跡Gcとフィルタ軌跡Gf´との差分が減少する程、累積軌跡誤差も減少する。従って、指令軌跡Gcとフィルタ軌跡Gf´との誤差の抑制効果を評価する為に累積軌跡誤差を用いることは、直線コーナ部分Cの近傍全体で誤差を減少させるという目的に適している。 Therefore, in this embodiment, the area between the command locus Gc and the filter locus Gf is used in order to reduce the error in the entire vicinity of the straight corner portion C. FIG. Hereinafter, the area between the commanded trajectory Gc and the filtered trajectory Gf is referred to as "accumulated trajectory error". The accumulated trajectory error increases as the error between the command trajectory Gc and the filter trajectory Gf' placed outside near the start point Pa and the end point Pb of the portion where the trajectories are separated before and after the straight corner portion Cc increases. On the other hand, as the difference between the commanded trajectory Gc and the filtered trajectory Gf' decreases in the vicinity of the straight corner portion Cc, the accumulated trajectory error also decreases. Therefore, using the accumulated trajectory error to evaluate the effect of suppressing the error between the command trajectory Gc and the filter trajectory Gf' is suitable for the purpose of reducing the error in the vicinity of the straight corner portion C as a whole.

ここで、直線コーナ部分Cのなす角度が0度から180度までの範囲で、各基点において一定の補正ゲインkの補正ベクトル-kεで指令軌跡Gcを補正することを想定する。図14は、各角度において、累積軌跡誤差を評価関数として最適な補正ゲインkを導出した結果の一例を示す。解析条件として、加減速フィルタには2段の移動平均フィルタを用い、それらの時定数を94msec及び127msecとした。図14に示すように、直線コーナ部分Cのなす角度に対し、単調増加となる補正ゲインkが得られることが分かる。このことから、直線コーナ部分Cのような形状の指令軌跡Gcにおいて、評価関数を用いて補正ゲインkを算出することにより、指令軌跡Gcとフィルタ軌跡Gf´との誤差を効果的に抑制する為の補正ゲインkを適切に決定することが可能となる。 Here, it is assumed that the command locus Gc is corrected with a correction vector −kε having a constant correction gain k at each base point within the range of the angle formed by the straight corner portion C from 0 degrees to 180 degrees. FIG. 14 shows an example of the result of deriving the optimum correction gain k using the cumulative trajectory error as an evaluation function at each angle. As analysis conditions, a two-stage moving average filter was used as the acceleration/deceleration filter, and their time constants were set to 94 msec and 127 msec. As shown in FIG. 14, it can be seen that a correction gain k monotonically increasing with respect to the angle formed by the straight corner portion C is obtained. For this reason, in order to effectively suppress the error between the command locus Gc and the filter locus Gf' by calculating the correction gain k using the evaluation function in the command locus Gc shaped like the straight corner portion C. It becomes possible to appropriately determine the correction gain k of .

<任意形状を有する指令軌跡の補正>
次に、円弧状(図11参照)や直線コーナ部分C(図13参照)を含む任意の形状の指令軌跡Gcを補正する為の補正ゲインkの算出方法について説明する。補正ゲインkは、指令軌跡Gcのうち円弧状の部分でフィルタ軌跡Gfとの誤差を0にするように、且つ、直線コーナ部分Cで累積軌跡誤差が最小となるようにすることで決定される。
<Correction of Command Trajectory Having Arbitrary Shape>
Next, a method of calculating the correction gain k for correcting the command locus Gc having an arbitrary shape including an arc shape (see FIG. 11) and a straight corner portion C (see FIG. 13) will be described. The correction gain k is determined by making the error from the filter trajectory Gf zero in the arc-shaped portion of the command trajectory Gc and minimizing the accumulated trajectory error in the straight corner portion C. .

図15(A)に示す指令軌跡Gc(5)を想定し、各基点pでの角度(方向)変化を用いて補正ゲインkを算出する提案方法について説明する。なお、一定の補間周期の下で各基点pでの角度変化は、指令軌跡Gc(5)に沿って移動する制御対象が基点pを通過する時の角速度と等価である。このため、以下では、角度変化を「角速度」と言い換える。 Assuming the command locus Gc(5) shown in FIG. 15A, the proposed method of calculating the correction gain k using the angle (direction) change at each base point p will be described. Note that the angular change at each base point p under a constant interpolation cycle is equivalent to the angular velocity when the controlled object moving along the command locus Gc(5) passes through the base point p. Therefore, hereinafter, the change in angle is referred to as "angular velocity".

図11、図13を参照して説明したように、円弧状や直線コーナ部分Cを含む任意の形状の指令軌跡Gcの何れの場合にも、適切な補正ゲインkは角速度に基づき変化すると考えることができる。直線コーナ部分Cのなす角度の変化は、一定の速度の下で角速度の変化に対応するからである。なお、円弧状の指令軌跡Gcでは全周に亘って角速度が変化しないので、誤差の大きさ|ε|および最適な補正ゲインkも全周に亘って不変である。一方、指令軌跡Gcの直線コーナ部分Cでは、直線コーナ部分Cにおいて角速度はインパルス状に変化し、その近傍(開始点Paと終了点Pb(図13(C)参照)との間)において誤差の大きさ|ε|は変化する為、最適な補正ゲインkもこの範囲で相違する。 As described with reference to FIGS. 11 and 13, it should be considered that the appropriate correction gain k changes based on the angular velocity in any case of the command trajectory Gc having an arbitrary shape including a circular arc and a straight corner portion C. can be done. This is because the change in the angle formed by the straight corner portion C corresponds to the change in angular velocity under constant speed. Since the angular velocity does not change over the entire circumference of the arcuate command locus Gc, the error magnitude |ε| and the optimum correction gain k remain unchanged over the entire circumference. On the other hand, at the straight corner portion C of the command trajectory Gc, the angular velocity changes in the shape of an impulse at the straight corner portion C, and the error is Since the magnitude |ε| changes, the optimum correction gain k also differs within this range.

以下では、後述の補正ゲイン関数K(ω)を用い、指令軌跡Gc(5)における最適な補正ゲインkを角速度ωに基づいて算出する方法を説明する。又、補正ゲイン関数K(ω)を用いるにあたり、指令軌跡Gcにおける角速度ωに対して後述の角速度フィルタwによるフィルタリング処理が実行される。そして、角速度フィルタwによりフィルタリング処理された角速度^ωを補正ゲイン関数K(ω)に入力することによって、補正ゲインkを導出する。以上のように、各基点での角速度を利用することと、そのフィルタリング処理を行うことにより、任意の形状を有する指令軌跡Gcに対して単一のゲイン関数で対応できるようになる。 A method of calculating the optimum correction gain k in the command locus Gc(5) based on the angular velocity ω using the correction gain function K(ω) described later will be described below. Further, in using the correction gain function K(ω), the angular velocity ω on the command locus Gc is filtered by an angular velocity filter wl , which will be described later. Then, the correction gain k is derived by inputting the angular velocity ^ω filtered by the angular velocity filter wl into the correction gain function K(ω). As described above, by using the angular velocity at each base point and performing the filtering process, it becomes possible to deal with the command trajectory Gc having an arbitrary shape with a single gain function.

<補正ゲイン関数K(ω)>
図11に示す指令軌跡Gc(3)における円弧状の部分、及び、図13に示す指令軌跡Gc(4)における直線コーナ部分Ccでは、何れも、角速度の増加に伴い補正ゲインkは増大し、角速度が低い領域においては緩やかに単調増加する。従って、補正ゲイン関数は、式(2-6)にて示される円弧状の指令軌跡Gcにおける関係式に基づいて定義できる。補正ゲイン関数により算出される補正ゲインkを用いて指令軌跡Gc(5)を補正した補正軌跡Gh(5)を用いることにより、指令軌跡Gc(5)のうち円弧状の部分については、指令軌跡Gc(5)と、補正軌跡Gh(5)に加減速フィルタを適用したフィルタ軌跡Gf(5)´との間の誤差を抑制できる。
<Correction gain function K(ω)>
In both the arc-shaped portion of the command locus Gc(3) shown in FIG. 11 and the straight corner portion Cc of the command locus Gc(4) shown in FIG. It increases gently and monotonically in the region where the angular velocity is low. Therefore, the correction gain function can be defined based on the relational expression in the arc-shaped command trajectory Gc shown in Equation (2-6). By using the corrected trajectory Gh(5) obtained by correcting the commanded trajectory Gc(5) using the correction gain k calculated by the correction gain function, the arc-shaped portion of the commanded trajectory Gc(5) is corrected to the commanded trajectory It is possible to suppress the error between Gc(5) and the filtered locus Gf(5)' obtained by applying the acceleration/deceleration filter to the corrected locus Gh(5).

式(2-6)にて示される関係式では、図12で示したように,特定の角速度で補正ゲインkが無限大に発散する。従って、補正ゲインkによる補正時に過大な負荷が生じることを防止する為、さらに円弧以外の任意の軌跡にも対応させる為、補正ゲインkが発散する角速度を含む領域(以下、「発散領域」という。)は、式(2-6)の関係式を、単調増加となるような近似関数に置き換える必要がある。一方、発散が生じない角速度が低い領域では、式(2-6)の関係式を用いることにより、円弧状の指令軌跡Gc(5)の場合、フィルタ軌跡Gf(5)´との間の誤差を0にすることができる。 In the relational expression (2-6), as shown in FIG. 12, the correction gain k diverges infinitely at a specific angular velocity. Therefore, in order to prevent an excessive load from being generated at the time of correction by the correction gain k, and also to correspond to an arbitrary trajectory other than a circular arc, a region including an angular velocity where the correction gain k diverges (hereinafter referred to as a "divergence region") ), it is necessary to replace the relational expression (2-6) with an approximation function that monotonically increases. On the other hand, in the low angular velocity region where no divergence occurs, by using the relational expression (2-6), the error between the arc-shaped command trajectory Gc(5) and the filter trajectory Gf(5)' is can be 0.

以下では、発散領域における近似関数として、包絡線関数H(ω)を用いる場合について説明する。包絡線関数H(ω)は、加減速フィルタの周波数特性であるゲインH(ω)の分母の正弦関数を1としたときの関数である。包絡線関数H(ω)を使用した場合の補正ゲインk(ω)は、式(3-1)の関係式を満たす。

Figure 2023122566000013
A case will be described below where an envelope function H e (ω) is used as the approximation function in the divergence region. The envelope function H e (ω) is a function when the sine function of the denominator of the gain H(ω), which is the frequency characteristic of the acceleration/deceleration filter, is set to 1. The correction gain k e (ω) when using the envelope function H e (ω) satisfies the relational expression (3-1).
Figure 2023122566000013

補正ゲインk(ω)が不連続になると、補正後の指令軌跡Gc(5)である補正軌跡Gh(5)に急激な変化が発生し、加速度の増大を引き起こすことが予想される。このため、補正ゲインk(ω)が連続的に変化するように,式(2-6)(3-1)の2つの関係式を用い、補正ゲイン関数K(ω)を以下の式(3-2)のように定義する。

Figure 2023122566000014
When the correction gain k(ω) becomes discontinuous, it is expected that the correction trajectory Gh(5), which is the command trajectory Gc(5) after correction, will change abruptly, causing an increase in acceleration. For this reason, two relational expressions (2-6) and (3-1) are used so that the correction gain k(ω) changes continuously, and the correction gain function K(ω) is changed to the following expression (3 -2).
Figure 2023122566000014

式(3-2)において、±ωは、2つの関数を切り替える角速度である。kは、2つの関数を連続的に繋ぐためのオフセット量である。2つの関数が切り替わる角速度で、補正ゲイン関数K(ω)が滑らかに変化するために、夫々の関数の傾きが等しくなる時の角速度を、角速度±ωとする。この条件を満たす角速度±ωは、式(3-3)を満たす値である。

Figure 2023122566000015
補正項kは、以下の式(3-4)の関係を満たす値である。
Figure 2023122566000016
補正ゲイン関数K(ω)をグラフで表したものを、図16に示す。 In equation (3-2), ±ω t is the angular velocity that switches between the two functions. kt is an offset amount for continuously connecting two functions. Since the correction gain function K(ω) changes smoothly at the angular velocity at which the two functions are switched, the angular velocity at which the slopes of the respective functions become equal is defined as the angular velocity ± ωt . The angular velocity ±ω t that satisfies this condition is a value that satisfies equation (3-3).
Figure 2023122566000015
The correction term k t is a value that satisfies the relationship of Equation (3-4) below.
Figure 2023122566000016
A graphical representation of the correction gain function K(ω) is shown in FIG.

<角速度フィルタ>
上記のように、補正ゲイン関数K(ω)は角速度ωの関数として計算される。一方、直線コーナ部分Cの場合、角速度ωは直線コーナ部分Cのみにおいてインパルス状に変化し、その他の直線部分においてはゼロとなる。しかし、軌跡誤差は直線コーナ部分Cのみにおいて生じるのではなく、加減速フィルタの時定数範囲(影響が及ぶ範囲)に亘って生じるため、指令軌跡Gcの補正は、指令軌跡Gcのうち直線コーナ部分Cだけでなく、例えば図13(C)に示す開始点Paから終了点Pbまでの間(加減速フィルタの時定数範囲)に亘って行われることが好ましい。従って、開始点Paから終了点Pbまでの間の範囲で補正ゲイン関数K(ω)による補正が行えるように、直線コーナ部分Cの1点の角速度(瞬時値)に基づいて指令軌跡Gcを補正することが必要となる。
<Angular velocity filter>
As noted above, the correction gain function K(ω) is calculated as a function of angular velocity ω. On the other hand, in the case of the straight corner portion C, the angular velocity ω changes in an impulse-like manner only at the straight corner portion C, and becomes zero at the other straight portions. However, the trajectory error does not occur only in the straight corner portion C, but occurs over the time constant range (range of influence) of the acceleration/deceleration filter. It is preferable to perform not only C but, for example, from the start point Pa to the end point Pb shown in FIG. 13C (the time constant range of the acceleration/deceleration filter). Therefore, the command trajectory Gc is corrected based on the angular velocity (instantaneous value) at one point of the straight corner portion C so that the correction by the correction gain function K(ω) can be performed in the range from the start point Pa to the end point Pb. It is necessary to

角速度フィルタwは、補正ゲイン関数K(ω)を任意の指令軌跡Gcに適用させる場合において、指令軌跡Gcの角速度ωの変化を平滑化する為に用いられる。図15(B)の実線L(1)は、指令軌跡Gc(5)における角速度ωの時間変化を示す。角速度フィルタwによりフィルタリング処理が実行された後の角速度^ωの時間変化を、破線L(2)にて示す。図内に示される2つのインパルス状の角速度変化は直線コーナ部分p(1)、p(2)で生じており、円弧状部分p(3)からp(7)において角速度は一定値-ωとなっている。すなわち、直線コーナ部分と円弧部分での角速度変化は、最も急峻なインパルス状の変化と最も変化のない一定値という、両極端の特性を示す。このため、直線コーナ部分と円弧部分の両方に対して適切な補正ゲインを求め得るように、前記角速度のフィルタリング処理と補正ゲイン関数を設定することによって、任意の軌跡に対して適切な補正ゲインを求める。 The angular velocity filter wl is used to smooth changes in the angular velocity ω of the commanded trajectory Gc when the correction gain function K(ω) is applied to an arbitrary commanded trajectory Gc. A solid line L(1) in FIG. 15(B) indicates the temporal change of the angular velocity ω on the command locus Gc(5). A broken line L(2) indicates the temporal change of the angular velocity ^ω after the filtering process is executed by the angular velocity filter wl . The two impulse-like angular velocity changes shown in the figure occur at the straight corner portions p(1) and p(2), and the angular velocity is a constant value −ω f It has become. That is, the angular velocity changes at the straight corner portion and the circular arc portion show extreme characteristics of a steepest impulse-like change and a constant value with the least change. Therefore, by setting the filtering processing of the angular velocity and the correction gain function so as to obtain an appropriate correction gain for both the straight corner portion and the circular arc portion, an appropriate correction gain can be obtained for an arbitrary trajectory. demand.

まず、図11に示す指令軌跡Gc(3)における円弧状部分、及び、図13に示す指令軌跡Gc(4)における直線コーナ部分Ccでは、図12及び図14に示されるように、円弧の場合であって極端に角速度ωが大きい領域を除けば、何れも、角速度ωの増加に伴い補正ゲインk(ω)は単調増加する。従って、以下の特性を満たすようなフィルタリング処理を、指令軌跡Gcの対して行うことにより、補正ゲイン関数K(ω)を、円弧状の指令軌跡Gc以外の任意の軌跡に拡張することができる。
(1)角速度ωの変化が急峻な場合、フィルタリング処理により、角速度ωの急峻な変化を減少させる。
(2)角速度ωの変化が急峻な場合、フィルタリング処理により、角速度ωの急峻な変化が生じる時刻を中心とした所定の範囲に,角速度ωの変化の影響を広げる。
First, in the arc-shaped portion of the command locus Gc(3) shown in FIG. 11 and the straight corner portion Cc of the command locus Gc(4) shown in FIG. and the correction gain k(ω) monotonously increases with an increase in the angular velocity ω, except for a region where the angular velocity ω is extremely large. Therefore, the correction gain function K(ω) can be extended to any trajectory other than the arcuate command trajectory Gc by performing filtering processing that satisfies the following characteristics on the command trajectory Gc.
(1) When the change in the angular velocity ω is steep, filtering processing is performed to reduce the steep change in the angular velocity ω.
(2) When the change in the angular velocity ω is steep, the filtering process expands the influence of the change in the angular velocity ω to a predetermined range around the time when the sharp change in the angular velocity ω occurs.

一方、指令軌跡Gcにおける円弧状部分の場合、フィルタリング処理が行われた場合でも角速度ωの変化を避ける必要がある。従って、(1)(2)に加えて更に以下の特性を満たすようなフィルタリング処理を、指令軌跡Gcに対して行うことが必要となる。(3)角速度ωの変化が緩やかな場合、フィルタリング処理により角速度ωは大きく変化しない。特に円弧のように一定の角速度ωが所定の範囲(影響が及ぶ時定数範囲)に亘って継続する場合には、フィルタリング処理により角速度ωの値は全く変化しない。 On the other hand, in the case of the arcuate portion of the command locus Gc, it is necessary to avoid changes in the angular velocity ω even when the filtering process is performed. Therefore, in addition to (1) and (2), filtering processing that satisfies the following characteristics must be performed on the command trajectory Gc. (3) When the change in the angular velocity ω is moderate, the filtering process prevents the angular velocity ω from changing greatly. In particular, when a constant angular velocity ω continues over a predetermined range (influenced time constant range) like an arc, the value of the angular velocity ω does not change at all due to the filtering process.

(1)~(3)の条件を満たすフィルタリング処理として、加減速フィルタと同じ時定数を有するローパスフィルタによるフィルタリング処理を実行する。以下、指令軌跡Gcに対するフィルタリング処理時に用いるローパスフィルタを、「角速度フィルタw」という。ここで適用する角速度フィルタwは一つの例であり、その重み関数W(t)は以下の式(4-1)により示される。W、β、W、βはそれぞれ、フィルタの形状を決定するためのパラメータである。

Figure 2023122566000017
As filtering processing satisfying the conditions (1) to (3), filtering processing is performed using a low-pass filter having the same time constant as the acceleration/deceleration filter. Hereinafter, a low-pass filter used for filtering the commanded trajectory Gc is referred to as an "angular velocity filter wl ". The angular velocity filter wl applied here is an example, and its weighting function W(t) is given by the following equation (4-1). W e , β e , W c , and β c are parameters for determining the shape of the filter, respectively.
Figure 2023122566000017

又、上記のパラメータは、もともとの角度変化量(角速度の積分値)を変更しないように、以下の式(4-2)を満たす。

Figure 2023122566000018
Moreover, the above parameters satisfy the following equation (4-2) so as not to change the original angular change amount (integral value of angular velocity).
Figure 2023122566000018

図17は、式(4-2)に基づいて算出された重み関数W(t)の例を示す。重み関数W(t)の形状は、パラメータW、β、W、βにより決定される。重み関数W(t)の形状は、移動平均フィルタのように係数一定の形状から、フィルタ中間付近のみ大きな係数を持つような(係数の変化が大きな)形状まで、自由に調整できる。重み関数W(t)の形状を調整することにより、角速度ωの急峻な変化をどの程度減少させてフィルタの時定数範囲に亘ってその影響をどのように広げるかを調整できる。パラメータW、β、W、βの調整は、数値計算により行われる。より具体的には、直線コーナ部分Cのなす角度を0度から180度まで変化させた場合において、累積軌跡誤差の平均値が最小となるようなパラメータW、β、W、βを数値的に探索することにより調整してよい。 FIG. 17 shows an example of the weighting function W(t) calculated based on Equation (4-2). The shape of the weighting function W(t) is determined by the parameters W e , β e , W c , β c . The shape of the weighting function W(t) can be freely adjusted from a shape with constant coefficients like a moving average filter to a shape with large coefficients only near the middle of the filter (changes in coefficients are large). By adjusting the shape of the weighting function W(t), it is possible to adjust how much the steep changes in the angular velocity ω are reduced and spread out over the filter's time constant range. Adjustment of the parameters W e , β e , W c , β c is performed by numerical calculation. More specifically, the parameters W e , β e , W c , and β c that minimize the average value of the accumulated trajectory errors when the angle formed by the straight corner portion C is changed from 0 degrees to 180 degrees. may be adjusted by numerically searching for

ここでτは加減速フィルタの時定数と等しい。時定数が等しいとは、加減速フィルタが複数のフィルタにより構成されている場合には、それらすべてのフィルタの時定数を足し合わせた総時定数と等しいことを意味する。 Here, τt is equal to the time constant of the acceleration/deceleration filter. Equal time constant means equal to the total time constant obtained by adding the time constants of all the filters when the acceleration/deceleration filter is composed of a plurality of filters.

なお、角速度フィルタwの適用後、指令軌跡Gcにおける角速度ωは、補正ゲイン関数K(ω)の入力変数として入力される。これにより、補正ゲインkが最終的に算出される。 After application of the angular velocity filter wl , the angular velocity ω on the command locus Gc is input as an input variable of the correction gain function K(ω). Thereby, the correction gain k is finally calculated.

<主処理>
図18、図19を参照し、主処理について説明する。主処理は、NCプログラムに基づく加工を開始する為の指示が、入力部16を介して入力された場合、ROM32に記憶されたNCプログラムをCPU31が読み出して実行することにより開始される。
<Main processing>
The main processing will be described with reference to FIGS. 18 and 19. FIG. The main process is started by the CPU 31 reading out and executing the NC program stored in the ROM 32 when an instruction to start machining based on the NC program is input via the input unit 16 .

図18に示すように、CPU31は、RAM33に記憶した変数i、jに0を設定して初期化する(S11)。CPU31は、必要に応じて(前回の補間が終了した場合)記憶装置34に記憶したNCプログラムから位置指令を順番に1行読み出す(S13)。なお、読み出される位置指令により、制御対象の移動後の位置が規定される。CPU31は、所定の処理周期である補間周期毎に、読み出した位置指令に基づき、予め補間処理を実行する(S15)。補間処理では、移動前の制御対象の位置から移動後の制御対象の位置までの間に亘って延びる指令軌跡Gcの指令位置を、複数の基点pjで補間する。複数の基点pjは、移動前の位置から移動後の位置までの間を制御対象が指令速度で移動する時に、補間周期毎に通過する点である。次にCPU31は、指令軌跡Gcの基点pにおける接線方向の移動距離s及び角速度ωを算出する(S17)。 As shown in FIG. 18, the CPU 31 initializes variables i and j stored in the RAM 33 by setting them to 0 (S11). The CPU 31 sequentially reads one line of the position command from the NC program stored in the storage device 34 as necessary (when the previous interpolation is completed) (S13). The read position command defines the position of the controlled object after movement. The CPU 31 executes interpolation processing in advance based on the read position command every interpolation cycle, which is a predetermined processing cycle (S15). In the interpolation processing, the commanded position of the commanded trajectory Gc extending from the position of the controlled object before movement to the position of the controlled object after movement is interpolated with a plurality of base points p j . A plurality of reference points p j are points that the controlled object passes through in each interpolation cycle when it moves at the command speed from the position before movement to the position after movement. Next, the CPU 31 calculates the tangential movement distance sj and the angular velocity ωj at the reference point pj of the command locus Gc (S17).

CPU31は、補間処理により補間されたpまでの基点に対して加減速フィルタによるフィルタリング処理を実行し、フィルタ軌跡Gf上のj番目の点^pを算出する(S19)。 The CPU 31 performs a filtering process using an acceleration/deceleration filter on the base points up to pj interpolated by the interpolation process, and calculates the j-th point ^ pj on the filter locus Gf (S19).

CPU31は、算出した移動距離sを有する仮想的な一次元直線軌跡に対して加減速フィルタによるフィルタリング処理を実行し、^sを算出する(S21)。又、CPU31は、算出したωまでの角速度に対して角速度フィルタw(式(4-2)参照)によるフィルタリング処理を実行し、^ωを算出する(S23)。 The CPU 31 performs a filtering process using an acceleration/deceleration filter on the virtual one-dimensional linear trajectory having the calculated movement distance sj , and calculates ^ sj (S21). Further, the CPU 31 executes filtering processing by the angular velocity filter w l (see formula (4-2)) on the calculated angular velocity up to ω j to calculate ^ω j (S23).

CPU31は、式(1-1)を満たす移動距離sがあるか判定する(S25)。CPU31は、式(1-1)を満たす移動距離sがないと判断した場合(S25:NO)、処理をS49(図19参照)に進める。図19に示すように、CPU31は、変数jに1加算して更新する(S49)。CPU31は、記憶装置34に記憶されたNCプログラムの全ての位置指令を、S13(図18参照)の処理によって読み出し、その補間後の最後の基点の補正までを終了したか判定する(S51)。CPU31は、誤差補正を終了していない基点が残っていると判定した場合(S51:NO)、処理をS13(図18参照)に戻す。図18に示すように、CPU31は、更新された変数jに基づき、S13~S23の処理を繰り返す。 The CPU 31 determines whether or not there is a movement distance si that satisfies the formula (1-1) (S25). When the CPU 31 determines that there is no movement distance s i that satisfies the formula (1-1) (S25: NO), the process proceeds to S49 (see FIG. 19). As shown in FIG. 19, the CPU 31 adds 1 to the variable j and updates it (S49). The CPU 31 reads out all the position commands of the NC program stored in the storage device 34 by the processing of S13 (see FIG. 18), and determines whether or not the correction of the final base point after the interpolation has been completed (S51). When the CPU 31 determines that there remains a base point for which error correction has not been completed (S51: NO), the process returns to S13 (see FIG. 18). As shown in FIG. 18, the CPU 31 repeats the processes of S13 to S23 based on the updated variable j.

CPU31は、式(1-1)を満たす移動距離sがあると判断した場合(S25:YES)、処理をS27に進める。CPU31は、式(1-3)にs、^s、^sj+1を代入し、^sと^sj+1との内分係数uを算出する(S27)。CPU31は、処理をS31に進める。 When the CPU 31 determines that there is a moving distance si that satisfies the formula (1-1) (S25: YES), the process proceeds to S27. The CPU 31 substitutes s i , ̂s j , and ̂s j+1 into equation (1-3), and calculates an internal division coefficient u between ̂s j and ̂s j+1 (S27). The CPU 31 advances the process to S31.

図19に示すように、CPU31は、S27(図18参照)の処理によって算出した内分係数uを式(1-2)に代入し、指令軌跡Gc上の基点pに対応するフィルタ軌跡Gf上の対応点^pj+uを決定する(S31)。CPU31は、基点pから対応点^pj+uまでの方向と距離とを示す誤差ベクトルεを、次の式(5-1)に基づき算出する(S33)。

Figure 2023122566000019
As shown in FIG. 19, the CPU 31 substitutes the internal division coefficient u calculated by the processing of S27 (see FIG. 18) into the equation (1-2) to A corresponding point ̂p j+u above is determined (S31). The CPU 31 calculates an error vector ε i indicating the direction and distance from the base point p i to the corresponding point ^p j + u based on the following equation (5-1) (S33).
Figure 2023122566000019

CPU31は、S27(図18参照)の処理によって算出した内分係数uを以下の式(5-2)に代入し、フィルタ軌跡Gf上の対応点^pj+uにおける角速度^ωj+uを算出する(S35)。

Figure 2023122566000020
The CPU 31 substitutes the internal division coefficient u calculated by the processing of S27 (see FIG. 18) into the following equation (5-2) to calculate the angular velocity ^ω j+u at the corresponding point ^p j+u on the filter trajectory Gf ( S35).
Figure 2023122566000020

CPU31は、算出した角速度^ωj+uを式(3-2)に代入し、補正ゲインkを算出する(S37)。CPU31は、算出した補正ゲインkを、S33の処理により算出した誤差ベクトルεに乗算して方向を反転させることにより、補正ベクトル-kεを算出する(S39)。 The CPU 31 substitutes the calculated angular velocity ^ω j+u into the equation (3-2) to calculate the correction gain k i (S37). The CPU 31 calculates a correction vector −k i ε i by multiplying the calculated correction gain k i by the error vector ε i calculated in the process of S33 and reversing the direction (S39).

CPU31は、指令軌跡Gc上の基点pの位置を、S39の処理により算出した補正ベクトル-kεに基づいて移動させた点qを算出する(S41)。なお、点qを通過する軌跡は、補正軌跡Ghに対応する。このため以上の処理により、指令軌跡Gcは補正軌跡Ghに補正される。 The CPU 31 calculates a point q i by moving the position of the reference point p i on the command locus Gc based on the correction vector −k i ε i calculated in the process of S39 (S41). Note that the trajectory passing through the point qi corresponds to the corrected trajectory Gh. Therefore, the commanded trajectory Gc is corrected to the corrected trajectory Gh by the above processing.

CPU31は、算出したqまでの点に対して加減速フィルタによるフィルタリング処理を実行する(S43)。CPU31は、フィルタリング後の点^qの位置を示す位置指令に基づき、制御対象を駆動する(S45)。CPU31は、変数iに1加算して更新する(S47)。CPU31は、変数jに1加算して更新する(S49)。CPU31は、最後の基点まで補正及び制御処理を終了したか判定する(S51)。CPU31は、処理していない基点が残っていると判定した場合(S51:NO)、処理をS13(図18参照)に戻す。 The CPU 31 performs a filtering process using an acceleration/deceleration filter on the calculated points up to qi (S43). The CPU 31 drives the controlled object based on the position command indicating the position of the point ^ qi after filtering (S45). The CPU 31 updates the variable i by adding 1 (S47). The CPU 31 updates the variable j by adding 1 (S49). The CPU 31 determines whether the correction and control processing has been completed up to the last base point (S51). When the CPU 31 determines that there are base points that have not been processed (S51: NO), the process returns to S13 (see FIG. 18).

CPU31は、S13(図18参照)の処理によって、最後の基点まで処理を終了したと判定した場合(S51:YES)、主処理を終了させる。 When the CPU 31 determines in the process of S13 (see FIG. 18) that the process has been completed up to the last base point (S51: YES), it ends the main process.

<評価結果>
上記のように駆動する工作機械1の性能評価を、実験により行った。工作機械1の基台2を駆動するX軸モータ53及びY軸モータ54に取り付けたエンコーダ53B、54Bの出力信号を記録し、テーブル13の位置、速度、及び、指令軌跡Gcに対するフィルタ軌跡Gf、Gf´の誤差を評価した。又、図20に示すように、工作機械1のテーブル13にX軸方向に振動する梁とY軸方向に振動する梁を設け、且つ、各梁に加速度計を取り付けてX軸方向及びY軸方向の振動を測定し、振動抑制効果も評価した。図21は、X軸方向に振動する梁に設けられた加速度計により検出された共進周波数10.6Hz、及び、Y軸方向に振動する梁に設けられた加速度計により検出された共進周波数7.86Hzの振動を示す。
<Evaluation results>
Performance evaluation of the machine tool 1 driven as described above was performed by experiment. The output signals of the encoders 53B and 54B attached to the X-axis motor 53 and the Y-axis motor 54 that drive the base 2 of the machine tool 1 are recorded, and the position and speed of the table 13 and the filter trajectory Gf with respect to the command trajectory Gc, The error of Gf' was evaluated. Further, as shown in FIG. 20, a beam vibrating in the X-axis direction and a beam vibrating in the Y-axis direction are provided on the table 13 of the machine tool 1, and an accelerometer is attached to each beam to vibrate in the X-axis direction and the Y-axis direction. Directional vibration was measured, and the vibration suppression effect was also evaluated. FIG. 21 shows a co-advance frequency of 10.6 Hz detected by an accelerometer attached to a beam vibrating in the X-axis direction and a co-advance frequency of 7.0 Hz detected by an accelerometer attached to a beam vibrating in the Y-axis direction. Vibration at 86 Hz is shown.

評価では、2段の加減速フィルタが用いられた。2段の加減速フィルタの夫々の時定数は指令軌跡Gcに適用する場合と補正軌跡Ghに適用する場合で共通とした。時定数は、2つの梁の夫々の共振周波数の振動を抑制するように、94(≒1000/10.6)msec、及び127(≒1000/7.86)msecとした。角速度フィルタは、累積軌跡誤差を最小化するパラメータを数値探索して求めることにより、図22に示す形状の重み関数を持つローパスフィルタとした。位置指令における制御対象(基台2)の速度は、6000mm/minとした。図23は、累積軌跡誤差の測定結果を示す。 A two-stage acceleration/deceleration filter was used in the evaluation. The time constants of the two-stage acceleration/deceleration filters are common to the case of application to the command locus Gc and the case of application to the correction locus Gh. The time constants were set to 94 (≈1000/10.6) msec and 127 (≈1000/7.86) msec so as to suppress the vibration of the resonance frequencies of the two beams. As the angular velocity filter, a low-pass filter having a weighting function having a shape shown in FIG. 22 was obtained by numerically searching for a parameter that minimizes the cumulative trajectory error. The speed of the controlled object (base 2) in the position command was set to 6000 mm/min. FIG. 23 shows the measurement results of the cumulative trajectory error.

<評価結果1>
直線コーナ部分Cdを有する指令軌跡Gc(6)について評価した。図24は、指令軌跡Gc(6)、指令軌跡Gc(6)に加減速フィルタを適用したフィルタ軌跡Gf(6)、及び、指令軌跡Gc(6)を補正した補正軌跡Ghに加減速フィルタを適用したフィルタ軌跡Gf(6)´を示す。図25は、指令軌跡Gc(6)に対するフィルタ軌跡Gf(6)、Gf(6)´の夫々の誤差を示す。図26は、フィルタ軌跡Gf(6)、Gf(6)´の夫々に沿って移動する制御対象の速度を示す。図27は、梁の振動周波数の解析結果を示す。
<Evaluation result 1>
A command locus Gc(6) having a straight corner portion Cd was evaluated. FIG. 24 shows a command trajectory Gc(6), a filtered trajectory Gf(6) obtained by applying an acceleration/deceleration filter to the command trajectory Gc(6), and a corrected trajectory Gh obtained by correcting the command trajectory Gc(6) applying an acceleration/deceleration filter. The applied filter locus Gf(6)' is shown. FIG. 25 shows respective errors of the filter trajectories Gf(6) and Gf(6)' with respect to the command trajectory Gc(6). FIG. 26 shows the velocity of the controlled object moving along the filter loci Gf(6) and Gf(6)', respectively. FIG. 27 shows the analysis result of the vibration frequency of the beam.

図24(A)に示す結果から、フィルタ軌跡Gf(6)´のうち直線コーナ部分Cdの近傍では、指令軌跡Gc(6)に対して外側に配置されることが分かった。又、図25に示す結果から、指令軌跡Gc(6)との間の誤差は、フィルタ軌跡Gf(6)よりもフィルタ軌跡Gf(6)´の方が小さくなることが明らかとなった。又、図23に示す結果から、フィルタ軌跡Gf(6)における累積軌跡誤差21.65mmは、フィルタ軌跡Gf(6)´において11.37mmまで減少することが確認された。又、図26に示す結果から、フィルタ軌跡Gf(6)´において速度が6000mm/minから僅かに超過する箇所があるものの、接線方向速度が0になる時間、すなわち移動が完了するタイミングは補正前後で変わらず、サイクルタイムは補正により増加しないことがわかった。又、図27に示す結果から、フィルタ軌跡Gf(6)、フィルタ軌跡Gf(6)´の何れの場合も、同程度に振動成分が小さく、十分な振動抑制効果があることが分かった。 From the results shown in FIG. 24(A), it was found that the filter locus Gf(6)' near the straight corner portion Cd is arranged outside the command locus Gc(6). Also, from the results shown in FIG. 25, it has been clarified that the error between the commanded trajectory Gc(6) and the filtered trajectory Gf(6)' is smaller than that of the filtered trajectory Gf(6). Further, from the results shown in FIG. 23, it was confirmed that the accumulated trajectory error of 21.65 mm 2 in the filter trajectory Gf(6) decreased to 11.37 mm 2 in the filter trajectory Gf(6)'. Further, from the results shown in FIG. 26, although there is a portion where the speed slightly exceeds 6000 mm/min in the filter locus Gf(6)', the time when the tangential direction speed becomes 0, that is, the timing at which the movement is completed is before and after the correction. , and the cycle time did not increase with the correction. Further, from the results shown in FIG. 27, it was found that both the filter locus Gf(6) and the filter locus Gf(6)' had a similarly small vibration component and a sufficient vibration suppression effect.

以上から、本実施形態で説明した方法で指令軌跡Gc(6)を補正してフィルタ軌跡Gf(6)´を導出することにより、振動の抑制効果を損なわず、且つ、サイクルタイムも変化させずに、指令軌跡Gc(6)との間の誤差を低減させることが可能であることが分かった。 From the above, by correcting the command trajectory Gc(6) and deriving the filter trajectory Gf(6)' by the method described in this embodiment, the effect of suppressing vibration is not impaired and the cycle time is not changed. In addition, it has been found that it is possible to reduce the error from the command locus Gc(6).

<評価結果2>
円弧状の部分を含む指令軌跡Gc(7)について評価した。図28は、指令軌跡Gc(7)、指令軌跡Gc(7)に加減速フィルタを適用したフィルタ軌跡Gf(7)、及び、指令軌跡Gc(7)を補正した補正軌跡Gh(7)に加減速フィルタを適用したフィルタ軌跡Gf(7)´を示す。図29は、指令軌跡Gc(7)に対するフィルタ軌跡Gf(7)、Gf(7)´の夫々の誤差を示す。図30は、フィルタ軌跡Gf(7)、Gf(7)´の夫々に沿って移動する制御対象の速度を示す。
<Evaluation result 2>
The command trajectory Gc(7) including an arc-shaped portion was evaluated. FIG. 28 shows a command trajectory Gc(7), a filtered trajectory Gf(7) obtained by applying an acceleration/deceleration filter to the command trajectory Gc(7), and a corrected trajectory Gh(7) obtained by correcting the command trajectory Gc(7). A filter locus Gf(7)' to which the deceleration filter is applied is shown. FIG. 29 shows the error of each of the filter trajectories Gf(7) and Gf(7)' with respect to the command trajectory Gc(7). FIG. 30 shows the velocity of the controlled object moving along the filter loci Gf(7) and Gf(7)', respectively.

図28、図29に示す結果から、指令軌跡Gc(7)との間の誤差は、フィルタ軌跡Gf(7)よりもフィルタ軌跡Gf(7)´の方が小さくなることが明らかとなった。特に指令軌跡Gc(7)が円弧状の範囲W7では、指令軌跡Gc(7)とフィルタ軌跡Gf(7)´との間の誤差がほぼ0となっていることが確認された。又、図23に示す結果から、軌跡全体で累積軌跡誤差が20.2%まで減少することが確認された。又、図30に示す結果から、フィルタ軌跡Gf(7)´の速度が指令軌跡Gc(7)の速度に対して僅かに超過する箇所があるものの、補正前のフィルタ軌跡Gf(7)の速度に対してほとんど変化しないことが分かった。 From the results shown in FIGS. 28 and 29, it is clear that the error between the commanded trajectory Gc(7) and the filtered trajectory Gf(7)' is smaller than that of the filtered trajectory Gf(7). In particular, it was confirmed that the error between the command trajectory Gc(7) and the filter trajectory Gf(7)' was almost zero in the arcuate range W7 of the command trajectory Gc(7). Also, from the results shown in FIG. 23, it was confirmed that the cumulative trajectory error was reduced to 20.2% over the entire trajectory. Further, from the results shown in FIG. 30, although there are places where the velocity of the filter locus Gf(7)' slightly exceeds the velocity of the command locus Gc(7), the velocity of the filter locus Gf(7) before correction is It was found that there was almost no change in

以上から、本実施形態で説明した方法で指令軌跡Gc(7)を補正してフィルタ軌跡Gf(7)´を導出することにより、指令軌跡Gc(7)との間の誤差を大幅に減少することができ、特に円弧状の範囲では誤差をほぼ0にできることが分かった。 From the above, by correcting the command trajectory Gc(7) and deriving the filter trajectory Gf(7)' by the method described in this embodiment, the error between the command trajectory Gc(7) and the command trajectory Gc(7) can be greatly reduced. It was found that the error can be reduced to almost 0, especially in the arc-shaped range.

<評価結果3>
微小な長さの直線軌跡の連続で構成される複雑な指令軌跡Gc(8)について評価した。指令軌跡Gc(8)は、長さ1mmの短い直線のみで構成され、座標(0,0)から反時計回りに一周する。図31は、指令軌跡Gc(8)、指令軌跡Gc(8)に加減速フィルタを適用したフィルタ軌跡Gf(8)、及び、指令軌跡Gc(8)を補正した補正軌跡Gh(8)に加減速フィルタを適用したフィルタ軌跡Gf(8)´を示す。図32は、指令軌跡Gc(8)に対するフィルタ軌跡Gf(8)、Gf(8)´の夫々の誤差を示す。図33は、フィルタ軌跡Gf(8)、Gf(8)´の夫々に沿って移動する制御対象の速度を示す。
<Evaluation result 3>
A complex command trajectory Gc(8) composed of a series of linear trajectories of minute length was evaluated. The command trajectory Gc(8) consists of only a short straight line with a length of 1 mm and goes around counterclockwise from coordinates (0, 0). FIG. 31 shows a command trajectory Gc(8), a filtered trajectory Gf(8) obtained by applying an acceleration/deceleration filter to the command trajectory Gc(8), and a corrected trajectory Gh(8) obtained by correcting the command trajectory Gc(8). A filter locus Gf(8)' to which the deceleration filter is applied is shown. FIG. 32 shows the error of each of the filter trajectories Gf(8) and Gf(8)' with respect to the command trajectory Gc(8). FIG. 33 shows the velocity of the controlled object moving along the filter loci Gf(8) and Gf(8)', respectively.

図31、図32に示す結果から、指令軌跡Gc(8)との間の誤差は、フィルタ軌跡Gf(8)よりもフィルタ軌跡Gf(8)´の方が小さくなることが明らかとなった。又、図23に示す結果から、軌跡全体で累積軌跡誤差が44.8%まで減少することが確認された。又、図33に示す結果から、フィルタ軌跡Gf(8)´の速度は、指令軌跡Gc(8)の速度に対して僅かに増加する箇所があるのみで、補正前のフィルタ軌跡Gf(8)の速度に比べ、全体として元の指令速度6000m/minに近くなることが分かった。 From the results shown in FIGS. 31 and 32, it is clear that the error between the commanded trajectory Gc(8) and the filtered trajectory Gf(8)' is smaller than that of the filtered trajectory Gf(8). Also, from the results shown in FIG. 23, it was confirmed that the cumulative trajectory error was reduced to 44.8% over the entire trajectory. Further, from the results shown in FIG. 33, the velocity of the filter locus Gf(8)' only slightly increases with respect to the velocity of the command locus Gc(8). It was found that the overall speed was close to the original command speed of 6000 m/min compared to the speed of .

以上から、本実施形態で説明した方法で指令軌跡Gc(8)を補正してフィルタ軌跡Gf(8)´を導出することにより、サイクルタイムも変化させずに、指令軌跡Gc(8)との間の誤差を低減させることが可能であることが分かった。 From the above, by correcting the command trajectory Gc(8) and deriving the filter trajectory Gf(8)′ by the method described in this embodiment, the command trajectory Gc(8) can be corrected without changing the cycle time. It was found that it is possible to reduce the error between

<本実施形態の作用、効果>
数値制御装置30は、指令軌跡Gc上の基点p毎に、誤差ベクトルεと補正ゲインkとを算出する(S33、S37)。数値制御装置30は、算出した誤差ベクトルεと補正ゲインkとを基点pの夫々に適用して指令軌跡Gcを補正する(S41)。数値制御装置30は、補正された指令軌跡Gcである補正軌跡Ghを加減速フィルタによりフィルタリングしてフィルタ軌跡Gf´を算出し、フィルタ軌跡Gf´に基づき制御対象を制御する。この場合、数値制御装置30は、元の指令軌跡Gcの形状と移動速度によって決まる角速度に応じて適切に、指令軌跡Gcとフィルタ軌跡Gf´とを近似させることができる。従って数値制御装置30は、指令軌跡Gcを加減速フィルタによりフィルタリングして制御対象を制御する場合において、実際の制御対象の移動軌跡(フィルタ軌跡Gf´)と、元の指令軌跡Gcとの誤差を精度良く抑制できる。
<Actions and effects of the present embodiment>
The numerical controller 30 calculates the error vector ε and the correction gain k for each base point p on the command locus Gc (S33, S37). The numerical controller 30 applies the calculated error vector ε and the correction gain k to each of the reference points p to correct the commanded trajectory Gc (S41). The numerical controller 30 filters the corrected trajectory Gh, which is the corrected command trajectory Gc, with an acceleration/deceleration filter to calculate a filtered trajectory Gf', and controls the controlled object based on the filtered trajectory Gf'. In this case, the numerical controller 30 can appropriately approximate the command trajectory Gc and the filter trajectory Gf' according to the angular velocity determined by the shape of the original command trajectory Gc and the movement speed. Therefore, when the command trajectory Gc is filtered by the acceleration/deceleration filter to control the controlled object, the numerical controller 30 corrects the error between the actual movement trajectory (filtered trajectory Gf′) of the controlled object and the original command trajectory Gc. It can be suppressed with high accuracy.

数値制御装置30は、位置指令により規定される二つの位置の間に亘って延びる指令軌跡Gc上に、複数の基点pを補間する(S15)。従って、数値制御装置30は、より多くの点を用いて指令軌跡Gcを補正することができるので、実際の制御対象の移動軌跡に対応するフィルタ軌跡Gf´と、元の指令軌跡Gcとの誤差を精度良く抑制できる。 The numerical controller 30 interpolates a plurality of base points p on the command locus Gc extending between two positions defined by the position command (S15). Therefore, the numerical control device 30 can correct the command trajectory Gc using more points, so the error between the filter trajectory Gf' corresponding to the actual movement trajectory of the controlled object and the original command trajectory Gc is can be suppressed with high accuracy.

数値制御装置30は、指令軌跡Gcの基点pにおける接線方向の移動距離sを算出する(S17)。数値制御装置30は、算出した移動距離sと、移動距離sを有する仮想的な一次元直線軌跡に対して加減速フィルタによるフィルタリングを行った結果である^sとに基づき、基点pに対応するフィルタ軌跡Gf上の対応点^pを決定する(S31)。この場合、数値制御装置30は、指令軌跡Gc上の基点pそれぞれに対応するフィルタ軌跡Gf上の点として、対応点^pを精度良く決定できる。 The numerical controller 30 calculates the tangential movement distance s at the reference point p of the commanded trajectory Gc (S17). The numerical control device 30 determines the base point p based on the calculated moving distance s and ^s, which is the result of filtering the virtual one-dimensional linear trajectory having the moving distance s using an acceleration/deceleration filter. A corresponding point ^p on the filter locus Gf is determined (S31). In this case, the numerical controller 30 can accurately determine the corresponding points ^p as the points on the filter locus Gf corresponding to the base points p on the command locus Gc.

数値制御装置30は、指令軌跡Gcの基点pにおける接線方向の角速度ωを算出する(S17)。算出した角速度ωに基づき、補正ゲインkを算出する(S37)。この場合、数値制御装置30は、指令軌跡Gc上の基点p毎に最適な補正ゲインkを、角速度ωに基づいて算出できる。 The numerical controller 30 calculates the angular velocity ω in the tangential direction at the reference point p of the command locus Gc (S17). A correction gain k is calculated based on the calculated angular velocity ω (S37). In this case, the numerical controller 30 can calculate the optimum correction gain k for each base point p on the command locus Gc based on the angular velocity ω.

数値制御装置30は、角速度ωを式(3-2)に代入することにより、補正ゲインkを算出する(S37)。ここで、式(3-2)は、角速度ωがωよりも大きい領域(発散領域)において、包絡線関数Hを適用することにより導出されている。即ち、数値制御装置30は、円弧状の指令軌跡Gcにフィルタ軌跡Gfを一致させることが可能な補正ゲインkを、角速度毎にプロットしたグラフの包絡線(図16参照)に指令軌跡Gcから算出した角速度ωを適用することで、補正ゲインkを算出している。従って、数値制御装置30は、角速度ωの値に応じて、指令軌跡Gc上の基点p毎に最適な補正ゲインkを算出できる。 The numerical controller 30 calculates the correction gain k by substituting the angular velocity ω into the equation (3-2) (S37). Here, Equation (3-2) is derived by applying the envelope function H e in a region (divergence region) where the angular velocity ω is greater than ω t . That is, the numerical controller 30 calculates a correction gain k that allows the filter trajectory Gf to match the arc-shaped command trajectory Gc from the command trajectory Gc to the envelope curve (see FIG. 16) of the graph plotted for each angular velocity. The correction gain k is calculated by applying the calculated angular velocity ω. Therefore, the numerical controller 30 can calculate the optimum correction gain k for each base point p on the command locus Gc according to the value of the angular velocity ω.

数値制御装置30は、算出した角速度ωに対し、加減速フィルタと同じ時定数を有する角速度フィルタによりフィルタリング処理を行う(S23)。数値制御装置30は、フィルタリング処理を行った角速度に基づき、補正ゲインkを算出する(S37)。これにより数値制御装置30は、角速度ωの瞬時変化が大きい場合でも、最適な補正ゲインkを算出できる。 The numerical controller 30 filters the calculated angular velocity ω using an angular velocity filter having the same time constant as the acceleration/deceleration filter (S23). The numerical controller 30 calculates a correction gain k based on the filtered angular velocity (S37). Thereby, the numerical controller 30 can calculate the optimum correction gain k even when the instantaneous change in the angular velocity ω is large.

<変形例>
本発明は上記実施形態に限定されず、種々の変更が可能である。上記の主処理は、数値制御装置30において実行される場合に限定されず、例えば工作機械1により実行されてもよいし、工作機械1に接続するPCにより実行されてもよい。
<Modification>
The present invention is not limited to the above embodiments, and various modifications are possible. The main process described above is not limited to being executed by the numerical controller 30 , and may be executed by the machine tool 1 or by a PC connected to the machine tool 1 .

数値制御装置30がS19、S21でフィルタリング処理を行う時に用いるフィルタは、移動平均フィルタに限定されず、他の周知のフィルタが用いられてもよい。数値制御装置30は、S15における補間処理を行わず、位置指令が規定する位置を基点として対応点を特定してもよい。 The filter used when the numerical controller 30 performs the filtering process in S19 and S21 is not limited to the moving average filter, and other known filters may be used. The numerical control device 30 may specify corresponding points using the position defined by the position command as a base point without performing the interpolation processing in S15.

S31における対応点の決定方法については、上記実施形態に限定されず、他の方法が用いられてもよい。例えば数値制御装置30は、基点pの位置を示す座標情報に対して加減速フィルタによるフィルタリング後の対応点を解析的に求め(例えば加減速フィルタとして1段の移動平均フィルタを用いる場合、式(1-4)(1-5)に式(1-1)~(1-3)を代入し,jとuについて解析的に解くことが可能である)、その結果に基づいて対応点を決定してもよい。 The method of determining corresponding points in S31 is not limited to the above embodiment, and other methods may be used. For example, the numerical controller 30 analytically obtains corresponding points after filtering by an acceleration/deceleration filter for the coordinate information indicating the position of the base point p (for example, when a one-stage moving average filter is used as the acceleration/deceleration filter, the formula ( 1-4) It is possible to substitute equations (1-1) to (1-3) into (1-5) and analytically solve for j and u), and determine corresponding points based on the result You may

S37における補正ゲインの算出方法については、上記実施形態に限定されず、他の方法が用いられてもよい。例えば数値制御装置30は、指令軌跡Gcの形状と速度に応じて定められた補正ゲイン関数を、指令軌跡Gc毎に予め記憶し、対応する補正ゲイン関数を用いることで補正ゲインを決定してもよい。この場合、補正ゲインの決定時に角速度ωは用いられなくてもよい。 The method of calculating the correction gain in S37 is not limited to the above embodiment, and other methods may be used. For example, the numerical control device 30 may store in advance a correction gain function determined according to the shape and speed of the command trajectory Gc for each command trajectory Gc, and determine the correction gain by using the corresponding correction gain function. good. In this case, the angular velocity ω may not be used when determining the correction gain.

数値制御装置30は、包絡線関数Hを適用することにより導出された補正ゲイン関数K(ω)を用いて補正ゲインを算出した。これに対し、数値制御装置30は、包絡線関数Hを適用する以外の方法、例えば補正ゲイン関数K(ω)が発散しないように最大値を設定するなどの方法を用いて補正ゲインを算出してもよい。 The numerical controller 30 calculated the correction gain using the correction gain function K(ω) derived by applying the envelope function He . On the other hand, the numerical controller 30 calculates the correction gain using a method other than applying the envelope function He , for example, a method such as setting a maximum value so that the correction gain function K(ω) does not diverge. You may

数値制御装置30は、S23で角速度フィルタにより角速度ωをフィルタリング処理し、その結果に基づいて補正ゲインを算出した。これに対して数値制御装置30は、角速度フィルタを用いず、例えば指令軌跡に対して加減速フィルタを適用後のフィルタ軌跡^pに沿って変化する角速度を求め、これを用いて補正ゲインを算出してもよい。
S45において、速度が予め定められた限界の速度を超えることがある。図34、図35は、限界の速度を超えないようにする変形例のフローチャートである。図18、図19と同一符号は同じ処理のため説明を省略する。
CPU31は、RAM33に記憶した変数i、j、k、lに0を設定し、且つ後述する先読みリストを空にして変数と先読みリストを初期化する(S111)。iは主処理における着目する基点であり、jは先読み中の基点、kはNCプログラムの先読み中の指令ブロックcのインデックス、lはカウンタを表す。先頭のインデックスは0となる。CPU31は、記憶装置34に記憶したNCプログラムから指令ブロックckを読み出す。NCプログラムは、指令位置と指令速度を含む。CPU31は、指令ブロックcを先読みリストに追加してRAM33に記憶する(S113)。CPU31は、RAM33に記憶された先読みリストに蓄えられた指令ブロックのすべてについて、補間処理を実行する(S115)。補間処理では、移動前の制御対象の位置から移動後の制御対象の位置までの間に亘って延びる指令軌跡Gc上の指令位置を、複数の基点pjで補間する。複数の基点pjは、移動前の位置から移動後の位置までの間を制御対象が指令速度で移動する時に、所定の補間周期毎に通過する点である。CPU31は、それぞれの基点pjを補間前の指令ブロックのインデックスと関連付けてRAM33に記憶する。次にCPU31は、S17からS23を実行し、^sj≦si+f/2≦^sj+1を満たす移動距離^sj+1を算出済みか判定する(S125)。フィルタの時定数を基点の数で表したfは、時定数の合計τt/制御周期=fにより算出される。つまり、フィルタリング処理にはf個の基点が必要である。^sj+1を算出済みの場合(S125:YES)、CPU31は、変数lにi-f/2を代入し(S127)、処理をS128に移行する。何故なら、指令ブロックの先読みリストにはこの後補正ベクトルki+f/2εi+f/2の算出に必要となるだけの指令ブロックが蓄えられている為である。CPU31は、移動距離^sj+1が算出済みでないと判断した場合(S125:NO)、変数kに1加算して(S126)、処理をS113に戻す。S128において、CPU31は式(1-3)にs、^s、^sj+1を代入し、^sと^sj+1との内分係数uを算出する。ただし、式(1-3)の変数iは変数lに変更する。その後、内分係数uを式(1-2)に代入し、指令軌跡Gc上の基点plに対応するフィルタ軌跡Gf上の対応点^pj+uを決定する(S132)。CPU31は、基点plから対応点^pj+uまでの方向と距離とを示す誤差ベクトルεlを式(5-1)に基づき算出する(S133)。CPU31は、内分係数uを式(5-2)に代入し、フィルタ軌跡Gf上の対応点^pj+uにおける角速度^ωj+uを算出する(S135)。CPU31は、算出した角速度^ωj+uを式(3-2)に代入し、補正ゲインklを算出する(S137)。CPU31は、算出した補正ゲインklを、S133の処理により算出した誤差ベクトルεlに乗算して方向を反転させることにより、補正ベクトル-klεlを算出する(S139)。CPU31は、指令軌跡Gc上の基点plの位置を、S139の処理により算出した補正ベクトル-klεlに基づいて移動させた点qlを算出する(S141)。
CPU31はS141を実行後、変数lがi+f/2となるか否かを判定する(S142)。変数l=i+f/2の時(S142:YES)、CPU31は処理をS144に進める。変数lがi+f/2とならない時(S142:NO)、CPU31は変数lに1を加算して処理をS128に戻す。CPU31は、算出したqi-f/2からqi+f/2までの点に対して加減速フィルタによるフィルタリング処理を実行し^qiを算出する(S144)。その後、CPU31はi=0か否かを判定し(S145)、i=0の場合(S145:YES)、処理を後述するS149に移行する。CPU31がi=0ではないと判定した場合(S145:NO)、フィルタリング後の基点^qiの位置を示す指令ブロックと^qi-1の指令ブロックの差分から^qiの速度を算出し(S146)、算出した^qiの速度がpi-f/2に関連づけて記憶された指令ブロックcm(mは指令ブロックのインデックス)の指令速度を超えているか判定する(S147)。CPU31は、^qiの速度が指令速度を超えていると判定した場合(S147:YES)、「指令ブロックcmの指令速度/^qiの速度」を算出し、算出した結果を指令速度に変更し(S148)、処理をS115に移行する。従って、先読みリストに記憶された全ての指令ブロックは指令速度以下となる。^qiの速度が指令速度を超えていないと判定した場合(S147:NO)、CPU31は、フィルタリング後の点^qの位置を示す指令ブロックに基づき、制御対象を駆動する。pi-fに関連付けて記憶された指令ブロックcmについて、指令ブロックcm-2が指令ブロックの先読みリストに含まれている場合、CPU31は該指令ブロックを削除する(S149)。CPU31は、最後の基点まで補正及び制御処理を終了したか判定する(S151)。CPU31は、処理していない基点が残っていると判定した場合(S151:NO)、処理をS113に戻す。CPU31は、最後の基点まで処理を終了したと判定した場合(S151:YES)、主処理を終了させる。数値制御装置30は、同様の手法を用いて、加速度が元の指令加速度を超えている場合に指令加速度を超えないように補正を行っても良い。
The numerical controller 30 filtered the angular velocity ω with an angular velocity filter in S23, and calculated the correction gain based on the result. On the other hand, the numerical control device 30 does not use the angular velocity filter, for example, obtains the angular velocity that changes along the filter locus ^p after applying the acceleration/deceleration filter to the command locus, and uses it to calculate the correction gain. You may
At S45, the speed may exceed a predetermined limit speed. FIGS. 34 and 35 are flow charts of modifications to prevent the speed limit from being exceeded. 18 and 19 denote the same processing, so description thereof will be omitted.
The CPU 31 sets variables i, j, k, and l stored in the RAM 33 to 0, and also initializes the variables and the look-ahead list by emptying the look-ahead list, which will be described later (S111). i is the target starting point in the main process, j is the starting point during the prefetching, k is the index of the command block c during the prefetching of the NC program, and l is the counter. The first index is 0. The CPU 31 reads the command block c k from the NC program stored in the storage device 34 . The NC program contains commanded positions and commanded velocities. The CPU 31 adds the command block ck to the look-ahead list and stores it in the RAM 33 (S113). The CPU 31 executes interpolation processing for all command blocks stored in the look-ahead list stored in the RAM 33 (S115). In the interpolation processing, the command position on the command trajectory Gc extending from the position of the controlled object before movement to the position of the controlled object after movement is interpolated using a plurality of base points p j . A plurality of reference points p j are points that the controlled object passes through every predetermined interpolation cycle when it moves at the command speed from the position before movement to the position after movement. The CPU 31 stores each reference point p j in the RAM 33 in association with the index of the instruction block before interpolation. Next, the CPU 31 executes S17 to S23 and determines whether or not the movement distance ^sj +1 that satisfies ^ sjsi+f/2 ≤ ^ sj+1 has been calculated (S125). f, which represents the time constant of the filter by the number of base points, is calculated by the sum of time constants τt/control period=f. That is, the filtering process requires f base points. If ^s j+1 has been calculated (S125: YES), the CPU 31 substitutes if/2 for the variable l (S127), and shifts the process to S128. This is because the look-ahead list of command blocks stores as many command blocks as are necessary for calculating the correction vector k i+f/2 ε i+f/2 . When the CPU 31 determines that the moving distance ̂s j+1 has not been calculated (S125: NO), it adds 1 to the variable k (S126) and returns the process to S113. In S128, the CPU 31 substitutes s i , ̂s j , and ̂s j+1 into equation (1-3), and calculates an internal division coefficient u between ̂s j and ̂s j+1 . However, variable i in equation (1-3) is changed to variable l. Then, the internal division coefficient u is substituted into the equation (1-2) to determine the corresponding point ^ pj+u on the filter locus Gf corresponding to the base point p l on the command locus Gc (S132). The CPU 31 calculates an error vector ε l indicating the direction and distance from the reference point p l to the corresponding point ^p j + u based on the equation (5-1) (S133). The CPU 31 substitutes the internal division coefficient u into the equation (5-2) to calculate the angular velocity ̂ω j +u at the corresponding point ̂p j+u on the filter locus Gf (S135). The CPU 31 substitutes the calculated angular velocity ^ω j+u into the equation (3-2) to calculate the correction gain kl (S137). The CPU 31 multiplies the calculated correction gain k l by the error vector ε l calculated in the process of S133 to reverse the direction, thereby calculating a correction vector −k l ε l (S139). The CPU 31 calculates a point q l by moving the position of the base point p l on the command locus Gc based on the correction vector −k l ε l calculated in the process of S139 (S141).
After executing S141, the CPU 31 determines whether or not the variable l becomes i+f/2 (S142). When the variable l=i+f/2 (S142: YES), the CPU 31 advances the process to S144. When the variable l does not become i+f/2 (S142: NO), the CPU 31 adds 1 to the variable l and returns the process to S128. The CPU 31 performs a filtering process using an acceleration/deceleration filter on the calculated points from qif/2 to qi +f/2 to calculate ^ qi (S144). Thereafter, the CPU 31 determines whether or not i=0 (S145), and if i=0 (S145: YES), the process proceeds to S149, which will be described later. When the CPU 31 determines that i is not 0 (S145: NO), the speed of qi is calculated from the difference between the command block indicating the position of the base point qi after filtering and the command block of qi -1. (S146), it is determined whether the calculated speed of q i exceeds the command speed of the command block cm (m is the index of the command block) stored in association with p if/2 (S147). When the CPU 31 determines that the speed of ^ qi exceeds the command speed (S147: YES), it calculates "command speed of command block cm /speed of ^ qi " and uses the calculated result as the command speed. (S148), and the process proceeds to S115. Therefore, all command blocks stored in the look-ahead list are at or below the command speed. When determining that the speed of ^q i does not exceed the command speed (S147: NO), the CPU 31 drives the controlled object based on the command block indicating the position of the point ^ qi after filtering. Regarding the command block cm stored in association with p i-f , if the command block cm-2 is included in the look-ahead list of command blocks, the CPU 31 deletes the command block (S149). The CPU 31 determines whether the correction and control processing has been completed up to the last base point (S151). When the CPU 31 determines that there remains a base point that has not been processed (S151: NO), the process returns to S113. When the CPU 31 determines that the process has been completed up to the last base point (S151: YES), the main process is terminated. Numerical controller 30 may use a similar method to correct acceleration so that it does not exceed the commanded acceleration when the acceleration exceeds the original commanded acceleration.

<その他>
S13の処理を行うCPU31は、本発明の「取得部」の一例である。加減速フィルタは、本発明の「第一フィルタ」の一例である。S19及びS21の処理を行うCPU31は、本発明の「第一フィルタリング部」の一例である。S31の処理を行うCPU31は、本発明の「決定部」の一例である。S33の処理を行うCPU31は、本発明の「ベクトル算出部」の一例である。S37の処理を行うCPU31は、本発明の「ゲイン算出部」の一例である。S41の処理を行うCPU31は、本発明の「軌跡補正部」の一例である。S15の処理を行うCPU31は、本発明の「補間部」の一例である。S17の処理を行うCPU31は、本発明の「距離算出部」「角速度算出部」の一例である。角速度フィルタは、本発明の「第二フィルタ」の一例である。S23の処理を行うCPU31は、本発明の「第二フィルタリング部」の一例である。S13の処理は、本発明の「取得工程」の一例である。S21の処理は、本発明の「第一フィルタリング工程」の一例である。S31の処理は、本発明の「決定工程」の一例である。S33の処理は、本発明の「ベクトル算出工程」の一例である。S37の処理は、本発明の「ゲイン算出工程」の一例である。S41の処理は、本発明の「軌跡補正工程」の一例である。S144の処理を行うCPU31は、本発明の「第三フィルタリング部」の一例である。S146の処理を行うCPU31は、本発明の「速度算出部」の一例である。S147
の処理を行うCPU31は、本発明の「速度判定部」の一例である。S148の処理を行うCPU31は、本発明の「速度変更部」の一例である。
<Others>
CPU31 which processes S13 is an example of the "acquisition part" of the present invention. The acceleration/deceleration filter is an example of the "first filter" of the present invention. CPU31 which processes S19 and S21 is an example of the "first filtering part" of the present invention. CPU31 which processes S31 is an example of the "decision part" of the present invention. CPU31 which processes S33 is an example of the "vector calculation part" of the present invention. CPU31 which processes S37 is an example of the "gain calculation part" of the present invention. CPU31 which processes S41 is an example of the "trajectory correction part" of the present invention. CPU31 which processes S15 is an example of the "interpolation part" of the present invention. The CPU 31 that performs the process of S17 is an example of the "distance calculator" and "angular velocity calculator" of the present invention. The angular velocity filter is an example of the "second filter" of the present invention. CPU31 which processes S23 is an example of the "second filtering part" of the present invention. The process of S13 is an example of the "acquisition step" of the present invention. The processing of S21 is an example of the "first filtering step" of the present invention. The process of S31 is an example of the "determining step" of the present invention. The processing of S33 is an example of the "vector calculation step" of the present invention. The processing of S37 is an example of the "gain calculation step" of the present invention. The processing of S41 is an example of the "trajectory correction step" of the present invention. CPU31 which processes S144 is an example of the "third filtering part" of the present invention. CPU31 which processes S146 is an example of the "speed calculation part" of the present invention. S147
is an example of the "speed determination section" of the present invention. CPU31 which processes S148 is an example of the "speed change part" of the present invention.

1 :工作機械
4 :工具
13 :テーブル
30 :数値制御装置
31 :CPU
1: machine tool 4: tool 13: table 30: numerical controller 31: CPU

Claims (11)

工作機械のテーブル及び工具の少なくとも一方である制御対象を移動させる為の指令を取得する取得部と、
前記取得部が取得した前記指令により前記制御対象が移動する時の移動軌跡である指令軌跡に対して第一フィルタを適用する第一フィルタリング部と、
前記指令軌跡上の点である基点に対応する点として、前記指令軌跡に対して前記第一フィルタリング部により前記第一フィルタを適用した結果であるフィルタ軌跡上の対応点を決定する決定部と、
前記基点の夫々から、前記決定部が決定した対応する前記対応点の夫々までの距離と方向を示す誤差ベクトルを、前記基点毎に算出するベクトル算出部と、
前記ベクトル算出部により算出した前記誤差ベクトルに対応するゲインを、前記基点毎に算出するゲイン算出部と、
前記ベクトル算出部により算出した前記誤差ベクトルと、前記ゲイン算出部により算出した前記ゲインとを、対応する前記基点に適用することで、前記指令軌跡を補正する軌跡補正部と、
を備えたことを特徴とする数値制御装置。
an acquisition unit that acquires a command for moving a controlled object that is at least one of a machine tool table and a tool;
a first filtering unit that applies a first filter to a command trajectory, which is a movement trajectory when the controlled object moves according to the command acquired by the acquisition unit;
a determination unit that determines a corresponding point on the filtered trajectory, which is a result of applying the first filter to the commanded trajectory by the first filtering unit, as a point corresponding to a base point that is a point on the commanded trajectory;
a vector calculation unit for calculating, for each base point, an error vector indicating the distance and direction from each of the base points to each of the corresponding corresponding points determined by the determination unit;
a gain calculation unit that calculates, for each base point, a gain corresponding to the error vector calculated by the vector calculation unit;
a trajectory correction unit that corrects the command trajectory by applying the error vector calculated by the vector calculation unit and the gain calculated by the gain calculation unit to the corresponding base points;
A numerical control device comprising:
前記指令は、前記制御対象の少なくとも二つの位置を規定し、
前記取得部により取得した前記指令が規定する前記少なくとも二つの位置の間を前記取得部が取得した指令速度で前記制御対象が移動するときに、前記工作機械の制御周期毎に通過する点を、前記基点として補間する補間部を更に備え、
前記第一フィルタリング部は、
前記補間部により補間された前記基点を経由する前記指令軌跡に対して前記第一フィルタを適用することを特徴とする請求項1に記載の数値制御装置。
the command defines at least two positions of the controlled object;
A point that passes through each control cycle of the machine tool when the controlled object moves between the at least two positions defined by the command acquired by the acquiring unit at the command speed acquired by the acquiring unit, Further comprising an interpolation unit that interpolates as the base point,
The first filtering unit is
2. The numerical controller according to claim 1, wherein said first filter is applied to said command locus passing through said base point interpolated by said interpolator.
前記指令軌跡に基づき、前記補間部により補間した前記基点における接線方向の移動距離を算出する距離算出部を更に備え、
前記第一フィルタリング部は、
前記距離算出部により算出した前記移動距離に基づく一次元軌跡に対して前記第一フィルタを適用し、
前記決定部は、
前記第一フィルタを適用した前記移動距離に基づく前記一次元軌跡を利用して、前記基点に対応する前記対応点を決定することを特徴とする請求項2に記載の数値制御装置。
further comprising a distance calculation unit for calculating a movement distance in a tangential direction at the reference point interpolated by the interpolation unit based on the commanded trajectory;
The first filtering unit is
Applying the first filter to a one-dimensional trajectory based on the movement distance calculated by the distance calculation unit,
The decision unit
3. The numerical controller according to claim 2, wherein the one-dimensional trajectory based on the movement distance to which the first filter is applied is used to determine the corresponding point corresponding to the base point.
前記指令軌跡に基づき、前記補間部により補間した前記基点における角速度を算出する角速度算出部を更に備え、
前記ゲイン算出部は、
前記角速度算出部により算出した前記角速度に基づき、前記ゲインを算出することを特徴とする請求項2に記載の数値制御装置。
further comprising an angular velocity calculator that calculates an angular velocity at the reference point interpolated by the interpolator based on the commanded trajectory;
The gain calculation unit
3. The numerical controller according to claim 2, wherein the gain is calculated based on the angular velocity calculated by the angular velocity calculator.
前記ゲイン算出部は、
前記指令軌跡が円弧状である時に前記フィルタ軌跡を前記指令軌跡と一致させることが可能な前記ゲインと前記角速度との関係に基づいて規定される関数を、前記角速度算出部により算出した前記角速度に適用することで、前記ゲインを前記角速度毎に算出することを特徴とする請求項4に記載の数値制御装置。
The gain calculation unit
A function defined based on the relationship between the gain and the angular velocity that allows the filter trajectory to match the command trajectory when the command trajectory is circular is applied to the angular velocity calculated by the angular velocity calculator. 5. The numerical controller according to claim 4, wherein the gain is calculated for each of the angular velocities by applying.
前記関数は、
前記ゲインが前記角速度毎にプロットされたグラフの包絡線を示すことを特徴とする請求項5に記載の数値制御装置。
The function is
6. A numerical controller according to claim 5, wherein said gain indicates an envelope of a graph plotted for each angular velocity.
前記角速度算出部により算出した前記角速度に対して、前記第一フィルタと同じ時定数を有する第二フィルタを適用する第二フィルタリング部を更に備え、
前記ゲイン算出部は、
前記第二フィルタリング部により前記第二フィルタを適用した後の角速度に基づき、前記ゲインを算出することを特徴とする請求項4から6の何れかに記載の数値制御装置。
A second filtering unit that applies a second filter having the same time constant as the first filter to the angular velocity calculated by the angular velocity calculating unit,
The gain calculation unit
7. The numerical controller according to claim 4, wherein the gain is calculated based on the angular velocity after applying the second filter by the second filtering unit.
前記軌跡補正部が補正した補正軌跡上の点に対して前記第一フィルタを適用する第三フィルタリング部と、
前記第三フィルタリング部でフィルタリング処理した後の基点対応する点の速度を算出する速度算出部と、
前記速度算出部が算出した速度が前記指令速度を超えるか否かを判定する速度判定部と、
前記速度算出部が算出した速度が前記指令速度を超えると前記速度判定部が判定したとき、前記速度算出部が算出した速度を前記指令速度以下に変更する速度変更部とを更に備えたことを特徴とする請求項2から6の何れかに記載の数値制御装置。
a third filtering unit that applies the first filter to points on the corrected trajectory corrected by the trajectory correcting unit;
a speed calculation unit that calculates the speed of the point corresponding to the base point after filtering processing by the third filtering unit;
a speed determination unit that determines whether the speed calculated by the speed calculation unit exceeds the command speed;
and a speed change unit for changing the speed calculated by the speed calculation unit to be equal to or less than the command speed when the speed determination unit determines that the speed calculated by the speed calculation unit exceeds the command speed. 7. A numerical controller according to any one of claims 2 to 6.
前記軌跡補正部が補正した補正軌跡上の点に対して前記第一フィルタを適用する第三フィルタリング部と、
前記第三フィルタリング部でフィルタリング処理した後の基点対応する点の速度を算出する速度算出部と、
前記速度算出部が算出した速度が前記指令速度を超えるか否かを判定する速度判定部と、
前記速度算出部が算出した速度が前記指令速度を超えると前記速度判定部が判定したとき、前記速度算出部が算出した速度を前記指令速度以下に変更する速度変更部とを更に備えたことを特徴とする請求項7に記載の数値制御装置。
a third filtering unit that applies the first filter to points on the corrected trajectory corrected by the trajectory correcting unit;
a speed calculation unit that calculates the speed of the point corresponding to the base point after filtering processing by the third filtering unit;
a speed determination unit that determines whether the speed calculated by the speed calculation unit exceeds the command speed;
and a speed change unit for changing the speed calculated by the speed calculation unit to be equal to or less than the command speed when the speed determination unit determines that the speed calculated by the speed calculation unit exceeds the command speed. 8. A numerical controller according to claim 7.
工作機械のテーブル及び工具の少なくとも一方である制御対象を移動させる為の指令を取得する取得工程と、
前記取得工程が取得した前記指令により前記制御対象が移動する時の移動軌跡である指令軌跡に対して第一フィルタを適用する第一フィルタリング工程と、
前記指令軌跡上の点である基点に対応する点として、前記指令軌跡に対して前記第一フィルタリング工程により前記第一フィルタを適用した結果であるフィルタ軌跡上の対応点を決定する決定工程と、
前記基点の夫々から、対応する前記対応点の夫々までの距離と方向を示す誤差ベクトルを、前記基点毎に算出するベクトル算出工程と、
前記ベクトル算出工程により算出した前記誤差ベクトルに対応するゲインを、前記基点毎に算出するゲイン算出工程と、
前記ベクトル算出工程により算出した前記誤差ベクトルと、前記ゲイン算出工程により算出した前記ゲインとを、対応する前記基点に適用することで、前記指令軌跡を補正する軌跡補正工程と、
を備えたことを特徴とする数値制御方法。
an acquiring step of acquiring a command for moving a controlled object, which is at least one of a machine tool table and a tool;
a first filtering step of applying a first filter to a command trajectory, which is a movement trajectory when the controlled object moves according to the command acquired by the acquiring step;
a determining step of determining a corresponding point on the filtered trajectory, which is the result of applying the first filter to the commanded trajectory in the first filtering step, as a point corresponding to a base point that is a point on the commanded trajectory;
a vector calculation step of calculating, for each of the base points, an error vector indicating the distance and direction from each of the base points to each of the corresponding corresponding points;
a gain calculation step of calculating, for each base point, a gain corresponding to the error vector calculated by the vector calculation step;
a trajectory correction step of correcting the command trajectory by applying the error vector calculated by the vector calculation step and the gain calculated by the gain calculation step to the corresponding base points;
A numerical control method comprising:
工作機械のテーブル及び工具の少なくとも一方である制御対象を移動させる為の指令を取得する取得工程と、
前記取得工程が取得した前記指令により前記制御対象が移動する時の移動軌跡である指令軌跡に対して第一フィルタを適用する第一フィルタリング工程と、
前記指令軌跡上の基点に対応する点として、前記指令軌跡に対して前記第一フィルタリング工程により前記第一フィルタを適用した結果であるフィルタ軌跡上の対応点を決定する決定工程と、
前記基点の夫々から、対応する前記対応点の夫々までの距離と方向を示す誤差ベクトルを、前記基点毎に算出するベクトル算出工程と、
前記ベクトル算出工程により算出した前記誤差ベクトルに対応するゲインを、前記基点毎に算出するゲイン算出工程と、
前記ベクトル算出工程により算出した前記誤差ベクトルと、前記ゲイン算出工程により算出した前記ゲインとを、対応する前記基点に適用することで、前記指令軌跡を補正する軌跡補正工程と、
を、コンピュータに実行させる為の数値制御プログラムを記憶した記憶媒体。
an acquiring step of acquiring a command for moving a controlled object, which is at least one of a machine tool table and a tool;
a first filtering step of applying a first filter to a command trajectory, which is a movement trajectory when the controlled object moves according to the command acquired by the acquiring step;
a determining step of determining, as a point corresponding to the base point on the commanded trajectory, a corresponding point on the filtered trajectory that is the result of applying the first filter to the commanded trajectory in the first filtering step;
a vector calculation step of calculating, for each of the base points, an error vector indicating the distance and direction from each of the base points to each of the corresponding corresponding points;
a gain calculation step of calculating, for each base point, a gain corresponding to the error vector calculated by the vector calculation step;
a trajectory correction step of correcting the command trajectory by applying the error vector calculated by the vector calculation step and the gain calculated by the gain calculation step to the corresponding base points;
A storage medium storing a numerical control program for causing a computer to execute
JP2023024980A 2022-02-22 2023-02-21 Numerical control device, numerical control method, and storage medium Pending JP2023122566A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022025743 2022-02-22
JP2022025743 2022-02-22

Publications (1)

Publication Number Publication Date
JP2023122566A true JP2023122566A (en) 2023-09-01

Family

ID=87799075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023024980A Pending JP2023122566A (en) 2022-02-22 2023-02-21 Numerical control device, numerical control method, and storage medium

Country Status (1)

Country Link
JP (1) JP2023122566A (en)

Similar Documents

Publication Publication Date Title
Weck et al. Sharp corner tracking using the IKF control strategy
EP1439440A2 (en) Servo motor drive control device
JP3545006B2 (en) Two-degree-of-freedom controller and servo controller for electric motor
US20050228533A1 (en) Machining time calculating apparatus
JP3898686B2 (en) Numerical controller
US6469467B1 (en) Servo control apparatus and method of stabilizing same
KR0139526B1 (en) Numerical Control Unit for Grinding Machine
US11029650B2 (en) Machine learning device, control system, and machine learning method
CN109954955B (en) Robot system
JP2001293638A (en) Control device
JPH10254526A (en) Numerical controller
JPH11102211A (en) Method and device for servo control
JP3135738B2 (en) Numerical control unit
JP2003058218A (en) Controller for driving and controlling servo motor
CN110941242A (en) Motor control device
JP2023122566A (en) Numerical control device, numerical control method, and storage medium
JP3749222B2 (en) Numerical controller
CN112130524A (en) Numerical controller, program recording medium, and control method
JPH0830973B2 (en) Method and apparatus for correcting tool feed speed in numerical controller
JP7022261B1 (en) Frequency characteristic prediction device and frequency characteristic prediction method
US5159250A (en) Robot control method
CN112236729B (en) Numerical control device
JP2006254630A (en) Motor controller and control method therefor
JP2021071895A (en) Vibration suppressing method and vibration suppressing device
KR100342256B1 (en) robot control system and control method thereof