(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024126970
(43)【公開日】2024-09-20
(54)【発明の名称】制御装置、制御方法、プログラム、及び制御システム
(51)【国際特許分類】
G05B 13/02 20060101AFI20240912BHJP
【FI】
G05B13/02 L
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023035771
(22)【出願日】2023-03-08
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】秦 洋
(72)【発明者】
【氏名】高野 俊也
(72)【発明者】
【氏名】山中 理
【テーマコード(参考)】
5H004
【Fターム(参考)】
5H004GA04
5H004GA05
5H004GB01
5H004GB11
5H004GB15
5H004HA14
5H004HB07
5H004HB08
5H004HB09
5H004KB02
5H004KB04
5H004KB06
5H004KC37
5H004KD47
(57)【要約】
【課題】複数の制御パターンを有する制御対象の装置を汎用的に制御可能にする制御装置、制御方法、プログラム、及び制御システムを提供する。
【解決手段】実施形態の制御装置は、取得部と、決定部と、制御部と、を備える。前記取得部は、制御対象装置の制御状態に関する制御状態情報を取得する。前記決定部は、前記制御状態情報に応じた制御パターンを決定する。前記制御部は、前記制御パターンに対応した強化学習モデルに基づいて、前記制御対象装置を制御する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
制御対象装置の制御状態に関する制御状態情報を取得する取得部と、
前記制御状態情報に応じた制御パターンを決定する決定部と、
前記制御パターンに対応した強化学習モデルに基づいて、前記制御対象装置を制御する制御部と、
を備える制御装置。
【請求項2】
前記決定部は、
前記制御対象装置の前記制御パターンごとの動作内容を予測する予測部と、
前記予測部により予測された前記制御パターンごとの動作内容と、前記制御対象装置の動作内容との偏差を算出する算出部と、
前記算出部により算出された前記偏差に基づいて、前記制御パターンを選択する選択部と、を備える、
請求項1に記載の制御装置。
【請求項3】
前記制御部は、前記制御対象装置の操作値を調整する制御パラメータを出力する前記強化学習モデルに基づいて、前記制御対象装置を制御する、
請求項1に記載の制御装置。
【請求項4】
前記制御部は、前記制御状態情報が入力された場合に、前記制御パラメータを出力する前記強化学習モデルに基づいて、前記制御対象装置を制御する、
請求項1に記載の制御装置。
【請求項5】
前記制御対象装置の複数の前記制御パターンごとに強化学習を実行する学習部と、
前記学習部による強化学習により生成された前記強化学習モデルを記憶部に記憶させる記憶制御部と、を更に備える、
請求項1から請求項4の何れか一項に記載の制御装置。
【請求項6】
前記学習部は、前記制御対象装置の制御状態、及び前記制御パターンごとに強化学習を実行する、
請求項5に記載の制御装置。
【請求項7】
制御対象装置の制御状態に関する制御状態情報を取得し、
前記制御状態情報に応じた制御パターンを決定し、
前記制御パターンに対応した強化学習モデルに基づいて、前記制御対象装置を制御する、
ことを含む制御方法。
【請求項8】
コンピュータを、
制御対象装置の制御状態に関する制御状態情報を取得する取得部と、
前記制御状態情報に応じた制御パターンを決定する決定部と、
前記制御パターンに対応した強化学習モデルに基づいて、前記制御対象装置を制御する制御部と、
して機能させるためのプログラム。
【請求項9】
複数の制御パターンを有する制御対象装置と、当該制御対象装置を制御する制御装置とを有する制御システムであって、
前記制御装置は、
制御対象装置の制御状態に関する制御状態情報を取得する取得部と、
前記制御状態情報に応じた制御パターンを決定する決定部と、
前記制御パターンに対応した強化学習モデルに基づいて、前記制御対象装置を制御する制御部と、
を備える制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、制御装置、制御方法、プログラム、及び制御システムに関する。
【背景技術】
【0002】
従来、高い制御精度を実現する技術として、自動制御の最適化運用を支援する機械学習の一種である強化学習(Reinforcement Learning)が知られている。強化学習は、制御対象がより良い制御状態となるように操作量を学習する手法である。そして、強化学習により生成された強化学習モデルは、制御対象の装置を適切に制御することができる。
【0003】
ここで、強化学習は、試行錯誤的に操作量を探索する学習手法である。そのため、制御対象の装置に複数の制御パターンがある場合、強化学習は、それぞれの制御パターンにおいて試行錯誤的に操作量を探索することでより高度な制御を獲得できる期待がある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、試行錯誤的に操作量を探索する強化学習において、制御対象の装置は、異常停止や破損などの危険を伴う。そのため、複数の制御パターンを有する制御対象の装置を汎用的に制御可能とする制御装置が求められている。
【0006】
そこで、本発明は、上記事情に鑑みてなされたものであり、複数の制御パターンを有する制御対象の装置を汎用的に制御可能にする制御装置、制御方法、プログラム、及び制御システムを提供することを課題とする。
【課題を解決するための手段】
【0007】
実施形態の制御装置は、取得部と、決定部と、制御部と、を備える。前記取得部は、制御対象装置の制御状態に関する制御状態情報を取得する。前記決定部は、前記制御状態情報に応じた制御パターンを決定する。前記制御部は、前記制御パターンに対応した強化学習モデルに基づいて、前記制御対象装置を制御する。
【図面の簡単な説明】
【0008】
【
図1】
図1は、第1の実施形態に係る制御システムの概略の一例を示す図である。
【
図2】
図2は、第1の実施形態に係る制御装置が有するハードウェア構成の概略的な一例を示す図である。
【
図3】
図3は、第1の実施形態に係る制御装置が有する機能の概略的な一例を示す図である。
【
図4】
図4は、第1の実施形態に係る制御学習部が有する機能の概略的な一例を示す図である。
【
図5】
図5は、第1の実施形態に係る基本制御部が有する機能の概略的な一例を示す図である。
【
図6】
図6は、第1の実施形態に係る制御推論部が有する機能の概略的な一例を示す図である。
【
図7】
図7は、第1の実施形態に係る制御パターン決定部が有する機能の概略的な一例を示す図である。
【
図8】
図8は、第1の実施形態に係る制御装置が実行するデータベース作成処理の一例を示すフローチャートである。
【
図9】
図9は、第1の実施形態に係る制御装置が実行する推論処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下に添付図面を参照して、制御装置、制御方法、プログラム、及び制御システムを詳細に説明する。なお、以下の各実施形態および変形例における説明において、同一の符号が付されている部分は実質的に同一の機能を有しており、重複部分については適宜説明を省略する。
【0010】
(第1の実施形態)
図1は、第1の実施形態に係る制御システム1の概略の一例を示す図である。制御システム1は、制御対象装置10と、制御装置20とを備える。制御対象装置10と、制御装置20とは、通信可能に接続される。
図1に示す制御システム1は、制御対象装置10と、制御装置20とそれぞれ一台ずつ有する。しかしながら、制御システム1は、制御対象装置10と、制御装置20とを複数台有していてもよい。
【0011】
制御対象装置10は、制御装置20により制御される対象の装置である。制御対象装置10は、複数の制御パターンを有する。制御パターンは、制御対象装置10の制御状態のパターンである。
【0012】
例えば、制御対象装置10は、サーボモータである。この場合、制御パターンは、サーボモータの回転角度となる。制御パターンは、サーボモータの負荷状態ごとに設けられる。例えば、負荷状態には、高負荷、中負荷、及び低負荷がある。そして、制御対象装置10は、高負荷、中負荷、及び低負荷のそれぞれに応じた制御パターンにより制御される。
【0013】
制御装置20は、制御対象装置10を制御する装置である。例えば、制御装置20は、マイクロコンピュータや、パーソナルコンピュータや、サーバ装置などのコンピュータ装置である。制御装置20は、制御対象装置10の制御状態を示す制御状態情報を取得する。そして、制御装置20は、制御状態情報に基づいて、制御対象装置10を制御する。
【0014】
次に、制御装置20が有するハードウェア構成について説明する。
【0015】
図2は、第1の実施形態に係る制御装置20が有するハードウェア構成の概略的な一例を示す図である。制御装置20は、プロセッサ21、RAM(Random Access Memory)22、ROM(Read Only Memory)23、記憶装置24、及び入出力インタフェース25を有する。
【0016】
プロセッサ21は、制御装置20を統括的に制御する。例えば、プロセッサ21は、CPU(Central Processing Unit)などの制御回路である。RAM22は、プロセッサ21の作業領域を提供する揮発性のメモリである。ROM23は、各種プログラムやパラメータを記憶する不揮発性のメモリである。プロセッサ21は、ROM23や記憶装置24等に記憶されたプログラムに従い、RAM22をワーキングエリアに使用して各種演算処理を実行する。
【0017】
記憶装置24は、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)などの情報を記憶する装置である。例えば、記憶装置24は、制御プログラムや、強化学習データベースを記憶する。制御プログラムは、記憶装置24が有する機能を実現するためのプログラムである。強化学習データベースは、制御対象装置10の制御パターンごとに設けられた複数の強化学習モデルを有する。
【0018】
入出力インタフェース25は、制御対象装置10との通信を実行するインタフェースである。例えば、入出力インタフェース25は、制御対象装置10との通信を実行する回路である。
【0019】
次に、制御装置20が有する機能構成について説明する。
【0020】
図3は、第1の実施形態に係る制御装置20が有する機能の概略的な一例を示す図である。制御装置20のプロセッサ21は、ROM23や記憶装置24等に記憶されたプログラムに従い、RAM22をワーキングエリアに使用して各種処理を実行することで、
図3に示す機能を実現する。すなわち、制御装置20は、入出力制御部201、動作選択部202、制御学習部210、強化学習モデル管理部220、及び制御推論部230を有する。
【0021】
なお、制御装置20の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【0022】
入出力制御部201は、入出力インタフェース25を制御することにより、制御対象装置10に対する情報の入出力を実行する。さらに詳しくは、入出力制御部201は、制御対象装置10の制御状態に関する制御状態情報を取得する。入出力制御部201は、取得部の一例である。制御状態情報には、状態情報、制御指令値、制御測定値、及び制御パターンなどが含まれる。状態情報は、制御装置20による制御に基づいて、制御対象装置10が実行することにより変化する制御対象装置10の状態を示す情報である。制御指令値は、制御の目標値を示す情報である。制御測定値は、制御対象装置10により測定された測定値を示す情報である。制御パターンは、制御対象装置10の制御状態を示すパターンである。
【0023】
また、入出力制御部201は、制御対象装置10に対する操作の量を示す操作量を出力する。
【0024】
動作選択部202は、モード選択信号に基づいて、制御状態情報を提供する提供先を決定する。モード選択信号には、制御装置20の動作モードを選択する信号である。動作モードには、強化学習モデルを生成する学習モードと、強化学習モデルにより制御対象装置10を制御する推論モードとがある。
【0025】
動作選択部202は、モード選択信号が学習モードを示している場合に、制御学習部210を動作させる。また、動作選択部202は、制御学習部210に制御状態情報を入力する。一方、動作選択部202は、モード選択信号が推論モードを示している場合に、制御推論部230を動作させる。また、動作選択部202は、制御推論部230に制御状態情報を入力する。
【0026】
制御学習部210は、強化学習により強化学習モデルを生成する。さらに詳しくは、制御学習部210は、強化学習実行部211、及び基本制御部212を有する。
【0027】
強化学習実行部211は、制御対象装置10の複数の制御パターンごとに強化学習を実行することにより、制御パターンごとに強化学習モデルを生成する。強化学習実行部211は、学習部の一例である。強化学習モデルは、状態情報、制御指令値、及び制御測定値が入力された場合に、入力された状態情報、制御指令値、及び制御測定値に応じた制御パラメータを出力する。また、強化学習実行部211は、強化学習モデルにより生成された制御パラメータを基本制御部212に出力する。制御パラメータは、制御対象装置10の操作値を調整するパラメータである。
【0028】
強化学習実行部211は、動作環境や動作条件などの制御状態及び制御パターンごとに強化学習を実行する。これにより、強化学習実行部211は、動作環境や動作条件などの制御状態に適した強化学習モデルを生成する。
【0029】
基本制御部212は、制御対象装置10を制御する。例えば、基本制御部80は、PI(Proportional Integral)制御やPID(Proportional Integral Derivative)制御により制御対象装置10を制御する。
【0030】
基本制御部212は、強化学習実行部211から出力された制御パラメータが設定される。すなわち、基本制御部212は、制御対象装置10の制御状態に応じて調整が必要な制御パラメータが設定される。また、基本制御部212は、制御パラメータに応じた操作量を算出する。そして、基本制御部212は、入出力制御部201に操作量を出力する。
【0031】
入出力制御部201は、基本制御部212から入力された操作量を制御対象装置10に出力する。これにより、制御対象装置10は、操作量に基づいた動作を実行する。そして、制御対象装置10は、動作に対応した制御状態情報を制御装置20に出力する。
【0032】
また、制御学習部210は、制御対象装置10から出力された制御状態情報に基づいて、報酬を算出する。そして、制御学習部210は、報酬が最大となるように学習させる。制御学習部210は、このような処理を繰り返し実行することにより強化学習を実行する。これにより、制御学習部210は、強化学習モデルを生成する。
【0033】
強化学習モデル管理部220は、強化学習モデルを管理する。さらに詳しくは、強化学習モデル管理部220は、制御学習部210により強化学習モデルが生成された場合に、強化学習モデルの生成に使用された状態情報、制御指令値、及び制御測定値に関連付けられた制御パターンを制御状態情報から取得する。そして、強化学習モデル管理部220は、強化学習実行部211により生成された強化学習モデルと制御パターンとを関連付けて強化学習モデルデータベースに格納する。強化学習モデル管理部220は、記憶制御部の一例である。
【0034】
また、強化学習モデル管理部220は、制御推論部230から強化学習モデルを要求された場合に、要求に含まれる制御パターンに応じた強化学習モデルを強化学習モデルデータベースから取得する。そして、強化学習モデル管理部220は、強化学習モデルを制御推論部230に出力する。
【0035】
制御推論部230は、強化学習モデルに基づいて、制御対象装置10を制御する。言い換えると、制御推論部230は、制御対象装置10の制御状態に適した操作量を推論する。さらに詳しくは、制御推論部230は、制御パターン決定部231、強化学習推論部232、及び基本制御部233を有する。
【0036】
制御パターン決定部231は、制御状態情報に含まれる状態情報、制御指令値、及び制御測定値に応じた制御パターンを決定する。制御パターン決定部231は、決定部の一例である。さらに詳しくは、制御パターン決定部231は、制御対象装置10の動作内容を予測する。また、制御パターン決定部231は、予測した動作内容に基づいて、制御対象装置10の複数の制御パターンから一つの制御パターンを決定する。すなわち、制御パターン決定部231は、今回のステップに適した制御パターンを予測する。
【0037】
強化学習推論部232は、制御パターンに応じた制御パラメータを出力する。さらに詳しくは、強化学習推論部232は、制御パターン決定部231により予想された制御パターンに応じた強化学習モデルを強化学習モデル管理部220に要求する。また、強化学習推論部232は、強化学習モデル管理部220から取得した強化学習モデルに制御状態情報を入力することにより、制御パラメータを取得する。そして、強化学習推論部232は、取得した制御パラメータを基本制御部233に出力する。
【0038】
基本制御部233は、制御学習部210の基本制御部212と同様の機能を有する。すなわち、基本制御部233は、制御パターン決定部231により決定された制御パターンに対応した強化学習モデルに基づいて、制御対象装置10を制御する。基本制御部233は、制御部の一例である。基本制御部233は、強化学習推論部232から出力された制御パラメータを設定する。すなわち、基本制御部233は、制御対象装置10の操作値を調整する制御パラメータを出力する強化学習モデルに基づいて、制御対象装置10を制御する。
【0039】
また、基本制御部233は、制御パラメータに応じた操作量を算出する。すなわち、基本制御部233は、制御状態情報の制御状態情報に含まれる制御指令値、及び制御測定値が入力された場合に、制御パラメータを出力する強化学習モデルに基づいて、制御対象装置10を制御する。そして、基本制御部233は、入出力制御部201を介して、制御対象装置10に操作量を出力する。
【0040】
次に、制御学習部210をより詳細に説明する。
【0041】
図4は、第1の実施形態に係る制御学習部210が有する機能の概略的な一例を示す図である。強化学習実行部211は、強化学習部2111、記憶制御部2112、及び報酬演算部2113を有する。
【0042】
強化学習部2111は、制御パターンごとに強化学習を実行する。強化学習部2111は、状態情報、制御指令値、及び制御測定値が入力された場合に、状態情報、制御指令値、及び制御測定値に応じた制御パラメータを出力する強化学習を実行する。すなわち、強化学習部2111は、報酬が最大となるように制御パラメータを学習する。
【0043】
記憶制御部2112は、強化学習において出力したデータを後で使用するために記憶装置24に記憶する。また、記憶制御部2112は、強化学習において記憶装置24からデータを取得する。
【0044】
報酬演算部2113は、強化学習における報酬を算出する。例えば、報酬演算部2113は、強化学習において、状態情報、制御指令値、制御測定値に基づき報酬を算出する。また、報酬演算部2113は、基本制御部212で算出された操作量を含めて報酬を算出してもよい。
【0045】
ここで、制御学習部210をよる強化学習について、より詳細に説明する。
【0046】
例えば、強化学習部2111は、直接方策探索法(Direct Policy Search:DPS)の一種である方策勾配法(policy gradient method)により強化学習を実行する。しかしながら、強化学習部2111が実行する強化学習は、方策勾配法に限定されるものではなく、その他の探索アルゴリズムを用いても良い。
【0047】
方策勾配法は、強化学習エージェントの行動確率をニューラルネットワークで表現するための学習手法である。方策(policy)を探索するために、状態(state)、行動(action)、報酬(reward)の3要素が使用される。離散時間ステップtのときの状態をst、行動をat、確率的方策関数(stochastic policy function)をπ(at|st)とする。強化学習部2111は、状態stを観測して行動atを実行し、遷移の結果、報酬を受け取る。行動選択において確率的方策を特徴付ける確率的方策関数π(at|st)は、状態stにおいて行動atを選択する確率を表す。すなわち、強化学習部2111は、状態stに応じた方策の確率πに従った行動atを実行する。これにより、確率的方策関数π(at|st)に従い、状態stから状態st+1に遷移する。
【0048】
報酬は、遷移先の状態st+1に含まれるステップt+1の制御指令値と制御測定値、または他の状態情報や操作量に基づき、報酬演算部2113により算出される。強化学習部2111は、方策的確率π(at|st)についての情報を事前に与えられていない。そして、強化学習の目的は、価値の最大化を達成するように方策的確率πの学習を行うことである。すなわち、強化学習部2111は、下記の数式(1)に示すように、割引報酬合計による評価値Vπ(s)を最大化する確率的方策関数πを学習する。
【0049】
【0050】
ここで、γは、割引率(但し、0≦γ≦1)であり、未来の報酬の重要度を示す。また、E[]は、期待値を示す。
【0051】
ここでは、強化信号としてTD_errが計算される。TD_errは、状態遷移による評価値Vπ(s)の変化を示す。強化学習部2111の学習においては、TD_errを行動評価として確率的方策関数π(at|st)を改善する。すなわち、強化学習部2111は、TD_errが正の時、良い状態に遷移したと考えられるので状態stにおける行動atの選択確率を増やす。逆に、強化学習部2111は、TD_errが負の時、状態stにおける行動atの選択確率を減らす。
【0052】
行動選択率を特徴付ける確率的方策関数π(at|st)は、方策パラメータベクトルθを用いて表される。すなわち、確率的方策関数π(at|st)は、方策パラメータベクトルθを含んで表現される。
【0053】
強化学習部2111は、方策パラメータベクトルθを調節することで行動選択確率を変化させる。例えば強化学習部2111は、下記の数式(2)に示すように、目的関数を最大化するため方策パラメータθを更新する。ηは学習係数であり、η>0である。
【0054】
【0055】
これにより、強化学習部2111は、ステップπの状態sに対して、学習で改善した確率的方策関数πに基づいて、ステップt+1に適した基本制御部80の制御パラメータを決定する。
【0056】
記憶制御部2112は、強化学習部2111が強化学習で獲得したデータ{st,at,rt,st+1}を行動遷移としてリプレイバッファに蓄積する。そして、強化学習部2111は、学習する際にリプレイバッファに蓄積したデータを繰り返しランダムサンプリングして利用する。
【0057】
強化学習部2111は、制御パターンに応じた強化学習が終わり次第、強化学習モデルを出力する。そして、強化学習モデル管理部220は、制御パターンをインデックスとして強化学習モデルデータベースに格納する。
【0058】
次に、基本制御部212をより詳細に説明する。
【0059】
図5は、第1の実施形態に係る基本制御部212が有する機能の概略的な一例を示す図である。基本制御部212は、パラメータ設定部2121、及び基本制御演算部2122を有する。
【0060】
パラメータ設定部2121は、強化学習実行部211で算出された制御パラメータを用いて、基本制御演算部2122を設定する。すなわち、パラメータ設定部2121は、基本制御演算部2122がPID制御を実行する場合、強化学習実行部211により算出された制御パラメータ{KP、KI、KD}を基本制御演算部2122に設定する。
【0061】
基本制御演算部2122は、制御対象装置10の操作量を算出する。さらに詳しくは、基本制御演算部2122は、パラメータ設定部2121による制御パラメータの設定が完了した場合、制御指令値と制御測定値とに基づいて、制御パラメータに応じた操作量を算出する。例えば、基本制御演算部2122は、下記数式(3)により操作量であるopsを算出する。
【0062】
【0063】
基本制御演算部2122は、入出力制御部201を介して、算出した操作量を制御対象装置10に出力する。
【0064】
次に、制御推論部230をより詳細に説明する。
【0065】
図6は、第1の実施形態に係る制御推論部230が有する機能の概略的な一例を示す図である。制御推論部230は、制御パターン決定部231、強化学習推論部232、及び基本制御部233を有する。
【0066】
制御パターン決定部231は、制御対象装置10の制御パターンを決定する。制御パターン決定部231は、複数の制御パターンと、制御対象装置10の過去の動作内容の集合Mと、制御対象装置10のあるステップの動作内容MTと、制御対象装置10のあるステップの一つ前のステップの動作内容MT-1とに基づいて、複数の制御パターンごとに制御対象装置10の動作内容を予測する。制御パターン決定部231は、予測した動作内容に基づいて、複数の制御パターンから一つの制御パターンを決定する。そして、制御パターン決定部231は、予測した制御パターンを強化学習モデル管理部220に出力する。
【0067】
ここで、動作内容とは、制御装置20により制御される制御対象装置10の状態である。言い換えると、動作内容とは、制御状態情報が示す制御対象装置10の状態である。また、ステップとは、例えば、基本制御部233が順次出力する操作量の出力フローにおける各操作量の出力である。
【0068】
強化学習モデル管理部220は、制御パターン決定部231から入力された制御パターンに対応する強化学習モデルを強化学習モデルデータベースから取得する。そして、強化学習モデル管理部220は、取得した強化学習モデルを強化学習推論部232に出力する。
【0069】
強化学習推論部232は、強化学習モデル管理部220から出力された強化学習モデルを用いて、制御パラメータを出力する。さらに詳しくは、強化学習推論部232は、制御対象装置10の操作値を調整する制御パラメータを出力する強化学習モデルに基づいて、制御対象装置10を制御する。すなわち、強化学習推論部232は、状態情報、制御指令値、及び制御測定値を強化学習モデルに入力した場合に、強化学習モデルから出力された制御パラメータを基本制御部233に出力する。
【0070】
基本制御部233は、制御学習部210の基本制御部212と同様の機能を有する。すなわち、基本制御演算部2332は、パラメータ設定部2331による制御パラメータの設定が完了した場合、制御指令値と制御測定値とに基づいて、制御パラメータに応じた操作量を算出する。そして、基本制御演算部2332は、入出力制御部201を介して、算出した操作量を制御対象装置10に出力する。
【0071】
次に、制御パターン決定部231をより詳細に説明する。
【0072】
図7は、第1の実施形態に係る制御パターン決定部231が有する機能の概略的な一例を示す図である。制御パターン決定部231は、制御対象動作予測部2311、及び制御対象動作偏差演算部2312、及び制御パターン選択部2313を有する。
【0073】
制御対象動作予測部2311は、複数の制御パターン、制御対象装置10のT-1ステップの動作内容M’T-1、及び過去の制御対象装置10の動作の集合Mに基づいて、制御パターンごとにTステップの動作内容{M1’T,M2’T,…,MN’T}を予測する。制御対象動作予測部2311は、予測部の一例である。
【0074】
例えば、制御対象動作予測部2311は、過去の動作内容と前回のステップの動作内容との変化の差異に基づき、線形的な予測により制御パターンごとにTステップの動作内容{M1’T,M2’T,…,MN’T}を予測する。なお、制御対象動作予測部2311は、この手法に限らず、線形や非線形の関数により予測してもよい。
【0075】
【0076】
数式(4)では、ステップT-2とステップT-1と間の動作内容の偏差により、ステップT-1とステップTと間の動作内容の偏差を予測する。M1’T-2は、過去の制御対象装置10の動作内容の集合Mに含まれる。aは、ハイパーパラメータである。
【0077】
制御対象動作偏差演算部2312は、制御対象装置10のステップT-1の実際の動作内容MTと、制御対象動作予測部2311が予測した動作内容M’Tとの偏差を算出する。制御対象動作偏差演算部2312は、算出部の一例である。また、動作内容Mに複数の要素が存在する場合(例えば、サーボモータの電流、電圧、速度など複数の要素により制御パターンを予測)、集合M1は、m個の要素で構成される集合M1={O11,O12,…,O1m}となり、M1’ERRは、各要素のウェイトに応じた偏差値の合計となる。
【0078】
【0079】
数式(5)のweight1iは、動作内容M1の要素O1iに適合する重み係数である。
【0080】
制御パターン選択部2313は、制御対象動作偏差演算部2312で算出された偏差に基づき、n種類の制御パターンから一つの制御パターンを選択する。制御パターン選択部2313は、選択部の一例である。例えば、制御パターン選択部2313は、{M1ERR,M2ERR,…,MNERR}の中で偏差が最も小さい制御パターンを選択する。
【0081】
【0082】
次に、第1の実施形態に係る制御装置20が実行する各種処理について説明する。
【0083】
図8は、第1の実施形態に係る制御装置20が実行するデータベース作成処理の一例を示すフローチャートである。データベース作成処理は、制御パターンと強化学習モデルとの組み合わせを複数有するデータベースを作成する処理である。
【0084】
入出力制御部201は、制御対象装置10の複数の制御パターンの入力を受け付ける(ステップS1)。これにより、入出力制御部201は、複数の制御パターンを用意する。
【0085】
制御学習部210は、複数の制御パターンから一つの制御パターンを選択する(ステップS2)。
【0086】
制御学習部210は、選択した制御パターンの制御状態情報が入力された場合に、制御状態情報に応じた制御パラメータを出力する強化学習を実行する(ステップS3)。さらに詳しくは、強化学習実行部211は、制御パラメータを生成する。基本制御部212は、生成された制御パラメータを設定した上で操作量を算出する。また、基本制御部212は、入出力制御部201を介して算出した操作量を制御対象装置10に出力する。制御学習部210は、制御対象装置10に出力した操作量により動作が実行された場合に、入出力制御部201を介して制御状態情報を取得する。そして、制御学習部210は、制御状態情報に応じて報酬を算出する。この処理の繰り返しにおいて、制御学習部210は、報酬が最大となるような制御パラメータを出力するように強化学習を実行する。
【0087】
制御学習部210は、強化学習が完了したか否かを判定する(ステップS4)。強化学習が完了していない場合に(ステップS4;No)、制御学習部210は、ステップS3において強化学習を実行する。
【0088】
強化学習が完了した場合に(ステップS4;Yes)、制御学習部210は、強化学習モデルを生成する(ステップS5)。強化学習モデル管理部220は、制御学習部210により生成された強化学習モデルを強化学習モデルデータベースに格納する(ステップS6)。具体的には、強化学習モデル管理部220は、強化学習モデルのニューラルネットワークの構成や、ニューラルネットワークの重み係数を強化学習モデルデータベースに格納する。
【0089】
制御学習部210は、複数の制御パターンのそれぞれに対応する強化学習モデルの生成が完了したか否かを判定する(ステップS7)。全ての強化学習モデルの生成が完了していない場合に(ステップS7;No)、制御学習部210は、ステップS2に移行する。そして、制御学習部210は、未だ強化学習モデルを生成していない制御パターンに対応する処理を実行する。
【0090】
全ての強化学習モデルの生成が完了した場合に(ステップS7;Yes)、制御学習部210は、制御対象装置10の動作環境や動作条件などの制御状態に変化が生じたか否かを判定する(ステップS8)。変化が生じた場合に(ステップS8;Yes)、制御学習部210は、ステップS1に移行して、変化後の動作環境や動作条件などの制御状態に適した強化学習モデルを生成する。
【0091】
変化が生じていない場合に(ステップS8;No)、制御学習部210は、データベース作成処理を終了する。
【0092】
図9は、第1の実施形態に係る制御装置20が実行する推論処理の一例を示すフローチャートである。推論処理は、強化学習モデルデータベースに格納された強化学習モデルを用いて操作量を算出する処理である。
【0093】
入出力制御部201は、制御対象装置10の制御状態情報を取得する(ステップS11)。
【0094】
制御パターン決定部231は、複数の制御パターンと、制御対象装置10の過去の動作内容の集合Mと、制御対象装置10のあるステップの動作内容MTと、制御対象装置10のあるステップの一つ前のステップの動作内容MT-1とに基づいて、複数の制御パターンごとに制御対象装置10の動作内容を予測する(ステップS12)。
【0095】
制御対象動作偏差演算部2312は、制御対象装置10の動作内容と、予測した動作内容との偏差を算出する(ステップS13)。
【0096】
制御パターン選択部2313は、算出した偏差に基づいて、制御パターンを決定する(ステップS14)。
【0097】
強化学習モデル管理部220は、決定した制御パターンに対応する強化学習モデルを強化学習モデルデータベースから取得する(ステップS15)。
【0098】
強化学習推論部232は、取得した強化学習モデルに対して制御状態情報を入力することにより取得した制御パラメータを基本制御部233に設定する(ステップS16)。
【0099】
基本制御部233は、操作量を算出する(ステップS17)。
【0100】
基本制御部233は、入出力制御部201を介して、算出した操作量を制御対象装置10に出力する(ステップS18)。
【0101】
制御推論部230は、データベース作成処理を終了する。
【0102】
以上のように、第1の実施形態に係る制御装置20は、制御対象装置10が有する複数の制御パターンから一つの制御パターンを決定する。また、制御装置20は、制御パターンごとに生成された強化学習モデルに基づいて、制御パラメータを設定する。そして、制御装置20は、制御パラメータに応じて制御対象装置10を制御する。このように、制御装置20は、制御対象装置10の複数の制御パターンごとに強化学習モデルを有し、制御パターンに応じた強化学習モデルにより制御対象装置10を制御する。したがって、制御装置20は、複数の制御パターンを有する制御対象の装置を汎用的に制御することができる。
【0103】
また、本実施形態の制御装置20で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルで、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ、SSD(Solid State Drive)などの半導体記憶装置等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0104】
また、当該プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、当該プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【0105】
また、当該プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【符号の説明】
【0106】
1…制御システム、10…制御対象装置、20…制御装置、21…プロセッサ、22…RAM(Random Access Memory)、23…ROM(Read Only Memory)、24…記憶装置、25…入出力インタフェース、201…入出力制御部、202…動作選択部、210…制御学習部、220…強化学習モデル管理部、230…制御推論部、211…強化学習実行部、212、233…基本制御部、231…制御パターン決定部、232…強化学習推論部、2111…強化学習部、2112…記憶制御部、2113…報酬演算部、2121、2331…パラメータ設定部、2122、2332…基本制御演算部、2311…制御対象動作予測部、2312…制御対象動作偏差演算部、2313…制御パターン選択部。