(57)【特許請求の範囲】
【請求項１】
機械装置が複数のアクチュエータを駆動して実行する作業を構成する要素の入力と出力との関係が計算式で記述されたモデルテンプレートを複数記憶するモデルテンプレートデータベース部と、
前記機械装置の構成および前記作業を特徴づける構成情報に基づいて１つ又は複数の前記モデルテンプレートを前記モデルテンプレートデータベース部から選択するモデル構成選択部と、
前記モデル構成選択部が選択した前記モデルテンプレートに対し、前記モデルテンプレートの変数であるモデルパラメータを設定するモデルパラメータ設定部と、
前記モデルパラメータ設定部が前記モデルパラメータを設定した後の前記モデルテンプレートと、前記作業を実行する際に前記作業で使用する工具が通過すべき経路である指令経路とに基づいて前記作業のシミュレーションを実行し、前記作業の予測結果である予測作業結果を算出するシミュレーション実行部と、
を備えることを特徴とするシミュレーション装置。
【請求項２】
前記予測作業結果と前記作業において達成すべき性能とに基づいて前記モデルパラメータの最適化を行う最適化演算実行部、
を備えることを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記モデルパラメータ設定部は、前記モデルパラメータを設定後、前記最適化演算実行部が最適化を行った前記モデルパラメータが設定された前記機械装置による作業結果が得られると、得られた作業結果に基づいて、前記モデルテンプレートに設定済みの前記モデルパラメータを更新する、
ことを特徴とする請求項２に記載のシミュレーション装置。
【請求項４】
前記最適化演算実行部が前記モデルパラメータを最適化する処理と、前記モデルパラメータ設定部が前記モデルテンプレートに設定済みの前記モデルパラメータを更新する処理とを並列に実行する、
ことを特徴とする請求項３に記載のシミュレーション装置。
【請求項５】
前記モデル構成選択部は、前記機械装置の軸を制御するサーボ制御装置およびプロセス制御装置に設定された制御パラメータを前記構成情報として用いて前記モデルテンプレートを選択する、
ことを特徴とする請求項１から４のいずれか一つに記載のシミュレーション装置。
【請求項６】
前記モデルパラメータ設定部は、前記機械装置の軸を制御するサーボ制御装置の特徴量および前記機械装置に設置されたセンサの出力するセンサデータに基づいて前記モデルパラメータを同定し、同定した前記モデルパラメータを前記モデルテンプレートに設定する、
ことを特徴とする請求項１から５のいずれか一つに記載のシミュレーション装置。
【請求項７】
前記シミュレーション実行部は、
前記指令経路に基づいて、時系列の、前記機械装置の各駆動軸に対する予測軸指令および主軸に対する予測プロセス指令を演算する指令値演算模擬部と、
前記予測軸指令および予測軸フィードバック信号に基づいて、対応付けられた前記駆動軸への予測アクチュエータ駆動指令を演算する複数のサーボ制御模擬部と、
前記予測プロセス指令および予測プロセスフィードバック信号に基づいて、前記主軸への予測プロセス変更量を演算するプロセス制御模擬部と、
前記予測アクチュエータ駆動指令および予測軸外乱に基づいて、対応付けられた前記駆動軸の予測軸位置を演算するとともに、演算した予測軸位置を前記予測軸フィードバック信号として前記サーボ制御模擬部に出力する複数の駆動機構モデル部と、
複数の前記駆動機構モデル部のそれぞれが演算した前記予測軸位置と、予測プロセス外乱とに基づいて、作業点変位と、各駆動軸の前記予測軸外乱とを演算する機械構造モデル部と、
前記作業点変位に基づいて、予測作業結果および前記予測プロセス外乱を演算するプロセスモデル部と、
を備えることを特徴とする請求項１から６のいずれか一つに記載のシミュレーション装置。
【請求項８】
前記指令値演算模擬部は、前記機械装置において指令値演算部が前記駆動軸に対する軸指令および前記主軸に対するプロセス指令を演算する周期よりも短い周期で、前記予測軸指令および前記予測プロセス指令を演算する、
ことを特徴とする請求項７に記載のシミュレーション装置。
【請求項９】
前記サーボ制御模擬部が演算を実行する周期であるサーボ演算周期を前記指令値演算模擬部が演算を実行する周期である指令値演算周期よりも短い時間とし、
前記サーボ演算周期の整数倍かつ前記指令値演算周期の整数倍の周期であるシミュレーション実行周期が設定され、
前記指令値演算模擬部は、前記指令値演算周期と前記シミュレーション実行周期とが一致したタイミングで前記予測軸指令および前記予測プロセス指令を演算し、
前記サーボ制御模擬部は、前記サーボ演算周期と前記シミュレーション実行周期とが一致したタイミングで前記予測アクチュエータ駆動指令を演算する、
ことを特徴とする請求項７または８に記載のシミュレーション装置。
【請求項１０】
前記駆動機構モデル部は、前記予測軸位置を演算するタイミングと前記サーボ制御模擬部が前記予測アクチュエータ駆動指令を演算するタイミングとが異なる場合、前記サーボ制御模擬部が過去に演算済みの予測アクチュエータ駆動指令に基づいて求めた現在の予測アクチュエータ駆動指令を使用して前記予測軸位置を演算し、
前記機械構造モデル部は、前記作業点変位および前記予測軸外乱を演算するタイミングと前記駆動機構モデル部が前記予測軸位置を演算するタイミングとが異なる場合、前記駆動機構モデル部が過去に演算済みの予測軸位置に基づいて求めた現在の予測軸位置を使用して前記作業点変位および前記予測軸外乱を演算する、
ことを特徴とする請求項７から９のいずれか一つに記載のシミュレーション装置。
【請求項１１】
前記シミュレーション実行部は、
プログラマブルロジックコントローラが前記機械装置を制御するための指令と、前記指令経路とに基づいて、時系列の、前記機械装置の各駆動軸に対する予測軸指令を演算する指令値演算模擬部と、
前記予測軸指令および予測軸フィードバック信号に基づいて、対応付けられた前記駆動軸への予測アクチュエータ駆動指令を演算する複数のサーボ制御模擬部と、
前記予測アクチュエータ駆動指令および予測軸外乱に基づいて、対応付けられた前記駆動軸の予測軸位置を演算するとともに、演算した予測軸位置を前記予測軸フィードバック信号として前記サーボ制御模擬部に出力する複数の駆動機構モデル部と、
複数の前記駆動機構モデル部のそれぞれが演算した前記予測軸位置に基づいて作業点変位を演算する機械構造モデル部と、
前記作業点変位に基づいて、予測作業結果を演算する幾何形状計算部と、
を備えることを特徴とする請求項１から６のいずれか一つに記載のシミュレーション装置。
【請求項１２】
前記シミュレーション実行部は、前記指令経路に基づいて演算された前記機械装置に対する指令を用いて前記シミュレーションを実行する、
ことを特徴とする請求項１から１１のいずれか一つに記載のシミュレーション装置。
【請求項１３】
前記モデルテンプレートは、ブラックボックス、ホワイトボックス、グレーボックス、サロゲート、ビヘイビア、状態空間、部分空間、伝達関数または有限要素法を使用して記述された構造であることを特徴とする請求項１から１２のいずれか一つに記載のシミュレーション装置。
【請求項１４】
前記モデル構成選択部は、選択した前記モデルテンプレートを前記機械装置の振動特性に基づいて縮退させ、
前記シミュレーション実行部は、縮退後の前記モデルテンプレートを使用して前記シミュレーションを実行する、
ことを特徴とする請求項１から１３のいずれか一つに記載のシミュレーション装置。
【請求項１５】
工作物に対して複数の加工装置が異なる加工を実行して最終形状を実現するシステムの前記複数の加工装置それぞれにおける作業のシミュレーションを順番に実行し、前記最終形状を予測する、
ことを特徴とする請求項１から１４のいずれか一つに記載のシミュレーション装置。
【請求項１６】
請求項１から１５のいずれか一つに記載のシミュレーション装置と、
前記シミュレーション装置が出力する前記予測作業結果に基づく作業条件で工作物の加工を行う工作機械と、
を備えることを特徴とする工作機械システム。
【請求項１７】
複数のアクチュエータを駆動して実行する作業の結果を予測するシミュレーション装置が実行するシミュレーション方法であって、
前記作業を構成する要素の入力と出力との関係が計算式で記述された複数のモデルテンプレートの中から、前記作業を実行する機械装置の構成および前記作業を特徴づける構成情報に基づいて１つ又は複数の前記モデルテンプレートを選択する第１ステップと、
前記第１ステップで選択した前記モデルテンプレートに対し、前記モデルテンプレートの変数であるモデルパラメータを設定する第２ステップと、
前記第２ステップで前記モデルパラメータを設定した後の前記モデルテンプレートと、前記作業を実行する際に前記作業で使用する工具が通過すべき経路である指令経路とに基づいて前記作業のシミュレーションを実行し、前記作業の予測結果である予測作業結果を算出する第３ステップと、
を含むことを特徴とするシミュレーション方法。
【請求項１８】
シミュレーション装置が、機械装置が複数のアクチュエータを駆動して実行する加工作業を構成する要素の入力と出力との関係が計算式で記述された複数のモデルテンプレートの中から、前記機械装置の構成および前記加工作業を特徴づける構成情報に基づいて１つ又は複数の前記モデルテンプレートを選択する第１ステップと、
前記シミュレーション装置が、前記第１ステップで選択した前記モデルテンプレートに対し、前記モデルテンプレートの変数であるモデルパラメータを設定する第２ステップと、
前記シミュレーション装置が、前記第２ステップで前記モデルパラメータを設定した後の前記モデルテンプレートと、前記加工作業の際に工具が通過すべき経路である指令経路とに基づいて前記加工作業のシミュレーションを実行し、前記加工作業の予測結果である予測作業結果を算出する第３ステップと、
前記シミュレーション装置が、前記予測作業結果に基づいて、前記機械装置が前記加工作業を実行する際に用いるパラメータを調整する第４ステップと、
前記機械装置が、調整後の前記パラメータを使用して前記加工作業を実行するステップと、
を含むことを特徴とする加工方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、機械装置による作業結果を予測するシミュレーション装置、工作機械システム、シミュレーション方法および加工方法に関する。
【背景技術】
【０００２】
数値制御工作機械、産業用機械、ロボットなどのように多自由度の運動を用いて作業を行う機械装置は、多自由度を実現する軸および軸を駆動するサーボ制御装置を複数有する。このような機械装置は、軸毎に対象の位置を制御し、各軸の運動を同期して制御することで、多自由度の運動を実現している。【０００３】
サーボ制御装置は、制御対象の位置を検出する位置検出器を用いて、制御対象の位置が指令位置に一致するように、回転モータ、リニアモータ、ボイスコイルモータなどの電動機、油圧シリンダ、空圧シリンダ、圧電素子と言ったアクチュエータを用いてフィードバック制御を行う装置である。【０００４】
数値制御工作機械については、切削工具や工作物を軸で駆動し、工作物の表面から材料を除去する切削加工機、レーザ光源を軸で駆動し工作物を切断するレーザ加工機、電極工具やワイヤ工具を軸で駆動し、工作物との間に放電を生じさせ材料を除去する放電加工機などがある。産業用機械については、電子部品を軸で駆動し、プリント基板上の所定の場所に設置する実装機、軸を駆動し光源を走査しリソグラフィを行う半導体露光機などがある。ロボットについては、各関節をサーボ制御装置で駆動し、先端に取り付けられたハンドでワークを搬送するロボット、先端に取り付けられた工具を用いて溶接や加工を行うロボットなどがある。【０００５】
このようなサーボ制御装置を有しフィードバック制御を行う機械装置においても、様々な作業の誤差を生じることがある。例えば、機械装置の機械特性によって生じる応答遅れ、摺動面の摩擦や切削力、接触力などの機械装置が行う作業によって生じる外乱力に起因する運動誤差、コントローラの設定に起因するオーバシュートなどは、フィードバック制御が追従できず生じる過渡的な誤差として知られている。また、作業を行う機械装置では、ワーク、工具、搬送物、ロボットハンドのような実際に作業を行う部位が真に制御を行うべき制御対象となるが、位置検出器を制御対象に完全に一致して取り付けることは難しいため、位置検出器による検出結果が示す運動には誤差が生じていなくても、真の制御対象の運動には振動や応答遅れなどの誤差が生じることも知られている。【０００６】
このようなサーボ制御装置の過渡特性に起因する運動誤差、および、位置検出器では検出されない制御対象に生じる誤差は、加工誤差や作業不良の原因となるため好ましくない。このような問題に対応するため、モデルを用いて作業の精度をシミュレーションで予測し、誤差を低減するように制御を変更する方式が知られている。【０００７】
例えば、特許文献１には、サーバプラットフォーム上において、運転時の機械動作のシミュレーションのための少なくとも１つのソフトウエアモデルアルゴリズムを動作させ、シミュレーション結果に基づいて制御を変更する方法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００８−５４２８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、機械装置の特性は、同じ部品を使用していたとしても、製造時の組み立て精度のばらつき、機械装置が設置されている環境、機械装置を使用している作業条件、作業の繰り返しによって生じる経年変化などで個体差がある。さらに、作業に使用する工具、ハンドやワークの材料の種類、形状などによっても発生する誤差量が異なる。【００１０】
そのため、シミュレーションで正確に作業精度を予測するためには、対象とする機械装置の個体差や作業に応じて、シミュレーションに使用するモデルを変更する必要がある。一方で、複数台の機械にわたって行われる作業をシミュレーションするためには作業に関与するすべての機械のシミュレーションが必要となり、手間となる。すなわち、機械装置の特性の個体差の吸収が可能で、かつモデル構築の簡便さを両立するシミュレーションが必要となる。【００１１】
特許文献１に記載された技術は、予め構築されたモデルを用いてシミュレーションすることは開示されているが、対象としている個体に合わせてモデルを変更する技術、すなわち、機械装置の特性の個体差を吸収して予測精度を向上させる方法については示されていない。その為、機械装置の特性の個体差に応じたシミュレーション環境を短時間で構築し、実行することができないという課題がある。【００１２】
本開示は、上記に鑑みてなされたものであって、機械装置の特性の個体差や作業条件の違いを反映して個々の機械装置のシミュレーションに適したモデルを短時間に構築することができ、かつシミュレーションの精度を向上させることが可能なシミュレーション装置を得ることを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本開示にかかるシミュレーション装置は、機械装置が複数のアクチュエータを駆動して実行する作業を構成する要素の入力と出力との関係が計算式で記述されたモデルテンプレートを複数記憶するモデルテンプレートデータベース部と、機械装置の構成および作業を特徴づける構成情報に基づいて１つ又は複数のモデルテンプレートをモデルテンプレートデータベース部から選択するモデル構成選択部と、を備える。また、シミュレーション装置は、モデル構成選択部が選択したモデルテンプレートに対し、モデルテンプレートの変数であるモデルパラメータを設定するモデルパラメータ設定部と、モデルパラメータ設定部がモデルパラメータを設定した後のモデルテンプレートと、作業を実行する際に作業で使用する工具が通過すべき経路である指令経路とに基づいて作業のシミュレーションを実行し、作業の予測結果である予測作業結果を算出するシミュレーション実行部と、を備える。
【発明の効果】
【００１４】
本開示にかかるシミュレーション装置は、機械装置の特性の個体差や作業条件の違いを反映して個々の機械装置のシミュレーションに適したモデルを短時間に構築することができ、かつシミュレーションの精度を向上させることができる、という効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１にかかる数値制御工作機械の構成例を示す図
【図２】実施の形態１にかかる数値制御工作機械を構成するＸ軸駆動部の構成を説明するための模式図
【図３】実施の形態１にかかるサーボ制御部の構成例を示すブロック図
【図４】実施の形態１にかかる工作機械システムの構成例を示すブロック図
【図５】プロセス制御部の詳細を示すブロック図
【図６】実施の形態１にかかるシミュレーション装置の構成の詳細を示すブロック図
【図７】実施の形態１にかかるシミュレーション装置のシミュレーション実行部の詳細を示すブロック図
【図８】実施の形態１にかかるシミュレーション実行部のサーボ制御模擬部の構成例を示す図
【図９】実施の形態１にかかるシミュレーション装置を用いた、数値制御工作機械のシミュレーションの流れを示すフローチャート
【図１０】駆動機構のモデルテンプレートの一例を示す図
【図１１】実施の形態１にかかるシミュレーション装置を実現する処理回路をプロセッサおよびメモリで構成する場合の例を示す図
【図１２】実施の形態１にかかるシミュレーション装置を実現する処理回路を専用のハードウエアで構成する場合の例を示す図
【図１３】実施の形態２にかかる数値制御工作機械の構成例を示す図
【図１４】実施の形態２にかかる工作機械システムの構成例を示すブロック図
【図１５】実施の形態２にかかるシミュレーション装置の構成の詳細を示すブロック図
【図１６】実施の形態２にかかるシミュレーション実行部の詳細を示すブロック図
【図１７】実施の形態２にかかるシミュレーション装置を用いた、数値制御工作機械のシミュレーションの流れを示すフローチャート
【図１８】実施の形態２にかかる数値制御工作機械の機械構造モデル部に使用するモデルテンプレートの一例を示す図
【図１９】実施の形態３にかかる工作機械システムの構成例を示すブロック図
【図２０】実施の形態３にかかるシミュレーション装置を用いた、数値制御工作機械のシミュレーションの流れを示すフローチャート
【図２１】実施の形態５にかかる工作機械システムの構成例を示すブロック図
【図２２】実施の形態５にかかるシミュレーション装置の構成の詳細を示すブロック図
【図２３】実施の形態５にかかるシミュレーション実行部の詳細を示すブロック図
【図２４】実施の形態６にかかるシミュレーション実行部の詳細を示すブロック図
【図２５】実施の形態７にかかる工作機械システムの構成例を示すブロック図
【図２６】実施の形態８にかかる工作機械システムの構成例を示す模式図
【発明を実施するための形態】
【００１６】
以下に、本開示の実施の形態にかかるシミュレーション装置、工作機械システム、シミュレーション方法および加工方法を図面に基づいて詳細に説明する。なお、以下に示す各実施の形態ではシミュレーション装置が数値制御工作機械のシミュレーションを行う場合について具体的に説明するが、本開示を各実施の形態に示す構成に限定するものではない。各実施の形態で説明するシミュレーション装置は、複数のアクチュエータを駆動し作業を実行する産業用機械、ロボット、搬送機などの機械装置にも適用可能である。
【００１７】
実施の形態１．
図１は、実施の形態１にかかる数値制御工作機械９９の構成例を示す図である。本実施の形態にかかる数値制御工作機械９９は、直交３軸立形の切削加工機である。数値制御工作機械９９は、Ｘ軸を駆動するサーボ制御装置を含んで構成されるＸ軸駆動部９３Ｘと、Ｙ軸を駆動するサーボ制御装置を含んで構成されるＹ軸駆動部９３Ｙと、Ｚ軸を駆動するサーボ制御装置を含んで構成されるＺ軸駆動部９３Ｚと、１軸の主軸８３を制御するプロセス制御装置を含んで構成される主軸制御部９４と、を有する。数値制御工作機械９９は、工具７６をＸ軸およびＺ軸の方向で駆動し、ワークテーブル７７に設置された工作物７８をＹ軸の方向で駆動し、主軸８３を用いて工具７６を回転させることで、工作物７８の加工を行う。
【００１８】
数値制御工作機械９９が行う作業は、切削加工によって工作物７８の加工形状を実現することである。工作物７８の加工形状が定められた基準を達成するかどうか、具体的には、予め設計されたとおりの形状精度および面精度を達成するかどうかで、数値制御工作機械９９の作業の正否が判定される。
【００１９】
数値制御工作機械９９において、各軸では、アクチュエータであるモータ７１の回転運動が送りねじ７３によって各軸の駆動方向への直進運動に変換される。この時、回転運動は案内機構７２によって支持されるため、軸は送りねじ７３の送り方向にのみ自由度を持つ。数値制御工作機械９９では、結果として、各軸の直進運動を組み合わせた工具７６のＸＺ平面内の２自由度の運動および工作物７８のＹ方向の１自由度の運動によって、ＸＹＺの３次元空間内、すなわち３自由度の運動が実現される。数値制御工作機械９９は、主軸８３を用いて工具７６を回転させ、工作物７８において工具７６と干渉した部分の材料を除去することで、工作物７８の３次元の加工形状を創成する。
【００２０】
つづいて、数値制御工作機械９９を構成するＸ軸駆動部９３Ｘ、Ｙ軸駆動部９３ＹおよびＺ軸駆動部９３Ｚについて説明する。本実施の形態では、一例として、Ｘ軸駆動部９３Ｘについて説明するが、Ｙ軸駆動部９３ＹおよびＺ軸駆動部９３Ｚも同様の構成である。ただし、Ｘ軸およびＺ軸の制御対象が工具７６であるのに対して、Ｙ軸の制御対象は工作物７８である点が異なる。
【００２１】
図２は、実施の形態１にかかる数値制御工作機械９９を構成するＸ軸駆動部９３Ｘの構成を説明するための模式図である。
【００２２】
図２に示すように、数値制御工作機械９９は、指令値演算部９、サーボ制御装置９５Ｘおよび機械装置部９６を有する。機械装置部９６は、駆動機構９７Ｘおよび機械構造９８を有する。指令値演算部９、サーボ制御装置９５Ｘおよび駆動機構９７Ｘは、Ｘ軸駆動部９３Ｘを構成する。サーボ制御装置９５Ｘは、サーボ制御部６ａを備える。なお、数値制御工作機械９９は、Ｙ軸駆動部９３Ｙを構成するサーボ制御装置９５Ｙおよび駆動機構９７Ｙと、Ｚ軸駆動部９３Ｚを構成するサーボ制御装置９５Ｚおよび駆動機構９７Ｚとをさらに備えるが、図２では記載を省略している。
【００２３】
Ｘ軸のモータ７１の回転運動を直進運動に変換する役割とそれを支持する役割を持つ機構が駆動機構９７Ｘである。Ｘ軸駆動部９３Ｘにおいて、モータ７１の回転運動は、カップリング７４を介して送りねじ７３に伝達され、ナット８１および減速機７９を介して直進運動に変換される。送りねじ７３の直進運動は、支持軸受７５ａおよび７５ｂにより拘束されている。ナット８１の直進運動は、工具７６とナット８１との間に介在するＺ軸、支持部材などを総称したＸ軸の機械構造９８を介して、工具７６をＸ軸方向に駆動する。なお、数値制御工作機械９９は、主軸８３の工具７６近傍に３軸の加速度センサ８０を有する。また、機械構造９８の範囲は軸によって異なる。例えば、Ｚ軸の駆動機構９７Ｚは、Ｘ軸から見るとＸ軸のモータ７１の運動を変換する役割がないため、Ｘ軸の機械構造９８に含まれる。
【００２４】
Ｘ軸の位置指令Ｘｃは、指令値演算部９から出力され、サーボ制御部６ａに入力される。位置指令Ｘｃは、指令値演算部９で演算された、所望の制御状態における被駆動体の位置を示すものである。サーボ制御部６ａは、モータ７１に取り付けられた回転角検出器２により検出されたモータ７１の回転角度に送りねじ７３のねじピッチを乗じて得られる検出位置Ｘｄと、位置指令Ｘｃとの誤差が小さくなるようにフィードバック制御を行い、モータ７１へモータ電流Ｉｘを出力して駆動機構９７Ｘを駆動する。駆動機構９７Ｘには、制御対象である工具７６を含む機械構造９８が接続されている。ここで、回転角検出器２はモータ７１の回転角度のみを検出するが、上述のように回転運動と直進運動とは容易に換算できる。そのため、回転角検出器２は、モータ回転角度に送りねじ７３のねじピッチを乗じ、Ｘ軸のサーボ制御装置９５Ｘの直進運動に変換後の検出位置Ｘｄを出力するものとしてもよい。これ以降の説明では、回転角検出器２は、モータ７１すなわち検出点に取り付けられた、検出位置Ｘｄを出力する位置検出器とする。
【００２５】
図３は、実施の形態１にかかるサーボ制御部６ａの構成例を示すブロック図である。サーボ制御部６ａは、指令値演算部９から入力される位置指令Ｘｃと、回転角検出器２から入力される検出位置Ｘｄとを用いてモータ電流Ｉｘを演算し、モータ７１に出力する。まず、加減算器６１ａは、位置指令Ｘｃと検出位置Ｘｄとの差分である位置偏差（Ｘｃ−Ｘｄ）を演算する。位置制御器６２は、位置偏差（Ｘｃ−Ｘｄ）に応じた位置制御を行い、速度指令Ｖｃを生成する。位置制御器６２の一例はＰ（Proportional）制御器である。速度演算器６５は、回転角検出器２が出力する検出位置Ｘｄから検出速度Ｖｄを生成する。速度演算器６５の一例は微分演算器である。加減算器６１ｂは、速度指令Ｖｃと検出速度Ｖｄとの差分である速度偏差Ｖｄｅ＝Ｖｃ−Ｖｄを演算する。速度制御器６３は、速度偏差Ｖｄｅに応じて速度制御を行い、電流指令Ｉｃを生成する。速度制御器６３の一例はＰＩ（Proportional  Integral）制御器である。加減算器６１ｃは、電流指令Ｉｃと、電流制御器６４が出力するモータ電流Ｉｘとの差分である電流偏差（Ｉｃ−Ｉｘ）を演算する。最後に、電流制御器６４が、電流偏差（Ｉｃ−Ｉｘ）に応じて電流制御を行い、モータ電流Ｉｘを出力する。電流制御器６４の一例はＰＩ制御器である。
【００２６】
サーボ制御部６ａは、上記のＰ制御およびＰＩ制御におけるゲインがパラメータとして設定されており、パラメータを設定することでサーボ制御装置９５Ｘの挙動を変更することが可能となる。
【００２７】
以上のように、サーボ制御部６ａは、フィードバック制御によって、検出位置Ｘｄが位置指令Ｘｃで示される位置に一致するように制御を行う。しかしながら、フィードバック制御を行っていたとしても加工中に工具７６の先端位置と工作物７８の加工点との間に誤差が生じ、工作物７８において材料の削り残し、削りすぎなどが生じ、加工誤差が発生する場合がある。例えば、回転角検出器２の取り付け位置を制御対象である工具７６の先端に一致させることができないため、回転角検出器２で検出できない外乱が制御対象に生じる場合、また、外乱の入力に対してサーボ制御部６ａのフィードバック制御が追いつかない場合は、工具７６の運動に誤差が生じる。このような外乱原因の例としては、カップリング７４、送りねじ７３、案内機構７２、機械構造９８などの振動や、摩擦力による誤差などがある。これらの外乱は、工具７６とナット８１との間に介在する別の軸の位置、工具７６および工作物７８の質量、機械の経年変化、送りねじ７３およびナット８１の摩耗、各可動軸の潤滑油量、気温の変化、製造時の組み立てのばらつきなどによって特性が変化することが知られている。さらに、切削加工においては、工具７６の回転数、１回転あたりの切込量、工具７６の軸方向切り込み量の組み合わせによっては、びびり振動とよばれる自励振動が工具７６と工作物７８との間で発生する。びびり振動の発生により工具７６および工作物７８が振動するため、加工誤差が発生する。
【００２８】
前述のような加工誤差が発生し、設計された形状精度および面精度から外れてしまうと作業結果は不良となり、工作物７８を廃棄したり、修正加工を実施したりする必要が生じる。この結果、廃棄物が増えたり、作業時間が伸び生産性が低下したりする問題が発生する。そのため、事前に作業で達成される加工精度を予測し、加工精度が目標とする精度を実現できない場合は、目標を実現可能な作業条件に変更しておくことが好ましい。作業条件は、例えば、フィードバック制御に用いるパラメータの調整により変更する。
【００２９】
図４は、実施の形態１にかかる工作機械システム１０１ａの構成例を示すブロック図である。工作機械システム１０１ａは、上述した数値制御工作機械９９にシミュレーション装置１ａを組み込んだものである。工作機械システム１０１ａは、指令値演算部９、プロセス制御部５、サーボ制御部６ａ，６ｂ，６ｃ、機械装置部９６、機械装置情報収集部４、機械情報保持部７およびシミュレーション装置１ａを備える。
【００３０】
図４において、サーボ制御部６ａは図２に示すサーボ制御部６ａでありＸ軸を駆動するためのモータ電流Ｉｘを出力する。サーボ制御部６ｂはＹ軸を駆動するサーボ制御装置を構成し、Ｙ軸を駆動するためのモータ電流Ｉｙを出力する。サーボ制御部６ｃはＺ軸を駆動するサーボ制御装置を構成し、Ｚ軸を駆動するためのモータ電流Ｉｚを出力する。プロセス制御部５は、主軸８３を制御するプロセス制御装置を構成し、主軸８３を駆動するための電流Ｉｓを出力する。プロセス制御部５の詳細については後述する。
【００３１】
指令経路生成部３は、工作機械システム１０１ａの指令経路を生成する。指令経路生成部３は、ＣＡＤ（Computer  Aided  Design）などによって設計された３次元の加工形状を元に、ＥＩＡ（Electronic  Industries  Alliance）コードやＧコードと呼ばれる言語で記述された指令経路を出力する。指令経路は、加工において工具が通過すべき経路を３次元座標とその時の指令速度、工具の回転数で記述したプログラムである。
【００３２】
指令経路生成部３にＣＡＭ（Computer  Aided  Manufacturing）ソフトウエアを用いる場合、指令経路生成部３は数値制御装置から遠隔にあるコンピュータ内に置かれることが多い。この場合、インターネットまたはイントラネットなどのネットワーク、ＲＳ−２３２Ｃなどの通信を介しで数値制御工作機械９９と接続することによるオンラインでの指令経路の転送または、ＵＳＢ（Universal  Serial  Bus）メモリ、ＳＤカードなどのデータ記憶媒体を経由したオフラインでの指令経路の転送が行われる。指令経路生成部３は、ＣＡＭソフトウエアを数値制御装置に実装してもよいし、ＣＡＭソフトウエアでなく、数値制御装置上に対話式のプログラム作成ソフトウエアとして実装してもよい。対話式のプログラム作成ソフトウエアは、対話式ダイアログを用いて加工形状を設計し、ＥＩＡコードやＧコードで記述された指令経路を出力する。
【００３３】
指令値演算部９は、数値制御装置に実装される。指令値演算部９は、入力された指令経路を元に補間と加減速の処理を行い、時系列の、各軸すなわちＸ軸、Ｙ軸およびＺ軸に対する位置指令と、主軸に対する回転指令とを生成する。位置指令は、Ｘ軸、Ｙ軸およびＺ軸に対する指令の一例である。また、回転指令は主軸に対する指令の一例である。以下の説明では、Ｘ軸、Ｙ軸およびＺ軸に対する指令を軸指令と称する場合がある。また、主軸に対する指令をプロセス指令と称する場合がある。また、Ｘ軸、Ｙ軸およびＺ軸を纏めて駆動軸と称する場合がある。
【００３４】
サーボ制御部６ａ，６ｂ，６ｃは、それぞれ、Ｘ軸、Ｙ軸、Ｚ軸のサーボ制御装置を構成し、サーボ制御装置においてモータ７１を制御するドライブユニットまたはサーボアンプに実装される。なお、以下の説明では、サーボ制御部６ａ，６ｂ，６ｃのそれぞれを区別せずにこれらの共通の事項を説明する場合、これらをサーボ制御部６と記載することがある。
【００３５】
サーボ制御部６は、指令値演算部９より入力された位置指令に応じて、モータの回転角をフィードバック制御する。通常、サーボ制御装置を軸毎に個別に設計開発は行わず、共通の制御アルゴリズムを用いて各駆動軸の制御を行う。この場合、制御に使用するパラメータである制御パラメータを駆動軸毎に個別に調整することで、駆動軸毎に最適な制御方式を実現する。
【００３６】
プロセス制御部５は、プロセス制御装置を構成し、プロセス制御装置において主軸モータを制御する主軸ユニットまたは主軸アンプに実装される。プロセス制御部５は、主軸の回転指令に応じて、主軸の回転数およびトルクをフィードバック制御する。図５は、プロセス制御部５の詳細を示すブロック図である。プロセス制御部５は、プロセス指令を入力とし、プロセスフィードバックを用いて制御を行い、プロセス変更量を出力する。切削加工機の場合、プロセス指令は主軸回転速度Ｖｃであり、プロセス変更量は主軸電流Ｉｘである。プロセスフィードバックは、主軸の位置検出器で測定した回転角Ｘｄである。サーボ制御部６ａとの違いは、位置制御器６２を有さず、主軸回転速度指令を入力している点である。ただし、主軸で位置制御を行う場合は、主軸回転角をプロセス指令としたサーボ制御部６ａと同一の制御構造を有してもよい。
【００３７】
機械装置部９６は、Ｘ軸，Ｙ軸，Ｚ軸の各駆動軸の駆動機構９７Ｘ，９７Ｙ，９７Ｚ、主軸８３、機械構造９８を含み、各サーボ制御部６およびプロセス制御部５から、モータの指令を受ける。機械装置部９６は、受け取った指令に従い、駆動機構９７Ｘ，９７Ｙ，９７Ｚを動作させることで工具７６と工作物７８との間に相対変位を生じさせ、加工を行い、実作業結果である加工形状を出力する。
【００３８】
機械装置情報収集部４は、数値制御装置内のソフトウエアまたは、数値制御工作機械９９に接続されたハードウエアとして実装される。機械装置情報収集部４は、指令値演算部９から、指令値演算部９がサーボ制御部６ａ，６ｂ，６ｃおよびプロセス制御部５のそれぞれに出力する各指令を含んだ指令データと制御パラメータとを収集し、また、サーボ制御部６ａ，６ｂ，６ｃおよびプロセス制御部５のそれぞれから、サーボ制御データである状態量と制御パラメータとを収集する。さらに、機械装置情報収集部４は、数値制御工作機械９９の主軸８３に取り付けられた加速度センサ８０からセンサデータを収集する。機械装置情報収集部４は、収集した指令データ、状態量、制御パラメータおよびセンサデータといった各種データを、モデル同定用データとしてシミュレーション装置１ａに出力する。
【００３９】
機械情報保持部７は、シミュレーション装置１ａにおいて参照する構成情報を保持する。構成情報は、シミュレーション装置１ａがシミュレーションを行う対象の機械装置である機械装置部９６の構成および機械装置部９６が行う作業を特徴づける情報である。構成情報の詳細については、具体例を用いて別途説明する。機械情報保持部７は、数値制御装置内部に実装してもよいし、数値制御工作機械９９から遠隔にあるコンピュータやサーバに実装してもよい。
【００４０】
シミュレーション装置１ａは、指令経路、構成情報およびモデル同定用データを入力としてシミュレーションを実行し、数値制御工作機械９９が加工を行うことで得られる加工形状を予測する。シミュレーション装置１ａは、加工形状の予測結果を出力する。以下では、加工形状の予測結果を予測作業結果と称する場合がある。加工形状は、３次元の形状データや基準となる基準直線上の形状を表現する２次元データとして生成される。シミュレーション装置１ａは、数値制御装置内に実装してもよいし、数値制御工作機械９９の近傍に設置したエンジコンピュータに実装してもよいし、数値制御工作機械９９から遠隔地にあるコンピュータ、サーバやクラウドに実装してもよい。
【００４１】
図６は、実施の形態１にかかるシミュレーション装置１ａの構成の詳細を示すブロック図である。シミュレーション装置１ａは、モデルテンプレートデータベース部１０と、モデル構成選択部１１と、モデルパラメータ設定部１２と、シミュレーション実行部１３ａとを備える。
【００４２】
モデルテンプレートデータベース部１０は、シミュレーション装置１ａがシミュレーションで使用するモデルテンプレートを保持する。モデルテンプレートデータベース部１０には、機械装置部９６が行う各作業を構成する複数の要素のそれぞれについて、要素の入力と出力との関係が計算式で記述されたモデルテンプレートが複数格納されている。すなわち、１つの要素に対して複数のモデルテンプレートが予め準備され、モデルテンプレートデータベース部１０に格納されている。
【００４３】
モデル構成選択部１１は、機械情報保持部７が保持する構成情報を元に、モデルテンプレートデータベース部１０より、シミュレーション装置１ａに使用するのに適したモデルテンプレートを複数選択する。モデル構成選択部１１は、選択したモデルテンプレートをシミュレーション実行部１３ａに出力するとともに、選択したモデルテンプレートに関する情報であるモデル情報をモデルパラメータ設定部１２に出力する。
【００４４】
モデルパラメータ設定部１２は、モデル構成選択部１１から入力されるモデル情報と、機械装置情報収集部４から入力されるモデル同定用データとに基づいて、モデル同定用データからモデルテンプレートの変数であるモデルパラメータを同定する。詳細には、モデルパラメータ設定部１２は、モデル情報に含まれる、選択されたモデルテンプレートが使用するモデルパラメータの個数と、モデルテンプレートの入力となる状態量と出力となる状態量の情報とを用いて、モデル同定用データからモデルパラメータを同定し、同定したモデルパラメータをシミュレーション実行部１３ａに出力する。シミュレーション実行部１３ａは、モデル構成選択部１１から入力されたモデルテンプレートと、モデルパラメータ設定部１２から入力されたモデルパラメータとを用いて、指令経路生成部３から入力された指令経路に基づくシミュレーションを実行し、予測作業結果を算出する。
【００４５】
図７は、実施の形態１にかかるシミュレーション装置１ａのシミュレーション実行部１３ａの詳細を示すブロック図である。シミュレーション実行部１３ａは、指令値演算模擬部１４と、サーボ制御模擬部５１ａ，５１ｂ，５１ｃと、プロセス制御模擬部１５と、駆動機構モデル部１６ａ，１６ｂ，１６ｃと、機械構造モデル部１７と、プロセスモデル部１８とを備える。なお、以下の説明では、サーボ制御模擬部５１ａ，５１ｂ，５１ｃのそれぞれを区別せずにこれらの共通の事項を説明する場合、これらをサーボ制御模擬部５１と記載することがある。同様に、駆動機構モデル部１６ａ，１６ｂ，１６ｃのそれぞれを区別せずにこれらの共通の事項を説明する場合、これらを駆動機構モデル部１６と記載することがある。
【００４６】
図８は、実施の形態１にかかるシミュレーション実行部１３ａのサーボ制御模擬部５１ａの構成例を示す図である。なお、サーボ制御模擬部５１ｂおよび５１ｃの構成も同様である。
【００４７】
サーボ制御模擬部５１ａは、図３に示したサーボ制御部６ａの電流制御器６４の後段にトルク推定器７０が追加された構成である。サーボ制御模擬部５１ａには、回転角検出器２からの検出位置Ｘｄの代わりに、予測軸フィードバックとして位置の推定値Ｘｄ1が駆動機構モデル部１６ａから入力される。サーボ制御模擬部５１ａの加減算器６１ａおよび速度演算器６５は、Ｘｄ1を用いた演算を行う。すなわち、サーボ制御模擬部５１ａにおいて、加減算器６１ａは、位置指令Ｘｃと位置の推定値Ｘｄ1との差分である位置偏差（Ｘｃ−Ｘｄ1）を演算する。位置制御器６２は、位置偏差に応じた位置制御を行い、速度指令の推定値Ｖｃ1を生成する。速度演算器６５は、位置の推定値Ｘｄ1から検出速度の推定値Ｖｄ1を生成する。加減算器６１ｂは、速度指令の推定値Ｖｃ1と検出速度の推定値Ｖｄ1との差分である速度偏差推定値Ｖｄｅ1＝Ｖｃ1−Ｖｄ1を演算する。速度制御器６３は、速度偏差推定値Ｖｄｅ1に応じて速度制御を行い、電流指令の推定値Ｉｃ1を生成する。加減算器６１ｃは、電流指令の推定値Ｉｃ1と、電流制御器６４が出力するモータ電流の推定値Ｉｘ1との差分である電流偏差推定値（Ｉｃ1−Ｉｘ1）を演算する。電流制御器６４は、電流偏差推定値（Ｉｃ1−Ｉｘ1）に応じて電流制御を行い、モータ電流の推定値Ｉｘ1を出力する。トルク推定器７０は、電流制御器６４が出力するモータ電流の推定値Ｉｘ1から、モータ７１のトルクの推定値Ｔｘ1を算出して駆動機構モデル部１６ａに出力する。
【００４８】
図９は、実施の形態１にかかるシミュレーション装置１ａを用いた、数値制御工作機械９９のシミュレーションの流れを示すフローチャートである。このフローチャートを用いて、シミュレーション装置１ａを用いたシミュレーションの流れを説明する。
【００４９】
数値制御工作機械９９のシミュレーションでは、まず、シミュレーション実行部１３ａが、指令経路生成部３が作成した指令経路を取得する（ステップＳ１）。
【００５０】
次に、モデル構成選択部１１が、機械情報保持部７から構成情報を取得する（ステップＳ２）。構成情報は、機械装置部９６の構成および機械装置部９６が実行する作業の特徴に関する情報である。構成情報には、数値制御工作機械９９の機械の設計に関する情報と、指令経路生成部３で作成された指令経路における加工に関する情報とが含まれる。構成情報の具体例は、数値制御工作機械９９の機械の設計に関する情報としては、数値制御工作機械９９において使用している数値制御装置、サーボ制御装置、プロセス制御装置の名称、型番、ソフトウエア、ＯＳのバージョン、数値制御工作機械９９において使用しているモータの型番、エンコーダの種類と分解能、機械装置部９６の構造の情報、機械装置部９６の軸の構成に関する情報、機械装置部９６の軸の配置に関する情報など、一意にモデルテンプレートを選択するために必要な情報である。
【００５１】
機械装置部９６の構造の情報とは、機械の構造を特徴づけるラベリングであり、例えば、Ｃコラム構造、門型構造、テーブル旋回型５軸、主軸旋回型５軸などの名称である。ただし、構造を特徴づけるラベリングは、構造の名称と実際の構成が対応付けられていれば任意の名称を付けてもよいし、名称ではなく図示された構造のイラストや写真であってもよい。
【００５２】
機械装置部９６の軸の構成に関する情報とは、各軸の構成を特徴づける情報である。例えば、各軸で使用している軸受、ボールねじ駆動機構、案内機構、テーブルのそれぞれについて型番、形状、寸法、仕様を軸名称と対応させた情報である。ただし、軸の構成を特徴づける情報であれば、図示された構成部品の設計図面、３Ｄモデル、イラストや写真であってもよい。
【００５３】
機械装置部９６の軸の配置に関する情報とは、軸の配置を特徴づける情報である。例えば、工具に近い軸から工作物までの軸配置を文字で表現する場合は、例えば図１および図２に示す数値制御工作機械９９であれば、以下のようになる。なお、以下では図面との整合関係を表すために符号を含めて記載しているが実際の情報に符号は必要ない。
【００５４】
工具７６−主軸８３−ラム９２−Ｚ軸−コラム９０−Ｘ軸−ベッド９１−Ｙ軸−ワークテーブル７７−工作物７８
【００５５】
ただし、この記述方法は一例であり、軸の配置が特徴づけられるものであれば、他の記述方法であってもよいし、文字ではなく図示されたイラストであってもよいし、数値制御工作機械９９の名称や型番、シリアル番号などと対応付けしてもよい。
【００５６】
さらに、機械装置の設計に用いられる３次元ＣＡＤソフトにおいては、複数の部品を組み合わせたときの機械の形状を確認する機能があり、アセンブリファイルと呼ばれるファイルに保存される。アセンブリファイルには、各部品の名称、使用している要素部品の型番、軸の構成の情報が格納される。機械装置部９６の軸の配置に関する情報、すなわち、軸の配置を特徴づける情報として、このような３次元ＣＡＤのデータを登録してもよい。      
【００５７】
また、数値制御装置には、制御を行うために軸の名称、使用している要素部品の寸法などの仕様、軸の配置に関する情報をパラメータとして保存しているものもある。数値制御装置内部に保存された軸の配置と軸の構成に関するパラメータを軸の配置を特徴づける情報として使用してもよい。
【００５８】
指令経路生成部３で作成された指令経路における加工に関する情報とは、シミュレーション対象となる数値制御工作機械９９の作業を特徴づける情報である。例えば、使用する工具の名称や型番、加工方法の名称である。このような情報も、数値制御装置内部に使用する工具の名称、使用や加工の方法や加工サイクルがパラメータとして登録されており、これらを用いてもよい。
【００５９】
次に、モデル構成選択部１１が、構成情報に基づいて、シミュレーション実行部１３ａにおけるシミュレーションで使用するモデルテンプレートをモデルテンプレートデータベース部１０から選択する（ステップＳ３）。詳細には、モデル構成選択部１１は、まず、指令値演算模擬部１４に使用するモデルテンプレートを選択する。指令値演算模擬部１４は、指令値演算部９の作業を模擬するモデルであり、指令経路に基づいて、機械装置部９６が有する各駆動軸、すなわち、Ｘ軸、Ｙ軸およびＺ軸それぞれに対する予測軸指令と、主軸８３に対する予測プロセス指令とを演算するモデルである。モデルテンプレートデータベース部１０には、様々な指令値演算模擬部１４に使用可能な、指令経路から予測軸指令及び予測プロセス指令を演算するモデルテンプレートが格納されている。モデルテンプレートは、例えば、機種毎やソフトウエアバージョンごとの指令値演算部９の挙動をソースコードレベルで再現したモデル、指令値演算部９の処理を近似したモデル、あるいは異なるメーカの指令値演算部９のモデルであってもよい。数値制御工作機械９９は１つの指令経路生成部３を有するので、モデル構成選択部１１は、構成情報を元に、対応するラベリングされたモデルテンプレートを１つ選択する。例えば、数値制御工作機械９９で使用している数値制御装置のソフトウエアバージョンでラベリングされた複数のモデルテンプレートから構成情報に含まれるソフトウエアバージョンのラベルに一致するモデルテンプレートを選択する。ただし、モデルテンプレートのラベリングは一意にモデルが決定できるものであれば、型番や数値制御装置のシリアル番号など任意の名称を使用してもよいし、イラストや写真を使用してもよい。
【００６０】
同様に、モデル構成選択部１１は、サーボ制御模擬部５１ａ，５１ｂ，５１ｃとサーボ制御部６ａ，６ｂ，６ｃ、プロセス制御模擬部１５とプロセス制御部５についても、モデルテンプレートを選択する。
【００６１】
サーボ制御模擬部５１ａ，５１ｂ，５１ｃに設定されるモデルは、予測軸指令と予測軸フィードバックから予測アクチュエータ指令までを計算するモデルである。プロセス制御模擬部１５に設定されるモデルは、予測プロセス指令と予測プロセスフィードバックから予測プロセス変更量までのモデルである。数値制御工作機械９９は、１つの主軸と３つのサーボ制御装置とを有するので、モデル構成選択部１１は、１つのプロセス制御模擬部１５のモデルテンプレートと、３つのサーボ制御模擬部５１ａ，５１ｂ，５１ｃのモデルテンプレートとをそれぞれ選択する。モデル構成選択部１１は、例えば、サーボ制御模擬部５１に設定するモデルテンプレートの中から、サーボ制御装置と型番およびソフトウエアバージョンが同じモデルテンプレートを選択し、プロセス制御模擬部１５に設定するモデルテンプレートの中から、プロセス制御装置と型番およびソフトウエアバージョンが同じモデルテンプレートを選択する。
【００６２】
さらに、モデル構成選択部１１は、駆動機構モデル部１６ａ，１６ｂ，１６ｃに使用するモデルテンプレートを選択する。駆動機構モデル部１６ａ，１６ｂ，１６ｃは、予測アクチュエータ指令および予測軸外乱に基づいて予測軸位置を計算する。モデル構成選択部１１は、例えば、ボールねじ駆動機構、リジッドカップリング、両端支持軸受という軸の構成情報からボールねじ駆動機構用のモデルテンプレートを選択する。
【００６３】
図１０は、駆動機構のモデルテンプレートの一例を示す図である。図１０のモデルテンプレートは、ボールねじ駆動機構を有し、リジットカップリングでモータを接続し、両端支持の軸受構造に支持される駆動機構のモデルテンプレートの例である。このモデルテンプレートは、モータ慣性、カップリング慣性、ボールねじ慣性およびテーブル質量の４つの慣性をばねと減衰で接続した力学モデルであり、４慣性モデルと呼ばれる。４慣性モデルでは、モータトルクＴｍと予測軸外乱とを入力とし、モータ位置Ｘｍを予測軸フィードバック、テーブル位置を予測軸位置Ｘｔとして出力するモデルである。また、回転系摩擦モデルはモータの回転速度を入力とし、モータへの摩擦力を方程式で記述した摩擦モデルであり、直動系摩擦モデルは、テーブル速度を入力とし、テーブルへの摩擦力を方程式で記述した摩擦モデルである。摩擦モデルの計算式は、例えば、粘性抵抗であればＦ＝Ｃｖで記述でき、Ｃは粘性抵抗、ｖは速度、Ｆは摩擦力である。また、クーロン摩擦力であればＦ＝ｓｉｇｎ(ｖ)＊Ｆ０で記述でき、ｓｉｇｎは符号関数、Ｆ０はクーロン摩擦定数である。また、多項式やテーブルとして実装される摩擦モデルを用いてもよい。
【００６４】
また、モデル構成選択部１１は、機械構造モデル部１７に使用するモデルテンプレートを選択する。機械構造モデル部１７は、各駆動軸の予測軸位置および予測プロセス外乱を入力とし、各駆動軸の予測軸外乱と作業点変位とを出力とするモデルである。作業点変位は、作業に用いる工具７６が実際に通過する経路を表す情報である。モデル構成選択部１１は、数値制御工作機械９９を対象としたシミュレーションでは、Ｃコラム型の機械構造に対応した３入力４出力の状態空間モデルを選択する。
【００６５】
最後に、モデル構成選択部１１は、プロセスモデル部１８に使用するモデルテンプレートを選択する。プロセスモデル部１８は、作業点変位および予測プロセス変更量を入力とし、予測プロセス外乱と予測作業結果である加工形状とを出力する。モデル構成選択部１１は、数値制御工作機械９９が正面フライスを用いたフライス加工を行うとした場合、フライス加工による加工力を予測し、切削力を各軸方向の予測プロセス外乱として出力し、フライス加工によって創成される面形状を予測作業結果として出力するモデルテンプレートを選択する。
【００６６】
以上、モデル構成選択部１１がモデルテンプレートデータベース部１０よりモデルテンプレートを選択する具体的な方法について説明したが、ここで選択したモデルは一例である。入出力関係が定義された計算式が各モデルで必要とされる入出力であれば、既知のブラックボックス、ホワイトボックス、グレーボックス、サロゲート、ビヘイビア、状態空間、部分空間、伝達関数、ＦＥＭ（Finite  Element  Method：有限要素法）などを用いた各種モデル化手法のいずれかによって記述されるモデル構造などであってよい。また、モデルテンプレートデータベース部１０は、すべてのモデルテンプレートを分類せず格納してもよいし、指令値演算模擬部専用のモデルテンプレートと、サーボ制御模擬部専用のモデルテンプレートと、駆動機構モデル部専用のモデルテンプレートとに分類して格納してもよい。
【００６７】
このようなモデルテンプレートは、機械の出荷時に、機械装置の製造メーカ、数値制御装置の製造メーカによってあらかじめ登録されていてもよいし、機械ユーザ、製造メーカ、ソフトウエアベンダまたはサードパーティが構築したモデルをダウンロードして使用してもよい。また、モデルテンプレートは、機械装置のユーザが保有する機械に合わせて構築し登録したモデルテンプレートであってもよい。
【００６８】
次に、モデルパラメータ設定部１２が、モデル情報を元に、ステップＳ３で選択されたモデルテンプレートに対応するモデルパラメータが存在するかを確認する（ステップＳ４）。すなわち、モデルパラメータ設定部１２は、ステップＳ３で選択されたモデルテンプレートを用いたシミュレーションを実行して求めたモデルパラメータが既に存在するかを確認する。対応するモデルパラメータが存在しない場合（ステップＳ４：Ｎｏ）、モデルパラメータ設定部１２は、機械構成情報に基づいてモデルパラメータの初期値（以下、初期パラメータとする）を決定して各モデルテンプレートに設定する（ステップＳ５）。初期パラメータは、構成情報から理論計算によって算出されるパラメータであってもよいし、ＣＡＤデータから算出される値であってもよい。また、以前に実施した加工において同定したモデルパラメータを初期値として使用してもよい。例えば、指令値演算部９およびサーボ制御部６のパラメータは数値制御装置に登録済みのパラメータを用いることができる。稼働質量は、ＣＡＤデータから算出できる。また、モデルテンプレート毎に初期値としてあらかじめ決定されているモデルパラメータを使用してもよい。また、対応するモデルパラメータが存在しない場合には、シミュレーションの実行ステップである後述のステップＳ７を省略してステップＳ９を実行して初期加工を行うことで、シミュレーションに必要なパラメータをあらかじめ決定し、その後にシミュレーションを開始するようにしてもよい。
【００６９】
モデルパラメータ設定部１２は、ステップＳ３で選択されたモデルテンプレートに対応するモデルパラメータが存在する場合（ステップＳ４：Ｙｅｓ）、対応するモデルパラメータを各モデルテンプレートに設定する（ステップＳ６）。
【００７０】
次に、シミュレーション実行部１３ａが、指令経路と、選択されたモデルテンプレートと、設定されたモデルパラメータとを用いてシミュレーションを実行して加工形状を予測し、予測した加工形状を予測作業結果として出力する（ステップＳ７）。
【００７１】
次に、シミュレーション実行部１３ａから出力された予測作業結果であるシミュレーション結果が設計精度を満たすかを確認する（ステップＳ８）。シミュレーション結果が設計精度を満たすかどうかの確認はユーザが行ってもよいし、工作機械システム１０１ａが行ってもよい。例えば、指令経路で表される加工形状と予測作業結果との誤差と閾値とを比較することで設計精度を満たすかどうかを判定する。
【００７２】
シミュレーション結果が設計精度を満たさない場合（ステップＳ８：Ｎｏ）、ステップＳ１に戻る。この場合、指令経路生成部３が指令経路の生成に用いるデータを修正した上で再度ステップＳ１を実行し、シミュレーション実行部１３ａは、修正された指令経路を取得する。その後、ステップＳ２〜Ｓ７を実行する。
【００７３】
シミュレーション結果が設計精度を満たす場合（ステップＳ８：Ｙｅｓ）、指令経路を指令値演算部９に転送し、実際の加工を数値制御工作機械９９において実行する（ステップＳ９）。すなわち、プロセス制御部５および各サーボ制御部６が機械装置部９６の主軸８３および各駆動軸を制御して工作物７８を加工する。このとき、機械装置情報収集部４は、加工中のデータをプロセス制御部５および各サーボ制御部６から収集し、収集したデータをモデル同定用データとしてシミュレーション装置１ａに送信する。
【００７４】
次に、モデルパラメータ設定部１２が、モデル情報に基づいて、シミュレーション実行部１３ａに設定されているモデルテンプレート毎にモデルパラメータの同定を行い、より実際の加工に一致するモデルパラメータに更新する（ステップＳ１０）。また、モデルパラメータ設定部１２は、更新後のモデルパラメータを、シミュレーション実行部１３ａに設定されているモデルテンプレートに対応するモデルパラメータとして保存する。モデルパラメータの同定に用いるアルゴリズムは、数値計算や最小二乗法などのパラメータフィッティング技術、ＡＲＸやＡＲＭＡＸなどの既知のパラメータ同定アルゴリズム、ニューラルネットワークやＱ学習を用いた学習的アルゴリズムなどのいずれであってもよい。モデル情報とは、モデルの構造に関する情報であり、例えば、モデルの入出力データ、モデルに含まれるパラメータ数、などである。モデル情報は、モデルパラメータの同定アルゴリズムを決定するために必要な情報を含む。モデル情報には、モデルパラメータ設定部１２によるパラメータ更新を許可するか否かを示す情報をさらに含んでもよい。例えば、指令値演算部９、プロセス制御部５およびサーボ制御部６はソフトウエアとして実装されるため、モデルパラメータの真値は、実機に設定されているパラメータが確認できるのであれば、同定する必要がない。その為、モデルパラメータ設定部１２によるパラメータ更新を許可しないことで、これらのモデルパラメータの同定に使用される計算時間を削減することが可能となる。また、モデル情報には、モデルパラメータ同定に使用されるべき計算式の情報を含んでいてもよい。これによりモデルパラメータ設定部１２は、あらかじめ定められたモデルパラメータ同定の計算式を選択することが可能となる。
【００７５】
以上により、実施の形態１にかかるシミュレーション装置１ａは、個体差や作業条件の違いを反映したモデルを短時間に構築するとともに、作業結果の予測精度を向上させることができる。さらに、加工する形状が変化した場合や、繰り返しの加工によって機械の状態が変化する場合も、更新されたモデルパラメータを用いることで常に精度の高いシミュレーションを実行することが可能となる、という効果を奏する。また、数値制御工作機械９９の動作を決定するパラメータをシミュレーション結果に基づいて調整することで、加工精度を高めることができ、数値制御工作機械９９の性能向上を実現できる。
【００７６】
ここで、実施の形態１にかかるシミュレーション装置１ａを実現するハードウエアについて説明する。シミュレーション装置１ａのモデルテンプレートデータベース部１０は、メモリで実現される。モデル構成選択部１１、モデルパラメータ設定部１２およびシミュレーション実行部１３ａは、処理回路により実現される。処理回路は、メモリに格納されるプログラムを実行するプロセッサおよびメモリであってもよいし、専用のハードウエアであってもよい。
【００７７】
図１１は、実施の形態１にかかるシミュレーション装置１ａを実現する処理回路をプロセッサおよびメモリで構成する場合の例を示す図である。処理回路がプロセッサ２０１およびメモリ２０２で構成される場合、シミュレーション装置１ａの処理回路の各機能、すなわち、モデル構成選択部１１、モデルパラメータ設定部１２およびシミュレーション実行部１３ａは、ソフトウエア、ファームウエア、またはソフトウエアとファームウエアとの組み合わせにより実現される。ソフトウエアまたはファームウエアはプログラムとして記述され、メモリ２０２に格納される。処理回路では、メモリ２０２に記憶されたプログラムをプロセッサ２０１が読み出して実行することにより、各機能を実現する。すなわち、処理回路は、シミュレーション装置１ａの処理が結果的に実行されることになるプログラムを格納するためのメモリ２０２を備える。また、これらのプログラムは、シミュレーション装置１ａの手順および方法をコンピュータに実行させるものであるともいえる。
【００７８】
ここで、プロセッサ２０１は、ＣＰＵ（Central  Processing  Unit）、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、またはＤＳＰ（Digital  Signal  Processor）などであってもよい。また、メモリ２０２には、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  ＲＯＭ）、ＥＥＰＲＯＭ（登録商標）（Electrically  ＥＰＲＯＭ）などの、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、またはＤＶＤ（Digital  Versatile  Disc）などが該当する。
【００７９】
図１２は、実施の形態１にかかるシミュレーション装置１ａを実現する処理回路を専用のハードウエアで構成する場合の例を示す図である。処理回路が専用のハードウエアで構成される場合、図１２に示す処理回路２０３は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）、またはこれらを組み合わせたものが該当する。シミュレーション装置１ａの各機能を機能別に処理回路２０３で実現してもよいし、各機能をまとめて処理回路２０３で実現してもよい。
【００８０】
なお、シミュレーション装置１ａの各機能について、一部を専用のハードウエアで実現し、一部をソフトウエアまたはファームウエアで実現するようにしてもよい。このように、処理回路は、専用のハードウエア、ソフトウエア、ファームウエア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
【００８１】
数値制御工作機械９９においてシミュレーション装置１ａを実現するハードウエアについて説明したが、サーボ制御装置、プロセス制御装置および数値制御装置も同様のハードウエアで実現可能である。
【００８２】
実施の形態２．
図１３は、実施の形態２にかかる数値制御工作機械１００の構成例を示す図である。本実施の形態では、実施の形態１との差異を中心に説明する。
【００８３】
数値制御工作機械１００はレーザ加工機であり、集光したレーザ光によって、工作物７８を切断して加工形状を実現する作業を行う。レーザ光は、レーザヘッド８２中のレンズにより集光され、ノズル８４より出力される。数値制御工作機械１００は、門型加工機と呼ばれるガントリ構造１１１を有する加工機であり、レーザヘッド８２をＸ軸、Ｙ軸およびＺ軸で駆動する。ガントリ構造１１１を駆動するＹ軸は、タンデム軸と呼ばれる構成である。数値制御工作機械１００は、マスタ軸およびスレーブ軸の２つの軸を同期して駆動することで、ガントリ構造１１１のような幅の広い構造物を安定して駆動することが可能である。数値制御工作機械１００においては、Ｙ軸駆動部９３Ｙがマスタ軸であるＹ軸を駆動し、Ｖ軸駆動部９３Ｖがスレーブ軸であるＶ軸を駆動する。
【００８４】
また、数値制御工作機械１００では、Ｘ軸、Ｙ軸およびＶ軸は、ラックアンドピニオン駆動、Ｚ軸はリニアモータ駆動の送り機構である。ラックアンドピニオン駆動では、歯のついた直線状のギアであるラック８５に対して、歯車のついたギアであるピニオン８６を沿わせて動かすことでモータ７１の回転運動を直線運動に変換する。また、ラックアンドピニオン駆動では、モータを減速させるために減速機７９によってモータ７１を減速させる機構をモータ７１とピニオン８６との間に有する。リニアモータは機械的な駆動機構を有さず、電磁石により直線的な運動を実現する。
【００８５】
図１４は、実施の形態２にかかる工作機械システム１０１ｂの構成例を示すブロック図である。工作機械システム１０１ｂは、上述した数値制御工作機械１００にシミュレーション装置１ｂを組み込んだものである。実施の形態１にかかる工作機械システム１０１ａ（図４参照）との違いは、Ｖ軸を駆動するサーボ制御部６ｄを有する点、機械情報保持部７がシミュレーション要件を保持し、保持しているシミュレーション要件が構成情報としてシミュレーション装置１ｂに送られる点、作業結果測定部８により実作業結果が評価された実作業結果測定データを機械装置情報収集部４が収集する点、シミュレーション装置１ｂに対し、構成情報、指令経路およびモデル同定用データに加えて調整要件を入力する点、シミュレーション装置１ｂが予測作業結果に加えて最適パラメータを出力する点である。また、レーザ加工機におけるプロセス制御部５の制御対象は主軸ではなくレーザ発振器である。そのため、プロセス指令として、速度指令Ｖｃの代わりにレーザ発振器制御指令Ｓｃがプロセス制御部５に入力される。
【００８６】
機械情報保持部７が保持するシミュレーション要件とは、シミュレーションに求める精度に関する情報である。一般に、シミュレーション精度を高くするためには、より複雑なモデルを用いる必要があり、モデルが複雑になるとシミュレーションに要する時間が伸びたり、シミュレーションに必要なハードウエアに高い性能が必要とされたりする。一方で、シミュレーションに求められる精度は、加工条件を変更したりするために必要十分な精度であればよいため、シミュレーションに求める精度を設定することで、必要十分な精度と計算時間とを両立するシミュレーションの実現が可能となる。
【００８７】
作業結果測定部８は、作業結果である加工形状を測定する装置であり、実作業結果である加工形状をデータ化し、実作業結果測定データとして機械装置情報収集部４に送信する。作業結果測定部８は、例えば、画像測定器または触針式形状測定器として実装される。作業結果測定部８によるデータ送信は、加工中のデータ収集と同時に行ってもよいし、加工後にシミュレーション装置１ｂがモデルパラメータの同定を実施するよりも前に送信してもよい。実作業結果のデータを用いてモデル同定を行うことで、より正確なモデルパラメータを決定することが可能となる。
【００８８】
図１５は、実施の形態２にかかるシミュレーション装置１ｂの構成の詳細を示すブロック図である。実施の形態１にかかるシミュレーション装置１ａ（図６参照）との違いは、最適化演算実行部１９を有する点、シミュレーション実行部１３ａの代わりにシミュレーション実行部１３ｂを備える点である。最適化演算実行部１９は、シミュレーション実行部１３ｂによって予測された予測作業結果と入力された調整要件とに基づいてシミュレーションの最適なパラメータを計算し、計算したパラメータへの変更を指令するモデルパラメータ変更指令をモデルパラメータ設定部１２に出力するとともに、計算したパラメータを最適パラメータとして外部に出力する。
【００８９】
最適化演算実行部１９に入力される調整要件は、数値制御工作機械１００が実作業において達成すべき性能の目標値、最適化の対象となるパラメータ、最適化の試行回数の上限である。最適化演算実行部１９は、予測作業結果が調整要件に含まれる性能の目標値を満たさない場合、指令経路生成部３、サーボ制御部６、プロセス制御部５および機械装置部９６ｂを変更し、性能の目標値を達成可能なパラメータを計算する。一般的にソフトウエアとして実装される指令経路生成部３、サーボ制御部６およびプロセス制御部５のパラメータなど、制御に関連するパラメータの変更は比較的容易である。一方、駆動装置、機械構造など、設計に関連するパラメータを短時間で変更することは難しい。また、タクトタイムおよび加工法の制約から、制御に関連するパラメータの中には変更できないパラメータが存在する。このような場合に対応するため、調整要件により、最適化の対象となるモデルパラメータが設定される。また、設定された性能の目標値が物理的に実現不可能な場合は最適化が有限時間内に完了しないこともあるため、最適化の試行回数および試行時間の上限の一方または両方を設定することで、現実的な時間での最適化を完了させることが可能となる。シミュレーション装置１ｂにおいては、シミュレーション実行部１３ｂで使用されるモデルパラメータを変更しながらシミュレーションを繰り返し、最適化演算実行部１９が最適なパラメータをシミュレーション上で探索する。パラメータ最適化の方法は、既知の最適化アルゴリズム、学習的アルゴリズムのいずれを用いてもよい。
【００９０】
図１６は、実施の形態２にかかるシミュレーション実行部１３ｂの詳細を示すブロック図である。実施の形態１にかかるシミュレーション実行部１３ａ（図７参照）との違いは、プロセス制御模擬部１５およびプロセスモデル部１８を持たないことと、駆動機構モデル部１６ｄ、幾何形状計算部２０およびサーボ制御模擬部５１ｄを有する点である。幾何形状計算部２０は、作業点の変位から予測作業結果である３次元の加工形状を計算し、計算した加工形状を予測作業結果として出力する。また、サーボ制御模擬部５１ｄは、Ｖ軸のサーボ制御部６ｄに対応するモデルである。
【００９１】
図１７は、実施の形態２にかかるシミュレーション装置１ｂを用いた、数値制御工作機械１００のシミュレーションの流れを示すフローチャートである。このフローチャートを用いて、シミュレーション装置１ｂを用いたシミュレーションの流れを説明する。実施の形態１との差異を中心にシミュレーションの流れを説明する。
【００９２】
図１７では、実施の形態１にかかるシミュレーション装置１ａを用いたシミュレーションの流れについての図９に示すフローチャートと同様の処理に同じステップ番号を付している。すなわち、図１７に示すフローチャートは、図９に示すフローチャートのステップＳ４〜Ｓ８の代わりにステップＳ１４およびＳ１５を含む。
【００９３】
まず、実施の形態１と同様に、シミュレーション実行部１３ｂが、指令経路生成部３が作成した指令経路を取得する（ステップＳ１）。
【００９４】
次に、モデル構成選択部１１が、機械情報保持部７から構成情報を取得する（ステップＳ２）。このステップＳ２で取得する構成情報には、実施の形態１で説明した図９のステップＳ２で取得する構成情報に含まれる情報に加えて、シミュレーション要件が含まれる。すなわち、実施の形態２にかかるシミュレーションで使用する構成情報には、数値制御工作機械１００の機械の設計に関する情報と、指令経路生成部３で作成された指令経路における加工に関する情報と、シミュレーション要件とが含まれる。
【００９５】
数値制御工作機械１００の機械の設計に関する情報として、例えば、機械装置部９６ｂの構造の情報として、ガントリ構造を示す情報が含まれる。また、機械装置部９６ｂの軸の構成に関する情報として、例えば、図１３に示す数値制御工作機械１００の場合は以下に示す情報が含まれる。なお、以下では図面との整合関係を表すために符号を含めて記載しているが実際の情報に符号は必要ない。
【００９６】
工具７６−Ｚ軸−サドル１１２−Ｘ軸−ガントリ構造１１１−Ｙ／Ｖ軸−ベッド９１−工作物７８
【００９７】
また、指令経路生成部３で作成された指令経路における加工に関する情報として、例えば、レーザ切断を示す情報が含まれる。
【００９８】
シミュレーション要件は、例えば、シミュレーション装置１ｂにおけるシミュレーションの精度、数値制御工作機械１００の実現すべき精度、シミュレーション時間に関する制限など、数値で示される要件であったり、シミュレーション精度高・中・低のような定性的な要件であったりしてもよい。また、シミュレーション要件として、モデルテンプレートデータベース部１０から選択するモデルテンプレートのラベルを直接設定してもよい。本実施の形態では、数値制御工作機械１００を１０マイクロメートルの加工精度が求められるレーザ加工機であるとし、以下では、シミュレーション精度として５マイクロメートルのシミュレーション要件を設定した場合について説明する。
【００９９】
ステップＳ２の動作が完了すると、次に、モデル構成選択部１１が、構成情報に基づいて、シミュレーション実行部１３ｂにおけるシミュレーションで使用するモデルテンプレートをモデルテンプレートデータベース部１０から選択する（ステップＳ３）。すなわち、シミュレーション装置１ｂのモデル構成選択部１１は、シミュレーション装置１ａのモデル構成選択部１１と同様の手順で、シミュレーション実行部１３ｂの指令値演算模擬部１４、サーボ制御模擬部５１ａ，５１ｂ，５１ｃ，５１ｄ、駆動機構モデル部１６ａ，１６ｂ，１６ｃ，１６ｄ、機械構造モデル部１７および幾何形状計算部２０のそれぞれに使用するモデルテンプレートを選択する。
【０１００】
シミュレーション実行部１３ｂは、実施の形態１にかかるシミュレーション実行部１３ａと同様の構造を有しているが、シミュレーション精度が５マイクロメートルの場合は、モデル構成選択部１１は、シミュレーション実行部１３ａのプロセス制御模擬部に相当する処理部にモデルテンプレートを設定しない。その為、シミュレーション実行部１３ｂはプロセス制御模擬部を有していない。シミュレーション実行部１３ｂにおいて、指令値演算模擬部１４は予測プロセス指令を計算するが、プロセス制御模擬部を有さないため、シミュレーションでは予測プロセス指令を使用しない。また、シミュレーション実行部１３ｂでは、加工方法がレーザ加工で、プロセス制御模擬部にモデルテンプレートが設定されないため、シミュレーション実行部１３ａが有するプロセスモデル部１８の代わりに幾何形状計算部２０を使用する。幾何形状計算部２０は、作業点変位を用いて、Ｘ，Ｙ，Ｚの運動軌跡から、レーザ切断される面の軌跡を計算して加工形状を算出し、予測作業結果として加工形状を出力する。また、幾何形状計算部は２０を使用する場合は、機械構造モデル部１７への予測プロセス外乱は入力されない。機械構造モデル部１７は、予測プロセス外乱の入力はゼロとして扱い、作業点変位を演算する。
【０１０１】
モデル構成選択部１１は、機械構造モデル部１７に使用するモデルテンプレートとしては、構成情報に含まれるガントリ構造の情報および軸の構成に関する情報から、対応するガントリ構造モデルを選択する。
【０１０２】
図１８は、実施の形態２にかかる数値制御工作機械１００の機械構造モデル部１７に使用するモデルテンプレートの一例を示す図である。図１８に示すモデルテンプレートは、Ｘ軸によって生じるＸ方向の作業点変位と、Ｚ軸によって生じるＺ方向の作業点変位と、Ｙ軸とＶ軸の干渉を考慮したＹ方向の作業点変位とを計算するモデルテンプレートの一例である。ただし、構成情報およびモデルテンプレートを選択する上記選択手順は一例である。モデル構成選択部１１が構成情報に対して一意にモデルテンプレートを選択できれば、どのモデルテンプレートを選択するか、あるいは、モデルテンプレートを使用しないという選択を関連付けるかは、モデル構成選択部１１の設計仕様であり、適宜変更してもよい。
【０１０３】
次に、シミュレーション実行部１３ｂによるシミュレーション、および、最適化演算実行部１９によるモデルパラメータの最適化を実行する（ステップＳ１４）。すなわち、シミュレーション実行部１３ｂが、指令経路と、選択されたモデルテンプレートと、モデルパラメータとを用いてシミュレーションを実行して加工形状を予測し、予測した加工形状を予測作業結果として出力する。また、最適化演算実行部１９が、予測作業結果および調整要件に基づいて、モデルパラメータの最適化を行う。最適化演算実行部１９は、サーボ制御装置のパラメータを最適化の対象として最適化を行う。最適化演算実行部１９は、例えば、加工精度１０マイクロメートルという調整要件を満たすサーボパラメータを探索する。最適化中は、最適化演算実行部１９がモデルパラメータを複数回変更し、変更後のモデルパラメータを使用してシミュレーション実行部１３ｂがシミュレーションを行い、その予測作業結果が調整要件を満たすまで、モデルパラメータの変更およびシミュレーションを繰り返す。最適化演算実行部１９は、調整要件を満たすモデルパラメータが得られると、それを最適パラメータとして出力する。
【０１０４】
ステップＳ１４が終了すると、最適パラメータを数値制御工作機械１００に設定し（ステップＳ１５）、数値制御工作機械１００が実加工を実行して実作業結果を出力する（ステップＳ９）。この時、加工中のデータのほかに、加工後に作業結果測定部８で測定した、実作業結果が示す加工形状のデータを、機械装置情報収集部４が収集する。
【０１０５】
次に、シミュレーション装置１ｂのモデルパラメータ設定部１２が、シミュレーション実行部１３ｂが使用する各モデルテンプレートのモデルパラメータを同定し、モデルパラメータを更新する（ステップＳ１０）。
【０１０６】
以上説明したように、実施の形態２にかかるシミュレーション装置１ｂによれば、必要十分なシミュレーション精度および計算時間を実現しつつ、モデルパラメータを最適化することができる。
【０１０７】
実施の形態３．
実施の形態１および実施の形態２では、実加工の前にシミュレーションを実行していたが、シミュレーションと加工とを同時すなわち並列に実行してもよい。そこで、本実施の形態では、シミュレーションと加工とを同時に実行する場合について説明する。
【０１０８】
図１９は、実施の形態３にかかる工作機械システム１０１ｃの構成例を示すブロック図である。工作機械システム１０１ｃは、図１および図２に示す実施の形態１にかかる数値制御工作機械９９に対し、実施の形態２にかかるシミュレーション装置１ｂを組み込んだものである。工作機械システム１０１ｃは、シミュレーション装置１ｂから出力される最適パラメータを指令値演算部９、プロセス制御部５およびサーボ制御部６ａ，６ｂ，６ｃに直接設定する構成である。
【０１０９】
図２０は、実施の形態３にかかるシミュレーション装置１ｂを用いた、数値制御工作機械９９のシミュレーションの流れを示すフローチャートである。実施の形態３においては、シミュレーション装置１ｂがステップＳ１〜Ｓ３を実行して使用するモデルテンプレート選択後、シミュレーション装置１ｂによるシミュレーションと、数値制御工作機械９９による加工、すなわち、機械装置部９６による工作物の加工とを同時に実行する（ステップＳ７，Ｓ９）。詳細には、シミュレーション装置１ｂにおいて、シミュレーション実行部１３ｂの指令値演算模擬部１４は、数値制御工作機械９９の指令値演算部９が加工のための指令値出力を開始すると同時に、シミュレーションを開始し、指令値演算部９が軸指令とプロセス指令とを出力するタイミングと同じタイミングで、予測軸指令と予測プロセス指令とを出力する。
【０１１０】
実施の形態２においては、シミュレーションを繰り返し実行しながらモデルパラメータの最適化を行ったが、実施の形態３では、シミュレーションの途中で都度最適化を行う。すなわち、シミュレーション要件にモデルパラメータの計算周期を設定し、設定された計算周期毎に調整要件を満たす最適パラメータをシミュレーション装置１ｂの最適化演算実行部１９が計算する。最適化演算実行部１９は計算した最適パラメータを即時、指令値演算部９、プロセス制御部５およびサーボ制御部６に送信し、これらの各部が使用するモデルに設定する（ステップＳ２８）。機械装置情報収集部４は、モデルパラメータの計算周期毎に収集したモデル同定用データをシミュレーション装置１ｂに送信し、シミュレーション装置１ｂのモデルパラメータ設定部１２がモデルパラメータを更新する（ステップＳ２９）。
【０１１１】
以上説明したように、実施の形態３にかかる工作機械システム１０１ｃでは、加工と同時にシミュレーションを実行し、逐次最適パラメータに更新することで、調整要件を満たす加工精度を維持することが可能となる。
【０１１２】
実施の形態４．
本実施の形態では、実施の形態３と同様の構成の工作機械システム１０１ｃにおいて、シミュレーションを実行してモデルパラメータを更新する動作の変形例について説明する。
【０１１３】
実施の形態３では、実際の加工とシミュレーションとを同時に実施し、モデルパラメータを適宜更新することとしたが、加工と同時にシミュレーションを開始する場合であっても、シミュレーションの進行速度を実際の加工速度よりも早めてもよい。
【０１１４】
シミュレーションにおいてはシミュレーション時間を現実の時間よりも早い時間で進めることが可能となる。例えば、実世界ではＴreal秒で終了する加工をシミュレーションではＴsim秒（Ｔreal＞Ｔsim）で完了させることができる。そのため、実加工で誤差が発生する前にシミュレーションで加工誤差発生を予測し、実加工で誤差発生個所に到達する前に、パラメータを最適なものに更新しておくといったことが可能となる。
【０１１５】
また、シミュレーション装置１ｂにおいて、それぞれのモデルがシミュレーションを実行する周期を変更してもよい。例えば、シミュレーション実行部１３ｂの指令値演算模擬部１４およびサーボ制御模擬部５１は、離散時間系のソフトウエアとして実装される。そこで、指令値演算周期ｄｔｒよりもサーボ演算周期ｄｔｓの方が早い周期（ｄｔｒ＞ｄｔｓ）で演算を行うようにする。この時、シミュレーションの実行周期（ｄｔ）を指令値演算周期とサーボ演算周期の公約数（ｄｔｒ＝Ａ＊ｄｔ，ｄｔｓ＝Ｂ＊ｄｔ，Ａ，Ｂは整数）として実行し、シミュレーション時間がサーボ演算周期と一致したときサーボ制御模擬部５１の演算を実行し、シミュレーション時間が指令値演算周期と一致したときに指令値演算模擬部１４の演算を実行する。なお、指令値演算周期ｄｔｒは指令値演算部９が指令値の演算を行う周期、サーボ演算周期ｄｔｓはサーボ制御部６がモータ７１を制御する周期すなわちモータ７１へのモータ電流の出力値を更新する周期である。
【０１１６】
また、一般的な数値制御工作機械においては、図４などに示すサーボ制御部６に相当する処理部がサーボ制御を実行する周期と、指令値演算部９に相当する処理部が指令値演算を実行する周期とは、公約数を持つように設計されていることが多い。しかし、駆動機構モデル部１６および機械構造モデル部１７は、連続系システムを元にしているため、サーボ制御模擬部５１の演算周期の整数倍の周期で演算が行われないことがある。このような場合、すなわち、前工程モデルの演算周期でないタイミングで演算を実行しなければならない場合、駆動機構モデル部１６および機械構造モデル部１７は、前工程モデルからの過去の入力値、例えば、２サンプル前の入力値および１サンプル前の入力値から、外挿により現在の入力値を求め、求めた入力値を使用してシミュレーションを実行する。
【０１１７】
以上説明したように、実施の形態４にかかるシミュレーション装置１ｂは、演算周期の異なるモデルブロックを接続した場合においても、適切にシミュレーションを実行することが可能になる、という効果を奏する。
【０１１８】
実施の形態５．
図２１は、実施の形態５にかかる工作機械システム１０１ｄの構成例を示すブロック図である。工作機械システム１０１ｄは、図１および図２に示す実施の形態１にかかる数値制御工作機械９９に対し、実施の形態５にかかるシミュレーション装置１ｃを組み込んだものである。実施の形態１との違いは、シミュレーション装置１ｃには、指令経路の代わりに指令値演算部９の出力である指令データが入力される点である。指令データは、主軸へのプロセス指令と各駆動への軸指令とを含む配列である。実施の形態５にかかるシミュレーション装置１ｃが実行するシミュレーションはＨＩＬＳ（Hardware  In  Loop  Simulation）と呼ばれ、ハードウエアで演算した信号を入力とするシミュレーションである。
【０１１９】
図２２は、実施の形態５にかかるシミュレーション装置１ｃの構成の詳細を示すブロック図である。実施の形態１にかかるシミュレーション装置１ａ（図６参照）との違いは、シミュレーション実行部１３ｃにおいて、指令値演算部９からの指令データを入力とする点である。
【０１２０】
図２３は、実施の形態５にかかるシミュレーション実行部１３ｃの詳細を示すブロック図である。実施の形態１にかかるシミュレーション実行部１３ａ（図７参照）との違いは、指令値演算模擬部１４を有さず、入力された指令データに含まれる予測プロセス指令をプロセス制御模擬部１５に入力し、指令データに含まれる予測軸指令をサーボ制御模擬部５１に入力する点である。指令値演算部９は数値制御装置のソフトウエアの一部であるが、指令値演算では、オーバライドのような速度変更指令、外部からの減速指令、軸の移動範囲を超える軸移動指令がオーバトラベルによる割込み操作により、軸が停止したり減速したりする場合がある。指令値演算部９の出力をシミュレーション装置１ｃの入力とすることで、より正確に軸の運動を再現することが可能となる。
【０１２１】
以上説明したように、実施の形態５にかかる工作機械システム１０１ｄは、指令値演算部９が出力する指令データをシミュレーション装置１ｃに入力する構成とする。これにより、割込み操作に対しても正確なシミュレーションを提供できる、という効果を奏する。
【０１２２】
実施の形態６．
図２４は、実施の形態６にかかるシミュレーション実行部１３ｄの詳細を示すブロック図である。実施の形態２にかかるシミュレーション実行部１３ｂ（図１６参照）との差異は、プログラマブルロジックコントローラ（ＰＬＣ：Programmable  Logic  Controller）の動作を模擬するＰＬＣ模擬部２１を有する点である。シミュレーション実行部１３ｄは、図１および図２に示す数値制御工作機械９９についてのシミュレーションを行う構成であり、サーボ制御模擬部５１ｄおよび駆動機構モデル部１６ｄは有さない。
【０１２３】
ＰＬＣ模擬部２１は、ＰＬＣが実行する制御プログラムに記述された命令であるＰＬＣ命令と、機械構造モデル部１７の状態を表す機械モデル状態量と、駆動機構モデル部１６の状態を表す駆動機構モデル状態量と、サーボ制御模擬部５１の状態を表すサーボモデル状態量とを入力とし、ＰＬＣが制御対象の装置に対して出力する指令であるＰＬＣ指令を演算して指令値演算模擬部１４に出力する。ＰＬＣは、操作盤からの入力や、オーバトラベル、接触検知などの入力に対して、停止や減速の指令をＰＬＣ指令として生成する。ＰＬＣは、ＰＬＣ装置またはＰＬＣソフトウエアとして数値制御工作機械９９に実装される。
【０１２４】
指令値演算模擬部１４は、指令経路およびＰＬＣ指令に基づいて、サーボ制御模擬部５１に対する予測軸指令を演算する。
【０１２５】
以上説明したように、実施の形態６にかかるシミュレーション実行部１３ｄを備えるシミュレーション装置は、ＰＬＣの挙動を考慮したシミュレーションを提供し、ＰＬＣ指令によって生じるより正確な挙動をシミュレーション可能となる、という効果を奏する。
【０１２６】
実施の形態７．
図２５は、実施の形態７にかかる工作機械システム１０１ｅの構成例を示すブロック図である。工作機械システム１０１ｅは、実施の形態２にかかるシミュレーション装置１ｂ（図１５および図１６参照）と、構造シミュレーション装置２２とを備える。
【０１２７】
構造シミュレーション装置２２は、有限要素法とも呼ばれるＦＥＭなどにより構造計算を行う。工作機械の設計評価では、ＦＥＭを用いて固有振動を評価することが多い。ＦＥＭでは、ＣＡＤによって作成した３次元の機械モデルをメッシュに分割し、精密な機械振動特性を計算することが可能となる。一方で、要素数が多いため、加工シミュレーションのような高速のシミュレーションには不向きであることが多い。
【０１２８】
工作機械システム１０１ｅでは、構造シミュレーション装置２２がＦＥＭで計算した振動特性をモデル同定用データとして、シミュレーション装置１ｂに入力する。シミュレーション装置１ｂにおいては、モデルテンプレートに合わせて、ＦＥＭで計算された振動特性を用いて同定を行うことでモデルを近似し、モデルサイズを小さくする。これを縮退と呼ぶ。シミュレーション装置１ｂにおいては、例えば、モデル構成選択部１１が、モデルテンプレートデータベース部１０から選択したモデルテンプレートを、数値制御工作機械９９または１００の振動特性を算出し、モデルテンプレートの縮退を行う。シミュレーション装置１ｂは、モデル縮退を行うことで、高速にシミュレーションを行うことが可能となる。また、シミュレーション装置１ｂは、構造計算の設計パラメータを最適化する。
【０１２９】
実施の形態７にかかる工作機械システム１０１ｅは、工作機械の開発時において、試作前の設計段階で数値制御工作機械の性能をあらかじめ評価することができ、設計の効率化を実現できる、という効果を奏する。
【０１３０】
実施の形態８．
図２６は、実施の形態８にかかる工作機械システム１０１ｆの構成例を示す模式図である。工作機械システム１０１ｆは、シミュレーション装置１ｆと、複数の数値制御工作機械９９−１〜９９−３とを備える。シミュレーション装置１ｆはコンピュータ２３内に実装され、ネットワークハブ２４を介して数値制御工作機械９９−１〜９９−３のそれぞれと接続される。なお、シミュレーション装置１ｆに接続される数値制御工作機械の数は図示したものに限定されない。
【０１３１】
実施の形態８にかかる工作機械システム１０１ｆでは、図示を省略した工作物７８に対し、複数の数値制御工作機械９９−１〜９９−３のそれぞれが異なる加工を順番に実施することで、最終形状が実現される。この時、シミュレーション装置１ｆは、数値制御工作機械９９−１〜９９−３のそれぞれについて、モデルテンプレートの選択とモデルパラメータの同定とを行う。シミュレーション装置１ｆは、加工のシミュレーションを行う際には、数値制御工作機械９９−１〜９９−３のシミュレーションを切り替えて実施することで工作物７８の最終形状を予測し、それぞれの数値制御工作機械による加工の影響を計算する。
【０１３２】
以上説明したように、実施の形態８にかかる工作機械システム１０１ｆによれば、複数の数値制御工作機械を使用して最終形状である１つの加工形状を実現する構成のシミュレーションが可能となる。
【０１３３】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１３４】
１ａ，１ｂ，１ｃ，１ｆ  シミュレーション装置、２  回転角検出器、３  指令経路生成部、４  機械装置情報収集部、５  プロセス制御部、６ａ，６ｂ，６ｃ，６ｄ  サーボ制御部、７  機械情報保持部、８  作業結果測定部、９  指令値演算部、１０  モデルテンプレートデータベース部、１１  モデル構成選択部、１２  モデルパラメータ設定部、１３ａ，１３ｂ，１３ｃ，１３ｄ  シミュレーション実行部、１４  指令値演算模擬部、１５  プロセス制御模擬部、１６ａ，１６ｂ，１６ｃ，１６ｄ  駆動機構モデル部、１７  機械構造モデル部、１８  プロセスモデル部、１９  最適化演算実行部、２０  幾何形状計算部、２１  ＰＬＣ模擬部、２２  構造シミュレーション装置、２３  コンピュータ、２４  ネットワークハブ、５１ａ，５１ｂ，５１ｃ，５１ｄ  サーボ制御模擬部、６１ａ，６１ｂ，６１ｃ  加減算器、６２  位置制御器、６３  速度制御器、６４  電流制御器、６５  速度演算器、７０  トルク推定器、７１  モータ、７２  案内機構、７３  送りねじ、７４  カップリング、７５ａ，７５ｂ  支持軸受、７６  工具、７７  ワークテーブル、７８  工作物、７９  減速機、８０  加速度センサ、８１  ナット、８２  レーザヘッド、８３  主軸、８４  ノズル、８５  ラック、８６  ピニオン、９０  コラム、９１  ベッド、９２  ラム、９３Ｘ  Ｘ軸駆動部、９３Ｙ  Ｙ軸駆動部、９３Ｚ  Ｚ軸駆動部、９４  主軸制御部、９５Ｘ  サーボ制御装置、９６，９６ｂ  機械装置部、９７Ｘ  駆動機構、９８  機械構造、９９，９９−１，９９−２，９９−３，１００  数値制御工作機械、１０１ａ，１０１ｂ，１０１ｃ，１０１ｄ，１０１ｅ，１０１ｆ  工作機械システム、１１１  ガントリ構造、１１２  サドル。
【要約】
シミュレーション装置（１ａ）は、機械装置が複数のアクチュエータを駆動して実行する作業を構成する要素の入力と出力との関係が計算式で記述されたモデルテンプレートを複数記憶するモデルテンプレートデータベース部（１０）と、機械装置の構成および作業を特徴づける構成情報に基づいて１つ又は複数のモデルテンプレートを選択するモデル構成選択部（１１）と、モデル構成選択部（１１）が選択したモデルテンプレートに対し、モデルテンプレートの変数であるモデルパラメータを設定するモデルパラメータ設定部（１２）と、モデルパラメータ設定部（１２）がモデルパラメータを設定した後のモデルテンプレートと、作業を実行する際に作業で使用する工具が通過すべき経路である指令経路とに基づいて作業のシミュレーションを実行し、作業の予測結果を算出するシミュレーション実行部（１３ａ）と、を備える。【図１】
0006961128.tif 000002
【図２】
0006961128.tif 000003
【図３】
0006961128.tif 000004
【図４】
0006961128.tif 000005
【図５】
0006961128.tif 000006
【図６】
0006961128.tif 000007
【図７】
0006961128.tif 000008
【図８】
0006961128.tif 000009
【図９】
0006961128.tif 000010
【図１０】
0006961128.tif 000011
【図１１】
0006961128.tif 000012
【図１２】
0006961128.tif 000013
【図１３】
0006961128.tif 000014
【図１４】
0006961128.tif 000015
【図１５】
0006961128.tif 000016
【図１６】
0006961128.tif 000017
【図１７】
0006961128.tif 000018
【図１８】
0006961128.tif 000019
【図１９】
0006961128.tif 000020
【図２０】
0006961128.tif 000021
【図２１】
0006961128.tif 000022
【図２２】
0006961128.tif 000023
【図２３】
0006961128.tif 000024
【図２４】
0006961128.tif 000025
【図２５】
0006961128.tif 000026
【図２６】
0006961128.tif 000027