(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-25
(45)【発行日】2024-01-09
(54)【発明の名称】コントローラ、制御方法及び制御プログラム
(51)【国際特許分類】
G05B 13/04 20060101AFI20231226BHJP
【FI】
G05B13/04
(21)【出願番号】P 2021043802
(22)【出願日】2021-03-17
【審査請求日】2022-05-02
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】劉 琢
(72)【発明者】
【氏名】鹿子木 宏明
(72)【発明者】
【氏名】▲高▼見 豪
【審査官】田中 友章
(56)【参考文献】
【文献】特開2021-018825(JP,A)
【文献】特開2001-188602(JP,A)
【文献】国際公開第2018/179191(WO,A1)
【文献】特許第6833133(JP,B1)
【文献】特開平06-262234(JP,A)
【文献】特開平04-000602(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/04
(57)【特許請求の範囲】
【請求項1】
実際の制御対象のプロセスデータを取得する取得部と、
前記実際の制御対象の目標設定値及びパラメータの
うちの少なくとも
パラメータに基づいて、前記取得部によって取得されたプロセスデータを変換し、変換後のプロセスデータ
を学習済みモデル
に入力することによって、前記実際の制御対象の操作量を算出する算出部と、
を備え
るコントローラであって、
前記学習済みモデルは、特定の制御対象のプロセスデータが入力されると、前記特定の制御対象のプロセスデータを特定の目標設定値に近づけるための操作量を出力し、
前記パラメータは、前記実際の制御対象の操作量と、当該操作量によって得られるプロセスデータとの関係を特定するためのパラメータを含
み、
前記コントローラは、
前記実際の制御対象の目標設定値及びパラメータのうちの少なくともパラメータと、前記特定の制御対象の前記特定の目標設定値及び前記特定の制御対象のパラメータのうちの少なくともパラメータとの比較結果に基づいて、写像関数を調整する関数調整部をさらに備え、
前記算出部は、前記関数調整部によって調整された前記写像関数を用いて、前記取得部によって取得されたプロセスデータを変換する、
コントローラ。
【請求項2】
前記比較結果は、比率を含む、
請求項
1に記載のコントローラ。
【請求項3】
前記パラメータは、入出力範囲及びプロセスゲインの少なくとも1つを含む、
請求項1
又は2に記載のコントローラ。
【請求項4】
前記パラメータは、時定数を含み、
前記コントローラは、前記パラメータに含まれる前記時定数に基づいて制御周期を調整する周期調整部を備え、
前記取得部は、前記周期調整部によって調整された制御周期で、前記実際の制御対象のプロセスデータを取得する、
請求項1~
3のいずれか1項に記載のコントローラ。
【請求項5】
前記算出部は、前記変換後のプロセスデータ
を前記学習済みモデル
に入力することによって算出したデータに対して前記変換とは逆の逆変換を行うことにより、前記実際の制御対象の操作量を算出する、
請求項1~
4のいずれか1項に記載のコントローラ。
【請求項6】
前記実際の制御対象の操作量を算出するPIDコントローラと、
前記算出部によって算出された操作量を前記実際の制御対象に与える第1の制御モード及び前記PIDコントローラによって算出された操作量を前記実際の制御対象に与える第2の制御モードを切り替える切替部と、
を備える、
請求項1~
5のいずれか1項に記載のコントローラ。
【請求項7】
前記学習済みモデルの学習を行う学習部を備える、
請求項1~
6のいずれか1項に記載のコントローラ。
【請求項8】
実際の制御対象のプロセスデータを取得することと、
前記実際の制御対象の目標設定値及びパラメータの
うちの少なくとも
パラメータに基づいて、取得したプロセスデータを変換し、変換後のプロセスデータ
を学習済みモデル
に入力することによって、前記実際の制御対象の操作量を算出することと、
を含
む制御方法であって、
前記学習済みモデルは、特定の制御対象のプロセスデータが入力されると、前記特定の制御対象のプロセスデータを特定の目標設定値に近づけるための操作量を出力し、
前記パラメータは、前記実際の制御対象の操作量と、当該操作量によって得られるプロセスデータとの関係を特定するためのパラメータを含
み、
前記制御方法は、
前記実際の制御対象の目標設定値及びパラメータのうちの少なくともパラメータと、前記特定の制御対象の前記特定の目標設定値及び前記特定の制御対象のパラメータのうちの少なくともパラメータとの比較結果に基づいて、写像関数を調整することをさらに含み、
前記算出することでは、前記調整した前記写像関数を用いて、前記取得したプロセスデータを変換する、
制御方法。
【請求項9】
コンピュータに、
実際の制御対象のプロセスデータを取得する処理と、
前記実際の制御対象の目標設定値及びパラメータの
うちの少なくとも
パラメータに基づいて、取得したプロセスデータを変換し、変換後のプロセスデータ
を学習済みモデル
に入力することによって、前記実際の制御対象の操作量を算出する処理と、
を実行させる制御プログラムであって、
前記学習済みモデルは、特定の制御対象のプロセスデータが入力されると、前記特定の制御対象のプロセスデータを特定の目標設定値に近づけるための操作量を出力し、
前記パラメータは、前記実際の制御対象の操作量と、当該操作量によって得られるプロセスデータとの関係を特定するためのパラメータを含
み、
前記制御プログラムは、
前記コンピュータに、前記実際の制御対象の目標設定値及びパラメータのうちの少なくともパラメータと、前記特定の制御対象の前記特定の目標設定値及び前記特定の制御対象のパラメータのうちの少なくともパラメータとの比較結果に基づいて、写像関数を調整する処理をさらに実行させ、
前記算出する処理では、前記コンピュータが、前記調整した前記写像関数を用いて、前記取得したプロセスデータを変換する、
制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コントローラ、制御方法及び制御プログラムに関する。
【背景技術】
【0002】
学習済みモデルを用いるコントローラが提案されている(例えば特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えばプロセス制御に用いる学習済みモデルは、特定の制御対象及び特定の目標設定値の条件のもとで学習される。このような学習済みモデルは、条件が異なると適切な制御が行えなくなるので、汎用性、実用性を欠く。
【0005】
本発明は、学習済みモデルの汎用性、実用性を向上させることを目的とする。
【課題を解決するための手段】
【0006】
一側面に係るコントローラは、実際の制御対象のプロセスデータを取得する取得部と、実際の制御対象の目標設定値及びパラメータの少なくとも一方に基づいて、取得部によって取得されたプロセスデータを変換し、変換後のプロセスデータと、学習済みモデルとを用いて、実際の制御対象の操作量を算出する算出部と、を備え、学習済みモデルは、特定の制御対象のプロセスデータが入力されると、特定の制御対象のプロセスデータを特定の目標設定値に近づけるための操作量を出力し、パラメータは、実際の制御対象の操作量と、当該操作量によって得られるプロセスデータとの関係を特定するためのパラメータを含む。
【0007】
一側面に係る制御方法は、実際の制御対象のプロセスデータを取得することと、実際の制御対象の目標設定値及びパラメータの少なくとも一方に基づいて、取得したプロセスデータを変換し、変換後のプロセスデータと、学習済みモデルとを用いて、実際の制御対象の操作量を算出することと、を含み、学習済みモデルは、特定の制御対象のプロセスデータが入力されると、特定の制御対象のプロセスデータを特定の目標設定値に近づけるための操作量を出力し、パラメータは、実際の制御対象の操作量と、当該操作量によって得られるプロセスデータとの関係を特定するためのパラメータを含む。
【0008】
一側面に係る制御プログラムは、コンピュータに、実際の制御対象のプロセスデータを取得する処理と、実際の制御対象の目標設定値及びパラメータの少なくとも一方に基づいて、取得したプロセスデータを変換し、変換後のプロセスデータと、学習済みモデルとを用いて、実際の制御対象の操作量を算出する処理と、を実行させる制御プログラムであって、学習済みモデルは、特定の制御対象のプロセスデータが入力されると、特定の制御対象のプロセスデータを特定の目標設定値に近づけるための操作量を出力し、パラメータは、実際の制御対象の操作量と、当該操作量によって得られるプロセスデータとの関係を特定するためのパラメータを含む。
【発明の効果】
【0009】
本発明によれば、学習済みモデルの汎用性、実用性を向上させることが可能になる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係るコントローラの概略構成の例を示す図である。
【
図2】学習済みモデルの学習の例を模式的に示す図である。
【
図3】学習済みモデルの概略構成の例を模式的に示す図である。
【
図5】AIコントローラの概略構成の例を示す図である。
【
図6】写像関数による写像の例を模式的に示す図である。
【
図7】コントローラにおいて実行される処理の例を示すフローチャートである。
【
図8】変形例に係るコントローラの概略構成の例を示す図である。
【
図9】コントローラのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0011】
以下、図面を参照しつつ実施形態について説明する。同一の要素には同一の符号を付し、重複する説明は適宜省略する。
【0012】
図1は、実施形態に係るコントローラの概略構成の例を示す図である。コントローラ1は、制御対象9を制御する。制御の例は、プラントのプロセス制御等であり、その場合、プロセス制御に関するさまざまな制御対象が制御対象9となりうる。例示されるコントローラ1は、学習済みモデル2と、AIコントローラ3とを含む。
【0013】
コントローラ1は、制御対象9のプロセスデータXを取得し、プロセスデータXを目標設定値Nに近づけるような操作量MVを算出する。算出された操作量MVが制御対象9に与えられ、制御対象9が制御される。
【0014】
プロセスデータX及び操作量MVのいくつかの例について述べる。例えば、制御対象9が水槽等の場合、プロセスデータXは、液面水位等であってよい。タンク内の液体の液位(水位)、パイプを流れる流体の流量等が、プロセスデータXであってもよい。操作量MVは、バルブの開度、回転量、移動量等であってよい。制御対象9が炉等の場合、プロセスデータXは、炉の(例えば全体の)温度等であってよい。操作量MVは、電熱線への電流値等であってよい。
【0015】
なお、操作量MVは、操作量の絶対値であってもよいし、現時点での操作量に対する変更量(操作変更量)であってもよい。学習済みモデル2について、
図2~
図4も参照して説明する。
【0016】
図2は、学習済みモデルの学習の例を模式的に示す図である。学習済みモデル2は、特定の制御対象9aのプロセスデータが入力されると、制御対象9aのプロセスデータを特定の目標設定値Naに近づけるための操作量を出力するように学習された(生成された)AI制御モデルである。なお、図中のパラメータPaは、制御対象9aのパラメータである。パラメータについては後に改めて説明する。
【0017】
図3は、学習済みモデルの概略構成の例を模式的に示す図である。学習済みモデル2には、現在のプロセス状態に対して、目標設定値Naに近づけるための制御に必要な制御対象9aの操作量を決定するポリシーが保存されている。具体的に、学習済みモデル2は、複数のサンプルデータを保持している。この例では、複数のサンプルデータの各々は、「特徴データ」と、「操作変更量」と、「重み」とを対応付けて記述する。
【0018】
「特徴データ」は、制御対象9aのプロセスの状態(例えば、水位、バルブ開度等)を示す。1つのサンプルデータが複数の特徴データを含んでよく、図ではそれらが「State_1」及び「State_2」等として模式的に示される。「操作変更量」(Action)は、その時点のプロセスの状態に応じて行う制御対象9aへの操作変更量である。「重み」(Weight)は、特徴データと操作変更量との組み合わせに対する評価を表す。
【0019】
上述のような学習済みモデル2の生成には、KDPP(Kernel Dynamic Policy Programming)等の既知の強化学習アルゴリズムが用いられてよい。学習済みモデル2を用いることで、現在のプロセス状態に対する最適な操作変更量が決定される。具体例について、
図4を参照して説明する。
【0020】
図4は、操作変更量の決定の例を示す図である。特徴データのうちのState_1は、タンクの水位であり、その値は20である。State2_は、バルブの開度であり、その値は40である。対応する操作変更量として、-3、-1、0、1及び3が、選択肢として存在する。選択肢ごと(行ごと)に、例えば上述の
図3に示される各サンプルデータ(重みの列は除く)との間でカーネル計算を行い、重みを乗算し、加算することで、選択肢として与えられた操作変更量それぞれの評価値が求められる。もっとも評価値の高い操作変更量が、次の操作変更量として決定される。
【0021】
図1に戻り、AIコントローラ3は、上述の学習済みモデル2を用いて、操作量MVを算出する。AIコントローラ3には、目標設定値Nの他に、パラメータPも与えられる。後述の原理により、AIコントローラ3は、さまざまな制御対象9及び目標設定値Nの組み合わせに対しても、同じ学習済みモデル2を用いて操作量MVを算出する。例えば、制御対象9が制御対象9aと異なっている場合でも、その制御対象9の操作量MVが学習済みモデル2を用いて算出される。制御対象9は制御対象9aと同じあるが目標設定値Nが目標設定値Naと異なっている場合でも、その制御対象9の操作量MVが学習済みモデル2を用いて算出される。制御対象9が制御対象9aと異なり、また、目標設定値Nが目標設定値Naと異なる場合であっても、その制御対象9の操作量MVが、学習済みモデル2を用いて算出される。AIコントローラ3について、
図5も参照して説明する。
【0022】
図5は、AIコントローラの概略構成の例を示す図である。AIコントローラ3は、取得部31と、調整部32と、算出部33と、記憶部34とを含む。先に説明した学習済みモデル2の他に、学習部21も図示される。学習部21は、学習済みモデル2の学習を行う。学習には、制御対象9aのプロセスデータ及び目標設定値Naを含む学習データが用いられる。学習部21によって学習された学習済みモデル2が、AIコントローラ3によって利用可能である。
【0023】
取得部31は、制御対象9のプロセスデータXを取得する。例えば、取得部31は、制御周期Tで、制御対象9のプロセスデータXを取得する。制御周期Tは、この後で説明する調整部32によって調整される。
【0024】
調整部32は、学習済みモデル2を用いて制御対象9の操作量MVを算出するために必要なさまざまな調整を行う。調整部32には、目標設定値N及びパラメータPが与えられる。
【0025】
目標設定値Nは、先にも述べたように、プロセスデータXの目標値である。例えば、プロセスデータXが温度の場合には、目標設定値Nは、目標温度(50℃、100℃等)である。
【0026】
パラメータPは、制御対象9の制御の特徴を表すパラメータである。例えば、パラメータPは、制御対象9の操作量と、当該操作量によって得られるプロセスデータ(制御量等とも称される)との関係を特定するためのパラメータであってよい。操作量と得られるプロセスデータとの関係(入出力特性)は、PID(Proportional Integral Differential)制御等において、伝達特性等とも称される。そのようなパラメータPの具体例は、入出力範囲、プロセスゲイン及び時定数等である。例えば、入出力範囲は、操作量及びプロセスデータの範囲を示す。プロセスゲインは、プロセスデータを操作量で除算した値を示す。時定数は、一次遅れ時定数等を示す。先に説明した学習済みモデル2の学習時の制御対象9aのパラメータPa(
図2)についても同様である。
【0027】
目標設定値N及びパラメータPは、制御対象9によってさまざまに異なりうる。従って、調整部32には、実際の制御対象9に対応した(制御対象別の)目標設定値N及びパラメータPが与えられる。なお、ここでの制御対象別の目標設定値Nは、同じ制御対象9に対する異なる目標設定値も含む意味である。これらの目標設定値N及びパラメータPは、ユーザ操作によって与えられてもよいし、例えば、制御対象9ごとの目標設定値N及びパラメータPの少なくとも一方を記述したデータテーブル等が参照され、自動的に与えられてもよい。
【0028】
調整部32による具体的な調整について説明する。具体的な調整に関する機能ブロックとして、調整部32は、周期調整部321と、関数調整部322とを含む。
【0029】
周期調整部321は、与えられたパラメータPに含まれる時定数に基づいて、制御周期Tを調整(決定、更新等)する。制御周期Tは、先に述べたように、取得部31によるプロセスデータXの取得周期であり、また、後述の算出部33による操作量MVの算出周期にもなりうる。時定数に基づく制御周期TでプロセスデータXが取得され、操作量MVが算出され、制御対象9が制御されることにより、制御対象9の応答速度等に応じた適切な制御が行われる。例えば、周期調整部321は、時定数が小さくなるにつれて制御周期Tが短くなるように、制御周期Tを調整してよい。時定数が小さいほど、細かい間隔での制御が求められるからである。制御周期Tは、時定数の大きさに比例するように調整されてよい。
【0030】
関数調整部322は、与えられた目標設定値N及びパラメータPの少なくとも一方に基づいて、写像関数fを調整する。写像関数fは、取得部31によって取得されたプロセスデータXを特徴データSに写像(変換)する。
【0031】
図6は、写像関数による写像の例を模式的に示す図である。プロセスデータXが、「x1」、「x2」及び「x3」等として模式的に示される。特徴データSが、「s1」、「s2」及び「s3」等として模式的に示される。この例では、プロセスデータx1が特徴データs1に、プロセスデータx2が特徴データs2に、プロセスデータx3が特徴データs3にそれぞれ写像される(変換される)。なお、写像は、このような1対1の単射に限らず、全射であってもよい。
【0032】
例えば、写像関数fによる写像が線形写像であり、写像関数fが係数ベクトルAを用いてf(x)=Axとして表されるとする。プロセスデータXが(x1、x2)の場合、特徴データS(s1、s2)は、以下のように求められる。下記の式中の係数a1~係数a4は、係数ベクトルAの成分を示す。
【数1】
【0033】
上記の係数ベクトルAが、関数調整部322によって調整される。具体的に、関数調整部322は、与えられた目標設定値N及びパラメータPの少なくとも一方と、目標設定値Na及びパラメータPa(学習済みモデル2の学習時の目標設定値及びパラメータ)の少なくとも一方とに基づいて、係数ベクトルAを調整する。
【0034】
仮に、目標設定値N及びパラメータPと、目標設定値Na及びパラメータPaとが同じであれば、係数ベクトルAは、以下のように調整される。
【数2】
【0035】
上記の場合には、特徴データSは、プロセスデータXと同じである。ただし、実際には、目標設定値N及びパラメータPと目標設定値Na及びパラメータPaとが異なる場合が少なくなく、特徴データSは、プロセスデータXとは異なるデータになる。
【0036】
関数調整部322は、目標設定値N及びパラメータPの少なくとも一方と、目標設定値Na及びパラメータPaの少なくとも一方との比較結果(例えば比率等)に基づいて、係数ベクトルAを調整する。例えば、特定の制御対象9aの特定の目標設定値Naが制御対象9の目標設定値Nよりも小さい場合、関数調整部322は、特徴データSがプロセスデータXよりも小さくなるように、係数ベクトルAを調整する。特定の制御対象9aの特定の目標設定値Naと制御対象9の目標設定値Nとの比率が1:2であれば、調整部32は、特徴データSがプロセスデータXの0.5倍(1/2)になるように、係数ベクトルAを調整してよい。以下のような係数ベクトルAが得られる。
【数3】
【0037】
同様の趣旨で、関数調整部322は、パラメータPと、パラメータPaとが異なる場合にも、それらの比較結果(比率等)に基づいて、係数ベクトルAを調整する。例えば、パラメータPに含まれるプロセスゲインとパラメータPaに含まれるプロセスゲインとの比率に基づいたり、制御対象9に含まれる入出力範囲とパラメータPaに含まれる入出力範囲との比率に基づいたりして、係数ベクトルAが調整される。
【0038】
なお、係数ベクトルAの調整は、ユーザ操作によって手動で行われてもよい。学習済みモデル2のハイパーパラメータが手動で調整されてもよい。
【0039】
例えば以上のようにして、関数調整部322は、写像関数fを調整する。関数調整部322は、逆写像関数f-1も調整する。逆写像関数f-1は、写像関数fの逆関数であり、上述の係数ベクトルAの逆行列等を用いて調整される。
【0040】
図5に戻り、算出部33は、取得部31によって取得されたプロセスデータXと、学習済みモデル2とを用いて、操作量MVを算出する。算出に関する機能ブロックとして、算出部33は、写像部331と、実行部332と、逆写像部333とを含む。
【0041】
写像部331は、関数調整部322によって調整された写像関数fを用いて、取得部31によって取得されたプロセスデータXを、特徴データSに写像(変換)する。
【0042】
実行部332は、写像部331による写像によって得られた特徴データSを、学習済みモデル2に入力する。学習済みモデル2は、例えば先に
図2及び
図3を参照して説明したように、入力された特徴データSに対応する対応する操作量(操作変更量)を選択肢として与える。それらは重みと対応付けられており、乗算、加算等によって、評価値が求められる。もっとも評価値の高い操作量が、特徴データS
MVとして決定される。なお、特徴データS
MVの決定に必要な計算(乗算、加算等)は、学習済みモデル2において実行されてもよいし、実行部332によって実行されてもよい。いずれにしても、実行部332は、学習済みモデル2から特徴データS
MVを取得する。
【0043】
逆写像部333は、関数調整部322によって調整された逆写像関数f-1を用いて、実行部332によって取得された特徴データSMVを、操作量MVに逆写像(逆変換)する。
【0044】
例えば以上のようにして、算出部33は、操作量MVを算出する。算出部33は、算出した操作量MVを制御対象9に与える(出力する)ことによって、制御対象9を制御する。
【0045】
記憶部34は、AIコントローラ3において実行される処理に必要なさまざまな情報を記憶する。記憶される情報として、学習時情報34a及び制御プログラム34bが例示される。学習時情報34aは、学習済みモデル2の学習時の情報であり、先に
図2を参照して説明した目標設定値Na及びパラメータPaを含む。制御プログラム34bは、コンピュータにAIコントローラ3の処理を実行させるプログラムである。
【0046】
なお、記憶部34は、AIコントローラ3だけでなく、コントローラ1の記憶部として機能してもよい。制御プログラム34bは、コンピュータにコントローラ1の処理を実行させるためのプログラムであってもよい。
【0047】
図7は、コントローラにおいて実行される処理(制御方法)の例を示すフローチャートである。これまでの説明と重複する内容については適宜省略する。
【0048】
ステップS101において、パラメータPに基づいて制御周期Tが調整される。周期調整部321が、与えられたパラメータPに含まれる時定数に基づいて制御周期Tを調整する。
【0049】
ステップS102において、目標設定値N、パラメータPに基づいて写像関数f等が調整される。関数調整部322が、与えられた目標設定値N及びパラメータPの少なくとも一方に基づいて、写像関数f及び逆写像関数f-1を調整する。
【0050】
ステップS103では、先のステップS101で調整された制御周期TでステップS104~ステップS107の処理を繰り返し実行するために、処理が分岐する。制御周期Tの間隔で(ステップS103:Yes)、ステップS104に処理が進められる。それ以外のタイミングでは(ステップS103:No)、処理は進められない。この判断は、例えば取得部31によって行われてよい。
【0051】
ステップS104において、プロセスデータXが取得される。取得部31が、制御対象9のプロセスデータXを取得する。
【0052】
ステップS105において、写像関数fを用いてプロセスデータXが写像され、特徴データSが取得される。算出部33の写像部331が、先のステップS102で調整された写像関数fを用いて、先のステップS104で取得されたプロセスデータXを特徴データSに写像(変換)する。
【0053】
ステップS106において、特徴データSが学習済みモデル2に入力され、特徴データSMVが取得される。算出部33の実行部332が、先のステップS105で取得された特徴データSを、学習済みモデル2に入力する。もっとも評価値の高い操作量が特徴データSMVとして決定され、取得される。
【0054】
ステップS107において、逆写像関数f-1を用いて特徴データSMVが逆写像され、操作量MVが取得される。算出部33の逆写像部333は、先のステップS102で調整された逆写像関数f-1を用いて、先のステップS106で取得された特徴データSMVを逆写像(逆変換)し、操作量MVを取得する。
【0055】
例えば以上のようにして、学習済みモデル2を用いて、制御対象9の操作量MVが算出される。操作量MVが制御対象9に与えられ(出力され)、制御対象9が制御される。なお、上記のステップS101及びステップS102の処理は、逆の順序で実行されてもよいし、同時に(並列に)実行されてもよい。
【0056】
以上説明したコントローラ1によれば、特定の制御対象9aに関して学習された学習済みモデル2を用いて、実際の制御対象9が制御対象9aと異なっていたり、制御対象9の目標設定値Nが制御対象9aの目標設定値Naと異なっていたりする場合でも、その制御対象9の操作量MVを算出できるようになる。実際の制御対象9の目標設定値N及びパラメータPは、設備更新、生産計画の変更等によってさまざまに異なるが、いずれの制御対象9及び目標設定値Nの場合にも、同じ学習済みモデル2を用いることができる。従って、学習済みモデル2の汎用性、実用性を向上させることができる。
【0057】
以上、本開示の一実施形態について説明した。開示される技術は、上記の実施形態に限られない。いくつかの変形例について説明する。
【0058】
一実施形態において、AIコントローラが、PIDコントローラに組み合わされて用いられてもよい。そのようなハイブリッド型のコントローラの例について、
図7を参照して説明する。
【0059】
図8は、変形例に係るコントローラの概略構成の例を示す図である。例示されるコントローラ1Aは、コントローラ1(
図1)と比較して、PIDコントローラ4及び切替部5をさらに含む点において相違する。
【0060】
PIDコントローラ4も、制御対象9の操作量MVを算出する。具体的に、PIDコントローラ4は、プロセスデータXと目標設定値Nとの差を0に近づけるような操作量MVを算出する。算出は、例えば下記の式に基づいて行われる。
【数4】
【0061】
上記の式において、e(t)及びu(t)は、プロセスデータX(制御量)及び操作量MVにそれぞれ対応する。Kp、Ki及びKdは、Pゲイン、Iゲイン及びDゲイン(PIDゲイン)である。Kp、Ki及びKdは、定数であってよい。これらは、経験値若しくは理論値及び現場での合わせ込み等によって決定されてよい。
【0062】
上述のようなPIDコントローラ4をも備えるコントローラ1Aにおいては、AIコントローラ3を用いて制御対象9を制御する第1の制御モードと、PIDコントローラ4を用いて制御対象9を制御する第2の制御モードとが利用可能である。
【0063】
切替部5は、第1の制御モード及び第2の制御モードを切り替える。例えば、切替部5は、第1の制御モードに切り替えることを示す信号をAIコントローラ3及びPIDコントローラ4に出力する。これによって、AIコントローラ3(の算出部33)によって算出された操作量MVを制御対象9に与える第1の制御モードに、制御モードが切り替わる。第1の制御モードにおいては、PIDコントローラ4は停止していてもよい。切替部5は、第2の制御モードに切り替えることを示す信号をAIコントローラ3及びPIDコントローラ4に出力する。これによって、PIDコントローラ4によって算出された操作量MVを制御対象9に与える第2の制御モードに、制御モードが切り替わる。第2の制御モードにおいては、AIコントローラ3は停止していてもよい。切替部5による第1の制御モード及び第2の制御モードの切り替えは、自動的に行われてもよいし、ユーザ操作等に応じて手動で行われてもよい。
【0064】
PIDコントローラ4を用いる場合、プロセスデータXを目標設定値Nに近づける制御は行えるものの、立ち上がり時のオーバーシュート及びアンダーシュートの少なくとも一方が発生することが少なくない。例えば温度制御でオーバーシュートが発生すると、温度が下がるのに時間がかかり、その分、生産開始が遅れるといった問題が生じる。一方で、オーバーシュートが発生しないようにPIDゲインを調整すると、プロセスデータXを目標設定値Nに近づけるまでに時間がかかる。最適なPIDゲイン調整には、多くの時間と手間が必要になる。条件変化等によっては、再びPIDゲイン調整(再チューニング)が必要になることもある。
【0065】
一方で、AIコントローラ3は、上述のようなオーバーシュート等の発生を抑制しつつ早く目標設定値に到達するように学習された学習済みモデル2を用いることで、上述のPIDコントローラ4の欠点が改善された制御を行うことができる。
【0066】
例えば、切替部5は、立ち上がり時には、制御モードを第1の制御モード(AIコントローラ3による制御)に切り替えてよい。水位、炉温度の立ち上げ時は、PIDコントローラ4では最適な制御が難しく、AIコントローラ3を用いた方がよい場合も少なくないからである。一方で、切替部5は、目標設定値N付近では、制御モードを第2の制御モード(PIDコントローラ4による制御)に切り替えてよい。PIDコントローラ4による汎用的な制御で足りるからである。これにより、例えば上述のオーバーシュート等を抑制しながら、プロセスデータXを素早く目標設定値N付近で安定させることができる。
【0067】
コントローラ1Aによれば、例えば学習済みモデル2及びAIコントローラ3だけを用いる場合よりも、また、PIDコントローラ4を単独で用いる場合よりも、制御対象9の制御精度を向上できる可能性が高まる。
【0068】
一実施形態において、学習済みモデル2は、AIコントローラ3の内部に設けられてよい。例えば、学習済みモデル2は、AIコントローラ3の記憶部34に記憶されてよい。学習部21も、AIコントローラ3の内部に設けられてよい。例えば、AIコントローラ3において、或る制御対象及び或る目標設定値の条件のもとでの学習によって生成された学習済みモデル2を、その制御対象と同じ制御対象ではあるが目標設定が異なるという条件での制御に用いることができる。
【0069】
一実施形態において、コントローラ1(又はコントローラ1A)による処理は、クラウドコンピューティング等によって実現されてもよい。例えば、学習済みモデル2、AIコントローラ3の取得部31、調整部32、算出部33及び記憶部34の機能の一部又は全部が、コントローラ1の外部の装置に設けられてよい。コントローラ1は、そのような外部の装置と通信することによって、これまで説明した処理を実行してよい。
【0070】
上記実施形態では、写像関数fを用いてプロセスデータXを変換する例について説明した。ただし、写像関数fに限らず、プロセスデータXを変換することが可能なあらゆる手法が用いられてよい。
【0071】
上記実施形態では、パラメータPとして、時定数、入出力範囲及びプロセスゲインを例に挙げて説明した。ただし、これらに限らず、制御対象9の制御の特徴を表すことの可能なあらゆるパラメータが、パラメータPとして用いられてよい。
【0072】
上記実施形態では、学習済みモデル2が、複数のサンプルデータを保持する構成を備える例について説明した。ただし、特定の制御対象9aのプロセスデータを特定の目標設定値Naに近づけるための操作量を出力することが可能なあらゆる構成を備える学習済みモデルが、学習済みモデル2として用いられてよい。
【0073】
図9は、コントローラのハードウェア構成の例を示す図である。例示されるハードウェア構成を備えるコンピュータ等が、これまで説明したコントローラ1(又はコントローラ1A)として機能する。この例ではコントローラ1は、バス等で相互に接続される通信装置1a、表示装置1b、HDD(Hard Disk Drive)1c、メモリ1d及びプロセッサ1eを備える。
【0074】
通信装置1aは、ネットワークインタフェースカードなどであり、他の装置との通信を可能にする。表示装置100bは、例えばタッチパネルやディスプレイなどである。HDD1cは、記憶部34として機能し、制御プログラム34b等を記憶する。
【0075】
プロセッサ1eは、制御プログラム34bをHDD1c等から読み出してメモリ1dに展開することで、コンピュータを、コントローラ1として機能させる。機能は、これまで説明したような取得部31の機能、調整部32の機能及び算出部33の機能を含む。
【0076】
制御プログラム34bは、インターネットなどのネットワークを介して配布することができる。また、制御プログラム34bは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【0077】
以上説明した技術は、例えば次のように特定される。
図1~
図7等を参照して説明したように、コントローラ1は、取得部31と、算出部33と、を備える。取得部31は、実際の制御対象9のプロセスデータXを取得する。算出部33は、実際の制御対象9の目標設定値N及びパラメータP(例えば入出力範囲及びプロセスゲイン等)の少なくとも一方に基づいて、取得部31によって取得されたプロセスデータXを変換し、変換後のプロセスデータ(特徴データS)と、学習済みモデル2とを用いて、実際の制御対象9の操作量MVを算出する。学習済みモデル2は、特定の制御対象9aのプロセスデータが入力されると、特定の制御対象9aのプロセスデータを特定の目標設定値Naに近づけるための操作量を出力する。パラメータPは、実際の制御対象9の操作量と、当該操作量によって得られるプロセスデータとの関係を特定するためのパラメータを含む。コントローラ1は、学習済みモデル2の学習を行う学習部21を備えてもよい。
【0078】
上記のコントローラ1によれば、特定の制御対象9aに関して学習された学習済みモデル2を用いて、実際の制御対象9が制御対象9aと異なっていたり、制御対象9の目標設定値Nが制御対象9aの目標設定値Naと異なっていたりする場合でも、その制御対象9の操作量MVを算出できるようになる。実際の制御対象9の目標設定値N及びパラメータPは、設備更新、生産計画の変更等によってさまざまに異なるが、いずれの制御対象9及び目標設定値Nの場合にも、同じ学習済みモデル2を用いることができる。従って、学習済みモデル2の汎用性、実用性を向上させることができる。
【0079】
図5等を参照して説明したように、コントローラ1は、実際の制御対象9の目標設定値N及びパラメータPの少なくとも一方と、特定の制御対象9aの特定の目標設定値Na及び特定の制御対象9aのパラメータPaの少なくとも一方との比較結果(例えば比率等)に基づいて、写像関数fを調整する関数調整部322を備え、算出部33は、関数調整部322によって調整された写像関数fを用いて、取得部31によって取得されたプロセスデータXを変換してよい。例えばこのような写像関数fを用いることにより、プロセスデータXを適切に変換することができる。算出部33は、変換後のプロセスデータ(特徴データS)と学習済みモデル2とを用いて算出したデータ(特徴データS
MV)に対して上述の変換とは逆の逆変換(逆写像関数f
-1による逆写像)を行うことにより、実際の制御対象9の操作量MVを算出してよい。
【0080】
パラメータPは、時定数を含み、コントローラ1は、パラメータPに含まれる時定数に基づいて制御周期Tを調整する周期調整部321を備え、取得部31は、周期調整部321によって調整された制御周期Tで、実際の制御対象9のプロセスデータを取得してよい。これにより、適切な制御周期Tで制御対象9を制御することができる。
【0081】
図8等を参照して説明したように、コントローラ1は、実際の制御対象9の操作量MVを算出するPIDコントローラ4と、(AIコントローラ3の)算出部33によって算出された操作量MVを実際の制御対象9に与える第1の制御モード及びPIDコントローラ4によって算出された操作量MVを実際の制御対象9に与える第2の制御モードを切り替える切替部5と、を備えてよい。これにより、例えばAIコントローラ3又はPIDコントローラ4だけを用いる場合よりも、制御対象9の制御精度を向上できる可能性が高まる。
【0082】
図7等を参照して説明した制御方法も、実施形態の1つである。制御方法は、実際の制御対象9のプロセスデータXを取得すること(ステップS104)と、実際の制御対象9の目標設定値N及びパラメータPの少なくとも一方に基づいて、取得したプロセスデータXを変換し、変換後のプロセスデータ(特徴データS)と、学習済みモデル2とを用いて、実際の制御対象9の操作量MVを算出すること(ステップS105~ステップS107)と、を含む。このような制御方法によっても、これまで説明したように、学習済みモデル2の汎用性、実用性を向上させることができる。
【0083】
図5及び
図8等を参照して説明した制御プログラム34bも、実施形態の1つである。制御プログラム34bは、コンピュータに、実際の制御対象9のプロセスデータXを取得する処理と、実際の制御対象9の目標設定値N及びパラメータPの少なくとも一方に基づいて、取得したプロセスデータXを変換し、変換後のプロセスデータ(特徴データS)と、学習済みモデル2とを用いて、実際の制御対象9の操作量MVを算出する処理と、を実行させる。このような制御プログラム34bによっても、これまで説明したように、学習済みモデル2の汎用性、実用性を向上させることができる。なお、
図9等を参照して説明したような、制御プログラム34bが記録された記録媒体も、実施形態の1つである。
【符号の説明】
【0084】
1 コントローラ
2 学習済みモデル
21 学習部
3 AIコントローラ
31 取得部
32 調整部
321 周期調整部
322 関数調整部
33 算出部
331 写像部
332 実行部
333 逆写像部
34 記憶部
34a 学習時情報
34b 制御プログラム
4 PIDコントローラ
5 切替部
9 制御対象
9a 制御対象(特定の制御対象)
A 係数ベクトル
f 写像関数
f-1 逆写像関数
MV 操作量
N 目標設定値
Na 目標設定値(特定の目標設定値)
P パラメータ
Pa パラメータ(特定の制御対象のパラメータ)
S 特徴データ
SMV 特徴データ(操作変更量に関する特徴データ)
T 制御周期
X プロセスデータ