IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

特許7436632機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法
<>
  • 特許-機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法 図1
  • 特許-機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法 図2
  • 特許-機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法 図3
  • 特許-機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法 図4
  • 特許-機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法 図5
  • 特許-機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法 図6
  • 特許-機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法 図7
  • 特許-機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法 図8
  • 特許-機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法 図9
  • 特許-機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法
(51)【国際特許分類】
   G05B 19/4155 20060101AFI20240214BHJP
   B23Q 15/00 20060101ALI20240214BHJP
   G05B 19/4093 20060101ALI20240214BHJP
【FI】
G05B19/4155 V
B23Q15/00 301C
G05B19/4093 L
【請求項の数】 10
(21)【出願番号】P 2022508254
(86)(22)【出願日】2021-03-10
(86)【国際出願番号】 JP2021009488
(87)【国際公開番号】W WO2021187268
(87)【国際公開日】2021-09-23
【審査請求日】2022-11-21
(31)【優先権主張番号】P 2020046070
(32)【優先日】2020-03-17
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】鈴木 佳之
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2019-021235(JP,A)
【文献】特開平07-164199(JP,A)
【文献】特開2019-200174(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/4155
B23Q 15/00
G05B 19/4093
(57)【特許請求の範囲】
【請求項1】
加工プログラムに基づいて工作機械を動作させる数値制御装置に対して機械学習を行う機械学習装置であって、
少なくとも1回分の切り込み量及び切削速度が設定された前記加工プログラムを前記数値制御装置が実行することで、前記工作機械に切削加工を行わせることにより、前記1回分の切り込み量及び前記切削速度を含む状態情報を、取得する状態情報取得部と、
前記状態情報に含まれる前記1回分の切り込み量及び前記切削速度の調整情報を含む行動情報を出力する行動情報出力部と、
少なくとも前記切削加工における工具にかかる圧力の強さと、前記工具にかかる前記圧力の波形の形状と、加工に要した時間とについての情報である判定情報を取得し、取得した前記判定情報に基づいて、所定の条件に応じた強化学習における報酬値を出力する報酬計算部と、
前記報酬値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する価値関数更新部と、
を備え
前記所定の条件は、加工時間を優先する条件、及び前記工具の寿命を優先する条件のいずれかであり、
前記報酬計算部は、前記加工時間を優先する条件では第1報酬値を出力し、前記工具の寿命を優先する条件では第2報酬値を出力し、
前記価値関数更新部は、前記加工時間を優先する条件では前記第1報酬値と、前記状態情報と、前記行動情報とに基づいて第1価値関数を更新し、前記工具の寿命を優先する条件では前記第2報酬値と、前記状態情報と、前記行動情報とに基づいて第2価値関数を更新する機械学習装置。
【請求項2】
前記機械学習は、前記加工プログラムが実行される毎、又は前記加工プログラムに含まれる複数の固定サイクルそれぞれが実行される毎に行われる、請求項に記載の機械学習装置。
【請求項3】
前記第1報酬値に基づいて更新された前記第1価値関数の値が最大となる第1行動情報、及び前記第2報酬値に基づいて更新された前記第2価値関数の値が最大となる第2行動情報を出力する最適化行動情報出力部をさらに備える、請求項又は請求項に記載の機械学習装置。
【請求項4】
前記報酬計算部は、前記判定情報に含まれる前記加工に要した時間が前回の加工に要した時間より減少した場合に前記報酬値を正の値とし、前記加工に要した時間が前回の加工に要した時間より増加した場合に前記報酬値を負の値とする、請求項1に記載の機械学習装置。
【請求項5】
前記報酬計算部は、前記判定情報に含まれる前記工具にかかる圧力の波形の形状が少なくとも前記工具が破壊される予兆を示す波形の形状及び前記工具の寿命の急激な減少を示す波形の形状と相似しない場合に前記報酬値を正の値とし、前記工具にかかる圧力の波形の形状が少なくとも前記工具が破壊される予兆を示す波形の形状又は前記工具の寿命の急激な減少を示す波形の形状と相似する場合に前記報酬値を負の値とする、請求項1に記載の機械学習装置。
【請求項6】
前記機械学習の最大試行回数を設けて、前記機械学習を行う、請求項1から請求項のいずれか1項に記載の機械学習装置。
【請求項7】
請求項1から請求項のいずれか1項に記載の機械学習装置から取得した行動のうち予め設定された閾値に基づいていずれかの行動を選択して、選択した前記行動を前記加工プログラムに設定する設定装置。
【請求項8】
請求項1から請求項のいずれか1項に記載の機械学習装置と、
請求項に記載の設定装置と、
前記設定装置によって設定された前記加工プログラムを実行する数値制御装置と、
を備える数値制御システム。
【請求項9】
請求項1から請求項のいずれか1項に記載の機械学習装置と、請求項に記載の設定装置と、を含み、前記設定装置によって設定された前記加工プログラムを実行する数値制御装置。
【請求項10】
加工プログラムに基づいて工作機械を動作させる数値制御装置に対して機械学習を行う機械学習装置の機械学習方法であって、
少なくとも1回分の切り込み量及び切削速度が設定された前記加工プログラムを前記数値制御装置が実行することで、前記工作機械に切削加工を行わせることにより、前記1回分の切り込み量及び前記切削速度を含む状態情報を、取得し、
前記状態情報に含まれる前記1回分の切り込み量及び前記切削速度の調整情報を含む行動情報を出力し、
少なくとも前記切削加工における工具に係る圧力の強さと、前記工具に係る前記圧力の波形の形状と、加工に要した時間とについての情報である判定情報を取得し、取得した前記判定情報に基づいて、所定の条件に応じた強化学習における報酬値を出力し、
前記報酬値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する、
機械学習方法であって、
前記所定の条件は、加工時間を優先する条件、及び前記工具の寿命を優先する条件のいずれかであり、
前記報酬値の出力においては、前記加工時間を優先する条件では第1報酬値を出力し、前記工具の寿命を優先する条件では第2報酬値を出力し、
前記価値関数の更新においては、前記加工時間を優先する条件では前記第1報酬値と、前記状態情報と、前記行動情報とに基づいて第1価値関数を更新し、前記工具の寿命を優先する条件では前記第2報酬値と、前記状態情報と、前記行動情報とに基づいて第2価値関数を更新する、機械学習方法
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法に関する。
【背景技術】
【0002】
もみつけ、タッピング、ボーリング、旋削サイクル等の固定サイクルにおける1回分の切り込み量及び切削速度は、ワークや工具の材質、形状を主要因とし、試験加工等を繰り返し行うことにより、オペレータが経験的に決定する。
この点、加工条件データ、切削条件データ、加工結果データ、工具データを含む状態変数に基づくクラスタ分析により作成されたクラストを学習済みモデルとして用い、新たに入力された加工条件、切削条件、及び加工結果に基づいて適切な工具を判定し、判定した工具のクラスタにおける指定された好結果を保てる範囲で切削速度の最大値を判定する技術が知られている。例えば、特許文献1参照。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-188558号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、変種変量生産の現場では、(1)或る加工プログラムを別の機械に使いまわす、(2)或る加工プログラムの形状を少しだけ修正した別の加工プログラムを作成して加工する、(3)或る加工プログラムをワークの材質を変更して加工する等のような状況が頻繁に発生する。
このような状況下において、オペレータは1つ1つの加工プログラムを経験に基づいて最適化する時間的余裕がない。よって、加工プログラムや切削条件を十分に最適化せず、加工を行わざるを得ない場合がある。この場合、例えば、どのような変更を行っても安全に加工を行うため、切削速度を過度に落としていることがある。それによりサイクルタイムが落ち、生産効率が下がっているケースが考えられる。
【0005】
そこで、オペレータの手間を増やすことなく、加工プログラムを最適化することが望まれている。
【課題を解決するための手段】
【0006】
(1)本開示の機械学習装置の一態様は、加工プログラムに基づいて工作機械を動作させる数値制御装置に対して機械学習を行う機械学習装置であって、少なくとも1回分の切り込み量及び切削速度が設定された前記加工プログラムを前記数値制御装置が実行することで、前記工作機械に切削加工を行わせることにより、前記1回分の切り込み量及び前記切削速度を含む状態情報を、取得する状態情報取得部と、前記状態情報に含まれる前記1回分の切り込み量及び前記切削速度の調整情報を含む行動情報を出力する行動情報出力部と、少なくとも前記切削加工における工具にかかる圧力の強さと、前記工具にかかる前記圧力の波形の形状と、加工に要した時間とについての情報である判定情報を取得し、取得した前記判定情報に基づいて、所定の条件に応じた強化学習における報酬値を出力する報酬計算部221と、前記報酬値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する価値関数更新部と、を備える。
【0007】
(2)本開示の設定装置の一態様は、(1)の機械学習装置から取得した行動のうち予め設定された閾値に基づいていずれかの行動を選択して、選択した前記行動を前記加工プログラムに設定する。
【0008】
(3)本開示の数値制御システムの一態様は、(1)の機械学習装置と、(2)の設定装置と、前記設定装置によって設定された前記加工プログラムを実行する数値制御装置と、を備える。
【0009】
(3)本開示の数値制御装置の一態様は、(1)の機械学習装置と、(2)の設定装置と、を含み、前記設定装置によって設定された前記加工プログラムを実行する。
【0010】
(4)本開示の数値制御方法の一態様は、加工プログラムに基づいて工作機械を動作させる数値制御装置に対して機械学習を行う機械学習装置の機械学習方法であって、少なくとも1回分の切り込み量及び切削速度が設定された前記加工プログラムを前記数値制御装置が実行することで、前記工作機械に切削加工を行わせることにより、前記1回分の切り込み量及び前記切削速度を含む状態情報を、取得し、前記状態情報に含まれる前記1回分の切り込み量及び前記切削速度の調整情報を含む行動情報を出力し、少なくとも前記切削加工における工具に係る圧力の強さと、前記工具に係る前記圧力の波形の形状と、加工に要した時間とについての情報である判定情報を取得し、取得した前記判定情報に基づいて、所定の条件に応じた強化学習における報酬値を出力し、前記報酬値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する。
【発明の効果】
【0011】
一態様によれば、オペレータの手間を増やすことなく、加工プログラムを最適化することができる。
【図面の簡単な説明】
【0012】
図1】第1実施形態に係る数値制御システムの機能的構成例を示す機能ブロック図である。
図2】機械学習装置の機能的構成例を示す機能ブロック図である。
図3】第1実施形態におけるQ学習時の機械学習装置の動作を示すフローチャートである。
図4図3においてステップS16で示した報酬計算処理の詳細な処理内容を説明するフローチャートである。
図5】最適化行動情報出力部による最適化行動情報の生成時の動作を示すフローチャートである。
図6】第2実施形態に係る数値制御システムの機能的構成例を示す機能ブロック図である。
図7】機械学習装置の機能的構成例を示す機能ブロック図である。
図8】第2実施形態におけるQ学習時の機械学習装置の動作を示すフローチャートである。
図9】数値制御システムの構成の一例を示す図である。
図10】数値制御システムの構成の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本開示の第1実施形態について、図面を用いて説明する。ここでは、加工プログラムとして、もみつけやタッピング等の1つの固定サイクルを含み、加工プログラム毎、すなわち1ワーク加工毎に学習する場合を例示する。
こうすることで、当該固定サイクルで設定された、1回分の切り込み量及び切削速度を当該加工プログラムに対する行動として特定することができる。
<第1実施形態>
図1は、第1実施形態に係る数値制御システムの機能的構成例を示す機能ブロック図である。
図1に示すように、数値制御システム1は、工作機械10、及び機械学習装置20を有する。
【0014】
工作機械10、及び機械学習装置20は、図示しない接続インタフェースを介して互いに直接接続されてもよい。また、工作機械10、及び機械学習装置20は、LAN(Local Area Network)やインターネット等の図示しないネットワークを介して相互に接続されていてもよい。この場合、工作機械10、及び機械学習装置20は、かかる接続によって相互に通信を行うための図示しない通信部を備えている。なお、後述するように、数値制御装置101は、工作機械10に含まれるが、工作機械10と異なる装置でもよい。また、数値制御装置101は、機械学習装置20を含んでもよい。
【0015】
工作機械10は、当業者にとって公知の工作機械であり、数値制御装置101を含む。工作機械10は、数値制御装置101からの動作指令に基づいて動作する。
【0016】
数値制御装置101は、当業者にとって公知の数値制御装置であり、設定装置111を含む。数値制御装置101は、CAD/CAM装置等の外部装置(図示しない)から取得した加工プログラムに基づいて動作指令を生成し、生成した動作指令を工作機械10に送信する。これにより、数値制御装置101は、工作機械10の動作を制御する。そして、数値制御装置101は、工作機械10の動作を制御している間、工作機械10に含まれる図示しない主軸のスピンドルモータ、及び図示しない送り軸のサーボモータ等のモータにおける回転数、モータ電流値、及びトルクを、予め設定されたサンプリング時間等の所定の時間間隔で工作機械10から取得してもよい。
また、数値制御装置101は、工作機械10に含まれる図示しない温度センサ等のセンサにより測定されたモータ温度、機械温度、及び周囲温度等の温度を工作機械10から取得してもよい。また、数値制御装置101は、工作機械10に含まれる図示しない圧力センサ等のセンサにより測定された図示しない主軸に取付けられた工具にかかる軸方向及び回転方向の圧力を工作機械10から取得してもよい。また、数値制御装置101は、工作機械10に含まれる図示しないサイクルカウンタ等により測定された工作機械10が所定の切削加工を行った際の当該加工に要した時間を取得してもよい。
なお、本実施形態では、上述したように、加工プログラムが1つの固定サイクルしか含まないため、加工に要した時間はサイクルタイムと同等である。
【0017】
また、数値制御装置101は、例えば、工作機械10の主軸(図示しない)に取付けられた工具の材質、工具の形状、工具径、工具長、残り工具寿命、加工対象のワークの材質、工具カタログの切削条件等を、後述する機械学習装置20に出力してもよい。また、数値制御装置101は、工作機械10から取得した主軸回転数、モータ電流値、機械温度、周囲温度、工具にかかる圧力の強さ(軸方向、及び回転方向)、工具にかかる圧力の波形の形状(軸方向、及び回転方向)、送り軸にかかるトルクの強さ、送り軸にかかるトルクの波形の形状、主軸にかかるトルクの強さ、主軸にかかるトルクの波形の形状、及び加工に要した時間を、後述する機械学習装置20に出力してもよい。
【0018】
なお、数値制御装置101は、例えば、数値制御装置101に含まれるHDD(Hard Disk Drive)等の図示しない記憶部に、工作機械10の主軸(図示しない)に取付けられるすべての工具を管理する工具管理テーブル(図示しない)を記憶してもよい。そして、数値制御装置101は、加工プログラムに設定された工具番号等に基づいて、工具の材質、工具の形状、工具径、工具長、残り工具寿命を工具管理テーブル(図示しない)から取得するようにしてもよい。ここで、残り工具寿命は、例えば、カタログに記載の対応表から求めた耐用時間から得て工具の寿命と見なし、1ワーク毎の加工の使用時間から求められてもよい。そして、工具管理テーブル(図示しない)の残り工具寿命は、求められた値で更新されてもよい。
また、数値制御装置101は、例えば、数値制御装置101に含まれるキーボードやタッチパネル等の入力装置(図示しない)を介してオペレータの入力操作により、加工対象のワークの材質、工具カタログの切削条件等を取得するようにしてもよい。
また、工具にかかる圧力の波形の形状は、工具にかかる圧力の時系列データである。また、送り軸にかかるトルクの波形の形状は、送り軸にかかるトルクの時系列データである。また、主軸にかかるトルクの波形の形状は、主軸に係るトルクの時系列データである。
【0019】
設定装置111は、後述する機械学習装置20から取得する行動のうち予め設定された閾値に基づいていずれかの行動を選択して、選択した行動を加工プログラムに設定する。
具体的には、設定装置111は、例えば、工作機械10で使用中の工具の残り工具寿命と予め設定された閾値(例えば、10%)とを比較することにより、残り工具寿命が閾値より大きい場合に加工時間を優先する行動を選択し、残り工具寿命が閾値以下の場合に工具寿命を優先する行動を選択する。設定装置111は、選択した行動を加工プログラムに設定する。
なお、設定装置111は、CPU等の演算処理装置を備える数値制御装置101等のコンピュータで構成することができる。
また、設定装置111は、数値制御装置101と異なる装置でもよい。
【0020】
<機械学習装置20>
機械学習装置20は、数値制御装置101が加工プログラムを実行することで、工作機械10を動作させたときの、ワーク毎の1回分の切り込み量及び切削速度を強化学習する装置である。
【0021】
機械学習装置20に含まれる各機能ブロックの説明に先立って、まず強化学習として例示するQ学習の基本的な仕組みについて説明する。ただし、強化学習はQ学習に限定されない。エージェント(本実施形態における機械学習装置20に相当)は、環境(本実施形態における工作機械10及び数値制御装置101に相当)の状態を観測し、或る行動を選択し、選択した行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、与えられた報酬に基づいて、エージェントはより良い行動を選択できるよう、学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての得られる報酬の合計を最大にするように学習する。
【0022】
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、変種変量生産の現場において、オペレータの手間を増やすことなく、加工プログラムの固定サイクルを最適化するという、未来に影響をおよぼすような行動を獲得できることを表している。
【0023】
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態sの下で、行動aを選択する価値関数Q(s,a)を学習する方法であるQ学習(Q-learning)を用いる場合を例にとって説明をする。
Q学習では、或る状態sのとき、取り得る行動aのなかから、価値関数Q(s,a)の値が最も高い行動aを最適な行動として選択することを目的とする。
【0024】
しかしながら、Q学習を最初に開始する時点では、状態sと行動aとの組合せについて、価値関数Q(s,a)の正しい値は全く分かっていない。そこで、エージェントは、或る状態sの下で様々な行動aを選択し、その時の行動aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値関数Q(s,a)を学習していく。
【0025】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(s,a)=E[Σ(γ)r]となるようにすることを目指す。ここでE[]は期待値を表し、tは時刻、γは後述する割引率と呼ばれるパラメータ、rは時刻tにおける報酬、Σは時刻tによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしQ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値関数Q(s,a)の更新式は、例えば、次の数1式により表すことができる。
【0026】
【数1】
上記の数1式において、sは、時刻tにおける環境の状態を表し、aは、時刻tにおける行動を表す。行動aにより、状態はst+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態st+1の下で、その時に分かっている最もQ値の高い行動aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
【0027】
上述した数1式は、試行aの結果、返ってきた報酬rt+1を元に、状態sにおける行動aの価値関数Q(s,a)を更新する方法を表している。
この更新式は、状態sにおける行動aの価値関数Q(s,a)よりも、行動aによる次の状態st+1における最良の行動の価値max Q(st+1,a)の方が大きければ、Q(s,a)を大きくし、逆に小さければ、Q(s,a)を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬rt+1のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る1つ前の状態における行動の価値に伝播していく仕組みになっている。
【0028】
ここで、Q学習では、すべての状態行動ペア(s,a)についてのQ(s,a)のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのQ(s,a)の値を求めるには状態数が多すぎて、Q学習が収束するのに多くの時間を要してしまう場合がある。
【0029】
そこで、公知のDQN(Deep Q-Network)と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Qを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Qを適当なニューラルネットワークで近似することにより価値関数Q(s,a)の値を算出するようにしてもよい。DQNを利用することにより、Q学習が収束するのに要する時間を短くすることが可能となる。なお、DQNについては、例えば、以下の非特許文献に詳細な記載がある。
【0030】
<非特許文献>
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著[online]、[平成29年1月17日検索]、インターネット〈URL:http://files.davidqiu.com/research/nature14236.pdf〉
【0031】
以上説明をしたQ学習を機械学習装置20が行う。具体的には、機械学習装置20は、工作機械10において設定された工具及びワークに関する情報と、固定サイクルで設定された1回分の切り込み量及び切削速度と、当該加工プログラムを実行することで工作機械10から取得された測定値と、を状態sとして、当該状態sに係る当該固定サイクルで設定された1回分の切り込み量及び切削速度の設定、変更を状態sに対する行動aとして選択する価値Qを学習する。ここでは、工具及びワークに関する情報として、工具の材質、工具の形状、工具径、工具長、残り工具寿命、加工対象のワークの材質、工具カタログの切削条件等を例示する。また、工作機械10から取得された測定値として、主軸回転数、モータ電流値、機械温度、周囲温度等を例示する。
【0032】
機械学習装置20は、工作機械10において設定された工具及びワークに関する情報と、固定サイクルで設定された1回分の切り込み量及び切削速度と、当該加工プログラムを実行することで工作機械10から取得された測定値と、を含む状態情報(状態データ)sを観測して、行動aを決定する。機械学習装置20は、行動aをするたびに報酬が返ってくる。機械学習装置20は、将来にわたっての報酬の合計が最大になるように最適な行動aを試行錯誤的に探索する。そうすることで、機械学習装置20は、工作機械10において設定された工具及びワークに関する情報と、固定サイクルで設定された1回分の切り込み量及び切削速度と、当該加工プログラムを実行することで工作機械10から取得された測定値と、を含む状態sに対して、最適な行動a(すなわち「1回分の切り込み量」及び「切削速度」)を選択することが可能となる。
【0033】
図2は、機械学習装置20の機能的構成例を示す機能ブロック図である。
上述した強化学習を行うために、図2に示すように、機械学習装置20は、状態情報取得部201、学習部202、行動情報出力部203、価値関数記憶部204、最適化行動情報出力部205、及び制御部206を備える。学習部202は、報酬計算部221、価値関数更新部222、及び行動情報生成部223を備える。制御部206は、状態情報取得部201、学習部202、行動情報出力部203、及び最適化行動情報出力部205の動作を制御する。
【0034】
状態情報取得部201は、工作機械10の状態として、工作機械10において設定された工具及びワークに関する情報と、固定サイクルで設定された1回分の切り込み量及び切削速度と、当該加工プログラムを実行することで工作機械10から取得された測定値と、を含む状態データsを、数値制御装置101から取得する。この状態データsは、Q学習における、環境状態sに相当する。
状態情報取得部201は、取得した状態データsを学習部202に出力する。
なお、状態情報取得部201は、取得した状態データsを機械学習装置20に含まれる図示しない記憶部に記憶してもよい。この場合、後述する学習部202は、状態データsを機械学習装置20の記憶部(図示しない)から読み込んでもよい。
また、状態情報取得部201は、Q学習を行うための報酬を算出するための判定情報も取得する。具体的には、状態情報sに係る加工プログラムを実行することにより工作機械10から取得された、工具にかかる圧力の強さ(軸方向、及び回転方向)、工具にかかる圧力の波形の形状(軸方向、及び回転方向)、送り軸にかかるトルクの強さ、送り軸にかかるトルクの波形の形状、主軸にかかるトルクの強さ、主軸にかかるトルクの波形の形状、及び当該加工プログラムを実行したときの加工に要した時間を、Q学習を行うための報酬を算出するための判定情報とする。
【0035】
学習部202は、或る状態データ(環境状態)sの下で、或る行動aを選択する場合の価値関数Q(s,a)を学習する部分である。具体的には、学習部202は、報酬計算部221、価値関数更新部222、及び行動情報生成部223を有する。
なお、学習部202は、学習を継続するかどうかを判断する。学習を継続するかどうかは、例えば、機械学習を始めてからの試行回数が最大試行回数に達したかどうか、又は、機械学習を始めてからの経過時間が所定時間を超えた(又は以上)かどうかに基づいて判断することができる。
【0036】
報酬計算部221は、或る状態sの下で、行動aを選択した場合の報酬を判定情報に基づいて算出する。報酬は、判定情報に含まれる複数の評価項目に基づいて算出してもよい。本実施形態では、例えば、(1)工具、送り軸、主軸にかかる圧力(トルク)の強さと、(2)工具、送り軸、主軸にかかる圧力(トルク)の波形の形状と、(3)加工に要した時間との項目に基づいて報酬を算出する。
そこで、(1)工具、送り軸、主軸にかかる圧力(トルク)の強さの項目、(2)工具、送り軸、主軸にかかる圧力(トルク)の波形の形状の項目、及び(3)加工に要した時間の項目における報酬の算出について説明する。
【0037】
(1)工具、送り軸、主軸にかかる圧力(トルク)の強さの項目の報酬について
行動aにより状態sから状態s´に遷移した場合の状態s及び状態s´における工具、送り軸、主軸にかかる圧力(トルク)の強さの値をそれぞれ値P(s)、P(s)、P(s)、及び値P(s´)、P(s´)、P(s´)とする。
報酬計算部221は、以下のように工具、送り軸、主軸にかかる圧力(トルク)の強さに基づく報酬を算出する。
値P(s´)<値P(s)、且つ値P(s´)<値P(s)、且つ値P(s´)<値P(s)の場合は、報酬rを正の値とする。
状態s´の値P(s´)、P(s´)、P(s´)の少なくとも1つが、状態sの値P(s)、P(s)、P(s)より大きい場合、報酬rを負の値とする。
なお、負の値及び正の値については、例えば、予め設定した一定の値(例えば、第1の負の値及び第1の正の値)でもよい。
【0038】
(2)工具、送り軸、主軸にかかる圧力(トルク)の波形の形状の項目の報酬について
行動aにより状態sから状態s´に遷移した場合の状態s´における工具、送り軸、主軸にかかる圧力(トルク)の波形の形状をWF(s´)、WF(s´)、WF(s´)とする。
報酬計算部221は、以下のように工具、送り軸、主軸にかかる圧力(トルク)の波形の形状に基づく報酬を算出する。
工具、送り軸、主軸にかかる圧力(トルク)の波形の形状WF(s´)、WF(s´)、WF(s´)の少なくとも1つが、工具が破壊される予兆を示す波形、又は工具の寿命がより急激に減少する波形と相似する場合は、報酬rを負の値とする。
工具、送り軸、主軸にかかる圧力(トルク)の波形の形状WF(s´)、WF(s´)、WF(s´)のすべてが、工具が破壊される予兆を示す波形、及び工具の寿命がより急激に減少する波形と相似しない場合は、報酬rを正の値とする。
なお、工具が破壊される予兆を示す波形、及び工具の寿命がより急激に減少する波形のデータは、工具毎に予め取得され、機械学習装置20の記憶部(図示しない)に記憶されてもよい。
また、負の値及び正の値については、例えば、予め設定した一定の値(例えば、第2の負の値及び第2の正の値)でもよい。
【0039】
(3)加工に要した時間の報酬について
行動aにより状態sから状態s´に遷移した場合の状態s及び状態s´における加工に要した時間の値をそれぞれ値T(s)、及び値T(s´)とする。
報酬計算部221は、以下のように加工に要した時間に基づく報酬を算出する。
値T(s´)>値T(s)の場合は、報酬rを負の値とする。
値T(s´)=値T(s)の場合は、報酬rをゼロとする。
値T(s´)<値T(s)の場合は、報酬rを正の値とする。
なお、負の値及び正の値については、例えば、予め設定した一定の値(例えば、第3の負の値及び第3の正の値でもよい。
【0040】
報酬計算部221は、加工に要する時間を優先する機械学習と、工具の寿命を優先する機械学習と、における報酬として、数2式を用いて、上述の項目毎に算出された報酬r、r、rを加工に要する時間を優先する機械学習及び工具の寿命を優先する機械学習毎に別々に重み付け加算した報酬rをそれぞれ算出してもよい。
【数2】
なお、係数a、b、cは、重み係数を示す。
また、報酬計算部221は、加工に要する時間を優先する機械学習時の報酬r(以下、「報酬rcycle」ともいう)の計算において、例えば、工具の寿命を優先する機械学習と比べて、数2式の係数cの値を大きな値してもよく、第3の負の値及び第3の正の値の絶対値を大きな値にしてもよい。
また、報酬計算部221は、工具の寿命を優先する機械学習時の報酬r(以下、「報酬rtool」ともいう)の計算において、例えば、加工に要する時間を優先する機械学習と比べて、数2式の係数bの値を大きな値してもよく、第2の負の値及び第2の正の値の絶対値を大きな値にしてもよい。
以下、加工に要する時間を優先する機械学習は、特に断らない限り、「加工時間優先モードにおける機械学習」ともいう。また、工具の寿命を優先する機械学習は、特に断らない限り、「工具寿命優先モードにおける機械学習」ともいう。
【0041】
価値関数更新部222は、加工時間優先モードにおける機械学習の場合、状態sと、行動aと、行動aを状態sに適用した場合の状態s´と、上述のように算出された報酬rcycleの値と、に基づいて加工時間優先モードにおけるQ学習を行うことにより、価値関数記憶部204が記憶する価値関数Qcycleを更新する。また、価値関数更新部222は、工具寿命優先モードにおける機械学習の場合、状態sと、行動aと、行動aを状態sに適用した場合の状態s´と、上述のように算出された報酬rtoolの値と、に基づいて工具寿命優先モードにおけるQ学習を行うことにより、価値関数記憶部204が記憶する価値関数Qtoolを更新する。
加工時間優先モードの価値関数Qcycle、及び工具寿命優先モードの価値関数Qtoolの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習とは、或る行動aを現在の状態sに適用することにより、状態sが新たな状態s´に遷移する都度、即座に価値関数Qの更新を行うという学習方法である。また、バッチ学習とは、或る行動aを現在の状態sに適用することにより、状態sが新たな状態s´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行うという学習方法である。更に、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行うという学習方法である。
【0042】
行動情報生成部223は、現在の状態sに対して、Q学習の過程における行動aを選択する。行動情報生成部223は、加工時間優先モード又は工具寿命優先モードに応じたQ学習の過程において、固定サイクルで設定された1回分の切り込み量及び切削速度を修正する動作(Q学習における行動aに相当)を行わせるために、行動情報aを生成し、生成した行動情報aを行動情報出力部203に対して出力する。
【0043】
より具体的には、行動情報生成部223は、加工時間優先モード及び工具寿命優先モード毎に、状態sに含まれる、固定サイクルで設定された1回分の切り込み量及び切削速度に対して、行動aに含まれる1回分の切り込み量及び切削速度をインクレメンタルに増加又は減少させるようにしてもよい。
本実施形態では、例えば、加工時間優先モードにおける機械学習と、工具寿命優先モードにおける機械学習とを交互に行う場合を示す。なお、この場合、どちらか一方のモードに偏らないように、後述するグリーディ法やεグリーディ法等の公知の方法をランダムに用いて機械学習を行うようにしてもよい。また、後述するように、加工時間優先モードにおける機械学習と、工具寿命優先モードにおける機械学習とを別々に行うようにしてもよい。
【0044】
行動情報生成部223は、加工時間優先モード又は工具寿命優先モードにおける機械学習により、行動aにより加工プログラムの1回分の切り込み量及び切削速度を調整して、状態s´に遷移した場合に、工具、送り軸、主軸の力(トルク)の状態(減少するか否か)、工具、送り軸、主軸の力(トルク)の波形の形状の状態(相似するか否か)、及び加工時間の状態(増減又は維持)によって状態s´に対する行動a´の加工プログラムの1回分の切り込み量及び切削速度を選択してもよい。
例えば、加工時間優先モードにおける機械学習の場合、1回分の切り込み量及び/又は切削速度の増加により報酬rcycleが増加し、且つすべての工具、送り軸、主軸の力(トルク)が減少し、全ての工具、送り軸、主軸の力(トルク)の波形の形状が相似せず、及び加工の要する時間が減少する場合、状態s´に対する行動a´としては、例えば、1回分の切り込み量及び/又は切削速度をインクレメンタルに増加させる等、加工に要する時間の短縮となるような行動a´を選択する方策を取るようにしてもよい。
あるいは、加工時間優先モードにおける機械学習の場合に、1回分の切り込み量及び/又は切削速度の増加により報酬rcycleが減少する場合、状態s´に対する行動a´としては、例えば、1回分の切り込み量及び/又は切削速度を1つ前に戻す等、加工に要する時間の短縮となるような行動a´を選択する方策を取るようにしてもよい。
【0045】
また、工具寿命優先モードにおける機械学習の場合、1回分の切り込み量及び/又は切削速度の減少により報酬rtoolが増加し、且つすべての工具、送り軸、主軸の力(トルク)が減少し、すべての工具、送り軸、主軸の力(トルク)の波形の形状が相似せず、及び加工に要する時間が増減又は維持する場合、状態s´に対する行動a´としては、例えば、1回分の切り込み量及び/又は切削速度をインクレメンタルに減少させる等、工具寿命の減少を遅らせるような行動a´を選択する方策を取るようにしてもよい。
あるいは、工具寿命優先モードにおける機械学習の場合に、切り込み量及び/又は切削速度の減少により報酬rtoolが減少する場合、状態s´に対する行動a´としては、例えば、切り込み量及び/又は切削速度を1つ前に戻す等、工具寿命の減少を遅らせるような行動a´を選択する方策を取るようにしてもよい。
【0046】
また、行動情報生成部223は、現在の推定される行動aの価値の中で、最も価値関数Q(s,a)の高い行動aを選択するグリーディ法や、ある小さな確率εでランダムに行動a´選択し、それ以外では最も価値関数Q(s,a)の高い行動aを選択するεグリーディ法といった公知の方法により、行動aを選択する方策を取るようにしてもよい。
【0047】
行動情報出力部203は、学習部202から出力される行動情報aを数値制御装置101に対して出力する。行動情報出力部203は、例えば行動情報としての、更新された一回分の切り込み量及び切削速度の値を、数値制御装置101に出力するようにしてもよい。これにより、数値制御装置101は、受信した更新された1回分の切り込み量及び切削速度の値に基づいて、固定サイクルで設定された1回分の切り込み量及び切削速度を更新する。そして、数値制御装置101は、更新された固定サイクルで設定された1回分の切り込み量及び切削速度に基づいて動作指令を生成し、生成した動作指令に基づいて工作機械10に切削加工を行わせる。
なお、行動情報出力部203は、行動情報としての、更新された1回分の切り込み量及び切削速度の値に基づいて更新した加工プログラムを、数値制御装置101に出力してもよい。
【0048】
価値関数記憶部204は、加工時間優先モードの価値関数Qcycle、及び工具寿命優先モードの価値関数Qtoolを記憶する記憶装置である。価値関数Qcycle、Qtoolそれぞれは、例えば状態s、行動a毎にテーブル(以下、「行動価値テーブル」ともいう)として格納してもよい。価値関数記憶部204に記憶された価値関数Qcycle、Qtoolは、価値関数更新部222により更新される。
【0049】
最適化行動情報出力部205は、価値関数更新部222がQ学習を行うことにより更新した価値関数Qcycle又は価値関数Qtoolに基づいて、価値関数の値が最大となる動作を数値制御装置101に行わせるための行動情報a(以下、「最適化行動情報」ともいう)を生成する。
より具体的には、最適化行動情報出力部205は、価値関数記憶部204が記憶している加工時間優先モードの価値関数Qcycle及び工具寿命優先モードの価値関数Qtoolを取得する。この価値関数Qcycle、Qtoolは、上述したように価値関数更新部222がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部205は、取得した加工時間優先モードの価値関数Qcycleに基づく行動情報と、取得した加工時間優先モードの価値関数Qtoolに基づく行動情報と、を生成し、生成した各行動情報を数値制御装置101に対して出力する。この最適化行動情報には、行動情報出力部203がQ学習の過程において出力する行動情報と同様に、更新された1回分の切り込み量及び切削速度の値を示す情報が含まれる。
【0050】
以上、機械学習装置20に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、機械学習装置20は、CPU等の演算処理装置を備える。また、機械学習装置20は、アプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAMといった主記憶装置も備える。
【0051】
そして、機械学習装置20において、演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、機械学習装置20が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【0052】
機械学習装置20については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。さらには、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【0053】
次に、図3のフローチャートを参照して本実施形態におけるQ学習時の機械学習装置20の動作について説明をする。
図3は、第1実施形態におけるQ学習時の機械学習装置20の動作を示すフローチャートである。
【0054】
ステップS11において、制御部206は、試行回数を初期設定、すなわち「1」として状態情報取得部201に状態情報の取得を指示する。
【0055】
ステップS12において、状態情報取得部201は、数値制御装置101から最初の状態データを取得する。取得した状態データは、行動情報生成部223に対して出力される。上述したように、この状態データ(状態情報)は、Q学習における状態sに相当する情報であり、ステップS12時点での、1回分の切り込み量、切削速度、工具の材質、工具の形状、工具径、工具長、残り工具寿命、加工対象のワークの材質、工具カタログの切削条件、主軸回転数、モータ電流値、機械温度、及び周囲温度、が含まれる。なお、最初にQ学習を開始する時点での状態データは、予めオペレータが生成するようにする。
【0056】
ステップS13において、行動情報生成部223は、加工時間優先モード又は工具寿命優先モードにおける機械学習により、加工時間優先モード及び工具寿命優先モードの新たな行動情報aを生成し、生成した加工時間優先モード及び工具寿命優先モードの新たな行動情報aを、行動情報出力部203を介して数値制御装置101に対して出力する。数値制御装置101は、受信した加工時間優先モード及び工具寿命優先モードの行動情報aのうち、設定装置111により選択された行動情報aに基づいて、固定サイクルで設定された1回分の切り込み量及び切削速度が更新された加工プログラムを実行する。数値制御装置101は、更新された加工プログラムに基づいて動作指令を生成し、生成した動作指令に基づいて工作機械10に切削加工を行わせる。
【0057】
ステップS14において、状態情報取得部201は、数値制御装置101から新たな状態s´に相当する状態データを取得する。ここで、新たな状態データは、1回分の切り込み量、切削速度、工具の材質、工具の形状、工具径、工具長、残り工具寿命、加工対象のワークの材質、工具カタログの切削条件、主軸回転数、モータ電流値、機械温度、及び周囲温度、を含む。状態情報取得部201は、学習部202に対して取得した状態データを出力する。
【0058】
ステップS15において、状態情報取得部201は、新たな状態s´についての判定情報を取得する。ここで、判定情報には、ステップS13において、更新された加工プログラムが実行されることにより工作機械10から取得された、工具にかかる圧力の強さ(軸方向、及び回転方向)、工具にかかる圧力の波形の形状(軸方向、及び回転方向)、送り軸にかかるトルクの強さ、送り軸にかかるトルクの波形の形状、主軸にかかるトルクの強さ、主軸にかかるトルクの波形の形状、及び更新された加工プログラムを実行したときの加工に要した時間を、を含む。取得した判定情報は、学習部202に出力される。
【0059】
ステップS16において、報酬計算部221は、取得された判定情報に基づいて報酬算算処理を行い、加工時間優先モードの報酬rcycle及び工具寿命優先モードの報酬rtoolをそれぞれ算出する。なお、報酬計算処理の詳細なフローについては、後述する。
【0060】
ステップS17において、価値関数更新部222は、計算された報酬rcycle及び報酬rtoolに基づいて、価値関数記憶部204が記憶している価値関数Qcycle及び価値関数Qtoolをそれぞれ更新する。
【0061】
ステップS18において、制御部206は、機械学習を始めてからの試行回数が最大試行回数に到達したかどうかを判断する。最大試行回数は予め設定しておく。最大試行回数に到達していなければ、ステップS19で試行回数をカウントアップして、ステップS13に戻る。ステップS13からステップS19までの処理は最大試行回数に到達するまで繰り返し行われる。
【0062】
なお、図3のフローは、試行回数が最大試行回数に到達したときに処理を終了させているが、ステップS13からステップS19の処理に係る時間を、機械学習を始めてから累積した時間が、予め設定された最大経過時間を超えた(又は以上になった)ことを条件として処理を終了するようにしてもよい。
また、ステップS17はオンライン更新を例示しているが、オンライン更新に替えてバッチ更新又はミニバッチ更新に置き換えてもよい。
【0063】
図4は、図3においてステップS16で示した報酬計算処理の詳細な処理内容を説明するフローチャートである。
【0064】
ステップS61において、報酬計算部221は、状態s´の判定情報に含まれる工具、送り軸、主軸にかかる圧力(トルク)の強さの値P(s´)、P(s´)、P(s´)のすべてが、状態sの判定情報に含まれる工具、送り軸、主軸にかかる圧力(トルク)の強さの値P(s)、P(s)、P(s)より小さい、すなわち弱いか否かを判定する。状態s´の工具、送り軸、主軸にかかる圧力(トルク)の強さの値P(s´)、P(s´)、P(s´)のすべてが状態sより弱い場合、処理はステップS62に進む。また、状態s´の工具、送り軸、主軸にかかる圧力(トルク)の強さの値P(s´)、P(s´)、P(s´)の少なくとも1つが状態sより強い場合、処理はステップS63に進む。
【0065】
ステップS62において、報酬計算部221は、報酬rを負の値にする。
【0066】
ステップS63において、報酬計算部221は、報酬rを正の値にする。
【0067】
ステップS64において、報酬計算部221は、状態s´の判定情報に含まれる工具、送り軸、主軸にかかる圧力(トルク)の波形の形状WF(s´)、WF(s´)、WF(s´)のすべてが、工具が破壊される予兆を示す波形、又は工具の寿命がより減少する波形と相似するか否かを判定する。状態s´の工具、送り軸、主軸にかかる圧力(トルク)の波形の形状WF(s´)、WF(s´)、WF(s´)のすべてが相似しない場合、処理はステップS66に進む。また、状態s´の工具、送り軸、主軸にかかる圧力(トルク)の波形の形状WF(s´)、WF(s´)、WF(s´)の少なくとも1つが相似する場合、処理はステップS65に進む。
【0068】
ステップS65において、報酬計算部221は、報酬rを負の値にする。
【0069】
ステップS66において、報酬計算部221は、報酬rを正の値にする。
【0070】
ステップS67において、報酬計算部221は、状態s´の判定情報に含まれる加工に要した時間の値T(s´)が、状態sの判定情報に含まれる加工に要した時間の値T(s)より増加、減少、又は維持したかを判定する。状態s´の加工に要した時間の値T(s´)が状態sより増加した場合、処理はステップS68に進む。また、状態s´の加工に要した時間の値T(s´)が状態sより減少した場合、処理はステップS70に進む。また、状態s´の加工に要した時間の値T(s´)が維持された場合、処理はステップS69に進む。
【0071】
ステップS68において、報酬計算部221は、報酬rを負の値にする。
【0072】
ステップS69において、報酬計算部221は、報酬rをゼロにする。
【0073】
ステップS70において、報酬計算部221は、報酬rを正の値にする。
【0074】
ステップS71において、報酬計算部221は、算出した報酬r、r、rと、数2式と、を用いて、加工時間優先モードの報酬rcycle及び工具寿命優先モードの報酬rtoolをそれぞれ算出する。以上により、報酬計算処理のフローは終了し、処理はステップS17に進む。
【0075】
以上、図3及び図4を参照して説明した動作により、本実施形態では、変種変量生産等の現場において、オペレータの手間を増やすことなく、加工プログラムの固定サイクルを最適化するための価値関数Qcycle、Qtoolを生成することができる。
【0076】
次に、図5のフローチャートを参照して、最適化行動情報出力部205による最適化行動情報の生成時の動作について説明をする。
【0077】
ステップS21において、最適化行動情報出力部205は、価値関数記憶部204が記憶している加工時間優先モードの価値関数Qcycle、及び工具寿命優先モードの価値関数Qtoolを取得する。
【0078】
ステップS22において、最適化行動情報出力部205は、取得した価値関数Qcycle及び価値関数Qtoolに基づいて、加工時間優先モード及び工具寿命優先モードの最適化行動情報をそれぞれ生成し、生成した加工時間優先モード及び工具寿命優先モードの最適化行動情報を数値制御装置101に対して出力する。
【0079】
以上のように、数値制御装置101は、設定装置111で選択された加工時間優先モード又は工具寿命優先モードにおける行動に応じて固定サイクルで設定された1回分の切り込み量及び切削速度が更新された加工プログラムを実行することにより、変種変量生産等の現場において、オペレータの手間を増やすことなく、加工プログラムを最適化することができる。これにより、数値制御装置101は、加工に要する時間(すなわち、サイクルタイム)を優先して加工したり、工具寿命を優先して加工したりすることができる。
また、数値制御装置101は、オペレータにより1回分の切り込み量及び切削速度の引数の設定が不要になり、加工プログラムの作成の手間を削減することができる。
以上、第1実施形態について説明した。
【0080】
<第2実施形態>
次に、第2実施形態について説明する。第2実施形態では、機械学習装置20Aは、第1実施形態の機能に加えて、2以上の複数(例えば、n個)の固定サイクルを含む加工プログラムに対して、各固定サイクル(例えば、i番目の固定サイクル)を実行する毎に、加工プログラムをストップして、i番目の固定サイクルの状態s(i)、行動a(i)、判定情報(i)、報酬r(i)、及び状態s´(i)に対する行動a´(i)を算出し、i番目の固定サイクルにおける1回分の切り込み量及び切削速度を更新する機能をさらに備える。なお、nは2以上の整数であり、iは1からnの整数である。
こうすることで、i番目の固定サイクルで設定された、1回分の切り込み量及び切削速度をi番目の固定サイクルに対する行動として特定することができる。以下、i番目の固定サイクルを「固定サイクル(i)」(1≦i≦n)ともいう。
以下に、第2実施形態について説明する。
【0081】
<第2実施形態>
図6は、第2実施形態に係る数値制御システムの機能的構成例を示す機能ブロック図である。なお、図1の数値制御システム1の要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
図6に示すように、第2実施形態に係る数値制御システム1は、工作機械10、及び機械学習装置20Aを有する。
【0082】
工作機械10は、第1実施形態の場合と同様に、当業者にとって公知の工作機械であり、数値制御装置101aを含む。工作機械10は、数値制御装置101aからの動作指令に基づいて動作する。
【0083】
数値制御装置101aは、第1実施形態の場合と同様に、当業者にとって公知の数値制御装置であり、CAD/CAM装置等の外部装置(図示しない)から取得した加工プログラムに基づいて動作指令を生成し、生成した動作指令を工作機械10に送信する。これにより、数値制御装置101aは、工作機械10の動作を制御する。
なお、第2実施形態に係る数値制御装置101aは、例えば、加工プログラムを実行する場合、加工プログラムに含まれるもみつけ、タッピング等のn個の固定サイクル(i)それぞれが完了する毎に、加工プログラムをストップして、当該固定サイクルにおいて工作機械10に設定された工具及びワークに関する情報と、当該固定サイクル(i)に設定された1回分の切り込み量及び切削速度と、加工プログラムを実行することで工作機械10から取得された測定値を、機械学習装置20Aに出力してもよい。
なお、設定装置111は、第1実施形態における設定装置111と同等の機能を有する。
【0084】
<機械学習装置20A>
機械学習装置20Aは、数値制御装置101aが加工プログラムを実行することで、工作機械10を動作させたときの、加工プログラムに含まれるn個の固定サイクル毎の1回分の切り込み量及び切削速度を強化学習する装置である。
図7は、機械学習装置20Aの機能的構成例を示す機能ブロック図である。
図7に示すように、機械学習装置20Aは、状態情報取得部201a、学習部202a、行動情報出力部203a、価値関数記憶部204a、最適化行動情報出力部205a、及び制御部206を備える。学習部202aは、報酬計算部221a、価値関数更新部222a、及び行動情報生成部223aを備える。
なお、制御部206は、第1実施形態における制御部206と同等の機能を有する。
【0085】
状態情報取得部201aは、工作機械10の状態として、加工プログラムに含まれるn個の固定サイクルそれぞれが実行される毎に、工作機械10において設定された工具及びワークに関する情報と、各固定サイクル(i)(1≦i≦n)に設定された1回分の切り込み量及び切削速度と、当該加工プログラムを実行することで工作機械10から取得された測定値と、を含む状態データsを、数値制御装置101から取得する。
状態情報取得部201aは、固定サイクル(i)毎に取得した状態データs(i)を学習部202aに出力する。
なお、状態情報取得部201aは、固定サイクル(i)毎に取得した状態データs(i)を機械学習装置20Aに含まれる図示しない記憶部に記憶してもよい。この場合、後述する学習部202aは、固定サイクル(i)毎の状態データs(i)を機械学習装置20Aの記憶部(図示しない)から読み込んでもよい。
また、状態情報取得部201aは、Q学習を行うための報酬を算出するための判定情報も固定サイクル(i)毎に取得する。具体的には、状態情報s(i)に係る加工プログラムに含まれる固定サイクル(i)をそれぞれ実行することにより工作機械10から取得された、工具にかかる圧力の強さ(軸方向、及び回転方向)、工具にかかる圧力の波形の形状(軸方向、及び回転方向)、送り軸にかかるトルクの強さ、送り軸にかかるトルクの波形の形状、主軸にかかるトルクの強さ、主軸にかかるトルクの波形の形状、及び当該固定サイクル(i)を実行したときの加工に要した時間を、Q学習を行うための報酬を算出するための判定情報とする。
【0086】
学習部202aは、各固定サイクル(i)において、或る状態データ(環境状態)s(i)の下で、或る行動a(i)を選択する場合の価値関数Q(s(i),a(i))を学習する部分である。具体的には、学習部202aは、報酬計算部221a、価値関数更新部222a、及び行動情報生成部223aを有する。
なお、学習部202aは、第1実施形態の学習部202と同様に、学習を継続するかどうかを判断する。学習を継続するかどうかは、例えば、機械学習を始めてからの加工プログラムの試行回数が最大試行回数に達したかどうか、又は、機械学習を始めてからの経過時間が所定時間を超えた(又は以上)かどうかに基づいて判断することができる。
【0087】
報酬計算部221aは、各固定サイクル(i)において、或る状態s(i)の下で、行動a(i)を選択した場合の報酬を各固定サイクル(i)の判定情報に基づいて算出する。なお、各固定サイクル(i)において算出される報酬は、第1実施形態の場合と同様に、(1)工具、送り軸、主軸にかかる圧力(トルク)の強さと、(2)工具、送り軸、主軸にかかる圧力(トルク)の波形の形状と、(3)加工に要した時間との項目に基づいて算出される。すなわち、例えば、固定サイクル(i)における各項目の報酬r(i)、r(i)、r(i)は、第1実施形態の報酬r、r、rと同様に算出される。
そして、報酬計算部221aは、第1実施形態の報酬計算部221と同様に、固定サイクル(i)における加工時間優先モードの報酬rcycle(i)、及び工具寿命優先モードの報酬rtool(i)を、各項目の報酬r(i)、r(i)、r(i)と、数2式と、を用いて算出してもよい。
【0088】
価値関数更新部222aは、第1実施形態の価値関数更新部222と同様に、加工時間優先モードにおける機械学習の場合、固定サイクル(i)における状態s(i)と、行動a(i)と、行動a(i)を状態s(i)に適用した場合の状態s´(i)と、上述のように算出された報酬rcycle(i)の値と、に基づいてQ学習を行うことにより、価値関数記憶部204aが記憶する固定サイクル(i)の価値関数Qcycle_iを更新する。また、価値関数更新部222aは、工具寿命優先モードにおける機械学習の場合、固定サイクル(i)における状態s(i)と、行動a(i)と、行動a(i)を状態s(i)に適用した場合の状態s´(i)と、上述のように算出された報酬rtool(i)の値と、に基づいてQ学習を行うことにより、価値関数記憶部204aが記憶する価値関数Qtool_iを更新する。
【0089】
行動情報生成部223aは、第1実施形態の行動情報生成部223と同様に、固定サイクル(i)における現在の状態s(i)に対して、Q学習の過程における行動a(i)を選択する。行動情報生成部223aは、加工時間優先モード又は工具寿命優先モードに応じたQ学習の過程において、i番目の固定サイクルの1回分の切り込み量及び切削速度を修正する動作(Q学習における行動aに相当)を行わせるために、i番目の固定サイクルの行動情報aを生成し、生成したi番目の固定サイクルの行動情報aを行動情報出力部203aに対して出力する。
【0090】
行動情報出力部203aは、第1実施形態の行動情報出力部203と同様に、学習部202aから出力される固定サイクル(i)毎の行動情報a(i)を数値制御装置101aに対して出力する。行動情報出力部203aは、例えば固定サイクル(i)毎の行動情報としての、更新された1回分の切り込み量及び切削速度の値を、数値制御装置101aに出力するようにしてもよい。これにより、数値制御装置101aは、受信した更新された1回分の切り込み量及び切削速度の値に基づいて、加工プログラムに含まれるn個の固定サイクル(i)それぞれを更新する。そして、数値制御装置101aは、更新された固定サイクル(i)を含む加工プログラムに基づいて動作指令を生成し、生成した動作指令に基づいて工作機械10に切削加工を行わせる。
なお、行動情報出力部203aは、固定サイクル(i)毎の行動情報としての、更新された1回分の切り込み量及び切削速度の値に基づいて各固定サイクル(i)を更新した加工プログラムを、数値制御装置101aに出力してもよい。
【0091】
価値関数記憶部204aは、固定サイクル(i)毎の加工時間優先モードの価値関数Qcycle_i、及び工具寿命優先モードの価値関数Qtool_iを記憶する記憶装置である。なお、価値関数Qcycle_i(1≦i≦n)の集合と価値関数Qcycleとの関係、及び価値関数Qtool_i(1≦i≦n)の集合と価値関数Qtoolとの関係は数3式のように表される。
【数3】
価値関数記憶部204aに記憶された固定サイクル(i)毎の価値関数Qcycle_i、Qtool_iは、価値関数更新部222により更新される。
【0092】
最適化行動情報出力部205aは、第1実施形態の最適化行動情報出力部205と同様に、価値関数更新部222aがQ学習を行うことにより更新した加工時間優先モードの価値関数Qcycle又は工具寿命優先モードの価値関数Qtoolに基づいて、価値関数の値が最大となる動作を数値制御装置101aに行わせるための固定サイクル(i)における行動情報(最適化行動情報)aを生成する。
より具体的には、最適化行動情報出力部205aは、価値関数記憶部204が記憶している加工時間優先モードの価値関数Qcycle及び工具寿命優先モードの価値関数Qtoolを取得する。そして、最適化行動情報出力部205aは、取得した加工時間優先モードの価値関数Qcycleに基づく固定サイクル(i)における行動情報と、取得した加工時間優先モードの価値関数Qtoolに基づく固定サイクル(i)における行動情報とを生成し、生成した固定サイクル(i)における各行動情報を数値制御装置101aに対して出力する。この最適化行動情報には、行動情報出力部203aがQ学習の過程において出力する行動情報と同様に、更新された1回分の切り込み量及び切削速度の値を示す情報が含まれる。
以上、機械学習装置20Aに含まれる機能ブロックについて説明した。
【0093】
次に、図8のフローチャートを参照して本実施形態におけるQ学習時の機械学習装置20Aの動作について説明をする。
図8は、第2実施形態におけるQ学習時の機械学習装置20Aの動作を示すフローチャートである。なお、図8のフローチャートのうち、図3に示したステップと同様の処理については、同じステップ番号を付し、詳細な説明は省略する。
【0094】
ステップS11aにおいて、制御部206は、加工プログラムの試行回数jを初期設定、すなわち「1」として状態情報取得部201aに状態情報の取得を指示する。
【0095】
ステップS11bにおいて、制御部206は、iを「1」に初期化する。
【0096】
ステップS12aにおいて、状態情報取得部201aは、数値制御装置101aから固定サイクル(i)の状態データs(i)を取得する。取得した状態データs(i)は、行動情報生成部223aに対して出力される。上述したように、この状態データ(状態情報)s(i)は、Q学習における固定サイクル(i)における状態s(i)に相当する情報であり、ステップS12a時点での、1回分の切り込み量、切削速度、工具の材質、工具の形状、工具径、工具長、残り工具寿命、加工対象のワークの材質、工具カタログの切削条件、主軸回転数、モータ電流値、機械温度、及び周囲温度、が含まれる。なお、最初にQ学習を開始する時点での状態データは、予めオペレータが生成するようにする。
【0097】
ステップS13aにおいて、行動情報生成部223aは、加工時間優先モード又は工具寿命優先モードにおける機械学習により、加工時間優先モード及び工具寿命優先モードの固定サイクル(i)における新たな行動情報a(i)を生成し、生成した加工時間優先モード及び工具寿命優先モードの新たな行動情報a(i)を、行動情報出力部203aを介して数値制御装置101aに対して出力する。数値制御装置101aは、受信した加工時間優先モード及び工具寿命優先モードの行動情報a(i)のうち、設定装置111により選択された行動情報a(i)に基づいて、固定サイクル(i)で設定された1回分の切り込み量及び切削速度が更新された加工プログラムを実行する。数値制御装置101aは、更新された固定サイクル(i)に基づいて動作指令を生成し、生成した動作指令に基づいて工作機械10に切削加工を行わせる。そして、数値制御装置101aは、固定サイクル(i)が完了した場合、加工プログラムをストップする。
【0098】
ステップS14において、状態情報取得部201aは、第1実施形態におけるステップS14と同様の処理を行い、数値制御装置101aから取得した固定サイクル(i)における新たな状態データs´(i)を取得する。
【0099】
ステップS15において、状態情報取得部201aは、第1実施形態におけるステップS15と同様の処理を行い、固定サイクル(i)における新たな状態s´(i)についての判定情報を取得する。取得した判定情報は、学習部202aに出力される。
【0100】
ステップS16において、報酬計算部221aは、第1実施形態におけるステップS16と同様の処理を行い、取得された判定情報に基づいて図4の報酬算算処理を行い、加工時間優先モードの固定サイクル(i)の報酬rcycle(i)、及び工具寿命優先モードの固定サイクル(i)の報酬rtool(i)をそれぞれ算出する。
【0101】
ステップS17において、価値関数更新部222aは、第1実施形態におけるステップS17と同様の処理を行い、計算された固定サイクル(i)の報酬rcycle(i)及び報酬rtool(i)に基づいて、価値関数記憶部204aが記憶している固定サイクル(i)の加工時間優先モードの価値関数Qcycle_i、及び工具寿命優先モードの価値関数Qtool_iをそれぞれ更新する。
【0102】
ステップS17aにおいて、制御部206は、iがnより小さいか否かを判定する。iがnより小さい場合、処理はステップS17bに進む。一方、iがn以上の場合、処理はステップS18に進む。
【0103】
ステップS17bにおいて、制御部206は、iを「1」増加させる。処理はステップS12aに戻る。
【0104】
ステップS18において、制御部206は、第1実施形態におけるステップS18と同様の処理を行い、機械学習を始めてからの加工プログラムの試行回数jが最大試行回数に到達したかどうかを判断する。最大試行回数に到達していなければ、ステップS19で試行回数jを「1」カウントアップして、ステップS11bに戻る。ステップS11bからステップS19までの処理は最大試行回数に到達するまで繰り返し行われる。
【0105】
なお、図8のフローは、加工プログラムの試行回数jが最大試行回数に到達したときに処理を終了させているが、ステップS11bからステップS19の処理に係る時間を、機械学習を始めてから累積した時間が、予め設定された最大経過時間を超えた(又は以上になった)ことを条件として処理を終了するようにしてもよい。
また、ステップS17はオンライン更新を例示しているが、オンライン更新に替えてバッチ更新又はミニバッチ更新に置き換えてもよい。
【0106】
以上、図8を参照して説明した動作により、本実施形態では、変種変量生産等の現場において、オペレータの手間を増やすことなく、加工プログラムの固定サイクルを最適化するための価値関数Qcycle、Qtoolを生成することができる。
【0107】
なお、最適化行動情報出力部205aによる最適化行動情報の生成時の動作については、固定サイクル(i)毎に最適化行動情報を生成する点を除き、図5のフローチャートと同様であり説明を省略する。
【0108】
以上のように、数値制御装置101aは、設定装置111で選択された固定サイクル(i)毎の加工時間優先モード又は工具寿命優先モードにおける行動に応じて固定サイクル(i)で設定された1回分の切り込み量及び切削速度が更新された加工プログラムを実行することにより、変種変量生産等の現場において、オペレータの手間を増やすことなく、加工プログラムを最適化することができる。これにより、数値制御装置101は、加工に要する時間(すなわち、サイクルタイム)を優先して加工したり、工具寿命を優先して加工したりすることができる。
また、数値制御装置101aは、オペレータにより1回分の切り込み量及び切削速度の引数の設定が不要になり、加工プログラムの作成の手間を削減することができる。
以上、第2実施形態について説明した。
【0109】
以上、第1実施形態及び第2実施形態について説明したが、数値制御装置101、101a、及び機械学習装置20、20Aは、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等を含む。
【0110】
<変形例1>
上述の第1実施形態及び第2実施形態では、機械学習装置20、20Aは、加工時間優先モードと工具寿命優先モードとにおける機械学習を交互に行っているが、これに限定されない。例えば、機械学習装置20、20Aは、加工時間優先モードにおける機械学習と、工具寿命優先モードにおける機械学習とを別々に行うようにしてもよい。
【0111】
<変形例2>
また例えば、上述の第1実施形態及び第2実施形態では、設定装置111は、工作機械10で使用中の工具の残り工具寿命と予め設定された閾値との比較に基づいて、加工時間優先モードにおける行動、又は工具寿命優先モードにおける行動を選択したが、これに限定されない。
例えば、工具の残り工具寿命が5%、残り加工部品数が3個、及び加工一回当たりの工具寿命減少量が0.1%の場合、残り加工部品数が3個のワークを加工した後の残り工具寿命は4.7%で、0%にならない。そこで、設定装置111は、残り工具寿命が閾値以下でも残り加工部品数のワークを加工しても0%にならない場合、加工時間優先モードにおける行動を選択してもよい。
これにより、残り工具寿命が少ない場合でも、残り加工部品数に対して残り工具寿命が残っていれば、加工に要する時間(サイクルタイム)を落とさずに加工することができる。
【0112】
<変形例3>
また例えば、上述の第1実施形態及び第2実施形態では、機械学習装置20、20Aは、数値制御装置101、101aと異なる装置として例示したが、機械学習装置20、20Aの一部又は全部の機能を、数値制御装置101、101aが備えるようにしてもよい。
あるいは、機械学習装置20の状態情報取得部201、学習部202、行動情報出力部203、価値関数記憶部204、最適化行動情報出力部205、及び制御部206、又は機械学習装置20Aの状態情報取得部201a、学習部202a、行動情報出力部203a、価値関数記憶部204a、最適化行動情報出力部205a、及び制御部206の一部又は全部を、例えば、サーバが備えるようにしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置20、20Aの各機能を実現してもよい。
さらに、機械学習装置20、20Aは、機械学習装置20、20Aの各機能を適宜複数のサーバに分散される、分散処理システムとしてもよい。
【0113】
<変形例4>
また例えば、上述の第1実施形態及び第2実施形態では、制御システム1において、1つの工作機械10と、1つの機械学習装置20、20Aと、が通信可能に接続されたが、これに限定されない。例えば、図9に示すように、制御システム1は、m個の工作機械10A(1)-10A(m)と、m個の機械学習装置20B(1)-20B(m)とを有してもよい(mは2以上の整数)。この場合、機械学習装置20B(j)は、ネットワーク50を介して工作機械10A(j)と1対1に通信可能に接続され、工作機械10A(j)に対して機械学習を実施するようにしてもよい(jは1からmの整数)。
なお、機械学習装置20B(j)の価値関数記憶部204(204a)に記憶された価値関数Qcycle、Qtool(Qcycle_i、Qtool_i)は、他の機械学習装置20B(k)との間で共有されるようにしてもよい(kは1からmの整数であり、k≠j)。価値関数Qcycle、Qtool(Qcycle_i、Qtool_i)を機械学習装置20B(1)-20B(m)で共有するようにすれば、各機械学習装置20Bにて分散して強化学習を行うことが可能となり、強化学習の効率を向上させることが可能となる。
なお、工作機械10A(1)-10A(m)の各々は、図1又は図6の工作機械10に対応する。また、機械学習装置20B(1)-20B(m)の各々は、図1の機械学習装置20又は図6の機械学習装置20Aに対応する。
【0114】
また、図10に示すように、サーバ60は、機械学習装置20(20A)として動作し、ネットワーク50を介してm個の工作機械10A(1)-10A(m)と通信可能に接続され、工作機械10A(1)-10A(m)の各々に対して機械学習を実施するようにしてもよい。
【0115】
なお、第1実施形態及び第2実施形態における、数値制御装置101、101a、及び機械学習装置20、20Aに含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0116】
数値制御装置101、101a、及び機械学習装置20、20Aに含まれる各構成部は、電子回路等を含むハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータにインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。また、ハードウェアで構成する場合、上記の装置に含まれる各構成部の機能の一部又は全部を、例えば、ASIC(Application Specific Integrated Circuit)、ゲートアレイ、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)等の集積回路(IC)で構成することができる。
【0117】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
【0118】
なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0119】
以上を換言すると、本開示の機械学習装置、設定装置、数値制御システム、数値制御装置、及び機械学習方法は、次のような構成を有する各種各様の実施形態を取ることができる。
【0120】
(1)本開示の機械学習装置20は、加工プログラムに基づいて工作機械10を動作させる数値制御装置101に対して機械学習を行う機械学習装置であって、少なくとも1回分の切り込み量及び切削速度が設定された加工プログラムを数値制御装置101が実行することで、工作機械10に切削加工を行わせることにより、1回分の切り込み量及び切削速度を含む状態情報を、取得する状態情報取得部201と、状態情報に含まれる1回分の切り込み量及び切削速度の調整情報を含む行動情報を出力する行動情報出力部203と、少なくとも切削加工における工具にかかる圧力の強さと、工具にかかる圧力の波形の形状と、加工に要した時間とについての情報である判定情報を取得し、取得した判定情報に基づいて、所定の条件に応じた強化学習における報酬値を出力する報酬計算部221と、報酬値と、状態情報と、行動情報とに基づいて価値関数Qを更新する価値関数更新部222と、を備える。
この機械学習装置20によれば、オペレータの手間を増やすことなく、加工プログラムを最適化することができる。
【0121】
(2) (1)に記載の機械学習装置20において、所定の条件は、加工時間を優先する条件、及び工具の寿命を優先する条件のいずれかであり、報酬計算部221は、加工時間を優先する条件では報酬rcycleを出力し、工具の寿命を優先する条件では報酬rtoolを出力し、価値関数更新部222は、加工時間を優先する条件では報酬rcycleと、状態情報と、行動情報とに基づいて価値関数Qcycleを更新し、工具の寿命を優先する条件では報酬rtoolと、状態情報と、行動情報とに基づいて価値関数Qtoolを更新してもよい。
そうすることで、オペレータの手間を増やすことなく、加工プログラムの固定サイクルを最適化するための価値関数Qcycle、Qtoolを生成することができる。
【0122】
(3) (2)に記載の機械学習装置20、20Aにおいて、機械学習は、加工プログラムが実行される毎、又は加工プログラムに含まれる複数の固定サイクルそれぞれが実行される毎に行われてもよい。
そうすることで、ワーク加工毎、固定サイクル毎に加工プログラムを最適化することができる。
【0123】
(4) (2)又は(3)に記載の機械学習装置20、20Aにおいて、報酬rcycleに基づいて更新された価値関数Qcycleの値が最大となる行動情報、及び報酬rtoolに基づいて更新された価値関数Qtoolの値が最大となる行動情報を出力する最適化行動情報出力部205、205aをさらに備えてもよい。
そうすることで、機械学習装置20、20Aは、工具の状態に応じて加工プログラムを最適化することができる。
【0124】
(5) (1)に記載の機械学習装置20において、報酬計算部221は、判定情報に含まれる加工に要した時間が前回の加工に要した時間より減少した場合に報酬rcycle、rtoolを正の値とし、加工に要した時間が前回の加工に要した時間より増加した場合に報酬rcycle、rtoolを負の値としてもよい。
そうすることで、機械学習装置20は、加工に要した時間に応じて加工プログラムを最適化することができる。
【0125】
(6) (1)に記載の機械学習装置20において、報酬計算部221は、判定情報に含まれる工具にかかる圧力の波形の形状が少なくとも工具が破壊される予兆を示す波形の形状及び工具の寿命の急激な減少を示す波形の形状と相似しない場合に報酬rcycle、rtoolを正の値とし、工具にかかる圧力の波形の形状が少なくとも工具が破壊される予兆を示す波形の形状又は工具の寿命の急激な減少を示す波形の形状と相似する場合に報酬rcycle、rtoolを負の値としてもよい。
そうすることで、機械学習装置20は、加工の安全を考慮しつつ加工プログラムを最適化することができる。
【0126】
(7) (1)から(6)のいずれかに記載の機械学習装置20、20Aにおいて、機械学習の最大試行回数を設けて、機械学習を行ってもよい。
そうすることで、機械学習装置20、20Aは、機械学習が長時間に亘って行われることを回避することができる。
【0127】
(8)本開示の設定装置111は、(1)から(7)のいずれかに記載の機械学習装置から取得した行動のうち予め設定された閾値に基づいていずれかの行動を選択して、選択した行動を加工プログラムに設定する。
この設定装置111によれば、(1)から(7)と同様の効果を奏することができる。
【0128】
(9)本開示の数値制御システム1は、(1)から(7)のいずれかに記載の機械学習装置20、20Aと、(8)に記載の設定装置111と、設定装置111によって設定された加工プログラムを実行する数値制御装置101、101aと、を備える。
この数値制御システム1によれば、(1)から(7)と同様の効果を奏することができる。
【0129】
(10)本開示の数値制御装置101、101aは、(1)から(7)のいずれかに記載の機械学習装置20、20Aと、(8)に記載の設定装置111と、を含み、設定装置111によって設定された加工プログラムを実行する。
この数値制御装置101、101aによれば、(1)から(7)と同様の効果を奏することができる。
【0130】
(11)本開示の数値制御方法は、加工プログラムに基づいて工作機械10を動作させる数値制御装置101、101aに対して機械学習を行う機械学習装置20、20Aの機械学習方法であって、少なくとも1回分の切り込み量及び切削速度が設定された加工プログラムを数値制御装置101、101aが実行することで、工作機械10に切削加工を行わせることにより、1回分の切り込み量及び切削速度を含む状態情報を、取得し、状態情報に含まれる1回分の切り込み量及び切削速度の調整情報を含む行動情報を出力し、少なくとも切削加工における工具にかかる圧力の強さと、工具にかかる圧力の波形の形状と、加工に要した時間とについての情報である判定情報を取得し、取得した判定情報に基づいて、所定の条件に応じた強化学習における報酬値を出力し、報酬値と、状態情報と、行動情報とに基づいて価値関数Qを更新する。
この数値制御方法によれば、(1)と同様の効果を奏することができる。
【符号の説明】
【0131】
1 数値制御システム
10 工作機械
101、101a 数値制御装置
111 設定装置
20、20A 機械学習装置
201、201a 状態情報取得部
202、202a 学習部
221、221a 報酬計算部
222、222a 価値関数更新部
223、223a 行動情報生成部
203、203a 行動情報出力部
204、204a 価値関数記憶部
205、205a 最適化行動情報出力部
206 制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10