JP6958461B2 - 制御装置、制御方法、及び制御プログラム - Google Patents

制御装置、制御方法、及び制御プログラム Download PDF

Info

Publication number
JP6958461B2
JP6958461B2 JP2018069320A JP2018069320A JP6958461B2 JP 6958461 B2 JP6958461 B2 JP 6958461B2 JP 2018069320 A JP2018069320 A JP 2018069320A JP 2018069320 A JP2018069320 A JP 2018069320A JP 6958461 B2 JP6958461 B2 JP 6958461B2
Authority
JP
Japan
Prior art keywords
prediction model
command value
arithmetic processing
production
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018069320A
Other languages
English (en)
Other versions
JP2019179469A (ja
Inventor
泰明 阿部
和彦 今竹
勇樹 上山
高史 藤井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2018069320A priority Critical patent/JP6958461B2/ja
Publication of JP2019179469A publication Critical patent/JP2019179469A/ja
Application granted granted Critical
Publication of JP6958461B2 publication Critical patent/JP6958461B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Feedback Control In General (AREA)
  • Programmable Controllers (AREA)

Description

本発明は、制御装置、制御方法、及び制御プログラムに関する。
近年、様々な装置において、未来の状態を予測し、予測した未来の状態に適した動作の制御を行うための予測制御の技術が開発されている。例えば、特許文献1では、車両の動作を制御する制御装置であって、投機的実行により車両の走行を制御する第1の演算部と、投機的実行では予測不能な事態が生じても安全性を確保可能に車両の動作を制御する第2の演算部と、を備える制御装置が提案されている。具体的に、第1の演算部は、将来の入力値を予測して、最適な走行を行うように車両の動作を制御する。一方、第2の演算部は、目標速度に等しい速度で走行し、自車と歩行者との間の距離が一定値以下になった際に急ブレーキをかけるように車両の動作を制御する。この制御装置は、第1の演算部による制御が一定の安全基準を満たす場合には、第1の演算部の演算結果を利用して車両の動作を制御し、第1の演算部による制御が一定の安全基準を満たさない場合には、第2の演算部の演算結果を利用して車両の動作を制御する。これにより、特許文献1によれば、一定の安全性を確保しつつ、最適な走行を行うように車両の動作を制御することができる。
特開2016−192010号公報
本件発明者らは、比較的に短いサイクルでワークから製品を生産する生産装置の動作を予測制御するケースでは、次のような問題が生じ得ることを見出した。すなわち、このような生産装置では、ワークを処理するタイミングが比較的に短いサイクルで訪れる。そのため、予測制御の演算処理が複雑である、演算資源(例えば、プロセッサ等)が他の処理に優先的に割り当てられている等に起因して、予測制御の演算処理が遅延してしまうと、当該予測制御の演算処理が、ワークを処理するタイミングまでに完了しない可能性がある。予測制御の演算処理が、ワークを処理するタイミングまでに完了しなければ、生産装置の予測制御を適切に遂行することができなくなってしまうという問題点が生じることを本件発明者らは見出した。
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、生産装置の予測制御の演算時間を適切に管理する技術を提供することである。
本発明は、上述した課題を解決するために、以下の構成を採用する。
すなわち、本発明の一側面に係る制御装置は、ハードウェアプロセッサと、前記ハードウェアプロセッサにより実行されるプログラムを保持するメモリと、を備える制御装置であって、前記ハードウェアプロセッサは、前記プログラムに含まれる一連の命令に基づいて、ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、を実行する。
当該構成に係る制御装置は、予測モデルを利用して生産装置への指令値を予測する際に、残処理時間を算出するステップ、及び残処理時間に基づいて、予測モデルによる指令値の決定が制御タイミングに間に合うか否かを判定するステップを実行する。これにより、当該構成に係る制御装置は、予測モデルを利用した指令値の予測に関する演算処理が、その予測した指令値を利用して生産装置の動作を制御するタイミングに間に合うか否かを特定することができる。したがって、当該構成によれば、生産装置の予測制御の演算時間を適切に管理することができるようになる。
加えて、当該構成に係る制御装置は、予測モデルによる指令値の決定が制御タイミングに間に合うと判定した場合には、そのまま予測制御を適切に実行することができる。一方、当該構成に係る制御装置は、予測モデルによる指令値の決定が制御タイミング間に合わないと判定した場合には、その予測制御を停止する、その他の方法で指令値を決定する等のように、予測制御以外の方法で生産装置の動作を適切に制御することができる。したがって、当該構成によれば、予測モデルによる指令値の決定が制御タイミングに間に合わないことにより、生産装置の動作を制御する処理が滞ってしまうことを防止することができる。
なお、「生産装置」は、何らかの生産処理を行い、制御の対象となり得る装置であれば特に限定されなくてもよく、例えば、プレス機、射出成形機、NC旋盤、放電加工機、包装機、搬送機、検査機内の搬送機構等であってよい。「ワーク」は、生産装置の作業対象となり得る物であれば特に限定されなくてもよく、例えば、製品の原料、加工前の物、組み立て前の部品等であってよい。「製品」は、ワークに対して生産装置が生産処理を行うことで得られる物であり、最終品の他、中間品(加工途中のもの)を含んでもよい。「予測モデル」は、予測処理を実行する時点よりも先の時点(将来の時点)における生産装置への指令値を予測可能なモデルであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。「予測モデル」には、例えば、決定木、ニューラルネットワーク、サポートベクタマン等の学習モデルが用いられてもよい。
上記一側面に係る制御装置において、前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記ハードウェアプロセッサは、前記予測モデルの演算処理を加速するステップを更に実行してもよい。当該構成によれば、予測モデルの演算処理を加速することで、指令値の決定が制御タイミングに間に合うようにすることができる。これによって、予測制御を打ち切る可能性を低減し、予測制御を適切に実施することができるようになる。なお、演算処理の加速は、当該演算処理に対するハードウェア資源の割り当てを優先することで実現可能である。
上記一側面に係る制御装置において、前記ハードウェアプロセッサは、1又は複数のコアで構成されてよく、前記予測モデルの演算処理には、少なくとも1つのコアが割り当てられてよく、前記ハードウェアプロセッサは、前記予測モデルの演算処理に対して、割り当てられた前記コアの利用率を高めることで、前記予測モデルの演算処理を加速してもよい。当該構成によれば、予測モデルの演算処理を適切に加速することができ、これによって、予測制御を適切に実施することができるようになる。
上記一側面に係る制御装置において、前記ハードウェアプロセッサは、1又は複数のコアで構成されてよく、前記予測モデルの演算処理には、少なくとも1つのコアが割り当てられてよく、前記ハードウェアプロセッサは、割り当てられた前記コアにおいて、前記予測モデルの演算処理の優先度を高めることによって、前記予測モデルの演算処理を加速してもよい。当該構成によれば、予測モデルの演算処理を適切に加速することができ、これによって、予測制御を適切に実施することができるようになる。
上記一側面に係る制御装置において、前記ハードウェアプロセッサは、複数のコアで構成されてよく、前記予測モデルの演算処理には、前記複数のコアのうちの第1のコアが割り当てられてよく、前記ハードウェアプロセッサは、前記複数のコアのうちの第2のコアであって、前記予測モデルの演算処理に割り当てられていなかった第2のコアを、前記予測モデルの演算処理に更に割り当てることによって、前記予測モデルの演算処理を加速してもよい。当該構成によれば、予測モデルの演算処理を適切に加速することができ、これによって、予測制御を適切に実施することができるようになる。なお、第1のコア及び第2のコアはそれぞれ、1つであってもよいし、複数であってもよい。
上記一側面に係る制御装置において、前記ハードウェアプロセッサは、複数のコアで構成されてよく、前記予測モデルの演算処理には、前記複数のコアのうちの第3のコアが割り当てられてよく、前記複数のコアは、前記予測モデルの演算処理に割り当てられていない第4のコアであって、前記第3のコアにおいて前記演算処理に割り振られている利用率よりも大きな空き容量を有する第4のコアを含んでいてもよく、前記ハードウェアプロセッサは、前記予測モデルの演算処理に対する割り当てを前記第3のコアから前記第4のコアに置き換えて、前記第3のコアにおいて前記演算処理に割り振られていた利用率よりも大きな利用率を前記第4のコアにおいて前記演算処理に割り振ることで、前記予測モデルの演算処理を加速してもよい。当該構成によれば、予測モデルの演算処理を適切に加速することができ、これによって、予測制御を適切に実施することができるようになる。なお、第3のコア及び第4のコアはそれぞれ、1つであってもよいし、複数であってもよい。
上記一側面に係る制御装置において、前記予測モデルの演算処理を加速するステップを実行した後に、前記ハードウェアプロセッサは、前記残処理時間を算出するステップ、及び前記指令値の決定が前記制御タイミングに間に合うか否かを判定するステップを再度実行してもよい。当該構成によれば、予測モデルの演算処理を加速した結果、当該予測モデルによる指令値の決定が制御タイミングに間に合うか否かを特定することができる。これにより、生産装置の予測制御の演算時間を適切に管理することができる。
上記一側面に係る制御装置において、前記ハードウェアプロセッサは、前記予測モデルの演算処理の加速が可能か否かを判定してもよく、前記予測モデルの演算処理の加速が可能ではないと判定した場合、前記予測モデルの演算処理を中止し、予め与えられた設定値を指令値に指定し、指定した前記指令値に基づいて、前記生産装置の動作を制御してもよい。当該構成によれば、予測モデルの演算処理を加速する余地がなく、かつ予測モデルによる指令値の決定が制御タイミングに間に合わないと判定される場合に、予測制御以外の方法で生産装置の動作を制御するようにすることができる。
なお、予測モデルの演算処理の加速が可能か否かを判定する条件は、実施の形態に応じて適宜設定されてよい。予測モデルの演算処理の加速が可能ではないケースは、例えば、当該演算処理に優先的にハードウェア資源を割り当てる余地がないケースである。また、予め与えられた設定値とは、例えば、指令値の基準値、過去の指令値(繰り返し動作を制御している場合には、例えば、前回値)である。過去の指令値は、例えば、制御状況が同一の前回値であってよい。
上記一側面に係る制御装置において、前記予測モデルは、前記製品の生産に適応した前記指令値の予測の結果として、前記指令値の基準値に対する補正値を出力するように構成されてよい。当該構成によれば、予測モデルから得られる補正値を利用して、生産装置への指令値を適切に決定することができる。
上記一側面に係る制御装置において、前記予測モデルは、前記ワークの特徴量及び前記製品を生産する環境の属性値の少なくとも一方の入力に対して、前記製品の生産に適応した前記指令値を予測するように構築されてよい。当該構成によれば、生産装置による製品の生産工程に影響を与え得る要因を考慮して、生産装置への指令値を決定することができるようになる。
なお、「ワークの特徴量」は、ワークの何らかの特徴を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ワークの特徴量は、例えば、硬さ、寸法、材質、重さ、熱等である。また、ワークの特徴量は、ワークの特徴を直接的に示すものであってもよいし、ワークの特徴を間接的に示すものであってもよい。ワークの特徴を直接的に示すとは、例えば、ワークの硬さ(硬度)そのものを数値、クラス等で表現することである。一方、ワークの特徴を間接的に示すとは、例えば、ワークの硬さ(硬度)を測定する際に得られた2次的指標(例えば、ワークにかかる荷重、測定の際に作用させたトルク等)を数値、クラス等で表現することである。
また、「製品を生産する環境の属性値」は、生産装置が稼動する環境に関する何らかの属性を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。製品を生産する環境の属性値は、例えば、生産装置の周囲の温度、湿度、装置の劣化度合い(例えば、経年数、加工回数等)、振動等であってよい。
なお、上記各形態に係る制御装置の別の態様として、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
例えば、本発明の一側面に係る制御方法は、コンピュータが、ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、を実行する、情報処理方法である。
また、例えば、本発明の一側面に係る制御プログラムは、コンピュータに、ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、を実行させるための、プログラムである。
本発明によれば、生産装置の予測制御の演算時間を適切に管理することができる。
図1は、本発明が適用される場面の一例を模式的に例示する。 図2は、実施の形態に係る制御装置のハードウェア構成の一例を模式的に例示する。 図3は、実施の形態に係る生産装置の一例を模式的に例示する。 図4Aは、図3の生産装置における生産工程の一例を模式的に例示する。 図4Bは、図3の生産装置における生産工程の一例を模式的に例示する。 図4Cは、図3の生産装置における生産工程の一例を模式的に例示する。 図4Dは、図3の生産装置における生産工程の一例を模式的に例示する。 図5は、実施の形態に係る学習装置のハードウェア構成の一例を模式的に例示する。 図6は、実施の形態に係る制御装置のソフトウェア構成の一例を模式的に例示する。 図7Aは、実施の形態に係る予測モデルの一例を模式的に例示する。 図7Bは、予測モデルに対する入力と出力との関係を模式的に例示する。 図8は、実施の形態に係る学習装置のソフトウェア構成の一例を模式的に例示する。 図9は、実施の形態に係る制御装置の処理手順の一例を例示する。 図10は、割当情報の一例を模式的に例示する。 図11は、コアのスケジューリングを説明するための図である。 図12Aは、加速処理の一例を模式的に例示する。 図12Bは、加速処理の一例を模式的に例示する。 図12Cは、加速処理の一例を模式的に例示する。 図12Dは、加速処理の一例を模式的に例示する。 図13は、実施の形態に係る学習装置の処理手順の一例を例示する。
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本実施形態に係る制御装置1及び学習装置2の利用場面の一例を模式的に例示する。
図1に示されるとおり、本実施形態に係る制御装置1は、生産装置3の動作を制御するように構成された情報処理装置である。図1の例では、生産装置3は、ワークを加工するプレス機である。このプレス機は、本発明の「生産装置」の一例である。ただし、制御装置1を適用可能な生産装置は、このようなプレス機に限られなくてもよく、実施の形態に応じて適宜選択されてよい。生産装置3は、例えば、プレス機の他、射出成形機、NC旋盤、放電加工機、包装機、搬送機、検査機内の搬送機構等であってよい。
具体的に、本実施形態に係る制御装置1は、まず、ワークから製品を生産する生産装置3への指令値であって、当該生産装置3による製品の生産に適応した指令値を予測するように構築された予測モデル(後述する予測モデル5)の演算処理を開始する。予測モデルの演算処理を開始した後、制御装置1は、予測モデルの演算処理が完了するまでの残処理時間を算出する。制御装置1は、例えば、演算処理の進捗状態を確認することで、当該演算処理の残処理量を算出し、算出した残処理量に基づいて残処理時間を算出する。この残処理時間は、制御装置1における演算資源の状況によって変化し得る。次に、制御装置1は、算出した残処理時間に基づいて、予測モデルから得られる出力に基づく指令値の決定が、生産装置3による生産の動作を制御する制御タイミングに間に合うか否かを判定する。
これにより、制御装置1は、予測モデルを利用した指令値の予測に関する演算処理が、その予測した指令値を利用して生産装置3の動作を制御するタイミングに間に合うか否かを特定することができる。指令値の決定が制御タイミングに間に合うと判定した場合には、制御装置1は、予測モデルの演算処理を完了するまで継続することで、予測モデルから出力を取得し、予測モデルから取得した出力に基づいて、生産装置3への指令値を決定する。そして、制御装置1は、決定した指令値に基づいて、生産装置3の動作を制御する。一方、指令値の決定が制御タイミングに間に合わないと判定した場合には、制御装置1は、予測モデルの演算処理を加速して、予測モデルによる指令値の決定が制御タイミングに間に合うようにしたり、予測モデルの演算処理を中止し、予測制御以外の方法で生産装置3の動作を制御したりすることができる。
これに対して、本実施形態に係る学習装置2は、制御装置1で利用する予測モデルを構築するように構成された情報処理装置である。本実施形態では、予測モデルは、学習モデル(後述する決定木)により構成される。そのため、学習装置2は、機械学習に利用する学習データ(後述する学習用データセット221)を取得し、取得した学習データを利用した機械学習を行うことで、生産装置3による製品の生産に適応した指令値を予測する能力を獲得した予測モデルを構築する。制御装置1は、例えば、ネットワークを介して、学習装置2により作成された学習済みの予測モデルを取得することができる。なお、ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
以上のとおり、本実施形態では、予測モデルを利用して生産装置3への指令値を予測する際に、残処理時間を算出するステップ、及び残処理時間に基づいて、予測モデルによる指令値の決定が制御タイミングに間に合うか否かを判定するステップを実行する。これにより、予測モデルを利用した指令値の予測に関する演算処理が、その予測した指令値を利用して生産装置3の動作を制御するタイミングに間に合うか否かを特定することができる。したがって、本実施形態によれば、生産装置3の予測制御の演算時間を適切に管理することができる。
特に、制御装置1では、上記予測モデルの演算処理以外の他のタスクを含む複数のタスクが処理され得る。この場合には、例えば、割込みのタスクが発生する等により、制御装置1における演算資源が同一の条件で利用できるとは限らない。すなわち、制御装置1における演算資源の状況は時々刻々と変化していき、それに伴って、予測モデルの演算処理に用いることができる演算資源も変化し得る。したがって、予測モデルの演算処理にかかる処理時間は常に一定であるとは限らない。そのため、シミュレーション等により予め特定した処理時間に基づいて、制御タイミングに間に合うように処理可能と判定された予測モデルを制御装置1に搭載したとしても、予測モデルの演算処理が制御タイミングに間に合わない可能性がある。これに対して、本実施形態では、制御装置1は、予測モデルの演算処理を実行する際に、その演算処理にかかる残処理時間を算出する。これにより、演算資源の状況が時々刻々と変化しても、制御装置1は、予測モデルの演算処理が制御タイミングに間に合うか否かを判定することができる。よって、本実施形態によれば、生産装置3の予測制御の演算時間を適切に管理することができる。
§2 構成例
[ハードウェア構成]
<制御装置>
次に、図2を用いて、本実施形態に係る制御装置1のハードウェア構成の一例について説明する。図2は、本実施形態に係る制御装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係る制御装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。なお、図2では、通信インタフェース及び外部インタフェースをそれぞれ「通信I/F」及び「外部I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、制御部11(CPU)により実行される制御プログラム81、割当データ121、学習結果データ225等の各種情報を記憶する。
制御プログラム81は、生産装置3の動作を制御する後述の情報処理(図9)を制御装置1に実行させるためのプログラムであり、当該情報処理の一連の命令を含む。割当データ121は、制御装置1における演算資源(例えば、ハードウェアプロセッサ、メモリ)に対するタスクの割り当てを示す。学習結果データ225は、学習済みの予測モデルの設定を行うためのデータである。詳細は後述する。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。制御装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置2)と行うことができる。
外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース14の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、制御装置1は、外部インタフェース14を介して、生産装置3に接続される。これにより、制御装置1は、生産装置3に対して指令値を送信することで、生産装置3の動作を制御することができる。
入力装置15は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置16は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置15及び出力装置16を利用することで、制御装置1を操作することができる。
ドライブ17は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ17の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記制御プログラム81及び学習結果データ225の少なくとも一方は、この記憶媒体91に記憶されていてもよい。
記憶媒体91は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。制御装置1は、この記憶媒体91から、上記制御プログラム81及び学習結果データ225の少なくとも一方を取得してもよい。
ここで、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、制御装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。制御装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、制御装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のコントローラ、汎用のサーバ装置、汎用のデスクトップPC(Personal Computer)、ノートPC、タブレットPC等であってもよい。
<生産装置>
次に、図3を用いて、本実施形態に係る生産装置3のハードウェア構成の一例について説明する。図3は、本実施形態に係る生産装置3のハードウェア構成の一例を模式的に例示する。
本実施形態に係る生産装置3は、サーボドライバ31、上側金型32、及び下側金型33を備えている。下側金型33が固定されているのに対して、上側金型32は、サーボモータ(不図示)によって、上下方向に移動可能に構成されている。これにより、上側金型32は、下側金型33にワークを押し付けて、ワークの成形を行ったり、下側金型33から離れたりすることができる。サーボドライバ31は、制御装置1からの指令値に基づいて、上側金型32のサーボモータを駆動するように構成される。
次に、図4A〜図4Dを用いて、生産装置3における生産工程の一例を模式的に例示する。生産装置3は、例えば、生産ラインに配置される。図4Aに示されるとおり、初期状態では、上側金型32は、下側金型33から離れた待機位置に配置され、下側金型33にワーク40が搬送されるまで待機する。ワーク40は、例えば、金属製の板材である。ただし、ワーク40は、このような例に限定される訳ではなく、生産装置3の種類に応じて適宜選択されてよい。ワーク40は、例えば、製品の原料、加工前の物、組み立て前の部品等であってよい。
下側金型33の所定の位置にワーク40が配置された後、生産装置3は、図4Bに示されるとおり、サーボドライバ31により上側金型32のサーボモータを駆動し、上側金型32を成形開始位置に配置する。成形開始位置は、例えば、上側金型32の先端がワーク40に接触する又はその直前の位置である。
そして、生産装置3は、図4Cに示されるとおり、サーボドライバ31により上側金型32のサーボモータを更に駆動し、上側金型32を目標位置(下死点)まで移動させ、上側金型32及び下側金型33によりワーク40の成形を行う。これにより、生産装置3は、ワーク40から製品41を生産することができる。なお、この製品41は、ワーク40に対して生産装置3が生産処理を行うことで得られる物であれば特に限定されなくてもよく、最終品であってもよいし、中間品(加工途中のもの)であってもよい。
成形が完了した後、生産装置3は、図4Dに示されるとおり、サーボドライバ31により上側金型32のサーボモータを駆動し、上側金型32を待機位置まで移動させる。そして、ワーク40を成形することで得られた製品41をベルトコンベア(不図示)等により生産装置3から搬送する。これにより、ワーク40から製品41を生産する一連の生産工程が完了する。
この生産工程において、図4Cにおけるプレス時間が不十分であったり、上側金型32が下死点に到達するまでサーボモータを駆動していなかったりすると、得られる製品41の品質が悪化してしまう。そこで、従来、現場の作業者が、定期的に製品の品質をチェックし、生産装置の動作の設定を調節することで、不良品の発生を抑制していた。これに対して、本実施形態に係る制御装置1は、予測モデルを利用することで、生産工程に不良が生じないように、生産装置3への適切な指令値を予測する。これにより、制御装置1は、不良品の発生を抑制するように、生産装置3の動作を自動的に調節する。
<学習装置>
次に、図5を用いて、本実施形態に係る学習装置2のハードウェア構成の一例について説明する。図5は、本実施形態に係る学習装置2のハードウェア構成の一例を模式的に例示する。
図5に示されるとおり、本実施形態に係る学習装置2は、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、及びドライブ26が電気的に接続されたコンピュータである。なお、図5では、通信インタフェースを「通信I/F」と記載している。
制御部21は、上記制御部11と同様に、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部22は、制御部21(CPU)により実行される学習プログラム82、予測モデルの機械学習に利用する学習用データセット221、学習プログラム82を実行することで作成した学習結果データ225等の各種情報を記憶する。
学習プログラム82は、予測モデルの機械学習の後述する情報処理(図13)を学習装置2に実行させ、当該機械学習の結果として学習結果データ225を生成するためのプログラムである。学習プログラム82は、当該情報処理の一連の命令を含む。学習用データセット221は、生産装置3による製品の生産に適応した指令値を予測する能力を獲得した予測モデルを構築するための機械学習に利用されるデータである。詳細は後述する。
通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、制御装置1)と行うことができる。また、学習装置2は、この通信インタフェース23を利用することで、作成した学習結果データ225を外部の装置に配信することができる。
入力装置24は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置25は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置24及び出力装置25を介して、学習装置2を操作することができる。
ドライブ26は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ26の種類は、記憶媒体92の種類に応じて適宜選択されてよい。上記学習プログラム82及び学習用データセット221の少なくとも一方は、この記憶媒体92に記憶されていてもよい。
記憶媒体92は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置2は、この記憶媒体92から、上記学習プログラム82及び学習用データセット221の少なくとも一方を取得してもよい。
ここで、図5では、上記図2と同様に、記憶媒体92の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体92の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、学習装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、ECU等で構成されてよい。学習装置2は、複数台の情報処理装置で構成されてもよい。また、学習装置2には、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC等が用いられてもよい。
[ソフトウェア構成]
<制御装置>
次に、図6を用いて、本実施形態に係る制御装置1のソフトウェア構成の一例について説明する。図6は、本実施形態に係る制御装置1のソフトウェア構成の一例を模式的に例示する。
制御装置1の制御部11は、記憶部12に記憶された制御プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された制御プログラム81をCPUにより解釈及び実行して、制御プログラム81に含まれる一連の命令に基づいて、各構成要素を制御する。これによって、図6に示されるとおり、本実施形態に係る制御装置1は、データ取得部111、予測演算部112、残処理時間算出部113、遅延判定部114、加速処理部115、及び動作制御部116をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部11(CPU)により実現される。
データ取得部111は、予測モデル5が、生産装置3による製品41の生産に適応した指令値を予測するのに利用するデータを取得する。本実施形態では、予測モデル5は、ワーク40の特徴量61及び製品41を生産する環境の属性値62の入力に対して、製品41の生産に適応した指令値を予測するように構築される。そこで、データ取得部111は、ワーク40の特徴量61及び製品41を生産する環境の属性値62を取得する。
予測演算部112は、ワーク40から製品41を生産する生産装置3への指令値であって、生産装置3による製品41の生産に適応した指令値を予測するように構築された予測モデル5を備えている。予測制御を実施するため、予測演算部112は、この予測モデル5の演算処理を開始する。残処理時間算出部113は、予測モデル5の演算処理を開始した後、予測モデル5の演算処理が完了するまでの残処理時間を算出する。遅延判定部114は、算出した残処理時間に基づいて、予測モデル5から得られる出力に基づく指令値の決定が、生産装置3による生産の動作を制御する制御タイミングに間に合うか否かを判定する。
指令値の決定が制御タイミングに間に合うと判定した場合に、予測演算部112は、予測モデル5の演算処理を完了するまで継続することで、予測モデル5から出力を取得する。動作制御部116は、予測モデル5から取得した出力に基づいて、生産装置3への指令値を決定する。そして、動作制御部116は、決定した指令値に基づいて、生産装置3の動作を制御する。
本実施形態では、予測モデル5は、製品41の生産に適応した指令値の予測の結果に対応する出力値として、指令値の基準値60に対する補正値63を出力するように構成される。そのため、予測演算部112は、予測モデル5の演算処理を完了することで、当該予測モデル5から補正値63に対応する出力値を取得する。これに応じて、動作制御部116は、取得した補正値63により基準値60を補正することで得られた値を指令値に決定し、決定した指令値に基づいて、生産装置3の動作を制御する。
一方、本実施形態では、指令値の決定が制御タイミングに間に合わないと判定した場合、加速処理部115は、予測モデル5の演算処理を加速する。加速処理部115は、例えば、予測モデル5の演算処理に対するハードウェアの演算資源を優先的に割り当てることで、予測モデル5の演算処理を加速する。なお、予測モデル5の演算処理の加速が可能ではなく、かつ指令値の決定が制御タイミングに間に合わないと判定される場合、予測演算部112は、予測モデル5の演算処理を中止する。そして、動作制御部116は、予め与えられた設定値を指令値に指定し、指定した指令値に基づいて、生産装置3の動作を制御する。
(予測モデル)
次に、図7A及び図7Bを更に用いて、本実施形態に係る予測モデル5について説明する。図7Aは、本実施形態に係る予測モデル5の構成の一例を模式的に例示する。また、図7Bは、予測モデル5に対する入力と出力との関係を模式的に例示する。
図7Aに示されるとおり、本実施形態に係る予測モデル5は、決定木(具体的には、回帰木)によって構成されている。予測モデル5(決定木)は、根ノードR、葉ノードL1〜L5、及び根ノードRと葉ノードL1〜L5の間に配置される中間ノードN1〜N3を含んでいる。各ノードの間にはリンクが設けられる。図7Aの例では、根ノードRと中間ノード(N1、N2)との間、中間ノードN1と各葉ノード(L1、L2)との間、中間ノードN2と葉ノードL3及び中間ノードN3との間、中間ノードN3と各葉ノード(L4、L5)との間にそれぞれ、リンクが設けられている。
なお、図7Aの例では、決定木の深さは4であり、中間ノードの数は3つであり、葉ノードの数は5つである。しかしながら、決定木の深さ、中間ノードの数、及び葉ノードの数は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。また、図7Aの例では、根ノードRから各葉ノードL1〜L5にリンクが設けられていない。しかしながら、決定木の構成は、このような例に限定されなくてもよく、根ノードからのリンクに接続される葉ノードが存在してもよい。
このような予測モデル5の演算処理は、決定木の根ノードRから葉ノードL1〜L5に向けてリンクをたどる探索処理である。すなわち、根ノードRから葉ノードL1〜L5の経路(図7Aの例では、根ノードR及び中間ノードN1〜N3)には、分岐条件が紐付けられている。図7Aの例では、根ノードRには「x0<2500」の分岐条件が、中間ノードN1には「x1<20」の分岐条件が、中間ノードN2には「x1<35」の分岐条件が、中間ノードN3には「x0<3500」の分岐条件が紐付けられている。一方、各葉ノードL1〜L5には、予測モデル5の演算処理の最終結果(クラスC1〜C5)が紐付けられている。本実施形態では、各葉ノードL1〜L5(クラスC1〜C5)には、入力される特徴量61及び属性値62に応じた補正値63が紐付けられている。本実施形態では、予測演算部112は、根ノードRから探索処理を開始して、入力データが分岐条件を満たすか否かの判定を繰り返すことで、いずれかの葉ノードL1〜L5に到達するまで、より深いノードに探索を進めていく。
図7Aの例では、入力x0が特徴量61に対応し、入力x1が属性値62に対応している。図7Bは、各入力(x0、x1)と到達する葉ノードL1〜L5に対応付けられたクラスC1〜C5との関係を例示している。例えば、入力x0が2000であり、入力x1が30であることを想定する。この場合、予測演算部112は、予測モデル5の1階層目の演算処理(探索処理)として、根ノードRに設定された分岐条件を入力x0が満たすか否かを判定する。図7Aの例では、根ノードRに設定された分岐条件は「x0<2500」であり、入力x0は2000であるため、予測演算部112は、根ノードRに設定された分岐条件を入力x0は満たすと判定し、次の階層の中間ノードN1に探索を進める。
次に、予測演算部112は、予測モデル5の2階層目の演算処理として、中間ノードN1に設定された分岐条件を入力x1が満たすか否かを判定する。図7Aの例では、中間ノードN1に設定された分岐条件は「x1<20」であり、入力x1が30であるため、予測演算部112は、中間ノードN1に設定された分岐条件を入力x1は満たさないと判定し、次の階層の葉ノードL2に進む。これにより、決定木の探索処理が葉ノードL2に到達するため、予測モデル5の演算処理が完了する。予測演算部112は、予測モデル5の演算処理の最終結果として、葉ノードL2のクラスC2に対応付けられた補正値63を取得することができる。
各クラスC1〜C5に対応付けられた補正値63を取得する方法は、実施の形態に応じて適宜決定されてよい。例えば、各クラスC1〜C5には、補正値が直接的に対応付けられていてもよい。また、例えば、制御装置1は、各クラスC1〜C5と補正値との対応関係を示すテーブル形式等の参照情報を記憶部12に保持していてもよい。この参照情報は、学習結果データ225に含まれていてもよい。この場合、予測演算部112は、いずれかの葉ノードに到達した後、到達した葉ノードのクラスを参照情報に照合することで、予測モデル5の演算処理の最終結果として、指令値の基準値60に対する補正値63を取得することができる。
なお、このような予測モデル5(決定木)の構成及び各分岐条件を示す情報は、学習結果データ225に含まれている。予測演算部112は、学習結果データ225を参照することで、製品41の生産に適応した指令値を予測する処理に利用する学習済みの予測モデル5の設定を行うことができる。
<学習装置>
次に、図8を用いて、本実施形態に係る学習装置2のソフトウェア構成の一例について説明する。図8は、本実施形態に係る学習装置2のソフトウェア構成の一例を模式的に例示する。
学習装置2の制御部21は、記憶部22に記憶された学習プログラム82をRAMに展開する。そして、制御部21は、RAMに展開された学習プログラム82をCPUにより解釈及び実行して、学習プログラム82に含まれる一連の命令に基づいて、各構成要素を制御する。これによって、図8に示されるとおり、本実施形態に係る学習装置2は、学習データ取得部211、及び学習処理部212をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部21(CPU)により実現される。
学習データ取得部211は、予測モデル5の機械学習に利用する学習データを取得する。本実施形態では、予測モデル5は決定木により構成されるため、学習データ取得部211は、訓練データ(入力データ)と教師データ(正解データ)との組み合わせで構成された学習用データセット221を取得する。本実施形態では、予測モデル5は、ワーク40の特徴量61及び製品41を生産する環境の属性値62の入力に対して、指令値の基準値60に対する補正値63を出力するように構成される。そのため、学習用データセット221は、ワークの特徴量2211及び製品を生産する環境の属性値2212と、それに適応した補正値2213との組み合わせにより構成される。
学習処理部212は、取得した学習用データセット221を利用した機械学習を行うことにより、学習済みの予測モデル5を構築する。学習処理部212は、特徴量2211及び属性値2212を入力すると、入力した特徴量2211及び属性値2212に関連付けられた補正値2213に対応するクラスの葉ノードに到達するように決定木を構築する。これにより、学習処理部212は、学習済みの予測モデル5を構築することができる。そして、学習処理部212は、構築した学習済みの予測モデル5の構成及び各分岐条件を示す情報を学習結果データ225として記憶部22に格納する。
<その他>
制御装置1及び学習装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、制御装置1及び学習装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、制御装置1及び学習装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
[制御装置]
次に、図9を用いて、制御装置1の動作例について説明する。図9は、制御装置1の処理手順の一例を例示するフローチャートである。以下で説明する処理手順は、本発明の「制御方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS100)
ステップS100では、制御部11は、データ取得部111として動作し、予測モデル5に対する入力データを取得する。
本実施形態では、上記のとおり、予測モデル5は、ワーク40の特徴量61及び製品41を生産する環境の属性値62の入力に対して、製品41の生産に適応した指令値を予測するように構築されている。そのため、制御部11は、予測モデル5に対する入力データとして、ワーク40の特徴量61及び製品41を生産する環境の属性値62を取得する。
ワーク40の特徴量61は、ワークの何らかの特徴を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。また、製品41を生産する環境の属性値62は、生産装置3が稼働する環境に関する何らかの属性を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
本実施形態では、生産装置3は、プレス機である。上記のとおり、生産装置3では、プレス時間が不十分であったり、上側金型32が下死点に到達するまでサーボモータを駆動していなかったりすると、得られる製品41の品質が悪化してしまう。そのため、ワーク40の特徴量61及び製品41を生産する環境の属性値62はそれぞれ、生産装置3におけるプレス成形の工程に関するものであるのが好ましい。
そこで、ワーク40の特徴量61には、例えば、ワーク40の硬さ、寸法、材質、重さ、熱等が選択されてもよい。また、製品41を生産する環境の属性値62には、例えば、生産装置3の周囲の温度、湿度、装置の劣化度合い(例えば、経年数、加工回数等)、振動等が選択されてよい。このとき、ワーク40の特徴量61は、ワーク40の特徴を直接的に示すものであってもよいし、ワーク40の特徴を間接的に示すものであってもよい。すなわち、ワーク40の特徴量61がワーク40の硬さに関するものである場合、ワーク40の特徴量61は、ワーク40の硬さ(硬度)そのものを数値、クラス等で示してもよい。また、ワーク40の特徴量61は、ワーク40の硬さ(硬度)を測定する際に得られた2次的指標(例えば、ワークにかかる荷重、測定の際に作用させたトルク等)を数値、クラス等で示してもよい。属性値62についても同様である。
また、ワーク40の特徴量61及び製品41を生産する環境の属性値62それぞれを取得する方法は、実施の形態に応じて適宜選択されてよい。例えば、ワーク40の特徴量61(例えば、硬さ等)及び環境の属性値62(例えば、温度等)それぞれを測定可能に構成された各種センサが生産装置3に配置されていてもよい。各種センサには、測定対象となる特徴量61及び属性値62の種類に応じて公知のセンサが適宜用いられてよい。この場合、制御部11は、生産装置3に配置された各種センサから、ワーク40の特徴量61及び製品41を生産する環境の属性値62それぞれを取得することができる。ワーク40の特徴量61及び製品41を生産する環境の属性値62それぞれを取得すると、制御部11は、次のステップS101に処理を進める。
(ステップS101)
ステップS101では、制御部11は、予測演算部112として動作し、ワーク40から製品41を生産する生産装置3への指令値であって、生産装置3による製品41の生産に適応した指令値を予測するように構築された予測モデル5の演算処理を開始する。
本実施形態では、予測モデル5は決定木により構成されており、予測モデル5の構成及び各経路の分岐条件を示す情報は、学習結果データ225に含まれている。そこで、制御部11は、学習結果データ225を参照することで、予測モデル5の設定を行う。この設定処理によって、制御部11は、決定木(予測モデル5)の探索処理を開始することができる状態になる。これにより、予測モデル5の演算処理を開始すると、制御部11は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部11は、予測演算部112として動作し、予測モデル5の演算処理を進行させる。本実施形態では、予測モデル5は決定木により構成されているため、予測モデル5の演算処理は、決定木の根ノードから葉ノードに向けてリンクをたどる探索処理である。そのため、制御部11は、予測モデル5の演算処理として、この決定木の探索処理を進行させる。
具体的には、探索処理を1度も実行していない場合には、制御部11は、決定木の探索処理として、根ノードに設定された分岐条件を入力データ(特徴量61及び属性値62)が満たすか否かを判定する。そして、この判定結果に基づいて、制御部11は、2段階目の該当ノード(図7Aの例では、中間ノードN1又は中間ノードN2)に探索を進める。
同様に、探索処理をn回実行した場合には(nは、1以上の自然数)、探索は、n+1段目の中間ノードまで探索が進行している。この場合には、制御部11は、n+1段目の該当の中間ノードに設定された分岐条件を入力データが満たすか否かを判定する。そして、この判定結果に基づいて、制御部11は、n+2段目の該当ノードに探索を進める。
このように決定木の探索処理を進行させると、制御部11は、次のステップS103に処理を進める。なお、本ステップS102の1回の処理において、探索処理を進行させる度合は、実施の形態に応じて適宜決定されてよい。探索処理を進行させる度合が深さk(kは、1以上の自然数)である場合には、制御部11は、上記分岐条件の判定処理をk回実行した後、次のステップS103に処理を進める。
(ステップS103)
ステップS103では、制御部11は、残処理時間算出部113として動作し、予測モデル5の演算処理が完了するまでの残処理時間を算出する。残処理時間を算出する方法は、実施の形態に応じて適宜決定されてよい。本実施形態では、制御部11は、演算処理の進捗状態を確認することで、当該演算処理の残処理量を算出し、算出した残処理量に基づいて残処理時間を算出する。具体的には、制御部11は、以下の(式1)の演算によって、残処理時間を算出する。
Figure 0006958461
「現在までの処理時間」は、ステップS101により予測モデル5の演算処理を開始してから本ステップS103を実行するまでの時間である。制御部11は、例えば、タイマ(不図示)等により、ステップS101により予測モデル5の演算処理を開始してからの時間を計測することで、現在までの処理時間の値を得ることができる。
「現在までの処理量」は、ステップS101により予測モデル5の演算処理を開始してから本ステップS103を実行するまでの処理量である。制御部11は、例えば、ステップS101により予測モデル5の演算処理を開始してからのCPUの処理量を計測することで、現在までの処理量の値を得ることができる。また、本実施形態では、予測モデル5は決定木により構成されているため、制御部11は、例えば、決定木の探索処理における分岐条件の判定処理を実行した回数を計測することによっても、現在までの処理量の値を得ることができる。
「残処理量」は、予測モデル5の演算処理の全体の処理量と現在までの処理量との差分である。制御部11は、予測モデル5の演算処理の全体の処理量から現在までの処理量を差し引くことで、残処理量の値を得ることができる。
予測モデル5の演算処理の全体の処理量は、実施の形態に応じて適宜推定されてよい。全体の処理量は、例えば、予測モデル5の演算処理をシミュレーションした結果、予測モデル5の演算処理を過去に実行した結果(実績値)等に基づいて推定されてよい。この場合、全体の処理量は、シミュレーション又は過去の演算処理の実行時間に応じて推定されてよい。
また、本実施形態では、予測モデル5は決定木により構成されている。この場合、予測モデル5の演算処理、すなわち、決定木の探索処理にかかる時間は、当該決定木の深さ(特に、根ノードから葉ノードに到達するまでに経由する中間ノードの数)に依存する。そのため、決定木の深さが固定されていれば、決定木の探索処理の全体の処理量は、決定木の探索処理のアルゴリズムから導出される理論値から変動し難い。そこで、全体の処理量は、例えば、予測モデル5のアルゴリズムから導出される理論値に基づいて推定されてもよい。
上記各処理量を表現する形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各処理量は、例えば、CPUの演算量、演算処理の理論量等により表現されてもよい。本実施形態では、演算処理の理論量は、例えば、決定木の深さにより示すことができる。
具体例として、予測モデル5を構成する決定木の深さが11であり、2階層目の中間ノードまで分岐条件の判定処理が完了している(すなわち、3階層目の中間ノードに探索が到達している)と想定する。決定木の深さにより各処理量を表現する場合、決定木の深さが11であると、葉ノードまで到達する探索処理の回数は10回であるため、全体の処理量の値は「10」と表現することができる。また、現在までの処理量の値は「2」と表現することができる。そのため、残処理量の値は「10−2=8」と表現することができる。このとき、現在までの処理時間が0.01秒であったとすると、制御部11は、「0.01(秒)×((10−2)/2)」の演算により、残処理時間は0.04(秒)であると算出することができる。
なお、残処理時間の表現形式は、予測モデル5の演算処理が完了するタイミングを表現可能であれば、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。残処理時間は、例えば、上記の例のように、国際単位系に従う時刻系(秒)により表現されてもよい。また、残処理時間は、例えば、CPUのクロック数、生産装置3の動作サイクルを示すタクト時間等により表現されてもよい。残処理時間を算出すると、制御部11は、次のステップS104に処理を進める。
(ステップS104)
ステップS104では、制御部11は、遅延判定部114として動作し、算出した残処理時間に基づいて、予測モデル5から得られる出力に基づく指令値の決定が、生産装置3による生産の動作を制御する制御タイミングに間に合うか否かを判定する。
本実施形態では、制御部11は、まず、以下の式2により、制御タイミングまでの残存時間を算出する。
Figure 0006958461
「制御予定時刻」は、制御タイミングの時刻であり、予め決定されている。制御部11は、例えば、制御プログラム81等の生産装置3の動作を制御する予定を示す情報から、制御予定時刻の値を取得することができる。また、「現在時刻」は、本ステップS104を実行する時刻である。制御部11は、例えば、タイマ(不図示)等により、現在時刻の値を取得することができる。ただし、残存時間の計算方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜変更されてよい。
次に、制御部11は、算出した残存時間から残処理時間を差し引くことで差分を算出する。この差分は、予測モデル5の演算処理が完了してから制御タイミングまでの推定の空き時間を示す。つまり、この差分が負の値である場合には、予測モデル5の演算処理が制御タイミングよりも遅い時間に完了すると推定されることを示す。
そこで、制御部11は、残存時間から残処理時間を差し引くことで得られた差分が所定の閾値を超えるか否かを判定する。そして、得られた差分が所定の閾値を超える場合、制御部11は、指令値の決定が制御タイミングに間に合うと判定する。一方、得られた差分が所定の閾値以下である場合、制御部11は、指令値の決定が制御タイミングに間に合わないと判定する。
この所定の閾値は、適宜設定されてよい。所定の閾値は、指令値の決定が制御タイミングに間に合うと判定するための基準となる。また、所定の閾値は、予測モデル5の演算処理が制御タイミングに対して時間的に余裕がある状態で完了するか否かを判定するための基準にもなり得る。すなわち、所定の閾値は、予測モデル5の演算処理が完了してから生産装置3の動作を制御するまでの猶予(余裕)時間に相当し得る。したがって、制御部11は、指令値の決定が制御タイミングに間に合うか否かの判定として、予測モデル5の演算処理が制御タイミングに対して時間的に余裕がある状態で完了するか否かを判定してもよい。
以上により、制御部11は、指令値の決定が制御タイミングに間に合うか否かを判定することができる。指令値の決定が制御タイミングに間に合うと判定した場合、制御部11は、ステップS107に処理を進める。一方、指令値の決定が制御タイミングに間に合わないと判定した場合、制御部11は、ステップS105に処理を進める。ただし、指令値の決定が制御タイミングに間に合うか否かを判定する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜変更されてよい。
なお、残存時間の表現形式は、残処理時間と同様に、制御タイミングを表現可能であれば、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。残存時間は、例えば、国際単位系に従う時刻系(秒)、CPUのクロック数、生産装置3の動作サイクルを示すタクト時間等により表現されてもよい。
(ステップS105)
ステップS105では、制御部11は、加速処理部115として動作し、予測モデル5の演算処理の加速が可能か否かを判定する。
後述するステップS106では、例えば、予測モデル5の演算処理に対するハードウェアの演算資源を優先的に割り当てることで、予測モデル5の演算処理を加速する。そのため、本実施形態では、制御部11は、予測モデル5の演算処理に対して優先的に割り当てる演算資源の余地があるか否かを判定することで、予測モデル5の演算処理の加速が可能か否かを判定してもよい。
予測モデル5の演算処理に対して優先的に割り当てる演算資源の余地があり、当該予測モデル5の演算処理の加速が可能であると判定した場合には、制御部11は、ステップS106に処理を進める。一方、予測モデル5の演算処理に対して優先的に割り当てる演算資源の余地がなく、当該予測モデル5の演算処理の加速が可能ではないと判定した場合には、制御部11は、ステップS111に処理を進める。ただし、予測モデル5の演算処理が可能か否かを判定する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜変更されてよい。
(ステップS106)
ステップS106では、制御部11は、加速処理部115として動作し、予測モデル5の演算処理を加速する。制御部11は、例えば、予測モデル5の演算処理に対するハードウェアの演算資源を優先的に割り当てることで、予測モデル5の演算処理を加速することができる。演算資源は、例えば、CPU、メモリ等である。
ここで、図10及び図11を用いて、制御部11(CPU)が、予測モデル5の演算処理を含む複数のタスクを実行する方法の一例について説明する。図10は、CPUに対するタスクの割り当ての状態を示す割当データ121の一例を模式的に例示する。図11は、図10で示されるタスクの割り当てに対して、CPUがタスクを実行するスケジューリングの一例を模式的に例示する。
ハードウェアプロセッサであるCPUは、1又は複数のコアで構成される。コアは、演算処理を実行する回路であり、コアの数が多いほど、CPUは、多くの演算処理を並列に実行することができる。CPUの各コアは、1サイクル(周期)内において、優先度の高いタスクから順に、割り当てた利用率の分だけ各タスクの実行を行う。
例えば、図10の例では、CPUは少なくとも2つのコアを有しており、コア01に対して3つのタスクA〜Cが割り当てられている。タスクAの優先度が最も高く設定されており、タスクBの優先度が2番目に高く設定されており、タスクCの優先度が最も低く設定されている。また、図10の例では、各タスクA〜Cの上下方向の長さが、コアの利用率を示している。そのため、コア01において、タスクBの利用率が最も高く設定されており、タスクAの利用率が2番目に高く設定されており、タスクCの利用率が最も低く設定されている。未使用の部分は、空き領域である。この空き領域には、タスクA〜Cを割り当てたり(利用率を高める)、その他のタスクを割り当てたりすることができる。
この場合、図11に示されるとおり、コア01は、まず、各サイクル内において、最も優先度の高いタスクAを利用率に応じた分だけ実行する。次に、コア01は、2番目に優先度の高いタスクBを利用率に応じた分だけ実行する。そして、コア01は、最も優先度に低いタスクCを利用率に応じた分だけ実行する。
各コアは、各サイクルの終了時刻になると、優先度の低いタスクの実行を打ち切り又は実行せず、次のサイクルの処理、すなわち、最も優先度の高いタスクの実行を開始する。また、各タスクの実行が完了すると、そのタスクは消滅し、次に優先度の高いタスクの実行が優先されるようになる。
図11の例では、1サイクル目(s)及び2サイクル目(s+1)では、タスクCの実行が打ち切られており、タスクBの実行が、3サイクル目(s+2)の途中において時間tで完了することを想定している。そのため、3サイクル目では、タスクBの実行が完了した後、コア01は、タスクCを利用率に応じた分だけ実行している。ただし、各コアがタスクを実行する方法は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。
以上のように、優先度及び利用率に基づいて、タスクを実行する度合いが決定される場合には、タスクの優先度及び利用率の少なくとも一方を高めることで、当該タスクに対する演算資源を優先的に割り当てることができ、タスクの実行を加速することができる。本実施形態では、制御部11は、例えば、以下の4つの方法によって、予測モデル5の演算処理を加速することができる。
(1)第1の方法
まず、図12Aを用いて、予測モデル5の演算処理を加速する第1の方法について説明する。図12Aは、予測モデル5の演算処理を加速する第1の方法を模式的に例示する。
第1の方法では、ハードウェアプロセッサであるCPUが1又は複数のコアで構成されていることが想定されている。この第1の方法では、例えば、上記ステップS101等により、予測モデル5の演算処理には、少なくとも1つのコアが割り当てられる。この状態で、制御部11は、予測モデル5の演算処理に対して、割り当てたコアの利用率を高めることで、当該予測モデル5の演算処理を加速する。
図12Aの例では、予測モデル5の演算処理(以下、「タスクZ」とも記載する)は、コア01に割り当てられている。制御部11は、割当データ121を参照し、タスクZの割り当てられたコア01に空き領域があるか否かを確認する。コア01に空き領域がなければ、制御部11は、この第1の方法による演算処理の加速は不可能であると判定する。一方、コア01に空き領域がある場合には、制御部11は、この第1の方法による演算処理の加速は可能であると判定し、空き領域のうちの少なくとも一部の領域をタスクZに更に割り当てることで、タスクZに対するコア01の利用率を高める。タスクZに割り当てる空き領域の量は、実施の形態に応じて適宜設定されてよい。これにより、予測モデル5の演算処理に割り当てる演算資源を増加させることができるため、制御部11は、当該予測モデル5の演算処理を加速する(すなわち、タスクZの実行量を増加させる)ことができる。
(2)第2の方法
次に、図12Bを用いて、予測モデル5の演算処理を加速する第2の方法について説明する。図12Bは、予測モデル5の演算処理を加速する第2の方法を模式的に例示する。
第2の方法では、上記第1の方法と同様に、ハードウェアプロセッサであるCPUが1又は複数のコアで構成されていることが想定されている。この第2の方法では、例えば、上記ステップS101等により、予測モデル5の演算処理には、少なくとも1つのコアが割り当てられる。この状態で、制御部11は、割り当てられたコアにおいて、予測モデル5の演算処理の優先度を高めることによって、当該予測モデル5の演算処理を加速する。
図12Bの例では、予測モデル5の演算処理(タスクZ)は、コア01に割り当てられている。コア01には、タスクZの他に、その他のタスクが割り当てられている。この場合、制御部11は、割当データ121を参照し、各タスクの優先度を確認する。そして、制御部11は、タスクZの優先度をその他のタスクよりも高めることができるか否かを確認する。
タスクZの優先度が最も高くなっている、タスクZよりも優先度が高いタスクであって、タスクZよりも優先度を低くすることができるタスクが存在しない等の場合には、タスクZの優先度をその他のタスクよりも高めることは困難である。そのため、このような場合には、制御部11は、この第2の方法による演算処理の加速は不可能であると判定する。
一方、タスクZの優先度をその他のタスクよりも高める余地が存在する場合には、制御部11は、この第2の方法による演算処理の加速は可能であると判定し、タスクZの優先度をその他のタスクよりも高くする。図12Bの例では、加速前の状態において、タスクZの優先度は「低」であり、他のタスクの優先度は「中」である。すなわち、タスクZの優先度は、他のタスクの優先度よりも低く設定されている。そこで、制御部11は、タスクZの優先度を他のタスクの優先度よりも高くなるように変更してもよい。
図12Bの例では、制御部11は、他のタスクの優先度を変更せず、タスクZの優先度を「低」から「高」に変更することで、タスクZの優先度を他のタスクの優先度よりも高くしている。ただし、タスクZの優先度を高める方法は、このような例に限定されなくてもよい。制御部11は、タスクZの優先度を変更すると共に又はタスクZの優先度を変更せずに、他のタスクの優先度を低くなるように変更してもよい。これらの方法によって、制御部11は、タスクZの優先度を他のタスクよりも相対的に高くすることができる。これにより、予測モデル5の演算処理を優先させることができるため、制御部11は、予測モデル5の演算処理を加速することができる。
(3)第3の方法
次に、図12Cを用いて、予測モデル5の演算処理を加速する第3の方法について説明する。図12Cは予測モデル5の演算処理を加速する第3の方法を模式的に例示する。
第3の方法では、ハードウェアプロセッサであるCPUが複数のコアで構成されていることが想定されている。この第3の方法では、例えば、上記ステップS101等により、予測モデル5の演算処理には、複数のコアのうちの第1のコアが割り当てられている。一方、本ステップS106の加速処理の前には、複数のコアのうちの第2のコアであって、予測モデル5の演算処理に割り当てられていない第2のコアが存在することが想定されている。図12Cの例では、コア01が第1のコアの一例であり、コア02が第2のコアの一例である。
この状態で、制御部11は、予測モデル5の演算処理に割り当てられていなかった第2のコアを、予測モデル5の演算処理に更に割り当てることによって、当該予測モデル5の演算処理を加速する。すなわち、制御部11は、予測モデル5の演算処理に割り当てるコアの数を増やすことで、当該予測モデル5の演算処理を加速する。なお、第1のコア及び第2のコアの数はそれぞれ、1つであってもよいし、複数であってもよい。
図12Cの例では、予測モデル5の演算処理(タスクZ)は、コア01に割り当てられている。一方、コア02には、予測モデル5の演算処理が割り当てられておらず、他のタスクが割り当てられている。このコア02には、空き領域が存在している。制御部11は、割当データ121を参照し、タスクZが割り当てられておらず、かつ空き領域が存在する第2のコアが存在するか否かを確認する。
そのような第2のコアが存在しない場合には、制御部11は、この第3の方法による演算処理の加速は不可能であると判定する。一方、第2のコアが存在する場合には、制御部11は、この第3の方法による演算処理の加速は可能であると判定し、第2のコアの空き領域のうちの少なくとも一部の領域をタスクZに割り当てる。タスクZに割り当てる空き領域の量は、実施の形態に応じて適宜決定されてよい。これにより、予測モデル5の演算処理に割り当てる演算資源を増加させることができるため、制御部11は、予測モデル5の演算処理を加速することができる。
(4)第4の方法
次に、図12Dを用いて、予測モデル5の演算処理を加速する第4の方法について説明する。図12Dは、予測モデル5の演算処理を加速する第4の方法を模式的に例示する。
第4の方法では、ハードウェアプロセッサであるCPUが複数のコアで構成されていることが想定されている。この第4の方法では、例えば、上記ステップS101等により、予測モデル5の演算処理には、複数のコアのうちの第3のコアが割り当てられている。一方、本ステップS106の加速処理の前には、複数のコアは、予測モデル5の演算処理に割り当てられていない第4のコアであって、第3のコアにおいて演算処理に割り振られている利用率よりも大きな空き容量を有する第4のコアを含んでいることが想定されている。図12Dの例では、コア01が第3のコアの一例であり、コア02が第4のコアの一例である。
この状態で、制御部11は、予測モデル5の演算処理に対する割り当てを第3のコアから第4のコアに置き換えて、第3のコアにおいて演算処理に割り振られていた利用率よりも大きな利用率を第4のコアにおいて演算処理に割り振ることで、当該予測モデル5の演算処理を加速する。すなわち、制御部11は、タスクZを割り振っていた元のコアからタスクZにより大きな利用率を割り振ることのできる新たなコアにタスクZに対して割り当てるコアを変更することで、予測モデル5の演算処理を加速する。なお、第3のコア及び第4のコアの数はそれぞれ、1つであってもよいし、複数であってもよい。
図12Dの例では、予測モデル5の演算処理(タスクZ)は、コア01に割り当てられている。一方、コア02には、予測モデル5の演算処理が割り当てられておらず、他のタスクが割り当てられている。このコア02には、コア01においてタスクZに割り振られている利用率よりも大きな空き領域(図の「未使用」の領域)が存在している。制御部11は、割当データ121を参照し、タスクZが割り当てられておらず、かつコア01におけるタスクZの利用率よりも大きな空き領域が存在する第4のコアが存在するか否かを確認する。
そのような第4のコアが存在しない場合には、制御部11は、この第4の方法による演算処理の加速は不可能であると判定する。一方、第4のコアが存在する場合には、制御部11は、この第4の方法による演算処理の加速は可能であると判定する。そして、制御部11は、第4のコアの空き領域のうちの少なくとも一部の領域であって、コア01においてタスクZに割り振られていた利用率よりも大きな領域をタスクZに割り当てる。このとき、図12Dに示されるとおり、制御部11は、コア01(第3のコア)におけるタスクZの割り当てを削除してもよい。これにより、予測モデル5の演算処理に割り当てる演算資源を増加させることができるため、制御部11は、当該予測モデル5の演算処理を加速することができる。
なお、図12Dの例では、コア01のその他の領域には、タスクZ以外の他のタスクが割り当てられている。そのため、コア01では、上記第1の方法により、タスクZの利用率を高める余地が存在していない。制御部11は、このように第3のコアにおいて第1の方法を採用する余地が存在しない場合に、この第4の方法を採用するようにしてもよい。一方、第3のコアにおいて、タスクZの利用率を高める余地が存在する場合には、制御部11は、上記第1の方法を採用するようにしてもよい。
(5)その他
上記第1〜第4の方法のうちの少なくともいずれかを採用することで、制御部11は、予測モデル5の演算処理を加速することができる。上記第1〜第4の方法のうちの少なくともいずれかにより予測モデル5の演算処理を加速すると、制御部11は、次のステップS107に処理を進める。
ただし、予測モデル5の演算処理を加速する方法は、これらの例に限定されなくてもよい。例えば、制御装置1の仮想メモリが、キャッシュメモリ(不図示)、制御部11のRAM、記憶部12により構成されていると想定する。加えて、キャッシュメモリ、制御部11のRAM、及び記憶部12の順にCPUに近いと想定する。この場合、制御部11は、予測モデル5の演算処理に割り当てる仮想メモリにおいてCPUにより近いメモリの比重が高くなるようにメモリの割り当てを制御してもよい。これにより、制御部11は、演算処理に利用するデータへのアクセス速度を高めることができるため、当該予測モデル5の演算処理を加速することができる。
なお、上記ステップS105では、第1〜第4の方法のいずれも採用できない場合に、制御部11は、予測モデル5の演算処理の加速が可能ではないと判定してもよい。一方、第1〜第4の方法のうちの少なくともいずれかの方法が採用できる場合、制御部11は、予測モデル5の演算処理の加速が可能であると判定してもよい。
(ステップS107)
図9に戻り、ステップS107では、制御部11は、予測演算部112として動作し、予測モデル5の演算処理が完了したか否かを判定する。予測モデル5の演算処理が完了したか否かを判定する方法は、予測モデル5に採用するモデルの種別に応じて適宜決定されてよい。
本実施形態では、予測モデル5は決定木により構成されているため、制御部11は、上記ステップS102における探索処理が決定木のいずれかの葉ノードまで到達したか否かを判定する。探索処理がいずれかの葉ノードまで到達している場合には、制御部11は、予測モデル5の演算処理が完了したと判定し、次のステップS108に処理を進める。一方、探索処理がいずれの葉ノードまで到達していない場合、すなわち、探索処理が中間ノードまでしか進行していない場合には、制御部11は、予測モデル5の演算処理は完了していないと判定し、ステップS102から処理を繰り返す。
ステップS104において、指令値の決定が制御タイミングに間に合うと判定される場合には、ステップS102〜S104及びS107の一連の処理が繰り返されることで、制御部11は、予測モデル5の演算処理を完了するまで継続する。これにより、制御部11は、演算処理の最終結果として予測モデル5から出力値を取得することができる。本実施形態では、決定木の探索処理を完了した際に、制御部11は、探索処理において到達した葉ノードに対応付けられた値を最終結果として取得することができる。
また、ステップS106により予測モデル5の演算処理を加速した後、予測モデル5の演算処理が完了していないと判定される場合、制御部11は、ステップS102〜S104を再度実行する。ステップS106による加速が十分である場合には、再度実行したステップS104において、指令値の決定が制御タイミングに間に合うと判定されるようになる。これにより、制御部11は、予測モデル5の演算処理を完了するまで継続することができるようになる。
一方、ステップS106による加速が不十分である場合には、再度実行したステップS104において、指令値の決定が制御タイミングに間に合わないと再度判定される。この場合、ステップS105において、加速が可能と判定される限り、制御部11は、指令値の決定が制御タイミングに間に合うと判定されるようになるまで、ステップS106を実行することで、予測モデル5の演算処理を加速することができる。そして、制御部11は、予測モデル5の演算処理を十分に加速することで、指令値の決定が制御タイミングに間に合うように予測モデル5の演算処理を完了させることができる。
これに対して、ステップS104において、指令値の決定が制御タイミングに間に合わないと判定され、かつステップS105において、予測モデル5の演算処理の加速が可能ではないと判定された場合には、制御部11は、上記のとおり、ステップS111に処理を進める。ステップS106の後に実行されたステップS104において、指令値の決定が制御タイミングに間に合わないと再度判定され、かつその後のステップS105において、予測モデル5の演算処理の加速が可能ではないと判定された場合も同様である。これにより、制御部11は、ステップS107〜後述するステップS109の一連の処理を省略し、後述するとおり、予測モデル5の演算処理を中止し、予測制御以外の方法で生産装置3の動作を制御する。
(ステップS108)
ステップS108では、制御部11は、動作制御部116として動作し、予測モデル5から取得した出力に基づいて、生産装置3への指令値を決定する。指令値を決定する方法は、予測モデル5の出力の形式に応じて適宜決定されてよい。
本実施形態では、上記のとおり、予測モデル5を構成する決定木の各葉ノードには、製品41の生産に適応した指令値の予測の結果に対応する出力値として、指令値の基準値60に対する補正値63が対応付けられている。そのため、決定木の探索処理が完了した際に、制御部11は、予測モデル5からの出力として、到達した葉ノードに対応付けられた補正値63を取得することができる。したがって、制御部11は、取得した補正値63により基準値60を補正することで、生産装置3への指令値を決定することができる。指令値を決定すると、制御部11は、次のステップS109に処理を進める。
(ステップS109)
ステップS109では、制御部11は、動作制御部116として動作し、決定した指令値に基づいて、生産装置3の動作を制御する。指令値に基づいて生産装置3の動作を制御する方法は、指令値の形式に応じて適宜選択されてよい。
本実施形態では、生産装置3は、プレス機であり、上側金型32を駆動するサーボドライバ31を備えている。そのため、指令値は、サーボモータの駆動量を規定したパルス数を示してもよい。この場合、制御部11は、外部インタフェース14を介して、生産装置3のサーボドライバ31に対して指令値を送信する。サーボドライバ31は、制御装置1から受信した指令値に基づいてサーボモータを駆動する。これにより、制御部11は、決定した指令値に基づいて、生産装置3の動作を制御することができる。生産装置3の動作を制御すると、制御部11は、本動作例に係る処理を終了する。
なお、指令値の形式は、このような例に限定されなくてもよい。指令値は、例えば、サーボモータの駆動量、上側金型32の移動量等の中間指標により表現されてもよい。この場合、制御部11は、中間指標により表現された指令値をそのまま生産装置3に送信してもよいし、中間指標により表現された指令値を、パルス数等の直接利用可能な形式に変換し、変化した指令値を生産装置3に送信してもよい。
(ステップS111)
ステップS111は、上記のとおり、指令値の決定が制御タイミングに間に合わないと判定され、かつ予測モデル5の演算処理の加速が可能ではないと判定された場合に実行される。すなわち、ステップS111は、指令値の決定が制御タイミングに間に合うように予測モデル5の演算処理を加速することができない場合に実行される。このステップS111では、制御部11は、予測演算部112として動作し、予測モデル5の演算処理を中止する。予測モデル5の演算処理を中止すると、制御部11は、次のステップS112に処理を進める。
(ステップS112)
ステップS112では、制御部11は、動作制御部116として動作し、予め与えられた設定値を指令値に指定する。
予め与えられた設定値は、実施の形態に応じて適宜決定されてよい。予め与えられた設定値は、例えば、指令値の基準値60、過去の指令値であってよい。本動作例に係る生産装置3の動作を制御する一連の処理を繰り返し実行している場合、過去の指令値は、例えば、生産装置3の動作を直前に制御した際の前回値であってもよい。
この前回値は、ステップS100で取得された入力データを問わずに、生産装置3の動作を直前に制御した際の指令値であってもよい。この場合、制御部11は、直前と今回と2回続けて同じ指令値を指定することになる。
また、前回値は、ステップS100で取得された入力データが同一又は近似するケースにおいて、生産装置3の動作を直前に制御した際の指令値であってもよい。なお、制御部11は、過去の制御した際の入力データと今回取得された入力データとの差分が閾値以下であるか否かを判定することにより、今回のケースと過去のケースとにおいて入力データが近似するか否かを判定することができる。
この予め与えられた設定値は、記憶部12、制御部11のRAM等に保持されてよい。制御部11は、記憶部12、RAM等に保持された設定値を参照することで、生産装置3への指令値を指定することができる。指令値を指定すると、制御部11は、次のステップS113に処理を進める。
(ステップS113)
ステップS113では、制御部11は、動作制御部116として動作し、指定した指令値に基づいて、生産装置3の動作を制御する。本ステップS113は、上記ステップS109と同様である。生産装置3の動作を制御すると、制御部11は、本動作例に係る処理を終了する。
(終了後)
以上により、制御部11は、本動作例に係る生産装置3の動作を制御する一連の処理を終了する。制御部11は、この一連の処理を繰り返し実行することで、生産装置3の動作を継続的に制御することができる。
[学習装置]
次に、図13を用いて、学習装置2の動作例について説明する。図13は、学習装置2の処理手順の一例を例示するフローチャートである。なお、以下で説明する予測モデル5の機械学習に関する処理手順は、コンピュータによる学習方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS201)
ステップS201では、制御部21は、学習データ取得部211として動作し、予測モデル5の機械学習に利用する学習データを取得する。学習用データの形式は、予測モデル5の種別に応じて適宜決定されてよい。
本実施形態では、予測モデル5は、決定木により構成される。更に、決定木は、ワーク40の特徴量61及び製品41を生産する環境の属性値62の入力に対して、指令値の基準値60に対する補正値63を出力するように構築される。そのため、制御部21は、ワークの特徴量2211及び製品を生産する環境の属性値2212と、それに適応した補正値2213との組み合わせにより構成される学習用データセット221を取得する。
この学習用データセット221は、実施の形態に応じて適宜生成されてよい。例えば、ワークの特徴量2211及び製品を生産する環境の属性値2212を様々な条件で取得する。特徴量2211及び属性値2212の取得には、公知のセンサが用いられてよい。例えば、属性値2212として温度を取得する場合には、温度センサが用いられてよい。そして、得られた特徴量2211及び属性値2212に対して、この条件において適切な指令値を得るための補正値2213を組み合わせる。これにより、学習用データセット221を生成することができる。
この学習用データセット221の生成は、学習装置2により行われてもよい。この場合、制御部21は、オペレータによる入力装置24の操作に応じて、学習用データセット221を生成してもよい。また、制御部21は、学習プログラム82の処理により、学習用データセット221を自動的に生成してもよい。この生成処理を実行することで、本ステップS201では、制御部21は、学習用データセット221を取得することができる。
また、学習用データセット221の生成は、学習装置2以外の他の情報処理装置により行われてもよい。他の情報処理装置では、学習用データセット221は、オペレータにより手動で生成されてもよいし、プログラムの処理により自動的に生成されてもよい。この場合、本ステップS201では、制御部21は、ネットワーク、記憶媒体92等を介して、他の情報処理装置により生成された学習用データセット221を取得することができる。
本ステップS201で取得する学習用データセット221の件数は、実施の形態に応じて適宜決定されてよく、例えば、決定木の機械学習を実施可能な程度に適宜決定されてよい。これにより、学習用データセット221を取得すると、制御部21は、次のステップS202に処理を進める。
(ステップS202)
ステップS202では、制御部21は、学習処理部212として動作し、取得した学習用データセット221を利用した機械学習を行うことにより、学習済みの予測モデル5を構築する。
本実施形態では、制御部21は、特徴量2211及び属性値2212を入力すると、入力した特徴量2211及び属性値2212に関連付けられた補正値2213に対応するクラスの葉ノードに到達する探索が可能な決定木を構築する。この決定木の学習方法には、CLS(Concept Learning System)、ID3(Iterative Dichotomiser 3)、C4.5等が用いられてもよい。これにより、制御部21は、学習済みの予測モデル5を構築することができる。
(ステップS203)
ステップS203では、制御部21は、学習処理部212として動作して、機械学習により構築した決定木(学習済みの予測モデル5)の構成及び各分岐条件を示す情報を学習結果データ225として記憶部22に格納する。これにより、制御部21は、本動作例に係る予測モデル5の学習処理を終了する。
なお、制御部21は、上記ステップS203の処理が完了した後に、作成した学習結果データ225を制御装置1に転送してもよい。また、制御部21は、上記ステップS201〜S203の学習処理を定期的に実行することで、学習結果データ225を定期的に更新してもよい。そして、制御部21は、作成した学習結果データ225を学習処理の実行毎に制御装置1に転送することで、制御装置1の保持する学習結果データ225を定期的に更新してもよい。また、例えば、制御部21は、作成した学習結果データ225をNAS(Network Attached Storage)等のデータサーバに保管してもよい。この場合、制御装置1は、このデータサーバから学習結果データ225を取得してもよい。また、学習装置2により作成された学習結果データ225は、制御装置1に予め組み込まれてもよい。
[特徴]
以上のとおり、本実施形態では、予測モデル5を利用して生産装置3への指令値を予測する際に、ステップS103及びステップS104により、残処理時間を算出し、算出した残処理時間に基づいて、予測モデル5による指令値の決定が制御タイミングに間に合うか否かを判定する。これにより、予測モデル5を利用した指令値の予測に関する演算処理が、その予測した指令値を利用して生産装置3の動作を制御するタイミングに間に合うか否かを特定することができる。つまり、ステップS108による指令値の決定が、生産装置3の動作を制御する制御予定時刻までに完了するか否かを特定することができる。したがって、本実施形態によれば、生産装置3の予測制御の演算時間を適切に管理することができる。
特に、制御装置1では、上記予測モデル5の演算処理以外の他のタスクを含む複数のタスクが処理され得る(例えば、図12B〜図12D)。この場合には、例えば、割込みのタスクが発生する等により、制御装置1における演算資源(ハードウェアプロセッサ、メモリ等)が同一の条件で利用できるとは限らない。すなわち、制御装置1における演算資源の状況は時々刻々と変化していき、それに伴って、予測モデル5の演算処理に用いることができる演算資源も変化し得る。したがって、予測モデル5の演算処理にかかる処理時間は常に一定であるとは限らない。そのため、シミュレーション等により予め特定した処理時間に基づいて、予測モデル5の演算処理は、制御タイミングに間に合うように処理可能であると判定されていたとしても、運用の際に、制御装置1は、生産装置3の制御タイミングに間に合うように予測モデル5の演算処理を常に完了できるとは限らない。これに対して、本実施形態では、制御装置1は、上記ステップS103において、予測モデル5の演算処理を実行する時点の演算資源の状況(具体的には、演算処理の進捗)を確認し、これに基づいて、演算処理にかかる残処理時間を算出する。これによって、演算資源の状況が時々刻々と変化しても、制御装置1は、ステップS104において、予測モデル5の演算処理が制御タイミングに間に合うか否かを適切に判定することができる。よって、本実施形態によれば、生産装置3の予測制御の演算時間を適切に管理することができる。
加えて、本実施形態では、ステップS104において、指令値の決定が制御タイミングに間に合うと判定した場合に、制御装置1は、ステップS102〜S104及びS107の一連の処理を繰り返した後、ステップS108及びS109の処理を実行する。これにより、制御装置1は、そのまま予測制御を適切に実行することができる。一方、ステップS104において、指令値の決定が制御タイミングに間に合わないと判定され、かつステップS105において、予測モデル5の演算処理の加速が可能ではないと判定された場合には、制御装置1は、予測モデル5の演算処理を中止する。これにより、制御装置1は、予測制御を停止し、その他の方法(本実施形態では、予め与えられた設定値を利用する)で生産装置3の動作を適切に制御することができる。したがって、本実施形態によれば、予測モデル5による指令値の決定が制御タイミングに間に合わないことにより、生産装置3の動作を制御する処理が滞ってしまうことを防止することができる。
また、本実施形態では、ステップS104において、指令値の決定が制御タイミングに間に合うと判定した場合に、ステップS106の処理を実行することで、予測モデル5の演算処理を加速することができる。これによって、制御装置1は、予測モデル5による指令値の決定が制御タイミングに間に合うようにすることができる。したがって、本実施形態によれば、予測モデル5による予測制御を打ち切る可能性を低減し、当該予測制御を適切に実施することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態では、ステップS104において、予測モデル5による指令値の決定が制御タイミングに間に合わないと判定した場合に、制御部11は、ステップS105及びS106により、予測モデル5の演算処理を加速する。この予測モデル5の演算処理を加速する処理は、省略されてもよい。加速処理を省略する場合、上記ステップS105及びS106は省略されてもよく、制御装置1のソフトウェア構成から加速処理部115は省略されてもよい。
<4.2>
上記実施形態では、予測モデル5は、製品41の生産に適応した指令値の予測の結果として、指令値の基準値60に対する補正値63を出力するように構成されている。しかしながら、予測モデル5の出力形式は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、予測モデル5は、指令値そのものを出力するように構成されてもよい。
<4.3>
上記実施形態では、予測モデル5の入力には、ワーク40の特徴量61及び製品41を生産する環境の属性値62の両方が利用されている。しかしながら、予測モデル5の入力は、このような例に限定されなくてもよい。ワーク40の特徴量61及び製品41を生産する環境の属性値62のうちの一方は省略されてもよい。すなわち、上記予測モデル5は、ワーク40の特徴量61及び製品41を生産する環境の属性値62の少なくとも一方に対して、製品41の生産に適応した指令値を予測するように構築されてよい。また、上記予測モデル5の入力には、生産装置3による製品41の生産工程に影響を与え得る要因に関するデータであって、ワーク40の特徴量61及び製品41を生産する環境の属性値62以外のデータが用いられてもよい。
<4.4>
上記実施形態では、予測モデル5は、決定木により構成されている。しかしながら、予測モデル5の構成は、予測処理を実行する時点よりも先の時点(将来の時点)における生産装置3への指令値を予測可能であれば、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。予測モデル5には、例えば、ニューラルネットワーク、サポートベクタマシン等の決定木以外の学習モデルが用いられてもよい。また、予測モデル5には、学習モデル以外のモデル(例えば、所定の関数)が用いられてもよい。
1…制御装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
111…データ取得部、112…予測演算部、
113…残処理時間算出部、114…遅延判定部、
115…加速処理部、116…動作制御部、
81…制御プログラム、121…割当データ、
91…記憶媒体、
2…学習装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…入力装置、25…出力装置、26…ドライブ、
211…学習データ取得部、212…学習処理部、
82…学習プログラム、221…学習用データセット、
225…学習結果データ、
92…記憶媒体、
3…生産装置(プレス機)、
31…サーボドライバ、32…上金型、33…下金型、
40…ワーク、41…製品、
5…予測モデル(決定木)、
60…(指令値の)基準値、
61…特徴量、62…属性値、63…補正値

