(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-25
(45)【発行日】2024-01-09
(54)【発明の名称】学習処理装置、制御装置、学習処理方法、制御方法、学習プログラムおよび制御プログラム
(51)【国際特許分類】
G05B 13/02 20060101AFI20231226BHJP
G06N 20/00 20190101ALI20231226BHJP
【FI】
G05B13/02 L
G06N20/00 130
(21)【出願番号】P 2021060666
(22)【出願日】2021-03-31
【審査請求日】2022-04-26
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】劉 琢
(72)【発明者】
【氏名】鹿子木 宏明
(72)【発明者】
【氏名】▲高▼見 豪
(72)【発明者】
【氏名】古川 陽太
(72)【発明者】
【氏名】後藤 宏紹
【審査官】大古 健一
(56)【参考文献】
【文献】特開2021-67191(JP,A)
【文献】特開2021-117699(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 1/00 - 7/04
G05B 11/00 -13/04
G05B 17/00 -17/02
G05B 21/00 -21/02
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
機械学習により、予め定められた系の指示値および測定値に応じ
て、前記測定値が設定された目標値となるように操作量を出力する制御モデルを
、前記目標値毎に生成する学習処理部と、
前記制御モデルを用いて、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じた前記操作量との対応関係を示す制御用データを
、前記目標値毎に生成する生成部と、
予め定められた制御装置に前記制御用データを供給する供給部と
を備え、
前記制御用データは、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じた前記操作量との対応関係をマッピングした操作量マップを含む学習処理装置。
【請求項2】
前記操作量は、予め定められた操作可能範囲のうち、最大の操作量または最小の操作量である
請求項1に記載の学習処理装置。
【請求項3】
前記制御モデルは、予め定められた複数の系に対応して生成されており、
前記生成部は、前記複数の系毎に異なる前記制御用データを生成する
請求項1
または2に記載の学習処理装置。
【請求項4】
予め定められた系の指示値および測定値を取得する入力データ取得部と、
前記指示値および前記測定値に応じ
て、前記測定値が設定された目標値となるように操作量を出力するように学習された
前記目標値毎の制御モデルを用いて
前記目標値毎に生成され、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じて出力される操作量との対応関係を示す制御用データを取得する制御用データ取得部と、
前記制御用データを用いて、前記指示値および前記測定値の組み合わせに応じた前記操作量を算出する算出部と、
前記操作量を予め定められた制御対象へ出力する出力部と
を備え、
前記制御用データ取得部は、前記制御用データとして、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じた前記操作量との対応関係をマッピングした複数の操作量マップを取得する制御装置。
【請求項5】
前記入力データ取得部は、前記系に関する特徴データを取得し、
前記制御装置は、前記特徴データに基づいて、前記複数の操作量マップから
操作量マップを選択するマップ選択部を備える
請求項
4に記載の制御装置。
【請求項6】
前記指示値および前記測定値を、前記操作量マップに応じた値にスケーリングするスケーリング部と、
前記操作量マップから算出された操作量を、前記系に応じて逆スケーリングする逆スケーリング部と
を備える請求項
5に記載の制御装置。
【請求項7】
前記出力部は、前記操作量として、予め定められた操作可能範囲のうち、最大の操作量または最小の操作量を前記制御対象へ出力する
請求項
4から
6のいずれか一項に記載の制御装置。
【請求項8】
機械学習により、予め定められた系の指示値および測定値に応じ
て、前記測定値が設定された目標値となるように操作量を出力する制御モデルを
、前記目標値毎に生成する段階と、
前記制御モデルを用いて、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じた前記操作量との対応関係を示す制御用データを
、前記目標値毎に生成する段階と、
予め定められた制御装置に前記制御用データを供給する段階と
を備え、
前記制御用データは、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じた前記操作量との対応関係をマッピングした操作量マップを含む学習処理方法。
【請求項9】
予め定められた系の指示値および測定値を取得する段階と、
前記指示値および前記測定値に応じ
て、前記測定値が設定された目標値となるように操作量を出力するように学習された
前記目標値毎の制御モデルを用いて
前記目標値毎に生成され、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じて出力される操作量との対応関係を示す制御用データを取得する段階であって、前記制御用データとして、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じた前記操作量との対応関係をマッピングした複数の操作量マップを含む、制御用データを取得する段階と、
前記制御用データを用いて、前記指示値および前記測定値の組み合わせに応じた前記操作量を算出する段階と、
前記操作量を予め定められた制御対象へ出力する段階と
を備える制御方法。
【請求項10】
コンピュータにより実行されて、前記コンピュータを、
機械学習により、予め定められた系の指示値および測定値に応じ
て、前記測定値が設定された目標値となるように操作量を出力する制御モデルを
、前記目標値毎に生成する学習処理部と、
前記制御モデルを用いて、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じた前記操作量との対応関係を示す制御用データを
、前記目標値毎に生成する生成部と、
予め定められた制御装置に前記制御用データを供給する供給部と
して機能させ、
前記制御用データは、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じた前記操作量との対応関係をマッピングした操作量マップを含む、学習プログラム。
【請求項11】
コンピュータにより実行されて、前記コンピュータを、
予め定められた系の指示値および測定値を取得する入力データ取得部と、
前記指示値および前記測定値に応じ
て、前記測定値が設定された目標値となるように操作量を出力するように学習された
前記目標値毎の制御モデルを用いて
前記目標値毎に生成され、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じて出力される操作量との対応関係を示す制御用データを取得する制御用データ取得部であって、前記制御用データとして、前記指示値および前記測定値の組み合わせと、当該組み合わせに応じた前記操作量との対応関係をマッピングした複数の操作量マップを取得する、制御用データ取得部と、
前記制御用データを用いて、前記指示値および前記測定値の組み合わせに応じた前記操作量を算出する算出部と、
前記操作量を予め定められた制御対象へ出力する出力部と
して機能させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習処理装置、制御装置、学習処理方法、制御方法、学習プログラムおよび制御プログラムに関する。
【背景技術】
【0002】
特許文献1には、「温度制御情報を用いて、シリンダ温度をPID制御する、温度制御装置」が記載されている。
[先行技術文献]
[特許文献]
特許文献1 特開2019-130771号公報
【発明の概要】
【0003】
本発明の第1の態様においては、学習処理装置を提供する。学習処理装置は、機械学習により、予め定められた系の指示値および測定値に応じた操作量を出力する制御モデルを生成する学習処理部を備えてよい。学習処理装置は、制御モデルを用いて、指示値および測定値の組み合わせと、当該組み合わせに応じた操作量との対応関係を示す制御用データを生成する生成部を備えてよい。学習処理装置は、予め定められた制御装置に制御用データを供給する供給部を備えてよい。
【0004】
操作量は、予め定められた操作可能範囲のうち、最大の操作量または最小の操作量であってよい。
【0005】
制御モデルは、測定値が設定された目標値となるように操作量を出力してよい。生成部は、目標値毎に異なる制御用データを生成してよい。
【0006】
制御モデルは、予め定められた複数の系に対応して生成されてよい。生成部は、複数の系毎に異なる制御用データを生成してよい。
【0007】
制御用データは、指示値および測定値の組み合わせと、当該組み合わせに応じた操作量との対応関係をマッピングした操作量マップを含んでよい。
【0008】
本発明の第2の態様においては、制御装置を提供する。制御装置は、予め定められた系の指示値および測定値を取得する入力データ取得部を備えてよい。制御装置は、指示値および測定値に応じた操作量を出力するように学習された制御モデルを用いて生成され、指示値および測定値の組み合わせと、当該組み合わせに応じて出力される操作量との対応関係を示す制御用データを取得する制御用データ取得部を備えてよい。制御装置は、制御用データを用いて、指示値および測定値の組み合わせに応じた操作量を算出する算出部を備えてよい。制御装置は、操作量を予め定められた制御対象へ出力する出力部を備えてよい。
【0009】
制御用データ取得部は、制御用データとして、指示値および測定値の組み合わせと、当該組み合わせに応じた操作量との対応関係をマッピングした複数の操作量マップを取得してよい。入力データ取得部は、系に関する特徴データを取得してよい。制御装置は、特徴データに基づいて、複数の操作量マップから任意の操作量マップを選択するマップ選択部を備えてよい。
【0010】
制御装置は、指示値および測定値を、操作量マップに応じた値にスケーリングするスケーリング部を備えてよい。制御装置は、操作量マップから算出された操作量を、系に応じて逆スケーリングする逆スケーリング部を備えてよい。
【0011】
出力部は、操作量として、予め定められた操作可能範囲のうち、最大の操作量または最小の操作量を制御対象へ出力してよい。
【0012】
本発明の第3の態様においては、学習処理方法を提供する。学習処理方法は、機械学習により、予め定められた系の指示値および測定値に応じた操作量を出力する制御モデルを生成する段階を備えてよい。学習処理方法は、制御モデルを用いて、指示値および測定値の組み合わせと、当該組み合わせに応じた操作量との対応関係を示す制御用データを生成する段階を備えてよい。学習処理方法は、予め定められた制御装置に制御用データを供給する段階を備えてよい。
【0013】
本発明の第4の態様においては、制御方法を提供する。制御方法は、予め定められた系の指示値および測定値を取得する段階を備えてよい。制御方法は、指示値および測定値に応じた操作量を出力するように学習された制御モデルを用いて生成され、指示値および測定値の組み合わせと、当該組み合わせに応じて出力される操作量との対応関係を示す制御用データを取得する段階を備えてよい。制御方法は、制御用データを用いて、指示値および測定値の組み合わせに応じた操作量を算出する段階を備えてよい。制御方法は、操作量を予め定められた制御対象へ出力する段階を備えてよい。
【0014】
本発明の第5の態様においては、学習プログラムを提供する。学習プログラムは、コンピュータにより実行されて、コンピュータを、機械学習により、予め定められた系の指示値および測定値に応じた操作量を出力する制御モデルを生成する学習処理部として機能させてよい。学習プログラムは、コンピュータにより実行されて、コンピュータを、制御モデルを用いて、指示値および測定値の組み合わせと、当該組み合わせに応じた操作量との対応関係を示す制御用データを生成する生成部として機能させてよい。学習プログラムは、コンピュータにより実行されて、コンピュータを、予め定められた制御装置に制御用データを供給する供給部として機能させてよい。
【0015】
本発明の第6の態様においては、制御プログラムを提供する。制御プログラムは、コンピュータにより実行されて、コンピュータを、予め定められた系の指示値および測定値を取得する入力データ取得部として機能させてよい。制御プログラムは、コンピュータにより実行されて、コンピュータを、指示値および測定値に応じた操作量を出力するように学習された制御モデルを用いて生成され、指示値および測定値の組み合わせと、当該組み合わせに応じて出力される操作量との対応関係を示す制御用データを取得する制御用データ取得部として機能させてよい。制御プログラムは、コンピュータにより実行されて、コンピュータを、制御用データを用いて、指示値および測定値の組み合わせに応じた操作量を算出する算出部として機能させてよい。制御プログラムは、コンピュータにより実行されて、コンピュータを、操作量を予め定められた制御対象へ出力する出力部として機能させてよい。
【0016】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0017】
【
図1A】制御装置100の構成の概要を、設備300と共に示す。
【
図1B】制御装置100が制御対象310の動作を制御するフローの一例を示す。
【
図2B】学習処理装置200により機械学習するフローの一例を示す。
【
図3】算出部30のより具体的な構成の一例を示す。
【
図4B】実施例に係る制御装置100による制御方法の一例を示す。
【
図4C】機械学習を用いた操作量マップの生成方法の一例を示す。
【
図6A】学習処理装置200の実施形態の一例を示す。
【
図6B】学習処理装置200の実施形態の一例を示す。
【
図7】本発明の複数の態様が全体的又は部分的に具現化されてよいコンピュータ2200の例を示す。
【発明を実施するための形態】
【0018】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0019】
図1Aは、制御装置100の構成の概要を、設備300と共に示す。制御装置100は、設備300に設けられた制御対象310の動作を制御する。
【0020】
設備300は、制御対象310が備え付けられた施設や装置等である。例えば、設備300は、プラントであってもよいし、複数の機器を複合させた複合装置であってもよい。プラントとしては、化学やバイオ等の工業プラントの他、ガス田や油田等の井戸元やその周辺を管理制御するプラント、水力・火力・原子力等の発電を管理制御するプラント、太陽光や風力等の環境発電を管理制御するプラント、上下水やダム等を管理制御するプラント等が挙げられる。
【0021】
設備300には、制御対象310が設けられている。本図においては、設備300に1つの制御対象310のみが設けられている場合を一例として示しているが、これに限定されるものではない。設備300には、複数の制御対象310が設けられてもよい。
【0022】
また、設備300には、設備300の内外における様々な状態(物理量)を測定する1または複数のセンサ(図示せず)が設けられていてよい。このようなセンサは、例えば、制御対象310を制御した結果の運転状態を示す運転データを取得する。例えば、運転データは、制御対象310について測定された測定値PV(Process Variable)を示してよく、一例として、制御対象310の出力(制御量)を示してもよいし、制御対象310の出力によって変化する様々な値を示してもよい。
【0023】
制御対象310は、制御の対象となるフィールド機器および装置等である。例えば、制御対象310は、圧力計、流量計、温度センサ等のセンサ機器、流量制御弁や開閉弁等のバルブ機器、またはファンやモータ等のアクチュエータ機器である。
【0024】
本例の制御装置100は、1つの測定値PVと1つの操作量MVとによる単入力単出力によってプロセス制御する。例えば、制御装置100は、温度の調節、液面の水位調整または流量の調整などのプロセス制御を実行する。
【0025】
制御装置100は、PC(パーソナルコンピュータ)、タブレット型コンピュータ、スマートフォン、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。このようなコンピュータシステムもまた広義のコンピュータである。また、制御装置100は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、制御装置100は、AI制御用に設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。また、制御装置100がインターネットに接続可能な場合、制御装置100は、クラウドコンピューティングにより実現されてもよい。
【0026】
制御装置100は、入力データ取得部10と、制御用データ取得部20と、算出部30と、出力部40とを備える。なお、これらブロックは、それぞれ機能的に分離された機能ブロックであって、実際のデバイス構成とは必ずしも一致していなくてもよい。即ち、本図において、1つのブロックとして示されている場合であっても、それが1つのデバイスにより構成されるものに限定されない。また、本図において、別々のブロックとして示されている場合であっても、それらが別々のデバイスにより構成されるものに限定されない。
【0027】
入力データ取得部10は、予め定められた入力データを取得する。例えば、入力データ取得部10は、入力データとして、設備300から予め定められた系の指示値IVおよび測定値PVを取得する。指示値IVおよび測定値PVは、設備300に設けられたセンサによって測定され、ネットワークを介して入力データ取得部10に送信されてよい。また、入力データ取得部10は、入力データとして、オペレータ等によって設定された目標値SVを取得している。入力データ取得部10は、取得した入力データを制御用データ取得部20および算出部30へ供給してよい。
【0028】
制御用データ取得部20は、指示値IVおよび測定値PVの組み合わせと、当該組み合わせに応じて出力される操作量MV(Manipulated Variable)との対応関係を示す制御用データを取得する。制御用データ取得部20は、取得した制御用データを記憶する記憶部を有してよい。制御用データは、指示値IVおよび測定値PVに応じた操作量MVを出力するように学習された制御モデルを用いて生成される。
【0029】
制御用データは、指示値IVおよび測定値PVの組み合わせと、操作量MVとの対応関係を示すものであればデータの形式は特に限定されない。一例において、制御用データは、指示値IVおよび測定値PVの組み合わせと、操作量MVとの対応関係をマッピングした操作量マップを含む。操作量マップについては後述する。制御用データは、指示値IVおよび測定値PVの組み合わせと、操作量MVとの対応関係をテーブル形式で示してもよい。
【0030】
算出部30は、制御用データを用いて、指示値IVおよび測定値PVの組み合わせに応じた操作量MVを算出する。一例において、算出部30は、操作量MVとして、予め定められた操作可能範囲のうち、最大の操作量MVまたは最小の操作量MVを算出する。最大の操作量MVとは、予め定められた操作可能範囲のうち、正の操作量MVの最大値であってよい。最小の操作量MVとは、予め定められた操作可能範囲のうち、負の操作量MVの最小値であってよい。
【0031】
また、算出部30は、目標値SVにも基づいて操作量MVを算出してよい。例えば、算出部30は、目標値SVに基づいて操作量マップを選択して、選択した操作量マップを用いて操作量MVを算出する。なお、算出部30は、目標値SVと測定値PVとの差分が予め定められた値よりも小さくなった場合に、PID制御等の他の制御方法に切り替えてもよい。
【0032】
出力部40は、算出部30が算出した操作量MVを制御対象310へ出力する。出力部40は、操作量MVとして、予め定められた操作可能範囲のうち、最大の操作量MVまたは最小の操作量MVを制御対象へ出力してよい。
【0033】
例えば、制御装置100がバルブの開閉を行うための回転速度を調整することにより、タンクの水位を制御する場合、指示値IVがバルブの開度であり、測定値PVがタンクの水位であり、操作量MVがバルブの回転速度である。また、制御装置100が電熱線に流れる電流を調整して、炉の温度を制御する場合、指示値IVが電熱線自体の温度であり、測定値PVが炉全体の温度であり、操作量MVが電熱線への電流であってよい。
【0034】
本例の制御装置100は、機械学習により生成された制御用データを用いて、操作量MVを算出することにより、PID制御等の他の制御よりも、オーバーシュートが少なくより高速な制御を実現することができる。本例の制御装置100は、シングルループコントローラとして用いられ、最大の操作量MVまたは最小の操作量MVを制御対象へ出力することで、理論上の最速制御を実現することができる。これにより、制御装置100は、タンクの水位の調整時間または炉温度の立ち上げ時間等をPID制御の場合と比較して短縮できる。そして、立ち上げ時間の短縮に伴う生産量の増加、初期起動時に使われるエネルギーセーブまたは素早い多品種バッチ製造に対応するシステムを実現できる。また、オーバーシュートを少なくすることで、品質の早期安定化による廃棄の減少、設備稼働率の向上、または設備負担の減少による寿命の延伸を実現できる。
【0035】
図1Bは、制御装置100が制御対象310の動作を制御するフローの一例を示す。ステップS100において、制御装置100は、指示値IVおよび測定値PVを取得する。また、ステップS100において、制御装置100は、目標値SVを取得してもよいし、予め目標値SVを取得していてもよい。例えば、制御装置100は、予めオペレータによって設定された目標値SVを取得し、設備300のセンサから指示値IVおよび測定値PVをリアルタイムに取得する。
【0036】
ステップS102において、制御装置100は、制御用データを取得する。制御装置100は、予め機械学習により生成された制御用データを取得しておいてもよいし、シミュレータまたは実際の系を用いて機械学習された制御用データを取得してもよい。
【0037】
ステップS104において、制御装置100は、制御用データに基づいて操作量MVを算出する。ステップS106において、制御対象310へ操作量MVを出力する。その後、制御装置100は、制御を終了するか否かを判断する。制御装置100は、制御を終了しない場合、ステップS100に戻って指示値IVおよび測定値PVを取得する。
【0038】
例えば、制御装置100は、機械学習により生成された制御用データを用いた制御と、フィードバック制御とを組み合わせて用いてもよい。フィードバック制御は、比例制御(P制御)、積分制御(I制御)または、微分制御(D制御)の少なくとも1つであってよく、一例においてPID制御であってもよい。一例として、フィードバック制御においては、測定値PVと目標値SVとに基づいて操作量MVを算出する。フィードバック制御においては、目標値SVが設定されたことに応じて、当該目標値SVと現在の測定値PVとの差分を低減するような操作量MVが算出されてよい。
【0039】
図2Aは、学習処理装置200の構成の概要を示す。学習処理装置200は、状態データ取得部210と、学習処理部220と、生成部230と、供給部240とを備える。
【0040】
状態データ取得部210は、制御対象310が設けられた設備300の状態を示す状態データを取得する。例えば、状態データ取得部210は、設備300に設けられたセンサが測定した指示値IVおよび測定値PVを取得する。状態データ取得部210は、取得した状態データを学習処理部220および生成部230へ供給してよい。
【0041】
学習処理部220は、機械学習により、指示値IVおよび測定値PVに応じた操作量MVを出力する制御モデル235を生成する。本例では、制御モデル235の入力値が指示値IVおよび測定値PVであり、出力値が操作量MVである。学習処理部220は、指示値IVに対応する測定値PVが得られた場合に、オーバーシュートが少なくかつ最速で目標値SVに収束するような操作量MVを出力する制御モデル235を機械学習により生成する。制御モデル235は、予め定められた複数の系に対応して生成されてもよい。例えば、制御モデル235は、加熱炉の温度を制御するための系またはタンクの水位を制御するための系などの系毎に機械学習をして生成される。
【0042】
制御モデル235は、学習処理部220が強化学習により生成した学習モデルであり、設備300の状態に応じた操作量MVを出力する。本例の制御モデル235は、測定値PVが予め定められた目標値SVとなるように操作量MVを出力する。なお、本図においては、制御モデル235が学習処理装置200に内蔵されている場合を一例として示したが、これに限定されるものではない。制御モデル235は、制御装置100に格納されてもよい。なお、制御モデル235は、目標値SV毎に操作量MVを出力するモデルであってもよい。制御モデル235は、目標値SV毎に強化学習された複数のモデルを含んでよい。例えば、制御モデル235は、目標値SVが第1の値(例えば、5)の場合に操作量MVを出力する、又は目標値SVが第2の値(例えば、10)の場合に操作量MVを出力する各々のモデルである。
【0043】
生成部230は、制御モデル235を用いて、指示値IVおよび測定値PVの組み合わせと、当該組み合わせに応じた操作量MVとの対応関係を示す制御用データを生成する。生成部230は、目標値SV毎に異なる制御用データを生成してもよい。本例の生成部230は、目標値SV毎に異なる制御モデル235を用いて、目標値SV毎に異なる制御用データを生成する。例えば、生成部230は、目標値SV毎に後述する操作量マップを生成する。また、生成部230は、制御モデル235が複数の系に対応して生成される場合に、複数の系毎に異なる制御用データを生成してもよい。
【0044】
供給部240は、制御装置100に制御用データを供給する。また、供給部240は、予め定められた記憶部に制御用データを供給して記憶させてよい。本例の供給部240は、目標値SV毎または系毎に最適な制御用データを供給することができる。また、供給部240は、目標値SVと系の組み合わせに応じて、最適な制御用データを供給してもよい。即ち、制御用データは、系毎に異なっていてよく、かつ、それぞれの系において目標値毎に異なっていてよい。
【0045】
図2Bは、学習処理装置200により機械学習するフローの一例を示す。ステップS200において、学習処理装置200は、状態データを取得する。ステップS202において、学習処理装置200は、機械学習により、制御モデル235を生成する。ステップS204において、学習処理装置200は、制御モデル235を用いて、制御用データを生成する。ステップS206において、学習処理装置200は、制御用データを供給する。
【0046】
図3は、算出部30のより具体的な構成の一例を示す。本例の算出部30は、スケーリング部32と、マップ選択部34と、決定部36と、逆スケーリング部38とを備える。
【0047】
制御用データ取得部20は、制御用データとして、指示値IVおよび測定値PVの組み合わせと、当該組み合わせに応じた操作量MVとの対応関係をマッピングした複数の操作量マップを取得している。複数の操作量マップには、目標値SV毎に異なる操作量マップが含まれてもよい。また、複数の操作量マップには、制御対象310とする系の異なる操作量マップが含まれてもよい。
【0048】
スケーリング部32は、指示値IVおよび測定値PVを、操作量マップに応じた値にスケーリングする。スケーリング部32は、指示値IVおよび測定値PVの範囲を、操作量マップの範囲と整合させるために、指示値IV'および測定値PV'にスケーリングして、レンジを合わせるための線形処理を行う。例えば、操作量マップにおける測定値PV'の範囲が[0,100]であり、実際の系の測定値PVの範囲が[0,1]である。スケーリング部32は、入力された測定値PVの値が0.3である場合、操作量マップの範囲に合わせて、測定値PV'を0.3×100=30とする線形処理を行う。
【0049】
マップ選択部34は、制御用データ取得部20に記憶された複数の操作量マップから予め定められた操作量マップを選択する。マップ選択部34は、算出部30に入力された指示値IVおよび測定値PVに基づいて、適当な操作量マップを選択してよい。例えば、マップ選択部34は、複数の操作量マップから制御対象310の系に最も近い系の操作量マップを選択する。
【0050】
例えば、マップ選択部34は、系に関する特徴データに基づいて、複数の操作量マップから実際の系に適した操作量マップを選択する。ここで、複数の操作量マップは、加熱炉向けの操作量マップまたは三段水槽水位制御向けの操作量マップなどのアプリケーション毎に固有の操作量マップを含んでよい。また、複数の操作量マップは、系の数学的特徴に応じて、1次遅れ系の操作量マップまたは2次遅れ系の操作量マップなどを含んでよい。即ち、マップ選択部34は、特徴データとして、系のアプリケーションに関する情報または系の数学的特徴に関する情報に基づいて、複数の操作量マップから任意の操作量マップを選択してよい。マップ選択部34は、系のアプリケーションに関する情報および系の数学的特徴に関する情報などを組み合わせて参照することにより、複数の操作量マップから任意の操作量マップを選択してもよい。より具体的には、マップ選択部34は、特徴データと、複数の操作量マップの付加情報とを照らし合わせることにより、最も実際の系の情報に近い操作量マップを選択してよい。複数の操作量マップの付加情報とは、操作量マップに関する任意の情報であってよい。なお、特徴データは、入力データ取得部10により取得されてよい。特徴データは、ユーザによって入力されてもよいし、入力データ取得部10に入力された指示値IVおよび測定値PV等に基づいて算出されてもよい。
【0051】
決定部36は、マップ選択部34が選択した操作量マップを用いて、入力された指示値IV'および測定値PV'に応じた操作量MV'を決定する。なお、決定部36には、スケーリングされずにそのまま指示値IVおよび測定値PVが入力されてもよい。
【0052】
逆スケーリング部38は、操作量マップから算出された操作量MV'を、系に応じて逆スケーリングする。逆スケーリング部38は、実際の系の出力の範囲に合わせてスケーリング部32の逆演算を行い、その結果を出力する。例えば、操作量マップにおける操作量MV'の範囲が[0,100]であり、実際の系の操作量MVの範囲が[0,1]である。逆スケーリング部38は、操作量マップにより得られた操作量MV'の値が5である場合、実際の系の出力の範囲に合わせて操作量MVを5÷100=0.05とする線形処理を行う。
【0053】
図4Aは、操作量マップの一例を示す。縦軸は測定値PVを示し、横軸は指示値IVを示す。また、本例の操作量マップは、指示値IVと測定値PVの組み合わせに応じて、領域Aと領域Bに分けられている。制御装置100は、領域Aと領域Bとで異なる操作量MVを出力してよい。
【0054】
例えば、制御装置100は、指示値IVと測定値PVの組み合わせが領域Aに位置する場合に、予め定められた操作可能範囲のうち、最大の操作量MVで制御対象310を制御する。また、制御装置100は、指示値IVと測定値PVの組み合わせが領域Bに位置する場合に、予め定められた操作可能範囲のうち、最小の操作量MVで制御対象310を制御してよい。
【0055】
本例では、実際にフルアクセル・フルブレーキ制御によって系が安定するときの軌跡を示している。例えば、予め定められた初期状態aから操作量マップに基づいてフルブレーキ制御を行うことにより、系が最終的に安定状態cに安定している。同様に、予め定められた初期状態bからフルアクセル制御を行うことにより、系が同じ安定状態cに安定している。
【0056】
図4Bは、実施例に係る制御装置100による制御方法の一例を示す。本例では、シミュレータ上で「三段水槽」と呼ばれる1次遅れ系の水位をコントロールする場合の制御結果を示す。本例では、フルアクセル・フルブレーキによる制御により、
図5に示すようなPID制御よりも速く予め定められた目標値SVに収束している。このように、本例の制御装置100は、制御データを用いて適切な操作量MVに設定しているので、オーバーシュートを回避して、高速な制御を実現できる。
【0057】
図4Cは、機械学習を用いた操作量マップの生成方法の一例を示す。操作量マップは、予め定められた強化学習アルゴリズムを用いて生成されてよい。本例の操作量マップは、カーネルダイナミックポリシープログラミング法(Kernel Dynamic Policy Programming、KDPP)を用いて生成されるがこれに限定されない。
【0058】
評価関数は、例えば、f(t)=|測定値PV(t)-目標値SV|等の関数を用いる。操作量MVは、-MAXから+MAXまでの間の数点を取って、強化学習の出力値とする。KDPPでは1入力、1出力の系での学習を十分に行えば、最終的に強化学習モデルは+MAXおよび-MAXの2値のみを使用したモデルに収束する。そして、生成された強化学習モデルに、指示値IVと測定値PVの組み合わせを与え、操作量MV(+MAXまたは-MAX)を算出してグラフにすることで、操作量マップが生成される。
【0059】
図5は、比較例に係る制御方法の一例を示す。本例では、1つの操作量MVと1つの測定値PVとの単入力単出力に対する制御アルゴリズムとしてPID制御を用いている。
【0060】
ここで、PID制御では、安定した制御を実現できる一方で、目標値SVに達するまでの時間が最適なものではない。PID制御は、系の微分方程式をラプラス変換し、代数方程式に変換して算出される解であり、一般形としては指数関数あるいは三角関数の組み合わせといった、滑らかな関数が解空間を形成する。しかしながら、単三角波はラプラス変換しても指数関数の項が残り代数方程式にならないので、単三角波のような解は除外されている。
【0061】
これに対して、フルアクセル・フルブレーキを用いた制御は、単三角波の解の足し合わせであり、これは従来使用されているラプラス変換では考慮されていない。つまり、ラプラス変換を用いた手法では、フルアクセル・フルブレーキを用いた最速制御解を算出できない。したがって、比較例のPID制御では、オーバーシュートの発生によって高速な制御を実行することが困難である。
【0062】
なお、高度制御などによりフルアクセル・フルブレーキに近似した制御を実現することも考えられるが、複雑なパラメータ調整が必要となるので、処理能力が小さなマイコンで動作可能な小型なコントローラに搭載して使用することが困難である。本例の制御装置100は、シングルループコントローラのPID計算を実行する構成と置き換えられてよく、アナログ信号処理またはデジタル信号処理などの構成は既存のものと同じであってよい。制御装置100は、小型のコントローラにも搭載することができる。
【0063】
図6Aは、学習処理装置200の実施形態の一例を示す。学習処理装置200は、シミュレータ250を備える。シミュレータ250は、学習処理装置200の外部に設けられてもよい。
【0064】
シミュレータ250は、予め定められた指示値IVおよび測定値PVを状態データ取得部210に供給する。例えば、シミュレータ250は、任意のシステム同定技術により系の実測データなどを用いて作成される。本例の学習処理装置200は、シミュレータ250を用いた機械学習により制御モデル235を生成する。これにより、本例の学習処理装置200は、制御対象310がより複雑な系の場合であっても、シミュレータ250を用いて学習処理を実現できる。
【0065】
図6Bは、学習処理装置200の実施形態の一例を示す。本例の制御用データ取得部20は、設備300から取得した指示値IVおよび測定値PVを状態データとして、機械学習により、制御モデル235を生成する。本例の学習処理装置200は、制御対象310に応じたシミュレータ250の生成が困難な場合においても、制御モデル235を生成することができる。実際の系を用いて生成された制御用データは、シミュレータ250等の他の方法を用いて生成された制御用データと組み合わせて用いられてよい。即ち、複数の操作量マップには、異なる方法によって機械学習された操作量マップが含まれていてもよい。
【0066】
図7は、本発明の複数の態様が全体的又は部分的に具現化されてよいコンピュータ2200の例を示す。コンピュータ2200にインストールされたプログラムは、コンピュータ2200に、本発明の実施形態に係る装置に関連付けられる操作又は当該装置の1又は複数のセクションとして機能させることができ、又は当該操作又は当該1又は複数のセクションを実行させることができ、及び/又はコンピュータ2200に、本発明の実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ2200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定の操作を実行させるべく、CPU2212によって実行されてよい。
【0067】
本実施形態によるコンピュータ2200は、CPU2212、RAM2214、グラフィックコントローラ2216、及びディスプレイデバイス2218を含み、それらはホストコントローラ2210によって相互に接続されている。コンピュータ2200はまた、通信インタフェース2222、ハードディスクドライブ2224、DVD-ROMドライブ2226、及びICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ2220を介してホストコントローラ2210に接続されている。コンピュータはまた、ROM2230及びキーボード2242のようなレガシの入/出力ユニットを含み、それらは入/出力チップ2240を介して入/出力コントローラ2220に接続されている。
【0068】
CPU2212は、ROM2230及びRAM2214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ2216は、RAM2214内に提供されるフレームバッファ等又はそれ自体の中にCPU2212によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス2218上に表示されるようにする。
【0069】
通信インタフェース2222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ2224は、コンピュータ2200内のCPU2212によって使用されるプログラム及びデータを格納する。DVD-ROMドライブ2226は、プログラム又はデータをDVD-ROM2201から読み取り、ハードディスクドライブ2224にRAM2214を介してプログラム又はデータを提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
【0070】
ROM2230はその中に、アクティブ化時にコンピュータ2200によって実行されるブートプログラム等、及び/又はコンピュータ2200のハードウェアに依存するプログラムを格納する。入/出力チップ2240はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ2220に接続してよい。
【0071】
プログラムが、DVD-ROM2201又はICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ2224、RAM2214、又はROM2230にインストールされ、CPU2212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ2200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ2200の使用に従い情報の操作又は処理を実現することによって構成されてよい。
【0072】
例えば、通信がコンピュータ2200及び外部デバイス間で実行される場合、CPU2212は、RAM2214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース2222に対し、通信処理を命令してよい。通信インタフェース2222は、CPU2212の制御下、RAM2214、ハードディスクドライブ2224、DVD-ROM2201、又はICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【0073】
また、CPU2212は、ハードディスクドライブ2224、DVD-ROMドライブ2226(DVD-ROM2201)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM2214に読み取られるようにし、RAM2214上のデータに対し様々なタイプの処理を実行してよい。CPU2212は次に、処理されたデータを外部記録媒体にライトバックする。
【0074】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU2212は、RAM2214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM2214に対しライトバックする。また、CPU2212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU2212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0075】
上で説明したプログラム又はソフトウェアモジュールは、コンピュータ2200上又はコンピュータ2200近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバーシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ2200に提供する。
【0076】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0077】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0078】
10・・・入力データ取得部、20・・・制御用データ取得部、30・・・算出部、32・・・スケーリング部、34・・・マップ選択部、36・・・決定部、38・・・逆スケーリング部、40・・・出力部、50・・・100・・・制御装置、200・・・学習処理装置、210・・・状態データ取得部、220・・・学習処理部、230・・・生成部、235・・・制御モデル、240・・・供給部、250・・・シミュレータ、300・・・設備、310・・・制御対象、2200・・・コンピュータ、2201・・・DVD-ROM、2210・・・ホストコントローラ、2212・・・CPU、2214・・・RAM、2216・・・グラフィックコントローラ、2218・・・ディスプレイデバイス、2220・・・入/出力コントローラ、2222・・・通信インタフェース、2224・・・ハードディスクドライブ、2226・・・DVD-ROMドライブ、2230・・・ROM、2240・・・入/出力チップ、2242・・・キーボード