IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝電機サービス株式会社の特許一覧

特開2024-5586プラント制御システム、制御装置、制御方法、およびプログラム
<>
  • 特開-プラント制御システム、制御装置、制御方法、およびプログラム 図1
  • 特開-プラント制御システム、制御装置、制御方法、およびプログラム 図2
  • 特開-プラント制御システム、制御装置、制御方法、およびプログラム 図3
  • 特開-プラント制御システム、制御装置、制御方法、およびプログラム 図4
  • 特開-プラント制御システム、制御装置、制御方法、およびプログラム 図5
  • 特開-プラント制御システム、制御装置、制御方法、およびプログラム 図6
  • 特開-プラント制御システム、制御装置、制御方法、およびプログラム 図7
  • 特開-プラント制御システム、制御装置、制御方法、およびプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024005586
(43)【公開日】2024-01-17
(54)【発明の名称】プラント制御システム、制御装置、制御方法、およびプログラム
(51)【国際特許分類】
   G05B 13/02 20060101AFI20240110BHJP
   G05B 13/04 20060101ALI20240110BHJP
   G06N 20/00 20190101ALI20240110BHJP
【FI】
G05B13/02 L
G05B13/04
G06N20/00
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022105830
(22)【出願日】2022-06-30
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】秦 洋
(72)【発明者】
【氏名】高野 俊也
(72)【発明者】
【氏名】横川 勝也
(72)【発明者】
【氏名】岡崎 吉倫
(72)【発明者】
【氏名】斗成 聡一
(72)【発明者】
【氏名】君島 和彦
【テーマコード(参考)】
5H004
【Fターム(参考)】
5H004GA18
5H004GB08
5H004KC35
5H004KC37
(57)【要約】
【課題】 学習時間を少なくしつつ制御精度を高めること。
【解決手段】 実施形態の制御装置は、制御対象が実動することにより生じる制御量の測定値と前記制御量の制御指令値とを入力し、前記制御対象に対する第1の操作量を出力する基本制御部と、前記制御量の測定値と前記制御量の制御指令値とを入力するとともに、前記第1の操作量を入力し、所定のモデルを用いて前記第1の操作量を教師データとする強化学習を行い、前記制御対象に対する第2の操作量を出力する第1の強化学習制御部と、を含む第1の制御部と、前記測定値と前記制御指令値とを入力し、前記強化学習が行われた前記所定のモデルを用いてさらに強化学習を行い、前記制御対象に対する第3の操作量を出力する第2の強化学習制御部を含む第2の制御部と、前記測定値と前記制御指令値との偏差に基づき、前記第1の制御部と前記第2の制御部のいずれか一方を選択して動作させる選択部とを具備する。
【選択図】 図2
【特許請求の範囲】
【請求項1】
制御対象が実動することにより生じる制御量の測定値と前記制御量の制御指令値とを入力し、前記制御対象に対する第1の操作量を出力する基本制御部と、
前記制御量の測定値と前記制御量の制御指令値とを入力するとともに、前記第1の操作量を入力し、所定のモデルを用いて前記第1の操作量を教師データとする強化学習を行い、前記制御対象に対する第2の操作量を出力する第1の強化学習制御部と、
を含む第1の制御部と、
前記測定値と前記制御指令値とを入力し、前記強化学習が行われた前記所定のモデルを用いてさらに強化学習を行い、前記制御対象に対する第3の操作量を出力する第2の強化学習制御部を含む第2の制御部と、
前記測定値と前記制御指令値との偏差に基づき、前記第1の制御部と前記第2の制御部のいずれか一方を選択して動作させる選択部と
を具備する、制御装置。
【請求項2】
前記選択部は、
前記偏差を一定時間平均した平均偏差が、所定の偏差閾値を超える場合、前記第1の制御部を動作させ、
前記平均偏差が、前記偏差閾値を超えない場合、前記第2の制御部を動作させる、
請求項1に記載の制御装置。
【請求項3】
前記第1の強化学習制御部は、
前記所定のモデルを用いて前記第1の操作量を学習し、その学習した結果を経験データとして後で使用するために記憶部に蓄積する、
請求項1に記載の制御装置。
【請求項4】
前記第1の強化学習制御部は、
前記第2の操作量と前記第1の操作量との偏差が小さいほど報酬を上げる報酬加算処理を行うとともに、前記報酬を用いた強化学習を行い、前記第2の操作量を出力する、
請求項3に記載の制御装置。
【請求項5】
前記第2の強化学習制御部は、
前記報酬から前記第1の操作量の影響を徐々に下げる報酬減算処理を行うとともに、前記報酬を用いた強化学習を行い、前記第3の操作量を出力する、
請求項4に記載の制御装置。
【請求項6】
第1の制御部が、
基本制御部により、制御対象が実動することにより生じる制御量の測定値と前記制御量の制御指令値とを入力し、前記制御対象に対する第1の操作量を出力することと、
第1の強化学習制御部により、前記制御量の測定値と前記制御量の制御指令値とを入力するとともに、前記第1の操作量を入力し、所定のモデルを用いて前記第1の操作量を教師データとする強化学習を行い、前記制御対象に対する第2の操作量を出力することと、
第2の制御部が、
第2の強化学習制御部により、前記測定値と前記制御指令値とを入力し、前記強化学習が行われた前記所定のモデルを用いてさらに強化学習を行い、前記制御対象に対する第3の操作量を出力することと、
選択部が、前記測定値と前記制御指令値との偏差に基づき、前記第1の制御部と前記第2の制御部のいずれか一方を選択して動作させることと
を含む、制御方法。
【請求項7】
コンピュータに、
制御対象が実動することにより生じる制御量の測定値と前記制御量の制御指令値とを入力し、前記制御対象に対する第1の操作量を出力する基本制御機能と、
前記制御量の測定値と前記制御量の制御指令値とを入力するとともに、前記第1の操作量を入力し、所定のモデルを用いて前記第1の操作量を教師データとする強化学習を行い、前記制御対象に対する第2の操作量を出力する第1の強化学習制御機能と、
を含む協調制御機能と、
前記測定値と前記制御指令値とを入力し、前記強化学習が行われた前記所定のモデルを用いてさらに強化学習を行い、前記制御対象に対する第3の操作量を出力する第2の強化学習制御機能を含む単体制御機能と、
前記測定値と前記制御指令値との偏差に基づき、前記協調制御機能と前記単体制御機能のいずれか一方を選択して動作させる選択機能と
を実現させるためのプログラム。
【請求項8】
プラントにおける制御対象が実動することにより生じる制御量を測定する検出器と、
前記制御量に影響を与える機器と、
制御装置と
を具備し、
前記制御装置は、
前記検出器により測定される前記制御量の測定値と前記制御量の制御指令値とを入力し、前記機器に対する第1の操作量を出力する基本制御部と、
前記制御量の測定値と前記制御量の制御指令値とを入力するとともに、前記第1の操作量を入力し、所定のモデルを用いて前記第1の操作量を教師データとする強化学習を行い、前記機器に対する第2の操作量を出力する第1の強化学習制御部と、
を含む第1の制御部と、
前記測定値と前記制御指令値とを入力し、前記強化学習が行われた前記所定のモデルを用いてさらに強化学習を行い、前記機器に対する第3の操作量を出力する第2の強化学習制御部を含む第2の制御部と、
前記測定値と前記制御指令値との偏差に基づき、前記第1の制御部と前記第2の制御部のいずれか一方を選択して動作させる選択部と
を備える、プラント制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、プラント制御システム、制御装置、制御方法、およびプログラムに関する。
【背景技術】
【0002】
プラントでは、プロセスで生じる複雑な事象の変化に対応した適切な制御が求められる。例えば古典的な制御技術としてPI(Proportional Integral)制御やPID(Proportional Integral Derivative)制御といった技術があるが、これらの制御技術は環境によっては外乱を抑制するため操作量補償などの工夫を要する。一方、高い制御精度を実現する技術として、自動制御の最適化運用を支援する機械学習の一種である強化学習(reinforcement learning)が注目されているが、計算量の多さや学習時間の長さがプラント制御への適用を阻んでいる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2020-187489号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、学習時間を少なくしつつ制御精度を高めることができる、プラント制御システム、制御装置、制御方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【0005】
実施形態の制御装置は、制御対象が実動することにより生じる制御量の測定値と前記制御量の制御指令値とを入力し、前記制御対象に対する第1の操作量を出力する基本制御部と、前記制御量の測定値と前記制御量の制御指令値とを入力するとともに、前記第1の操作量を入力し、所定のモデルを用いて前記第1の操作量を教師データとする強化学習を行い、前記制御対象に対する第2の操作量を出力する第1の強化学習制御部と、を含む第1の制御部と、前記測定値と前記制御指令値とを入力し、前記強化学習が行われた前記所定のモデルを用いてさらに強化学習を行い、前記制御対象に対する第3の操作量を出力する第2の強化学習制御部を含む第2の制御部と、前記測定値と前記制御指令値との偏差に基づき、前記第1の制御部と前記第2の制御部のいずれか一方を選択して動作させる選択部とを具備する。
【図面の簡単な説明】
【0006】
図1図1は、実施形態に係るプラント制御システムを含む構成の一例を示す図である。
図2図2は、制御装置10の詳細な機能構成の一例を示す図である。
図3図3は、選択部101の機能構成の一例を示す図である。
図4図4は、強化学習とPI制御の協調制御部60の機能構成の一例を示す図である。
図5図5は、補償報酬演算部80の機能構成の一例を示す図である。
図6図6は、強化学習単体制御部70の機能構成の一例を示す図である。
図7図7は、補償報酬削除演算部90の機能構成の一例を示す図である。
図8図8は、実施形態による動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0007】
以下、図面を参照して、実施の形態について説明する。
【0008】
(システム構成)
図1は、実施形態に係るプラント制御システムを含む構成の一例を示す図である。
【0009】
ここでは、本実施形態に係るプラント制御システムを、下水道処理設備に適用した例を示す。但し、本実施形態の水処理システムは、下水道処理設備に限らず、別の種類のプラント設備に適用することが可能である。また、本実施形態では、制御の対象を下水道処理設備の曝気システムとし、曝気槽中の溶存酸素濃度(Dissolved Oxygen:DO)を制御する例を示すが、この例に限らず、制御の対象や制御する物理量はそれぞれ別のものとすることが可能である。
【0010】
図1に示されるプラント制御システム1は、制御装置10と、下水道処理設備20の少なくとも一部(例えば、風量制御弁24およびDO検出器25)と、入出力インタフェース部30とを含む。図1では、入出力インタフェース部30が制御装置10に設けられる例が示されているが、この例に限らず、入出力インタフェース部30は制御装置10の外部に設けられてもよい。
【0011】
制御装置10は、下水道処理設備20側の曝気槽21内の溶存酸素濃度を制御するものであり、PI制御部40および強化学習制御部50を含む。
【0012】
PI制御部40は、比例積分(PI)制御器に相当するものである。強化学習制御部50は、強化学習を行う機能を有するものである。PI制御部40および強化学習制御部50の詳細については後で述べる。
【0013】
下水道処理設備20は、曝気システム20Aを備え、曝気システム20Aは、曝気槽21、送風機22、散気管23、風量制御弁24、およびDO検出器25を含む。
【0014】
曝気槽21には、送風機22から供給されるエアーが散気管23を通じて送り込まれるように構成されている。曝気槽21に送り込まれるエアーの風量は風量制御弁24により制御される。また、曝気槽21内の溶存酸素濃度は、DO検出器25により測定されるように構成されている。すなわち、DO検出器25は、曝気システム20Aが実動することにより生じる曝気槽21中の溶存酸素濃度を測定する。DO検出器25によって測定された曝気槽21中の溶存酸素濃度の測定値は、入出力インタフェース部30を介して制御装置10側へ伝えられる。
【0015】
入出力インタフェース部30は、制御装置10と下水道処理設備20とを接続するインタフェース機能であり、下水道処理設備20側から得られる溶存酸素濃度の測定値を入力して制御装置10側へ出力したり、制御装置10側から得られる風量の操作量を入力して下水道処理設備20側へ出力したりする。
【0016】
下水道処理設備20側では、曝気槽21中の溶存酸素濃度が、曝気槽21での微生物反応によって変動し、曝気槽21に送り込まれるエアーの風量によっても変動する。本実施形態では、曝気槽21中の溶存酸素濃度を一定に保つため、散気管23を通るエアーの風量が操作される。風量の操作は風量制御弁24の開閉によって実現される。すなわち、風量制御弁24は曝気槽21中の溶存酸素濃度に影響を与える機器である。風量制御弁24の開度は、入出力インタフェース部30から送られてくる操作量に応じて変化する。
【0017】
(制御量、制御指令値、操作量、測定値)
本実施形態では、制御対象が実動することにより生じる物理量を制御量と呼ぶ。制御量は、図1の例では、制御対象である曝気システム20Aの曝気槽21中の溶存酸素濃度に該当する。
【0018】
また、本実施形態では、制御量の目標値を制御指令値と呼ぶ。制御指令値は、図1の例では、曝気槽21中の溶存酸素濃度の制御指令値DO_refに該当する。
【0019】
また、本実施形態では、制御量に影響を与える機器を操作する量を操作量と呼ぶ。操作量は、図1の例では、曝気槽21に送り込まれるエアーの風量を制御する風量制御弁24の操作量blow(但し、後述する制御装置10内では操作量blow_RLまたは操作量blow_PI)に該当する。
【0020】
また、本実施形態では、制御量の検出値を測定値と呼ぶ。測定値は、図1の例では、DO検出器25により検出される曝気槽21中の溶存酸素濃度の測定値DO_mに該当する。
【0021】
(制御装置10の詳細な機能構成)
図2に、制御装置10の詳細な機能構成の一例を示す。
【0022】
制御装置10は、上記した入出力インタフェース部30を有するほか、強化学習とPI制御の協調制御部60(第1の制御部)、強化学習単体制御部70(第2の制御部)、および選択部101を有する。
【0023】
強化学習とPI制御の協調制御部60、強化学習単体制御部70、および選択部101のそれぞれの機能は、コンピュータに備えられる中央演算装置等のプロセッサが実行するプログラムとして実現される。
【0024】
強化学習とPI制御の協調制御部60(以降、「協調制御部60」と略称する場合がある)は、PI制御部(基本制御部)40および強化学習制御部(第1の強化学習制御部)50Aを含む。
【0025】
PI制御部40は、DO検出器25により測定された溶存酸素濃度の測定値DO_mと溶存酸素濃度の制御指令値DO_refとを入力し、風量制御弁24に対する操作量(第1の操作量)blow_PIを演算して出力する機能である。PI制御部40で演算された操作量blow_PIは、強化学習に使用する教師データとして強化学習制御部50Aに供給される。
【0026】
強化学習制御部50Aは、前述した図1中の強化学習制御部50が有する機能の一部であり、溶存酸素濃度の測定値DO_mと溶存酸素濃度の制御指令値DO_refとを入力するとともに、操作量blow_PIを入力し、所定のモデル(強化学習モデル)を用いて操作量blow_PIを教師データとする強化学習を行い、風量制御弁24に対する操作量(第2の操作量)blow_RLを出力する機能である。この強化学習では、操作量blow_PIを教師データとして使用することでPI制御の動作を模倣する模倣学習が行われる。これにより、強化学習単体で操作量blow_RLを探索する場合よりも速く、制御指令値DO_refとの偏差を一定以内とする操作量blow_RLが得られる。
【0027】
強化学習単体制御部70(以降、「単体制御部70」と略称する場合がある)は、強化学習制御部(第2の強化学習制御部)50Bを含む。
【0028】
強化学習制御部50Bは、前述した図1中の強化学習制御部50が有する機能の一部であり、DO検出器25により測定された溶存酸素濃度の測定値DO_mと溶存酸素濃度の制御指令値DO_refとを入力し、強化学習が行われた上記所定のモデルを用いてさらに強化学習を行い、風量制御弁24に対する操作量(第3の操作量)blow_RLを出力する機能である。この強化学習では、協調制御部60で強化学習が行われた上記所定のモデルを用いてさらに強化学習を行うに際し、強化学習本来のランダム探索により当該所定のモデルを更新する強化学習が行われる。これにより、強化学習本来の特徴を活かした制御精度の良い操作量blow_RLが得られる。
【0029】
選択部101は、DO検出器25により測定された溶存酸素濃度の測定値DO_mと溶存酸素濃度の制御指令値DO_refとの偏差に基づき、協調制御部60と単体制御部70のいずれか一方を選択して動作させる機能である。
【0030】
具体的には、選択部101は、溶存酸素濃度の制御指令値DO_refと、強化学習中に曝気システム20Aが実動することにより生じる溶存酸素濃度の測定値DO_mとに基づき、協調制御部60と単体制御部70のいずれか一方を選択する強化学習制御方式選択信号SELを出力する。協調制御部60と単体制御部70とは、それぞれ、強化学習制御方式選択信号SELに応じて起動される。
【0031】
なお、選択部101は、代わりにハードウェアによるスイッチとして実現してもよい。その場合、ユーザが手動でスイッチを操作することにより協調制御部60と単体制御部70のいずれを動作させるかを選択できるように構成してもよい。
【0032】
(選択部101の機能構成)
図3に、選択部101の機能構成の一例を示す。
【0033】
選択部101は、偏差平均値演算部31および制御選択部32を含む。選択部101は制御指令値DO_refと、強化学習中に曝気システム20Aが実動することによって生じる測定値DO_mとの偏差DO_errを算出し、偏差平均値演算部31および制御選択部32を通じて、上述した強化学習制御方式選択信号SELを生成する。
【0034】
偏差平均値演算部31に入力される偏差DO_errは、強化学習中は1制御ステップ単位で(単位時間毎に)演算される。しかし、強化学習において未知探索時はランダム性が高い。そこで、偏差平均値演算部31は、強化学習の制御効果をより正確に反映するため、一定時間内の偏差DO_errを平均して、平均偏差DO_err_avgを算出する。
【0035】
制御選択部32は、偏差平均値演算部31により算出された平均偏差DO_err_avgに応じて、強化学習制御方式選択信号SELを変える。より具体的には、平均偏差DO_err_avgが、事前設定した偏差閾値thold_modeを超える場合、強化学習の制御精度が不十分と判定し、PI制御の動作を模倣する模倣学習を行う協調制御部60を選択する強化学習制御方式選択信号SELを生成する。一方、平均偏差DO_err_avgが、偏差閾値thold_modeを超えない場合(すなわち、偏差閾値thold_mode以下である場合)は、協調制御部60により強化学習の制御精度が一定以上に達したと判定し、強化学習単体制御部70を選択する強化学習制御方式選択信号SELを生成する。
【0036】
すなわち、選択部101は、偏差DO_errを一定時間平均した平均偏差DO_err_avgが、所定の偏差閾値thold_modeを超える場合、協調制御部60を動作させる。一方、選択部101は、平均偏差DO_err_avgが、偏差閾値thold_modeを超えない場合(すなわち、偏差閾値thold_mode以下である場合)、単体制御部70を動作させる。
【0037】
(強化学習とPI制御の協調制御部60の機能構成)
図4に、強化学習とPI制御の協調制御部60の機能構成の一例を示す。
【0038】
協調制御部60は、制御においてPI制御部40および強化学習制御部50Aを用いる。
【0039】
PI制御部40は、PI制御起動部401およびPI制御演算部402を含む。強化学習制御部50Aは、補償報酬演算部80、強化学習部501、記憶部502、および操作量選択部503を含む。
【0040】
PI制御部40のPI制御起動部401には、選択部101から出力される強化学習制御方式選択信号SELが入力されるようになっている。PI制御演算部402には、制御指令値DO_refと、DO検出器25により測定された測定値DO_mとが入力されるようになっている。
【0041】
強化学習制御部50Aにも、選択部101から出力される強化学習制御方式選択信号SELが入力されるようになっている。
【0042】
また、強化学習制御部50Aには、操作量blow_RL(当該強化学習制御部50Aから出力される操作量blow_RLの帰還信号)と、制御指令値DO_refと、DO検出器25により測定された測定値DO_mとが入力されるようになっている。
【0043】
選択部101が協調制御部60を選択する強化学習制御方式選択信号SELを出力した場合、PI制御部40および強化学習制御部50Aの両方が起動される。
【0044】
先に、PI制御部40について説明する。
【0045】
協調制御部60を選択する強化学習制御方式選択信号SELがPI制御部40に送られると、PI制御部40のPI制御起動部401が起動し、PI制御演算部402を動作させる。PI制御演算部402は、溶存酸素濃度の制御指令値DO_refと測定値DO_mとに基づき、操作量blow_PIを演算するPI制御を行う。この演算により算出された操作量blow_PIは、強化学習制御部50Aに入力される。
【0046】
次に、強化学習制御部50Aについて説明する。
【0047】
協調制御部60を選択する強化学習制御方式選択信号SELが強化学習制御部50Aに送られると、強化学習制御部50Aは、PI制御部40が出力する操作量blow_PIを用いた強化学習を開始する。
【0048】
例えば、強化学習制御部50Aは、強化学習部501により上記所定のモデルを用いて操作量blow_PIを学習し、その学習した結果を経験データとして後で使用するために記憶部502に設けられたリプレイバッファに蓄積する処理を行う。
【0049】
記憶部502は、例えばRAM(Random Access Memory)、フラッシュメモリ等の半導体メモリ素子、ハードディスク等により実現される。この記憶部502に設けられるリプレイバッファは、例えば深層強化学習において学習を安定化させるために用いられる。
【0050】
また、強化学習制御部50Aは、操作量選択部503により、PI制御部40が出力する操作量blow_PIと、強化学習部501が出力する操作量pred_blow_RLとのうちのいずれか一方を所定の基準に基づき選択し、選択した方を強化学習部501経由で記憶部502のリプレイバッファに供給する。
【0051】
また、強化学習制御部50Aは、操作量選択部503により、記憶部502のリプレイバッファに蓄積される操作量blow_PIのデータ数が所定の設定値以上になったか否かを判定する処理を行う。
【0052】
また、強化学習制御部50Aは、記憶部502のリプレイバッファに蓄積される操作量blow_PIのデータ数が所定の設定値以上になった場合、補償報酬演算部80により操作量blow_RLと操作量blow_PIとの偏差が小さいほど報酬を上げる報酬加算処理を行うとともに、その報酬を用いる強化学習を強化学習部501により行って操作量pred_blow_RLを出力し、操作量選択部503経由で操作量blow_RLをインタフェース部30側へ出力する処理を行う。
【0053】
強化学習部501は、制御指令値DO_refおよび測定値DO_mに示される溶存酸素濃度等の状態を観測し、報酬rの合計が最大になるような操作量を学習する。
【0054】
(強化学習部501での強化学習)
強化学習部501の処理を説明するため、一例として直接方策探索法(direct policy Search: DPS)の一種である方策勾配法(policy gradient method)を用いる。ただし、本実施形態に係る強化学習は、方策勾配法に限定されるものではなく、その他の探索アルゴリズムを用いても良い。
【0055】
方策勾配法は、強化学習エージェントの行動確率をニューラルネットワークで表現するための学習手法である。方策(policy)を探索するために、状態(state)、行動(action)、報酬(reward)の3要素が使用される。離散時間ステップtのときの状態をs、行動をa、確率的方策関数(stochastic policy function)をπ(a|s)とする。強化学習部501は、状態sを観測して行動aを実行し、遷移の結果、即時報酬rを受け取る。行動選択において確率的方策を特徴付ける確率的方策関数π(a|s)は、状態sにおいて行動aを選択する確率を表す。すなわち、強化学習部501は、状態sに応じた方策の確率πに従った行動aを実行する。これにより、状態sから状態st+1に確率的方策関数π(a|s)に従い遷移する。
【0056】
報酬rは遷移先の状態st+1に含まれるステップt+1の制御指令値DO_refと測定値DO_mとの偏差DO_errの絶対値に基づき、報酬演算部80により演算される。強化学習部501は、方策的確率π(a|s)についての情報は事前に与えられておらず、強化学習の目的は価値の最大化を達成するように方策的確率πの学習を行う。すなわち、強化学習部501は、下記の式(1)に示すように、割引報酬合計による評価値Vπ(s)を最大化する確率的方策関数πを学習する。
【0057】
【数1】
【0058】
ここで、γは割引率(但し、0≦γ≦1)であり、未来の報酬の重要度を示す。またE[ ]は期待値演算を表す。
【0059】
ここでは、強化信号としてTD_errが計算される。TD_errは状態遷移による評価値Vπ(s)の変化を示す。強化学習部501の学習においては、TD_errを行動評価として確率的方策関数π(a|s)を改善する。すなわち、強化学習部501は、TD_errが正の時、良い状態に遷移したと考えられるので、状態sにおける行動aの選択確率を増やす。逆に、強化学習部501は、TD_errが負の時、状態sにおける行動aの選択確率を減らす。
【0060】
行動選択率を特徴付ける確率的方策関数π(a|s)は、方策パラメータベクトルθを用いて表される。すなわち、確率的方策関数π(a|s)は、方策パラメータベクトルθを含んで表現される。
【0061】
強化学習部501は、方策パラメータベクトルθを調節することで行動選択確率を変化させる。例えば強化学習部501は、下記の式(2)に示すように、目的関数を最大化するため方策パラメータθを更新する。ηは学習係数であり、η>0である。
【0062】
【数2】
【0063】
これにより、強化学習部501は、ステップπの状態sに対して、学習で改善した確率的方策関数πに基づいて、ステップt+1に適した操作量pred_blow_RLを決定する。
【0064】
記憶部502は、強化学習部501が強化学習で獲得したデータ{s,a,r,st+1}を行動遷移としてリプレイバッファに蓄積する。そして、強化学習部501は、学習する際にリプレイバッファに蓄積したデータを繰り返しランダムサンプリングして利用する。
【0065】
操作量選択部503は、上記したようにPI制御部40が出力した操作量blow_PIと、強化学習部501が出力した操作量pred_blow_RLと、のうちのいずれか一方を所定の基準に基づき選択し、選択した方を強化学習部501経由で記憶部502のリプレイバッファに供給する。学習開始時、リプレイバッファの中身は空である。一方、強化学習初期は、行動遷移が殆どランダムになる。このとき、強化学習部501が初期に獲得したデータ{s,a,r,st+1}の制御性能は低い。その制御性能が低いデータをリプレイバッファに蓄積して最適な方策ネットワークを学習するのには時間がかかる。そのため、本実施形態では、強化学習を開始する時、操作量選択部503により、強化学習部501での行動をPI制御の行動に置き換える。そのPI制御の行動から取得した結果をリプレイバッファに蓄積し、方策ネットワークでの学習の効率を高める。
【0066】
(補償報酬演算部80の機能構成)
図5に、補償報酬演算部80の機能構成の一例を示す。
【0067】
補償報酬演算部80は、報酬演算部801および報酬加算部802を含む。
【0068】
補償報酬演算部801は、強化学習中の操作量blow_RLを用いて、制御指令値DO_refと強化学習中の操作量blow_RLとの偏差を最小化するような報酬r_orgを演算して出力する。
【0069】
報酬加算部802は、強化学習中の操作量blow_RLとPI制御の操作量blow_PIとの偏差blow_diffを補償報酬r_addとし、この補償報酬r_addを、報酬演算部801が出力する報酬r_orgに加算する。報酬rは、下記の式(3)により計算される。
【0070】
r = -(r_org + r_add) …(3)
例えば、強化学習による操作量blow_RLとPI制御による操作量blow_PIの偏差blow_diffとは、補償報酬r_addと正の相関関係がある。ここで、もし強化学習による操作量blow_RLがPI制御による操作量blow_PIから離れると、補償報酬r_addが増加し、報酬rが減少する。一方、強化学習による操作量blow_RLがPI制御による操作量blow_PIに近づくと、補償報酬r_addが減少し、報酬rが増加する。
【0071】
強化学習部501は、報酬rの合計が最大になるような行動aを学習するため、PI制御による操作量blow_PIと近い行動aを選択して方策ネットワークを更新する。一般の強化学習では、報酬を最大化するための行動を学習するが、膨大な状態と行動の組み合わせから最適な行動を学習するのには時間がかかる。これに対し、本実施形態では、強化学習部501はPI制御の方策を模倣するため、ランダムな行動ベースの方策よりも学習時間が少なく効率的に方策ネットワークを学習することができる。
【0072】
(強化学習単体制御部70の機能構成)
図6に、強化学習単体制御部70の機能構成の一例を示す。
【0073】
単体制御部70は、制御においてPI制御部40および強化学習制御部50Bを用いる。
【0074】
PI制御部40は、PI制御停止部403を含む。強化学習制御部50Bは、補償報酬削除演算部90、強化学習部501、および記憶部502を含む。これらのうち、強化学習制御部501および記憶部502は、図4で説明した強化学習制御部50Aが使用した強化学習制御部501および記憶部502と同じものである。但し、強化学習制御部50Bにおいては、記憶部502のリプレイバッファは、強化学習制御部50Aで行われた処理においてサンプリングデータが蓄積された状態にある。そのため、操作量選択部503を利用する必要がない。
【0075】
PI制御部40のPI制御停止部403には、選択部101から出力される強化学習制御方式選択信号SELが入力されるようになっている。
【0076】
強化学習制御部50Bにも、選択部101から出力される強化学習制御方式選択信号SELが入力されるようになっている。
【0077】
また、強化学習制御部50Aの補償報酬削除演算部90には、操作量blow_RL(当該強化学習制御部50Bから出力される操作量blow_RLの帰還信号)と、制御指令値DO_refと、DO検出器25により測定された測定値DO_mとが入力されるようになっている。
【0078】
選択部101が単体制御部70を選択する強化学習制御方式選択信号SELを出力した場合、PI制御部40でのPI制御の動作がPI制御停止部403によって停止され、強化学習制御部50Bが起動される。
【0079】
強化学習制御部50Bは、前述した報酬rからPI制御の操作量blow_PIの影響を徐々に下げる報酬減算処理を行うとともに、当該報酬rを用いる強化学習を行い、操作量blow_RLを出力する処理を行う。そのために、強化学習制御部50Bは、例えば強化学習で探索される操作量blow_RL、制御指令値DO_ref、測定値DO_m、および後述する遷移ステップ数に基づき、報酬rを演算する。
【0080】
(補償報酬削除演算部90の機能構成)
図7に、補償報酬削除演算部90の機能構成の一例を示す。
【0081】
補償報酬削除演算部90は、報酬演算部801および報酬減算部901を含む。
【0082】
報酬演算部801は、図5で説明した報酬演算部801と同じものである。
【0083】
報酬減算部901は、PI制御よりも優れる操作量を探索するために、PI制御の操作量blow_RLを用いて探索された操作量を、遷移ステップに応じて徐々に減らすための処理を行う。加算された補償報酬r_addの分をそのまま一度で減算して0にすると、強化学習部501の探索が不安定になることがある。そのため、本実施形態では、複数回に分けて1制御ステップ単位で(単位時間毎に)、加算された補償報酬を減らす。すなわち、PI制御および強化学習による制御(協調制御)から強化学習単体による制御(単体制御)への移行を徐々に行う。
【0084】
具体的には、1制御ステップ前の補償報酬をr_addとして保存し、そして、強化学習単体制御に遷移する場合には、下記の式(4)に示すように各制御ステップで減算する報酬の量(減算報酬)r_decを計算する。
【0085】
r_dec = (trans_step_count/trans_steps)・r_add …(4)
ここで、trans_stepsは、遷移ステップ数の設定値である。trans_step_countは、遷移開始してからの累積制御ステップ数であり、初期値を0とする。
【0086】
報酬rは、下記の式(5)に示すように計算する。
【0087】
r = -(r_org + r_add - r_dec) …(5)
ここで、r_orgは、報酬演算部801が演算した報酬であり、r_addは、遷移を開始する1制御ステップ前に加算した補償報酬である。遷移開始してから、r_decは制御回数に応じて増え、遷移終了までにはr_addと同じになる。そのため、制御の移行が終了したとき、協調制御で加算された補償報酬r_addの分は、報酬減算部901により取り除かれる。その後は、報酬演算部801でランダム探索による強化学習を行う。
【0088】
(フローチャートの例)
次に、図8のフローチャートを参照して、本実施形態による動作の一例を説明する。
【0089】
ここでは、主として協調制御から単体制御に移行する流れを例に説明するが、例えば、新規な環境へ適用する場合や、外乱が発生する場合、また制御指令値DO_refが変化する場合などにおいては、単体制御で学習した強化学習モデルの制御精度に応じて、選択部101での選択動作により単体制御から協調制御に戻って再学習を行うことも可能である。
【0090】
最初に、選択部101は、協調制御部60を選択する強化学習制御方式選択信号SELを出力するものとする。これにより、協調制御部60による協調制御が開始される(ステップS1)。
【0091】
但し、協調制御部60での学習開始時は、記憶部502のリプレイバッファの中身は空である。そこで、本実施形態では、操作量選択部503により、強化学習部501での行動をPI制御の行動に置き換えるため、PI制御の行動から取得した結果がリプレイバッファに蓄積される。
【0092】
PI制御部40は、DO検出器25により測定された測定値DO_mと制御指令値DO_refとに基づき、PI制御の操作量blow_PIを演算する(ステップS2)。操作量blow_PIは強化学習制御部50Aへ送られる。
【0093】
強化学習制御部50Aは、強化学習部501により、PI制御で演算された操作量blow_PIを学習し、学習後の操作量blow_PIを経験データとして記憶部502のリプレイバッファに蓄積する(ステップS3)。
【0094】
リプレイバッファ内の蓄積データ数が設定値以上になるまでは、上記ステップS2、S3の処理が繰り返される(ステップS2~S4)。
【0095】
リプレイバッファ内の蓄積データ数蓄積データ数が設定値以上になると、強化学習制御部50Aは、補償報酬演算部80により、操作量blow_RLと操作量blow_PIとの偏差が小さいほど報酬rを上げる報酬加算処理を行い(ステップS5)、強化学習部501により、その報酬rを用いる強化学習を行う(ステップS6)。すなわち、所定のモデルを用いて操作量blow_PIを教師データとする強化学習が行われる。この強化学習では、操作量blow_PIを教師データとして使用することでPI制御の動作を模倣する模倣学習が行われる。これにより、強化学習単体で操作量blow_RLを探索する場合よりも速く、制御指令値DO_refとの偏差を一定以内とする操作量blow_RLが得られる。
【0096】
操作量blow_RLと操作量blow_PIとの偏差DO_errを一定時間平均した平均偏差DO_err_avgが、偏差閾値thold_mode(第1の設定値)以下になるまでは、上記ステップS5、S6の処理が繰り返される(ステップS5~S7)。
【0097】
より具体的には、選択部101は、DO_err_avgが事前設定した偏差閾値thold_modeを超える場合、強化学習の制御精度が不十分と判定し、PI制御の動作を模倣する模倣学習を行う協調制御部60を選択する強化学習制御方式選択信号SELを生成する。一方、DO_err_avgが偏差閾値thold_modeを超えない場合(すなわち、偏差閾値thold_mode以下である場合)は、協調制御部60により強化学習の制御精度が一定以上に達したと判定し、強化学習単体制御部70を選択する強化学習制御方式選択信号SELを生成する。
【0098】
平均偏差DO_err_avgが、偏差閾値thold_mode(第1の設定値)以下になると、選択部101は、単体制御部70を選択する強化学習制御方式選択信号SELを出力する。これにより、協調制御部60による協調制御から、単体制御部70による単体制御への移行が開始される(ステップS8)。すなわち、PI制御よりも優れる操作量を探索するために、PI制御の操作量blow_PIを用いて探索された操作量を、遷移ステップに応じて徐々に減らすための処理が行われる。単体制御では、強化学習本来のランダム探索により上記所定のモデルを更新する強化学習が行われる。これにより、強化学習本来の特徴を活かした制御精度の良い操作量blow_RLが得られる。
【0099】
強化学習制御部50Bは、補償報酬削除演算部90により、前述した報酬rからPI制御の操作量blow_PIの影響を徐々に下げる報酬減算処理を行い(ステップS9)、強化学習部501により、当該報酬rを用いる強化学習を行う(ステップS10)。
【0100】
平均偏差DO_err_avgが、第2の設定値(上記第1の設定値より低い値)以下になるまでは、処理を終了せず、ステップS12へ進み、場合によってはステップS13へも進み、上記ステップS9、S10の処理が繰り返される(ステップS12、S13、S9~S11)。
【0101】
例えば、制御の環境や条件に一定以上変化があるか否かが判定され(ステップS12)、制御の環境や条件に一定以上変化が無ければ、ステップS9、S10の処理が繰り返され、制御の環境や条件に一定以上変化があれば、選択部101により協調制御への移行を行うか否かが判定される(ステップS13)。協調制御へ移行しない場合は、ステップS9、S10の処理が繰り返され、協調制御へ移行する場合は、ステップS1からの処理が繰り返される。
【0102】
ステップS11において、平均偏差DO_err_avgが第2の設定値以下になると、一連の処理が終了する。
【0103】
以上詳述したように、実施形態によれば、PI制御のような一般的な制御の動作を模倣する強化学習を行う協調制御と、PI制御のような一般的な制御よりも優れる操作量を探索する単体制御とを、選択的に使用することにより、学習時間を少なくしつつ制御精度を高めることができる。
【0104】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0105】
1…プラント制御システム、10…制御装置、20…下水道処理設備、20A…曝気システム、21…曝気槽、22…送風機、23…散気管、24…風量制御弁、25…DO検出器、30…入出力インタフェース部、31…偏差平均値演算部、32…制御選択部、40…PI制御部(基本制御部)、50…強化学習制御部、50A…強化学習制御部(第1の強化学習制御部)、50B…強化学習制御部(第2の強化学習制御部)、60…強化学習とPI制御の協調制御部、70…強化学習単体制御部、80…補償報酬演算部、90…補償報酬削除演算部、101…選択部、401…PI制御起動部、402…PI制御演算部、403…PI制御停止部、501…強化学習部、502…記憶部、503…操作量選択部、801…報酬演算部、802…報酬加算部、901…報酬減算部。
図1
図2
図3
図4
図5
図6
図7
図8