Claims (11)

  1. ハードウェアプロセッサと、
    前記ハードウェアプロセッサにより実行されるプログラムを保持するメモリと、
    を備える制御装置であって、
    前記ハードウェアプロセッサは、前記プログラムに含まれる一連の命令に基づいて、
    ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
    前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
    算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
    前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、
    決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、
    前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を加速するステップと、
    を実行し、
    前記ハードウェアプロセッサは、複数のコアで構成され、
    前記予測モデルの演算処理には、前記複数のコアのうちの一のコアが割り当てられ、
    前記複数のコアは、前記予測モデルの演算処理に割り当てられていない他のコアであって、前記一のコアにおいて前記演算処理に割り振られている利用率よりも大きな空き容量を有する他のコアを含んでおり、
    前記ハードウェアプロセッサは、前記予測モデルの演算処理に対する割り当てを前記一のコアから前記他のコアに置き換えて、前記一のコアにおいて前記演算処理に割り振られていた利用率よりも大きな利用率を前記他のコアにおいて前記演算処理に割り振ることで、前記予測モデルの演算処理を加速する、
    制御装置。
  2. ハードウェアプロセッサと、
    前記ハードウェアプロセッサにより実行されるプログラムを保持するメモリと、
    を備える制御装置であって、
    前記ハードウェアプロセッサは、前記プログラムに含まれる一連の命令に基づいて、
    ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
    前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
    算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
    前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、
    決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、
    前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を加速するステップと、
    を実行し、
    前記予測モデルの演算処理を加速するステップを実行した後に、前記ハードウェアプロセッサは、前記残処理時間を算出するステップ、及び前記指令値の決定が前記制御タイミングに間に合うか否かを判定するステップを再度実行する、
    御装置。
  3. ハードウェアプロセッサと、
    前記ハードウェアプロセッサにより実行されるプログラムを保持するメモリと、
    を備える制御装置であって、
    前記ハードウェアプロセッサは、前記プログラムに含まれる一連の命令に基づいて、
    ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
    前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
    算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
    前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、
    決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、
    前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を加速するステップと、
    を実行し、
    前記ハードウェアプロセッサは、
    前記予測モデルの演算処理の加速が可能か否かを判定し、
    前記予測モデルの演算処理の加速が可能ではないと判定した場合、前記予測モデルの演算処理を中止し、予め与えられた設定値を指令値に指定し、指定した前記指令値に基づいて、前記生産装置の動作を制御する、
    御装置。
  4. 前記予測モデルは、前記製品の生産に適応した前記指令値の予測の結果として、前記指令値の基準値に対する補正値を出力するように構成される、
    請求項1からのいずれか1項に記載の制御装置。
  5. 前記予測モデルは、前記ワークの特徴量及び前記製品を生産する環境の属性値の少なくとも一方の入力に対して、前記製品の生産に適応した前記指令値を予測するように構築される、
    請求項1からのいずれか1項に記載の制御装置。
  6. コンピュータのハードウェアプロセッサが、
    ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
    前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
    算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
    前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、
    決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、
    前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を加速するステップと、
    を実行し、
    前記ハードウェアプロセッサは、複数のコアで構成され、
    前記予測モデルの演算処理には、前記複数のコアのうちの一のコアが割り当てられ、
    前記複数のコアは、前記予測モデルの演算処理に割り当てられていない他のコアであって、前記一のコアにおいて前記演算処理に割り振られている利用率よりも大きな空き容量を有する他のコアを含んでおり、
    前記ハードウェアプロセッサは、前記予測モデルの演算処理に対する割り当てを前記一のコアから前記他のコアに置き換えて、前記一のコアにおいて前記演算処理に割り振られていた利用率よりも大きな利用率を前記他のコアにおいて前記演算処理に割り振ることで、前記予測モデルの演算処理を加速する、
    制御方法。
  7. コンピュータのハードウェアプロセッサが、
    ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
    前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
    算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
    前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、
    決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、
    前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を加速するステップと、
    を実行し、
    前記予測モデルの演算処理を加速するステップを実行した後に、前記ハードウェアプロセッサは、前記残処理時間を算出するステップ、及び前記指令値の決定が前記制御タイミングに間に合うか否かを判定するステップを再度実行する、
    制御方法。
  8. コンピュータのハードウェアプロセッサが、
    ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
    前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
    算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
    前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、
    決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、
    前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を加速するステップと、
    を実行し、
    前記ハードウェアプロセッサは、
    前記予測モデルの演算処理の加速が可能か否かを判定し、
    前記予測モデルの演算処理の加速が可能ではないと判定した場合、前記予測モデルの演算処理を中止し、予め与えられた設定値を指令値に指定し、指定した前記指令値に基づいて、前記生産装置の動作を制御する、
    制御方法。
  9. コンピュータのハードウェアプロセッサに、
    ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
    前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
    算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
    前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、
    決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、
    前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を加速するステップと、
    を実行させるための制御プログラムであって
    前記ハードウェアプロセッサは、複数のコアで構成され、
    前記予測モデルの演算処理には、前記複数のコアのうちの一のコアが割り当てられ、
    前記複数のコアは、前記予測モデルの演算処理に割り当てられていない他のコアであって、前記一のコアにおいて前記演算処理に割り振られている利用率よりも大きな空き容量を有する他のコアを含んでおり、
    前記ハードウェアプロセッサに、前記予測モデルの演算処理に対する割り当てを前記一のコアから前記他のコアに置き換えさせ、前記一のコアにおいて前記演算処理に割り振られていた利用率よりも大きな利用率を前記他のコアにおいて前記演算処理に割り振らせることで、前記予測モデルの演算処理を加速させる、
    制御プログラム。
  10. コンピュータのハードウェアプロセッサに、
    ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
    前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
    算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
    前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、
    決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、
    前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を加速するステップと、
    を実行させるための制御プログラムであって、
    前記予測モデルの演算処理を加速するステップを実行させた後に、前記ハードウェアプロセッサに、前記残処理時間を算出するステップ、及び前記指令値の決定が前記制御タイミングに間に合うか否かを判定するステップを再度実行させる、
    制御プログラム。
  11. コンピュータのハードウェアプロセッサに、
    ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
    前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
    算出した前記残処理時間に基づいて、前記予測モデルから得られる出力に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
    前記指令値の決定が前記制御タイミングに間に合うと判定した場合に、前記予測モデルの演算処理を完了するまで継続することで、前記予測モデルから出力を取得し、前記予測モデルから取得した出力に基づいて、前記生産装置への指令値を決定するステップと、
    決定した前記指令値に基づいて、前記生産装置の動作を制御するステップと、
    前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を加速するステップと、
    を実行させるための制御プログラムであって、
    前記ハードウェアプロセッサに、
    前記予測モデルの演算処理の加速が可能か否かを判定させ、
    前記予測モデルの演算処理の加速が可能ではないと判定した場合、前記予測モデルの演算処理を中止させ、予め与えられた設定値を指令値に指定させ、指定した前記指令値に基づいて、前記生産装置の動作を制御させる、
    制御プログラム。
