(57)【要約】【課題】工作機械又は産業機械等の機械の経年劣化を、機械学習を行うことなく推定する。【解決手段】モータ３００の駆動対象となる機械４００の駆動部の動作特性を決める制御パラメータを機械学習して、制御パラメータを、モータを制御するモータ制御装置２００に設定する機械学習部５５０と、モータ制御装置を駆動するヘルスチェック動作の指示を出力するヘルスチェック動作指示部と、ヘルスチェック動作の指示に基づいて駆動した、モータ制御装置又は機械から動作特性を示す情報を取得して、情報を用いた評価関数に基づいて評価値を算出し、評価値をヘルスチェック動作の実行時の時刻情報又はモータの動作情報を対応付けて記憶部に記憶する動作評価部５２０と、ヘルスチェック動作をさせたときに、動作評価部により算出された評価値と、記憶部５３０に記憶された評価値と、に基づいて動作特性の劣化を推定する劣化推定部５４０と、を備える。【選択図】図１
2020042585.tif 000002
【特許請求の範囲】
【請求項１】
モータの駆動対象となる機械の駆動部の動作特性を決める制御パラメータを機械学習して、前記制御パラメータを、前記モータを制御するモータ制御装置に設定する機械学習部と、
前記駆動部の動作特性を取得するために前記モータ制御装置を駆動するヘルスチェック動作の指示を出力するヘルスチェック動作指示部と、
前記ヘルスチェック動作の指示に基づいて駆動した、前記モータ制御装置又は前記機械から前記駆動部の動作特性を示す情報を取得して、該情報を用いた評価関数に基づいて評価値を算出し、前記評価値を前記ヘルスチェック動作の実行時の時刻情報又は前記モータの動作情報を対応付けて記憶部に記憶する動作評価部と、
前記ヘルスチェック動作をさせたときに、前記動作評価部により算出された評価値と、前記記憶部に記憶された前記評価値と、に基づいて前記機械の駆動部の動作特性の劣化を推定する劣化推定部と、
を備えた、制御装置。
【請求項２】
前記劣化推定部は、前記機械の駆動部の動作特性の劣化の推定結果に基づいて、前記機械学習部に対して前記制御パラメータの機械学習を指示する、請求項１に記載の制御装置。
【請求項３】
前記劣化推定部は、前記機械の駆動部の動作特性の劣化の推定結果に基づいて、前記機械の駆動部の動作特性の劣化を知らせる報知部に報知を指示する、請求項１又は２に記載の制御装置。
【請求項４】
前記ヘルスチェック動作指示部は、所定の信号の入力時に又は所定のスケジュールでヘルスチェック動作の指示を出力する、請求項１から３のいずれか１項に記載の制御装置。
【請求項５】
前記ヘルスチェック動作指示部は、前記ヘルスチェック動作の指示を、前記モータ制御装置に制御指令を出力する数値制御装置に送る、請求項１から４のいずれか１項に記載の制御装置。
【請求項６】
請求項５に記載の制御装置と、モータを制御するモータ制御装置と、該制御装置から出力されるヘルスチェック動作の指示に基づいて、前記モータ制御装置に制御指令を出力する数値制御装置と、を備えたＣＮＣ装置。
【請求項７】
記憶部と、モータの駆動対象となる機械の駆動部の動作特性を決める制御パラメータを機械学習して、前記制御パラメータを、前記モータを制御するモータ制御装置に設定する機械学習部を備える制御装置により、
前記駆動部の動作特性を取得するために前記モータ制御装置を駆動するヘルスチェック動作の指示を出力するヘルスチェック動作指示ステップと、
前記ヘルスチェック動作の指示に基づいて駆動した、前記モータ制御装置又は前記機械から前記駆動部の動作特性を示す情報を取得して、該情報を用いた評価関数に基づいて評価値を算出し、前記評価値を前記ヘルスチェック動作の実行時の時刻情報又は前記モータの動作情報を対応付けて前記記憶部に記憶する動作評価ステップと、
前記ヘルスチェック動作をさせたときに、前記動作評価ステップにおいて算出された評価値と、前記記憶部において記憶された前記評価値と、に基づいて前記機械の駆動部の動作特性の劣化を推定する劣化推定ステップと、
を備える、制御方法。
【請求項８】
前記劣化推定ステップは、さらに、
前記劣化推定ステップにおいて推定された前記機械の駆動部の動作特性の劣化の推定結果に基づいて、前記機械学習部に対して前記制御パラメータの機械学習を指示する機械学習指示ステップを、備える請求項７に記載の制御方法。
【請求項９】
前記劣化推定ステップは、さらに、
前記劣化推定ステップにおいて、前記機械の駆動部の動作特性の劣化の推定結果に基づいて、前記機械の駆動部の動作特性の劣化を知らせる報知ステップ、を備える請求項７に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの駆動対象となる機械の駆動部の動作特性の劣化を推定するために、モータを制御するモータ制御装置を駆動するヘルスチェック動作を行う制御装置、この制御装置を用いたＣＮＣ（Computerized Numerical Control）装置及び制御装置の制御方法に関する。
【背景技術】
【０００２】
工作機械又は産業機械等の機械の故障又は異常を検出する装置は、例えば特許文献１から特許文献３に記載されている。
【０００３】
特許文献１は、工作機械の主軸または主軸を駆動するモータが故障に至る前に、その故障の兆候を検出することができる機械学習装置を記載している。具体的には、機械学習装置が、工作機械の主軸または主軸を駆動するモータの故障予知を学習する機械学習装置であって、モータを制御するモータ制御装置の出力データ、モータの状態を検出する検出器の出力データ、および、主軸またはモータの状態を測定する測定器の出力データの少なくとも１つを含む状態変数を観測する状態観測部と、主軸またはモータの故障の有無または故障の度合いを判定した判定データを取得する判定データ取得部と、状態変数および判定データの組合せに基づいて作成されるデータセットに従って、主軸またはモータの故障予知を学習する学習部と、を備えている。
【０００４】
特許文献２は、状況に応じて正確な故障予知を可能にする故障予知システムを記載している。具体的には、故障予知システムは、産業機械の故障に関連付けられる条件を学習する機械学習装置を備えている。機械学習装置は、センサの出力データ、制御ソフトウェアの内部データ、又はそれらに基づいて得られる計算データなどから構成される状態変数を産業機械の動作中又は静止中に観測する状態観測部と、産業機械の故障の有無又は故障の度合いを表す判定データを取得する判定データ取得部と、状態変数及び判定データの組合せに基づいて作成される訓練データセットに従って、産業機械の故障に関連付けられる条件を教師あり学習によって学習する学習部と、を備えている。
【０００５】
特許文献３は、診断精度の向上が可能な工作機械の工具の異常検知装置を記載している。具体的には、異常検知装置は、工具に関係する複数の測定値を、測定データ（振動情報、切削力情報、音情報、主軸負荷、モータ電流、電力値等）として取得する取得部と、正常な状態の加工時に取得した測定データを、１クラスの機械学習で学習して、正常モデルを作成する正常モデル部と、正常モデル作成後の加工時に測定データを取得しながら、正常モデルに基づいて、当該測定データが正常か異常かを診断する異常診断部と、異常診断部で異常と診断された測定データを、異常診断部とは異なる方法で再診断する再診断部とを有している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−１８８０３０号公報
【特許文献２】特開２０１７−１２０６４９号公報
【特許文献３】特開２０１８−２４０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１から特許文献３は、機械学習により工作機械又は産業機械の故障又は異常を検出する装置を記載しているが、機械学習は、情報処理量が多いために一定の学習時間を要し、機械学習のために機械の稼働効率が低下する。
【０００８】
本発明は、工作機械又は産業機械等の機械の駆動部の動作特性の劣化を、機械学習を行うことなく推定できる制御装置、この制御装置を用いたＣＮＣ装置及び制御装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
（１）  本発明に係る制御装置は、モータ（例えば、後述のサーボモータ３００）の駆動対象となる機械（例えば、後述の機械４００）の駆動部の動作特性を決める制御パラメータを機械学習して、前記制御パラメータを、前記モータを制御するモータ制御装置（例えば、後述のサーボ制御装置２００）に設定する機械学習部（例えば、後述の、機械学習部５５０）と、
前記駆動部の動作特性を取得するために前記モータ制御装置を駆動するヘルスチェック動作の指示を出力するヘルスチェック動作指示部（例えば、後述の、ヘルスチェック動作指示部５１０）と、
前記ヘルスチェック動作の指示に基づいて駆動した、前記モータ制御装置又は前記機械から前記駆動部の動作特性を示す情報を取得して、該情報を用いた評価関数に基づいて評価値を算出し、前記評価値を前記ヘルスチェック動作の実行時の時刻情報又は前記モータの動作情報を対応付けて記憶部（例えば、後述の、記憶部５３０）に記憶する動作評価部（例えば、後述の、動作評価部５２０）と、
前記ヘルスチェック動作をさせたときに、前記動作評価部により算出された評価値と、前記記憶部に記憶された前記評価値と、に基づいて前記機械の駆動部の動作特性の劣化を推定する劣化推定部（例えば、後述の、劣化推定部５４０）と、
を備えた、制御装置（例えば、後述の制御装置５００）である。
【００１０】
（２）  上記（１）の制御装置において、前記劣化推定部は、前記機械の駆動部の動作特性の劣化の推定結果に基づいて、前記機械学習部に対して前記制御パラメータの機械学習を指示してもよい。
【００１１】
（３）  上記（１）又は（２）の制御装置において、前記劣化推定部は、前記機械の駆動部の動作特性の劣化の推定結果に基づいて、前記機械の駆動部の動作特性の劣化を知らせる報知部（例えば、後述の報知部５６０）に報知を指示してもよい。
【００１２】
（４）  上記（１）から（３）のいずれかの制御装置において、前記ヘルスチェック動作指示部は、所定の信号の入力時に又は所定のスケジュールでヘルスチェック動作の指示を出力してもよい。
【００１３】
（５）  上記（１）から（４）のいずれかの制御装置において、前記ヘルスチェック動作指示部は、前記ヘルスチェック動作の指示を、前記モータ制御装置に制御指令を出力する数値制御装置に送ってもよい。
【００１４】
（６）  本発明に係るＣＮＣ装置は、上記（５）の制御装置と、モータを制御するモータ制御装置と、該制御装置から出力されるヘルスチェック動作の指示に基づいて、前記モータ制御装置に制御指令を出力する数値制御装置と、を備えたＣＮＣ装置である。
【００１５】
（７）  本発明に係る制御方法は、記憶部（例えば、後述の、記憶部５３０）と、モータ（例えば、後述のサーボモータ３００）の駆動対象となる機械（例えば、後述の機械４００）の駆動部の動作特性を決める制御パラメータを機械学習して、前記制御パラメータを、前記モータを制御するモータ制御装置に設定する機械学習部（例えば、後述の、機械学習部５５０）を備える制御装置により、
前記駆動部の動作特性を取得するために前記モータ制御装置を駆動するヘルスチェック動作の指示を出力するヘルスチェック動作指示ステップと、
前記ヘルスチェック動作の指示に基づいて駆動した、前記モータ制御装置又は前記機械から前記駆動部の動作特性を示す情報を取得して、該情報を用いた評価関数に基づいて評価値を算出し、前記評価値を前記ヘルスチェック動作の実行時の時刻情報又は前記モータの動作情報を対応付けて前記記憶部に記憶する動作評価ステップと、
前記ヘルスチェック動作をさせたときに、前記動作評価ステップにおいて算出された評価値と、前記記憶部において記憶された前記評価値と、に基づいて前記機械の駆動部の動作特性の劣化を推定する劣化推定ステップと、
を備える、制御方法である。
【００１６】
（８）  上記（７）の制御装置の制御方法において、前記劣化推定ステップは、さらに、
前記劣化推定ステップにおいて推定された前記機械の駆動部の動作特性の劣化の推定結果に基づいて、前記機械学習部に対して前記制御パラメータの機械学習を指示する機械学習指示ステップを、備えてもよい。
【００１７】
（９）  上記（７）の制御装置の制御方法において、前記劣化推定ステップは、さらに、
前記劣化推定ステップにおいて、前記機械の駆動部の動作特性の劣化の推定結果に基づいて、前記機械の駆動部の動作特性の劣化を知らせる報知ステップ、を備えてもよい。
【発明の効果】
【００１８】
本発明によれば、工作機械又は産業機械等の機械の駆動部の動作特性の劣化を、機械学習を行うことなく推定することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態の、機械の制御装置を含む機械制御システムを示すブロック図である。
【図２】機械制御システムにおける数値制御装置、サーボ制御装置及び機械の構成を示すブロック図である。
【図３】角がＲ付きの四角形の移動軌跡を説明するための図である。
【図４】サーボ制御装置のフィルタの伝達関数の係数ω、τ及びσの機械学習による調整と、その後の機械の経年劣化が生じた場合との、角がＲ付きの四角形の移動軌跡を示す図である。
【図５】数式３の評価関数で用いられる位置偏差ｅの例を示す特性図である。
【図６】数式４の評価関数で用いられる位置偏差ｅの例を示す特性図である。
【図７】出荷前の機械学習時の評価値が経年劣化により上昇する様子と、再学習時の評価値が経年劣化により再度上昇する様子を示す特性図である。
【図８】本実施形態における制御装置の動作を示すフローチャートである。
【図９】円形の移動軌跡を説明するための図である。
【図１０】四角形の移動軌跡を説明するための図である。
【図１１】八角形の移動軌跡を説明するための図である。
【図１２】星形の移動軌跡を説明するための図である。
【図１３】本発明の第１の実施形態の機械学習部を示すブロック図である。
【図１４】本発明の第２の実施形態の機械制御システムにおける数値制御装置、サーボ制御装置及び機械の構成を示すブロック図である。
【図１５】機械制御システムの他の構成例を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について図面を用いて詳細に説明する。
（第１の実施形態）
【００２１】
図１は本発明の第１の実施形態の機械の制御装置を含む機械制御システムを示すブロック図である。図２は機械制御システムにおける数値制御装置、サーボ制御装置及び機械の構成を示すブロック図である。
図１に示すように、機械制御システム１０は、数値制御装置１００、サーボ制御装置２００、サーボモータ３００、機械４００及び制御装置５００を備えている。サーボ制御装置２００はモータ制御装置となる。数値制御装置１００、サーボ制御装置２００及びサーボモータ３００はＣＮＣ装置２０を構成する。なお、制御装置５００は、ＣＮＣ装置２０に含まれてもよい。機械４００はサーボモータ３００の駆動対象となる。
【００２２】
まず、制御装置５００の説明に先だって、数値制御装置１００、サーボ制御装置２００及び機械４００について説明する。
数値制御装置１００は、数値制御処理部１０１及び記憶部１０２を備えている。記憶部１０２はヘルスチェック用の加工プログラム、機械学習用の加工プログラム、及び実際の加工処理を行う場合の加工プログラムを記憶している。数値制御処理部１０１は、制御装置５００のヘルスチェック動作指示部５１０からヘルスチェック動作の指示を受けて記憶部１０２からヘルスチェック用の加工プログラムを読み出して、制御指令となる位置指令を生成してサーボ制御装置２００に出力する。
また、数値制御処理部１０１は、機械学習時又は実際の加工処理時には、制御装置５００の機械学習部５５０から機械学習実行指示を受けて、又は操作者から加工実行指示を受けて記憶部１０２から機械学習用又は実際の加工処理用の加工プログラムを読み出して、位置指令を生成してサーボ制御装置２００に出力する。なお、数値制御処理部１０１は機械学習部５５０の代わりに、劣化推定部５４０から機械学習実行指示を受けてもよい。
【００２３】
サーボ制御装置２００は、図２に示すように、フィルタ２０１、減算器２０２、位置制御部２０３、加算器２０４、微分器２０５、位置フィードフォワード処理部２０６、減算器２０７、速度制御部２０８、及び積分器２０９を備えている。減算器２０２、位置制御部２０３、加算器２０４、減算器２０７、速度制御部２０８、サーボモータ３００、ロータリーエンコーダ３１０、及び積分器２０９は位置フィードバックループを構成する。また、減算器２０７、速度制御部２０８、サーボモータ３００、及びロータリーエンコーダ３１０は速度フィードバックループを構成する。
フィルタ２０１は、機械４００の振動を抑制する制振フィルタで、例えば数式１（以下に数１として示す）で示されるバンドストップフィルタが用いられる。
【００２４】
数式１において、係数ｓはラプラス変換における指数関数の引数である時間の係数、係数ωは遮断中心角周波数、係数τは比帯域、係数ｇはｇ＝στである。遮断中心周波数をｆｃ、遮断帯域幅をｆｗとすると、係数ωはω＝２πｆｃ、係数τはτ＝ｆｗ／ｆｃで表される。係数σはダンピング係数（０＜σ≦１）である。フィルタ２０１の伝達関数の係数ω、τ及びσは、モータ制御装置となるサーボ制御装置によって機械４００の駆動部の動作特性を決める制御パラメータとなる。
【数１】
2020042585.tif 000003
フィルタ２０１には、数値制御処理部１０１から位置指令が入力される。ここでは、フィルタ２０１は位置フィードバックループ及び速度フィードループの外に設けられているが、位置フィードバックループ又は速度フィードループの中に設けてもよい。例えば後述する速度制御部２０８の出力側又は加算器２０４の出力側にフィルタ２０１を接続してもよい。フィルタ２０１の構成は特に限定されないが、２次以上のＩＩＲフィルタであることが望ましい。
【００２５】
減算器２０２は、フィルタ２０１から出力される整形後の位置指令と、位置フィードバックされた検出位置との差を求め、その差を位置偏差として位置制御部２０３と、後述する機械学習部５５０及び動作評価部５２０とに出力する。動作評価部５２０は位置偏差を用いてヘルスチェック動作を行い、機械学習部５５０は位置偏差を用いて機械学習を行う。
【００２６】
位置制御部２０３は、位置偏差にポジションゲインＫｐを乗じた値を、速度指令値として加算器２０４に出力する。
微分器２０５は、位置指令値を微分して定数αを掛けた値を、位置フィードフォワード処理部２０６に出力する。位置フィードフォワード処理部２０６は、微分器２０５からの出力に対して、数式２（以下に数２として示す）で示す伝達関数Ｇ（ｓ）で示された位置フィードフォワード処理を行い、その処理結果を位置フィードフォワード項として、加算器２０４に出力する。数式２の係数ａｉ、ｂｊ(Ｘ≧ｉ，ｊ≧０、Ｘは自然数)は伝達関数Ｇ（ｓ）の各係数である。
【数２】
2020042585.tif 000004
【００２７】
加算器２０４は、速度指令値と位置フィードフォワード処理部２０６の出力値（位置フィードフォワード項）とを加算して、フィードフォワード制御された速度指令値として減算器２０７に出力する。減算器２０７は加算器２０４の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部２０８に出力する。
【００２８】
速度制御部２０８は、速度偏差に積分ゲインＫ１ｖを乗じて積分した値と、速度偏差に比例ゲインＫ２ｖを乗じた値とを加算して、トルク指令としてサーボモータ３００に出力する。
【００２９】
サーボモータ３００の回転角度位置は、ロータリーエンコーダ３１０によって検出され、速度検出値は速度フィードバック（速度ＦＢ）として減算器２０７に入力される。速度検出値は積分器２０９で積分されて位置検出値となり、位置検出値は位置フィードバック（位置ＦＢ）として減算器２０２に入力される。
以上のように、サーボ制御装置２００は構成される。
【００３０】
サーボモータ３００は、サーボ制御装置２００によって回転制御され、機械４００を駆動する。
機械４００は、工作機械、産業機械等である。サーボモータ３００は工作機械、産業機械等の機械４００に含まれてもよい。図２では機械４００は工作機械として示され、工作機械の一部を示している。図２に示すように、機械４００は、サーボモータ３００の回転軸に連結されたボールねじ４０１、ボールねじ４０１に螺合されたナット４０２、ナット４０２に接続されたテーブル４０３を備えている。ボールねじ４０１、ナット４０２、及びテーブル４０３は駆動部を構成する。サーボモータ３００の回転駆動によって、ボールねじ４０１に螺着されたナット４０２がボールねじ４１０の軸方向に移動する。
【００３１】
機械４００において、被加工物（ワーク）を搭載するテーブル４０３がＸ軸方向及びＹ軸方向に移動される場合には、Ｘ軸方向及びＹ軸方向に対してそれぞれ図２に示すサーボ制御装置２００及びサーボモータ３００が設けられる。テーブルを３軸以上の方向に移動させる場合には、それぞれの軸方向に対してサーボ制御装置２００及びサーボモータ３００が設けられる。
【００３２】
次に、制御装置５００について説明する。
まず、制御装置５００によるヘルスチェック動作の目的について説明する。ここで、ヘルスチェック動作とは、ヘルスチェック用の加工プログラム用いてサーボ制御装置を駆動し、機械の駆動部の動作特性を示す情報を取得して、この情報を用いた評価関数に基づいて評価値を求め、評価値に基づいて機械の経年劣化を推定する動作である。なお、動作特性の劣化の一例として、機械の使用による経年劣化を取り上げたが、これに限定されず、例えば、温度、湿度、振動等の周囲環境の変化によって生ずる動作特性の劣化も含まれる。
数値制御装置１００の記憶部１０２に記憶されるヘルスチェック用の加工プログラムは、サーボ制御装置２００によるサーボモータ３００の制御によって、テーブル４０３上の特定点の移動軌跡ＭＬが、図３に示すような、角がＲ付きの四角形（a square with quarter arc）となるような加工プログラムである。図３に示す移動軌跡ＭＬにおいて、位置Ｐ１では、テーブルをＹ軸方向に移動するサーボモータは、位置Ｐ１を過ぎると減速し、位置Ｐ２で回転が停止する。一方、位置Ｐ１で、テーブルをＸ軸方向に移動するサーボモータは回転を開始し、位置Ｐ２で回転速度は一定になる。ヘルスチェック用の加工プログラムはテーブル４０３にワークを搭載せず、ワークの加工を行わずに動作させる。
【００３３】
図４は、サーボ制御装置２００のフィルタ２０１の伝達関数の係数ω、τ及びσの機械学習による調整と、その後の機械４００の経年劣化が生じた場合との、角がＲ付きの四角形の移動軌跡を示す図である。図４に示すように、サーボ制御装置２００のフィルタ２０１の伝達関数の係数ω、τ及びσが調整されていない状態では、ヘルスチェック用の加工プログラムを用いてサーボ制御装置２００を動作させると、テーブル４０３上の特定点の移動軌跡ＭＬ１に四角形のＲ付角部分で象限突起と呼ばれる突起が生じる。機械４００の出荷前には、移動軌跡に象限突起が生じないように、ヘルスチェック用の加工プログラムを含む機械学習用のプログラムを用いてサーボ制御装置２００を動作させつつ象限突起のない移動軌跡ＭＬ２となるように、制御装置５００の後述する機械学習部５５０は、サーボ制御装置２００のフィルタ２０１の伝達関数の係数ω、τ及びσの最適値を機械学習し、伝達関数の係数ω、τ及びσを最適値に調整する。しかし、機械４００の使用による経年劣化により、出荷時に設定された、フィルタ２０１の伝達関数の係数ω、τ及びσのままでは機械に振動等が生じ、移動軌跡ＭＬ３のように象限突起が生じるようになる。
【００３４】
そこで、制御装置５００は、ヘルスチェック動作によって機械の経年劣化を推定する。そして、経年劣化の推定結果に基づいて、再度機械学習（再学習という）によってフィルタ２０１の伝達関数の係数ω、τ及びσを調整する。
制御装置５００は、経年劣化の推定結果に基づいて、機械学習によるフィルタ２０１の係数の調整に代わって、又は係数の調整とともに操作者（オペレータ）又は管理者に報知を行う等の処理を行ってもよい。
なお、機械学習は、情報処理量が多いために一定の学習時間を要するために、再学習は頻繁に行うと再学習のために機械の稼働効率が低下する。また、報知を頻繁に行うと、報知を監視する操作者のオペレータ又は管理者の負荷が増大する。
そこで、制御装置５００は、必要なときに再学習又は報知を行うように、ヘルスチェック動作を行う。
【００３５】
次に、制御装置５００の構成及び動作について説明する。
制御装置５００は、図１に示すように、ヘルスチェック動作指示部５１０、動作評価部５２０、記憶部５３０、劣化推定部５４０、機械学習部５５０、及び報知部５６０を備えている。
【００３６】
ヘルスチェック動作指示部５１０は、機械４００の起動時に又は操作者からの実行指示によって、ヘルスチェック動作の指示を数値制御装置１００の数値制御処理部１０１に送る。起動時には起動信号がヘルスチェック動作指示部５１０に入力され、又は操作者からの実行指示時には実行指示信号がヘルスチェック動作指示部５１０に入力される。起動信号及び実行指示信号は、所定の信号に対応する。ヘルスチェック動作指示部５１０は操作者が設定した所定のスケジュールでヘルスチェック動作の指示を数値制御処理部１０１に送ってもよい。
【００３７】
数値制御処理部１０１は、ヘルスチェック動作の指示を受けると、記憶部１０２からヘルスチェック用の加工プログラムを読み出して、位置指令を生成してサーボ制御装置２００に出力する。サーボ制御装置２００は位置指令に基づいてサーボモータ３００を回転制御する。
【００３８】
動作評価部５２０は、サーボ制御装置２００の減算器２０２の出力である位置偏差eを取得し、評価関数を用いて評価値ＥＡを求める。
評価関数は、例えば、以下に示す数式３又は数式４の評価関数を用いることができる。数式３における係数Ｃａ、係数Ｃｂ、及び数式４における係数Ｃｃ、係数Ｃｄはそれぞれ重み係数である。数式４における係数ｔ０は、サーボモータ３００の速度指令値が変化してから位置偏差ｅが所定の範囲に収まるまでの時間である。なお、評価関数は数式３又は数式４に示した評価関数に限定されない。例えば、数式３及び数式４の位置偏差ｅの絶対値の時間積分は、位置偏差ｅの絶対値の２乗の時間積分、位置偏差ｅの絶対値の集合の最大値を用いてもよい。
【数３】
2020042585.tif 000005
【数４】
2020042585.tif 000006
【００３９】
図５は、数式３の評価関数で用いられる位置偏差ｅの例を示す特性図である。図６は、数式４の評価関数で用いられる位置偏差ｅの例を示す特性図である。
数式３の評価関数は、図５の実線で示す位置偏差のよりも破線で示す位置偏差の方が振動が少なく｜ｄｅ／ｄｔ｜の時間積分の値が小さくなり、評価値が小さくなる。よって、より良好な結果として評価される。数式４の評価関数は、図６の実線で示す位置偏差のよりも破線で示す位置偏差の方が、瞬間的な偏差は大きいが定常偏差が小さくなり、ｔ０の時間積分の値が小さくなり、評価値が小さくなる。よって、より良好な結果として評価される。
数式３又は数式４の評価関数に基づいて求めた評価値ＥＡは、劣化推定部５４０及び記憶部５３０に出力される。
【００４０】
動作評価部５２０は記憶部５３０に、出荷前の機械学習後に、ヘルスチェック用の加工プログラムを用いてサーボ制御装置２００を動作させることで得られた位置偏差ｅに基づく評価値ＥＢとヘルスチェック動作の実行時の時刻情報又はサーボモータ３００の動作情報とを対応付けて記憶する。また、動作評価部５２０は記憶部５３０に、出荷後に、ヘルスチェック用の加工プログラムを用いてサーボ制御装置２００を動作させる毎に得られる位置偏差ｅに基づく評価値ＥＡとヘルスチェック動作の実行時の時刻情報又はサーボモータ３００の動作情報とを対応付けて記憶する。また、動作評価部５２０は、同様に、再学習後に、ヘルスチェック用の加工プログラムを用いてサーボ制御装置２００を動作させる毎に得られる位置偏差ｅに基づく評価値ＥＡとヘルスチェック動作の実行時の時刻情報又はサーボモータ３００の動作情報とを対応付けて記憶する。
【００４１】
劣化推定部５４０は、動作評価部５２０が算出した評価値ＥＡとヘルスチェック動作の実行時の時刻情報、及び、記憶部５３０から、記憶された出荷前の機械学習後のヘルスチェック動作の実行時の時刻情報と評価値ＥＢ、出荷後のヘルスチェック動作の実行時の時刻情報と評価値ＥＡの集合を取得して、これらの評価値ＥＢとＥＡ、及び時刻情報から例えば直線近似によって、図７に示すような、劣化推定特性（劣化推定特性直線）を作成する。また、劣化推定部５４０は、同様に、再学習後の劣化推定特性（劣化推定特性直線）を作成する。図７は出荷前の機械学習後の評価値が経年劣化により上昇する様子と、再学習時の評価値が経年劣化により再度上昇する様子を示す特性図である。
劣化推定特性を求める場合、ｎ次曲線を想定し、その係数を最小二乗法を用いて決めて、劣化推定特性曲線を求めてもよい。なお、ヘルスチェック動作の実行時の時刻情報に代えてサーボモータ３００の移動量等の動作情報を用いてもよい。
【００４２】
劣化推定部５４０は機械４００の駆動部の動作特性の劣化を劣化推定特性直線又は劣化推定特性曲線によって推定し、その推定結果に基づいて、機械学習部５５０に対して制御パラメータの再学習を指示する。具体的には、劣化推定部５４０は、図７に示すように、例えば、劣化推定特性直線に基づいて学習時期を推定し、機械学習部５５０に機械学習指示を送る。具体的には、出荷後のヘルスチェック動作により得られた評価値の劣化推定特性直線に基づいて、設定された劣化判定レベルになる前に（例えば劣化判定レベルになる数週間前に）、機械学習部５５０に機械学習指示（再学習の指示）を送る。機械学習部５５０は、機械４００が加工を行っていないタイミングで再学習を行う。劣化判定レベルはワークの加工状況、評価値の推移等に適宜設定することができる。
劣化推定部５４０は再学習後に、同様に、劣化推定特性直線を求め、劣化推定特性直線に基づいて次回の学習時期を推定し、機械学習部５５０に機械学習指示を送る。
劣化推定部５４０は、機械学習指示を送る代わりに、又は機械学習指示を送るととともに、報知部５６０に報知指示を送ってもよい。
なお、劣化推定部５４０は機械学習部５５０に機械学習指示を送るとともに、数値制御装置１００の数値制御処理部１０１に機械学習実行指示を送ってもよい。この場合、機械学習部５５０は機械学習実行指示を数値制御処理部１０１に送らなくてよい。
【００４３】
報知部５６０は、報知指示を受けると、点検の提案、若しくは劣化の警告を液晶表示装置に表示する、又は通信部を介して携帯端末に送信する等により、操作者又は管理者に報知を行う。なお、機械学習部５５０が再学習を行い、操作者又は管理者に報知を行わない場合には、報知部５６０はなくともよい。報知を受けた操作者（オペレータ）は、機械が加工を行っていないタイミングで、再学習を機械学習部５５０に機械学習指示をすることもできる。
【００４４】
機械学習部５５０は機械学習指示を受けると、数値制御装置１００の数値制御処理部１０１に機械学習実行指示を送る。数値制御処理部１０１は、機械学習実行指示を受けると、記憶部１０２から機械学習用の加工プログラムを読み出して、位置指令を生成してサーボ制御装置２００に出力する。サーボ制御装置２００は位置指令に基づいてサーボモータ３００を回転制御する。
機械学習部５５０は、サーボ制御装置２００の減算器２０２の出力である位置偏差eを取得し、サーボ制御装置２００のフィルタ２０１の伝達関数の係数ω、τ及びσの最適値を機械学習し、伝達関数の係数ω、τ及びσを最適値に調整する。この機械学習の詳細については後述する。
【００４５】
図８は、本実施形態における制御装置５００のヘルスチェック動作を示すフローチャートである。
まず、動作評価部５２０は、ステップＳ１１において、ヘルスチェック動作の指示により駆動するサーボ制御装置２００の減算器２０２の出力である位置偏差eを取得し、評価関数を用いて評価値ＥＡを求める。
次に、劣化推定部５４０は、ステップＳ１２において、出荷前の機械学習後からの評価値を用いて劣化推定特性（劣化推定特性直線）を作成する。劣化推定部５４０は、ステップＳ１３において、劣化推定特性直線に基づいて学習時期を推定し、機械学習部５５０に機械学習指示を送る。
機械学習部５５０はステップＳ１４において、機械学習指示に基づいて機械学習を行う。
ステップＳ１５において、操作者の指示等により、制御装置５００は、経年劣化の推定を続行するかどうかを判断し、続行する場合は（ステップＳ１５のＹＥＳの場合）、ステップＳ１１に戻り、動作評価部５２０は、次のヘルスチェック動作の指示により位置偏差ｅが得られるまで待つ。
経年劣化の推定を続行しない場合は（ステップＳ１５のＮＯの場合）、制御装置５００のヘルスチェック動作を終了する。
【００４６】
次に、制御装置５００の機械学習部５５０について説明する。
＜機械学習部５５０＞
【００４７】
機械学習部５５０は、機械学習用の加工プログラムを実行し、減算器２０２から得られた位置偏差を用いて、位置偏差が小さくなるように、フィルタ２０１の伝達関数の係数ω、τ及びσを機械学習（以下、学習という）する。機械学習部５５０は機械学習装置となる。機械学習部５５０による学習は出荷前に行われるが、出荷後に再学習を行う。
ここで、学習時の加工プログラムにより指定される移動軌跡は、例えば、図３に示した角がＲ付きの四角形の他に、図９〜図１２に示す、円形、四角形、八角形、及び星形等がある。学習は図３及び図９〜図１２に示す学習時の加工プログラムを適宜組み合わせて行う。
このような、学習時の加工プログラムにより指定される移動軌跡により、テーブルをＸ軸方向又は／及びＹ軸方向に移動するサーボモータサーボモータの回転方向が反転したり、回転状態から停止したりする場合に生ずる振動を評価し、位置偏差に対する影響を調べることができる。
【００４８】
学習時に図３及び図９〜図１２に示す学習時の加工プログラムを実行することで、数値制御情報処理部１０１１は順次、例えば、Ｒ付きの四角形、円、四角、八角形、及び星形の移動軌跡となるように位置指令値を出力する。
【００４９】
機械学習部５５０は、フィルタ２０１の伝達関数の係数ω、τ及びσの値、並びに学習時の加工プログラムを実行することで取得されるサーボ制御装置２００の位置偏差情報を含む、指令及びフィードバック等のサーボ状態を状態Ｓとして、当該状態ｓに係る係数ω、τ及びσの調整を行動ａとする、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）を行う。当業者にとって周知のように、Ｑ学習では、或る状態Ｓのとき、取り得る行動Ａのなかから、価値Ｑ（Ｓ，Ａ）の最も高い行動Ａを最適な行動として選択することを目的とする。
【００５０】
具体的には、エージェント（機械学習装置）は、或る状態ｓの下で様々な行動Ａを選択し、その時の行動ａに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Ｑ（Ｓ，Ａ）を学習していく。
【００５１】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（Ｓ，Ａ）＝Ｅ［Σ（γｔ）ｒｔ］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒｔは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。このような価値Ｑ（Ｓ，Ａ）の更新式は、例えば、次の数式５（以下に数５として示す）により表すことができる。
【００５２】
【数５】
2020042585.tif 000007
【００５３】
上記の数式２において、Ｓｔは、時刻ｔにおける環境の状態を表し、Ａｔは、時刻ｔにおける行動を表す。行動Ａｔにより、状態はＳｔ＋１に変化する。ｒｔ＋１は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態Ｓｔ＋１の下で、その時に分かっている最もＱ値の高い行動Ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
上述した数式２は、試行Ａｔの結果、返ってきた報酬ｒｔ＋１を元に、状態Ｓｔにおける行動Ａｔの価値Ｑ（Ｓｔ，Ａｔ）を更新する方法を表している。
【００５４】
機械学習部５５０は、フィルタ２０１の伝達関数の係数ω、τ及びσに基づいて、学習時の加工プログラムを実行することで得られるサーボ制御装置２００の位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報Ｓを観測して、行動Ａを決定する。状態情報はフィードバック情報に対応する。機械学習部５０５は、行動Ａをするたびに報酬ｒが返ってくる。
ここで、報酬ｒを次のように設定する。
行動情報Ａにより状態情報Ｓが状態情報Ｓ´に修正された場合、状態情報Ｓ´に係る修正後の係数ω、τ及びσに基づいて動作したサーボ制御装置２００の位置偏差ｅの評価関数の値が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前の係数ω、τ及びσに基づいて動作したサーボ制御装置２００の位置偏差ｅの評価関数の値よりも大きくなった場合に、報酬の値を負の値とする。評価関数は例えば、動作評価部５２０で用いた数式３又は数式４の評価関数を用いことができる。しかし、機械学習で用いる評価関数は動作評価部５２０で用いられる評価関数とは別な評価関数を用いてもよい。
【００５５】
他方、行動情報Ａにより修正された状態情報Ｓ´に係る修正後の係数ω、τ及びσに基づいて動作したサーボ制御装置２００の位置偏差ｅの評価関数の値が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前の係数ω、τ及びσに基づいて動作したサーボ制御装置２００の位置偏差ｅの評価関数の値よりも小さくなった場合に、報酬の値を正の値とする。
Ｑ学習では、機械学習部５０５は、例えば、将来にわたっての報酬ｒの合計が最大になる最適な行動Ａを試行錯誤的に探索する。そうすることで、機械学習部５０５は、係数ω、τ及びσに基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置２００の位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Ｓに対して、最適な行動Ａ（すなわち、最適なフィルタ２０１の伝達関数の係数ω、τ及びσの値）を選択することが可能となる。
【００５６】
図１３は機械学習部を示すブロック図である。
上述した強化学習を行うために、図１３に示すように、機械学習部５０５は、状態情報取得部５５１、学習部５５２、行動情報出力部５５３、価値関数記憶部５５４、及び最適化行動情報出力部５５５を備える。
【００５７】
状態情報取得部５５１は、フィルタ２０１の伝達関数の係数ω、τ及びσに基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置２００の位置偏差情報を含む指令、フィードバック等のサーボ状態を含む、フィードバック情報となる状態情報Ｓをサーボ制御装置２００から取得する。この状態情報Ｓは、Ｑ学習における、環境状態Ｓに相当する。
状態情報取得部５５１は、取得した状態情報Ｓを学習部５５２に対して出力する。
なお、最初にＱ学習を開始する時点での係数ω、τ及びσは、予めユーザが生成する。
【００５８】
学習部５５２は、或る環境状態Ｓの下で、ある行動Ａを選択する場合の価値Ｑ（Ｓ，Ａ）を学習する部分である。具体的には、学習部５５２は、報酬出力部５５２１、価値関数更新部５５２２及び行動情報生成部５５２３を備える。
【００５９】
報酬出力部５５２１は、或る状態Ｓの下で、行動Ａを選択した場合の報酬を算出する部分である。ここで、状態Ｓにおける状態変数である位置偏差をｅ（Ｓ）、行動情報Ａ（フィルタ２０１の伝達関数の係数ω、τ及びσの修正）により状態Ｓから変化した状態情報Ｓ´に係る状態変数である位置偏差をｅ（Ｓ´）で示す。
【００６０】
評価関数ｆは、例えば、動作評価部５２０で用いた評価関数と同じ数式３又は数式４の評価関数を用いる。
【００６１】
このとき、行動情報Ａにより修正された状態情報Ｓ´に係る修正後のフィルタ２０１に基づいてサーボ制御装置２００が動作したときの評価関数ｆの値ｆ（ｅ（Ｓ´））が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前のフィルタ２０１に基づいてサーボ制御装置２００が動作したときの評価関数ｆの値ｆ（ｅ（Ｓ））よりも大きくなった場合に、報酬出力部５５２１は、報酬の値を負の値とする。
【００６２】
一方で、行動情報Ａにより修正された状態情報Ｓ´に係る修正後のフィルタ２０１に基づいてサーボ制御装置２００が動作したときの評価関数ｆの値ｆ（ｅ（Ｓ´））が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前のフィルタ２０１に基づいてサーボ制御装置２００が動作したときの評価関数ｆの値ｆ（ｅ（Ｓ））よりも小さくなった場合に、報酬出力部５５２１は、報酬の値を正の値とする。
なお、行動情報Ａにより修正された状態情報Ｓ´に係る修正後のフィルタ２０１に基づいてサーボ制御装置２００が動作したときの評価関数ｆの値ｆ（ｅ（Ｓ´））が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前のフィルタ２０１に基づいてサーボ制御装置２００が動作したときの評価関数ｆの値ｆ（ｅ（Ｓ））と等しい場合は、報酬出力部５５２１は、報酬の値をゼロとする。
【００６３】
また、行動Ａを実行後の状態Ｓ´の評価関数ｆの値ｆ（ｅ（Ｓ´）））が、前の状態Ｓにおける評価関数ｆの値ｆ（ｅ（Ｓ））より大きくなった場合の負の値としては、比率に応じて負の値を大きくするようにしてもよい。つまり状態Ｓ´評価関数ｆの値ｆ（ｅ（Ｓ´））の値が大きくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Ａを実行後の状態Ｓ´の評価関数ｆの値ｆ（ｅ（Ｓ´））が、前の状態Ｓにおける評価関数ｆの値ｆ（ｅ（Ｓ））より小さくなった場合の正の値としては、比率に応じて正の値を大きくするようにしてもよい。つまりｆ（ｅ（Ｓ´））の値が小さくなった度合いに応じて正の値が大きくなるようにするとよい。
【００６４】
価値関数更新部５５２２は、状態Ｓと、行動Ａと、行動Ａを状態Ｓに適用した場合の状態Ｓ´と、上記のようにして算出された報酬の値ｒと、に基づいてＱ学習を行うことにより、価値関数記憶部５５４が記憶する価値関数Ｑを更新する。
なお、価値関数Ｑの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習は、或る行動Ａを現在の状態Ｓに適用することにより、状態Ｓが新たな状態Ｓ´に遷移する都度、即座に価値関数Ｑの更新を行う学習方法である。また、バッチ学習は、或る行動Ａを現在の状態Ｓに適用することにより、状態Ｓが新たな状態Ｓ´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Ｑの更新を行う学習方法である。更に、ミニバッチ学習は、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Ｑの更新を行う学習方法である。
【００６５】
行動情報生成部５５２３は、現在の状態Ｓに対して、Ｑ学習の過程における行動Ａを選択する。行動情報生成部５５２３は、Ｑ学習の過程において、係数ω、τ及びσを修正する動作（Ｑ学習における行動Ａに相当）を行わせるために、行動情報Ａを生成して、生成した行動情報Ａを行動情報出力部５５３に対して出力する。より具体的には、行動情報生成部５５２３は、例えば、状態Ｓに含まれる係数ω、τ及びσに対してインクレメンタルに加算又は減算させる行動情報Ａを行動情報出力部５５３に対して出力する。この行動情報Ａは係数ω、τ及びσの修正情報となる。
【００６６】
行動情報生成部５５２３は、係数ω、τ及びσの増加又は減少を適用して、状態Ｓ´に遷移して、プラスの報酬（正の値の報酬）が返った場合、次の行動Ａ´としては、係数ω、τ及びσに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、位置偏差の値がより小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００６７】
また、逆に、マイナスの報酬（負の値の報酬）が返った場合、行動情報生成部５５２３は、次の行動Ａ´としては、例えば、係数ω、τ及びσに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、位置偏差が前回の値よりも小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００６８】
行動情報出力部５５３は、学習部５５２から出力される行動情報Ａとなる係数の修正情報をフィルタ２０１に対して送信する部分である。フィルタ２０１は上述したように、この行動情報に基づいて、現在の状態Ｓ、すなわち現在設定されている伝達関数の係数ω、τ及びσを微修正することで、次の状態Ｓ´（すなわち修正された係数ω、τ及びσ）に遷移する。
【００６９】
価値関数記憶部５５４は、価値関数Ｑを記憶する記憶装置である。価値関数Ｑは、例えば状態Ｓ、行動Ａ毎にテーブル（以下、行動価値テーブルと呼ぶ）として格納してもよい。価値関数記憶部５５４に記憶された価値関数Ｑは、価値関数更新部５５２２により更新される。
【００７０】
最適化行動情報出力部５５５は、価値関数更新部５５２２がＱ学習を行うことにより更新した価値関数Ｑに基づいて、価値Ｑ（Ｓ，Ａ）が最大となる動作をフィルタ２０１に行わせるための行動情報Ａ（以下、「最適化行動情報」と呼ぶ）を生成する。
この最適化行動情報には、行動情報出力部５５３がＱ学習の過程において出力する行動情報と同様に、フィルタ２０１の伝達関数の係数ω、τ及びσを修正する情報が含まれる。
【００７１】
サーボ制御装置２００では、係数の修正情報に基づいて係数ω、τ及びσが修正され、位置偏差の値を低減するように動作することができる。
以上のように、機械学習部５５０を利用することで、サーボ制御装置２００のフィルタ２０１の伝達関数の係数ω、τ及びσの調整を簡易化することができる。
【００７２】
以上、数値制御装置１００、サーボ制御装置２００及び制御装置５００に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、数値制御装置１００、サーボ制御装置２００及び制御装置５００は、ＣＰＵ（Central Processing Unit）等の演算処理装置を備える。また、サーボ制御装置２００は、アプリケーションソフトウェアやＯＳ（Operating System）等の各種の制御用プログラムを格納したＨＤＤ（Hard Disk Drive）等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのＲＡＭ（Random Access Memory）といった主記憶装置も備える。
【００７３】
そして、数値制御装置１００、サーボ制御装置２００及び制御装置５００において、演算処理装置が補助記憶装置からアプリケーションソフトウェアやＯＳを読み込み、読み込んだアプリケーションソフトウェアやＯＳを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやＯＳに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【００７４】
機械学習部５５０については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにＧＰＵ（Graphics Processing Units）を搭載し、ＧＰＧＰＵ（General-Purpose computing on Graphics Processing Units）と呼ばれる技術により、ＧＰＵを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなＧＰＵを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【００７５】
（第２の実施形態）
図１４は本発明の第２の実施形態の機械制御システムにおける数値制御装置、サーボ制御装置及び機械の構成を示すブロック図である。
本実施形態の機械制御システムは、サーボ制御装置の構成を除いて、図１及び図２に示した機械制御システム１０と同じ構成である。
【００７６】
本実施形態におけるサーボ制御装置２００Ａは、図２に示したサーボ制御装置２００と異なり、フィルタ２０１がなく、２回微分器２１０、速度フィードフォワード処理部２１１、及び加算器２１３を備えている。
【００７７】
２回微分器２１０は、位置指令値を微分して定数βを掛けた値を速度フィードフォワード処理部２１１に出力する。速度フィードフォワード処理部２１１は、２回微分器２１０からの出力に対して、数式６（以下に数６として示す）で示す伝達関数Ｈ（ｓ）で示された速度フィードフォワード処理を行い、その処理結果を速度フィードフォワード項として、加算器２１３に出力する。数式６の係数ｃｉ、ｄｊ(Ｘ≧ｉ，ｊ≧０、Ｘは自然数)は伝達関数Ｈ（ｓ）の各係数である。
【数６】
2020042585.tif 000008
【００７８】
機械学習部５５０は、学習用の加工プログラムを実行し、減算器２０２から得られた位置偏差を用いて、位置偏差が小さくなるように、速度フィードフォワード処理部２１１の伝達関数Ｈ（ｓ）の各係数ｃｉ、ｄｊ(ｉ，ｊ≧０)の値を学習する。具体的には、第１の実施形態で詳述したように、機械学習部５５０は、サーボ制御装置２００における、速度フィードフォワード処理部２１１の伝達関数の各係数ｃｉ、ｄｊ(ｉ，ｊ≧０)の値、並びに学習時の加工プログラムを実行することで取得されるサーボ制御装置２００の位置偏差情報、及び位置指令を含む、指令及びフィードバック等のサーボ状態を状態Ｓとして、当該状態Ｓに係る、速度フィードフォワード処理部２１１の伝達関数の各係数ｃｉ、ｄｊの値の調整を行動Ａとして選択する価値Ｑを学習する。
【００７９】
ここで、学習時の加工プログラムにより指定される移動軌跡の形状は、例えば、図１１に示した八角形である。図１１に示す移動軌跡の位置Ｐ３と位置Ｐ４により、線形制御において回転速度が変更されたときの振動を評価し、位置偏差に対する影響を調べることで、伝達関数Ｈ（ｓ）に係る係数の学習を行う。
【００８０】
ここでは、機械学習部５５０は、速度フィードフォワード処理部２１１の伝達関数Ｈ（ｓ）の係数ｃｉ、ｄｊ(ｉ，ｊ≧０)の値を学習しているが、代わりに位置フィードフォワード処理部２０６の伝達関数Ｇ（ｓ）の係数ａｉ、ｂｊ(ｉ，ｊ≧０)の値を学習してもよく、伝達関数Ｈ（ｓ）の係数と、伝達関数Ｇ（ｓ）の係数との両方を学習してもよい。速度フィードフォワード処理部２１１の伝達関数Ｈ（ｓ）の係数ｃｉ、ｄｊ(ｉ，ｊ≧０)及び位置フィードフォワード処理部２０６の伝達関数Ｇ（ｓ）の係数ａｉ、ｂｊ(ｉ，ｊ≧０)は、モータ制御装置となるサーボ制御装置によって機械４００の駆動部の動作特性を決める制御パラメータとなる。
【００８１】
伝達関数Ｈ（ｓ）の係数と、伝達関数Ｇ（ｓ）の係数との両方を学習する場合、機械学習部５５０は、速度フィードフォワード処理部２１１の伝達関数の係数の学習と、位置フィードフォワード処理部２０６の伝達関数の係数の学習とは別に行い、位置フィードフォワード処理部２０６より内側（インナーループ）にある速度フィードフォワード処理部２１１の伝達関数の係数の学習を位置フィードフォワード処理部２０６の伝達関数の係数の学習よりも先に行うことが望ましい。具体的には、位置フィードフォワード処理部２０６の伝達関数の係数を固定し、速度フィードフォワード処理部２１１の伝達関数の係数の最適な値を学習する。その後に、機械学習部５０５は、速度フィードフォワード処理部２１１の伝達関数の係数を学習で得られた最適な値に固定して、位置フィードフォワード処理部２０６の伝達関数の係数を学習する。
【００８２】
そうすることで、学習により最適化された速度フィードフォワード項の条件下で、位置フィードフォワード処理部２０６の伝達関数の係数の最適化に係る学習を行うことができ、位置偏差の変動を抑制することができる。
【００８３】
本実施形態における、ヘルスチェック用の加工プログラムは、図１１に示した移動軌跡が八角形となる加工プログラムを用いることができるが、線形制御において回転速度が変更されたときの振動を評価できる形状であれば他の形状を用いてもよい。本実施形態における制御装置５００の動作は第１の実施形態で説明した動作と同じである。
【００８４】
上述した、数値制御装置、サーボ制御装置及び制御装置に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のサーボ制御装置及び制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法及び制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【００８５】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory）)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。
【００８６】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
上述した実施形態では、モータとしてサーボモータ、モータ制御装置としてサーボ制御装置を用いて例について説明したが、これに限定されず、例えば、モータとしてステッピングモータを用い、モータ制御装置としてサーボ制御を行わない制御装置を用いてもよい。
また、上述した実施形態では、制御装置が、機械の駆動部の動作特性を示す情報としての位置偏差をサーボ制御装置から取得したが、かかる情報が機械の駆動部の加速度情報である場合は、機械に取り付けられた加速度センサから取得してもよい。つまり、機械の駆動部の動作特性を示す情報はサーボ制御装置又は機械から取得することができる。
また、上述した実施形態では、数値制御装置からモータ制御装置に出力する制御指令は位置指令として説明したが、位置指令に限定されず、例えば速度指令であってもよい。
【００８７】
また、機械制御システムの構成は図１の構成以外にも以下の構成がある。
＜制御装置がＣＮＣ装置の外部に設けられた変形例＞
図１５は機械制御システムの他の構成例を示すブロック図である。図１５に示す機械制御システム１０Ａが、図１に示した機械制御システム１０と異なる点は、ｎ（ｎは２以上の自然数）個の制御装置５００−１〜５００−ｎがｎ個のＣＮＣ装置２０Ａ−１〜２０Ａ−ｎとネットワーク６００を介して接続されていることである。ＣＮＣ装置２０Ａ−１〜２０Ａ−ｎは機械４００−１〜４００−ｎと接続されている。ＣＮＣ装置２０Ａ−１〜２０Ａ−ｎはそれぞれ図１に示したＣＮＣ装置２０と同じ構成を有している。制御装置５００−１〜５００−ｎはそれぞれ図１に示した制御装置５００と同じ構成を有している。また、機械４００−１〜４００−ｎはそれぞれ図２に示した機械４００と構成と同じ構成を有している。
【００８８】
ここで、ＣＮＣ装置２０Ａ−１と制御装置５００−１とは１対１の組とされて、通信可能に接続されている。ＣＮＣ装置２０Ａ−２〜２０Ａ−ｎと、制御装置５００−２〜５００−ｎについてもＣＮＣ装置２０Ａ−１と制御装置５００−１と同様に接続される。図１５では、ＣＮＣ装置２０Ａ−１〜２０Ａ−ｎと制御装置５００−１〜５００−ｎとのｎ個の組は、ネットワーク６００を介して接続されているが、ＣＮＣ装置２０Ａ−１〜２０Ａ−ｎと制御装置５００−１〜５００−ｎとのｎ個の組は、それぞれの組のＣＮＣ装置と制御装置とが接続インタフェースを介して直接接続されてもよい。これらＣＮＣ装置２０Ａ−１〜２０Ａ−ｎと制御装置５００−１〜５００−ｎとのｎ個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
【００８９】
なお、ネットワーク６００は、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク６００における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【００９０】
＜システム構成の自由度＞
上述した変形例では、ＣＮＣ装置２０Ａ−１〜２０Ａ−ｎと制御装置５００−１〜５００−ｎとはそれぞれ１対１の組とされて通信可能に接続されているが、例えば１台の制御装置が、複数のＣＮＣ装置とネットワーク６００を介して通信可能に接続され、各ＣＮＣ装置のヘルスチェック動作及び機械学習を実施するようにしてもよい。
その際、１台の制御装置の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、１台の制御装置の各機能を実現してもよい。
【００９１】
また、ｎ台の同じ型名、同一仕様、又は同一シリーズのＣＮＣ装置２０Ａ−１〜２０Ａ-nとそれぞれ対応するｎ個の制御装置５００−１〜５００−ｎがあった場合に、各制御装置５００−１〜５００−ｎのヘルスチェック動作又は／及び機械学習の結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
【符号の説明】
【００９２】
１０、１０Ａ  機械制御システム
２０、２０−１〜２０−ｎ  ＣＮＣ装置
１００  数値制御装置
２００  サーボ制御装置
３００  サーボモータ
４００、４００−１〜４００−ｎ  機械
５００、５００−１〜５００−ｎ  制御装置
５１０  ヘルスチェック動作指示部
５２０  動作評価部
５３０  記憶部
５４０  劣化推定部
５５０  機械学習部
５６０  報知部
【図１】
2020042585.tif 000009
【図２】
2020042585.tif 000010
【図３】
2020042585.tif 000011
【図４】
2020042585.tif 000012
【図５】
2020042585.tif 000013
【図６】
2020042585.tif 000014
【図７】
2020042585.tif 000015
【図８】
2020042585.tif 000016
【図９】
2020042585.tif 000017
【図１０】
2020042585.tif 000018
【図１１】
2020042585.tif 000019
【図１２】
2020042585.tif 000020
【図１３】
2020042585.tif 000021
【図１４】
2020042585.tif 000022
【図１５】
2020042585.tif 000023