(57)【要約】【課題】複数のＣＰＵを用いた分散処理により位置制御の演算処理を実行する場合に、制御周期を短縮することができる位置制御装置を提供する。【解決手段】メインＣＰＵは、ＳＴＥＰ２で、前回の制御サイクルにおけるモデルマッチング位置Ｍ_Pos(N)、モデルマッチングトルクＭ_Trq(N)、外乱オブザーバトルクＯb_Trq(N)、及びＰＩＤトルク指令値PID_Trq(N)とに基づいて、今回の制御サイクルにおけるトルク指令値Ｃmd_Trq(N)を算出し、ＳＴＥＰ３で該トルク指令値Ｃmd_Trq(N)をサーボドライバに送信する。ＳＴＥＰ１０，ＳＴＥＰ２０でメインＣＰＵにより目標位置Ｐln_Pos(N)、実位置Ｆb_Pos(N)、トルク指令値Ｃmd_Trq1(N)がメモリに書き込まれるのを待って、第１のサブＣＰＵはＳＴＥＰ１２でモデルマッチング位置Ｍ_Pos(N)とモデルマッチングトルクＭ_Trq(N)を算出し、第２のサブＣＰＵは外乱オブザーバトルクＯb_Trq(N)を算出する。【選択図】  図３
2005349494.tif 000002
【特許請求の範囲】
【請求項１】
モータを駆動源として移動する移動体の目標位置を取得する目標位置取得手段と、該移動体の実位置を把握する実位置把握手段と、該移動体の実位置が目標位置に追従するように、所定の制御周期ごとに所定のトルク指令算出処理を実行して前記モータの出力トルクの目標値であるトルク指令値を算出するトルク指令算出手段とを備えた位置制御装置において、
前記トルク指令算出手段は、記憶手段と、前記制御周期ごとに、前記目標位置取得手段により取得された前記移動体の目標位置と前記実位置把握手段により把握される前記移動体の実位置とのうちの、少なくともいずれか一方を用いて、前記トルク指令算出処理に必要なパラメータを算出して該パラメータを前記記憶手段に記憶するサブＣＰＵと、
前記制御周期ごとに、前記サブＣＰＵによる前記パラメータの算出に先行して、前記記憶手段に記憶された前回以前の制御周期における前記パラメータを用いて、前記トルク指令を算出するメインＣＰＵとを備えたことを特徴とする位置制御装置。
【請求項２】
前記移動体は前記モータから伝達機構を介して伝達される駆動力によって移動し、
前記サブＣＰＵとして、前記移動体の位置を入力して前記モータのトルクを出力する所定のシステム逆伝達関数に、前記目標位置取得手段により取得された前記移動体の目標位置を入力したときの該システム逆伝達関数の出力値を、前記伝達機構の機械的特性に応じた応答モデルに入力したときに該応答モデルから出力される第１のトルク値を算出すると共に、該目標位置を該応答モデルに入力したときに該応答モデルから出力される第１の目標位置を算出する第１のサブＣＰＵと、
前記実位置把握手段により把握された前記移動体の実位置を前記システム逆伝達関数に入力したときに該システム逆伝達関数から出力されるトルク値と、前記トルク指令値との差に応じた第２のトルク値を算出する第２のサブＣＰＵとを備え、
前記メインＣＰＵは、前記実位置把握手段により把握された前回の制御周期における前記移動体の実位置と前回の制御周期における前記第１の目標位置との差分値にＰＩＤ制御を適用して算出した第３のトルク値と、前記第１のトルク値と、前記第２のトルク値とに基づいて前記トルク指令値を算出することを特徴とする請求項１記載の位置制御装置。
【請求項３】
前記メインＣＰＵは、各制御周期で前記トルク指令値を算出する際に、２周期前の制御周期において前記第１のサブＣＰＵにより算出された前記第１のトルク値及び前記第１の目標位置と、１周期前の制御周期において前記第２のサブＣＰＵにより算出された前記第２のトルク値とを用いることを特徴とする請求項２記載の位置制御装置。
【請求項４】
前記移動体は前記モータから伝達機構を介して伝達される駆動力によって移動し、
前記サブＣＰＵとして、前記移動体の位置を入力して前記モータのトルクを出力する所定のシステム逆伝達関数に、前記目標位置取得手段により取得された前記移動体の目標位置を入力したときの該システム逆伝達関数の出力値を、前記伝達機構の機械的特性に応じた応答モデルに入力したときに該応答モデルから出力される第１のトルク値を算出すると共に、該目標位置を該応答モデルに入力したときに該応答モデルから出力される第１の目標位置を算出する第１のサブＣＰＵと、
前記実位置把握手段により把握された前記移動体の実位置を前記システム逆伝達関数に入力したときに該システム逆伝達関数から出力されるトルク値と、前記トルク指令値との差に応じた第２のトルク値を算出する第２のサブＣＰＵと、
前記伝達機構の制御対象モデルに対して、前記移動体の実位置と前記第１の目標位置との偏差を観測量として入力し前記モータのトルクを操作量として出力するＨ∞制御器に、前記実位置把握手段により把握された前記移動体の実位置と前記第１の目標位置との偏差を入力したときに、該Ｈ∞制御器から出力される第３のトルク値を算出する第３のサブＣＰＵとを備え、
前記メインＣＰＵは、前記第１のトルク値と前記第２のトルク値と前記第３のトルク値とに基づいて、前記トルク指令値を算出することを特徴とする請求項１記載の位置制御装置。
【請求項５】
前記メインＣＰＵは、各制御周期で前記トルク指令値を算出する際に、２周期前の制御周期において前記第１のサブＣＰＵにより算出された前記第１のトルク値と、１周期前の制御周期において前記第２のサブＣＰＵにより算出された前記第２のトルク値と、１周期前の制御周期において前記第３のサブＣＰＵにより算出された前記第３のトルク値とを用いることを特徴とする請求項４記載の位置制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータを駆動源とする移動体の実位置を目標位置に追従させる位置制御装置に関し、特に複数のＣＰＵを用いた分散処理により、該モータの出力トルクの指令値を算出して位置制御を行う位置制御装置に関する。
【背景技術】
【０００２】
例えば、加工ツールを予め設定された軌跡で移動させて切削加工等を行う工作機械においては、ＰＩＤ制御を適用した位置制御が広く採用されている。かかるＰＩＤ制御によれば、微分補償やゲイン設定等の各種パラメータを工作機械の特性に応じて適切に設定することで、位置制御の性能を向上させることができる。
【０００３】
しかし、ＰＩＤ制御における各種パラメータの設定は、実際の工作機械を使用した現物調整により行われており、適切にパラメータを設定する作業は容易ではない。また、工作機械の動作特性は、機械振動や摩擦等の外乱、バックラッシュの大きさ等の工作機械の個体差、経年変化、等の種々の要因によって変化する。そのため、一旦適切なパラメータを設定しても、これらの要因によりパラメータが不適切なものとなり、正確な位置制御が困難になる場合や、加工ツールを移動させる際に工作機械の励振が生じる場合がある。
【０００４】
そこで、上述した種々の要因の変化が生じた場合であっても、高精度の位置制御性能を確保するために、適応制御やロバスト制御等のいわゆる現代制御理論による制御手法を用いて位置制御を行うことが考えられる。しかし、これらの現代制御理論による制御手法を用いる場合、ＰＩＤ制御による場合に比べて、位置制御における演算処理が複雑になると共に演算量も飛躍的に増加する。
【０００５】
そのため、高速に位置制御を行うためには、高速な演算処理能力をもった演算ユニットを用意する必要がある。そして、かかる演算ユニットとして、２個のＣＰＵによりＮＣデータについて分散処理を行うようにした工作機械が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００３−３１６４０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した２個のＣＰＵにより分散処理を行う工作機械によれば、位置制御の演算処理の高速化を図ることができる。しかし、現代制御理論による制御手法を適用した場合のように位置制御処理における演算量が増加したときには、目標位置が与えられてから該目標位置に応じた電圧が実際にモータに出力されるまでに要する時間が長くなる。そのため、位置制御における制御周期が長くなって、位置制御の応答性が悪化するという不都合が生じる。
【０００７】
そこで、本発明は、複数のＣＰＵを用いた分散処理により位置制御の演算処理を実行する場合に、制御周期を短縮することができる位置制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は上記目的を達成するためになされたものであり、モータを駆動源として移動する移動体の目標位置を取得する目標位置取得手段と、該移動体の実位置を把握する実位置把握手段と、該移動体の実位置が目標位置に追従するように、所定の制御周期ごとに所定のトルク指令算出処理を実行して前記モータの出力トルクの目標値であるトルク指令値を算出するトルク指令算出手段とを備えた位置制御装置の改良に関する。
【０００９】
そして、前記トルク指令算出手段は、記憶手段と、前記制御周期ごとに、前記目標位置取得手段により取得された前記移動体の目標位置と前記実位置把握手段により把握される前記移動体の実位置とのうちの、少なくともいずれか一方を用いて、前記トルク指令算出処理に必要なパラメータを算出して該パラメータを前記記憶手段に記憶するサブＣＰＵと、前記制御周期ごとに、前記サブＣＰＵによる前記パラメータの算出に先行して、前記記憶手段に記憶された前回以前の制御周期における前記パラメータを用いて、前記トルク指令を算出するメインＣＰＵとを備えたことを特徴とする。
【００１０】
かかる本発明によれば、前記メインＣＰＵは、各制御周期において、前記サブＣＰＵによる前記パラメータの算出に先行して、前記記憶手段に記憶された前回以前の制御周期における前記パラメータを用いて前記トルク指令値を算出する。そのため、前記トルク指令値を前記モータの駆動装置に出力して、前記モータにより前記移動体が目標位置まで移動する間に、前記サブＣＰＵは前記パラメータの算出処理を実行することができる。そして、この場合には、前記移動体の移動時間と前記パラメータの算出時間をオーバーラップさせることができる。これにより、前記制御周期を短縮して、前記移動体の位置制御の応答性を高めることができる。
【００１１】
また、前記移動体は前記モータから伝達機構を介して伝達される駆動力によって移動し、前記サブＣＰＵとして、前記移動体の位置を入力して前記モータのトルクを出力する所定のシステム逆伝達関数に、前記目標位置取得手段により取得された前記移動体の目標位置を入力したときの該システム逆伝達関数の出力値を、前記伝達機構の機械的特性に応じた応答モデルに入力したときに該応答モデルから出力される第１のトルク値を算出すると共に、該目標位置を該応答モデルに入力したときに該応答モデルから出力される第１の目標位置を算出する第１のサブＣＰＵと、前記実位置把握手段により把握された前記移動体の実位置を前記システム逆伝達関数に入力したときに該システム逆伝達関数から出力されるトルク値と、前記トルク指令値との差に応じた第２のトルク値を算出する第２のサブＣＰＵとを備え、前記メインＣＰＵは、前記実位置把握手段により把握された前回の制御周期における前記移動体の実位置と前回の制御周期における前記第１の目標位置との差分値にＰＩＤ制御を適用して算出した第３のトルク値と、前記第１のトルク値と、前記第２のトルク値とに基づいて前記トルク指令値を算出することを特徴とする。
【００１２】
かかる本発明によれば、前記第１のサブＣＰＵにより算出される前記第１のトルク値は、前記伝達機構を含めた被制御対象における応答特性を、前記システム逆伝達関数に対応したシステム伝達関数の応答特性に一致させるためのトルク値となり、また、前記第２のサブＣＰＵにより算出される前記第２のトルク値は、該被制御対象に加わる外乱を反映したものとなる。そのため、前記メインＣＰＵによって、ＰＩＤ制御による前記第３のトルク値と前記第１のトルク値と前記第２のトルク値とに基づいて前記トルク指令値を算出することにより、前記移動体の位置制御における応答特性を前記システム逆伝達関数により要求される応答特性にマッチングさせると共に外乱の影響を抑制して、前記移動体の位置制御を安定化させることができる。
【００１３】
また、前記メインＣＰＵは、各制御周期で前記トルク指令値を算出する際に、２周期前の制御周期において前記第１のサブＣＰＵにより算出された前記第１のトルク値及び前記第１の目標位置と、１周期前の制御周期において前記第２のサブＣＰＵにより算出された前記第２のトルク値とを用いることを特徴とする。
【００１４】
かかる本発明によれば、各制御周期における前記トルク指令値の算出を、２周期前の制御周期における前記第１のトルク値及び前記第１の目標位置と、１周期前の制御周期における前記第２のトルク値を用いて算出することにより、前記第１のトルク値と前記第１の目標値と前記第２のトルク値の算出時点から、前記トルク指令値を算出時点までの遅れ時間を短くして、精度良く前記移動体の位置制御を行うことができる。
【００１５】
また、前記移動体は前記モータから伝達機構を介して伝達される駆動力によって移動し、前記サブＣＰＵとして、前記移動体の位置を入力して前記モータのトルクを出力する所定のシステム逆伝達関数に、前記目標位置取得手段により取得された前記移動体の目標位置を入力したときの該システム逆伝達関数の出力値を、前記伝達機構の機械的特性に応じた応答モデルに入力したときに該応答モデルから出力される第１のトルク値を算出すると共に、該目標位置を該応答モデルに入力したときに該応答モデルから出力される第１の目標位置を算出する第１のサブＣＰＵと、前記実位置把握手段により把握された前記移動体の実位置を前記システム逆伝達関数に入力したときに該システム逆伝達関数から出力されるトルク値と、前記トルク指令値との差に応じた第２のトルク値を算出する第２のサブＣＰＵと、前記伝達機構の制御対象モデルに対して、前記移動体の実位置と前記第１の目標位置との偏差を観測量として入力し前記モータのトルクを操作量として出力するＨ∞制御器に、前記実位置把握手段により把握された前記移動体の実位置と前記第１の目標位置との偏差を入力したときに、該Ｈ∞制御器から出力される第３のトルク値を算出する第３のサブＣＰＵとを備え、前記メインＣＰＵは、前記第１のトルク値と前記第２のトルク値と前記第３のトルク値とに基づいて、前記トルク指令値を算出することを特徴とする。
【００１６】
かかる本発明によれば、前記第１のサブＣＰＵにより算出される前記第１のトルク値は、前記伝達機構を含めた被制御対象における応答特性を、前記システム逆伝達関数に対応したシステム伝達関数の応答特性に一致させるためのトルク値となり、また、前記第２のサブＣＰＵにより算出される前記第２のトルク値は、該被制御対象に加わる外乱を反映したものとなる。また、前記第３のサブＣＰＵにより算出される前記第３のトルク値は、前記第１の目標位置と前記移動体の実位置との偏差の変動に対して、前記移動体の位置制御を安定化させるものとなる。そのため、前記第１のＣＰＵによって、前記第１のトルク値と前記第２のトルク値と前記第３のトルク値とに基づいて前記トルク指令値を算出することにより、前記移動体の位置制御における応答特性を前記システム逆伝達関数により要求される応答特性にマッチングさせると共に外乱の影響を抑制し、ロバスト性を高めて前記移動体の位置制御を安定化させることができる。
【００１７】
また、前記メインＣＰＵは、各制御周期で前記トルク指令値を算出する際に、２周期前の制御周期において前記第１のサブＣＰＵにより算出された前記第１のトルク値と、１周期前の制御周期において前記第２のサブＣＰＵにより算出された前記第２のトルク値と、１周期前の制御周期において前記第３のサブＣＰＵにより算出された前記第３のトルク値とを用いることを特徴とする。
【００１８】
かかる本発明によれば、各制御周期における前記トルク指令値の算出を、２周期前の制御周期において算出された前記第１のトルク値と、１周期前の制御周期において算出された前記第２のトルク値と、１周期前の制御周期において算出された前記第３のトルク値とを用いて算出することにより、前記第１のトルク値と前記第２のトルク値と前記第３のトルク値の算出時点から、前記トルク指令値を算出時点までの遅れ時間を短くして、精度良く前記移動体の位置制御を行うことができる。
【発明を実施するための最良の形態】
【００１９】
本発明の実施の形態について、図１〜図５を参照して説明する。図１は本発明の位置制御装置の全体構成図、図２は図１に示したサブＣＰＵの演算ブロック図、図３はＰＩＤ制御を用いてトルク指令値を算出する場合のフローチャート、図４はメインＣＰＵ及びサブＣＰＵのタイミングチャート、図５はＨ∞制御を用いてトルク指令値を算出する場合のフローチャートである。
【００２０】
図１を参照して、本発明の位置制御装置１は、工作機械２０にチャッキングされる加工ツール（図示しない，本発明の移動体に相当する）の実位置Ｆb_Posを、ＮＣ制御装置２から送信される目標位置Ｐln_Posに追従させる位置制御を行うものであり、サーボ制御ユニット１ａと演算ユニット１ｂとにより構成される。
【００２１】
サーボ制御ユニット１ａは、メインＣＰＵ１０、ＮＣインターフェース１１、及びサーボインターフェース１２を備え、ＮＣインターフェース１１を介してＮＣ制御装置２と通信可能に接続されると共に、サーボインターフェース１２を介してサーボドライバ３と通信可能に接続されている。
【００２２】
サーボドライバ３は、伝達機構を介して加工ツールを移動させるサーボモータ２１及びサーボモータ２１の回転軸に装着されたエンコーダ２２と接続され、サーボモータ２１の出力トルクが制御ユニット１ａから送信されるトルク指令値Ｃmd_Trqと一致するように、サーボモータ２１に供給する電力を制御する。また、サーボドライバ３は、サーボモータ２１の回転に応じてエンコーダ２２から出力されるパルス信号に基づいて、加工ツールの実位置Ｆb_Posを把握し、該実位置Ｆb_Posのデータをサーボユニット１ａに送信する。
【００２３】
そして、メインＣＰＵ１０は、サーボインターフェース１２を介してサーボドライバ３から受信した加工ツールの実位置Ｆb_Posが、ＮＣインターフェース１１を介してＮＣ制御装置２から受信した目標位置Ｐln_Posに追従するように、トルク指令値Ｃmd_Trqを決定する。
【００２４】
なお、メインＣＰＵ１０がＮＣインターフェース１１を介して加工ツールの目標位置Ｐln_Posを取得する構成が本発明の目標位置手段に相当する。また、メインＣＰＵ１０がサーボインターフェース１２を介して加工ツールの実位置Ｆb_Posを把握する構成が本発明の実位置把握手段に相当する。
【００２５】
次に、演算ユニット１ｂに備えられた第１のサブＣＰＵ１３、第２のサブＣＰＵ１４、及び第３のサブＣＰＵ１５は、メインＣＰＵ１０におけるトルク指令値Ｃmd_Trqの算出に使用されるパラメータを分散処理により算出するものであり、ＱＰ−ＲＡＭを介してメインＣＰＵ１０と共有するデータの書込みと読出しを行う。
【００２６】
図２（ａ）は第１のサブＣＰＵ１３におけるモデルマッチング計算の処理を示したものである。第１のサブＣＰＵ１３は、ＱＰ−ＲＡＭ１６から読み出した目標位置Ｐln_Posを、工作機械２０に対して設定された応答特性に応じたシステム逆伝達関数４０に入力し、システム逆伝達関数４０の出力を工作機械２０の機械的特性に応じて設定された応答モデル４１に入力したときの該応答モデル４１の出力を、モデルマッチングトルクＭ_Trq（本発明の第１のトルク値に相当する）として算出する。さらに、第１のサブＣＰＵ１３は、目標位置Ｐln_Posを応答モデルに入力したときの出力を、モデルマッチング位置Ｍ_Pos（本発明の第１の目標位置に相当する）として算出する。そして、第１のサブＣＰＵ１３は、算出したモデルマッチングトルクＭ_Trqとモデルマッチング位置Ｍ_Posとを、ＱＰ−ＲＡＭ１６に書き込む。
【００２７】
また、図２（ｂ）は第２のサブＣＰＵ１４における外乱オブザーバ計算の処理を示したものである。第２のサブＣＰＵ１４は、減算器４２により、ＱＰ−ＲＡＭ１６から読み出したトルク指令値Ｃmd_Trqから、ＱＰ−ＲＡＭ１６から読み出した実位置Ｆb_Posをシステム逆伝達関数４０に入力したときの該システム逆伝達関数４０の出力を減じて、偏差ΔＴrqを算出する。そして、第２のサブＣＰＵ１４は、該偏差ΔＴrqに対してフィルタ４３によるフィルタリング処理を施し、工作機械２０に加わる外乱の影響を抑制するための外乱オブザーバトルクＯb_Trq（本発明の第２のトルク値に相当する）を算出し、該外乱オブザーバトルクＯb_TrqをＱＰ−ＲＡＭ１６に書き込む。
【００２８】
また、図２（ｃ）は第３のサブＣＰＵ１５におけるＨ∞制御計算の処理を示したものであり、第３のサブＣＰＵ１５は、減算器５０により、ＱＰ−ＲＡＭ１６から読み出したモデルマッチング位置Ｍ_Posから、ＱＰ−ＲＡＭ１６から読み出した実位置Ｆb_Posを減じて、位置偏差ΔＰosを算出する。そして、第３のサブＣＰＵ１５は、該位置偏差ΔＰosを、加工ツールの実位置と目標位置との偏差を観測量として入力しサーボモータ２１のトルクを操作量として出力するＨ∞制御器５１に入力して、該Ｈ∞制御器５１の出力をＨ∞トルクＨ∞_Trq（本発明の第３のトルク値に相当する）として算出する。また、第３のサブＣＰＵ１５は、算出したＨ∞トルクＨ∞_TrqをＱＰ−ＲＡＭ１６に書き込む。
【００２９】
次に、位置制御装置１における第１の実施の形態について、図３に示したフローチャートに従って説明する。第１の実施の形態では、位置制御装置１はＰＩＤ制御を用いてトルク指令値Ｃmd_Trqを算出する。メインＣＰＵ１０は、所定の制御周期ごとに図３（ａ）に示した処理を実行する。また、第１のサブＣＰＵ１３は、該制御周期ごとに図３（ｂ）に示した処理を実行し、第２のサブＣＰＵ１４は、該制御周期ごとに図３（ｃ）に示した処理を実行する。
【００３０】
なお、本第１の実施の形態においては、メインＣＰＵ１０、第１のサブＣＰＵ１３、及び第２のサブＣＰＵ１４により本発明のトルク指令算出手段が構成され、第３のサブＣＰＵ１５は使用されない。
【００３１】
また、図３（ａ）、図３（ｂ）、図３（ｃ）に示したフローチャートにおける(N-1)、(N)は、それぞれＮ−１番目、Ｎ番目の制御周期において取得又は算出された変数値を示すものである。そして、図３（ａ）、図３（ｂ）、図３（ｃ）に示したフローチャートは、Ｎ番目の制御周期における処理を示している。
【００３２】
先ず、メインＣＰＵ１０は、図３（ａ）のＳＴＥＰ１で、１回前の制御周期（Ｎ−１番目の制御周期）において、第１のサブＣＰＵ１３により算出されてＱＰ−ＲＡＭ１６に書き込まれたマデルマッチング位置Ｍ_Pos(N-1)及びモデルマッチングトルクＭ_Trq(N-1)と、第２のサブＣＰＵ１４により算出されてＱＰ−ＲＡＭ１６に書き込まれた外乱オブザーバトルクＯb_Trq(N-1)と、メインＣＰＵ１０により算出されてＱＰ−ＲＡＭ１６に書き込まれたＰＩＤ指令トルクPID_Trq(N-1)を、ＱＰ−ＲＡＭ１６から読み出す。
【００３３】
そして、メインＣＰＵ１０は、次のＳＴＥＰ２で、以下の式（１）により、今回の制御周期（Ｎ番目の制御周期）におけるトルク指令値Ｃmd_Ｔrq(N)を算出する
Ｃmd_Ｔrq(N) ＝ Ｍ_Trq(N-1)＋Ｏb_Trq(N-1)＋PID_Trq(N-1)  ・・・・・（１）
続くＳＴＥＰ３で、メインＣＰＵ１０は、サーボインターフェース１２を介してサーボドライバ３にトルク指令値Ｃmd_Trq(N)を送信する。そして、トルク指令値Ｃmd_Trq(N)を受信したサーボドライバ３は、該トルク指令値Ｃmd_Trq(N)に応じたトルクが得られるようにサーボモータ２１に対する供給電力を制御する。
【００３４】
次のＳＴＥＰ４で、メインＣＰＵ１０は、ＮＣインターフェース１１を介してＮＣ制御装置２から目標位置Ｐln_Pos(N)を受信し、ＳＴＥＰ５で、サーボインターフェース１２を介してサーボドライバ３から実位置Ｆb_Pos(N)を受信する。そして、続くＳＴＥＰ６で、メインＣＰＵ１０は、今回の制御周期における目標位置Ｐln_Pos(N)と実位置Ｆb_Pos(N)とトルク指令値Ｃmd_Trq(N)とを、ＱＰ−ＲＡＭ１６に書き込む。
【００３５】
次のＳＴＥＰ７で、メインＣＰＵ１０は、目標位置Ｐln_Pos(N)と実位置Ｆb_Pos(N)との偏差に対するＰＩＤ制御処理を行って、ＰＩＤ指令トルクPID_Trq(N)を算出し、ＳＴＥＰ８で該ＰＩＤ指令トルクPID_Trq(N)をＱＰ−ＲＡＭ１６に書き込む。続くＳＴＥＰ９で、メインＣＰＵ１０は、システム処理（ウォッチドッグタイマによるプラグラムの暴走検知、停電検知等を実行する）を行って今回の制御周期を終了する。
【００３６】
次に、図３（ｂ）を参照して、第１のサブＣＰＵ１３は、Ｎ番目の制御周期が開始されると、ＳＴＥＰ１０で、メインＣＰＵ１０により目標位置Ｐln_Pos(N)がＱＰ−ＲＡＭ１６に書き込まれるのを待つ。そして、目標位置Ｐln_Pos(N)がＱＰ−ＲＡＭ１６に書き込まれたとき（図３（ａ）のＳＴＥＰ６の処理が終了したとき）にＳＴＥＰ１１に進み、第１のサブＣＰＵ１３は、図２（ａ）に示したモデルマッチング計算を行って、モデルマッチングトルクＭ_Trq(N)とモデルマッチング位置Ｍ_Pos(N)を算出する。また、続くＳＴＥＰ１３で、第１のサブＣＰＵ１３は、算出したモデルマッチングトルクＭ_Trq(N)とモデルマッチング位置Ｍ_Pos(N)をＱＰ−ＲＡＭ１６に書き込む。
【００３７】
次に、図３（ｃ）を参照して、第２のサブＣＰＵ１４は、Ｎ番目の制御周期が開始されると、ＳＴＥＰ２０で、メインＣＰＵ１０により実位置Ｆb_Pos(N)とトルク指令値Ｃmd_Trq(N)がＱＰ−ＲＡＭ１６に書き込まれるのを待つ。そして、実位置Ｆb_Pos(N)とトルク指令値Ｃmd_Trq(N)がＱＰ−ＲＡＭ１６に書き込まれたとき（図３（ａ）のＳＴＥＰ６の処理が終了したとき）にＳＴＥＰ２１に進み、第２のサブＣＰＵ１４は、図２（ｂ）に示した外乱オブザーバ演算を行って、外乱オブザーバトルクＯb_Trq(N)を算出する。また、続くＳＴＥＰ２３で、第２のサブＣＰＵ１４は、算出した外乱オブザーバトルクＯb_Trq(N)をＱＰ−ＲＡＭ１６に書き込む。
【００３８】
図４は、以上説明した図３（ａ）、図３（ｂ）、図３（ｃ）のフローチャートを実行したときのメインＣＰＵ１０と、第１のサブＣＰＵ１３及び第２のサブＣＰＵ１４の作動タイミングを示したタイミングチャートであり、横軸が時間ｔに設定されている。図中ｔ10〜ｔ13及びｔ13〜ｔ16が１制御周期となる。
【００３９】
ｔ10で制御周期が開始されると、メインＣＰＵ１０は、トルク指令値Ｃmd_Trqを算出し（ＳＴＥＰ２）、ｔ11でサーボドライバ３への該トルク指令値Ｃmd_Trqの送信を終了する（ＳＴＥＰ３）。これにより、サーボドライバ３によるサーボモータ２１の駆動が開始される。
【００４０】
そして、その後のｔ12で、メインＣＰＵ１０によるＱＰ−ＲＡＭ１６へのデータ（目標位置Ｐln_Pos，実位置Ｆb_Pos，トルク指令値Ｃmd_Trqのデータ）の書き込みが終了したときに、第１のサブＣＰＵ１３はＱＰ−ＲＡＭ１６からデータ（目標位置Ｐln_Pos）を読出し（ＳＴＥＰ１１）、第２のサブＣＰＵ１４はＱＰ−ＲＡＭ１６からデータ（実位置Ｆb_Pos，トルク指令値Ｃmd_Trq）を読み出す（ＳＴＥＰ２１）。
【００４１】
そして、第１のサブＣＰＵ１３はモデルマッチング位置Ｍ_PosとモデルマッチングトルクＭ_Trqを算出し（ＳＴＥＰ１２）、第２のサブＣＰＵ１４は外乱オブザーバトルクＯb_Trqを算出する（ＳＴＥＰ２２）。この場合、ｔ11でサーボドライバ３にトルク指令値Ｃmd_Trqが送信されてサーボモータ２１が作動している間に、ｔ12から第１のサブＣＰＵ１３による計算処理（ＳＴＥＰ１２）と第２のサブＣＰＵ１４による計算処理（ＳＴＥＰ２２）を開始することができる。そのため、制御周期を短縮させて位置制御の応答性を高めることができる。
【００４２】
次に、第２の実施の形態について、図５に示したフローチャートに従って説明する。第２の実施の形態においては、位置制御装置１はＨ∞制御を用いてサーボモータ２１に対するトルク指令値Ｃmd_Trqを算出する。そして、演算ユニット１ｂに備えられた第３のサブＣＰＵ１５によりＨ∞制御の演算処理が実行される。
【００４３】
なお、本第２の実施の形態においては、メインＣＰＵ１０、第１のサブＣＰＵ１３、第２のサブＣＰＵ１４、及び第４のサブＣＰＵ１５により本発明のトルク指令算出手段が構成される。
【００４４】
また、図５（ａ）、図５（ｂ）に示したフローチャートにおける(N-2)、(N-1)、(N)は、それぞれ、Ｎ−２番目、Ｎ−１番目、Ｎ番目の制御周期において取得又は算出された変数値を示すものである。そして、図５（ａ）、図５（ｂ）に示したフローチャートは、Ｎ番目の制御周期における処理を示している。また、第１のサブＣＰＵ１３と第２のサブＣＰＵ１４は、上述した第１の実施の形態と同様に、図３（ａ）と図３（ｂ）のフローチャートで示した処理をそれぞれ実行する。
【００４５】
先ず、メインＣＰＵ１０は、図５（ａ）のＳＴＥＰ１で、１回前の制御周期（Ｎ−１番目の制御周期）において、第１のサブＣＰＵ１３により算出されてＱＰ−ＲＡＭ１６に書き込まれたモデルマッチング位置Ｍ_Pos(N-1)と、２回前の制御周期（Ｎ−２番目の制御周期）において、第１のサブＣＰＵ１３により算出されてＱＰ−ＲＡＭ１６に書き込まれたモデルマッチングトルクＭ_Trq(N-2)と、１回前の制御周期（Ｎ−１番目の制御周期）において、第２のサブＣＰＵ１４により算出されてＱＰ−ＲＡＭ１６に書き込まれた外乱オブザーバトルクＯb_Trq(N-1)と、１回前の制御周期（Ｎ−１番目の制御周期）において、第３のサブＣＰＵ１５により算出されてＱＰ−ＲＡＭ１６に書き込まれたＨ∞トルクＨ∞_Trq(N)とを、ＱＰ−ＲＡＭ１６から読み出す。
【００４６】
そして、メインＣＰＵ１０は、次のＳＴＥＰ５１で、以下の式（２）により、今回の制御周期（Ｎ番目の制御周期）におけるトルク指令値Ｃmd_Trq(N)を算出する。
【００４７】
Ｃmd_Trq(N) ＝ Ｍ_Trq(N-2)＋Ｏb_Trq(N-1)＋Ｈ∞_Trq(N-1)  ・・・・・（２）
続くＳＴＥＰ５２で、メインＣＰＵ１０は、サーボインターフェース１２を介してサーボドライバ３にトルク指令値Ｃmd_Trq(N)を送信する。そして、トルク指令値Ｃmd_Trq(N)を受信したサーボドライバ３は、該トルク指令値Ｃmd_Trq(N)に応じたトルクが得られるようにサーボモータ２１に対する供給電力を制御する。
【００４８】
次のＳＴＥＰ５３で、メインＣＰＵ１０は、ＮＣインターフェース１１を介してＮＣ制御装置２から目標位置Ｐln(N)を受信し、ＳＴＥＰ５４で、サーボインターフェース１２を介してサーボドライバ３から実位置Ｆb_Pos(N)を受信する。そして、続くＳＴＥＰ５５で、メインＣＰＵ１０は、目標位置Ｐln_Pos(N)と実位置Ｆb_Pos(N)とトルク指令値Ｃmd_Trq(N)とモデルマッチング位置Ｍ_Pos(N-1)とを、ＱＰ−ＲＡＭ１６に書き、ＳＴＥＰ５６でシステム処理（ウォッチドッグタイマによるプラグラムの暴走検知、停電検知等を実行する）を行って今回の制御周期を終了する。
【００４９】
次に、図５（ｂ）を参照して、第３のサブＣＰＵ１５は、Ｎ番目の制御周期が開始されると、ＳＴＥＰ６０で、メインＣＰＵ１０により実位置Ｆb_Pos(N)がＱＰ−ＲＡＭ１６に書き込まれるのを待つ。そして、実位置Ｆb_Pos(N)がＱＰ−ＲＡＭ１６に書き込まれたとき（図５（ａ）のＳＴＥＰ５５の処理が終了したとき）にＳＴＥＰ６２に進み、第３のサブＣＰＵ１５は、図２（ｃ）に示したＨ∞制御計算を行って、Ｈ∞トルクＨ∞_Trq(N)を算出する。また、続くＳＴＥＰ６３で、第３のサブＣＰＵ１５は、算出したＨ∞トルクＨ∞_Trq(N)をＱＰ−ＲＡＭ１６に書き込む。
【００５０】
本第２の実施の形態による場合には、第３のサブＣＰＵ１５によりＨ∞トルクＨ∞_Trqを算出し、メインＣＰＵ１０により、上記式（２）によって該Ｈ∞トルクＨ∞_Trqを用いてトルク指令値Ｃmd_Trq(N)を算出することによって、位置制御装置１のロバスト性を高めて精度の良い位置制御を実現することができる。
【００５１】
また、本第２の実施の形態においても、上述した第１の実施の形態と同様に、図５（ａ）のＳＴＥＰ５２でメインＣＰＵ１０がトルク指令値Ｃmd_Trq(N)を送信し、サーボモータ２１が作動を開始した後に、第１のサブＣＰＵ１３と第２のサブＣＰＵ１４と第３のサブＣＰＵ１５による計算処理（図３（ｂ）のＳＴＥＰ１２，図３（ｃ）のＳＴＥＰ２２，図５（ｂ）のＳＴＥＰ６２）を開始することができる。そのため、位置制御装置１の制御周期を短縮することができる。
【００５２】
なお、本実施の形態では、本発明の移動体として工作機械にチャッキングされた加工ツールの位置を制御するものを示したが、複数のＣＰＵを用いて位置制御における変数値を分散処理により算出する位置制御装置であれば、本発明の適用が可能である。
【００５３】
また、本実施の形態では、サブＣＰＵによる分散処理として、モデルマッチング計算、外乱オブザーバ計算、及びＨ∞制御計算を実行する例を示したが、分散処理の対象となる計算はこれらに限らず、他の種類の計算処理をサブＣＰＵによって実行する場合にも本発明の適用が可能である。
【図面の簡単な説明】
【００５４】
【図１】位置制御装置の全体構成図。
【図２】図１に示したサブＣＰＵの演算ブロック図。
【図３】ＰＩＤ制御を用いてトルク指令値を算出する場合のフローチャート。
【図４】メインＣＰＵ及びサブＣＰＵのタイミングチャート。
【図５】Ｈ∞制御を用いてトルク指定値を算出する場合のフローチャート。
【符号の説明】
【００５５】
１…位置制御装置、１ａ…サーボユニット、１ｂ…演算ユニット、２…ＮＣ制御装置、３…サーボドライバ、１０…メインＣＰＵ、１１…ＮＣインターフェース、１２…サーボインターフェース、１３…第１のサブＣＰＵ、１４…第２のサブＣＰＵ、１５…第３のサブＣＰＵ、２１…サーボモータ、２２…エンコーダ
【図１】
2005349494.tif 000003
【図２】
2005349494.tif 000004
【図３】
2005349494.tif 000005
【図４】
2005349494.tif 000006
【図５】
2005349494.tif 000007