JP2018069320A 2018-03-30 2018-03-30 制御装置、制御方法、及び制御プログラム Active JP6958461B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018069320A JP6958461B2 (ja) 2018-03-30 2018-03-30 制御装置、制御方法、及び制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018069320A JP6958461B2 (ja) 2018-03-30 2018-03-30 制御装置、制御方法、及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2019179469A JP2019179469A (ja) 2019-10-17
JP6958461B2 true JP6958461B2 (ja) 2021-11-02

Family

ID=68278764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018069320A Active JP6958461B2 (ja) 2018-03-30 2018-03-30 制御装置、制御方法、及び制御プログラム

Country Status (1)

Country Link
JP (1) JP6958461B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021065876A1 (ja) 2019-09-30 2021-04-08 テルモ株式会社 エネルギー発生装置および焼灼システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6113429B2 (ja) * 2012-07-24 2017-04-12 株式会社日立ハイテクノロジーズ ステージ装置及び試料搬送装置並びに位置決め制御方法
JP6151669B2 (ja) * 2014-06-27 2017-06-21 ファナック株式会社 加工プログラム指令内容に応じてcpu負荷を分散可能な数値制御装置

Also Published As

Publication number Publication date
JP2019179469A (ja) 2019-10-17

Similar Documents

Publication Publication Date Title
JP6888577B2 (ja) 制御装置、制御方法、及び制御プログラム
JP7031502B2 (ja) 制御システム、制御方法、学習装置、制御装置、学習方法及び学習プログラム
US20160098631A1 (en) Apparatus and method for learning a model corresponding to time-series input data
KR102016270B1 (ko) 열간 자유단조 공정의 작업 계획 최적화 시스템 및 방법
US11301294B2 (en) Control device, control method, and control program
US11513851B2 (en) Job scheduler, job schedule control method, and storage medium
US20200159205A1 (en) Cloud and edge manufacturing data processing system
JP2018142199A (ja) 学習システムおよび学習方法
CN115827253B (zh) 一种芯片资源算力分配方法、装置、设备及存储介质
JP6958461B2 (ja) 制御装置、制御方法、及び制御プログラム
US20230234136A1 (en) Heat-aware toolpath reordering for 3d printing of physical parts
CN112308337A (zh) 电力***概率性短期负荷的预测方法、预测装置与处理器
CN114528966B (zh) 一种本地学习方法、设备及介质
EP4154067B1 (en) Method and system for determining a compression rate for an ai model of an industrial task
US11513866B1 (en) Method and system for managing resource utilization based on reinforcement learning
JP6659260B2 (ja) Plcプログラムの最適化機能を備えた制御装置及び機械学習器
EP4180954A1 (en) Information processing device, information processing method, and program
CN114819778A (zh) 进入工艺流程时机生成方法、装置、设备及可读存储介质
US20210089885A1 (en) Training device and training method
EP4369193A1 (en) Job schedule quality prediction and job scheduling
TWI756974B (zh) 機器學習系統及其資源配置方法
CN116738239B (zh) 模型训练方法、资源调度方法及装置、***、设备及介质
JP2020071510A (ja) 生産システム、生産システムの制御方法および生産制御装置
WO2009107313A1 (ja) 確率モデル選択装置、確率モデル選択方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210421

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210920

R150 Certificate of patent or registration of utility model

Ref document number: 6958461

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150