(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-04
(45)【発行日】2023-09-12
(54)【発明の名称】制御装置、コントローラ、制御システム、制御方法、および制御プログラム
(51)【国際特許分類】
G05B 23/02 20060101AFI20230905BHJP
【FI】
G05B23/02 H
(21)【出願番号】P 2020174469
(22)【出願日】2020-10-16
【審査請求日】2022-03-03
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】飯森 奈央彦
(72)【発明者】
【氏名】▲高▼見 豪
(72)【発明者】
【氏名】石野 修平
(72)【発明者】
【氏名】三澤 豪
【審査官】影山 直洋
(56)【参考文献】
【文献】特開2020-101358(JP,A)
【文献】特開2019-159675(JP,A)
【文献】国際公開第2015/037165(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
設備の状態を計測する少なくとも1つのセンサによって検出された状態データを取得する状態取得部と、
取得された前記状態データに応じて前記設備を制御するための制御データを算出する制御モデルを学習により生成する学習処理部と、
生成された前記制御モデルを前記設備を制御するコントローラに送信して前記コントローラに設定させるモデル送信部と
、
生成された前記制御モデルを用いて、処理対象とする前記状態データに応じて前記制御データを算出する算出部と、
算出された前記制御データを前記コントローラへと送信する制御データ送信部と
を備える制御装置。
【請求項2】
前記学習処理部は、外部環境の変化が検出されたことに応じて、新たな前記制御モデルを学習により生成する請求項
1に記載の制御装置。
【請求項3】
前記学習処理部は、制御の確からしさ、計算量、または学習日時の少なくとも1つを含む特性が異なる複数の前記制御モデルを生成し、
前記モデル送信部は、生成された前記複数の制御モデルを前記コントローラに送信して、前記コントローラで選択可能に設定させる
請求項1
または2に記載の制御装置。
【請求項4】
前記学習処理部は、第1および第2の前記制御モデルを生成し、
前記モデル送信部は、前記第2の制御モデルを前記コントローラに送信して前記コントローラに設定させ、
前記算出部は、前記第1の制御モデルを用いて第1の前記制御データを算出し、
前記制御データ送信部は、前記第1の制御データを前記コントローラへと送信し、
前記第1の制御モデルは、前記コントローラに接続されたセンサ以外のセンサからの状態データを用いて前記第1の制御データを算出し、
前記第2の制御モデルは、前記コントローラに接続されたセンサ以外のセンサからの状態データを用いずに第2の前記制御データを算出する
請求項1から3のいずれか一項に記載の制御装置。
【請求項5】
前記少なくとも1つのセンサのうち一の前記コントローラに接続されたセンサからの状態データを、当該状態データを入力とする前記制御モデルを実行する、他の前記コントローラへと転送する状態転送部を更に備える請求項1から4のいずれか一項に記載の制御装置。
【請求項6】
設備の状態を計測する少なくとも1つのセンサによって検出された状態データを受信する状態受信部と、
学習対象とする前記状態データを、前記状態データに応じて前記設備を制御するための制御データを算出する制御モデルを学習により生成する制御装置へと送信する状態送信部と、
前記制御装置から学習済みの前記制御モデルを受信するモデル受信部と、
受信された前記制御モデルを用いて、処理対象とする前記状態データに応じた前記制御データを算出する算出部と、
前記制御装置が前記制御モデルを用いて算出した第1の前記制御データを前記制御装置から受信する制御データ受信部と、
前記第1の制御データと、前記算出部が算出した第2の前記制御データとの中から、前記設備の制御に用いる前記制御データを選択する制御データ選択部と、
選択された前記制御データを用いて前記設備を制御する制御部と
を備えるコントローラ。
【請求項7】
前記制御データ選択部は、前記制御装置から前記第1の制御データを受信できなかったことに応じて前記第2の制御データを選択する請求項6に記載のコントローラ。
【請求項8】
前記制御データ選択部は、前記第1の制御データおよび前記第2の制御データのうち、より新しい前記制御モデルを用いて算出された制御データを選択する請求項6または7に記載のコントローラ。
【請求項9】
前記モデル受信部は、制御の確からしさ、計算量、または学習日時の少なくとも1つを含む特性が異なる複数の前記制御モデルを受信し、
前記算出部は、前記複数の制御モデルの中から、前記特性に基づいて前記設備の制御に用いる制御モデルを選択する
請求項
6から8のいずれか一項に記載のコントローラ。
【請求項10】
前記モデル受信部は、前記制御装置から学習済みの第2の前記制御モデルを受信し、
前記算出部は、受信された前記第2の制御モデルを用いて前記第2の制御データを算出し、
前記制御データ受信部は、前記制御装置が第1の前記制御モデルを用いて算出した前記第1の制御データを前記制御装置から受信し、
前記第1の制御モデルは、前記コントローラに接続されたセンサ以外のセンサからの状態データを用いて前記第1の制御データを算出し、
前記第2の制御モデルは、前記コントローラに接続されたセンサ以外のセンサからの状態データを用いずに前記第2の制御データを算出する
請求項6から9のいずれか一項に記載のコントローラ。
【請求項11】
他のコントローラによって受信されて前記制御装置によって転送された状態データを受信する状態転送受信部を更に備え、
前記算出部は、受信された前記制御モデルを用いて、前記転送された状態データを含む処理対象とする前記状態データに応じた前記制御データを算出する
請求項6から10のいずれか一項に記載のコントローラ。
【請求項12】
設備の状態を計測する少なくとも1つのセンサによって検出された状態データに応じて前記設備を制御するための制御データを算出する制御モデルを学習により生成する学習処理部と、
生成された前記制御モデルを前記設備を制御するコントローラに送信するモデル送信部と
、
生成された前記制御モデルを用いて、処理対象とする前記状態データに応じて第1の前記制御データを算出する算出部と、
算出された前記第1の制御データを前記コントローラへと送信する制御データ送信部と
を有する制御装置と、
前記制御装置から学習済みの前記制御モデルを受信するモデル受信部と、
前記少なくとも1つのセンサから前記状態データを受信する状態受信部と、
前記モデル受信部が受信した前記制御モデルを用いて、処理対象とする前記状態データに応じて前記設備を制御するための第2の前記制御データを算出する算出部と、
前記第1の制御データを前記制御装置から受信する制御データ受信部と、
前記第1の制御データと、前記第2の制御データとの中から、前記設備の制御に用いる前記制御データを選択する制御データ選択部と、
選択された前記制御データを用いて前記設備を制御する制御部と
を有するコントローラと
を備える制御システム。
【請求項13】
前記コントローラは、学習対象とする前記状態データを、前記制御装置へと送信する状態送信部を更に有し、
前記制御装置は、
前記状態送信部により送信された、学習対象とする前記状態データを取得する状態取得部を有し、
前記学習処理部は、取得された前記状態データを用いて前記制御モデルを生成する
請求項12に記載の制御システム。
【請求項14】
制御装置が、設備の状態を計測する少なくとも1つのセンサによって
検出された状態データを取得することと、
前記制御装置が、取得された前記状態データに応じて前記設備を制御するための制御データを算出する制御モデルを学習により生成することと、
前記制御装置が、生成された前記制御モデルを前記設備を制御するコントローラに送信して前記コントローラに設定させることと
前記制御装置が、生成された前記制御モデルを用いて、処理対象とする前記状態データに応じて前記制御データを算出することと、
前記制御装置が、算出された前記制御データを前記コントローラへと送信することと
を備える制御方法。
【請求項15】
コンピュータによって実行され、前記コンピュータを、
設備の状態を計測する少なくとも1つのセンサによって
検出された状態データを取得する状態取得部と、
取得された前記状態データに応じて前記設備を制御するための制御データを算出する制御モデルを学習により生成する学習処理部と、
生成された前記制御モデルを前記設備を制御するコントローラに送信して前記コントローラに設定させるモデル送信部と
、
生成された前記制御モデルを用いて、処理対象とする前記状態データに応じて前記制御データを算出する算出部と、
算出された前記制御データを前記コントローラへと送信する制御データ送信部と
して機能させる制御プログラム。
【請求項16】
コントローラが、設備の状態を計測する少なくとも1つのセンサから状態データを受信することと、
前記コントローラが、学習対象とする前記状態データを、前記状態データに応じて前記設備を制御するための制御データを算出する制御モデルを学習により生成する制御装置へと送信することと、
前記コントローラが、前記制御装置から学習済みの前記制御モデルを受信することと、
前記コントローラが、受信された前記制御モデルを用いて、処理対象とする前記状態データに応じた前記制御データを算出することと、
前記コントローラが、前記制御装置が前記制御モデルを用いて算出した第1の前記制御データを前記制御装置から受信することと、
前記コントローラが、前記第1の制御データと、前記コントローラが算出した第2の前記制御データとの中から、前記設備の制御に用いる前記制御データを選択することと、
前記コントローラが、
選択した前記制御データを用いて前記設備を制御することと
を備える制御方法。
【請求項17】
コンピュータによって実行され、前記コンピュータを、
設備の状態を計測する少なくとも1つのセンサから状態データを受信する状態受信部と、
学習対象とする前記状態データを、前記状態データに応じて前記設備を制御するための制御データを算出する制御モデルを学習により生成する制御装置へと送信する状態送信部と、
前記制御装置から学習済みの前記制御モデルを受信するモデル受信部と、
受信された前記制御モデルを用いて、処理対象とする前記状態データに応じた前記制御データを算出する算出部と、
前記制御装置が前記制御モデルを用いて算出した第1の前記制御データを前記制御装置から受信する制御データ受信部と、
前記第1の制御データと、前記算出部が算出した第2の前記制御データとの中から、前記設備の制御に用いる前記制御データを選択する制御データ選択部と、
選択された前記制御データを用いて前記設備を制御する制御部と
して機能させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、コントローラ、制御システム、制御方法、および制御プログラムに関する。
【背景技術】
【0002】
特許文献1には、ネットワークを介して設備の各機器に接続される装置が、「設備に設けられた複数の機器の一部をそれぞれ対象機器とする複数のエージェント」を備え、各エージェントが「各対象機器の推奨される制御条件を示す推奨制御条件データを出力するモデルの学習処理を実行する」ことが記載されている(請求項1、段落0024、
図1等)。
[先行技術文献]
[特許文献]
[特許文献1] 特開2020-27556号公報
【発明の概要】
【0003】
本発明の第1の態様においては、制御装置を提供する。制御装置は、設備の状態を計測する少なくとも1つのセンサによって検出された状態データを取得する状態取得部を備えてよい。制御装置は、取得された状態データに応じて設備を制御するための制御データを算出する制御モデルを学習により生成する学習処理部を備えてよい。制御装置は、生成された制御モデルを設備を制御するコントローラに送信してコントローラに設定させるモデル送信部を備えてよい。
【0004】
制御装置は、生成された制御モデルを用いて、処理対象とする状態データに応じて制御データを算出する算出部を備えてよい。制御装置は、算出された制御データをコントローラへと送信する制御データ送信部を備えてよい。
【0005】
学習処理部は、外部環境の変化が検出されたことに応じて、新たな制御モデルを学習により生成してよい。
【0006】
学習処理部は、制御の確からしさ、計算量、または学習日時の少なくとも1つを含む特性が異なる複数の制御モデルを生成してよい。モデル送信部は、生成された複数の制御モデルをコントローラに送信して、コントローラで選択可能に設定させてよい。
【0007】
本発明の第2の態様においては、コントローラを提供する。コントローラは、設備の状態を計測する少なくとも1つのセンサから状態データを受信する状態受信部を備えてよい。コントローラは、学習対象とする状態データを、状態データに応じて設備を制御するための制御データを算出する制御モデルを学習により生成する制御装置へと送信する状態送信部を備えてよい。コントローラは、制御装置から学習済みの制御モデルを受信するモデル受信部を備えてよい。コントローラは、受信された制御モデルを用いて、処理対象とする状態データに応じた制御データを算出する算出部を備えてよい。コントローラは、算出された制御データを用いて設備を制御する制御部を備えてよい。
【0008】
コントローラは、制御装置が制御モデルを用いて算出した第1の制御データを制御装置から受信する制御データ受信部を備えてよい。コントローラは、第1の制御データと、算出部が算出した第2の制御データとの中から、設備の制御に用いる制御データを選択する制御データ選択部を備えてよい。
【0009】
制御データ選択部は、制御装置から第1の制御データを受信できなかったことに応じて第2の制御データを選択してよい。
【0010】
制御データ選択部は、第1の制御データおよび第2の制御データのうち、より新しい制御モデルを用いて算出された制御データを選択してよい。
【0011】
モデル受信部は、制御の確からしさ、計算量、または学習日時の少なくとも1つを含む特性が異なる複数の制御モデルを受信してよい。算出部は、複数の制御モデルの中から、特性に基づいて設備の制御に用いる制御モデルを選択してよい。
【0012】
本発明の第3の態様においては、制御システムを提供する。制御システムは、制御装置を備えてよい。制御装置は、設備の状態を計測する少なくとも1つのセンサによって検出された状態データに応じて設備を制御するための制御データを算出する制御モデルを学習により生成する学習処理部を有してよい。制御装置は、生成された制御モデルを設備を制御するコントローラに送信するモデル送信部を有してよい。制御システムは,コントローラを備えてよい。コントローラは、制御装置から学習済みの制御モデルを受信するモデル受信部を有してよい。コントローラは、少なくとも1つのセンサから状態データを受信する状態受信部を有してよい。コントローラは、モデル受信部が受信した制御モデルを用いて、処理対象とする状態データに応じて設備を制御するための制御データを算出する算出部を有してよい。コントローラは、算出された制御データを用いて設備を制御する制御部を有してよい。
【0013】
コントローラは、学習対象とする状態データを、制御装置へと送信する状態送信部を更に有してよい。制御装置は、状態送信部により送信された、学習対象とする状態データを取得する状態取得部を有してよい。学習処理部は、取得された状態データを用いて制御モデルを生成してよい。
【0014】
本発明の第4の態様においては、制御方法を提供する。制御方法は、制御装置が、設備の状態を計測する少なくとも1つのセンサによって検出された状態データを取得することを備えてよい。制御方法は、制御装置が、取得された状態データに応じて設備を制御するための制御データを算出する制御モデルを学習により生成することを備えてよい。制御方法は、制御装置が、生成された制御モデルを設備を制御するコントローラに送信してコントローラに設定させることを備えてよい。
【0015】
本発明の第5の態様においては、コンピュータによって実行される制御プログラムを提供する。制御プログラムは、コンピュータを、設備の状態を計測する少なくとも1つのセンサによって検出された状態データを取得する状態取得部として機能させてよい。制御プログラムは、コンピュータを、取得された状態データに応じて設備を制御するための制御データを算出する制御モデルを学習により生成する学習処理部として機能させてよい。制御プログラムは、コンピュータを、生成された制御モデルを設備を制御するコントローラに送信してコントローラに設定させるモデル送信部として機能させてよい。
【0016】
本発明の第6の態様においては、制御方法を提供する。制御方法は、コントローラが、設備の状態を計測する少なくとも1つのセンサから状態データを受信することを備えてよい。制御方法は、コントローラが、学習対象とする状態データを、状態データに応じて設備を制御するための制御データを算出する制御モデルを学習により生成する制御装置へと送信することを備えてよい。制御方法は、コントローラが、制御装置から学習済みの制御モデルを受信することを備えてよい。制御方法は、コントローラが、受信された制御モデルを用いて、処理対象とする状態データに応じた制御データを算出することを備えてよい。制御方法は、コントローラが、算出された制御データを用いて設備を制御することを備えてよい。
【0017】
本発明の第7の態様においては、コンピュータによって実行される制御プログラムを提供する。制御プログラムは、コンピュータを、設備の状態を計測する少なくとも1つのセンサから状態データを受信する状態受信部として機能させてよい。制御プログラムは、コンピュータを、学習対象とする状態データを、状態データに応じて設備を制御するための制御データを算出する制御モデルを学習により生成する制御装置へと送信する状態送信部として機能させてよい。制御プログラムは、コンピュータを、制御装置から学習済みの制御モデルを受信するモデル受信部として機能させてよい。制御プログラムは、コンピュータを、受信された制御モデルを用いて、処理対象とする状態データに応じた制御データを算出する算出部として機能させてよい。制御プログラムは、コンピュータを、算出された制御データを用いて設備を制御する制御部として機能させてよい。
【0018】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0019】
【
図1】本実施形態に係る制御システム10の構成を設備100と共に示す。
【
図2】本実施形態に係る制御システム10の学習処理フローを示す。
【
図3】本実施形態に係る制御システム10の機器制御フローを示す。
【
図4】本実施形態に係る算出部122の構成を示す。
【
図5】本実施形態に係る制御モデルリストの一例を示す。
【
図6】本実施形態の変形例に係る制御システム10の構成を設備100と共に示す。
【
図7】本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。
【発明を実施するための形態】
【0020】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0021】
図1は、本実施形態に係る制御システム10の構成を設備100と共に示す。本実施形態に係る制御システム10は、設備100の近辺に配置される1または複数のコントローラ110を用いて、いわゆるエッジコンピューティングによって設備100内の各機器108を制御する。その一方で、制御システム10は、各コントローラ110が設備100を制御するために用いる制御モデルを、上位の制御装置160における学習により生成する。これにより、制御システム10は、各コントローラ110では処理することが難しいような、大量の学習データを用いて大きな計算量が要求される学習処理を、より多くの処理リソースを有する上位の制御装置160を用いて実現することができる。
【0022】
設備100は、工場またはプラント等に設けられる。このような工場またはプラントは、例えば、各種の工業製品等を生産するための工場、化学または金属等の工業プラント、ガス田や油田等の井戸元やその周辺を管理制御するプラント、水力・火力・原子力等の発電を管理制御するプラント、太陽光や風力等の環境発電を管理制御するプラント、上下水やダム等を管理制御するプラント等であってよい。また、設備100は、ビルまたは交通機関等に設けられてもよい。
【0023】
設備100は、設備100の状態を計測するための1または複数のセンサ104と、設備100による制御の対象となる1または複数の機器108とを備える。各センサ104は、設備100内の各箇所に設けられ、その箇所における設備100の状態を計測する。各センサ104は、機器108に付加されたものであってよく、機器108に内蔵されたものであってもよい。また、各センサ104は、状態を計測する機能を有するフィールド機器であってもよい。このようなフィールド機器は、例えば圧力計、流量計、温度センサ等のセンサ機器、プラント等の状況や対象物を撮影するカメラ若しくはビデオ等の撮像機器、プラント等の異音等を収集し、または警報音等を発するマイク若しくはスピーカ等の音響機器、設備100が有する装置の位置情報を出力する位置検出機器、またはその他の機器であってよい。
【0024】
各機器108は、設備100内の各箇所に設けられ、制御システム10による制御を受ける。各機器108は、プロセス装置、発電装置、またはその他の任意の装置であってよく、そのような装置の一部であってもよい。また、各機器108は、外部からの制御を受けて作動するフィールド機器であってもよい。このようなフィールド機器は、例えば流量制御弁や開閉弁等のバルブ機器、ファンやモータ等のアクチュエータ機器、またはその他の機器であってよい。
【0025】
制御システム10は、1または複数のコントローラ110と、制御装置160とがネットワーク140を介して接続された構成を有する。各コントローラ110は、設備100の近辺であって例えばそのコントローラ110の制御対象となる機器108の近傍に設置される。各コントローラ110は、設備100が有する1または複数のセンサ104の少なくとも一部に接続され、各センサ104から受信する状態データに応じて制御対象となる機器108を制御する。複数のコントローラ110のそれぞれは、設備100の複数のセンサ104のうちの一部ずつに接続され、設備100の複数の機器108のうちの一部ずつの制御を担当してよい。この場合、各コントローラ110は、制御対象の機器108の制御に対して関連性が高い少なくとも1つのセンサ104に接続される。
【0026】
コントローラ110は、接続先の各センサ104、制御対象の各機器108、および制御装置160との通信機能と、制御対象の機器108の制御機能等とを有する専用ハードウェアまたは専用コンピュータによって実現されるエッジ装置である。これに代えて、コントローラ110は、PC(パーソナルコンピュータ)等のコンピュータにより実現されてもよい。コントローラ110がコンピュータによって実現される場合には、コントローラ110は、コンピュータでコントローラ110用の制御プログラムを実行することにより、コントローラ110の各種機能を提供する。
【0027】
コントローラ110は、状態受信部112と、状態記憶部114と、状態送信部116と、モデル受信部118と、モデル記憶部120と、算出部122と、制御データ受信部124と、制御データ選択部126と、制御部128とを備える。状態受信部112は、当該コントローラ110の監視対象となる少なくとも1つのセンサ104に接続され、これらの少なくとも1つのセンサ104から状態データを受信する。ここで、センサ104の一部は、機器108における制御パラメータを機器108から取得するものであってよく、状態受信部112は、機器108に設定された現在の制御パラメータをセンサ104から受信してもよい。
【0028】
状態記憶部114は、状態受信部112に接続される。状態記憶部114は、メモリ、SSD(ソリッドステートドライブ)、またはハードディスク等の記憶装置により実現されてよく、当該コントローラ110に接続された各センサ104から順次受信される状態データを順次格納する。状態送信部116は、状態記憶部114に接続される。状態送信部116は、状態記憶部114に格納された状態データのうち、学習対象とする状態データを、ネットワーク140を介して制御装置160へと送信する。これにより、制御装置160は、当該コントローラ110に関して、設備100における制御対象の機器108を状態データに応じて制御するための制御データを算出する制御モデルを学習により生成することができる。なお、状態送信部116は、学習対象としない状態データも制御装置160へと送信してよく、全ての状態データを制御装置160へと送信してもよい。本実施形態において、状態送信部116は、制御装置160側でも各機器108を制御するための制御データを算出させるべく、処理対象の状態データを制御装置160へと送信する。
【0029】
モデル受信部118は、ネットワーク140を介して制御装置160に接続される。モデル受信部118は、ネットワーク140を介して制御装置160から学習済みの制御モデルを受信する。モデル記憶部120は、モデル受信部118に接続される。モデル記憶部120は、メモリ、SSD、またはハードディスク等の記憶装置により実現されてよく、受信された制御モデルを格納する。
【0030】
算出部122は、状態記憶部114およびモデル記憶部120に接続される。算出部122は、制御モデルをモデル記憶部120から受け取り、制御モデルによる処理対象とする状態データを状態記憶部114から受け取る。そして、算出部122は、制御モデルを用いて、処理対象とする状態データに応じた制御データを算出する。「制御データ」は、制御対象の機器108等の制御条件を規定するデータであってよく、「制御条件データ」とも示される。ここで、制御モデルは、機器108毎に用意されてよい。この場合、算出部122は、各制御周期において、コントローラ110に接続された各機器108に対応付けられた制御モデルを用いて、各機器108用の制御データを算出する。また、制御モデルは、各機器108における制御パラメータ毎に用意されてもよい。この場合、算出部122は、各制御周期において、コントローラ110に接続された各機器108の各制御パラメータに対応付けられた制御モデルを用いて、各機器108の各制御パラメータ用の制御データを算出する。このような場合には、算出部122は、各制御周期において2以上の制御モデルに関する処理を行う。なお、制御モデルの例については、
図4に関連して後述する。
【0031】
制御データ受信部124は、ネットワーク140を介して制御装置160に接続される。制御データ受信部124は、制御装置160が制御モデルを用いて算出した制御データを受信する。ここで、制御装置160が制御モデルを用いて算出する制御データを「第1の制御データ」とも示し、算出部122が制御モデルを用いて算出する制御データを「第2の制御データ」とも示す。
【0032】
制御データ選択部126は、算出部122および制御データ受信部124に接続される。制御データ選択部126は、制御装置160が算出した制御データ(第1の制御データ)と、算出部122が算出した制御データ(第2の制御データ)との中から、設備100内の制御対象の機器108の制御に用いる制御データを選択する。なお、この選択方法については、
図3に関連して後述する。
【0033】
制御部128は、制御データ選択部126に接続される。制御部128は、算出部122または制御装置160により算出され、制御データ選択部126により選択された制御データを用いて設備100内の制御対象の機器108を制御する。なお、制御部128は、選択部126によって選択された制御データを用いず、算出部122が算出した制御データを用いてもよい。ここで、制御データは、例えばバルブの開度のような制御パラメータを+10%等のように指定した大きさだけ増加または減少させることを指示する制御指令を含んでよい。また、制御データは、制御パラメータに特定の値を設定することを指示する制御指令を含んでよい。また、制御データは、例えば加熱機または冷却機等の機器をオンまたはオフとすることを指示する制御指令を含んでよい。このように、制御データは、制御対象の機器108の動作を指定または変更させるための任意の形式の制御値または制御指令を含んでよい。
【0034】
ネットワーク140は、コントローラ110および制御装置160の間を接続する。ネットワーク140は、インターネットまたはWAN等の広域ネットワークであってよい。ネットワーク140は、例えば4G(第4世代)または5G(第5世代)のような携帯通信ネットワーク等を含む無線ネットワークであってよく、これに代えて、ネットワーク140は、有線のインターネット等を含む有線ネットワークであってもよい。
【0035】
制御装置160は、ネットワーク140を介してコントローラ110に接続される。制御装置160は、PC(パーソナルコンピュータ)、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。このようなコンピュータシステムもまた広義のコンピュータである。また、制御装置160は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、制御装置160は、設備100の制御用に設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。
【0036】
また、制御装置160は、インターネット等のネットワーク140を介して各コントローラ110に接続され、設備100内の各機器108を制御するためのクラウドサービスを提供するクラウドコンピューティングシステムであってもよい。制御装置160がコンピュータによって実現される場合には、制御装置160は、コンピュータで制御装置160用の制御プログラムを実行することにより、制御装置160の各種機能を提供する。
【0037】
制御装置160は、状態取得部162と、状態記憶部164と、学習処理部166と、モデル記憶部168と、モデル送信部170と、算出部172と、制御データ送信部174とを備える。状態取得部162は、ネットワーク140を介して1または複数のコントローラ110に接続される。状態取得部162は、各設備100の状態を計測する少なくとも1つのセンサ104によって検出された状態データを取得する。本実施形態に係る状態取得部162は、各コントローラ110が送信する状態データをネットワーク140を介して受信することにより、各センサ104からの状態データを取得する。状態取得部162は、各センサ104によって検出された状態データを、直接的のみならず、間接的に取得してもよい。例えば、各センサ104からの状態データが一旦履歴データとして記憶装置に格納されているような場合に、状態取得部162は、そのような記憶装置に格納された履歴データの中から過去に各センサ104によって検出された状態データを取得してよい。また、状態取得部162は、コントローラ110からの状態データではない状態データを取得してもよい。例えば、状態取得部162は、設備100をシミュレーション環境において仮想的に実行させることによって得られる、仮想的な状態データを取得してもよい。また、状態取得部162は、設備100とは異なる実験設備から取得された状態データを取得してもよい。この場合、制御装置160は、このようにして得られた状態データを用いて制御モデルを生成してよい。なお、状態取得部162は、コントローラ110を介さず、センサ104からの状態データを取得してもよい。
【0038】
状態記憶部164は、状態取得部162に接続される。状態記憶部164は、メモリ、SSD、またはハードディスク等の記憶装置により実現されてよく、各コントローラ110を介して順次受信される各センサ104からの状態データを順次格納する。
【0039】
学習処理部166は、状態記憶部164に接続される。学習処理部166は、状態取得部162によって取得された状態データに応じて設備100を制御するための制御データを算出する制御モデルを学習により生成する。本明細書において、「制御モデルを学習により生成する」とは、新たな制御モデルを生成することの他、既存の制御モデルに対して更に学習処理を行うことにより制御モデルを更新することを含む。学習処理部166は、常時制御モデルを生成(または更新)してもよく、周期的に制御モデルを生成(または更新)してもよく、制御装置160のユーザの指示に応じて制御モデルを生成(または更新)してもよく、外部環境に応じて制御モデルを生成(または更新)してもよい。なお、学習処理部166は、状態データの少なくとも一部として過去に算出した制御データを入力とする制御モデルを学習により生成してもよい。これにより、学習処理部166は、過去の制御データの値に応じて算出する制御データの値を変化させるフィードバック制御を行う制御モデルを生成することができる。
【0040】
モデル記憶部168は、学習処理部166に接続される。モデル記憶部168は、メモリ、SSD、またはハードディスク等の記憶装置により実現されてよく、学習処理部166によって生成された制御モデルを格納する。モデル送信部170は、モデル記憶部168に接続される。モデル送信部170は、学習処理部166により生成され、モデル記憶部168に格納された制御モデルを、設備100における当該制御モデルの制御対象となる機器108に接続されたコントローラ110に送信してコントローラ110で使用可能に設定させる。
【0041】
算出部172は、状態記憶部164およびモデル記憶部168に接続される。算出部172は、制御モデルをモデル記憶部168から受け取り、制御モデルによる処理対象とする状態データを状態記憶部164から受け取る。そして、算出部172は、制御モデルを用いて、処理対象とする状態データに応じた制御データを算出する。ここで、制御モデルは、コントローラ110毎に用意されてもよい。この場合、算出部172は、各制御周期において、各コントローラ110に対応付けられた制御モデルを用いて、各コントローラ110が使用する全制御データを算出する。また、制御モデルが機器108毎に用意される場合、算出部172は、各制御周期において、各機器108に対応付けられた制御モデルを用いて、各機器108用の制御データを算出する。また、制御モデルが各機器108における制御パラメータ毎に用意される場合、算出部172は、各制御周期において、各コントローラ110に接続された各機器108の各制御パラメータに対応付けられた制御モデルを用いて、各機器108の各制御パラメータ用の制御データを算出する。
【0042】
制御データ送信部174は、算出部172に接続される。制御データ送信部174は、算出部172により算出された制御データを、その制御データによる制御対象の機器108に接続されたコントローラ110へと送信する。
【0043】
以上に示した制御システム10によれば、各コントローラ110によるエッジコンピューティングによって設備100を制御すると共に、各コントローラ110が設備100を制御するために用いる制御モデルを上位の制御装置160によって学習させることができる。これにより、制御システム10は、各コントローラ110において学習処理を行うための処理負荷を低減させることができ、より多くの処理リソースを有する上位の制御装置160を用いて学習処理を行うことができる。
【0044】
また、コントローラ110は、制御装置160が算出した制御データと、算出部122が算出した制御データとの中から好適な制御データを選択して制御対象の機器108を制御することができる。これにより、制御装置160が算出した制御データがより好適な場合には、コントローラ110は、コントローラ110内で算出した制御データに代えて、制御装置160が算出した制御データを使用することができる。なお、制御装置160は、制御データを算出する機能を有しなくてもよい。この場合、制御装置160は、算出部172および制御データ送信部174を有しなくてよく、コントローラ110は、制御データ受信部124および制御データ選択部126を有しなくてもよい。
【0045】
図2は、本実施形態に係る制御システム10の学習処理フローを示す。本図の例においては、説明の便宜上、主に1つのコントローラ110に関連する学習処理フローを示すが、本学習処理フローは、複数のコントローラ110のそれぞれに関して実行されてよい。
【0046】
S200(ステップ200)において、設備100内の複数のセンサ104のそれぞれは、設備100または設備100内における検出対象の機器108の状態を検出する。各センサ104は、状態の検出値を状態データとして接続先の状態受信部112へと送信する。
【0047】
S205において、コントローラ110の状態受信部112は、コントローラ110に接続された監視対象となる1または複数のセンサ104の検出値を状態データとして受信する。ここで、状態受信部112は、予め定められた制御周期またはセンス周期毎に各センサ104の状態データを受信してよい。
【0048】
S210において、状態記憶部114は、状態受信部112が受信した状態データを順次格納する。ここで、状態記憶部114は、状態データが制御装置160へと送信され、かつ状態データが制御データの算出に使用されるまでの間、状態データを一時的に記憶するバッファとしての機能を果たすのに十分な記憶容量を有するものであってよい。この場合において、状態記憶部114は、ネットワーク140による通信が一時的に遮断された場合においても、ある程度の期間は未送信の状態データを蓄積し続けることができる程度の記憶容量を有してよい。
【0049】
これにより、コントローラ110は、ネットワーク140の通信不良時にも、状態データの損失が発生する可能性を低減することができ、制御装置160は損失がない連続した状態データを用いて学習処理を行うことができる。なお、状態記憶部114は、状態送信部116および算出部122のいずれにおいても使用済みまたは使用しない状態データを消去し、または新しい状態データによって上書きしてよい。S215において、状態送信部116は、状態記憶部114に格納された状態データを制御装置160へと送信する。
【0050】
S220において、制御装置160の状態取得部162は、各コントローラ110からの状態データをネットワーク140を介して受信する。S225において、状態記憶部164は、各コントローラ110からの状態データを順次格納する。ここで、状態記憶部164は、複数のコントローラ110のそれぞれについて、各コントローラ110からの状態データを学習処理部166による学習処理に用いるまでの間は、状態データを少なくとも記憶しておく。このために、制御装置160は、各コントローラ110に対して、状態記憶部114よりも大きな記憶容量を割り当ててよい。この場合、制御装置160は、複数のコントローラ110における状態記憶部114の記憶容量の合計よりも大きな記憶容量を有する。
【0051】
S230において、学習処理部166は、学習処理を行うべきタイミングとなったか否かを判定する。学習処理を行うべきタイミングとなっていない場合、学習処理部166は、学習処理を行わず、制御装置160は処理をS220へと進めて後続の状態データの取得を継続する(S230の「N」)。学習処理を行うべきタイミングである場合、制御装置160は、処理をS235へと進める(S230の「Y」)。ここで、学習処理を行うべきタイミングは、
図1に関して簡単に示したように、一例として以下の少なくとも1つを含んでよい。
【0052】
(1)学習処理部166は、常時学習処理を行う。
学習処理部166は、常時学習処理を行って制御モデルを生成または更新してよい。この場合において、学習処理部166は、制御周期毎またはセンス周期毎にコントローラ110から新たな状態データが取得される度に、その状態データを制御モデルに反映させるべく学習処理を行ってよい。これに代えて、学習処理部166は、制御周期毎またはセンス周期毎に学習処理を行うことができない場合においても、常時学習処理を行って可能な限り頻繁に制御モデルを生成または更新してよい。
【0053】
(2)学習処理部166は、予め定められた学習周期毎に学習処理を行う。
学習処理部166は、例えば1時間、1日、1週間、または1ヶ月等の予め定められた学習周期毎に、制御モデルの学習処理を行ってよい。この場合、学習処理部166は、学習周期内に、複数のコントローラ110の各制御モデルについて学習処理を行うべく、学習周期内に各制御モデルを順次生成または更新してよい。
【0054】
(3)学習処理部166は、外部からの指示に応じて学習処理を行う。
学習処理部166は、制御システム10のユーザ(例えば設備100の監視員)からの、学習処理を起動する旨の指示が制御装置160に入力されたことに応じて、制御モデルの学習処理を行ってよい。ここで、このような指示は、学習させる制御モデルの指定を含んでもよく、学習処理部166は、指示に応じて指定された制御モデルの学習処理を行ってよい。指示が特定の制御モデルの指定を含まない場合、学習処理部166は、使用される学習可能な全ての制御モデルの学習処理を行ってもよい。
【0055】
(4)学習処理部166は、外部環境に応じて学習処理を行う。
学習処理部166は、外部環境に応じて学習処理を行ってよい。具体的には、学習処理部166は、外部環境の変化が検出されたことに応じて、新たな制御モデルを学習により生成してよい。例えば、学習処理部166は、外気温、湿度、またはその他の外部環境に応じた指標値が、前回学習処理を行ったときの指標値から予め定められた基準範囲を超えて変化した場合(外気温が±1℃以上変化した場合等)に、制御モデルの学習処理を行う。これに代えて、学習処理部166は、外部環境に応じた指標値が、指標値の取り得る範囲を複数に区分した区間の境界を越えて変化したこと(例えば外気温が上昇し、20℃から25℃の範囲内から、25℃から30℃の範囲内へと変化したこと)に応じて制御モデルの学習処理を行ってもよい。これにより、学習処理部166は、例えば化学プラント等のように外気温等の外部環境によって設備100の最適な制御条件が変化する場合においても、外部環境に適した制御モデルを生成して使用可能とすることができる。
【0056】
また、学習処理部166は、このような外部環境の一例として、学習対象のコントローラ110に接続されたセンサ104以外のセンサ104からの状態データ、すなわち学習対象のコントローラ110以外のコントローラ110に接続されたセンサ104からの状態データを用いてもよい。これにより学習処理部166は、学習対象とする機器108の動作が他の機器108の状態の影響を受ける場合においても、他の機器108の状態に応じて適切な制御モデルを生成して使用可能とすることができる。
【0057】
S235において、学習処理部166は、状態記憶部164に格納された状態データを学習データとして用いて、制御モデルの学習処理を行う。ここで、対象とするコントローラ110が2以上の機器108に接続される場合、学習処理部166は、機器108毎の制御モデルを生成してよい。また、機器108の1または2以上の制御パラメータ毎に異なる制御モデルを使用する場合、学習処理部166は、1または2以上の制御パラメータ毎の制御モデルを生成してよい。モデル記憶部168は、生成した制御モデルをモデル記憶部168に格納する。S240において、モデル送信部170は、モデル記憶部168に格納された各制御モデルを、その制御モデルを使用するコントローラ110へと送信し、コントローラ110に設定させる。
【0058】
S245において、モデル受信部118は、制御装置160によって送信された学習済みの制御モデルを受信する。S250において、モデル受信部118は、受信した制御モデルをモデル記憶部120へと格納する。これにより、モデル受信部118は、制御装置160からの制御モデルをコントローラ110が使用可能に設定する。
【0059】
以上に示したように、制御装置160は、各コントローラ110が設備100を制御するために使用する制御モデルを、上位の制御装置160で学習させることができる。これにより、各コントローラ110は、制御モデルの学習処理を自身で行う必要がなくなるので、設備100の制御に十分な処理リソースを割り当てることができる。
【0060】
図3は、本実施形態に係る制御システム10の機器制御フローを示す。本図の例においては、説明の便宜上、主に1つのコントローラ110に関連する機器制御フローを示すが、本機器制御フローは、複数のコントローラ110のそれぞれに関して実行されてよい。
【0061】
S300、S305、S310、S315、S320、およびS325は、
図2のS200、S205、S210、S215、S220、およびS225と同様であるので、説明を省略する。S330において、制御装置160内の算出部172は、制御周期毎に、コントローラ110による処理対象とする状態データを状態記憶部164から読み出して、モデル記憶部168に格納された制御モデルを用いて制御データ(第1の制御データ)を算出する。ここで、コントローラ110について機器108毎または各機器108の少なくとも1つの制御パラメータ毎に制御モデルを使用する場合には、算出部172は、これらの複数の制御モデルのそれぞれを用いて複数の制御データの組を算出する。S335において、制御データ送信部174は、算出部172により算出された制御データを、コントローラ110へと送信する。
【0062】
S340において、コントローラ110内の算出部122は、制御周期毎に、処理対象とする状態データを状態記憶部114から読み出して、モデル記憶部120に格納された制御モデルを用いて制御データ(第2の制御データ)を算出する。ここで、機器108毎または各機器108の少なくとも1つの制御パラメータ毎に制御モデルを使用する場合には、算出部122は、これらの複数の制御モデルのそれぞれを用いて複数の制御データの組を算出する。
【0063】
S350において、制御データ選択部126は、各機器108または各機器108の少なくとも1つの制御パラメータ毎に、制御装置160が算出した第1の制御データおよび算出部122が算出した第2の制御データとの中から、設備100の制御に用いる制御データを選択する。S355において、制御部128は、各機器108または各機器108の少なくとも1つの制御パラメータ毎に、選択された制御データを用いて機器108を制御する。S360において、制御対象の機器108は、制御部128による制御を受けて、制御指令に応じて稼働する。
【0064】
以上に示したように、S350において、制御データ選択部126は、第1の制御データおよび第2の制御データの中から設備100の制御に用いる制御データを選択する。この選択方式は、以下のいずれかまたはこれらの組合せであってよい。
【0065】
(1)制御装置160側が主系、コントローラ110側が補助系である制御を行う。
制御データ選択部126は、各制御周期において、ある制御対象(機器108または機器108の制御パラメータ)に対する第1の制御データおよび第2の制御データを取得した場合には、制御装置160からの第1の制御データを優先して選択してよい。この方式においては、制御データ選択部126は、コントローラ110による第2の制御データを予備の制御データとして取得する。制御データ選択部126は、制御装置160との間で通信遅延または通信障害が発生した場合等において、必要となる制御周期内に制御装置160から第1の制御データを受信できなかったことに応じて、コントローラ110による第2の制御データを選択して制御に供してよい。
【0066】
制御装置160が用いる制御モデルおよびコントローラ110が用いる制御モデルは、同一のものであってよい。これに代えて、制御装置160は、新たに学習した、コントローラ110に対して未送信の制御モデルを用いてもよい。この場合、コントローラ110は、通常は未受信の最新の制御モデルを用いて設備100を制御することができ、通信遅延等が発生した場合でも受信済みの制御モデルを用いて設備100を制御することができる。
【0067】
また、制御装置160が用いる制御モデルは、コントローラ110が用いる制御モデルよりも計算量またはメモリ使用量等の処理負荷が高いがより適切な制御データを算出することができる制御モデルであってもよい。また、コントローラ110が用いる制御モデルはそのコントローラ110に接続されていないセンサ104からの状態データ等を用いずに制御データを算出するものであるのに対し、制御装置160が用いる制御モデルは、対象のコントローラ110に接続されたセンサ104以外のセンサ104からの状態データ、または外部環境のデータのようなコントローラ110の制御モデルが使用しないデータを更に用いて制御データを算出してもよい。このような方式を用いる場合には、コントローラ110は、通常状態においては、より確からしい制御を行うことが可能な制御装置160からの第1の制御データを使用して設備100を適切に制御し、第1の制御データを適時に受信できない場合にコントローラ110による第2の制御データを使用して設備100の制御を維持することができる。
【0068】
(2)コントローラ110側が主系、制御装置160側が補助系である制御を行う。
制御データ選択部126は、各制御周期において、ある制御対象に対する第1の制御データおよび第2の制御データを取得した場合には、コントローラ110による第2の制御データを優先して選択してよい。この方式においては、制御データ選択部126は、制御装置160による第1の制御データを予備の制御データとして取得する。例えば、制御データ選択部126は、通常状態においてはコントローラ110による第2の制御データを選択するが、算出部122に異常が発生した場合、コントローラ110内のリソース不足により第2の制御データの算出が遅れ、若しくは算出できなかった場合、コントローラ110のメンテナンス、若しくは新しい制御モデルの設定を行うために一時的に算出部122が使用できない場合、またはその他の要因により第2の制御データを使用できない場合には制御装置160からの第1の制御データを使用することができる。この場合においても、コントローラ110が用いる制御モデルおよび制御装置160が用いる制御モデルの関係は、(1)と同様であってもよい。
【0069】
(3)制御データを動的に選択する制御を行う。
制御データ選択部126は、各制御周期または予め定められた期間毎に、制御装置160からの第1の制御データおよびコントローラ110による第2の制御データのいずれを使用するかを動的に選択し、または切り替えてよい。一例として、第1の制御データおよび第2の制御データには、制御データの算出に用いた制御モデルの確からしさ(予測精度等)、または学習日時の少なくとも1つを含む特性情報が付加される。制御データ選択部126は、特性情報を用いて、第1の制御データおよび第2の制御データのいずれを用いるかを選択してよい。
【0070】
例えば、制御データ選択部126は、第1の制御データおよび第2の制御データのうち、特性情報中の確からしさがより高い制御データを優先して選択してよい。また、制御データ選択部126は、第1の制御データおよび第2の制御データのうち、特性情報中の学習日時がより最近である特性データを優先することにより、より新しい制御モデルを用いて算出された制御データを選択してよい。特性情報が複数種類の特性についてのデータを含む場合には、制御データ選択部126は、第1の制御データおよび第2の制御データのそれぞれの特性情報を重み付け等することによって優先度等を示す1つの指標値に変換し、その指標値がより大きい(またはより小さい)制御データを優先的に選択してもよい。これにより、制御データ選択部126は、受け取った第1の制御データおよび第2の制御データの特性に応じて選択する制御データを動的に切り替えて、各時点でより適していると認められる設備100の制御を行うことができる。
【0071】
なお、本実施形態においては、コントローラ110は、モデル記憶部120に格納した制御モデルを用いて制御データを算出するが、これに代えて、コントローラ110は、モデル記憶部168に格納された最新の制御モデルを用いて制御データを算出してもよい。例えば、コントローラ110は、制御周期毎に、最新の制御モデルがモデル記憶部168に格納されているか否かを制御装置160に問い合わせ、最新の制御モデルがモデル記憶部168に格納されている場合にはその制御モデルの少なくとも一部の送信を制御装置160に要求する。そして、コントローラ110は、モデル受信部118により受信された最新の制御モデルを一時的にモデル記憶部120にバッファリングし、この制御モデルを用いて制御データを算出する。これにより、コントローラ110は、常に最新の制御モデルを用いて設備100の制御を行うことができる。
【0072】
図4は、本実施形態に係る算出部122の構成を示す。本図においては、制御モデルが、強化学習によって学習される場合について示す。算出部122は、アクション候補生成部400と、行動価値算出部410と、アクション決定部420とを有する。
【0073】
アクション候補生成部400は、時刻tに対応するセンス周期において、コントローラ110に接続された少なくとも1つのセンサ104から受信された状態データのうち、制御モデルが処理対象とする状態データstを状態記憶部114から受け取る。ここで、状態データstは、コントローラ110に接続された全てのセンサ104から受信された状態データを含んでよく、学習処理中に制御モデルで使用しないと決定された状態データを除き、制御モデルで使用すると決定された状態データを含んでもよい。
【0074】
アクション候補生成部400は、時刻tの状態データstに応じて、設備100を制御する制御周期で採り得る1または複数のアクション候補a0t、a1t、…を生成する。ここで、少なくとも1つのアクション候補は、状態データstの値によらず使用可能なものであってよく、この場合にはアクション候補生成部400は、そのようなアクション候補を常に選択してよい。
【0075】
また、他の少なくとも1つのアクション候補は、状態データstの値に応じて使用可否が定まるものであってよく、この場合にはアクション候補生成部400は、状態データstの値次第でそのようなアクション候補を使用するかどうかを決定してよい。このような状態データstの値に応じたアクション候補は、例えば制御パラメータの取り得る範囲の制限を受けうる。例えば、アクション候補生成部400は、ある機器108のバルブ開度が95%である場合にはバルブ開度を5%増加させるアクション候補を生成してよいが、バルブ開度が100%である場合に更にバルブ開度を増加させるアクション候補を生成しないようにしてよい。
【0076】
また、状態データstの値に応じたアクション候補は、制御対象の機器108の定格使用範囲等の制限を受けうる。例えば、アクション候補生成部400は、ある機器108に入力される原料の温度が機器108の定格上100度以下に制限されている場合において、時刻tにおいて機器108に98度の原料が入力されている場合には、機器108に入力される原料の温度を5度増加させるようなアクション候補を生成しないようにしてよい。
【0077】
行動価値算出部410は、アクション候補生成部400に接続される。行動価値算出部410は、時刻tの状態データstに応じて、時刻tにおける設備100の状態において1または複数のアクション候補a0t、a1t、…のそれぞれを実行する場合の行動価値Q(st,a0t)、Q(st,a1t)、…を制御モデルを用いて予測する。この行動価値Q(st,a0t)は、時刻tにおける設備100の状態においてアクション候補a0t等のアクションを実行する場合に得られる報酬を示してよい。
【0078】
ここで、制御モデルは、与えられた状態sにおいてあるアクションaをとる価値を予測するための行動価値関数Q(s,a)を、一例としてモンテカルロ法またはTD学習法のような強化学習の手法を用いて、例えば制御周期数百サイクル等のある程度の長さの期間における設備100または制御対象の機器108のパフォーマンスを最適化させるべく学習処理部166により学習したものである。制御装置160は、このようなパフォーマンスを、例えば生産プラントにおける製品の製造量、制御対象の機器108による生産品の製造量、原料および電力等の消費量、またはその他の各種のパラメータの少なくとも1つの関数として予め定められたKPI(Key Performance Index)等の目標関数によって決定してよい。ある実装においては、学習処理部166は、状態sおよびアクションaを入力とし、行動価値の予測値Q(s,a)を出力するように学習されたニューラルネットワークを学習により生成して行動価値算出部410に提供してよい。
【0079】
アクション決定部420は、アクション候補生成部400および行動価値算出部410に接続される。アクション決定部420は、アクション候補生成部400が生成した1または複数のアクション候補a0t、a1t、…の中から、行動価値算出部410が算出した各アクション候補の行動価値Q(st,a0t)、Q(st,a1t)、…に基づいて、時刻tに対応する制御周期においてとるべきアクションatを決定し、アクションatに相当する制御データを制御データ選択部126に供給する。アクション決定部420は、原則として行動価値を最大化することができるアクションatを選択する。アクション決定部420は、将来選択可能なアクションの種類を増やすために、次善のアクション候補、または予め定められた閾値以上の行動価値を有するアクション候補等の最適とは限らないアクション候補を予め定められた確率で選択してもよい。
【0080】
算出部172は、算出部122と同様の機能および構成を有してよい。なお、算出部122および算出部172は、上記のような強化学習を用いたものとは異なる機械学習アルゴリズムによる制御モデルを用いてもよい。例えば、算出部122および算出部172は、特許文献1に開示されたカーネルダイナミックポリシープログラミング法により学習された制御モデルを用いてもよい。また、算出部122および算出部172は、例えばニューラルネットワーク、統計的学習、ランダムフォレスト、勾配ブースティング、ロジスティック回帰、またはサポートベクタマシン(SVM)等を含む他の任意の機械学習アルゴリズムによって学習された制御モデルを用いてもよい。
【0081】
図5は、本実施形態に係る制御モデルリストの一例を示す。本図の制御モデルリストは、制御装置160のモデル記憶部168に格納される。学習処理部166は、新たに制御モデルを生成したことに応じて、新たな制御モデルに対応するエントリを制御モデルリストに追加する。また、学習処理部166は、制御モデルを更新したことに応じて、制御モデルリスト中の、更新した制御モデルに対応するエントリを更新する。
【0082】
制御モデルリストは、モデル記憶部168に格納された1または複数の制御モデルのそれぞれに関する情報を格納する。本図の例において、制御モデルリストは、各制御モデルに関して、制御モデル識別情報(制御モデルID)、制御モデルを使用するコントローラの識別情報(コントローラID)、制御モデルの制御対象の識別情報(制御対象ID)、および制御モデルの特性を含むエントリを格納する。
【0083】
「制御モデルID」は、制御モデルに割り当てられた識別子等の、制御モデルを特定する識別情報である。学習処理部166は、生成する全ての制御モデルに対して異なる制御モデルIDを割り当ててよく、複数の制御システム10において生成される全ての制御モデルに対して異なる制御モデルIDを割り当ててよい。
【0084】
「コントローラID」は、制御モデルを使用するコントローラ110を特定する識別情報である。本図の例において、制御モデルIDが1および2の制御モデルは、いずれもコントローラIDがC1であるコントローラ110で使用されるものである。
【0085】
「制御対象ID」は、制御モデルの制御対象を特定する識別情報である。制御モデルがある機器108を制御するものである場合、制御対象IDは、その機器108を特定する識別情報となる。また、制御モデルがある機器108のある制御パラメータを制御するものである場合、制御対象IDは、その制御パラメータを特定する識別情報となる。本図の例において、制御モデルIDが1および2の制御モデルは、いずれも制御対象IDが1aの機器108で使用されるものである。
【0086】
「特性」は、制御モデルの特性情報である。本図の例においては、制御モデルの特性情報は、制御の「確からしさ」、「計算量」、および「学習日時」を含む。制御の「確からしさ」は、その制御モデルによって算出される制御データを用いた制御がどの程度適切であるかを示す指標である。制御の「確からしさ」は、一例として、その制御モデルによって決定されるアクションが最適なアクションである確率を学習時または事後的に算出したもの(予測精度等)であってよく、その制御モデルによって決定されるアクションによって得られる報酬の期待値、すなわち全ての状態sについて最大の行動価値を状態sの生起確率で重み付けして得られる値であってよい。
【0087】
一般に、制御の確からしさは、制御モデルが単純であるほど低くなり、過学習とならない限り制御モデルが複雑であるほど高くなる。ここで制御モデルが複雑であるとは、より多くの状態データを入力とする場合、制御モデルの内部で用いる計算量が多い場合(例えばニューラルネットワークを用いる場合において、ニューロンの数または層数の少なくとも1つが多い場合)等が挙げられる。したがって、学習処理部166は、制御の確からしさを、制御モデルの複雑度に応じて決定してもよい。
【0088】
本図の例においては、制御の「確からしさ」は、制御モデルによって決定されるアクションが最適なアクションである確率を示す。本図の例においては、制御モデルIDが1の制御モデルは確からしさが0.9、制御モデルIDが2の制御モデルは確からしさが0.8である。
【0089】
「計算量」は、各制御周期においてその制御モデルを用いた制御データの算出処理が実行された場合にどれだけの処理リソースを使用するかを示す指標である。「計算量」は、一例として、制御周期毎の制御モデルの(平均の)演算量(例えば加減乗除等の演算回数)、制御周期毎にコントローラ110内のプロセッサが制御モデルを実行した場合に実行する(平均の)命令数、または制御周期毎のコントローラ110の占有時間等であってよい。また、「計算量」は、コントローラ110におけるメモリ使用量等のような、コントローラ110におけるプロセッサ以外のリソースの使用量を含んでもよい。
【0090】
本図の例においては、「計算量」は、制御周期毎の制御モデルの演算量を示す。本図の例においては、制御モデルIDが1の制御モデルは計算量が100、制御モデルIDが2の制御モデルは計算量が20である。
【0091】
「学習日時」は、制御モデルが学習された日時を示す。本図の例においては、制御モデルIDが1の制御モデルは2020年9月18日に学習されており、制御モデルIDが2の制御モデルは2020年9月20日に学習されている。本実施形態においては、制御装置160は、学習の開始時点において最新の状態データを使用して学習をするので、「学習日時」は、制御モデルの学習に用いた学習データが収集された日時を概ね示す。制御装置160が、過去の状態データを使用して学習する場合には、「学習日時」は、学習に使用した状態データが収集された日時(例えば学習に使用した状態データが収集された期間の末尾の日時)を示すもの、すなわち学習データの収集期間に応じた日時を示すものであってよい。
【0092】
「特性」は、上記の他に、制御モデルに関する様々な特性を記録してよい。例えば、「特性」は、制御モデルが学習されたとき(または制御モデルの学習に用いた状態データが収集されたとき)の外部環境(外気温、湿度等)を記録してよい。
【0093】
本図に示したように、学習処理部166は、例えば
図2のS235において、各コントローラ110または各制御対象について、制御の確からしさ、計算量、または学習日時の少なくとも1つを含む特性が異なる複数の制御モデルを生成してよい。モデル送信部170は、例えば
図2のS240において、このようにして生成された複数の制御モデルをコントローラ110に送信して、コントローラ110で選択可能に設定させてよい。
【0094】
コントローラ110のモデル受信部118は、例えば
図2のS245において、このような特性が異なる複数の制御モデルを受信してよい。モデル記憶部120は、モデル記憶部168と同様に、モデル受信部118が格納する各制御モデルについてのエントリを含む制御モデルリストを格納してよい。コントローラ110の算出部122は、これらの複数の制御モデルの中から、特性に基づいて設備100の制御に用いる制御モデルを選択してよい。
【0095】
例えば、算出部122は、同じ制御対象について計算量またはメモリ使用量等の使用リソース量が異なる2以上の制御モデルがモデル記憶部120に格納されている場合、コントローラ110の処理リソースに不足が生じないことを条件として、使用する制御モデルを選択してよい。換言すれば、算出部122は、制御モデルの使用リソース量が、コントローラ110においてその制御対象の制御に使用可能なリソース量を上回らないことを条件としてその制御モデルを選択する。
【0096】
また、算出部122は、同じ制御対象について制御の確からしさが異なる2以上の制御モデルがモデル記憶部120に格納されている場合、制御の確からしさがより高い制御モデルを優先して使用してよい。なお、算出部122は、コントローラ110が制御の確からしさがより高い制御モデルを実行するのに十分な処理リソースを有していない等の場合には、制御の確からしさがより低い制御モデルを選択してよい。
【0097】
また、算出部122は、同じ制御対象について学習日時が異なる2以上の制御モデルがモデル記憶部120に格納されている場合、学習日時がより新しい制御モデルを優先して使用してよい。これに代えて、算出部122は、例えば1日の中で現時刻に近い時刻の学習日時に対応付けられた制御モデルを優先して使用することによって毎日繰り返される機器108の特性変動に合わせて制御モデルを選択してよく、例えば1年の中で現在の日に近い日の学習日時に対応付けられた制御モデルを優先して使用することによって機器108の例年の特性変動または季節変動に合わせて制御モデルを選択してもよい。
【0098】
また、制御装置160は、設備100の監視員等から制御モデルの選択に関する指示を入力して、コントローラ110にその指示を送信してよい。コントローラ110内の算出部122は、その指示に応じていずれの制御モデルを使用するかを選択してよい。例えば、算出部122は、学習日時が指定期間内の制御モデルを選択することの指示を受信した場合には、その指定期間内の学習日時に対応付けられた制御モデルを選択してよい。これにより、算出部122は、マニュアルでの指定を受けて、例えば過去に設備100の制御が適切に行われた制御モデル、現在の外部環境に近い状況で学習された制御モデル、またはその他の特定の制御モデルを選択することができる。
【0099】
以上に示したように、算出部122は、複数の制御モデルをその特性に応じて選択することにより、制御対象の機器108等をより適切な制御モデルを用いて制御することができる。なお、制御装置160内の算出部172は、算出部122と同様にして、各コントローラ110の各制御対象について、複数の制御モデルの中から算出部172が使用する制御モデルを選択してよい。
【0100】
図6は、本実施形態の変形例に係る制御システム10の構成を設備100と共に示す。本変形例に係る制御システム10は、
図1に示した制御システム10の変形例である。本図において、
図1と同様の機能および構成を有する部材については
図1と同じ符号を付し、相違点を除いて説明を省略する。本変形例に係る制御システム10は、コントローラ110内で使用する制御モデルが、他のコントローラ110に接続されたセンサ104からの状態データを使用して制御データを算出可能とする。これを実現するために、本変形例に係る制御システム10は、
図1に示した制御システム10に対して、制御装置160に状態転送部600を付加し、コントローラ110に状態転送受信部610を付加したものである。
【0101】
状態転送部600は、状態記憶部164に接続される。状態転送部600は、状態記憶部164に格納された、あるコントローラ110に接続されたセンサ104からの状態データを、その状態データを入力とする、他のコントローラ110で実行される制御モデルへと転送する。ここで、状態転送部600は、どの状態データをどのコントローラ110へと送信すべきかを示す転送先情報を、制御モデルを生成する学習処理部166から取得してよい。これに代えて、モデル記憶部168は、転送先情報を制御モデルリストに格納し、状態転送部600は、転送先情報をモデル記憶部168から取得してもよい。
【0102】
状態転送受信部610は、ネットワーク140を介して状態転送部600に接続される。状態転送受信部610は、状態転送部600によって転送された、他のコントローラ110によって受信された状態データを受信して、状態記憶部114に格納する。これにより、算出部122は、他のコントローラ110によって受信された状態データを入力する制御モデルを用いて制御データを算出することができる。
【0103】
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および/またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび/またはアナログハードウェア回路を含んでよく、集積回路(IC)および/またはディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【0104】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0105】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
【0106】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のコンピュータ等のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0107】
図7は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。コンピュータ2200にインストールされたプログラムは、コンピュータ2200に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ2200に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ2200に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU2212によって実行されてよい。
【0108】
本実施形態によるコンピュータ2200は、CPU2212、RAM2214、グラフィックコントローラ2216、およびディスプレイデバイス2218を含み、それらはホストコントローラ2210によって相互に接続されている。コンピュータ2200はまた、通信インターフェイス2222、ハードディスクドライブ2224、DVD-ROMドライブ2226、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ2220を介してホストコントローラ2210に接続されている。コンピュータはまた、ROM2230およびキーボード2242のようなレガシの入/出力ユニットを含み、それらは入/出力チップ2240を介して入/出力コントローラ2220に接続されている。
【0109】
CPU2212は、ROM2230およびRAM2214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ2216は、RAM2214内に提供されるフレームバッファ等またはそれ自体の中にCPU2212によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス2218上に表示されるようにする。
【0110】
通信インターフェイス2222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ2224は、コンピュータ2200内のCPU2212によって使用されるプログラムおよびデータを格納する。DVD-ROMドライブ2226は、プログラムまたはデータをDVD-ROM2201から読み取り、ハードディスクドライブ2224にRAM2214を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。
【0111】
ROM2230はその中に、アクティブ化時にコンピュータ2200によって実行されるブートプログラム等、および/またはコンピュータ2200のハードウェアに依存するプログラムを格納する。入/出力チップ2240はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ2220に接続してよい。
【0112】
プログラムが、DVD-ROM2201またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ2224、RAM2214、またはROM2230にインストールされ、CPU2212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ2200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ2200の使用に従い情報の操作または処理を実現することによって構成されてよい。
【0113】
例えば、通信がコンピュータ2200および外部デバイス間で実行される場合、CPU2212は、RAM2214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス2222に対し、通信処理を命令してよい。通信インターフェイス2222は、CPU2212の制御下、RAM2214、ハードディスクドライブ2224、DVD-ROM2201、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【0114】
また、CPU2212は、ハードディスクドライブ2224、DVD-ROMドライブ2226(DVD-ROM2201)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM2214に読み取られるようにし、RAM2214上のデータに対し様々なタイプの処理を実行してよい。CPU2212は次に、処理されたデータを外部記録媒体にライトバックする。
【0115】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU2212は、RAM2214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM2214に対しライトバックする。また、CPU2212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU2212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0116】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ2200上またはコンピュータ2200近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ2200に提供する。
【0117】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0118】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0119】
10 制御システム、100 設備、104 センサ、108 機器、110 コントローラ、112 状態受信部、114 状態記憶部、116 状態送信部、118 モデル受信部、120 モデル記憶部、122 算出部、124 制御データ受信部、126 制御データ選択部、128 制御部、140 ネットワーク、160 制御装置、162 状態取得部、164 状態記憶部、166 学習処理部、168 モデル記憶部、170 モデル送信部、172 算出部、174 制御データ送信部、400 アクション候補生成部、410 行動価値算出部、420 アクション決定部、600 状態転送部、610 状態転送受信部、2200 コンピュータ、2201 DVD-ROM、2210 ホストコントローラ、2212 CPU、2214 RAM、2216 グラフィックコントローラ、2218 ディスプレイデバイス、2220 入/出力コントローラ、2222 通信インターフェイス、2224 ハードディスクドライブ、2226 DVD-ROMドライブ、2230 ROM、2240 入/出力チップ、2242 キーボード