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

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

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

<>
  • 特開-受信装置及び機械学習方法 図1
  • 特開-受信装置及び機械学習方法 図2
  • 特開-受信装置及び機械学習方法 図3
  • 特開-受信装置及び機械学習方法 図4
  • 特開-受信装置及び機械学習方法 図5
  • 特開-受信装置及び機械学習方法 図6
  • 特開-受信装置及び機械学習方法 図7
  • 特開-受信装置及び機械学習方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023159893
(43)【公開日】2023-11-01
(54)【発明の名称】受信装置及び機械学習方法
(51)【国際特許分類】
   H04L 1/00 20060101AFI20231025BHJP
   H03H 17/02 20060101ALI20231025BHJP
   H04B 3/06 20060101ALI20231025BHJP
   H04B 1/10 20060101ALI20231025BHJP
【FI】
H04L1/00 E
H03H17/02 615A
H04B3/06 Z
H04B1/10 G
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023127841
(22)【出願日】2023-08-04
(62)【分割の表示】P 2019160413の分割
【原出願日】2019-09-03
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】栗原 健一郎
(72)【発明者】
【氏名】秋元 信二
(72)【発明者】
【氏名】宮地 基好
(57)【要約】
【課題】周囲で発生する外乱に対して適したデジタルフィルタの調整を可能とする。
【解決手段】通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、通信線に外乱を生じさせる装置の動作予定情報に基づいてデジタルフィルタの係数を調整する係数調整部と、動作予定情報に含まれる動作情報と動作情報に対応するデジタルフィルタの係数又は係数の修正情報との組み合わせを記録する情報テーブルと、を備えた受信装置であって、係数調整部は、動作予定情報に含まれる動作情報に基づいて情報テーブルからデジタルフィルタの係数又は係数の修正情報を求めて、デジタルフィルタの係数を調整する。
【選択図】図1
【特許請求の範囲】
【請求項1】
機械学習部と、
通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、該デジタルフィルタの係数を調整する係数調整部と、前記デジタルフィルタの出力に基づいて通信エラーを検出する通信エラー検出部と、前記機械学習部から出力される、前記通信線に前記外乱を生じさせる装置の動作情報及び最適化された前記係数又は該係数の調整情報を示す情報テーブルと、を備えた受信部と、
を備え、
前記機械学習部は、
前記通信線に前記外乱を生じさせる前記装置の動作情報と、前記係数を状態情報として取得する状態取得部と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記係数調整部に出力する行動情報出力部と、
前記通信エラー検出部から通信エラーの状況を示す判定情報を取得する判定情報取得部と、
前記判定情報に基づいて、前記通信エラーの変動に対して報酬を与える報酬計算部と、を有し、
前記報酬の値を用いて、前記通信エラーが少なくなるように前記デジタルフィルタの最適な係数を機械学習する、受信装置。
【請求項2】
前記機械学習部は、前記報酬の値と、前記状態情報とに基づいて価値関数を更新する価値関数更新部を備える、請求項1に記載の受信装置。
【請求項3】
前記機械学習部は、前記価値関数更新部により更新された価値関数に基づいて、前記係数調整部に前記係数の調整情報を出力する最適化行動情報出力部を備える、請求項2に記載の受信装置。
【請求項4】
通信エラーの状況を示す前記判定情報は、通信の誤り頻度である、請求項1から3のいずれか1項に記載の受信装置。
【請求項5】
前記装置は工作機械、ロボット、産業機械又は周辺機器であり、前記動作情報は前記工作機械の加工の種類、又はロボット、産業機械もしくは周辺機器の動作の種類に関する情報である、請求項1から4のいずれか1項に記載の受信装置。
【請求項6】
前記動作情報は加工プログラム又は動作シーケンスプログラムに基づいて求められる、請求項1から5のいずれか1項に記載の受信装置。
【請求項7】
通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、前記通信線に前記外乱を生じさせる装置の動作予定情報に基づいて前記デジタルフィルタの係数を調整する係数調整部と、前記動作予定情報に含まれる動作情報と該動作情報に対応する前記デジタルフィルタの係数又は該係数の修正情報との組み合わせを記録する情報テーブルと、前記デジタルフィルタの出力に基づいて通信エラーを検出する通信エラー検出部と、を備えた受信部に対して、前記デジタルフィルタの最適な係数を機械学習する機械学習装置の機械学習方法であって、
前記通信線に前記外乱を生じさせる装置の動作情報と、前記デジタルフィルタの係数を状態情報として取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記係数調整部に出力し、
前記通信エラー検出部から通信エラーの状況を示す判定情報を取得し、
前記判定情報に基づいて、前記通信エラーの変動に対して報酬を与え、
前記報酬の値を用いて、前記通信エラーが少なくなるように前記デジタルフィルタの最適な係数を機械学習する、機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、周囲で発生する外乱に対して適したデジタルフィルタの調整が行うことができるように機械学習を行う機械学習装置、受信装置及び機械学習方法に関する。
【背景技術】
【0002】
工場環境において、モータ又は電磁機器等の機器の発生させる外乱によって通信に対する阻害が発生する場合がある。
このような外乱を含む外乱の影響を取り除くため、通信においては受信回路でアナログフィルタ又はデジタルフィルタが用いられる。
【0003】
特許文献1には、アナログフィルタの特性をデジタルフィルタで適応的に補うと共に、その補償特性を選択、更には積極的に制御可能とするデジタル無線通信装置が記載されている。
具体的には、特許文献1には、デジタル変調波を受信復調する受信部であって、前段のアナログフィルタと、アナログフィルタの特性を補うべくタップ係数によりそのフィルタ特性を可変可能なデジタルフィルタとを備え、テスト信号発生部は受信部にテスト用信号TSを供給し、エラー状態検出部は受信部によるテスト用信号のデジタル復調信号RSに基づき所定のエラー状態ERを検出し、そして、タップ係数設定部は検出されたエラー状態に基づきこれを少なくする方向のタップ係数を順次仮設定して上記テスト処理を繰り返すと共に、最終的にエラー状態を最小とする様なタップ係数を本設定するデジタル無線通信装置が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11-122311号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
デジタルフィルタはアナログフィルタに比べて調整が比較的容易であり、周囲で発生する外乱に対して適したデジタルフィルタの調整が望まれる。
【課題を解決するための手段】
【0006】
(1) 本開示の第1の態様は、通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、
前記通信線に前記外乱を生じさせる装置の動作予定情報に基づいて前記デジタルフィルタの係数を調整する係数調整部と、
前記動作予定情報に含まれる動作情報と、該動作情報に対応する前記デジタルフィルタの係数又は該係数の修正情報との組み合わせを記録する情報テーブルと、
前記係数調整部は、前記動作予定情報に含まれる前記動作情報に基づいて前記情報テーブルから前記デジタルフィルタの係数又は該係数の修正情報を求めて、前記デジタルフィルタの係数を調整する、受信装置である。
【0007】
(2) 本開示の第2の態様は、通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、前記通信線に前記外乱を生じさせる装置の動作予定情報に基づいて前記デジタルフィルタの係数を調整する係数調整部と、前記動作予定情報に含まれる動作情報と該動作情報に対応する前記デジタルフィルタの係数又は該係数の修正情報との組み合わせを記録する情報テーブルと、前記デジタルフィルタの出力に基づいて通信エラーを検出する通信エラー検出部と、を備えた受信部に対して、前記デジタルフィルタの最適な係数を機械学習する機械学習装置であって、
前記通信線に前記外乱を生じさせる装置の動作情報と、前記デジタルフィルタの係数を状態情報として取得する状態取得部と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記係数調整部に出力する行動情報出力部と、
前記通信エラー検出部から通信エラーの状況を示す判定情報を取得する判定情報取得部と、
前記判定情報に基づいて、前記通信エラーの変動に対して報酬を与える報酬計算部と、を有し、
前記報酬の値を用いて、前記通信エラーが少なくなるように前記デジタルフィルタの最適な係数を機械学習する、機械学習装置である。
【0008】
(3) 本開示の第3の態様は、上記(1)に記載の機械学習装置と、
通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、該デジタルフィルタの係数を調整する係数調整部と、前記デジタルフィルタの出力に基づいて通信エラーを検出する通信エラー検出部と、前記機械学習装置から出力される、前記通信線に前記外乱を生じさせる装置の動作情報及び最適化された前記係数又は該係数の調整情報を示す情報テーブルと、を備えた受信部と、
を備えた受信装置である。
【0009】
(4) 本開示の第4の態様は、通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、前記通信線に前記外乱を生じさせる装置の動作予定情報に基づいて前記デジタルフィルタの係数を調整する係数調整部と、前記動作予定情報に含まれる動作情報と該動作情報に対応する前記デジタルフィルタの係数又は該係数の修正情報との組み合わせを記録する情報テーブルと、前記デジタルフィルタの出力に基づいて通信エラーを検出する通信エラー検出部と、を備えた受信部に対して、前記デジタルフィルタの最適な係数を機械学習する機械学習装置の機械学習方法であって、
前記通信線に前記外乱を生じさせる装置の動作情報と、前記デジタルフィルタの係数を状態情報として取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記係数調整部に出力し、
前記通信エラー検出部から通信エラーの状況を示す判定情報を取得し、
前記判定情報に基づいて、前記通信エラーの変動に対して報酬を与え、
前記報酬の値を用いて、前記通信エラーが少なくなるように前記デジタルフィルタの最適な係数を機械学習する、機械学習方法である。
【発明の効果】
【0010】
本開示の各態様によれば、周囲で発生する外乱に対して適したデジタルフィルタの調整が可能となる。
【図面の簡単な説明】
【0011】
図1】本開示の第1の実施形態の受信装置の機械学習後の構成を示すブロック図である。
図2】本開示の第1の実施形態の受信装置の機械学習中の構成を示すブロック図である。
図3】FIRデジタルフィルタの一構成例を示すブロック図である。
図4】工作機械となる機械の加工の種類によって、係数の異なるデジタルフィルタが設定された状態を示す説明図である。
図5】工作機械となる機械が2台並んでいる場合の加工の種類を示す図である。
図6】本開示の機械学習部200の構成を示すブロック図である。
図7】本開示の第2の構成例の機械学習部200の動作を説明するフローチャートである。
図8】受信部と機械学習装置とを含む受信装置の他の構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、本開示の実施形態について図面を用いて詳細に説明する。
【0013】
(第1の実施形態)
図1は本開示の第1の実施形態の受信装置の機械学習後の構成を示すブロック図である。図2は本開示の第1の実施形態の受信装置の機械学習中の構成を示すブロック図である。
図1及び図2に示すように、受信装置10は、受信部100と機械学習部200とを備えている。受信装置10が設けられる装置は特に限定されないが、例えば、工作機械、ロボット、産業機械等を制御する制御装置、又は制御装置と接続される周辺機器もしくはI/Oユニット等である。機械学習部200は受信部100に含まれてもよい。制御装置は数値制御装置であってもよい。
受信部100は、アナログフィルタ101、デジタルフィルタ102、データ処理部103、通信エラー検出部104、係数調整部105、及び情報テーブル106を備えている。情報テーブルには、加工種類又は動作種類と、機械学習により設定されたデジタルフィルタ102の最適な係数の修正情報との組み合わせ(エラーレートが最小となるように学習された学習済モデルとなる)が記録されている。
【0014】
なお、図1においては、通信エラー検出部104、機械学習部200は破線で示されているが、機械学習後は通信エラー検出部104、機械学習部200が機能しないことを示している。また、図1に示す破線の経路は機械学習後において情報の送受信が行われないことを示している。機械学習部200は機械学習後に受信装置10から取り外されてもよい。
図2に示す破線は機械学習中において情報の送受信は行われない経路を示している。
【0015】
以下、受信部100の各構成部について更に説明する。以下の説明では、特に説明しない限り、外乱を生じさせる装置が工作機械である場合について説明する。
【0016】
アナログフィルタ101は、産業用イーサーネット等による通信線、又はI/Oユニット間の通信線を介して信号を受信する。
デジタルフィルタ102は、アナログフィルタ101の出力を受信し、アナログフィルタ101のフィルタ特性を補う。
アナログフィルタ101及びデジタルフィルタ102は、通信線に加わる外乱を除去又は減衰する。なお、外乱の除去がデジタルフィルタ102で十分な場合は、アナログフィルタ101は設けなくともよい。
アナログフィルタ101は、フィルタ特性が使用部品で決まるために、実装後にパラメータを調整してフィルタ特性を変えることは困難である。デジタルフィルタ102はパラメータの調整により、フィルタ特性を変更することができる。
【0017】
デジタルフィルタ102としては、例えば、FIRデジタルフィルタを用いることができる。図3はFIRデジタルフィルタの一構成例を示すブロック図である。デジタルフィルタ102となるFIRデジタルフィルタは、直列に接続されたN段の遅延素子1021、(N+1)個の乗算器1022、及び直列に接続されたN段の加算器1023を備えている。FIRデジタルフィルタのタップ段数はサンプルする周期によって固定される。各遅延素子1021は入力された信号を1サンプリング分だけ遅延させ出力する。各乗算器1022は遅延素子1021からの出力される、サンプリングを行った信号に対してカットオフを行う周波数の係数の乗算を行う。第1段の乗算器1022には入力信号が入力される。各乗算器1022のタップ係数の重みを変えることでFIRフィルタの通過帯域の特性が設定される。各加算器1023は乗算結果の加算を行う。
【0018】
FIRデジタルフィルタの入力u(n)に対する出力y(n)は数式1(以下の数1)で示される。数式1のh(i)は乗算器1022のタップ係数である。
【数1】
【0019】
データ処理部103はデジタルフィルタ102から出力される出力のデータ処理を行う。
通信エラー検出部104は、機械学習中においてCRC(Cyclic Redundancy Check)を用いて、デジタルフィルタ102から出力される出力信号の誤り検出を行い、通信の誤りの頻度(エラーレート)を求め、機械学習部200に出力する。CRCは誤り検出符号の一種で、デジタル通信において、誤り(エラー)の検出に使われる。通信の誤りの頻度(エラーレート)は通信エラーの状況を示す情報となるが、通信エラーの状況を示す情報は通信の誤りの頻度以外のパラメータを用いてもよい。また、CRC以外の誤り検出符号を用いて誤りの検出を行ってもよい。
通信エラー検出部104により検出される誤りは、例えば、通信線を通して入力される信号に加えられる外乱によって生じる。外乱としては、工場環境においては、例えば、工作機械、搬送機等の産業機械又は産業用ロボットを駆動するモータ、周辺機器を駆動する電磁弁(ソレノイドバルブ)又は電磁継電器(リレー)による外乱があげられる。
【0020】
係数調整部105は、図2に示すように、機械学習中において機械学習部200から出力される、デジタルフィルタ102の係数を修正する情報に基づいてデジタルフィルタ102の係数を調整する。係数調整部105は、機械学習により得られた、通信線の周囲環境の条件となる、例えば工作機械の加工種類に対するデジタルフィルタ102の最適な係数の修正情報を機械学習部200から受け、加工種類と、デジタルフィルタ102の最適な係数の修正情報との組み合わせを情報テーブル106に記録する。なお、係数調整部105は最適な係数の修正情報に基づいて修正した係数を情報テーブル106に記録してもよい。係数調整部105は現在のデジタルフィルタ102の係数を記憶しており、係数が修正された場合に係数を更新する。
【0021】
係数調整部105は、図1に示すように、機械学習後は、入力される加工予定情報に基づいて、情報テーブル106に記録された、加工種類と機械学習により設定されたデジタルフィルタ102の最適な係数の修正情報との組み合わせを示すテーブルを参照して、デジタルフィルタ102の係数となるFIRデジタルフィルタのタップ係数h(i)(0≦i≦N-1)を調整する。加工予定情報は、工作機械の加工の予定情報であり、例えば加工プログラムにより加工が行われる場合は、どの種類の加工がどの期間に実行されるかを示す情報であり、動作予定情報に対応する。外乱を生じさせる装置がロボット、産業機械、又は周辺機器である場合には、動作予定情報はロボット、産業機械、又は周辺機器の各動作の予定情報であり、どの種類の動作がどの期間に実行されるかを示す情報である。なお、加工種類は工作機械の加工の種類、動作種類はロボット、産業機械、又は周辺機器の動作の種類を示す。加工種類及び動作種類は動作情報となる。加工種類及び動作種類は動作予定情報に含まれる。
加工予定情報は、工作機械の動作を制御する上位装置となるPLC(Programmable Logic Controller)から係数調整部105に送信される。なお、PLC以外の装置が上位装置となる構成をとってもよい。
【0022】
情報テーブル106は、加工種類と、機械学習により設定されたデジタルフィルタ102の最適な係数(例えばFIRフィルタのタップ係数)の修正情報とを関連付けたテーブルである。
表1は、通信線がI/Oユニットと工作機械とを接続し、通信線が加工種類によって工作機械M1のモータによる外乱の影響を受ける場合に、工作機械M1の加工種類(加工P1~P3)と係数の異なるデジタルフィルタF1~F3を設定するための係数修正情報との対応関係を示す。
また、表1は、当該通信線の周囲に他の工作機械M2が配置され、通信線が工作機械M1による加工P1による外乱の他に、工作機械M2の加工P4による外乱の影響を受ける場合に、工作機械M1と工作機械M2との加工P1、P4とデジタルフィルタF1を設定するための係数修正情報との対応関係を示す。表1において、フィルタの修正情報は、加工種類に対応するデジタルフィルタを設定するための係数修正情報を示す。なお、情報テーブル106に記録される情報は、係数修正情報に限定されず、修正された係数であってもよい。
【表1】
【0023】
機械学習部200は、機械、ロボット又は機器の加工又は動作を把握し、通信線に入力される信号に加えられる外乱により生ずるエラーのエラーレートを用いて、デジタルフィルタ102の係数を機械学習(以下、学習という)する。機械学習部200は機械学習装置となる。
【0024】
通信線に入力される信号に加えられる外乱に関する機械学習部200の動作の具体例について説明する。
(1)受信装置10を有する制御装置が、加工プログラムに基づいて工作機械のモータを駆動するアンプを制御するとともに、I/Oユニットから受信装置10で信号を受ける場合、アンプにより駆動されるモータによって、制御装置とI/Oユニットとを接続する通信線にモータによる外乱が加わる場合がある。
工作機械がモータを用いて駆動される場合、モータの動作とモータを制御する加工プログラムとが関連付けられる。そこで、機械学習部200は、複数の加工プログラムを取得し、複数の加工プログラムから特定される加工の種類ごとにエラーレートを用いて、デジタルフィルタ102の係数を学習する。受信装置10がI/Oユニットに設けられた場合でも同様に、機械学習部200は、制御装置から加工プログラムを取得し、加工プログラムから特定される加工の種類ごとにエラーレートを用いて、デジタルフィルタ102の係数を学習することができる。
【0025】
図4は、工作機械となる機械の加工の種類によって、係数の異なるデジタルフィルタが設定された状態を示す説明図である。
受信装置10を有する制御装置によって駆動される、工作機械M1(図4では機械M1として示されている)のモータが、複数の加工プログラムにより駆動され、機械M1が加工P1、加工P2、加工P3、加工P1の処理をこの順で行う。加工P1、加工P2、加工P3はそれぞれ加工処理が異なるため、モータによって生ずる外乱が異なる。機械学習部200は、加工プログラムから特定される加工の種類ごと(加工P1、加工P2及び加工P3のそれぞれ)にデジタルフィルタ102の係数を調整して、係数の異なるフィルタF1、F2、F3を構成する。この対応関係は表1に示した対応関係と同じであり、機械学習部200は学習により求められた加工種類に対するデジタルフィルタ102の最適な係数の修正情報を送り、係数調整部105は加工種類とデジタルフィルタ102の最適な係数の修正情報との組み合わせを情報テーブル106に記録する。表1に加工P1~P3とフィルタの係数の修正情報に関する表が示される。
【0026】
(2)受信装置10を有する、工作機械の制御装置が、I/Oユニットから受信装置10で信号を受ける場合に、制御装置とI/Oユニットとを接続する通信線にその通信線近傍に置かれている他の工作機械のモータが動作したときに、上記(1)で説明した外乱の他に、他の工作機械のモータによる外乱が当該通信線に加わる場合がある。
図5は、工作機械となる機械が2台並んでいる場合の加工の種類を示す図である。
受信装置10を有する制御装置によって駆動される、工作機械M1(図5では機械M1として示されている)のモータが、複数の加工プログラムにより駆動され、工作機械M1が加工P1、加工P2、加工P3、加工P1の処理をこの順で行う。加工P1、加工P2、加工P3はそれぞれ加工処理が異なるため、モータによって生ずる外乱が異なる。また、工作機械M2(図5では機械M2として示されている)のモータが、複数の加工プログラムにより駆動され、工作機械M2が加工P4、加工P5、加工P6の処理をこの順で行う。加工P4、加工P5、加工P6はそれぞれ加工処理が異なるため、モータによって生ずる外乱が異なる。
この場合、例えば、加工P1、加工P3は工作機械M2のモータが駆動しない期間(例えば、図5の期間T1は工作機械M2のモータが駆動しない期間)を含み、この期間では上記(1)で説明したフィルタF1、F3にフィルタの係数が設定されればよい。
【0027】
しかし、例えば、期間T2においては工作機械M1による加工P1と工作機械M2による加工P4とが同時に行われる。そのため、通信線は工作機械M1におけるモータ駆動による外乱と工作機械M2におけるモータ駆動による外乱とを同時に受ける場合がある。
この場合、機械学習部200は、加工P1における工作機械M2のモータが駆動しない期間T1に学習を行い、また加工P1と加工P4が同時に行われる、工作機械M1及びM2の各モータが駆動する期間T2に学習を行う。機械学習部200は学習されたデジタルフィルタ102の係数が同一か係数の変更量が少ない場合には、加工P4による外乱がないか、外乱による影響が小さいと判断して、期間T2において、デジタルフィルタ102の係数を変更せず、デジタルフィルタ102をフィルタ1に設定するようにすることができる。表1に加工P1及び加工P4とフィルタ1の係数の修正情報とに関する表が示される。
なお、工作機械M2に置き替えて、電磁弁(ソレノイドバルブ)又は電磁継電器(リレー)を有する周辺機器を配置した場合、電磁弁又は電磁継電器による外乱の影響は大きいことが想定され、その場合には、期間T2において学習を周辺機器について行い、デジタルフィルタ102の係数を設定する。
【0028】
また、デジタルフィルタ102を直列に接続される2段のデジタルフィルタで構成してもよい。その場合、機械学習部200は、加工P1における工作機械M2のモータが駆動しない期間T1に学習を行い、フィルタF1に第1段のデジタルフィルタを設定する。また、機械学習部200は、加工P4における工作機械M2のモータが駆動しない期間T3に学習を行い、フィルタF4に第2段のデジタルフィルタを設定する。こうして、デジタルフィルタ102をフィルタF1とフィルタF4の2段で構成することで、期間T2に機械学習を行わなくとも、デジタルフィルタ102の最適な係数に設定することができる。
【0029】
以上の説明は、通信線の近傍に他の工作機械が配置された例について取り上げたが、通信線の近傍に電磁弁(ソレノイドバルブ)、又は電磁継電器(リレー)を有する周辺機器が配置され、通信線に電磁弁、又は電磁継電器による外乱が加わる場合にも適用される。 通信線の近傍に、モータで駆動される搬送機等の産業機械、又はモータで駆動される産業用ロボットが配置される場合もある。
【0030】
機械学習部200は、機械、ロボット、機器の動作を示す情報、例えば、工作機械を駆動する加工プログラム、産業機械又は産業用ロボットを駆動する動作シーケンスプログラム、又は、周辺機器を駆動する動作シーケンスプログラムを用いて、加工又は動作の種類を把握し、デジタルフィルタ102の係数を学習する。
なお、工作機械、産業機械、産業用ロボット、又は周辺機器の複数が信号線近傍に配置され、例えば、上記(2)で説明したように、1つの工作機械M1において、加工又は動作が行われているときに(例えば期間T1+期間T2の期間)、加工又は動作の途中で他の工作機械M2の加工又は動作が行われ(例えば、期間T2)、新たな外乱が信号線に加わる場合がある。この場合には、加工又は動作の重複期間で学習を行うために、工作機械M2における加工又は動作が開始する時刻に関する情報が必要となる場合がある。この場合は、機械学習部200は、工作機械、産業機械、産業用ロボット、又は周辺機器を制御する制御装置から、加工又は動作が開始する時刻に関する情報を取得することができる。また機械学習部200は、工作機械、産業機械、産業用ロボット、又は周辺機器の複数の動作を制御する上位装置となるPLC(Programmable Logic Controller)から、加工又は動作の種類、加工又は動作が開始する時刻のいずれか又は両方に関する情報を取得することもできる。
【0031】
<機械学習部200>
機械学習により、エラーレートに基づいてFIRフィルタのフィルタ特性を調整する方法については特許文献1に記載されており、本実施形態において、機械学習部200として同様な方法を採用することができる。
なお、以下の説明では機械学習部200が強化学習を行う場合について説明するが、機械学習部200が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。強化学習の詳細については、例えば、特開2018-152012号公報、特開2019-021024号公報等に記載されているので、以下の説明では、本実施形態に適用される機械学習部200について簡単に説明する。
【0032】
機械学習部200に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント(本実施形態における機械学習部200に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
【0033】
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、干渉を受ける軸に関するサーボ制御部において、軸間干渉を補正するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
【0034】
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Sの下で、行動Aを選択する価値Q(S,A)を学習する方法であるQ学習(Q-learning)を用いる場合を例にとって説明をする。
Q学習では、或る状態Sのとき、取り得る行動Aのなかから、価値Q(S,A)の最も高い行動Aを最適な行動として選択することを目的とする。
【0035】
しかしながら、Q学習を最初に開始する時点では、状態Sと行動Aとの組合せについて、価値Q(S,A)の正しい値は全く分かっていない。そこで、エージェントは、或る状態Sの下で様々な行動Aを選択し、その時の行動Aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Q(S,A)を学習していく。
【0036】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(S,A)=E[Σ(γ)r]となるようにすることを目指す。ここでE[]は期待値を表し、tは時刻、γは後述する割引率と呼ばれるパラメータ、rは時刻tにおける報酬、Σは時刻tによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしQ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Q(S,A)の更新式は、例えば、次の数式2(以下に数2として示す)により表すことができる。
【0037】
【数2】
【0038】
上記の数式4において、Sは、時刻tにおける環境の状態を表し、Aは、時刻tにおける行動を表す。行動Aにより、状態はSt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態St+1の下で、その時に分かっている最もQ値の高い行動Aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
【0039】
上述した数式3は、試行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のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく仕組みになっている。
以上説明をしたQ学習を機械学習部200が行う。
【0040】
図6は本開示の機械学習部200の構成を示すブロック図である。図7は本開示の機械学習部200の動作を説明するフローチャートである。
強化学習を行うために、図6に示すように、機械学習部200は、状態取得部201、学習部202、判定情報取得部203、行動情報出力部204、最適化行動情報出力部205及び価値関数記憶部206を備える。
以下、図6及び図7を用いて、機械学習部200の動作について説明する。以下の説明では、機械学習部200が上述した(1)における動作を実行する例について説明する。
図6に示すように、ステップS21において、状態取得部201は最初の状態Sの状態情報として、工作機械M1の制御装置から加工の種類(加工プログラムの種類に対応する)、例えば加工P1を取得し、係数調整部105からデジタルフィルタ102の係数となる、FIRフィルタのタップ係数h(i)(0≦i≦N-1)を取得する。また、判定情報取得部203は、受信装置10の通信エラー検出部104から判定情報としてエラーレートを取得する。
ステップS22において、学習部202の行動情報生成部2022は、デジタルフィルタ102となるFIRフィルタのフィルタ特性を微小変動(微小増加又は微小減少)させるようにタップ係数h(i)を修正する情報を生成し、行動情報出力部204はタップ係数h(i)を修正する情報を行動情報として係数調整部105に送る。なお、行動情報を受信した係数調整部105は、受信した行動情報に基づいて現在の状態Sに係るFIRフィルタのタップ係数h(i)(0≦i≦N-1)を修正する。タップ係数h(i)(0≦i≦N-1)が修正された状態S’により、工作機械M1は加工P1を行う。
ステップS23において、状態取得部201は、新たな状態S’における、加工の種類となる加工P1を取得し、係数調整部105からデジタルフィルタ102の係数となる、FIRフィルタのタップ係数h(i)(0≦i≦N-1)を取得する。また、判定情報取得部203は、受信装置10の通信エラー検出部104から判定情報として新たな状態S’における、エラーレートを取得する。
【0041】
ステップS24において、報酬計算部2021は、状態S’におけるエラーレートと状態Sにおけるエラーレートとを比較してエラーレートの変動を判断し、状態S’におけるエラーレートが状態Sにおけるエラーレートよりも増加したときは、ステップS25において、報酬を負の値とする。
一方、状態S’におけるエラーレートが状態Sにおけるエラーレートよりも減少したときは、ステップS26において、報酬を正の値とする。状態S’におけるエラーレートが状態Sにおけるエラーレートと同じときは、ステップS27において、報酬をゼロとする。なお、報酬の負の値、正の値について重みづけを行うようにしてもよい。
【0042】
ステップS25、ステップS26及びステップS27の何れかが終了すると、ステップS28において、この何れかのステップにて算出された報酬の値に基づいて、価値関数更新部2023が、価値関数記憶部206に記憶している価値関数Qを更新する。そして、再度ステップS22に戻り、上述した処理を繰り返すことにより、価値関数Qは適切な値に収束していく。
【0043】
最適化行動情報出力部205は、価値関数記憶部206に記憶している価値関数Qを取得する。価値関数Qは、上述したように価値関数更新部2023がQ学習を行うことにより更新したものである。最適化行動情報出力部205は、この価値関数Qに基づいて、最適化行動情報を生成し、生成した最適化行動情報(タップ係数h(i)(0≦i≦N-1)の修正情報)と加工の種類となる加工P1を示す情報とを受信部100の係数調整部105に対して出力する。
なお、最適化行動情報を受信した係数調整部105は、受信した最適化行動情報と加工の種類となる加工P1を示す情報とに基づいてFIRフィルタのタップ係数h(i)(0≦i≦N-1)の修正情報を加工P1と対応づけて情報テーブル106に記憶する。
以上の学習を加工P2、P3について行うことで表1の加工P1~P3とフィルタの係数の修正情報に関する表が作成できる。
【0044】
以上説明した機械学習部200の動作においては、工作機械を例に取り上げて、状態情報として、工作機械の加工プログラムの種類に対応する加工の種類を取り上げた。しかし、工作機械の替わりにロボット、産業機械等を用いる場合は、状態情報としてシーケンスプログラムの種類を用いることができる。
【0045】
以上、受信装置10の受信部100、及び機械学習部200に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、受信装置10は、CPU(Central Processing Unit)等の演算処理装置を備える。また、受信装置10は、アプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
【0046】
そして、受信装置10において、演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【0047】
機械学習部200については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【0048】
上記の受信装置10に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のモータ制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0049】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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(random access memory))を含む。
【0050】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【0051】
受信装置の構成は図1の構成以外にも以下の構成がある。
<機械学習部が受信装置の外部に設けられた変形例>
本変形例では、機械学習部は受信装置と独立して設けられるため、機械学習装置と呼ぶ。
図8は受信部と機械学習装置とを含む受信装置の他の構成例を示すブロック図である。図8に示す受信装置10Aは、n(nは2以上の自然数)個の受信部100-1~100-nと、n個の機械学習装置200-1~200-nと、受信部100-1~100-nとn個の機械学習装置200-1~200-nとを接続するネットワーク300とを備えている。n(nは2以上の自然数)個の受信部100-1~100-nは工作機械、ロボット、産業機械等を制御する制御装置、又は制御装置と接続される周辺機器もしくはI/Oユニット等に含まれる。
受信部100-1~100-nは受信部100と同じ構成を有し、機械学習装置200-1~200-nは図6に示した機械学習部200と同じ構成を有している。
【0052】
ここで、受信部100-1と、機械学習装置200-1とは1対1の組とされて、通信可能に接続されている。受信部100-2~100-nと、機械学習装置200-2~200-nについても受信部100-1と機械学習装置200-1と同様に接続される。図8では、受信部100-1~100-nと、機械学習装置200-1~200-nとのn個の組は、ネットワーク300を介して接続されているが、受信部100-1~100-nと、機械学習装置200-1~200-nとのn個の組は、それぞれの組の受信部と機械学習装置とが接続インタフェースを介して直接接続されてもよい。これら受信部100-1~100-nと機械学習装置200-1~200-nとのn個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
【0053】
なお、ネットワーク300は、例えば、工場内に構築されたLAN(Local Area Network)や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク300における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【0054】
<システム構成の自由度>
上述した実施形態では、受信部100-1~100-nと、機械学習装置200-1~200-nとはそれぞれ1対1の組とされて通信可能に接続されているが、例えば1台の機械学習装置が複数の受信部とネットワーク300を介して通信可能に接続され、各受信部のデジタルフィルタの機械学習を実施するようにしてもよい。
その際、1台の機械学習装置の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、1台の機械学習装置の各機能を実現してもよい。
【0055】
本開示による機械学習装置、制御システム及び機械学習方法、上述した実施形態を含め、次のような構成を有する各種各様の実施形態を取ることができる。
(1)本開示の第1の態様は、通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、
前記通信線に前記外乱を生じさせる装置の動作予定情報に基づいて前記デジタルフィルタの係数を調整する係数調整部と、
前記動作予定情報に含まれる動作情報と、該動作情報に対応する前記デジタルフィルタの係数又は該係数の修正情報との組み合わせを記録する情報テーブルと、
前記係数調整部は、前記動作予定情報に含まれる前記動作情報に基づいて前記情報テーブルから前記デジタルフィルタの係数又は該係数の修正情報を求めて、前記デジタルフィルタの係数を調整する、受信装置である。
本開示の受信装置によれば、外乱を生じさせる装置の動作予定情報に基づいて、周囲で発生する外乱に対して適したデジタルフィルタの調整が可能となる。
【0056】
(2) 前記装置は工作機械、ロボット、産業機械又は周辺機器であり、前記動作情報は前記工作機械の加工の種類、又はロボット、産業機械もしくは周辺機器の動作の種類に関する情報である、上記(1)に記載の受信装置。
【0057】
(3) 前記動作情報は加工プログラム又は動作シーケンスプログラムに基づいて求められる上記(2)に記載の受信装置。
【0058】
(4) 本開示の第2の態様は、通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、前記通信線に前記外乱を生じさせる装置の動作予定情報に基づいて前記デジタルフィルタの係数を調整する係数調整部と、前記動作予定情報に含まれる動作情報と該動作情報に対応する前記デジタルフィルタの係数又は該係数の修正情報との組み合わせを記録する情報テーブルと、前記デジタルフィルタの出力に基づいて通信エラーを検出する通信エラー検出部と、を備えた受信部に対して、前記デジタルフィルタの最適な係数を機械学習する機械学習装置であって、
前記通信線に前記外乱を生じさせる装置の動作情報と、前記デジタルフィルタの係数を状態情報として取得する状態取得部と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記係数調整部に出力する行動情報出力部と、
前記通信エラー検出部から通信エラーの状況を示す判定情報を取得する判定情報取得部と、
前記判定情報に基づいて、前記通信エラーの変動に対して報酬を与える報酬計算部と、を有し、
前記報酬の値を用いて、前記通信エラーが少なくなるように前記デジタルフィルタの最適な係数を機械学習する、機械学習装置である。
本開示の機械学習装置によれば、外乱を生じさせる装置の動作情報に基づいて、周囲で発生する外乱に対して適したデジタルフィルタの係数を学習することができる。
【0059】
(5) 前記報酬の値と、前記状態情報とに基づいて価値関数を更新する価値関数更新部を備える、上記(4)に記載の機械学習装置。
【0060】
(6) 前記価値関数更新部により更新された価値関数に基づいて、前記係数調整部に前記係数の調整情報を出力する最適化行動情報出力部を備えた上記(5)に記載の機械学習装置。
【0061】
(7) 通信エラーの状況を示す前記判定情報は、通信の誤り頻度である、上記(4)から(6)のいずれかに記載の機械学習装置。
【0062】
(8) 前記装置は工作機械、ロボット、産業機械又は周辺機器であり、前記動作情報は前記工作機械の加工の種類、又はロボット、産業機械もしくは周辺機器の動作の種類に関する情報である、上記(4)から(7)のいずれかに記載の機械学習装置。
【0063】
(9) 前記動作情報は加工プログラム又は動作シーケンスプログラムに基づいて求められる上記(4)から(8)のいずれかに記載の機械学習装置。
【0064】
(10) 本開示の第3の態様は、上記(4)から(9)のいずれかに記載の機械学習装置と、
通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、該デジタルフィルタの係数を調整する係数調整部と、前記デジタルフィルタの出力に基づいて通信エラーを検出する通信エラー検出部と、前記機械学習装置から出力される、前記通信線に前記外乱を生じさせる装置の動作情報及び最適化された前記係数又は該係数の調整情報を示す情報テーブルと、を備えた受信部と、
を備えた受信装置である。
本開示の受信装置によれば、外乱を生じさせる装置の動作情報に基づいて、周囲で発生する外乱に対して適したデジタルフィルタの調整が可能となる。
【0065】
(11)本開示の第4の態様は、通信線を介して受信する信号に含まれる外乱を除去又は減衰させるデジタルフィルタと、前記通信線に前記外乱を生じさせる装置の動作予定情報に基づいて前記デジタルフィルタの係数を調整する係数調整部と、前記動作予定情報に含まれる動作情報と該動作情報に対応する前記デジタルフィルタの係数又は該係数の修正情報との組み合わせを記録する情報テーブルと、前記デジタルフィルタの出力に基づいて通信エラーを検出する通信エラー検出部と、を備えた受信部に対して、前記デジタルフィルタの最適な係数を機械学習する機械学習装置の機械学習方法であって、
前記通信線に前記外乱を生じさせる装置の動作情報と、前記デジタルフィルタの係数を状態情報として取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記係数調整部に出力し、
前記通信エラー検出部から通信エラーの状況を示す判定情報を取得し、
前記判定情報に基づいて、前記通信エラーの変動に対して報酬を与え、
前記報酬の値を用いて、前記通信エラーが少なくなるように前記デジタルフィルタの最適な係数を機械学習する、機械学習方法である。
本開示の機械学習装置によれば、外乱を生じさせる装置の動作情報に基づいて、周囲で発生する外乱に対して適したデジタルフィルタの係数を学習することができる。
【符号の説明】
【0066】
10、10A 受信装置
100 受信部
200 機械学習部
101 アナログフィルタ
102 デジタルフィルタ
103 データ処理部
104 通信エラー検出部
105 係数調整部
201 状態取得部
202 学習部
203 判定情報取得部
204 行動情報出力部
205 最適化行動情報出力部
206 価値関数記憶部
200-1~200-n 機械学習装置
300 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8