(57)【要約】【課題】生産装置の予測制御を適切に実施する。【解決手段】本発明の一側面に係る制御装置は、予測モデルの演算処理を開始するステップと、予測モデルの演算処理を開始した後に、当該演算処理が完了するまでの残処理時間を算出するステップと、算出した残処理時間に基づいて、予測モデルから得られる出力に基づく指令値の決定が生産装置による生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、指令値の決定が制御タイミングに間に合わないと判定した場合、予測モデルの演算処理を中止し、演算処理の途中結果の値に基づいて指令値を決定し、決定した指令値に基づいて生産装置の動作を制御するステップと、を実行する。【選択図】図９Ｂ
2019179468.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアプロセッサと、
前記ハードウェアプロセッサにより実行されるプログラムを保持するメモリと、
を備える制御装置であって、
前記ハードウェアプロセッサは、前記プログラムに含まれる一連の命令に基づいて、
ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
算出した前記残処理時間に基づいて、前記予測モデルから得られる出力値に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
前記指令値の決定が前記制御タイミングに間に合うと判定した場合、前記予測モデルの演算処理を完了するまで継続することで、前記演算処理の最終結果として前記予測モデルから出力値を取得し、前記予測モデルから取得した出力値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、
前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を中止し、前記演算処理の途中結果の値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、
を実行する、
制御装置。
【請求項２】
前記予測モデルは、決定木により構成されており、
決定木は、根ノード、葉ノード、及び前記根ノードと前記葉ノードとの間に配置された中間ノードを含み、
前記予測モデルの演算処理は、前記決定木の根ノードから葉ノードに向けてリンクをたどる探索処理であり、
前記葉ノードには、第１の値が対応付けられており、
前記決定木の探索処理を完了した際には、前記ハードウェアプロセッサは、前記探索処理において到達した葉ノードに対応付けられた第１の値を前記出力値として取得し、
前記決定木の探索処理を中止した際には、前記ハードウェアプロセッサは、前記探索処理を中止した時点で到達した中間ノードに属する葉ノードに対応付けられた第１の値に基づいて決定された第２の値を前記途中結果の値として取得する、
請求項１に記載の制御装置。
【請求項３】
前記第２の値は、前記探索処理を中止した時点で到達した中間ノードに属する全ての葉ノードに対応付けられた第１の値の平均値である、
請求項２に記載の制御装置。
【請求項４】
前記第２の値は、前記中間ノードに紐付けられており、
前記決定木の探索処理を中止した際には、前記ハードウェアプロセッサは、前記探索処理を中止した時点で到達した中間ノードに紐付けられた第２の値を前記途中結果の値として取得する、
請求項２又は３に記載の制御装置。
【請求項５】
前記予測モデルの演算処理を中止した場合、前記ハードウェアプロセッサは、前記途中結果の値が予測の結果として信頼できるか否かの度合いを示す信頼度を取得し、
前記ハードウェアプロセッサは、取得した前記信頼度が、指定された閾値を超えるか否かを判定し、
前記信頼度が前記閾値を超えると判定した場合には、前記ハードウェアプロセッサは、前記途中結果の値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御し、
前記信頼度が前記閾値を超えないと判定した場合には、前記ハードウェアプロセッサは、前記途中結果の値に基づいて前記生産装置への指令値を決定する処理を省略して、予め与えられた設定値を前記指令値に指定し、指定した前記指令値に基づいて前記生産装置の動作を制御する、
請求項１から４のいずれか１項に記載の制御装置。
【請求項６】
前記信頼度は、前記演算処理の進行度に基づいて決定される、
請求項５に記載の制御装置。
【請求項７】
前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記ハードウェアプロセッサは、前記予測モデルの演算処理を加速するステップを更に実行し、
前記予測モデルの演算処理を加速するステップを実行した後に、前記ハードウェアプロセッサは、前記残処理時間を算出するステップ、及び前記指令値の決定が前記制御タイミングに間に合うか否かを判定するステップを再度実行し、
前記指令値の決定が前記制御タイミングに間に合わないと再度判定した場合、前記ハードウェアプロセッサは、前記予測モデルの演算処理を中止し、前記演算処理の途中結果の値に基づいて前記生産装置への指令値を決定する、
請求項１から６のいずれか１項に記載の制御装置。
【請求項８】
前記ハードウェアプロセッサは、
前記予測モデルの演算処理の加速が可能か否かを判定し、
前記予測モデルの演算処理の加速が可能ではないと判定した場合、前記予測モデルの演算処理を中止し、前記演算処理の途中結果の値に基づいて前記生産装置への指令値を決定する、
請求項７に記載の制御装置。
【請求項９】
前記ハードウェアプロセッサは、１又は複数のコアで構成され、
前記予測モデルの演算処理には、少なくとも１つのコアが割り当てられ、
前記ハードウェアプロセッサは、前記予測モデルの演算処理に対して、割り当てられた前記コアの利用率を高めることで、前記予測モデルの演算処理を加速する、
請求項７又は８に記載の制御装置。
【請求項１０】
前記ハードウェアプロセッサは、１又は複数のコアで構成され、
前記予測モデルの演算処理には、少なくとも１つのコアが割り当てられ、
前記ハードウェアプロセッサは、割り当てられた前記コアにおいて、前記予測モデルの演算処理の優先度を高めることによって、前記予測モデルの演算処理を加速する、
請求項７から９のいずれか１項に記載の制御装置。
【請求項１１】
前記ハードウェアプロセッサは、複数のコアで構成され、
前記予測モデルの演算処理には、前記複数のコアのうちの第１のコアが割り当てられ、
前記ハードウェアプロセッサは、前記複数のコアのうちの第２のコアであって、前記予測モデルの演算処理に割り当てられていなかった第２のコアを、前記予測モデルの演算処理に更に割り当てることによって、前記予測モデルの演算処理を加速する、
請求項７から１０のいずれか１項に記載の制御装置。
【請求項１２】
前記ハードウェアプロセッサは、複数のコアで構成され、
前記予測モデルの演算処理には、前記複数のコアのうちの第３のコアが割り当てられ、
前記複数のコアは、前記予測モデルの演算処理に割り当てられていない第４のコアであって、前記第３のコアにおいて前記演算処理に割り振られている利用率よりも大きな空き容量を有する第４のコアを含んでおり、
前記ハードウェアプロセッサは、前記予測モデルの演算処理に対する割り当てを前記第３のコアから前記第４のコアに置き換えて、前記第３のコアにおいて前記演算処理に割り振られていた利用率よりも大きな利用率を前記第４のコアにおいて前記演算処理に割り振ることで、前記予測モデルの演算処理を加速する、
請求項７から１１のいずれか１項に記載の制御装置。
【請求項１３】
前記予測モデルは、前記製品の生産に適応した前記指令値の予測の結果に対応する前記出力値として、前記指令値の基準値に対する補正値を出力するように構成される、
請求項１から１２のいずれか１項に記載の制御装置。
【請求項１４】
前記予測モデルは、前記ワークの特徴量及び前記製品を生産する環境の属性値の少なくとも一方の入力に対して、前記製品の生産に適応した前記指令値を予測するように構築される、
請求項１から１３のいずれか１項に記載の制御装置。
【請求項１５】
コンピュータが、
ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
算出した前記残処理時間に基づいて、前記予測モデルから得られる出力値に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
前記指令値の決定が前記制御タイミングに間に合うと判定した場合、前記予測モデルの演算処理を完了するまで継続することで、前記演算処理の最終結果として前記予測モデルから出力値を取得し、前記予測モデルから取得した出力値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、
前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を中止し、前記演算処理の途中結果の値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、
を実行する、
制御方法。
【請求項１６】
コンピュータに、
ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、
前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、
算出した前記残処理時間に基づいて、前記予測モデルから得られる出力値に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、
前記指令値の決定が前記制御タイミングに間に合うと判定した場合、前記予測モデルの演算処理を完了するまで継続することで、前記演算処理の最終結果として前記予測モデルから出力値を取得し、前記予測モデルから取得した出力値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、
前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を中止し、前記演算処理の途中結果の値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、
を実行させるための、
制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
近年、様々な装置において、未来の状態を予測し、予測した未来の状態に適した動作の制御を行うための予測制御の技術が開発されている。例えば、特許文献１では、車両の動作を制御する制御装置であって、投機的実行により車両の走行を制御する第１の演算部と、投機的実行では予測不能な事態が生じても安全性を確保可能に車両の動作を制御する第２の演算部と、を備える制御装置が提案されている。具体的に、第１の演算部は、将来の入力値を予測して、最適な走行を行うように車両の動作を制御する。一方、第２の演算部は、目標速度に等しい速度で走行し、自車と歩行者との間の距離が一定値以下になった際に急ブレーキをかけるように車両の動作を制御する。この制御装置は、第１の演算部による制御が一定の安全基準を満たす場合には、第１の演算部の演算結果を利用して車両の動作を制御し、第１の演算部による制御が一定の安全基準を満たさない場合には、第２の演算部の演算結果を利用して車両の動作を制御する。これにより、特許文献１によれば、一定の安全性を確保しつつ、最適な走行を行うように車両の動作を制御することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１９２０１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本件発明者らは、比較的に短いサイクルでワークから製品を生産する生産装置の動作を予測制御するケースでは、次のような問題が生じ得ることを見出した。すなわち、このような生産装置では、ワークを処理するタイミングが比較的に短いサイクルで訪れる。そのため、予測制御の演算処理が複雑である、演算資源（例えば、プロセッサ等）が他の処理に優先的に割り当てられている等に起因して、予測制御の演算処理が遅延してしまうと、当該予測制御の演算処理が、ワークを処理するタイミングまでに完了しない可能性がある。予測制御の演算処理が、ワークを処理するタイミングまでに完了しなければ、生産装置の予測制御を適切に遂行することができなくなってしまうという問題点が生じることを本件発明者らは見出した。
【０００５】
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、生産装置の予測制御を適切に実施する技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【０００７】
すなわち、本発明の一側面に係る制御装置は、ハードウェアプロセッサと、前記ハードウェアプロセッサにより実行されるプログラムを保持するメモリと、を備える制御装置であって、前記ハードウェアプロセッサは、前記プログラムに含まれる一連の命令に基づいて、ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、算出した前記残処理時間に基づいて、前記予測モデルから得られる出力値に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、前記指令値の決定が前記制御タイミングに間に合うと判定した場合、前記予測モデルの演算処理を完了するまで継続することで、前記演算処理の最終結果として前記予測モデルから出力値を取得し、前記予測モデルから取得した出力値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を中止し、前記演算処理の途中結果の値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、を実行する。
【０００８】
当該構成に係る制御装置は、予測モデルを利用して生産装置への指令値を予測する際に、残処理時間を算出するステップ、及び残処理時間に基づいて、予測モデルによる指令値の決定が制御タイミングに間に合うか否かを判定するステップを実行する。これにより、当該構成に係る制御装置は、予測モデルを利用した指令値の予測に関する演算処理が、その予測した指令値を利用して生産装置の動作を制御するタイミングに間に合うか否かを確認することができる。
【０００９】
その上で、当該構成に係る制御装置は、予測モデルによる指令値の決定が制御タイミングに間に合うと判定した場合には、予測モデルの演算処理を完了するまで継続して、当該予測モデルによる予測制御を実行することができる。一方、当該構成に係る制御装置は、予測モデルによる指令値の決定が制御タイミング間に合わないと判定した場合には、予測モデルの演算処理を中止し、演算処理の途中結果の値に基づいて指令値を決定し、決定した指令値に基づいて生産装置の動作を制御する。これにより、予測モデルによる指令値の決定が制御タイミングに間に合わないことにより、生産装置の動作を制御する処理が滞ってしまうことを防止することができる。したがって、当該構成によれば、生産装置の予測制御を適切に実施することができる。
【００１０】
なお、「生産装置」は、何らかの生産処理を行い、制御の対象となり得る装置であれば特に限定されなくてもよく、例えば、プレス機、射出成形機、ＮＣ旋盤、放電加工機、包装機、搬送機、検査機内の搬送機構等であってよい。「ワーク」は、生産装置の作業対象となり得る物であれば特に限定されなくてもよく、例えば、製品の原料、加工前の物、組み立て前の部品等であってよい。「製品」は、ワークに対して生産装置が生産処理を行うことで得られる物であり、最終品の他、中間品（加工途中のもの）を含んでもよい。「予測モデル」は、予測処理を実行する時点よりも先の時点（将来の時点）における生産装置への指令値を予測可能なモデルであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。「予測モデル」は、演算処理の途中結果の値を出力可能なモデルであれば特に限定されなくてもよい。「予測モデル」には、例えば、決定木等の学習モデルが用いられてもよい。
【００１１】
上記一側面に係る制御装置において、前記予測モデルは、決定木により構成されていてもよく、決定木は、根ノード、葉ノード、及び前記根ノードと前記葉ノードとの間に配置された中間ノードを含んでもよく、前記予測モデルの演算処理は、前記決定木の根ノードから葉ノードに向けてリンクをたどる探索処理であってよく、前記葉ノードには、第１の値が対応付けられていてもよく、前記決定木の探索処理を完了した際には、前記ハードウェアプロセッサは、前記探索処理において到達した葉ノードに対応付けられた第１の値を前記出力値として取得してもよく、前記決定木の探索処理を中止した際には、前記ハードウェアプロセッサは、前記探索処理を中止した時点で到達した中間ノードに属する葉ノードに対応付けられた第１の値に基づいて決定された第２の値を前記途中結果の値として取得してもよい。当該構成によれば、予測モデルの演算処理を中止した場合でも、演算処理の途中結果の値を決定木から適切に取得することができる。そのため、予測モデルの演算処理が完了しなかった場合でも、製品の生産に比較的に適応した指令値に基づいて、生産装置の動作を制御することができる。
【００１２】
上記一側面に係る制御装置において、前記第２の値は、前記探索処理を中止した時点で到達した中間ノードに属する全ての葉ノードに対応付けられた第１の値の平均値であってよい。当該構成によれば、予測モデルの演算処理が完了しなかった場合でも、製品の生産に比較的に適応した指令値に基づいて、生産装置の動作を制御することができる。
【００１３】
上記一側面に係る制御装置において、前記第２の値は、前記中間ノードに紐付けられていてもよく、前記決定木の探索処理を中止した際には、前記ハードウェアプロセッサは、前記探索処理を中止した時点で到達した中間ノードに紐付けられた第２の値を前記途中結果の値として取得してもよい。当該構成によれば、予測モデルの演算処理を中止した場合に、演算処理の途中結果の値を取得する演算コストを抑えることができる。
【００１４】
上記一側面に係る制御装置において、前記予測モデルの演算処理を中止した場合、前記ハードウェアプロセッサは、前記途中結果の値が予測の結果として信頼できるか否かの度合いを示す信頼度を取得してもよく、前記ハードウェアプロセッサは、取得した前記信頼度が、指定された閾値を超えるか否かを判定してもよく、前記信頼度が前記閾値を超えると判定した場合には、前記ハードウェアプロセッサは、前記途中結果の値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御してもよく、前記信頼度が前記閾値を超えないと判定した場合には、前記ハードウェアプロセッサは、前記途中結果の値に基づいて前記生産装置への指令値を決定する処理を省略して、予め与えられた設定値を前記指令値に指定し、指定した前記指令値に基づいて前記生産装置の動作を制御してもよい。当該構成によれば、予測モデルの演算処理が完了しなかった場合でも、製品の生産に適応した指令値に基づいて、生産装置の動作を制御することができるようになる。なお、予め与えられた設定値とは、例えば、指令値の基準値、過去の指令値（繰り返し動作を制御している場合には、例えば、前回値）である。過去の指令値は、例えば、制御状況が同一の前回値であってよい。
【００１５】
上記一側面に係る制御装置において、前記信頼度は、前記演算処理の進行度に基づいて決定されてよい。当該構成によれば、途中結果の値の信頼度を適切に評価することができる。これにより、予測モデルの演算処理が完了しなかった場合でも、製品の生産に適応した指令値に基づいて、生産装置の動作を制御することができるようになる。なお、予測モデルが決定木により構成される場合、演算処理の進行度は、例えば、探索処理が到達した木の深さにより特定される。
【００１６】
上記一側面に係る制御装置において、前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記ハードウェアプロセッサは、前記予測モデルの演算処理を加速するステップを更に実行してもよく、前記予測モデルの演算処理を加速するステップを実行した後に、前記ハードウェアプロセッサは、前記残処理時間を算出するステップ、及び前記指令値の決定が前記制御タイミングに間に合うか否かを判定するステップを再度実行してもよく、前記指令値の決定が前記制御タイミングに間に合わないと再度判定した場合、前記ハードウェアプロセッサは、前記予測モデルの演算処理を中止し、前記演算処理の途中結果の値に基づいて前記生産装置への指令値を決定してもよい。当該構成によれば、予測モデルの演算処理を加速することで、指令値の決定が制御タイミングに間に合うようにすることができる。これによって、予測制御を打ち切る可能性を低減し、予測制御を適切に実施することができるようになる。なお、演算処理の加速は、当該演算処理に対するハードウェア資源の割り当てを優先することで実現可能である。
【００１７】
上記一側面に係る制御装置において、前記ハードウェアプロセッサは、前記予測モデルの演算処理の加速が可能か否かを判定してもよく、前記予測モデルの演算処理の加速が可能ではないと判定した場合、前記予測モデルの演算処理を中止し、前記演算処理の途中結果の値に基づいて前記生産装置への指令値を決定してもよい。当該構成によれば、予測モデルの演算処理を加速する余地がなく、かつ予測モデルによる指令値の決定が制御タイミングに間に合わないと判定される場合に、途中結果の値に基づいて指令値を決定する。これにより、生産装置の予測制御を適切に実施することができる。なお、予測モデルの演算処理の加速が可能か否かを判定する条件は、実施の形態に応じて適宜設定されてよい。予測モデルの演算処理の加速が可能ではないケースは、例えば、当該演算処理に優先的にハードウェア資源を割り当てる余地がないケースである。
【００１８】
上記一側面に係る制御装置において、前記ハードウェアプロセッサは、１又は複数のコアで構成されてよく、前記予測モデルの演算処理には、少なくとも１つのコアが割り当てられてよく、前記ハードウェアプロセッサは、前記予測モデルの演算処理に対して、割り当てられた前記コアの利用率を高めることで、前記予測モデルの演算処理を加速してもよい。当該構成によれば、予測モデルの演算処理を適切に加速することができ、これによって、予測制御を適切に実施することができるようになる。
【００１９】
上記一側面に係る制御装置において、前記ハードウェアプロセッサは、１又は複数のコアで構成されてよく、前記予測モデルの演算処理には、少なくとも１つのコアが割り当てられてよく、前記ハードウェアプロセッサは、割り当てられた前記コアにおいて、前記予測モデルの演算処理の優先度を高めることによって、前記予測モデルの演算処理を加速してもよい。当該構成によれば、予測モデルの演算処理を適切に加速することができ、これによって、予測制御を適切に実施することができるようになる。
【００２０】
上記一側面に係る制御装置において、前記ハードウェアプロセッサは、複数のコアで構成されてよく、前記予測モデルの演算処理には、前記複数のコアのうちの第１のコアが割り当てられてよく、前記ハードウェアプロセッサは、前記複数のコアのうちの第２のコアであって、前記予測モデルの演算処理に割り当てられていなかった第２のコアを、前記予測モデルの演算処理に更に割り当てることによって、前記予測モデルの演算処理を加速してもよい。当該構成によれば、予測モデルの演算処理を適切に加速することができ、これによって、予測制御を適切に実施することができるようになる。なお、第１のコア及び第２のコアはそれぞれ、１つであってもよいし、複数であってもよい。
【００２１】
上記一側面に係る制御装置において、前記ハードウェアプロセッサは、複数のコアで構成されてよく、前記予測モデルの演算処理には、前記複数のコアのうちの第３のコアが割り当てられてよく、前記複数のコアは、前記予測モデルの演算処理に割り当てられていない第４のコアであって、前記第３のコアにおいて前記演算処理に割り振られている利用率よりも大きな空き容量を有する第４のコアを含んでいてもよく、前記ハードウェアプロセッサは、前記予測モデルの演算処理に対する割り当てを前記第３のコアから前記第４のコアに置き換えて、前記第３のコアにおいて前記演算処理に割り振られていた利用率よりも大きな利用率を前記第４のコアにおいて前記演算処理に割り振ることで、前記予測モデルの演算処理を加速してもよい。当該構成によれば、予測モデルの演算処理を適切に加速することができ、これによって、予測制御を適切に実施することができるようになる。なお、第３のコア及び第４のコアはそれぞれ、１つであってもよいし、複数であってもよい。
【００２２】
上記一側面に係る制御装置において、前記予測モデルは、前記製品の生産に適応した前記指令値の予測の結果に対応する前記出力値として、前記指令値の基準値に対する補正値を出力するように構成されてよい。当該構成によれば、予測モデルから得られる補正値を利用して、生産装置への指令値を適切に決定することができる。
【００２３】
上記一側面に係る制御装置において、前記予測モデルは、前記ワークの特徴量及び前記製品を生産する環境の属性値の少なくとも一方の入力に対して、前記製品の生産に適応した前記指令値を予測するように構築されてよい。当該構成によれば、生産装置による製品の生産工程に影響を与え得る要因を考慮して、生産装置への指令値を決定することができるようになる。
【００２４】
なお、「ワークの特徴量」は、ワークの何らかの特徴を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ワークの特徴量は、例えば、硬さ、寸法、材質、重さ、熱等である。また、ワークの特徴量は、ワークの特徴を直接的に示すものであってもよいし、ワークの特徴を間接的に示すものであってもよい。ワークの特徴を直接的に示すとは、例えば、ワークの硬さ（硬度）そのものを数値、クラス等で表現することである。一方、ワークの特徴を間接的に示すとは、例えば、ワークの硬さ（硬度）を測定する際に得られた２次的指標（例えば、ワークにかかる荷重、測定の際に作用させたトルク等）を数値、クラス等で表現することである。
【００２５】
また、「製品を生産する環境の属性値」は、生産装置が稼動する環境に関する何らかの属性を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。製品を生産する環境の属性値は、例えば、生産装置の周囲の温度、湿度、装置の劣化度合い（例えば、経年数、加工回数等）、振動等であってよい。
【００２６】
なお、上記各形態に係る制御装置の別の態様として、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【００２７】
例えば、本発明の一側面に係る制御方法は、コンピュータが、ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、算出した前記残処理時間に基づいて、前記予測モデルから得られる出力値に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、前記指令値の決定が前記制御タイミングに間に合うと判定した場合、前記予測モデルの演算処理を完了するまで継続することで、前記演算処理の最終結果として前記予測モデルから出力値を取得し、前記予測モデルから取得した出力値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を中止し、前記演算処理の途中結果の値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、を実行する、情報処理方法である。
【００２８】
また、例えば、本発明の一側面に係る制御プログラムは、コンピュータに、ワークから製品を生産する生産装置への指令値であって、当該生産装置による前記製品の生産に適応した指令値を予測するように構築された予測モデルの演算処理を開始するステップと、前記予測モデルの演算処理を開始した後に、前記予測モデルの演算処理が完了するまでの残処理時間を算出するステップと、算出した前記残処理時間に基づいて、前記予測モデルから得られる出力値に基づく前記指令値の決定が、前記生産装置による前記生産の動作を制御する制御タイミングに間に合うか否かを判定するステップと、前記指令値の決定が前記制御タイミングに間に合うと判定した場合、前記予測モデルの演算処理を完了するまで継続することで、前記演算処理の最終結果として前記予測モデルから出力値を取得し、前記予測モデルから取得した出力値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、前記指令値の決定が前記制御タイミングに間に合わないと判定した場合、前記予測モデルの演算処理を中止し、前記演算処理の途中結果の値に基づいて前記生産装置への指令値を決定し、決定した前記指令値に基づいて前記生産装置の動作を制御するステップと、を実行させるための、プログラムである。
【発明の効果】
【００２９】
本発明によれば、生産装置の予測制御を適切に実施することができる。
【図面の簡単な説明】
【００３０】
【図１】図１は、本発明が適用される場面の一例を模式的に例示する。
【図２】図２は、実施の形態に係る制御装置のハードウェア構成の一例を模式的に例示する。
【図３】図３は、実施の形態に係る生産装置の一例を模式的に例示する。
【図４Ａ】図４Ａは、図３の生産装置における生産工程の一例を模式的に例示する。
【図４Ｂ】図４Ｂは、図３の生産装置における生産工程の一例を模式的に例示する。
【図４Ｃ】図４Ｃは、図３の生産装置における生産工程の一例を模式的に例示する。
【図４Ｄ】図４Ｄは、図３の生産装置における生産工程の一例を模式的に例示する。
【図５】図５は、実施の形態に係る学習装置のハードウェア構成の一例を模式的に例示する。
【図６】図６は、実施の形態に係る制御装置のソフトウェア構成の一例を模式的に例示する。
【図７Ａ】図７Ａは、実施の形態に係る予測モデルの一例を模式的に例示する。
【図７Ｂ】図７Ｂは、予測モデルに対する入力と出力との関係を模式的に例示する。
【図８】図８は、実施の形態に係る学習装置のソフトウェア構成の一例を模式的に例示する。
【図９Ａ】図９Ａは、実施の形態に係る制御装置の処理手順の一例を例示する。
【図９Ｂ】図９Ｂは、実施の形態に係る制御装置の処理手順の一例を例示する。
【図１０】図１０は、割当情報の一例を模式的に例示する。
【図１１】図１１は、コアのスケジューリングを説明するための図である。
【図１２Ａ】図１２Ａは、加速処理の一例を模式的に例示する。
【図１２Ｂ】図１２Ｂは、加速処理の一例を模式的に例示する。
【図１２Ｃ】図１２Ｃは、加速処理の一例を模式的に例示する。
【図１２Ｄ】図１２Ｄは、加速処理の一例を模式的に例示する。
【図１３】図１３は、途中結果の値を算出する方法を説明するための図である。
【図１４】図１４は、実施の形態に係る学習装置の処理手順の一例を例示する。
【発明を実施するための形態】
【００３１】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００３２】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態に係る制御装置１及び学習装置２の利用場面の一例を模式的に例示する。
【００３３】
図１に示されるとおり、本実施形態に係る制御装置１は、生産装置３の動作を制御するように構成された情報処理装置である。図１の例では、生産装置３は、ワークを加工するプレス機である。このプレス機は、本発明の「生産装置」の一例である。ただし、制御装置１を適用可能な生産装置は、このようなプレス機に限られなくてもよく、実施の形態に応じて適宜選択されてよい。生産装置３は、例えば、プレス機の他、射出成形機、ＮＣ旋盤、放電加工機、包装機、搬送機、検査機内の搬送機構等であってよい。
【００３４】
具体的に、本実施形態に係る制御装置１は、まず、ワークから製品を生産する生産装置３への指令値であって、当該生産装置３による製品の生産に適応した指令値を予測するように構築された予測モデル（後述する予測モデル５）の演算処理を開始する。予測モデルの演算処理を開始した後、制御装置１は、予測モデルの演算処理が完了するまでの残処理時間を算出する。制御装置１は、例えば、演算処理の進捗状態を確認することで、当該演算処理の残処理量を算出し、算出した残処理量に基づいて残処理時間を算出する。この残処理時間は、制御装置１における演算資源の状況によって変化し得る。次に、制御装置１は、算出した残処理時間に基づいて、予測モデルから得られる出力値に基づく指令値の決定が、生産装置３による生産の動作を制御する制御タイミングに間に合うか否かを判定する。これにより、制御装置１は、予測モデルを利用した指令値の予測に関する演算処理が、その予測した指令値を利用して生産装置３の動作を制御するタイミングに間に合うか否かを確認することができる。
【００３５】
指令値の決定が制御タイミングに間に合うと判定した場合には、制御装置１は、予測モデルの演算処理を完了するまで継続することで、予測モデルから出力値を取得し、予測モデルから取得した出力値に基づいて、生産装置３への指令値を決定する。そして、制御装置１は、決定した指令値に基づいて、生産装置３の動作を制御する。一方、指令値の決定が制御タイミングに間に合わないと判定した場合、制御装置１は、予測モデル５の演算処理を中止し、演算処理の途中結果の値に基づいて生産装置３への指令値を決定する。そして、制御装置１は、決定した指令値に基づいて、生産装置３の動作を制御する。
【００３６】
これに対して、本実施形態に係る学習装置２は、制御装置１で利用する予測モデルを構築するように構成された情報処理装置である。本実施形態では、予測モデルは、学習モデル（後述する決定木）により構成される。そのため、学習装置２は、機械学習に利用する学習データ（後述する学習用データセット２２１）を取得し、取得した学習データを利用した機械学習を行うことで、生産装置３による製品の生産に適応した指令値を予測する能力を獲得した予測モデルを構築する。制御装置１は、例えば、ネットワークを介して、学習装置２により作成された学習済みの予測モデルを取得することができる。なお、ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
【００３７】
以上のとおり、本実施形態では、予測モデルを利用して生産装置３への指令値を予測する際に、残処理時間を算出するステップ、及び残処理時間に基づいて、予測モデルによる指令値の決定が制御タイミングに間に合うか否かを判定するステップを実行する。これにより、予測モデルを利用した指令値の予測に関する演算処理が、その予測した指令値を利用して生産装置３の動作を制御するタイミングに間に合うか否かを確認することができる。
【００３８】
特に、制御装置１では、上記予測モデルの演算処理以外の他のタスクを含む複数のタスクが処理され得る。この場合には、例えば、割込みのタスクが発生する等により、制御装置１における演算資源が同一の条件で利用できるとは限らない。すなわち、制御装置１における演算資源の状況は時々刻々と変化していき、それに伴って、予測モデルの演算処理に用いることができる演算資源も変化し得る。したがって、予測モデルの演算処理にかかる処理時間は常に一定であるとは限らない。そのため、シミュレーション等により予め特定した処理時間に基づいて、制御タイミングに間に合うように処理可能と判定された予測モデルを制御装置１に搭載したとしても、予測モデルの演算処理が制御タイミングに間に合わない可能性がある。これに対して、本実施形態では、制御装置１は、予測モデルの演算処理を実行する際に、その演算処理にかかる残処理時間を算出する。これにより、演算資源の状況が時々刻々と変化しても、制御装置１は、予測モデルの演算処理が制御タイミングに間に合うか否かを判定することができる。よって、本実施形態によれば、生産装置３の予測制御の演算時間を適切に管理することができる。
【００３９】
その上で、本実施形態に係る制御装置１は、予測モデルによる指令値の決定が制御タイミングに間に合うと判定した場合には、予測モデルの演算処理を完了するまで継続して、当該予測モデルによる予測制御を実行することができる。一方、本実施形態に係る制御装置１は、予測モデルによる指令値の決定が制御タイミング間に合わないと判定した場合には、予測モデルの演算処理を中止し、演算処理の途中結果の値に基づいて指令値を決定し、決定した指令値に基づいて生産装置３の動作を制御する。これにより、予測モデルによる指令値の決定が制御タイミングに間に合わないことにより、生産装置３の動作を制御する処理が滞ってしまうことを防止することができる。したがって、本実施形態によれば、生産装置３の予測制御を適切に実施することができる。
【００４０】
§２  構成例
［ハードウェア構成］
＜制御装置＞
次に、図２を用いて、本実施形態に係る制御装置１のハードウェア構成の一例について説明する。図２は、本実施形態に係る制御装置１のハードウェア構成の一例を模式的に例示する。
【００４１】
図２に示されるとおり、本実施形態に係る制御装置１は、制御部１１、記憶部１２、通信インタフェース１３、外部インタフェース１４、入力装置１５、出力装置１６、及びドライブ１７が電気的に接続されたコンピュータである。なお、図２では、通信インタフェース及び外部インタフェースをそれぞれ「通信Ｉ／Ｆ」及び「外部Ｉ／Ｆ」と記載している。
【００４２】
制御部１１は、ハードウェアプロセッサであるＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部１２は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部１２は、制御部１１（ＣＰＵ）により実行される制御プログラム８１、割当データ１２１、学習結果データ２２５等の各種情報を記憶する。
【００４３】
制御プログラム８１は、生産装置３の動作を制御する後述の情報処理（図９Ａ及び図９Ｂ）を制御装置１に実行させるためのプログラムであり、当該情報処理の一連の命令を含む。割当データ１２１は、制御装置１における演算資源（例えば、ハードウェアプロセッサ、メモリ）に対するタスクの割り当てを示す。学習結果データ２２５は、学習済みの予測モデルの設定を行うためのデータである。詳細は後述する。
【００４４】
通信インタフェース１３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。制御装置１は、この通信インタフェース１３を利用することで、ネットワークを介したデータ通信を他の情報処理装置（例えば、学習装置２）と行うことができる。
【００４５】
外部インタフェース１４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース１４の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、制御装置１は、外部インタフェース１４を介して、生産装置３に接続される。これにより、制御装置１は、生産装置３に対して指令値を送信することで、生産装置３の動作を制御することができる。
【００４６】
入力装置１５は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置１６は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置１５及び出力装置１６を利用することで、制御装置１を操作することができる。
【００４７】
ドライブ１７は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９１に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ１７の種類は、記憶媒体９１の種類に応じて適宜選択されてよい。上記制御プログラム８１及び学習結果データ２２５の少なくとも一方は、この記憶媒体９１に記憶されていてもよい。
【００４８】
記憶媒体９１は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。制御装置１は、この記憶媒体９１から、上記制御プログラム８１及び学習結果データ２２５の少なくとも一方を取得してもよい。
【００４９】
ここで、図２では、記憶媒体９１の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９１の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００５０】
なお、制御装置１の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部１１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ（field-programmable gate array）、ＤＳＰ（digital signal processor）等で構成されてよい。記憶部１２は、制御部１１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。通信インタフェース１３、外部インタフェース１４、入力装置１５、出力装置１６及びドライブ１７の少なくともいずれかは省略されてもよい。制御装置１は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、制御装置１は、提供されるサービス専用に設計された情報処理装置の他、汎用のコントローラ、汎用のサーバ装置、汎用のデスクトップＰＣ（Personal Computer）、ノートＰＣ、タブレットＰＣ等であってもよい。
【００５１】
＜生産装置＞
次に、図３を用いて、本実施形態に係る生産装置３のハードウェア構成の一例について説明する。図３は、本実施形態に係る生産装置３のハードウェア構成の一例を模式的に例示する。
【００５２】
本実施形態に係る生産装置３は、サーボドライバ３１、上側金型３２、及び下側金型３３を備えている。下側金型３３が固定されているのに対して、上側金型３２は、サーボモータ（不図示）によって、上下方向に移動可能に構成されている。これにより、上側金型３２は、下側金型３３にワークを押し付けて、ワークの成形を行ったり、下側金型３３から離れたりすることができる。サーボドライバ３１は、制御装置１からの指令値に基づいて、上側金型３２のサーボモータを駆動するように構成される。
【００５３】
次に、図４Ａ〜図４Ｄを用いて、生産装置３における生産工程の一例を模式的に例示する。生産装置３は、例えば、生産ラインに配置される。図４Ａに示されるとおり、初期状態では、上側金型３２は、下側金型３３から離れた待機位置に配置され、下側金型３３にワーク４０が搬送されるまで待機する。ワーク４０は、例えば、金属製の板材である。ただし、ワーク４０は、このような例に限定される訳ではなく、生産装置３の種類に応じて適宜選択されてよい。ワーク４０は、例えば、製品の原料、加工前の物、組み立て前の部品等であってよい。
【００５４】
下側金型３３の所定の位置にワーク４０が配置された後、生産装置３は、図４Ｂに示されるとおり、サーボドライバ３１により上側金型３２のサーボモータを駆動し、上側金型３２を成形開始位置に配置する。成形開始位置は、例えば、上側金型３２の先端がワーク４０に接触する又はその直前の位置である。
【００５５】
そして、生産装置３は、図４Ｃに示されるとおり、サーボドライバ３１により上側金型３２のサーボモータを更に駆動し、上側金型３２を目標位置（下死点）まで移動させ、上側金型３２及び下側金型３３によりワーク４０の成形を行う。これにより、生産装置３は、ワーク４０から製品４１を生産することができる。なお、この製品４１は、ワーク４０に対して生産装置３が生産処理を行うことで得られる物であれば特に限定されなくてもよく、最終品であってもよいし、中間品（加工途中のもの）であってもよい。
【００５６】
成形が完了した後、生産装置３は、図４Ｄに示されるとおり、サーボドライバ３１により上側金型３２のサーボモータを駆動し、上側金型３２を待機位置まで移動させる。そして、ワーク４０を成形することで得られた製品４１をベルトコンベア（不図示）等により生産装置３から搬送する。これにより、ワーク４０から製品４１を生産する一連の生産工程が完了する。
【００５７】
この生産工程において、図４Ｃにおけるプレス時間が不十分であったり、上側金型３２が下死点に到達するまでサーボモータを駆動していなかったりすると、得られる製品４１の品質が悪化してしまう。そこで、従来、現場の作業者が、定期的に製品の品質をチェックし、生産装置の動作の設定を調節することで、不良品の発生を抑制していた。これに対して、本実施形態に係る制御装置１は、予測モデルを利用することで、生産工程に不良が生じないように、生産装置３への適切な指令値を予測する。これにより、制御装置１は、不良品の発生を抑制するように、生産装置３の動作を自動的に調節する。
【００５８】
＜学習装置＞
次に、図５を用いて、本実施形態に係る学習装置２のハードウェア構成の一例について説明する。図５は、本実施形態に係る学習装置２のハードウェア構成の一例を模式的に例示する。
【００５９】
図５に示されるとおり、本実施形態に係る学習装置２は、制御部２１、記憶部２２、通信インタフェース２３、入力装置２４、出力装置２５、及びドライブ２６が電気的に接続されたコンピュータである。なお、図５では、通信インタフェースを「通信Ｉ／Ｆ」と記載している。
【００６０】
制御部２１は、上記制御部１１と同様に、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部２２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部２２は、制御部２１（ＣＰＵ）により実行される学習プログラム８２、予測モデルの機械学習に利用する学習用データセット２２１、学習プログラム８２を実行することで作成した学習結果データ２２５等の各種情報を記憶する。
【００６１】
学習プログラム８２は、予測モデルの機械学習の後述する情報処理（図１４）を学習装置２に実行させ、当該機械学習の結果として学習結果データ２２５を生成するためのプログラムである。学習プログラム８２は、当該情報処理の一連の命令を含む。学習用データセット２２１は、生産装置３による製品の生産に適応した指令値を予測する能力を獲得した予測モデルを構築するための機械学習に利用されるデータである。詳細は後述する。
【００６２】
通信インタフェース２３は、例えば、有線ＬＡＮモジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置２は、この通信インタフェース２３を利用することで、ネットワークを介したデータ通信を他の情報処理装置（例えば、制御装置１）と行うことができる。また、学習装置２は、この通信インタフェース２３を利用することで、作成した学習結果データ２２５を外部の装置に配信することができる。
【００６３】
入力装置２４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置２５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置２４及び出力装置２５を介して、学習装置２を操作することができる。
【００６４】
ドライブ２６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９２に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ２６の種類は、記憶媒体９２の種類に応じて適宜選択されてよい。上記学習プログラム８２及び学習用データセット２２１の少なくとも一方は、この記憶媒体９２に記憶されていてもよい。
【００６５】
記憶媒体９２は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置２は、この記憶媒体９２から、上記学習プログラム８２及び学習用データセット２２１の少なくとも一方を取得してもよい。
【００６６】
ここで、図５では、上記図２と同様に、記憶媒体９２の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９２の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００６７】
なお、学習装置２の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部２１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＥＣＵ等で構成されてよい。学習装置２は、複数台の情報処理装置で構成されてもよい。また、学習装置２には、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、ＰＣ等が用いられてもよい。
【００６８】
［ソフトウェア構成］
＜制御装置＞
次に、図６を用いて、本実施形態に係る制御装置１のソフトウェア構成の一例について説明する。図６は、本実施形態に係る制御装置１のソフトウェア構成の一例を模式的に例示する。
【００６９】
制御装置１の制御部１１は、記憶部１２に記憶された制御プログラム８１をＲＡＭに展開する。そして、制御部１１は、ＲＡＭに展開された制御プログラム８１をＣＰＵにより解釈及び実行して、制御プログラム８１に含まれる一連の命令に基づいて、各構成要素を制御する。これによって、図６に示されるとおり、本実施形態に係る制御装置１は、データ取得部１１１、予測演算部１１２、残処理時間算出部１１３、遅延判定部１１４、加速処理部１１５、及び動作制御部１１６をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部１１（ＣＰＵ）により実現される。
【００７０】
データ取得部１１１は、予測モデル５が、生産装置３による製品４１の生産に適応した指令値を予測するのに利用するデータを取得する。本実施形態では、予測モデル５は、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２の入力に対して、製品４１の生産に適応した指令値を予測するように構築される。そこで、データ取得部１１１は、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２を取得する。
【００７１】
予測演算部１１２は、ワーク４０から製品４１を生産する生産装置３への指令値であって、生産装置３による製品４１の生産に適応した指令値を予測するように構築された予測モデル５を備えている。予測制御を実施するため、予測演算部１１２は、この予測モデル５の演算処理を開始する。残処理時間算出部１１３は、予測モデル５の演算処理を開始した後、予測モデル５の演算処理が完了するまでの残処理時間を算出する。遅延判定部１１４は、算出した残処理時間に基づいて、予測モデル５から得られる出力値に基づく指令値の決定が、生産装置３による生産の動作を制御する制御タイミングに間に合うか否かを判定する。
【００７２】
指令値の決定が制御タイミングに間に合うと判定した場合に、予測演算部１１２は、予測モデル５の演算処理を完了するまで継続することで、予測モデル５から出力値を取得する。動作制御部１１６は、予測モデル５から取得した出力値に基づいて、生産装置３への指令値を決定する。そして、動作制御部１１６は、決定した指令値に基づいて、生産装置３の動作を制御する。
【００７３】
本実施形態では、予測モデル５は、製品４１の生産に適応した指令値の予測の結果に対応する出力値として、指令値の基準値６０に対する補正値６３を出力するように構成される。そのため、予測演算部１１２は、予測モデル５の演算処理を完了することで、当該予測モデル５から補正値６３に対応する出力値を取得する。これに応じて、動作制御部１１６は、取得した補正値６３により基準値６０を補正することで得られた値を指令値に決定し、決定した指令値に基づいて、生産装置３の動作を制御する。
【００７４】
一方、本実施形態では、指令値の決定が制御タイミングに間に合わないと判定した場合、加速処理部１１５は、予測モデル５の演算処理を加速する。加速処理部１１５は、例えば、予測モデル５の演算処理に対するハードウェアの演算資源を優先的に割り当てることで、予測モデル５の演算処理を加速する。なお、予測モデル５の演算処理の加速が可能ではなく、かつ指令値の決定が制御タイミングに間に合わないと判定される場合、予測演算部１１２は、予測モデル５の演算処理を中止する。そして、動作制御部１１６は、演算処理の途中結果の値に基づいて生産装置３への指令値を決定し、決定した指令値に基づいて生産装置３の動作を制御する。
【００７５】
（予測モデル）
次に、図７Ａ及び図７Ｂを更に用いて、本実施形態に係る予測モデル５について説明する。図７Ａは、本実施形態に係る予測モデル５の構成の一例を模式的に例示する。また、図７Ｂは、予測モデル５に対する入力と出力との関係を模式的に例示する。
【００７６】
図７Ａに示されるとおり、本実施形態に係る予測モデル５は、決定木（具体的には、回帰木）によって構成されている。予測モデル５（決定木）は、根ノードＲ、葉ノードＬ１〜Ｌ５、及び根ノードＲと葉ノードＬ１〜Ｌ５の間に配置される中間ノードＮ１〜Ｎ３を含んでいる。各ノードの間にはリンクが設けられる。図７Ａの例では、根ノードＲと中間ノード（Ｎ１、Ｎ２）との間、中間ノードＮ１と各葉ノード（Ｌ１、Ｌ２）との間、中間ノードＮ２と葉ノードＬ３及び中間ノードＮ３との間、中間ノードＮ３と各葉ノード（Ｌ４、Ｌ５）との間にそれぞれ、リンクが設けられている。
【００７７】
なお、図７Ａの例では、決定木の深さは４であり、中間ノードの数は３つであり、葉ノードの数は５つである。しかしながら、決定木の深さ、中間ノードの数、及び葉ノードの数は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。また、図７Ａの例では、根ノードＲから各葉ノードＬ１〜Ｌ５にリンクが設けられていない。しかしながら、決定木の構成は、このような例に限定されなくてもよく、根ノードからのリンクに接続される葉ノードが存在してもよい。
【００７８】
このような予測モデル５の演算処理は、決定木の根ノードＲから葉ノードＬ１〜Ｌ５に向けてリンクをたどる探索処理である。すなわち、根ノードＲから葉ノードＬ１〜Ｌ５の経路（図７Ａの例では、根ノードＲ及び中間ノードＮ１〜Ｎ３）には、分岐条件が紐付けられている。図７Ａの例では、根ノードＲには「ｘ０＜２５００」の分岐条件が、中間ノードＮ１には「ｘ１＜２０」の分岐条件が、中間ノードＮ２には「ｘ１＜３５」の分岐条件が、中間ノードＮ３には「ｘ０＜３５００」の分岐条件が紐付けられている。一方、各葉ノードＬ１〜Ｌ５には、予測モデル５の演算処理の最終結果（クラスＣ１〜Ｃ５）に相当する第１の値が紐付けられている。本実施形態では、各葉ノードＬ１〜Ｌ５（クラスＣ１〜Ｃ５）には、入力される特徴量６１及び属性値６２に応じた補正値６３が第１の値として対応付けられている。本実施形態では、予測演算部１１２は、根ノードＲから探索処理を開始して、入力データが分岐条件を満たすか否かの判定を繰り返すことで、いずれかの葉ノードＬ１〜Ｌ５に到達するまで、より深いノードに探索を進めていく。
【００７９】
図７Ａの例では、入力ｘ０が特徴量６１に対応し、入力ｘ１が属性値６２に対応している。図７Ｂは、各入力（ｘ０、ｘ１）と到達する葉ノードＬ１〜Ｌ５に対応付けられたクラスＣ１〜Ｃ５との関係を例示している。例えば、入力ｘ０が２０００であり、入力ｘ１が３０であることを想定する。この場合、予測演算部１１２は、予測モデル５の１階層目の演算処理（探索処理）として、根ノードＲに設定された分岐条件を入力ｘ０が満たすか否かを判定する。図７Ａの例では、根ノードＲに設定された分岐条件は「ｘ０＜２５００」であり、入力ｘ０は２０００であるため、予測演算部１１２は、根ノードＲに設定された分岐条件を入力ｘ０は満たすと判定し、次の階層の中間ノードＮ１に探索を進める。
【００８０】
次に、予測演算部１１２は、予測モデル５の２階層目の演算処理として、中間ノードＮ１に設定された分岐条件を入力ｘ１が満たすか否かを判定する。図７Ａの例では、中間ノードＮ１に設定された分岐条件は「ｘ１＜２０」であり、入力ｘ１が３０であるため、予測演算部１１２は、中間ノードＮ１に設定された分岐条件を入力ｘ１は満たさないと判定し、次の階層の葉ノードＬ２に進む。これにより、決定木の探索が葉ノードＬ２に到達するため、予測モデル５の演算処理（決定木の探索処理）が完了する。
【００８１】
このように決定木の探索処理を完了した際には、予測演算部１１２は、予測モデル５の演算処理の最終結果に相当する第１の値（換言すると、予測モデル５の出力値）として、探索処理において到達した葉ノードのクラスに対応付けられた補正値６３を取得することができる。上記の例では、予測演算部１１２は、葉ノードＬ２のクラスＣ２に対応付けられた補正値６３を予測モデル５の出力値として取得する。
【００８２】
各クラスＣ１〜Ｃ５に対応付けられた補正値６３を取得する方法は、実施の形態に応じて適宜決定されてよい。例えば、各クラスＣ１〜Ｃ５には、補正値が直接的に対応付けられていてもよい。また、例えば、制御装置１は、各クラスＣ１〜Ｃ５と補正値との対応関係を示すテーブル形式等の参照情報を記憶部１２に保持していてもよい。この参照情報は、学習結果データ２２５に含まれていてもよい。この場合、予測演算部１１２は、いずれかの葉ノードに到達した後、到達した葉ノードのクラスを参照情報に照合することで、予測モデル５の演算処理の最終結果に相当する第１の値として、指令値の基準値６０に対する補正値６３を取得することができる。
【００８３】
一方、決定木の探索処理を中止した際には、予測演算部１１２は、探索処理を中止した時点で到達した中間ノードに属する葉ノードに対応付けられた第１の値に基づいて決定された第２の値を途中結果の値として取得する。本実施形態では、予測演算部１１２は、探索処理を中止した時点で到達した中間ノードに属する葉ノードに対応付けられた補正値６３に基づいて決定された補正値を第２の値として取得する。
【００８４】
なお、このような予測モデル５（決定木）の構成及び各分岐条件を示す情報は、学習結果データ２２５に含まれている。予測演算部１１２は、学習結果データ２２５を参照することで、製品４１の生産に適応した指令値を予測する処理に利用する学習済みの予測モデル５の設定を行うことができる。
【００８５】
＜学習装置＞
次に、図８を用いて、本実施形態に係る学習装置２のソフトウェア構成の一例について説明する。図８は、本実施形態に係る学習装置２のソフトウェア構成の一例を模式的に例示する。
【００８６】
学習装置２の制御部２１は、記憶部２２に記憶された学習プログラム８２をＲＡＭに展開する。そして、制御部２１は、ＲＡＭに展開された学習プログラム８２をＣＰＵにより解釈及び実行して、学習プログラム８２に含まれる一連の命令に基づいて、各構成要素を制御する。これによって、図８に示されるとおり、本実施形態に係る学習装置２は、学習データ取得部２１１、及び学習処理部２１２をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部２１（ＣＰＵ）により実現される。
【００８７】
学習データ取得部２１１は、予測モデル５の機械学習に利用する学習データを取得する。本実施形態では、予測モデル５は決定木により構成されるため、学習データ取得部２１１は、訓練データ（入力データ）と教師データ（正解データ）との組み合わせで構成された学習用データセット２２１を取得する。本実施形態では、予測モデル５は、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２の入力に対して、指令値の基準値６０に対する補正値６３を出力するように構成される。そのため、学習用データセット２２１は、ワークの特徴量２２１１及び製品を生産する環境の属性値２２１２と、それに適応した補正値２２１３との組み合わせにより構成される。
【００８８】
学習処理部２１２は、取得した学習用データセット２２１を利用した機械学習を行うことにより、学習済みの予測モデル５を構築する。学習処理部２１２は、特徴量２２１１及び属性値２２１２を入力すると、入力した特徴量２２１１及び属性値２２１２に関連付けられた補正値２２１３に対応するクラスの葉ノードに到達するように決定木を構築する。これにより、学習処理部２１２は、学習済みの予測モデル５を構築することができる。そして、学習処理部２１２は、構築した学習済みの予測モデル５の構成及び各分岐条件を示す情報を学習結果データ２２５として記憶部２２に格納する。
【００８９】
＜その他＞
制御装置１及び学習装置２の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、制御装置１及び学習装置２の各ソフトウェアモジュールがいずれも汎用のＣＰＵによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。また、制御装置１及び学習装置２それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【００９０】
§３  動作例
［制御装置］
次に、図９Ａ及び図９Ｂを用いて、制御装置１の動作例について説明する。図９Ａ及び図９Ｂは、制御装置１の処理手順の一例を例示するフローチャートである。以下で説明する処理手順は、本発明の「制御方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００９１】
（ステップＳ１００）
ステップＳ１００では、制御部１１は、データ取得部１１１として動作し、予測モデル５に対する入力データを取得する。
【００９２】
本実施形態では、上記のとおり、予測モデル５は、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２の入力に対して、製品４１の生産に適応した指令値を予測するように構築されている。そのため、制御部１１は、予測モデル５に対する入力データとして、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２を取得する。
【００９３】
ワーク４０の特徴量６１は、ワークの何らかの特徴を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。また、製品４１を生産する環境の属性値６２は、生産装置３が稼働する環境に関する何らかの属性を示し得るものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
【００９４】
本実施形態では、生産装置３は、プレス機である。上記のとおり、生産装置３では、プレス時間が不十分であったり、上側金型３２が下死点に到達するまでサーボモータを駆動していなかったりすると、得られる製品４１の品質が悪化してしまう。そのため、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２はそれぞれ、生産装置３におけるプレス成形の工程に関するものであるのが好ましい。
【００９５】
そこで、ワーク４０の特徴量６１には、例えば、ワーク４０の硬さ、寸法、材質、重さ、熱等が選択されてもよい。また、製品４１を生産する環境の属性値６２には、例えば、生産装置３の周囲の温度、湿度、装置の劣化度合い（例えば、経年数、加工回数等）、振動等が選択されてよい。このとき、ワーク４０の特徴量６１は、ワーク４０の特徴を直接的に示すものであってもよいし、ワーク４０の特徴を間接的に示すものであってもよい。すなわち、ワーク４０の特徴量６１がワーク４０の硬さに関するものである場合、ワーク４０の特徴量６１は、ワーク４０の硬さ（硬度）そのものを数値、クラス等で示してもよい。また、ワーク４０の特徴量６１は、ワーク４０の硬さ（硬度）を測定する際に得られた２次的指標（例えば、ワークにかかる荷重、測定の際に作用させたトルク等）を数値、クラス等で示してもよい。属性値６２についても同様である。
【００９６】
また、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２それぞれを取得する方法は、実施の形態に応じて適宜選択されてよい。例えば、ワーク４０の特徴量６１（例えば、硬さ等）及び環境の属性値６２（例えば、温度等）それぞれを測定可能に構成された各種センサが生産装置３に配置されていてもよい。各種センサには、測定対象となる特徴量６１及び属性値６２の種類に応じて公知のセンサが適宜用いられてよい。この場合、制御部１１は、生産装置３に配置された各種センサから、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２それぞれを取得することができる。ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２それぞれを取得すると、制御部１１は、次のステップＳ１０１に処理を進める。
【００９７】
（ステップＳ１０１）
ステップＳ１０１では、制御部１１は、予測演算部１１２として動作し、ワーク４０から製品４１を生産する生産装置３への指令値であって、生産装置３による製品４１の生産に適応した指令値を予測するように構築された予測モデル５の演算処理を開始する。
【００９８】
本実施形態では、予測モデル５は決定木により構成されており、予測モデル５の構成及び各経路の分岐条件を示す情報は、学習結果データ２２５に含まれている。そこで、制御部１１は、学習結果データ２２５を参照することで、予測モデル５の設定を行う。この設定処理によって、制御部１１は、決定木（予測モデル５）の探索処理を開始することができる状態になる。これにより、予測モデル５の演算処理を開始すると、制御部１１は、次のステップＳ１０２に処理を進める。
【００９９】
（ステップＳ１０２）
ステップＳ１０２では、制御部１１は、予測演算部１１２として動作し、予測モデル５の演算処理を進行させる。本実施形態では、予測モデル５は決定木により構成されているため、予測モデル５の演算処理は、決定木の根ノードから葉ノードに向けてリンクをたどる探索処理である。そのため、制御部１１は、予測モデル５の演算処理として、この決定木の探索処理を進行させる。
【０１００】
具体的には、探索処理を１度も実行していない場合には、制御部１１は、決定木の探索処理として、根ノードに設定された分岐条件を入力データ（特徴量６１及び属性値６２）が満たすか否かを判定する。そして、この判定結果に基づいて、制御部１１は、２段階目の該当ノード（図７Ａの例では、中間ノードＮ１又は中間ノードＮ２）に探索を進める。
【０１０１】
同様に、探索処理をｎ回実行した場合には（ｎは、１以上の自然数）、探索は、ｎ＋１段目の中間ノードまで探索が進行している。この場合には、制御部１１は、ｎ＋１段目の該当の中間ノードに設定された分岐条件を入力データが満たすか否かを判定する。そして、この判定結果に基づいて、制御部１１は、ｎ＋２段目の該当ノードに探索を進める。
【０１０２】
このように決定木の探索処理を進行させると、制御部１１は、次のステップＳ１０３に処理を進める。なお、本ステップＳ１０２の１回の処理において、探索処理を進行させる度合は、実施の形態に応じて適宜決定されてよい。探索処理を進行させる度合が深さｋ（ｋは、１以上の自然数）である場合には、制御部１１は、上記分岐条件の判定処理をｋ回実行した後、次のステップＳ１０３に処理を進める。
【０１０３】
（ステップＳ１０３）
ステップＳ１０３では、制御部１１は、残処理時間算出部１１３として動作し、予測モデル５の演算処理が完了するまでの残処理時間を算出する。残処理時間を算出する方法は、実施の形態に応じて適宜決定されてよい。本実施形態では、制御部１１は、演算処理の進捗状態を確認することで、当該演算処理の残処理量を算出し、算出した残処理量に基づいて残処理時間を算出する。具体的には、制御部１１は、以下の（式１）の演算によって、残処理時間を算出する。
【０１０４】
【数１】
2019179468.tif 000003
「現在までの処理時間」は、ステップＳ１０１により予測モデル５の演算処理を開始してから本ステップＳ１０３を実行するまでの時間である。制御部１１は、例えば、タイマ（不図示）等により、ステップＳ１０１により予測モデル５の演算処理を開始してからの時間を計測することで、現在までの処理時間の値を得ることができる。
【０１０５】
「現在までの処理量」は、ステップＳ１０１により予測モデル５の演算処理を開始してから本ステップＳ１０３を実行するまでの処理量である。制御部１１は、例えば、ステップＳ１０１により予測モデル５の演算処理を開始してからのＣＰＵの処理量を計測することで、現在までの処理量の値を得ることができる。また、本実施形態では、予測モデル５は決定木により構成されているため、制御部１１は、例えば、決定木の探索処理における分岐条件の判定処理を実行した回数を計測することによっても、現在までの処理量の値を得ることができる。
【０１０６】
「残処理量」は、予測モデル５の演算処理の全体の処理量と現在までの処理量との差分である。制御部１１は、予測モデル５の演算処理の全体の処理量から現在までの処理量を差し引くことで、残処理量の値を得ることができる。
【０１０７】
予測モデル５の演算処理の全体の処理量は、実施の形態に応じて適宜推定されてよい。全体の処理量は、例えば、予測モデル５の演算処理をシミュレーションした結果、予測モデル５の演算処理を過去に実行した結果（実績値）等に基づいて推定されてよい。この場合、全体の処理量は、シミュレーション又は過去の演算処理の実行時間に応じて推定されてよい。
【０１０８】
また、本実施形態では、予測モデル５は決定木により構成されている。この場合、予測モデル５の演算処理、すなわち、決定木の探索処理にかかる時間は、当該決定木の深さ（特に、根ノードから葉ノードに到達するまでに経由する中間ノードの数）に依存する。そのため、決定木の深さが固定されていれば、決定木の探索処理の全体の処理量は、決定木の探索処理のアルゴリズムから導出される理論値から変動し難い。そこで、全体の処理量は、例えば、予測モデル５のアルゴリズムから導出される理論値に基づいて推定されてもよい。
【０１０９】
上記各処理量を表現する形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各処理量は、例えば、ＣＰＵの演算量、演算処理の理論量等により表現されてもよい。本実施形態では、演算処理の理論量は、例えば、決定木の深さにより示すことができる。
【０１１０】
具体例として、予測モデル５を構成する決定木の深さが１１であり、２階層目の中間ノードまで分岐条件の判定処理が完了している（すなわち、３階層目の中間ノードに探索が到達している）と想定する。決定木の深さにより各処理量を表現する場合、決定木の深さが１１であると、葉ノードまで到達する探索処理の回数は１０回であるため、全体の処理量の値は「１０」と表現することができる。また、現在までの処理量の値は「２」と表現することができる。そのため、残処理量の値は「１０−２＝８」と表現することができる。このとき、現在までの処理時間が０．０１秒であったとすると、制御部１１は、「０．０１（秒）×（（１０−２）／２）」の演算により、残処理時間は０．０４（秒）であると算出することができる。
【０１１１】
なお、残処理時間の表現形式は、予測モデル５の演算処理が完了するタイミングを表現可能であれば、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。残処理時間は、例えば、上記の例のように、国際単位系に従う時刻系（秒）により表現されてもよい。また、残処理時間は、例えば、ＣＰＵのクロック数、生産装置３の動作サイクルを示すタクト時間等により表現されてもよい。残処理時間を算出すると、制御部１１は、次のステップＳ１０４に処理を進める。
【０１１２】
（ステップＳ１０４）
ステップＳ１０４では、制御部１１は、遅延判定部１１４として動作し、算出した残処理時間に基づいて、予測モデル５から得られる出力値に基づく指令値の決定が、生産装置３による生産の動作を制御する制御タイミングに間に合うか否かを判定する。
【０１１３】
本実施形態では、制御部１１は、まず、以下の式２により、制御タイミングまでの残存時間を算出する。
【０１１４】
【数２】
2019179468.tif 000004
「制御予定時刻」は、制御タイミングの時刻であり、予め決定されている。制御部１１は、例えば、制御プログラム８１等の生産装置３の動作を制御する予定を示す情報から、制御予定時刻の値を取得することができる。また、「現在時刻」は、本ステップＳ１０４を実行する時刻である。制御部１１は、例えば、タイマ（不図示）等により、現在時刻の値を取得することができる。ただし、残存時間の計算方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜変更されてよい。
【０１１５】
次に、制御部１１は、算出した残存時間から残処理時間を差し引くことで差分を算出する。この差分は、予測モデル５の演算処理が完了してから制御タイミングまでの推定の空き時間を示す。つまり、この差分が負の値である場合には、予測モデル５の演算処理が制御タイミングよりも遅い時間に完了すると推定されることを示す。
【０１１６】
そこで、制御部１１は、残存時間から残処理時間を差し引くことで得られた差分が所定の閾値を超えるか否かを判定する。そして、得られた差分が所定の閾値を超える場合、制御部１１は、指令値の決定が制御タイミングに間に合うと判定する。一方、得られた差分が所定の閾値以下である場合、制御部１１は、指令値の決定が制御タイミングに間に合わないと判定する。
【０１１７】
この所定の閾値は、適宜設定されてよい。所定の閾値は、指令値の決定が制御タイミングに間に合うと判定するための基準となる。また、所定の閾値は、予測モデル５の演算処理が制御タイミングに対して時間的に余裕がある状態で完了するか否かを判定するための基準にもなり得る。すなわち、所定の閾値は、予測モデル５の演算処理が完了してから生産装置３の動作を制御するまでの猶予（余裕）時間に相当し得る。したがって、制御部１１は、指令値の決定が制御タイミングに間に合うか否かの判定として、予測モデル５の演算処理が制御タイミングに対して時間的に余裕がある状態で完了するか否かを判定してもよい。
【０１１８】
以上により、制御部１１は、指令値の決定が制御タイミングに間に合うか否かを判定することができる。指令値の決定が制御タイミングに間に合うと判定した場合、制御部１１は、ステップＳ１０７に処理を進める。一方、指令値の決定が制御タイミングに間に合わないと判定した場合、制御部１１は、ステップＳ１０５に処理を進める。ただし、指令値の決定が制御タイミングに間に合うか否かを判定する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜変更されてよい。
【０１１９】
なお、残存時間の表現形式は、残処理時間と同様に、制御タイミングを表現可能であれば、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。残存時間は、例えば、国際単位系に従う時刻系（秒）、ＣＰＵのクロック数、生産装置３の動作サイクルを示すタクト時間等により表現されてもよい。
【０１２０】
（ステップＳ１０５）
ステップＳ１０５では、制御部１１は、加速処理部１１５として動作し、予測モデル５の演算処理の加速が可能か否かを判定する。
【０１２１】
後述するステップＳ１０６では、例えば、予測モデル５の演算処理に対するハードウェアの演算資源を優先的に割り当てることで、予測モデル５の演算処理を加速する。そのため、本実施形態では、制御部１１は、予測モデル５の演算処理に対して優先的に割り当てる演算資源の余地があるか否かを判定することで、予測モデル５の演算処理の加速が可能か否かを判定してもよい。
【０１２２】
予測モデル５の演算処理に対して優先的に割り当てる演算資源の余地があり、当該予測モデル５の演算処理の加速が可能であると判定した場合には、制御部１１は、ステップＳ１０６に処理を進める。一方、予測モデル５の演算処理に対して優先的に割り当てる演算資源の余地がなく、当該予測モデル５の演算処理の加速が可能ではないと判定した場合には、制御部１１は、ステップＳ１１１に処理を進める。ただし、予測モデル５の演算処理が可能か否かを判定する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜変更されてよい。
【０１２３】
（ステップＳ１０６）
ステップＳ１０６では、制御部１１は、加速処理部１１５として動作し、予測モデル５の演算処理を加速する。制御部１１は、例えば、予測モデル５の演算処理に対するハードウェアの演算資源を優先的に割り当てることで、予測モデル５の演算処理を加速することができる。演算資源は、例えば、ＣＰＵ、メモリ等である。
【０１２４】
ここで、図１０及び図１１を用いて、制御部１１（ＣＰＵ）が、予測モデル５の演算処理を含む複数のタスクを実行する方法の一例について説明する。図１０は、ＣＰＵに対するタスクの割り当ての状態を示す割当データ１２１の一例を模式的に例示する。図１１は、図１０で示されるタスクの割り当てに対して、ＣＰＵがタスクを実行するスケジューリングの一例を模式的に例示する。
【０１２５】
ハードウェアプロセッサであるＣＰＵは、１又は複数のコアで構成される。コアは、演算処理を実行する回路であり、コアの数が多いほど、ＣＰＵは、多くの演算処理を並列に実行することができる。ＣＰＵの各コアは、１サイクル（周期）内において、優先度の高いタスクから順に、割り当てた利用率の分だけ各タスクの実行を行う。
【０１２６】
例えば、図１０の例では、ＣＰＵは少なくとも２つのコアを有しており、コア０１に対して３つのタスクＡ〜Ｃが割り当てられている。タスクＡの優先度が最も高く設定されており、タスクＢの優先度が２番目に高く設定されており、タスクＣの優先度が最も低く設定されている。また、図１０の例では、各タスクＡ〜Ｃの上下方向の長さが、コアの利用率を示している。そのため、コア０１において、タスクＢの利用率が最も高く設定されており、タスクＡの利用率が２番目に高く設定されており、タスクＣの利用率が最も低く設定されている。未使用の部分は、空き領域である。この空き領域には、タスクＡ〜Ｃを割り当てたり（利用率を高める）、その他のタスクを割り当てたりすることができる。
【０１２７】
この場合、図１１に示されるとおり、コア０１は、まず、各サイクル内において、最も優先度の高いタスクＡを利用率に応じた分だけ実行する。次に、コア０１は、２番目に優先度の高いタスクＢを利用率に応じた分だけ実行する。そして、コア０１は、最も優先度に低いタスクＣを利用率に応じた分だけ実行する。
【０１２８】
各コアは、各サイクルの終了時刻になると、優先度の低いタスクの実行を打ち切り又は実行せず、次のサイクルの処理、すなわち、最も優先度の高いタスクの実行を開始する。また、各タスクの実行が完了すると、そのタスクは消滅し、次に優先度の高いタスクの実行が優先されるようになる。
【０１２９】
図１１の例では、１サイクル目（ｓ）及び２サイクル目（ｓ＋１）では、タスクＣの実行が打ち切られており、タスクＢの実行が、３サイクル目（ｓ＋２）の途中において時間ｔで完了することを想定している。そのため、３サイクル目では、タスクＢの実行が完了した後、コア０１は、タスクＣを利用率に応じた分だけ実行している。ただし、各コアがタスクを実行する方法は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。
【０１３０】
以上のように、優先度及び利用率に基づいて、タスクを実行する度合いが決定される場合には、タスクの優先度及び利用率の少なくとも一方を高めることで、当該タスクに対する演算資源を優先的に割り当てることができ、タスクの実行を加速することができる。本実施形態では、制御部１１は、例えば、以下の４つの方法によって、予測モデル５の演算処理を加速することができる。
【０１３１】
（１）第１の方法
まず、図１２Ａを用いて、予測モデル５の演算処理を加速する第１の方法について説明する。図１２Ａは、予測モデル５の演算処理を加速する第１の方法を模式的に例示する。
【０１３２】
第１の方法では、ハードウェアプロセッサであるＣＰＵが１又は複数のコアで構成されていることが想定されている。この第１の方法では、例えば、上記ステップＳ１０１等により、予測モデル５の演算処理には、少なくとも１つのコアが割り当てられる。この状態で、制御部１１は、予測モデル５の演算処理に対して、割り当てたコアの利用率を高めることで、当該予測モデル５の演算処理を加速する。
【０１３３】
図１２Ａの例では、予測モデル５の演算処理（以下、「タスクＺ」とも記載する）は、コア０１に割り当てられている。制御部１１は、割当データ１２１を参照し、タスクＺの割り当てられたコア０１に空き領域があるか否かを確認する。コア０１に空き領域がなければ、制御部１１は、この第１の方法による演算処理の加速は不可能であると判定する。一方、コア０１に空き領域がある場合には、制御部１１は、この第１の方法による演算処理の加速は可能であると判定し、空き領域のうちの少なくとも一部の領域をタスクＺに更に割り当てることで、タスクＺに対するコア０１の利用率を高める。タスクＺに割り当てる空き領域の量は、実施の形態に応じて適宜設定されてよい。これにより、予測モデル５の演算処理に割り当てる演算資源を増加させることができるため、制御部１１は、当該予測モデル５の演算処理を加速する（すなわち、タスクＺの実行量を増加させる）ことができる。
【０１３４】
（２）第２の方法
次に、図１２Ｂを用いて、予測モデル５の演算処理を加速する第２の方法について説明する。図１２Ｂは、予測モデル５の演算処理を加速する第２の方法を模式的に例示する。
【０１３５】
第２の方法では、上記第１の方法と同様に、ハードウェアプロセッサであるＣＰＵが１又は複数のコアで構成されていることが想定されている。この第２の方法では、例えば、上記ステップＳ１０１等により、予測モデル５の演算処理には、少なくとも１つのコアが割り当てられる。この状態で、制御部１１は、割り当てられたコアにおいて、予測モデル５の演算処理の優先度を高めることによって、当該予測モデル５の演算処理を加速する。
【０１３６】
図１２Ｂの例では、予測モデル５の演算処理（タスクＺ）は、コア０１に割り当てられている。コア０１には、タスクＺの他に、その他のタスクが割り当てられている。この場合、制御部１１は、割当データ１２１を参照し、各タスクの優先度を確認する。そして、制御部１１は、タスクＺの優先度をその他のタスクよりも高めることができるか否かを確認する。
【０１３７】
タスクＺの優先度が最も高くなっている、タスクＺよりも優先度が高いタスクであって、タスクＺよりも優先度を低くすることができるタスクが存在しない等の場合には、タスクＺの優先度をその他のタスクよりも高めることは困難である。そのため、このような場合には、制御部１１は、この第２の方法による演算処理の加速は不可能であると判定する。
【０１３８】
一方、タスクＺの優先度をその他のタスクよりも高める余地が存在する場合には、制御部１１は、この第２の方法による演算処理の加速は可能であると判定し、タスクＺの優先度をその他のタスクよりも高くする。図１２Ｂの例では、加速前の状態において、タスクＺの優先度は「低」であり、他のタスクの優先度は「中」である。すなわち、タスクＺの優先度は、他のタスクの優先度よりも低く設定されている。そこで、制御部１１は、タスクＺの優先度を他のタスクの優先度よりも高くなるように変更してもよい。
【０１３９】
図１２Ｂの例では、制御部１１は、他のタスクの優先度を変更せず、タスクＺの優先度を「低」から「高」に変更することで、タスクＺの優先度を他のタスクの優先度よりも高くしている。ただし、タスクＺの優先度を高める方法は、このような例に限定されなくてもよい。制御部１１は、タスクＺの優先度を変更すると共に又はタスクＺの優先度を変更せずに、他のタスクの優先度を低くなるように変更してもよい。これらの方法によって、制御部１１は、タスクＺの優先度を他のタスクよりも相対的に高くすることができる。これにより、予測モデル５の演算処理を優先させることができるため、制御部１１は、予測モデル５の演算処理を加速することができる。
【０１４０】
（３）第３の方法
次に、図１２Ｃを用いて、予測モデル５の演算処理を加速する第３の方法について説明する。図１２Ｃは予測モデル５の演算処理を加速する第３の方法を模式的に例示する。
【０１４１】
第３の方法では、ハードウェアプロセッサであるＣＰＵが複数のコアで構成されていることが想定されている。この第３の方法では、例えば、上記ステップＳ１０１等により、予測モデル５の演算処理には、複数のコアのうちの第１のコアが割り当てられている。一方、本ステップＳ１０６の加速処理の前には、複数のコアのうちの第２のコアであって、予測モデル５の演算処理に割り当てられていない第２のコアが存在することが想定されている。図１２Ｃの例では、コア０１が第１のコアの一例であり、コア０２が第２のコアの一例である。
【０１４２】
この状態で、制御部１１は、予測モデル５の演算処理に割り当てられていなかった第２のコアを、予測モデル５の演算処理に更に割り当てることによって、当該予測モデル５の演算処理を加速する。すなわち、制御部１１は、予測モデル５の演算処理に割り当てるコアの数を増やすことで、当該予測モデル５の演算処理を加速する。なお、第１のコア及び第２のコアの数はそれぞれ、１つであってもよいし、複数であってもよい。
【０１４３】
図１２Ｃの例では、予測モデル５の演算処理（タスクＺ）は、コア０１に割り当てられている。一方、コア０２には、予測モデル５の演算処理が割り当てられておらず、他のタスクが割り当てられている。このコア０２には、空き領域が存在している。制御部１１は、割当データ１２１を参照し、タスクＺが割り当てられておらず、かつ空き領域が存在する第２のコアが存在するか否かを確認する。
【０１４４】
そのような第２のコアが存在しない場合には、制御部１１は、この第３の方法による演算処理の加速は不可能であると判定する。一方、第２のコアが存在する場合には、制御部１１は、この第３の方法による演算処理の加速は可能であると判定し、第２のコアの空き領域のうちの少なくとも一部の領域をタスクＺに割り当てる。タスクＺに割り当てる空き領域の量は、実施の形態に応じて適宜決定されてよい。これにより、予測モデル５の演算処理に割り当てる演算資源を増加させることができるため、制御部１１は、予測モデル５の演算処理を加速することができる。
【０１４５】
（４）第４の方法
次に、図１２Ｄを用いて、予測モデル５の演算処理を加速する第４の方法について説明する。図１２Ｄは、予測モデル５の演算処理を加速する第４の方法を模式的に例示する。
【０１４６】
第４の方法では、ハードウェアプロセッサであるＣＰＵが複数のコアで構成されていることが想定されている。この第４の方法では、例えば、上記ステップＳ１０１等により、予測モデル５の演算処理には、複数のコアのうちの第３のコアが割り当てられている。一方、本ステップＳ１０６の加速処理の前には、複数のコアは、予測モデル５の演算処理に割り当てられていない第４のコアであって、第３のコアにおいて演算処理に割り振られている利用率よりも大きな空き容量を有する第４のコアを含んでいることが想定されている。図１２Ｄの例では、コア０１が第３のコアの一例であり、コア０２が第４のコアの一例である。
【０１４７】
この状態で、制御部１１は、予測モデル５の演算処理に対する割り当てを第３のコアから第４のコアに置き換えて、第３のコアにおいて演算処理に割り振られていた利用率よりも大きな利用率を第４のコアにおいて演算処理に割り振ることで、当該予測モデル５の演算処理を加速する。すなわち、制御部１１は、タスクＺを割り振っていた元のコアからタスクＺにより大きな利用率を割り振ることのできる新たなコアにタスクＺに対して割り当てるコアを変更することで、予測モデル５の演算処理を加速する。なお、第３のコア及び第４のコアの数はそれぞれ、１つであってもよいし、複数であってもよい。
【０１４８】
図１２Ｄの例では、予測モデル５の演算処理（タスクＺ）は、コア０１に割り当てられている。一方、コア０２には、予測モデル５の演算処理が割り当てられておらず、他のタスクが割り当てられている。このコア０２には、コア０１においてタスクＺに割り振られている利用率よりも大きな空き領域（図の「未使用」の領域）が存在している。制御部１１は、割当データ１２１を参照し、タスクＺが割り当てられておらず、かつコア０１におけるタスクＺの利用率よりも大きな空き領域が存在する第４のコアが存在するか否かを確認する。
【０１４９】
そのような第４のコアが存在しない場合には、制御部１１は、この第４の方法による演算処理の加速は不可能であると判定する。一方、第４のコアが存在する場合には、制御部１１は、この第４の方法による演算処理の加速は可能であると判定する。そして、制御部１１は、第４のコアの空き領域のうちの少なくとも一部の領域であって、コア０１においてタスクＺに割り振られていた利用率よりも大きな領域をタスクＺに割り当てる。このとき、図１２Ｄに示されるとおり、制御部１１は、コア０１（第３のコア）におけるタスクＺの割り当てを削除してもよい。これにより、予測モデル５の演算処理に割り当てる演算資源を増加させることができるため、制御部１１は、当該予測モデル５の演算処理を加速することができる。
【０１５０】
なお、図１２Ｄの例では、コア０１のその他の領域には、タスクＺ以外の他のタスクが割り当てられている。そのため、コア０１では、上記第１の方法により、タスクＺの利用率を高める余地が存在していない。制御部１１は、このように第３のコアにおいて第１の方法を採用する余地が存在しない場合に、この第４の方法を採用するようにしてもよい。一方、第３のコアにおいて、タスクＺの利用率を高める余地が存在する場合には、制御部１１は、上記第１の方法を採用するようにしてもよい。
【０１５１】
（５）その他
上記第１〜第４の方法のうちの少なくともいずれかを採用することで、制御部１１は、予測モデル５の演算処理を加速することができる。上記第１〜第４の方法のうちの少なくともいずれかにより予測モデル５の演算処理を加速すると、制御部１１は、次のステップＳ１０７に処理を進める。
【０１５２】
ただし、予測モデル５の演算処理を加速する方法は、これらの例に限定されなくてもよい。例えば、制御装置１の仮想メモリが、キャッシュメモリ（不図示）、制御部１１のＲＡＭ、記憶部１２により構成されていると想定する。加えて、キャッシュメモリ、制御部１１のＲＡＭ、及び記憶部１２の順にＣＰＵに近いと想定する。この場合、制御部１１は、予測モデル５の演算処理に割り当てる仮想メモリにおいてＣＰＵにより近いメモリの比重が高くなるようにメモリの割り当てを制御してもよい。これにより、制御部１１は、演算処理に利用するデータへのアクセス速度を高めることができるため、当該予測モデル５の演算処理を加速することができる。
【０１５３】
なお、上記ステップＳ１０５では、第１〜第４の方法のいずれも採用できない場合に、制御部１１は、予測モデル５の演算処理の加速が可能ではないと判定してもよい。一方、第１〜第４の方法のうちの少なくともいずれかの方法が採用できる場合、制御部１１は、予測モデル５の演算処理の加速が可能であると判定してもよい。
【０１５４】
（ステップＳ１０７）
図９に戻り、ステップＳ１０７では、制御部１１は、予測演算部１１２として動作し、予測モデル５の演算処理が完了したか否かを判定する。予測モデル５の演算処理が完了したか否かを判定する方法は、予測モデル５に採用するモデルの種別に応じて適宜決定されてよい。
【０１５５】
本実施形態では、予測モデル５は決定木により構成されているため、制御部１１は、上記ステップＳ１０２における探索処理が決定木のいずれかの葉ノードまで到達したか否かを判定する。探索処理がいずれかの葉ノードまで到達している場合には、制御部１１は、予測モデル５の演算処理が完了したと判定し、次のステップＳ１０８に処理を進める。一方、探索処理がいずれの葉ノードまで到達していない場合、すなわち、探索処理が中間ノードまでしか進行していない場合には、制御部１１は、予測モデル５の演算処理は完了していないと判定し、ステップＳ１０２から処理を繰り返す。
【０１５６】
ステップＳ１０４において、指令値の決定が制御タイミングに間に合うと判定される場合には、ステップＳ１０２〜Ｓ１０４及びＳ１０７の一連の処理が繰り返されることで、制御部１１は、予測モデル５の演算処理を完了するまで継続する。これにより、制御部１１は、演算処理の最終結果として予測モデル５から出力値を取得することができる。本実施形態では、決定木の探索処理を完了した際に、制御部１１は、探索処理において到達した葉ノードに対応付けられた第１の値を最終結果である出力値として取得することができる。
【０１５７】
また、ステップＳ１０６により予測モデル５の演算処理を加速した後、予測モデル５の演算処理が完了していないと判定される場合、制御部１１は、ステップＳ１０２〜Ｓ１０４を再度実行する。ステップＳ１０６による加速が十分である場合には、再度実行したステップＳ１０４において、指令値の決定が制御タイミングに間に合うと判定されるようになる。これにより、制御部１１は、予測モデル５の演算処理を完了するまで継続することができるようになる。
【０１５８】
一方、ステップＳ１０６による加速が不十分である場合には、再度実行したステップＳ１０４において、指令値の決定が制御タイミングに間に合わないと再度判定される。この場合、ステップＳ１０５において、加速が可能と判定される限り、制御部１１は、指令値の決定が制御タイミングに間に合うと判定されるようになるまで、ステップＳ１０６を実行することで、予測モデル５の演算処理を加速することができる。そして、制御部１１は、予測モデル５の演算処理を十分に加速することで、指令値の決定が制御タイミングに間に合うように予測モデル５の演算処理を完了させることができる。
【０１５９】
これに対して、ステップＳ１０４において、指令値の決定が制御タイミングに間に合わないと判定され、かつステップＳ１０５において、予測モデル５の演算処理の加速が可能ではないと判定された場合には、制御部１１は、上記のとおり、ステップＳ１１１に処理を進める。ステップＳ１０６の後に再度実行されたステップＳ１０４において、指令値の決定が制御タイミングに間に合わないと再度判定され、かつその後のステップＳ１０５において、予測モデル５の演算処理の加速が可能ではないと判定された場合も同様である。これにより、制御部１１は、ステップＳ１０７〜後述するステップＳ１０９の一連の処理を省略し、後述するとおり、予測モデル５の演算処理を中止し、演算途中の結果を利用して又は予測制御以外の方法で生産装置３の動作を制御する。
【０１６０】
（ステップＳ１０８）
ステップＳ１０８では、制御部１１は、動作制御部１１６として動作し、予測モデル５から取得した出力値に基づいて、生産装置３への指令値を決定する。指令値を決定する方法は、予測モデル５の出力値の形式に応じて適宜決定されてよい。
【０１６１】
本実施形態では、上記のとおり、予測モデル５を構成する決定木の各葉ノードには、製品４１の生産に適応した指令値の予測の結果に対応する出力値として、指令値の基準値６０に対する補正値６３が対応付けられている。そのため、決定木の探索処理が完了した際に、制御部１１は、予測モデル５からの出力値として、到達した葉ノードに対応付けられた補正値６３を取得することができる。したがって、制御部１１は、取得した補正値６３により基準値６０を補正することで、生産装置３への指令値を決定することができる。指令値を決定すると、制御部１１は、次のステップＳ１０９に処理を進める。
【０１６２】
（ステップＳ１０９）
ステップＳ１０９では、制御部１１は、動作制御部１１６として動作し、決定した指令値に基づいて、生産装置３の動作を制御する。指令値に基づいて生産装置３の動作を制御する方法は、指令値の形式に応じて適宜選択されてよい。
【０１６３】
本実施形態では、生産装置３は、プレス機であり、上側金型３２を駆動するサーボドライバ３１を備えている。そのため、指令値は、サーボモータの駆動量を規定したパルス数を示してもよい。この場合、制御部１１は、外部インタフェース１４を介して、生産装置３のサーボドライバ３１に対して指令値を送信する。サーボドライバ３１は、制御装置１から受信した指令値に基づいてサーボモータを駆動する。これにより、制御部１１は、決定した指令値に基づいて、生産装置３の動作を制御することができる。生産装置３の動作を制御すると、制御部１１は、本動作例に係る処理を終了する。
【０１６４】
なお、指令値の形式は、このような例に限定されなくてもよい。指令値は、例えば、サーボモータの駆動量、上側金型３２の移動量等の中間指標により表現されてもよい。この場合、制御部１１は、中間指標により表現された指令値をそのまま生産装置３に送信してもよいし、中間指標により表現された指令値を、パルス数等の直接利用可能な形式に変換し、変化した指令値を生産装置３に送信してもよい。
【０１６５】
（ステップＳ１１１）
ステップＳ１１１は、上記のとおり、指令値の決定が制御タイミングに間に合わないと判定され、かつ予測モデル５の演算処理の加速が可能ではないと判定された場合に実行される。すなわち、ステップＳ１１１は、指令値の決定が制御タイミングに間に合うように予測モデル５の演算処理を加速することができない場合に実行される。このステップＳ１１１では、制御部１１は、予測演算部１１２として動作し、予測モデル５の演算処理を中止する。そして、制御部１１は、予測モデル５の演算処理の途中結果の値を取得する。
【０１６６】
ここで、図１３を用いて、予測モデル５を構成する決定木から得られる演算処理の途中結果の値について説明する。図１３は、決定木から途中結果の値を算出する方法を説明するための図である。具体的には、図１３は、図７Ａに示される決定木において、中間ノードＮ２に到達した時点で演算処理を中止（探索処理を打ち切り）した場面を例示している。
【０１６７】
探索処理を完了まで実行した場合には、本来ならば、その探索処理は、当該探索処理を中止した時点で到達した中間ノードに属するいずれかの葉ノードに到達していたはずである。中間ノードに属する葉ノードとは、その中間ノードから探索処理を継続した場合に、その探索処理が到達する可能性のある葉ノードである。つまり、中間ノードに属する葉ノードは、その中間ノードよりも下位の葉ノードであって、その中間ノードからリンクを経由して到達可能な葉ノードである。
【０１６８】
そこで、本実施形態では、演算処理の途中結果の値を、探索処理を中止した時点で到達した中間ノードに属する葉ノードに対応付けられた第１の値に基づいて決定する。すなわち、決定木の探索処理を中止した際には、制御部１１は、探索処理を中止した時点で到達した中間ノードに属する葉ノードに対応付けられた第１の値に基づいて決定された第２の値を途中結果の値として取得する。
【０１６９】
図１３の例では、３つの葉ノードＬ３〜Ｌ５が、中間ノードＮ２に属している。そのため、中間ノードＮ２に到達した時点で中止した探索処理の途中結果の値（すなわち、第２の値）は、葉ノードＬ３〜Ｌ５に対応付けられた第１の値に基づいて決定される。なお、本実施形態では、第１の値は、指令値の基準値６０に対する補正値６３である。そのため、第１の値に基づいて決定される第２の値も、指令値の基準値６０に対する補正値である。
【０１７０】
第１の値に基づいて第２の値を決定する方法は、実施の形態に応じて適宜選択されてよい。例えば、第２の値は、探索処理を中止した時点で到達した中間ノードに属する全ての葉ノードに対応付けられた第１の値の平均値であってよい。図１３のケースでは、葉ノードＬ３には補正値「２」が対応付けられており、葉ノードＬ４には補正値「４」が対応付けられており、葉ノードＬ５には補正値「９」が対応付けられている。そのため、図１３のケースにおいて、この方法を採用した場合には、第２の値は、補正値「５」と算出される。
【０１７１】
また、例えば、第２の値は、探索処理を中止した時点で到達した中間ノードに属する全ての葉ノードに対応付けられた第１の値の中間値であってもよい。図１３のケースにおいて、この方法を採用した場合、第２の値は、補正値「４」と算出される。
【０１７２】
また、例えば、第２の値には、探索処理を中止した時点で到達した中間ノードに属する全ての葉ノードに対応付けられた第１の値の平均値に最も近接する第１の値を採用してもよい。図１３のケースでは、全ての第１の値の平均値は「５」であり、この平均値「５」に最も近接する第１の値は「４」である。そのため、図１３のケースにおいて、この方法を採用した場合には、第２の値は、補正値「４」と算出される。
【０１７３】
また、例えば、第２の値には、探索処理を中止した時点で到達した中間ノードに属する全ての葉ノードに対応付けられた第１の値のうち最も頻度の高い値が採用されてもよい。図１３の例において、葉ノードＬ５に対応付けられている補正値が「２」であったと想定する。このケースでは、中間ノードＮ２に属する全ての葉ノードＬ３〜Ｌ５に対応付けられた第１の値のうち最も頻度の高い値は「２」である。そのため、このケースにおいて、この方法を採用した場合には、第２の値は、補正値「２」と算出される。
【０１７４】
制御部１１は、上記いずれかの方法により算出される第２の値を途中結果の値として適宜取得する。例えば、制御部１１は、決定木の探索処理（予測モデル５の演算処理）を中止した時点で、上記いずれかの方法により、第１の値から第２の値を算出することで、途中結果の値を取得してもよい。
【０１７５】
ただし、この取得方法では、第２の値を算出する計算を行う分だけ計算コストがかかってしまう。そこで、第２の値は、中間ノードに紐付けられていてもよい。この場合、制御部１１は、決定木の探索処理を中止した際には、当該探索処理を中止した時点で到達した中間ノードに紐付けられた第２の値を途中結果の値として取得してもよい。これにより、途中結果の値を取得する計算コストを抑えることができる。
【０１７６】
なお、この場合、制御装置１は、中間ノードと第２の値との対応関係を示すテーブル形式等の途中結果情報を記憶部１２に保持していてもよい。この途中結果情報は、学習結果データ２２５に含まれていてもよい。制御部１１は、決定木の探索処理を中止した際に、この途中結果情報を参照することで、探索処理を中止した時点で到達した中間ノードに紐付けられた第２の値を取得してもよい。
【０１７７】
以上により予測モデル５の演算処理を中止すると、制御部１１は、次のステップＳ１１２に処理を進める。
【０１７８】
（ステップＳ１１２）
図９Ｂに戻り、ステップＳ１１２では、制御部１１は、動作制御部１１６として動作し、途中結果の値が予測の結果として信頼できるか否かの度合いを示す信頼度を取得する。この信頼度は、実施の形態に応じて適宜算出されてよい。
【０１７９】
例えば、信頼度は、予測モデル５の演算処理の進行度に基づいて決定されてよい。本実施形態では、予測モデル５は決定木により構成されているため、演算処理の進行度は、決定木の深さの最大値に対する探索処理が到達した木の深さの割合で表現されてもよい。この場合、探索処理が深いノードに到達するほど、演算処理の進行度は進んでいると評価され、これにより、その途中結果の値に対する信頼度は高く設定される。
【０１８０】
また、探索処理が中間ノードに到達している状態は、決定木に含まれる全ての葉ノードに対応付けられた補正値から、到達した中間ノードに属する葉ノードに対応付けられた補正値まで、補正値の候補を絞ることができたことを示す。そのため、演算処理の進行度は、決定木に含まれる全ての葉ノードの数に対する、探索処理が到達した中間ノードに属する葉ノードの数の割合で表現されてもよい。この場合、探索処理が到達した中間ノードに属する葉ノードの数が少ないほど、演算処理の進行度は進んでいると評価され、これにより、その途中結果の値に対する信頼度は高く設定される。
【０１８１】
ただし、演算処理の進行度を表現する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、予測モデル５が複数の決定木により構成され、予測モデル５の演算処理が、各決定木に対して探索処理を実施し、探索処理を完了した各決定木から得られた出力値のうち最も頻度の高い出力値を取得する処理であると想定する。このような場合、演算処理の進行度は、予測モデル５を構成する決定木の総数に対する探索処理が完了した決定木の数の割合で表現されてもよい。
【０１８２】
なお、この進行度に基づいて信頼度を決定する場合において、信頼度と進行度との対応関係は、進行度が進んでいるほど信頼度が高くなり、進行度が進んでいないほど信頼度が低くなるように適宜設定されてよい。例えば、信頼度は、進行度に比例するように設定されてよい。
【０１８３】
また、例えば、信頼度は、途中結果の値を利用して、生産装置３の動作を試験又はシミュレーションした結果に基づいて決定されてよい。一例として、試験又はシミュレーションにおいて、品質基準に対する達成度（例えば、下死点との誤差）を算出し、算出した達成度により、信頼度を評価してもよい。この場合、達成度が高いほど信頼度は高く設定され、達成度が低いほど信頼度は低く設定される。
【０１８４】
制御部１１は、上記いずれかの方法により得られた信頼度を適宜取得する。信頼度が進行度に基づいて決定される場合、制御部１１は、演算処理の途中結果から進行度を算出し、算出した進行度に基づいて信頼度を算出することで、当該信頼度を取得してもよい。また、上記第２の値と同様に、信頼度は、中間ノードに紐付けられていてもよい。この場合、制御部１１は、決定木の探索処理を中止した際に、上記第２の値と同様の方法により、当該探索処理を中止した時点で到達した中間ノードに紐付けられた信頼度を取得することができる。途中結果の値に対する信頼度を取得すると、制御部１１は、次のステップＳ１１３に処理を進める。
【０１８５】
（ステップＳ１１３）
ステップＳ１１３では、制御部１１は、動作制御部１１６として動作し、ステップＳ１１２で取得した信頼度が、指定された閾値を超えるか否かを判定する。閾値は、実施の形態に応じて適宜指定されてよい。閾値は、例えば、制御装置１を利用するユーザにより指定されてもよいし、制御プログラム８１において予め指定されていてもよい。取得した信頼度が閾値を超えると判定した場合には、制御部１１は、次のステップＳ１１４に処理を進める。一方、取得した信頼度が閾値を超えないと判定した場合には、制御部１１は、ステップＳ１１４及びＳ１１５を省略して、ステップＳ１２１に処理を進める。
【０１８６】
（ステップＳ１１４）
ステップＳ１１４では、制御部１１は、動作制御部１１６として動作し、途中結果の値に基づいて生産装置３への指令値を決定する。上記のとおり、本実施形態に係る途中結果の値（第２の値）は、指令値の基準値６０に対する補正値である。そのため、本ステップＳ１１４では、制御部１１は、上記ステップＳ１０８と同様に、途中結果の値として取得した補正値により基準値６０を補正することで、生産装置３への指令値を決定することができる。指令値を決定すると、制御部１１は、次のステップＳ１１５に処理を進める。
【０１８７】
なお、本実施形態では、制御部１１は、上記ステップＳ１１１において、演算処理の途中結果の値を取得する。しかしながら、演算処理の途中結果の値を取得するタイミングは、このような例に限定されなくてもよい。演算処理の途中結果の値を取得するタイミングは、本ステップＳ１１４の前であれば、実施の形態に応じて適宜決定されてよい。制御部１１は、例えば、上記ステップＳ１１３において、信頼度が閾値を超えると判定した後に、演算処理の途中結果の値を取得してもよい。
【０１８８】
（ステップＳ１１５）
ステップＳ１１５では、制御部１１は、動作制御部１１６として動作し、ステップＳ１１４で決定した指令値に基づいて、生産装置３の動作を制御する。本ステップＳ１１５は、上記ステップＳ１０９と同様である。生産装置３の動作を制御すると、制御部１１は、本動作例に係る処理を終了する。
【０１８９】
（ステップＳ１２１）
ステップＳ１２１では、制御部１１は、動作制御部１１６として動作し、予め与えられた設定値を指令値に指定する。
【０１９０】
予め与えられた設定値は、実施の形態に応じて適宜決定されてよい。予め与えられた設定値は、例えば、指令値の基準値６０、過去の指令値であってよい。本動作例に係る生産装置３の動作を制御する一連の処理を繰り返し実行している場合、過去の指令値は、例えば、生産装置３の動作を直前に制御した際の前回値であってもよい。
【０１９１】
この前回値は、ステップＳ１００で取得された入力データを問わずに、生産装置３の動作を直前に制御した際の指令値であってもよい。この場合、制御部１１は、直前と今回と２回続けて同じ指令値を指定することになる。
【０１９２】
また、前回値は、ステップＳ１００で取得された入力データが同一又は近似するケースにおいて、生産装置３の動作を直前に制御した際の指令値であってもよい。なお、制御部１１は、過去の制御した際の入力データと今回取得された入力データとの差分が閾値以下であるか否かを判定することにより、今回のケースと過去のケースとにおいて入力データが近似するか否かを判定することができる。
【０１９３】
この予め与えられた設定値は、記憶部１２、制御部１１のＲＡＭ等に保持されてよい。制御部１１は、記憶部１２、ＲＡＭ等に保持された設定値を参照することで、生産装置３への指令値を指定することができる。指令値を指定すると、制御部１１は、次のステップＳ１２２に処理を進める。
【０１９４】
（ステップＳ１２２）
ステップＳ１２２では、制御部１１は、動作制御部１１６として動作し、ステップＳ１２１により指定した指令値に基づいて、生産装置３の動作を制御する。本ステップＳ１２２は、上記ステップＳ１０９と同様である。生産装置３の動作を制御すると、制御部１１は、本動作例に係る処理を終了する。
【０１９５】
（終了後）
以上により、制御部１１は、本動作例に係る生産装置３の動作を制御する一連の処理を終了する。制御部１１は、この一連の処理を繰り返し実行することで、生産装置３の動作を継続的に制御することができる。
【０１９６】
［学習装置］
次に、図１４を用いて、学習装置２の動作例について説明する。図１４は、学習装置２の処理手順の一例を例示するフローチャートである。なお、以下で説明する予測モデル５の機械学習に関する処理手順は、コンピュータによる学習方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１９７】
（ステップＳ２０１）
ステップＳ２０１では、制御部２１は、学習データ取得部２１１として動作し、予測モデル５の機械学習に利用する学習データを取得する。学習用データの形式は、予測モデル５の種別に応じて適宜決定されてよい。
【０１９８】
本実施形態では、予測モデル５は、決定木により構成される。更に、決定木は、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２の入力に対して、指令値の基準値６０に対する補正値６３を出力するように構築される。そのため、制御部２１は、ワークの特徴量２２１１及び製品を生産する環境の属性値２２１２と、それに適応した補正値２２１３との組み合わせにより構成される学習用データセット２２１を取得する。
【０１９９】
この学習用データセット２２１は、実施の形態に応じて適宜生成されてよい。例えば、ワークの特徴量２２１１及び製品を生産する環境の属性値２２１２を様々な条件で取得する。特徴量２２１１及び属性値２２１２の取得には、公知のセンサが用いられてよい。例えば、属性値２２１２として温度を取得する場合には、温度センサが用いられてよい。そして、得られた特徴量２２１１及び属性値２２１２に対して、この条件において適切な指令値を得るための補正値２２１３を組み合わせる。これにより、学習用データセット２２１を生成することができる。
【０２００】
この学習用データセット２２１の生成は、学習装置２により行われてもよい。この場合、制御部２１は、オペレータによる入力装置２４の操作に応じて、学習用データセット２２１を生成してもよい。また、制御部２１は、学習プログラム８２の処理により、学習用データセット２２１を自動的に生成してもよい。この生成処理を実行することで、本ステップＳ２０１では、制御部２１は、学習用データセット２２１を取得することができる。
【０２０１】
また、学習用データセット２２１の生成は、学習装置２以外の他の情報処理装置により行われてもよい。他の情報処理装置では、学習用データセット２２１は、オペレータにより手動で生成されてもよいし、プログラムの処理により自動的に生成されてもよい。この場合、本ステップＳ２０１では、制御部２１は、ネットワーク、記憶媒体９２等を介して、他の情報処理装置により生成された学習用データセット２２１を取得することができる。
【０２０２】
本ステップＳ２０１で取得する学習用データセット２２１の件数は、実施の形態に応じて適宜決定されてよく、例えば、決定木の機械学習を実施可能な程度に適宜決定されてよい。これにより、学習用データセット２２１を取得すると、制御部２１は、次のステップＳ２０２に処理を進める。
【０２０３】
（ステップＳ２０２）
ステップＳ２０２では、制御部２１は、学習処理部２１２として動作し、取得した学習用データセット２２１を利用した機械学習を行うことにより、学習済みの予測モデル５を構築する。
【０２０４】
本実施形態では、制御部２１は、特徴量２２１１及び属性値２２１２を入力すると、入力した特徴量２２１１及び属性値２２１２に関連付けられた補正値２２１３に対応するクラスの葉ノードに到達する探索が可能な決定木を構築する。この決定木の学習方法には、ＣＬＳ（Concept Learning System）、ＩＤ３（Iterative Dichotomiser 3）、Ｃ４．５等が用いられてもよい。これにより、制御部２１は、学習済みの予測モデル５を構築することができる。
【０２０５】
（ステップＳ２０３）
ステップＳ２０３では、制御部２１は、学習処理部２１２として動作して、機械学習により構築した決定木（学習済みの予測モデル５）の構成及び各分岐条件を示す情報を学習結果データ２２５として記憶部２２に格納する。これにより、制御部２１は、本動作例に係る予測モデル５の学習処理を終了する。
【０２０６】
なお、制御部２１は、上記ステップＳ２０３の処理が完了した後に、作成した学習結果データ２２５を制御装置１に転送してもよい。また、制御部２１は、上記ステップＳ２０１〜Ｓ２０３の学習処理を定期的に実行することで、学習結果データ２２５を定期的に更新してもよい。そして、制御部２１は、作成した学習結果データ２２５を学習処理の実行毎に制御装置１に転送することで、制御装置１の保持する学習結果データ２２５を定期的に更新してもよい。また、例えば、制御部２１は、作成した学習結果データ２２５をＮＡＳ（Network Attached Storage）等のデータサーバに保管してもよい。この場合、制御装置１は、このデータサーバから学習結果データ２２５を取得してもよい。また、学習装置２により作成された学習結果データ２２５は、制御装置１に予め組み込まれてもよい。
【０２０７】
［特徴］
以上のとおり、本実施形態では、予測モデル５を利用して生産装置３への指令値を予測する際に、ステップＳ１０３及びステップＳ１０４により、残処理時間を算出し、算出した残処理時間に基づいて、予測モデル５による指令値の決定が制御タイミングに間に合うか否かを判定する。これにより、予測モデル５を利用した指令値の予測に関する演算処理が、その予測した指令値を利用して生産装置３の動作を制御するタイミングに間に合うか否かを特定することができる。つまり、ステップＳ１０８による指令値の決定が、生産装置３の動作を制御する制御予定時刻までに完了するか否かを特定することができる。
【０２０８】
特に、制御装置１では、上記予測モデル５の演算処理以外の他のタスクを含む複数のタスクが処理され得る（例えば、図１２Ｂ〜図１２Ｄ）。この場合には、例えば、割込みのタスクが発生する等により、制御装置１における演算資源（ハードウェアプロセッサ、メモリ等）が同一の条件で利用できるとは限らない。すなわち、制御装置１における演算資源の状況は時々刻々と変化していき、それに伴って、予測モデル５の演算処理に用いることができる演算資源も変化し得る。したがって、予測モデル５の演算処理にかかる処理時間は常に一定であるとは限らない。そのため、シミュレーション等により予め特定した処理時間に基づいて、予測モデル５の演算処理は、制御タイミングに間に合うように処理可能であると判定されていたとしても、運用の際に、制御装置１は、生産装置３の制御タイミングに間に合うように予測モデル５の演算処理を常に完了できるとは限らない。これに対して、本実施形態では、制御装置１は、上記ステップＳ１０３において、予測モデル５の演算処理を実行する時点の演算資源の状況（具体的には、演算処理の進捗）を確認し、これに基づいて、演算処理にかかる残処理時間を算出する。これによって、演算資源の状況が時々刻々と変化しても、制御装置１は、ステップＳ１０４において、予測モデル５の演算処理が制御タイミングに間に合うか否かを適切に判定することができる。よって、本実施形態によれば、生産装置３の予測制御の演算時間を適切に管理することができる。
【０２０９】
その上で、本実施形態では、ステップＳ１０４において、指令値の決定が制御タイミングに間に合うと判定した場合に、制御装置１は、ステップＳ１０２〜Ｓ１０４及びＳ１０７の一連の処理を繰り返した後、ステップＳ１０８及びＳ１０９の処理を実行する。これにより、制御装置１は、そのまま予測制御を適切に実行することができる。一方、ステップＳ１０４において、指令値の決定が制御タイミングに間に合わないと判定され、かつステップＳ１０５において、予測モデル５の演算処理の加速が可能ではないと判定された場合には、制御装置１は、予測モデル５の演算処理を中止する。この場合には、制御装置１は、上記ステップＳ１１４及びＳ１１５により、演算処理の途中結果の値に基づいて指令値を決定し、決定した指令値に基づいて生産装置３の動作を制御する。あるいは、制御装置１は、上記ステップＳ１２１及びＳ１２２により、予め与えられた設定値を指令値に指定し、指定した指令値に基づいて生産装置３の動作を制御する。これにより、予測モデル５による指令値の決定が制御タイミングに間に合わないことにより、生産装置３の動作を制御する処理が滞ってしまうことを防止することができる。したがって、本実施形態によれば、生産装置３の予測制御を適切に実施することができる。
【０２１０】
また、本実施形態では、ステップＳ１１３により、途中結果の値に対する信頼度が比較的に高いと評価される場合に、制御装置１は、上記ステップＳ１１４及びＳ１１５により、演算処理の途中結果の値に基づいて指令値を決定し、決定した指令値に基づいて生産装置３の動作を制御する。一方、途中結果の値に対する信頼度が比較的に低いと評価される場合には、制御装置１は、上記ステップＳ１２１及びＳ１２２により、予め与えられた設定値を指令値に指定し、指定した指令値に基づいて生産装置３の動作を制御する。これにより、予測モデル５の演算処理が完了しなかった場合でも、信頼度が閾値よりも高い途中結果の値に基づいて、製品の生産に適応した指令値を決定することができる。そのため、本実施形態によれば、予測モデル５の演算処理が完了しなかった場合でも、生産装置３の動作を適切に制御することができる。
【０２１１】
また、本実施形態では、ステップＳ１０４において、指令値の決定が制御タイミングに間に合うと判定した場合に、ステップＳ１０６の処理を実行することで、予測モデル５の演算処理を加速することができる。これによって、制御装置１は、予測モデル５による指令値の決定が制御タイミングに間に合うようにすることができる。したがって、本実施形態によれば、予測モデル５による予測制御を打ち切る可能性を低減し、当該予測制御を適切に実施することができる。
【０２１２】
§４  変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【０２１３】
＜４．１＞
上記実施形態では、ステップＳ１０４において、予測モデル５による指令値の決定が制御タイミングに間に合わないと判定した場合に、制御部１１は、ステップＳ１０５及びＳ１０６により、予測モデル５の演算処理を加速する。この予測モデル５の演算処理を加速する処理は、省略されてもよい。加速処理を省略する場合、上記ステップＳ１０５及びＳ１０６は省略されてもよく、制御装置１のソフトウェア構成から加速処理部１１５は省略されてもよい。
【０２１４】
また、上記実施形態では、ステップＳ１１２において、途中結果の値に対する信頼度を取得し、ステップＳ１１３において、取得した信頼度が閾値を超えるか否かを判定している。これにより、制御部１１は、生産装置３への指令値を決定するのに、演算処理の途中結果の値を利用するか、予め与えられた設定値を利用するかを決定している。このステップＳ１１２及びＳ１１３の一連の処理は省略されてもよい。この場合、ステップＳ１２１及びＳ１２２は省略されてもよい。
【０２１５】
＜４．２＞
上記実施形態では、予測モデル５は、製品４１の生産に適応した指令値の予測の結果として、指令値の基準値６０に対する補正値６３を出力するように構成されている。しかしながら、予測モデル５の出力形式は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、予測モデル５は、指令値そのものを出力するように構成されてもよい。
【０２１６】
＜４．３＞
上記実施形態では、予測モデル５の入力には、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２の両方が利用されている。しかしながら、予測モデル５の入力は、このような例に限定されなくてもよい。ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２のうちの一方は省略されてもよい。すなわち、上記予測モデル５は、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２の少なくとも一方に対して、製品４１の生産に適応した指令値を予測するように構築されてよい。また、上記予測モデル５の入力には、生産装置３による製品４１の生産工程に影響を与え得る要因に関するデータであって、ワーク４０の特徴量６１及び製品４１を生産する環境の属性値６２以外のデータが用いられてもよい。
【０２１７】
＜４．４＞
上記実施形態では、予測モデル５は、決定木により構成されている。しかしながら、予測モデル５の構成は、予測処理を実行する時点よりも先の時点（将来の時点）における生産装置３への指令値を予測可能であり、かつ演算処理の途中結果を出力可能であれば、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。また、予測モデル５は、学習モデル以外のモデルが用いられてもよい。
【符号の説明】
【０２１８】
１…制御装置、
１１…制御部、１２…記憶部、１３…通信インタフェース、
１４…外部インタフェース、
１５…入力装置、１６…出力装置、１７…ドライブ、
１１１…データ取得部、１１２…予測演算部、
１１３…残処理時間算出部、１１４…遅延判定部、
１１５…加速処理部、１１６…動作制御部、
８１…制御プログラム、１２１…割当データ、
９１…記憶媒体、
２…学習装置、
２１…制御部、２２…記憶部、２３…通信インタフェース、
２４…入力装置、２５…出力装置、２６…ドライブ、
２１１…学習データ取得部、２１２…学習処理部、
８２…学習プログラム、２２１…学習用データセット、
２２５…学習結果データ、
９２…記憶媒体、
３…生産装置（プレス機）、
３１…サーボドライバ、３２…上金型、３３…下金型、
４０…ワーク、４１…製品、
５…予測モデル（決定木）、
６０…（指令値の）基準値、
６１…特徴量、６２…属性値、６３…補正値
【図１】
2019179468.tif 000005
【図２】
2019179468.tif 000006
【図３】
2019179468.tif 000007
【図４Ａ】
2019179468.tif 000008
【図４Ｂ】
2019179468.tif 000009
【図４Ｃ】
2019179468.tif 000010
【図４Ｄ】
2019179468.tif 000011
【図５】
2019179468.tif 000012
【図６】
2019179468.tif 000013
【図７Ａ】
2019179468.tif 000014
【図７Ｂ】
2019179468.tif 000015
【図８】
2019179468.tif 000016
【図９Ａ】
2019179468.tif 000017
【図９Ｂ】
2019179468.tif 000018
【図１０】
2019179468.tif 000019
【図１１】
2019179468.tif 000020
【図１２Ａ】
2019179468.tif 000021
【図１２Ｂ】
2019179468.tif 000022
【図１２Ｃ】
2019179468.tif 000023
【図１２Ｄ】
2019179468.tif 000024
【図１３】
2019179468.tif 000025
【図１４】
2019179468.tif 000026