(57)【特許請求の範囲】
【請求項１】
主軸モータを目標速度にまで加速してからオリエント停止させるときに前記主軸モータの回転停止位置を所定の位置に位置決めする機能を有するものであって、位置指令と位置フィードバックとの位置偏差を算出し、この位置偏差に位置ループゲインを乗ずることにより速度指令を算出し、この速度指令とフィードバック速度との速度偏差を算出し、この速度偏差に基づく電流指令により前記主軸モータを通電制御するように構成された主軸モータの制御装置において、
前記主軸モータに対する加速指令終了後に、前記目標速度と前記フィードバック速度との差が所定の許容速度差よりも小さくなったときに、前記目標速度または前記フィードバック速度を前記位置ループゲインで除して得られる理論偏差を前記位置偏差として置き換えるように位置偏差量を操作することにより、前記速度指令を前記目標速度または前記フィードバック速度に一致させるように制御することを特徴とする主軸モータの制御装置。
【請求項２】
前記位置偏差量を操作したときの位置偏差と前記理論偏差との差分を主軸１回転のパルス量で除した余りとして算出した回転位置ずれ量を記憶し、前記主軸モータをオリエント停止させるときに前記位置偏差を前記回転位置ずれ量だけ補正するように構成したことを特徴とする請求項１記載の主軸モータの制御装置。
【請求項３】
前記主軸モータをオリエント停止させる場合、前記フィードバック速度が所定の許容速度差よりも小さくなったときに、前記位置偏差に主軸１回転のパルス量の整数倍を加減算することにより、前記速度指令を（フィードバック速度−主軸１回転パルス量×位置ループゲイン）よりも大きく且つフィードバック速度以下とすることを特徴とする請求項２記載の主軸モータの制御装置。
【請求項４】
前記主軸モータをオリエント停止させる場合、前記位置偏差の加減算操作とともに、前記位置ループゲインを当該位置偏差の加減算操作前の値より小さい値の停止時用初期ゲインに設定し、その後、前記位置ループゲインを徐々に高くすることを特徴とする請求項３記載の主軸モータの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、位置ループ制御、速度ループ制御及び電流ループ制御を組んで、主軸モータの位置・速度制御を実行するように構成された主軸モータの制御装置に関する。
【０００２】
【発明が解決しようとする課題】
主軸モータは、高速域のトルクが大きく低下するため、主軸回転指令時２段加減速制御を実行することにより、主軸モータが持つ最大トルクに近づけるように制御している。この制御の加速パターン（主軸回転数の時間変化を示す特性図）を図２２に示し、トルク−回転数特性（トルクと主軸回転数との関係を示す特性図）を図２３に示す。上記制御の場合、図２３からわかるように、まだ最大トルクを使っていない領域（未使用領域）がある。
【０００３】
そこで、応答性、即ち、加速及び減速に要する時間を短くするために、時定数１及び時定数２を短くすると、実最大トルクよりも必要トルクが大きくなる領域が増えることから、指令に対する実速度の遅れが増える。このため、実速度が指令速度を超えてしまうオーバーシュート量が大きくなり（図２２に示すオーバーシュート量に比べて）、その結果、主軸を破損させるおそれが生ずる。尚、上記オーバーシュートは、位置ループ制御を組んでいる場合に、指令に対する遅れが大きくなると、指令が定常速度に達した後に、遅れを取り戻すために起こる現象である。この場合、位置ループ制御を組まなければ、この現象は発生しないが、工具交換時に主軸をオリエント位置に位置決めする必要があるため、常に位置ループ制御を組む必要がある。
【０００４】
また、主軸モータの最大トルク特性に沿った加減速パターンを与える制御方法も考えられるが、この制御方法の場合、主軸モータの最大トルクは、電源電圧が下がると，下がってしまうため、オーバーシュートを発生させないようにするためには、保証電源電圧のＭＩＮ値で調整しなければならない。このため、電源電圧が高いときには、従来構成と同じように、トルクの未使用領域が発生してしまう。
【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的は、位置ループ制御を組む構成としながら、最大トルクを使いきるように構成し、また、オーバーシュートの発生を極力防止することができる主軸モータの制御装置を提供するにある。
【０００６】
【課題を解決するための手段】
請求項１の発明によれば、主軸モータを目標速度にまで加速してからオリエント停止させるときに前記主軸モータの回転停止位置を所定の位置に位置決めする機能を有するものであって、位置指令と位置フィードバックとの位置偏差を算出し、この位置偏差に位置ループゲインを乗ずることにより速度指令を算出し、この速度指令とフィードバック速度との速度偏差を算出し、この速度偏差に基づく電流指令により前記主軸モータを通電制御するように構成された主軸モータの制御装置において、前記主軸モータに対する加速指令終了後に、前記目標速度と前記フィードバック速度との差が所定の許容速度差よりも小さくなったときに、前記目標速度または前記フィードバック速度を前記位置ループゲインで除して得られる理論偏差を前記位置偏差として置き換えるように位置偏差量を操作することにより、前記速度指令を前記目標速度または前記フィードバック速度に一致させるように制御する構成としたので、位置ループ制御を組む構成とすると共に、最大トルクを使いきるように構成しても、オーバーシュートの発生を極力防止することができる。
上記構成の場合、請求項２の発明のように、前記位置偏差量を操作したときの位置偏差と前記理論偏差との差分を主軸１回転のパルス量で除した余りとして算出した回転位置ずれ量を記憶し、前記主軸モータをオリエント停止させるときに前記位置偏差を前記回転位置ずれ量だけ補正するように構成しても良い。
【０００７】
また、請求項３の発明のように、前記主軸モータをオリエント停止させる場合、前記フィードバック速度が所定の許容速度差よりも小さくなったときに、前記位置偏差に主軸１回転のパルス量の整数倍を加減算することにより、前記速度指令を（フィードバック速度−主軸１回転パルス量×位置ループゲイン）よりも大きく且つフィードバック速度以下とするように構成することが好ましい。
【０００８】
更に、請求項４の発明のように、前記主軸モータをオリエント停止させる場合、前記位置偏差の加減算操作とともに、前記位置ループゲインを当該位置偏差の加減算操作前の値より小さい値の停止時用初期ゲインに設定し、その後、前記位置ループゲインを徐々に高くするように構成しても良い。
【０００９】
【発明の実施の形態】
以下、本発明の一実施例について、図１ないし図２１を参照しながら説明する。まず、図１は、本実施例の主軸モータの制御装置１の電気的構成を示すブロック図である。この図１に示すように、主軸モータの制御装置１は、数値制御部（ＮＣ）２と、サーボアンプ３とから構成されている。
【００１０】
上記数値制御部２は、モーション指令部４と、偏差操作制御部５と、加算器６と、位置ループゲインＫｐとを備えて構成されている。モーション指令部４は、例えば加工プログラムを解釈して位置指令Ｐｃｏｍを生成し、この位置指令Ｐｃｏｍを加算器６と偏差操作制御部５とへ送るように構成されている。加算器６は、上記位置指令Ｐｃｏｍと、実際の位置、即ち、主軸モータ７のエンコーダ８から出力された位置フィードバックＰｆｂとの位置偏差ｅを算出する機能を有している。そして、上記位置偏差ｅに位置ループゲインＫｐを乗ずることにより、速度指令Ｎｃｏｍが算出され、この速度指令Ｎｃｏｍはサーボアンプ３へ与えられるように構成されている。
【００１１】
偏差操作制御部５は、モーション指令部４からの位置指令Ｐｃｏｍと、上記エンコーダ８からの位置フィードバックＰｆｂとを受け取り、位置偏差ｅと位置ループゲインＫｐを、後述するようにして変更（操作）する機能を有している。尚、上記偏差操作制御部５は、入力した位置フィードバックＰｆｂの情報を微分することにより、フィードバック速度Ｎｆｂの情報を得るように構成されている。
【００１２】
また、サーボアンプ３は、数値制御部２からの速度指令Ｎｃｏｍ通り主軸モータ７が動作するように、主軸モータ７の電流を制御するように構成されている。この場合、サーボアンプ３の加算器９においては、速度指令Ｎｃｏｍと、実際の速度、即ち、エンコーダ８からの位置フィードバックＰｆｂを微分回路１０により微分して得られたフィードバック速度Ｎｆｂとの速度偏差Ｖｅが算出されるように構成されている。
【００１３】
そして、この速度偏差Ｖｅに速度ループ比例ゲインＫｖｐを乗ずることにより得られた電流指令（比例）Ｉｐ、上記速度偏差Ｖｅを積分回路１１により積分して、その積分結果に速度ループ積分ゲインＫｖｉを乗ずることにより得られた電流指令（積分）Ｉｉとを、加算器１２により加算することにより、電流指令Ｉｃｏｍが算出される。この電流指令Ｉｃｏｍに従うように、電流制限部１３及び電流制御部１４によって主軸モータ７が通電制御される構成となっている。電流制限部１３は、過大な電流指令が発生したような場合に、主軸モータ７と電流制御部１４で決まる最大電流に制限する機能を有している。この場合、ある決まった最大トルクが発生する構成となっている。この特性により、サーボアンプ３の最大トルク以上の時定数を設定した場合でも、最大トルクカーブに従って、加減速されるようになっている。
【００１４】
次に、偏差操作制御部５の制御内容について、図２及び図３のフローチャートも参照して説明する。まず、主軸モータ７の加速時（目標速度例えば１００００ｒｐｍまで加速するとき）において位置偏差ｅを操作する制御の内容について、図２のフローチャートに従って説明する。この場合、主軸モータ７の加速中に、主軸の回転指令（目標速度）値と実速度（フィードバック速度Ｎｆｂ）との差が許容速度差（所定速度）よりも小さくなったときに、位置偏差ｅを理論偏差に置き換える操作を実行するように構成されている。
【００１５】
具体的には、まず図２のステップＳ１において、主軸の回転指令（速度指令）があるか否かを判断する。ここで、主軸の回転指令がある場合は、ステップＳ１にて「ＹＥＳ」へ進み、主軸定常時偏差補正有効ＳＷをオンする（ステップＳ２）。また、主軸の回転指令がない場合は、ステップＳ１にて「ＮＯ」へ進み、ステップＳ１の処理へ戻る。続いて、ステップＳ３へ進み、主軸の加速指令が終了したか否かを判断する。ここで、主軸の加速指令が終了していれば、「ＹＥＳ」へ進み、主軸定常時偏差補正有効ＳＷがオンであるか否かを判断する（ステップＳ４）。
【００１６】
そして、ステップＳ５へ進み、主軸の目標速度（例えば１００００ｒｐｍ）と実速度（フィードバック速度Ｎｆｂ）との差の絶対値が、予め決められた許容速度差１よりも小さいか否かを判断する。この場合、上記差の絶対値が許容速度差１よりも小さいときは、「ＹＥＳ」へ進み、ステップＳ６へ進み、まず、主軸定常時偏差補正有効ＳＷをオフする。続いて、理論偏差［ｐｕｌｓｅ］を次の式により計算する。
【００１７】
理論偏差＝目標速度Ｎ［ｒｐｍ］×エンコーダ分解能［ｐｕｌｓｅ／ｒｅｖ］
／位置ループゲインＫｐ［ｒａｄ／ｓｅｃ］／６０［ｓｅｃ／ｍｉｎ］
そして、回転位置ずれＰｅ量を次の式で計算する。
【００１８】
Ｐｅ＝余り（（現在偏差−理論偏差）／エンコーダ分解能）
更に、主軸位置偏差を上記計算した理論偏差に置き換える処理を実行するように構成されている。この置き換え処理は１回だけ行われる（図２に示すフローチャート参照）。
続いて、ステップＳ７へ進み、主軸モータ７のサーボアンプ３へ与える速度指令Ｎｃｏｍを演算する。さらに、ステップＳ８へ進み、演算した主軸モータ７の速度指令Ｎｃｏｍをサーボアンプ３へ送信するように構成されている。
【００１９】
また、上記各判断ステップＳ３、Ｓ５において、それぞれ「ＮＯ」の場合は、ステップＳ７へ進むように構成されている。また、ステップＳ４において、「ＮＯ」と判断された場合、加速時の偏差処理が終了ようになっている。
【００２０】
このような構成の本実施例において、最大トルクを超える時定数を与えた場合の加速時の速度変化と使用トルクを、実験（シミュレーション）によって測定した結果を図４と図５に示す。図４において、線Ｐ１は位置指令Ｐｃｏｍの時間微分、線Ｐ２はフィードバック速度Ｎｆｂ、線Ｐ３は速度指令Ｎｃｏｍ、線Ｐ４は位置偏差ｅ、線Ｐ５は電流指令Ｉｃｏｍである。図５において、線Ｐ６は位置指令Ｐｃｏｍから逆算した必要トルク、線Ｐ７は実使用トルク、線Ｐ８はサーボ最大トルクである。
【００２１】
上記図４及び図５によれば、フィードバック速度Ｎｆｂが目標速度に対して、予め設定された許容速度差１（本実施例では例えば０）内に入ったときに、位置偏差ｅを強制的に理論位置偏差に置き代えることから、速度指令Ｎｃｏｍが目標速度（例えば１００００ｒｐｍ）に一致するようになり、このため、オーバーシュートが発生しないし、また、立ち上がりにかかる時間も短く（早く）なっていることがわかる。
【００２２】
そして、本実施例では、上記位置偏差操作時の操作量から回転位置ずれＰｅ量、即ち、回転ずれ分を把握（記憶）しておき、減速オリエンテーション時に、そのずれ分を補正するように構成することが好ましい。また、上記実施例では、許容速度差１を０としたが、これに代えて、許容速度差１を０以外の値を設定し、早いタイミングで位置偏差操作を行うと共に、速度指令Ｎｃｏｍが現在のフィードバック速度Ｎｆｂに等しくなるように位置偏差操作するように構成しても良い。この構成の場合、理論偏差は次の式で計算する。
理論偏差＝フィードバック速度［ｒｐｍ］×エンコーダ分解能［ｐｕｌｓｅ／ｒｅｖ］
／位置ループゲインＫｐ［ｒａｄ／ｓｅｃ］／６０［ｓｅｃ／ｍｉｎ］
このように構成すると、速度ループの積分項にたまった分の電流指令の応答が遅くなり、速度ループでのオーバーシュートを防ぐのに有効である。
【００２３】
ここで、従来技術（図２２及び図２３参照）によって制御した場合の加速時の速度変化と使用トルクを、実験（シミュレーション）によって測定した結果を図６と図７に示す。尚、図６、図７における各線Ｐ１〜Ｐ８は、図４及び図５の各線Ｐ１〜Ｐ８と同じである。上記図６及び図７によれば、オーバーシュートを発生させないようにするために、最大トルクを極力超えないような時定数を与えていることから、立ち上がりにかなりの時間がかかっていることがわかる。
【００２４】
このような従来技術の制御において、最大トルクを超える時定数（本実施例の図４及び図５の場合と同じ時定数）を与えた場合の加速時の速度変化と使用トルクを、実験（シミュレーション）によって測定した結果を図８と図９に示す。尚、図８、図９における各線Ｐ１〜Ｐ８は、図４及び図５の各線Ｐ１〜Ｐ８と同じである。上記図８及び図９によれば、フィードバック速度Ｎｆｂが目標速度に達しても、位置ループの遅れを取り戻すために、大きなオーバーシュートが生じていることがわかる。
【００２５】
次に、主軸モータ７の減速停止時（オリエント停止するとき）において位置偏差ｅを操作する制御の内容について説明する。最初に、主軸モータ７の減速停止時の位置ループゲインＫｐについて考察してみる。
【００２６】
主軸モータ７のオリエンテーションを短時間で行わせるためには、位置ループゲインＫｐを高くすることが有効である。本実施例では、主軸モータ７の停止間際に位置偏差量を操作する（具体的には、速度指令Ｎｃｏｍをフィードバック速度Ｎｆｂに近づける）ときに、位置ループゲインＫｐも操作しているが、位置偏差ｅを操作するタイミングが早く、位置ループゲインＫｐが高いと、オーバーシュートを生ずる。以下、この場合の動作について理論的に説明する。
【００２７】
最大イナーシャＪｍａｘ［ｋｇｍ２］のときに、出せる瞬時トルクの保証値（低速域）をＴｍａｘ［Ｎｍ］とすると、出せる減速度α［ｒａｄ／ｓ２］は、次の通りとなる。
【００２８】
α［ｒａｄ／ｓ２］＝Ｔｍａｘ［Ｎｍ］／Ｊｍａｘ［ｋｇｍ２］      （１）
エンコーダ８の分解能をＲＥＳＯ［ｐｕｌｓｅ／ｒｅｖ］とすると、上記式（１）をｒａｄ系からｐｕｌｓｅ系へ単位変換した減速度αｐ［ｐｕｌｓｅ／ｓ２］は、次の通りとなる。
【００２９】
αｐ［ｐｕｌｓｅ／ｓ２］＝α［ｒａｄ／ｓ２］×ＲＥＳＯ［ｐｕｌｓｅ／ｒｅｖ］／（２π［ｒａｄ／ｒｅｖ］）
＝ＲＥＳＯ×Ｔｍａｘ／（２π・Ｊｍａｘ）    （２）
従って、最大トルクで減速停止しようとした場合は、（２）式で求められる傾きで減速する（尚、これ以上の傾きで減速することは不可能である）。今、減速途中で位置偏差ｅを操作するときの回転数（回転速度）をＮｘ［ｐｕｌｓｅ／ｓ］とし、位置偏差操作により速度指令ＮｃｏｍをＮｘに一致させたとする。この場合、継続して最大トルクを出し続けて減速停止した場合の操作時から停止までに要する時間は、最短でＮｘ／αｐである。
【００３０】
そして、図１０に示す３角形の面積が、最大トルクで減速停止したときの位置偏差操作後から停止までの総フィードバックパルスΣＰ［ｐｕｌｓｅ］であり、次の式で表わされる。
【００３１】
ΣＰ［ｐｕｌｓｅ］＝１／２・Ｎｘ・Ｎｘ／αｐ
＝Ｎｘ２／（２・αｐ）                        （３）
また、位置偏差操作以降の位置ループゲインをＫｐｘ［ｒａｄ／ｓ］とし、位置偏差操作を位置指令が０になった後に行うとするならば、位置偏差操作時に速度指令Ｎｃｏｍがフィードバック速度Ｎｆｂに等しく偏差操作する場合は、位置偏差操作直後の位置偏差ｅｘは、次の式で表わされる。
【００３２】
ｅｘ［ｐｕｌｓｅ］＝Ｎｘ［ｐｕｌｓｅ／ｓ］／Ｋｐｘ［ｒａｄ／ｓ］
ここで、位置偏差操作時は、既に位置指令が０になった後としているので、位置偏差操作時の位置偏差ｅｘが位置偏差操作後の総フィードバックパルスΣＰより大きくないと、位置偏差ｅは符号逆転（すなわち、オーバーシュート）が生ずる。
【００３３】
従って、オーバーシュートを発生させないための条件は、次の通りとなる。
【００３４】
ｅｘ＞ΣＰ                                                    （５）
Ｎｘ／Ｋｐｘ＞Ｎｘ２／（２・αｐ）
Ｎｘ＜２・αｐ／Ｋｐｘ
＜２・（ＲＥＳＯ×Ｔｍａｘ／（２π・Ｊｍａｘ））／Ｋｐｘ
＜ＲＥＳＯ・Ｔｍａｘ／（π・Ｊｍａｘ・Ｋｐｘ）
Ｎｘ［ｐｕｌｓｅ／ｓ］を［ｒｐｍ］に変換する場合は、両辺に６０／ＲＥＳＯをかければよいから、
Ｎｘ［ｒｐｍ］＜６０・Ｔｍａｘ［Ｎｍ］／（π・Ｊｍａｘ［ｋｇｍ２］・Ｋｐｘ［ｒａｄ／ｓ］）                                              （６）
この場合、Ｊｍａｘ、Ｔｍａｘは、サーボ仕様、メカ仕様が決まれば、一義的に決まる固定値であるから、上記（６）式より、位置ループゲインＫｐの値の大きさによって、位置偏差を操作するタイミングが決まることがわかる。早くオリエンテーションを行うためには、位置ループゲインＫｐが大きい方がよいが、そうすると、位置偏差操作を停止に近い回転数で行わなければならない。
【００３５】
ここまでの説明では、位置偏差操作により速度指令Ｎｃｏｍをフィードバック速度Ｎｆｂに一致させることを前提としている。しかし、現実的には、オリエント位置への減速停止における位置偏差操作は、加速時における位置偏差操作と異なり、次の制限がある。
【００３６】
オリエントずれを起こさせないようにするために、位置偏差操作は、図３に示すように、主軸位置偏差を主軸加速時の位置偏差操作時の回転位置ずれＰｅ量分だけ補正した上で、位置偏差操作量をエンコーダ分解能（即ち、主軸１回転パルス量）の整数倍（Ｎ倍）とする必要がある（ステップＳ１７）。
【００３７】
数値制御部２は、プログラム上でオリエント減速停止の指令を認識後、パラメータで与えられた時定数、現在位置指令に基づいて、オリエント停止までの位置指令Ｐｃｏｍを生成する。減速停止での位置偏差操作は、この位置指令Ｐｃｏｍがすべて分配されてから行う。位置偏差操作は、主軸位置偏差を主軸加速時の位置偏差操作時の回転位置ずれＰｅ量分だけ補正した上で行うので、加速時と同様に速度指令Ｎｃｏｍがフィードバック速度Ｎｆｂと等しくなるように位置偏差量を置き代えると、位置がずれてしまう。
【００３８】
従って、位置ずれを起こさないために、減速時には、エンコーダ分解能のＮ倍の加減算（即ち、主軸１回転パルス量の整数倍の加減算）を行う必要があり、速度指令Ｎｃｏｍをフィードバック速度値に近づけるという操作になる。これは、言い換えると、位置偏差操作タイミングを、フィードバック速度Ｎｆｂがある値以下に達したときに設定するならば（即ち、位置偏差操作タイミングをフィードバック速度Ｎｆｂに応じて作るならば）、そのときどきによって位置偏差操作後の速度指令Ｎｃｏｍはバラツクことになる。操作後の速度指令Ｎｃｏｍをフィードバック速度Ｎｆｂ以下にしないと、継続的に減速するための最大トルクを発生させなくなり（即ち、速度指令Ｎｃｏｍがフィードバック速度Ｎｆｂを上回ると、減速状態から加速状態になるため、電流指令は反転する）、停止時間のロスが発生する。このため、位置偏差操作後の速度指令Ｎｃｏｍは、フィードバック速度Ｎｆｂ以下になるように制御する。以上のことから、位置偏差操作後の速度指令Ｎｃｏｍは、最大Ｋｐｘ分解能分ずれるので、次の(７)式の範囲でばらつく。
【００３９】
フィードバック速度−分解能×Ｋｐ＜位置偏差操作後の速度指令≦フィードバック速度
（７）
この式(７)から、位置ループゲインＫｐが大きいと、位置偏差操作直後の速度指令Ｎｃｏｍのばらつきが大きくなってしまうことがわかる。この結果と、前記式(６)の結果とを併せて考えると、オリエンテーション時間を短くするために、位置ループゲインＫｐを高くすると、位置偏差操作タイミングを低回転数に設定する必要があるが、上記式（７）により、ばらつきが大きくなり、最悪、速度指令Ｎｃｏｍが逆転する可能性があるということがわかる。
【００４０】
このことを計算式で求めてみる。位置偏差操作時に、速度指令Ｎｃｏｍがフィードバック速度Ｎｆｂに対してエンコーダ分解能分下回った場合は、（５）式より、
ｅｘ−ＲＥＳＯ＞ΣＰ
Ｎｘ／Ｋｐｘ−ＲＥＳＯ＞Ｎｘ２／（２・αｐ）
Ｎｘ２／（２・αｐ）−Ｎｘ／Ｋｐｘ＋ＲＥＳＯ＜０              （８）
となり、Ｎｘの２次の方程式になる。この(８)式において、不等号をイコールに置き代えた方程式のＮｘが実数根を持つための条件は、２次方程式ａｘ２＋ｂｘ＋ｃ＝０の根の判別式ｂ２−４ａｃ＞０より、次の通りとなる。
【００４１】
（１／Ｋｐｘ）２−４・ＲＥＳＯ／（２・αｐ）＞０
Ｋｐｘ＜（αｐ／（２・ＲＥＳＯ））１／２                        （９）
（２）式を（９）式に代入すると、次の式が得られる。
【００４２】
Ｋｐｘ＜（Ｔｍａｘ／（４π・Ｊｍａｘ））１／２                （１０）
即ち、位置ループゲインＫｐの最大値は、メカ条件で決まるＪｍａｘ、Ｔｍａｘによって決まることになる。これを、Ｊｍａｘ＝０．０００５５［ｋｇｍ２］、Ｔｍａｘ＝４３［Ｎｍ］のシステムに対して適用した具体例について、以下説明する。
【００４３】
まず、位置偏差操作時にフィードバック速度Ｎｆｂに速度指令Ｎｃｏｍを一致させた場合の各Ｋｐｘに対する偏差操作最大回転数Ｎｘと、各Ｋｐｘで位置偏差操作時、エンコーダ分解能分の偏差があったとき、速度指令としてどのくらいに相当するかを表わしたグラフを図１１に示す。この図１１において、実線Ｌ１は偏差操作最大回転数Ｎｘを示し、破線Ｌ２は分解能分のずれの速度指令量を示している。
【００４４】
位置ループゲインＫｐが低い場合は、位置偏差操作時の回転数も７５００ｒｐｍ以下で、且つエンコーダ分解能分のずれがあっても速度指令Ｎｃｏｍに現れる量としては１２００ｒｐｍと小さい。しかし、位置ループゲインＫｐが高い場合は、操作するタイミングも低回転になっていき、エンコーダ分解能分のずれが速度指令Ｎｃｏｍに与える影響も大きくなる。
【００４５】
次に、位置偏差操作時に速度指令Ｎｃｏｍをフィードバック速度Ｎｆｂに一致させれない場合について考察してみる。位置ループゲインＫｐ＝２０のときで、エンコーダ分解能分（即ち、１回転分）のずれがある場合に対して、上記（８）式の左辺を縦軸にし、偏差操作最大回転数Ｎｘを横軸にしてグラフを描くと、図１２のようになる。この図１２の放物線Ｑ１が０以下になるＮｘが（８）式を満足することになる。
【００４６】
図１１の場合、即ち、速度指令Ｎｃｏｍをフィードバック速度Ｎｆｂに一致させた場合は、Ｋｐ＝２０のときにＮｘが７５００ｒｐｍ以下であれば、オーバーシュートを発生させなかったが、上記図１２の場合は、Ｎｘを７００〜６８００ｒｐｍの間に位置偏差操作しないと、オーバーシュートを発生させてしまう。Ｋｐを２０から大きくしていくと、図１２の放物線は上へシフトしていき、あるＫｐで０と交わらなくなる。（１０）式より、その値が求まる。本実施例の場合、Ｋｐ＝２４．９の場合である。この場合のグラフを描くと、図１３に示すようになる。
【００４７】
即ち、Ｋｐ＝２４．９としたときに、エンコーダ分解能分のずれがあった場合は、Ｎｘが３０００ｒｐｍ以外で位置偏差操作を行うと、必ずオーバーシュートを生ずる。更に、Ｋｐが２４．９以上の場合には、エンコーダ分解能分のずれが生じた場合、どのような偏差操作回転数であっても必ずオーバーシュートが発生することになる。
【００４８】
この問題点を解決するために、本実施例においては、位置偏差操作を実行する時には、まず、位置ループゲインＫｐを低く設定し、その後、ある時定数で所定の高ゲインまで徐々にゲインを高くしていくように構成している。これにより、オーバーシュートをどんなときでも発生させず、且つ、オリエント位置決めを早く終了させる減速停止制御を実現している。
【００４９】
次に、本実施例の主軸モータ７の減速停止時における位置偏差操作の制御の具体的内容について、図３のフローチャートに従って説明する。まず、図３のステップＳ１１において、主軸の停止指令（速度指令）があるか否かを判断する。ここで、主軸の停止指令がある場合は、ステップＳ１１にて「ＹＥＳ」へ進み、主軸停止時偏差補正有効ＳＷをオンする（ステップＳ１２）。一方、ステップＳ１１にて主軸の停止指令がない場合は、「ＮＯ」へ進み、ステップＳ１１の処理へ戻る。続いて、ステップＳ１３へ進み、主軸の減速指令が終了したか否かを判断する。ここで、主軸の減速指令が終了していれば、「ＹＥＳ」へ進み、主軸定常時偏差補正有効ＳＷがオンであるか否かを判断する（ステップＳ１４）。
【００５０】
そして、ステップＳ１５へ進み、主軸の実速度（フィードバック速度Ｎｆｂ）の絶対値が、予め決められた許容速度差２よりも小さいか否かを判断する。この場合、上記実速度の絶対値が許容速度差２よりも小さいときは、「ＹＥＳ」へ進み、ステップＳ１６へ進み、まず、主軸停止時偏差補正有効ＳＷをオフする。
【００５１】
続いて、ステップＳ１７へ進み、主軸位置偏差に主軸加速時の回転位置ずれＰｅ量分を補正する。そして、位置ループゲインＫｐを切り換える。この場合、それまでのゲインＫｐ１を停止時初期ゲインＫｐ２（Ｋｐ１よりも小さい値のゲイン）に切り換える。更に、サーボアンプへ与えられる速度指令Ｎｃｏｍが、主軸フィードバック速度Ｎｆｂを超えず、且つ、近づけるように、主軸偏差量をエンコーダ分解能の整数倍分加減算する。更にまた、ゲイン切換ＳＷをオンする。
【００５２】
そして、ステップＳ１８へ進み、ゲイン切換ＳＷがオンであるか否かを判断する。ここで、オンであれば、ステップＳ１９へ進み、ゲイン切換時定数ｔＫｐ３分の時間が経過したか否かを判断する。ここで、経過していれば、ステップＳ２０へ進み、高ゲインＫｐ３保持時間が経過したか否かを判断する。ここで、経過していれば、ステップＳ２１へ進み、オリエント時ゲインＫｐ４を主軸位置ループゲインＫｐとすると共に、ゲイン切替ＳＷをＯＦＦとする。また、ステップＳ２０において、経過していないなら、ステップＳ２５へ進み、高ゲインＫｐ３を主軸位置ループゲインＫｐとする。
【００５３】
そして、上記ステップＳ２１を実行した後は、ステップＳ２２へ進み、サーボアンプ３へ与える主軸の速度指令Ｎｃｏｍを演算する。続いて、ステップＳ２３へ進み、上記演算した主軸の速度指令Ｎｃｏｍをサーボアンプ３へ送信した後、処理を終了するように構成されている。
【００５４】
また、上記ステップＳ１９において、ゲイン切換時定数ｔＫｐ３分の時間が経過していなければ、ステップＳ２４へ進み、主軸位置ループゲインの増分量を追加する。この場合、増分量は、次の通りである。
【００５５】
（Ｋｐ３−Ｋｐ２）／（ｔＫｐ３／処理周期）
そして、上記増分量を主軸位置ループゲインＫｐに加算すればよい。この後は、ステップＳ２６へ進み、サーボアンプ３へ与える主軸の速度指令Ｎｃｏｍを演算する。続いて、ステップＳ２７へ進み、上記演算した主軸の速度指令Ｎｃｏｍをサーボアンプ３へ送信するように構成されている。この後、前記ステップＳ１３の処理へ戻るように構成されている。
【００５６】
また、前記ステップＳ２５を実行した後は、上記ステップＳ２７へ進むように構成されている。また、前記ステップＳ１８において、ゲイン切換ＳＷがオンでない場合も、上記ステップＳ２７へ進むように構成されている。更にまた、前記判断ステップＳ１３において、主軸の減速指令が終了していない場合も、上記ステップＳ２７へ進むように構成されている。
【００５７】
このような構成の本実施例において、最大トルクを超える時定数を与えた場合の減速停止時の速度変化と使用トルクを、実験（シミュレーション）によって測定した結果を図１４と図１５に示す。尚、図１４、図１５における各線Ｐ１〜Ｐ８は、図４及び図５の各線Ｐ１〜Ｐ８と同じである。上記図１４及び図１５によれば、フィードバック速度Ｎｆｂが目標速度（図１４に示すように０ｒｐｍ）に対して、予め設定された許容速度差２に到達したときに、位置偏差ｅをエンコーダ分解能のＮ倍加減算して、速度指令Ｎｃｏｍをフィードバック速度Ｎｆｂに近づけるように制御したので、オーバーシュートが発生することなく、スムーズに停止していることがわかる。
【００５８】
さて、図１６は、図１４のうちの停止部分を拡大すると共に、位置ループゲインＫｐの変化を追加した特性図である。この図１６において、Ｐ９は位置ループゲインＫｐを示す。上記図１６においては、偏差操作速度（即ち、許容速度差２）を２０００ｒｐｍとし、位置偏差操作時の初期位置ループゲインを２０とし、その後、位置ループゲインを１００まで時定数５０ｍｓで徐々に増加させ、高ゲインを１００ｍｓ間保持した後、オリエント時の通常ゲイン３０に戻すように制御している。この制御によれば、位置偏差操作時は、２０という低いゲインに設定し、その後、徐々にゲインを高くしているので、オーバーシュートが発生することなく、しかも、スムーズにオリエント位置に主軸モータ７が停止（偏差が収束）している。
【００５９】
これに対して、図１７は、位置偏差操作時に位置ループゲインＫｐをいきなり高ゲインに切り換える制御を示している。この場合、オーバーシュートが発生してしまうことがわかる。
【００６０】
ここで、従来技術（図２２及び図２３参照）によって制御した場合の減速停止時の速度変化と使用トルクを、実験（シミュレーション）によって測定した結果を図１８と図１９に示す。尚、図１８、図１９における各線Ｐ１〜Ｐ８は、図１４及び図１５の各線Ｐ１〜Ｐ８と同じである。上記図１８及び図１９によれば、オーバーシュートを発生させないようにするために、最大トルクを極力超えないような長い時定数を与えていることから、停止するまでに長い時間（本実施例(図１４及び図１５参照)に比べて）がかかっていることがわかる。
【００６１】
このような従来技術の制御において、最大トルクを超える時定数（本実施例の図１４及び図１５の場合と同じ短い時定数）を与えた場合の減速停止時の速度変化と使用トルクを、実験（シミュレーション）によって測定した結果を図２０と図２１に示す。尚、図２０、図２１における各線Ｐ１〜Ｐ８は、図１４及び図１５の各線Ｐ１〜Ｐ８と同じである。上記図２０及び図２１によれば、大きなオーバーシュートが発生していることがわかる。
【００６２】
一方、本実施例においては、加減速パターンとして、例えば２段加減速パターンを実行する構成に適用したが、わざわざ２段にしなくても、１段（指令速度まで一直線加減速）の構成に本発明を適用しても良く、なんら問題がない。この１段加減速の場合には、位置偏差操作時の偏差が異常に大きくなる。
【００６３】
通常、サーボ制御では、モータロックやメカ衝突時に、位置偏差が大きくなることを利用して、最高速時の理論偏差にあるマージンを持たせた値で、位置偏差を監視し、その値を超えた場合は、異常が発生したとして、アラームで止めることを行っている。従って、この偏差異常検出の点では、サーボの最大トルクに対して、あまりかけはなれた指令トルクにならないようにするほうが好ましい。よって、サーボの最大トルクを若干上回るような加減速パターンを与えることが望ましい。
【００６４】
【発明の効果】
本発明は以上の説明から明らかなように、主軸モータを目標速度にまで加速してからオリエント停止させるときに前記主軸モータの回転停止位置を所定の位置に位置決めする機能を有するものであって、位置指令と位置フィードバックとの位置偏差を算出し、この位置偏差に位置ループゲインを乗ずることにより速度指令を算出し、この速度指令とフィードバック速度との速度偏差を算出し、この速度偏差に基づく電流指令により前記主軸モータを通電制御するように構成された主軸モータの制御装置において、前記主軸モータに対する加速指令終了後に、前記目標速度と前記フィードバック速度との差が所定の許容速度差よりも小さくなったときに、前記目標速度または前記フィードバック速度を前記位置ループゲインで除して得られる理論偏差を前記位置偏差として置き換えるように位置偏差量を操作することにより、前記速度指令を前記目標速度または前記フィードバック速度に一致させるように制御する構成としたので、位置ループ制御を組む構成としながら、最大トルクを使いきるように構成し、また、オーバーシュートの発生を極力防止することができるという優れた効果を奏する。
【図面の簡単な説明】
【図１】  本発明の一実施例を示す主軸モータの制御装置のブロック図
【図２】  加速時のフローチャート
【図３】  減速停止時のフローチャート
【図４】  加速時の速度変化等を示す特性図
【図５】  加速時の使用トルク等を示す特性図
【図６】  従来構成の図４相当図
【図７】  従来構成の図５相当図
【図８】  他の従来構成の図４相当図
【図９】  他の従来構成の図５相当図
【図１０】  回転数の変化を示す特性図
【図１１】  偏差操作最大回転数と位置ループゲインとの関係を示す特性図
【図１２】  (８)式左辺と偏差操作最大回転数との関係を示す特性図
【図１３】  異なる位置ループゲインについての図１２相当図
【図１４】  減速停止時の速度変化等を示す特性図
【図１５】  減速停止時の使用トルク等を示す特性図
【図１６】  図１４のうちの停止部分を拡大して示す図
【図１７】  偏差操作時に位置ループゲインＫｐをいきなり高ゲインに切り換える制御を示す図１６相当図
【図１８】  従来構成の図１４相当図
【図１９】  従来構成の図１５相当図
【図２０】  他の従来構成の図１４相当図
【図２１】  他の従来構成の図１５相当図
【図２２】  従来構成の加速パターンの特性図
【図２３】  従来構成のトルクと回転数との関係を示す特性図
【符号の説明】
１は制御装置、２は数値制御部、３はサーボアンプ、４はモーション指令部、５は偏差操作制御部、６は加算器、７は主軸モータ、８はエンコーダ、９は加算器、１２は加算器、１３は電流制限部、１４は電流制御部を示す。
【図１】
0004158455.tif 000002
【図２】
0004158455.tif 000003
【図３】
0004158455.tif 000004
【図４】
0004158455.tif 000005
【図５】
0004158455.tif 000006
【図６】
0004158455.tif 000007
【図７】
0004158455.tif 000008
【図８】
0004158455.tif 000009
【図９】
0004158455.tif 000010
【図１０】
0004158455.tif 000011
【図１１】
0004158455.tif 000012
【図１２】
0004158455.tif 000013
【図１３】
0004158455.tif 000014
【図１４】
0004158455.tif 000015
【図１５】
0004158455.tif 000016
【図１６】
0004158455.tif 000017
【図１７】
0004158455.tif 000018
【図１８】
0004158455.tif 000019
【図１９】
0004158455.tif 000020
【図２０】
0004158455.tif 000021
【図２１】
0004158455.tif 000022
【図２２】
0004158455.tif 000023
【図２３】
0004158455.tif 000024