JP2022097222A - 制御装置、制御方法及びプログラム - Google Patents

制御装置、制御方法及びプログラム Download PDF

Info

Publication number
JP2022097222A
JP2022097222A JP2020210682A JP2020210682A JP2022097222A JP 2022097222 A JP2022097222 A JP 2022097222A JP 2020210682 A JP2020210682 A JP 2020210682A JP 2020210682 A JP2020210682 A JP 2020210682A JP 2022097222 A JP2022097222 A JP 2022097222A
Authority
JP
Japan
Prior art keywords
value
look
ahead
target
target value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020210682A
Other languages
English (en)
Other versions
JP6901037B1 (ja
Inventor
吉雄 丹下
Yoshio Tange
慎大 原
Shinta Hara
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2020210682A priority Critical patent/JP6901037B1/ja
Application granted granted Critical
Publication of JP6901037B1 publication Critical patent/JP6901037B1/ja
Publication of JP2022097222A publication Critical patent/JP2022097222A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Feedback Control In General (AREA)

Abstract

【課題】エッジデバイス上でモデル予測制御を実現しつつ、モデル更新のためのパラメータを推定する方法を提供する。【解決手段】制御対象の制御量を目標値に追従させる制御装置であって、目標値時系列と、目標値を先読みする時間幅を示す先読み長とが入力されると、複数の目標値のうち、先読み目標値を取得する目標値先読み手段と、前記先読み目標値と、制御対象の現在の制御量との差である先読み目標偏差を算出する先読み目標偏差算出手段と、制御対象のプラント応答を表すプラント応答関数と、現在に至るまでの過去の操作量の変化量とに基づいて、先読み長後の制御量の予測値と、先読み目標値との差を示す補正目標偏差を算出する補正目標偏差算出手段と、前記補正目標偏差に基づいて、新たな操作量を算出する操作量算出手段と、制御量と、操作量とに基づいて、プラント応答関数に含まれるモデルパラメータの推定値を算出するモデルパラメータ推定手段を有す。【選択図】図1

Description

本発明は、制御装置、制御方法及びプログラムに関する。
温調制御装置やPLC(Programmable Logic Controller)、DCS(Distributed Control System)等の制御装置、パーソナルコンピュータや組み込み制御機器上で実装される制御装置等が産業上広く利用されている。
また、制御対象の制御量を目標値に追従させることを目的とする制御方式として、PID(Proportional-Integral-Differential)制御、モデル予測制御、内部モデル制御、LQG(Linear-Quadratic-Gaussian)制御、H2制御、H∞制御等の各種の制御方式が知られている。
モデル予測制御は、制御対象の状態空間モデルや将来の時間応答モデルを用いた最適化計算を逐次的に行うことで望ましい応答を得る方式であり、産業界で広く用いられている(例えば、非特許文献1)。例えば、オンラインで数値最適化アルゴリズムを実行する標準的なモデル予測制御の産業応用として、空調システムの制御等への応用が知られている(例えば、特許文献1)。
また、現在に至るまでの過去の操作量の変化に応じた制御量の収束値の予測値と、目標値との差である補正目標偏差に基づいて新たな操作量を決定する制御装置が提案されている(例えば、特許文献2)。目標偏差の現在値と、操作量の変化量との関係を示す制御用論理式が成立する領域をグラフ上に表示する設計支援装置も提案されている(例えば、特許文献3)。
また、線形予測モデルに対してパラメータ同定を行う手法として、逐次最小2乗法、すなわち、RLS(Recursive Least Squares)法やカルマンフィルタ法等が知られている(例えば、非特許文献2及び非特許文献3)。
更に、例えば、発電プラントの最適運転において、発電要素の物理モデルと入力状態量から特性パラメータを推定し、得られた特性パラメータから最適負荷配分を決定する制御方法も知られている。
特開2015-108499号公報 国際公開第2016/092872号 国際公開第2015/060149号
ヤン M. マチエヨフスキー,「モデル予測制御 制約のもとでの最適制御」,東京電機大学出版局,2005 足立 修一,「MATLABによる制御のためのシステム同定」,東京電機大学出版局,1996 足立 修一,「MATLABによる制御のための上級システム同定」,東京電機大学出版局,2004
しかしながら、従来のモデル予測制御は、逐次的な最適化計算を繰り返し実行する必要があるため、CPU(Central Processing Unit)やメモリ等の計算資源が豊富なPC(パーソナルコンピュータ)上で実行するものが多く、比較的計算資源が乏しいエッジデバイス(例えば、PLC(Programmable Logic Controller)等の制御装置)上で実行することが困難であった。
また、モデル予測制御はモデルに基づく制御方式であるため、制御対象のモデルを予め同定する必要があるが、一度同定したモデルであっても、制御対象の経年変化や季節性変動等の要因によって変化していく場合がある。
本発明の一実施形態は、上記の点に鑑みてなされたもので、エッジデバイス上でモデル予測制御を実現しつつ、モデル更新のためのパラメータを推定することを目的とする。
上記目的を達成するため、本発明の一実施形態に係る制御装置は、制御対象に対する操作量を出力し、前記制御対象の制御量を目標値に追従させる制御装置であって、前記目標値の時系列である目標値時系列と、前記目標値を先読みする時間幅を示す先読み長とが入力されると、前記目標値時系列に含まれる複数の目標値のうち、前記先読み長後の目標値を示す先読み目標値を取得する目標値先読み手段と、前記先読み目標値と、前記制御対象の現在の制御量との差である先読み目標偏差を算出する先読み目標偏差算出手段と、前記制御対象のプラント応答を表すプラント応答関数と、現在に至るまでの過去の前記操作量の変化量とに基づいて、前記先読み長後の制御量の予測値と、前記先読み目標値との差を示す補正目標偏差を算出する補正目標偏差算出手段と、前記補正目標偏差に基づいて、新たな前記操作量を算出する操作量算出手段と、前記制御量と、前記操作量とに基づいて、前記プラント応答関数に含まれるモデルパラメータの推定値を算出するモデルパラメータ推定手段と、を有することを特徴とする。
エッジデバイス上でモデル予測制御を実現しつつ、モデル更新のためのパラメータを推定することができる。
第一の実施形態に係る制御装置の構成の一例を示す図である。 プラント応答関数の動作の一例を説明するための図である。 プラント応答関数の計算処理の一例を説明するためのフローチャートである。 モデルパラメータの推定処理の一例を説明するためのフローチャートである。 目標値先読み部の動作の一例を説明するための図である。 先読み応答補正部の動作の一例を説明するための図(その1)である。 先読み応答補正部の動作の一例を説明するための図(その2)である。 予測時系列更新部が実行する更新処理の一例を説明するためのフローチャートである。 予測時系列の更新の一例を説明するための図である。 操作変化量算出部の動作の一例を説明するための図である。 一実施形態に係る制御装置のハードウェア構成の一例を示す図である。 第二の実施形態に係る制御装置の構成の一例を示す図である。 制御量推定処理の一例を説明するためのフローチャートである。 第三の実施形態に係る制御装置の構成の一例を示す図である。 第四の実施形態に係る制御装置の構成の一例を示す図である。 実施例1におけるステップ応答を説明するための図である。 実施例1におけるモデルパラメータ推定時の設定を説明するための図である。 実施例1における操作量及び制御量を説明するための図である。 実施例1におけるモデルパラメータ推定値及び制御量推定値を説明するための図である。 実施例2における操作量及び制御量を説明するための図である。 実施例2におけるモデルパラメータ推定値及び制御量推定値を説明するための図である。
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。以降では、現在から未来への目標値時系列が入力された場合において、制御量を目標値に追従させるための操作量を計算すると共に、モデル更新のためのモデルパラメータを推定する制御装置10について説明する。なお、以降で説明する各実施形態に係る制御装置10は、例えば、PLC等のエッジデバイスである。
以降で説明する各実施形態に係る制御装置10は、任意の目標値の時系列データである目標値時系列{r(t)}や制御対象プラント20の状態等を示す制御量y、制御対象プラント20のプラント応答モデル等に基づいて制御対象プラント20に対する操作量uを算出する共に、モデル更新のためのモデルパラメータを推定する。そして、制御装置10は、この操作量uに応じた制御対象プラント20の制御量yを計測し、目標値時系列{r(t)}や制御量y、プラント応答モデル等に基づいて次の操作量uを算出すると共に、新たなモデルパラメータを推定する。このように、以降で説明する各実施形態に係る制御装置10は、制御量yを目標値時系列{r(t)}に追従させるための操作量uの算出と、プラント応答モデルのモデルパラメータの推定とをオンライン実行中(つまり、制御対象プラント20の制御中)に繰り返し実行する。
以降で説明する各実施形態に係る制御装置10は、モデル予測制御の高い制御性能を実現しつつも、毎回のオンライン最適化計算を必要としないため、少ない計算量と少ないメモリとで実現することが可能になると共に、プラント応答モデルのモデルパラメータを推定することが可能となる。なお、各実施形態に係る制御装置10は、例えば、既設の他の制御装置の操作量と制御量とを用いてプラント応答モデルのパラメータを推定することが可能である。このため、例えば、制御装置10の設置直後は他の制御装置の操作量と制御量とを用いてプラント応答モデルの初期モデルパラメータを推定し、運用開始後は季節変動や制御対象プラント20の経年劣化等の継時的変化に追従したモデルパラメータを推定する、といったことが可能である。
なお、制御量yとしては、例えば、制御対象プラント20の温度、目標値rとしては、例えば、設定温度等が挙げられる。ただし、制御量y及び目標値rは、温度及び設定温度に限られず、制御対象プラント20における任意の制御量及び当該制御量の目標となる目標値を用いることができる。
[第一の実施形態]
<制御装置10の構成>
まず、本実施形態に係る制御装置10の構成について、図1を参照しながら説明する。図1は、第一の実施形態に係る制御装置10の構成の一例を示す図である。
図1に示すように、本実施形態に係る制御装置10は、モデルパラメータ推定部101と、目標値先読み部102と、計測部103と、差分器104と、操作量更新部105と、タイマ106とを有する。これら各機能部は、例えば、制御装置10にインストールされた1以上のプログラムがCPU等に実行させる処理により実現される。
目標値先読み部102は、所定の制御周期T毎に、目標値時系列{r(t)}と、先読み長Tとが入力されると、現在時刻tから先読み長後の時刻t+Tにおける目標値r(t+T)を出力する。先読み長Tとは、目標値時系列{r(t)}のうち、先読みする目標値r(t+T)を決定するための時間長である。なお、以降では、目標値r(t+T)を「先読み目標値r(t+T)」とも表す。
計測部103は、制御周期T毎に、制御対象プラント20の制御量yを計測する。そして、計測部103は、計測した制御量yの最新の値を、制御量現在値yとして出力する。なお、制御対象プラント20の制御量yは、操作量uと外乱vとに応じて決定される。外乱vとしては、例えば、制御量yが温度である場合には外気温の低下又は上昇等が挙げられる。
また、計測部103は、操作量更新部105から出力された操作量uを取得し、取得した操作量uの最新の値を、操作量現在値uとして出力する。
差分器104は、目標値先読み部102から出力された先読み目標値r(t+T)と、制御量現在値yとの差(偏差)を目標偏差eとして出力する。目標偏差eは、e=r(t+T)-y(t)で算出される。なお、以降では、目標偏差eを「先読み目標偏差e」とも表す。
操作量更新部105は、制御周期T毎に、制御対象プラント20に対する操作量uを出力する。操作量更新部105には、先読み応答補正部111と、操作変化量算出部112と、加算器113とが含まれる。
先読み応答補正部111は、プラント応答関数{Sθ(t)}と、先読み目標偏差e(t)と、先読み長Tと、過去の操作量uの変化量duの時系列データである操作変化量時系列{du(t)}とに基づいて、先読み目標偏差e(t)を補正した補正目標偏差e(t)を算出する。補正目標偏差e(t)の算出方法の詳細については後述する。ここで、プラント応答関数{Sθ(t)}とはモデルパラメータθを含む関数であり、制御対象プラント20のプラント応答モデルである。なお、以降では、操作量uの変化量duを「操作変化量du」とも表す。
操作変化量算出部112は、制御周期T毎に、先読み応答補正部111により算出された補正目標偏差e(t)に基づいて、操作変化量duを算出する。操作変化量算出部112は、例えば、du(t-3T)、du(t-2T)、du(t-T)という順序で操作変化量du(t)を算出し、出力する。なお、操作変化量duは、制御周期T毎に操作量uが変化した量である。
加算器113は、計測部103から出力された操作量現在値uと、操作変化量算出部112から出力された操作変化量duとを加算して、新たな操作量uを算出する。そして、加算器113は、この操作量uを制御対象プラント20に出力する。この操作量uは、u(t)=u+du(t)=u(t-T)+du(t)で算出される。
タイマ106は、制御周期T毎に、目標値先読み部102と計測部103とを動作させる。なお、目標値先読み部102と計測部103とが制御周期T毎に動作することで、モデルパラメータ推定部101及び操作量更新部105も制御周期T毎に動作する。
モデルパラメータ推定部101は、制御量現在値yと、操作量現在値uと、現在のプラント応答関数{Sθ(t)}に設定されているモデルパラメータθとが入力されると、プラント応答関数{Sθ(t)}のモデルパラメータの推定値θestを算出し、出力する。なお、以降では、現在のプラント応答関数{Sθ(t)}に設定されているモデルパラメータθを「モデルパラメータ現在値θ」とも表し、プラント応答関数{Sθ(t)}のモデルパラメータの推定値θestを「モデルパラメータ推定値θest」とも表す。
<プラント応答関数{Sθ(t)}の動作>
次に、プラント応答関数{Sθ(t)}の動作について、図2を参照しながら説明する。図2は、プラント応答関数{Sθ(t)}の動作の一例を説明するための図である。
図2に示すように、プラント応答関数{Sθ(t)}は、モデルパラメータ設定値θと時間tとが入力されると、初期時刻0から時間t経過後の時刻tにおける単位ステップ応答Sθ(t)を出力する。なお、単位ステップ応答とは、操作量uを単位ステップ入力とした場合における応答(つまり、制御対象プラント20のプラント応答モデルの出力)のことである。
<プラント応答関数{Sθ(t)}の計算>
次に、プラント応答関数{Sθ(t)}の単位ステップ応答Sθ(t)を計算する処理について、図3を参照しながら説明する。図3は、プラント応答関数{Sθ(t)}の計算処理の一例を説明するためのフローチャートである。なお、図3では、モデルパラメータ設定値θと時間tとが入力されたものとする。
ここで、本実施形態では、プラント応答関数Sθ(t)の計算モデルとして、制御量yについては過去N点の自己回帰、操作量uについては過去M点の移動平均を用いたARMA(autoregressive moving average)モデルを採用した場合について説明する。なお、N及びMは、例えば、制御装置10のユーザや管理者(以降、「ユーザ等」とも表す。)によって予め設定される。
このとき、モデルパラメータ設定値θを
Figure 2022097222000002
とする。モデルパラメータ設定値θの各要素は数2で示す、ARMAモデルの係数である。
Figure 2022097222000003
ここで、kはインデックスである。
ステップS11:操作量更新部105は、時刻を表す変数をτ、インデックスkにおける状態ベクトルをφ(k)として、時刻τと状態ベクトルφ(0)とを初期化する。また、操作量更新部105は、インデックスkをk=0に初期化する。
ここで、状態ベクトルφ(k)は、
Figure 2022097222000004
と表される。
操作量更新部105は、例えば、τ=0と初期化すると共に、
Figure 2022097222000005
と初期化する。すなわち、φ(0)はu(k-1)に相当する要素のみ1、他の要素は0に初期化される。これは、単位ステップ応答を模擬する際の初期値として設定していることを意味する。
ステップS12:次に、操作量更新部105は、モデルパラメータ設定値θと状態ベクトルφ(k)とに基づいて制御量予測値y(k)を計算する。操作量更新部105は、例えば、y(k)=φ(k)Τθにより制御量予測値y(k)を計算する。ここで、Τは転置を表す。
ステップS13:次に、操作量更新部105は、制御量予測値y(k)と状態ベクトルφ(k)とに基づいて、次のインデックス(つまり、k+1)における状態ベクトルφ(k+1)を更新する。操作量更新部105は、例えば、以下により状態ベクトルφ(k+1)を更新する。
Figure 2022097222000006
ここで、y(k)には上記のステップS12で計算した制御量予測値を設定し、u(k)には1を設定する。また、y(k-1),・・・,y(k-N+1)及びu(k-1),・・・,u(k-M+1)には、状態ベクトルφ(k)と同じ値を設定する(すなわち、状態ベクトルφ(k)に含まれるy(k-1),・・・,y(k-N+1)及びu(k-1),・・・,u(k-M+1)をそれぞれ設定する。)。
ステップS14:次に、操作量更新部105は、時刻τをτ+ΔTに更新すると共に、インデックスkをk+1に更新する。ここで、ΔTはARMAモデルの1ステップの時間幅を表す。ΔTは制御対象プラント20の時定数に応じて任意に設定することができるが、例えば、制御周期Tと同一にすることが好適である。
ステップS15:次に、操作量更新部105は、τ≧tであるか否かを判定する。そして、τ≧tであると判定されなかった場合(ステップS15でNO)、操作量更新部105は、ステップS12に戻る。これにより、τ≧tとなるまで、ステップS12~ステップS14が繰り返し実行される。
一方で、τ≧tであると判定された場合(ステップS15でYES)、操作量更新部105は、処理を終了する。これにより、最終的に計算されたy(k)が単位ステップ応答Sθ(t)として得られる(つまり、Sθ(t)=y(k)が、ステップ応答関数{Sθ(t)}の時刻tにおける単位ステップ応答として計算される。)。
<モデルパラメータθの推定>
次に、プラント応答関数{Sθ(t)}のモデルパラメータθを推定する処理(つまり、モデルパラメータ推定値θestを算出する処理)について、図4を参照しながら説明する。図4は、モデルパラメータθの推定処理の一例を説明するためのフローチャートである。なお、図4では、制御量現在値yと操作量現在値uとモデルパラメータ設定値θとが入力されたものとして、或るインデックスkにおけるモデルパラメータ推定値θestを算出する場合について説明する。なお、該インデックスkは前記プラント応答関数の計算におけるインデックスkとは独立した値であり、モデルパラメータ推定処理の実行時インデックスを表す。
ステップS21:モデルパラメータ推定部101は、モデルパラメータ推定値θest(k)と共分散行列P(k)とを初期化するか否かを判定する。ここで、初期化すると判定される場合としては、例えば、モデルパラメータ推定値θestを初めて算出する場合(つまり、モデルパラメータ推定値θestの初回算出時)、ユーザ等により初期化指示が行われた場合等が挙げられる。
モデルパラメータ推定値θest(k)と共分散行列P(k)とを初期化すると判定した場合(ステップS21でYES)、モデルパラメータ推定部101は、ステップS22に進む。一方で、モデルパラメータ推定値θest(k)と共分散行列P(k)とを初期化すると判定しなかった場合(ステップS21でNO)、モデルパラメータ推定部101は、ステップS23に進む。
ステップS22:上記のステップS21でモデルパラメータ推定値θest(k)と共分散行列P(k)とを初期化すると判定された場合、モデルパラメータ推定部101は、θest(0)=θ及びP(0)=Iと初期化し、さらにモデル推定処理の実行時インデックスkをk=1と初期化する。ここで、θとしては、既にプラント応答関数{Sθ(t)}に設定されているモデルパラメータ設定値θを用いてもよいし、ユーザ等が事前に想定した初期値を用いてもよいし、全ての要素が0のベクトル等の固定の初期値を用いてもよい。また、Iとしては、単位行列としてもよいし、予め決められた任意の行列としてもよい。
ステップS23:モデルパラメータ推定部101は、モデルパラメータ推定値θest(k-1)と状態ベクトルφ(k)と制御量現在値yとに基づいて、予測誤差ε(k)を計算する。なお、モデルパラメータ推定値θest(k-1)は前回(つまり、k-1のとき)推定したモデルパラメータθの推定値である。また、状態ベクトルφ(k)は前回更新した状態ベクトル(つまり、k-1のときに図3のステップS13で得られた状態ベクトル又はk-1のときに後述するステップS27で得られた状態ベクトル)である。
モデルパラメータ推定部101は、例えば、以下により予測誤差ε(k)を計算する。
y(k)=y
ε(k)=y(k)-φ(k)Τθest(k-1)
ステップS24:次に、モデルパラメータ推定部101は、共分散行列P(k)を更新する。モデルパラメータ推定部101は、例えば、以下の式(2)により共分散行列P(k)を更新する。
Figure 2022097222000007
ここで、P(k-1)は前回(つまり、k-1のとき)得られた共分散行列である。
ステップS25:次に、モデルパラメータ推定部101は、モデルパラメータ推定値θestを更新するか否かを判定する。ここで、モデルパラメータ推定値θestを更新すると判定される場合としては、例えば、上記のステップS22での初期化時から所定の期間が経過するまでモデルパラメータ推定値θestが更新されなかった場合、ユーザ等により更新指示が行われた場合等が挙げられる。
モデルパラメータ推定値θestを更新すると判定した場合(ステップS25でYES)、モデルパラメータ推定部101は、ステップS26に進む。一方で、モデルパラメータ推定値θestを更新すると判定しなかった場合(ステップS25でNO)、モデルパラメータ推定部101は、ステップS26を実行せずに、ステップS27に進む。
ステップS26:モデルパラメータ推定部101は、モデルパラメータ推定値θest(k)を更新する。モデルパラメータ推定部101は、例えば、以下の式(3)によりモデルパラメータ推定値θest(k)を更新する。
Figure 2022097222000008
ステップS27:モデルパラメータ推定部101は、制御量現在値yと操作量現在値uと状態ベクトルφ(k)とに基づいて、次のインデックス(つまり、k+1)における状態ベクトルφ(k+1)を更新する。モデルパラメータ推定部101は、例えば、以下により状態ベクトルφ(k+1)を更新する。
Figure 2022097222000009
ここで、y(k)には制御量現在値yを設定し、u(k)には操作量現在値uを設定する。また、y(k-1),・・・,y(k-N+1)及びu(k-1),・・・,u(k-M+1)には、状態ベクトルφ(k)と同じ値を設定する(すなわち、状態ベクトルφ(k)に含まれるy(k-1),・・・,y(k-N+1)及びu(k-1),・・・,u(k-M+1)をそれぞれ設定する。)。このように、共分散行列の更新とモデルパラメータ推定値θestの算出とは逐次最小2乗法に基づく処理で実現される。ただし、逐次最小2乗法は一例であって、例えば、カルマンフィルタ法が用いられてもよい。
なお、上記のステップS24における共分散行列P(k)の更新の他の例として、モデルパラメータ推定部101は、上記の式(2)を計算した後に、以下の式(4)により共分散行列P(k)を更新してもよい。
Figure 2022097222000010
ここで、0≦α≦1である。また、diag({Pii(k)})は行列P(k)の対角成分のみで構成される行列(非対角成分以外は0)を表す。
上記のαは対角化調整パラメータであり、1に近いほど共分散行列P(k)の非対角成分の絶対値を減少させる効果が大きい。つまり、上記の式(4)は、共分散行列P(k)の非対角成分の絶対値を減少させる補正を行っていることを意味する。このような補正により、共分散行列P(k)の計算を安定化させることが可能(つまり、共分散行列P(k)の計算をより早く収束させることができると共に、その計算精度を向上させることが可能)となる。
ステップS28:モデルパラメータ推定部101は、モデルパラメータ推定処理の実行時インデックスkをk+1に更新する。
<目標値先読み部102の動作>
次に、目標値先読み部102の動作について、図5を参照しながら説明する。図5は、目標値先読み部102の動作の一例を説明するための図である。
図5に示すように、目標値先読み部102は、目標値時系列{r(t)}と、先読み長Tとが入力されると、現在時刻tから先読み長後の時刻t+Tにおける先読み目標値r(t+T)を出力する。このように、目標値先読み部102は、目標値時系列{r(t)}のうち、先読み長後の時刻t+Tにおける目標値r(t+T)を出力する。
なお、図5に示す例では、目標値時系列{r(t)}が直線によって表される場合を示しているが、これに限られない。目標値時系列{r(t)}は任意の曲線や矩形等によって表されてもよい。特に、目標値時系列{r(t)}は、時刻tに応じて周期的に変化する曲線によって表されてもよい。また、目標値時系列{r(t)}は、予め設定されていてもよいし、未来の目標値が随時更新されてもよい。更に、未来の目標値は、例えば、現在の目標値r(t)が一定で継続するものとして現在の目標値を用いてもよいし、目標値が一定の速度で変化するものとして現在の目標値r(t)が先読み長後の時刻t+Tに到達する目標値としてもよい。
<先読み応答補正部111の動作>
次に、先読み応答補正部111の動作について、図6を参照しながら説明する。図6は、先読み応答補正部111の動作の一例を説明するための図(その1)である。
図6に示すように、先読み応答補正部111は、プラント応答関数{Sθ(t)}と、先読み目標偏差e(t)と、先読み長Tと、操作変化量時系列{du(t)}とが入力されると、まず、過去の操作変化量duによって現在の制御量yがT後に変化すると予測される値を先読み応答補正値y(t)として算出する。なお、例えば、現在時刻をtとした場合、過去の操作変化量duは、du(t-T)、du(t-2T)等と表される。
次に、先読み応答補正部111は、先読み目標偏差e(t)を先読み応答補正量y(t)によって補正した補正目標偏差e(t)を算出し、算出した補正目標偏差e(t)を出力する。図6に示すように、補正目標偏差e(t)は、e(t)=r(t+T)-(y(t)+y(t))=e(t)-y(t)で表される。
以降では、先読み応答補正値y(t)の計算方法について説明する。操作変化量時系列{du(t)}のみによる先読み時刻t+Tにおける制御量yの予測値(先読み応答予測値)yn,A(t)を、
Figure 2022097222000011
とする。ここで、M´は先読み応答予測値の計算に使用するモデルの長さ(モデル区間)である。
また、操作変化量時系列{du(t)}のみによる現在時刻tにおける制御量yの予測値(自由応答予測値)yn,B(t)を、
Figure 2022097222000012
とする。ここで、上記と同様に、M´は自由応答予測値の計算に使用するモデル区間である。
そして、先読み応答補正部111は、先読み応答予測値yn,A(t)と、自由応答予測値yn,B(t)との差を先読み応答補正値y(t)とする。すなわち、先読み応答補正部111は、y(t)=yn,A(t)-yn,B(t)とする。
また、一例として、予測時系列を記憶する予測時系列記憶部121を先読み応答補正部111が利用して先読み応答補正値y(t)を算出する場合について、図7を参照しながら説明する。図7は、先読み応答補正部111の動作の一例を説明するための図(その2)である。なお、予測時系列記憶部121は、例えば、補助記憶装置やRAM(Random Access Memory)等の記憶装置を用いて実現可能である。
図7に示すように、予測時系列記憶部121には、現在時刻をtとして、時刻t-Δtから未来の時刻t+Tまでの制御量yの予測値yn,C(t-Δt|t),yn,C(t|t),yn,C(t+Δt|t),・・・,yn,C(t+T|t)を、時系列として記憶している。なお、Tは、予測時系列記憶部121に記憶される予測値yn,Cの長さ(時間長)を決める定数であり、T=N´Δt(N´は、任意の正の整数)であるものとする。また、Δtは、予測間隔であり、Δt=Tであるものとする。以降では、予測値yn,Cを「一般化予測値yn,C」とも表す。
時刻tで予測した時刻sにおける一般化予測値yn,C(s|t)は、
Figure 2022097222000013
で算出される。
予測時系列記憶部121に記憶された一般化予測値yn,Cを用いると、上述した自由応答予測値yn,B(t)は一般化予測値yn,C(t|t)と一致し、上述した先読み応答予測値yn,A(t)は一般化予測値yn,C(t+T|t)と一致する。
したがって、先読み応答補正部111は、予測時系列記憶部121に記憶された一般化予測値yn,Cを用いて、y(t)=yn,A(t)-yn,B(t)=yn,C(t+T|t)-yn,C(t|t)により先読み応答補正値y(t)を算出することができる。これにより、補正目標偏差e(t)=e(t)-y(t)を算出及び出力することができる。このように、予測時系列記憶部121を用いることで、先読み応答補正部111は、少ない計算量と少ないメモリとで補正目標偏差eを計算することができる。
また、予測時系列記憶部121は、操作変化量du(t)が先読み応答補正部111に入力される度に、予測時系列更新部122によって更新される。ここで、m´を自然数として、時刻tで予測したm´Δt先における一般化予測値yn,C(t+m´Δt|t)は、
Figure 2022097222000014
で表される。このため、時刻t+Δtで予測したm´Δt先における一般化予測値yn,C(t+Δt+m´Δt|t+Δt)は、
Figure 2022097222000015
となる。すなわち、時刻t+Δtで予測したm´Δt先における一般化予測値yn,C(t+Δt+m´Δt|t+Δt)は、yn,C(t+Δt+m´Δt|t+Δt)=Sθ(m´Δt)du(t+Δt)+yn,C(t+(m´+1)Δt|t)となる。
したがって、時刻t+Δtで予測したm´Δt先における一般化予測値yn,C(t+Δt+m´Δt|t+Δt)は、時刻tで予測した(m´+1)Δt先の一般化予測値yn,Cに対して、時刻t+Δtにおける操作変化量du(t+Δt)による影響を加えた値として更新される。
<予測時系列更新部122が実行する更新処理>
ここで、予測時系列更新部122が予測時系列記憶部121に保持されたデータを更新する処理について、図8を参照しながら説明する。図8は、予測時系列更新部122が実行する更新処理の一例を説明するためのフローチャートである。以降では、予測時系列記憶部121に記憶されている時刻tでの一般化予測値yn,Cを、時刻t+Δtでの一般化予測値yn,Cに更新する場合について説明する。
ステップS41:予測時系列更新部122は、予測時系列記憶部121に記憶されている時刻tでの一般化予測値yn,Cを時刻Δtだけシフトする。
例えば、図9(a)に示すように、yn,C(t-Δ|t),yn,C(t|t),yn,C(t+Δ|t),・・・,yn,C(t+T|t),・・・,yn,C(t+T|t)が予測時系列記憶部121に記憶されており、それぞれの相対位置m´が-1,0,1,・・・,N´であるものとする。この場合、予測時系列更新部122は、相対位置m´≧0の一般化予測値yn,Cの相対位置m´を-1する。すなわち、予測時系列更新部122は、相対位置m´=0であるyn,C(t|t)を相対位置m´=-1に、相対位置m´=1であるyn,C(t+Δt|t)を相対位置m´=0に順にシフトする。以降も同様に、予測時系列更新部122は、相対位置m´=N´であるyn,C(t+T|t)を相対位置m´=N´-1にシフトするまで、各yn,Cの相対位置m´を順にシフトする。
ステップS42:予測時系列更新部122は、最終時刻(すなわち、相対位置m´=N´)における一般化予測値yn,Cを更新する。時刻tで予測した最終時刻t+N´Δt+Δtにおける一般化予測値yn,C(t+N´Δt+Δt|t)は、例えば、時刻t+N´Δt以前における一般化予測値yn,Cを用いて、
Figure 2022097222000016
により推定する。これは、時刻tでの時刻t+N´Δt-(j-1)Δtにおける一般化予測値yn,Cに対して重みwを掛けて和を取った式である。
一般化予測値yn,C(t+N´Δt+Δt|t)は、これ以外にも、例えば、時刻tで予測した時刻t+N´Δtの一般化予測値yn,Cをそのまま使う場合、すなわち、yn,C(t+N´Δt+Δt|t)=yn,C(t+N´Δt|t)とする場合も考えられる。また、例えば、速度変化を考慮して、時刻t+N´Δtにおける一般化予測値yn,Cと、時刻t+N´Δt-Δtの一般化予測値yn,Cとを外挿して、
Figure 2022097222000017
を用いる場合も考えられる。例えば、この数16で、r=1とすれば、時刻t+N´Δtにおける一般化予測値yn,Cと、時刻t+N´Δt-Δtにおける一般化予測値yn,Cとの差がΔtだけ継続すると推定することに相当する。
これにより、図9(b)に示すように、予測時系列記憶部121の相対位置N´がyn,C(t+T+Δt|t)=yn,C(t+N´Δt+Δt|t)に更新される。
ステップS43:予測時系列更新部122は、最新の操作変化量du(t+Δt)の影響を反映する。すなわち、図9(c)に示すように、予測時系列更新部122は、相対位置m´=0~N´までの各一般化予測値yn,C(t+(m´+1)Δt|t)に対して、Sθ(m´Δt)du(t+Δt)を加える。
具体的には、相対位置m´=0の一般化予測値yn,C(t+Δt|t)に対しては、Sθ(0)du(t+Δt)を加える。また、相対位置m´=1の一般化予測値yn,C(t+2Δt|t)に対しては、Sθ(Δt)du(t+Δt)を加える。m´≧3の場合も同様である。
ステップS44:予測時系列更新部122は、予測時系列記憶部121に記憶されている各一般化予測値yn,Cを時刻t+Δtの予測時系列とする。すなわち、上記のS43により、m´=0~N´までの各一般化予測値yn,Cは、yn,C(t+Δt+m´Δt|t+Δt)=Sθ(m´Δt)du(t+Δt)+yn,C(t+(m´+1)Δt|t)と表せる。
そこで、t´=t+Δtとすれば、図9(d)に示すように、相対位置m´=-1の一般化予測値はyn,C(t´-Δt|t´)、相対位置m´=0の一般化予測値はyn,C(t´|t´)、相対位置m´=1の一般化予測値はyn,C(t´+Δt|t´)と表せる。m´≧2の場合も同様に、yn,C(t´+m´Δt|t´)と表せる。これにより、予測時系列記憶部121に記憶されている時刻tでの一般化予測値yn,Cが、時刻t+Δtでの一般化予測値yn,Cに更新される。
<操作変化量算出部112の動作>
次に、操作変化量算出部112の動作について、図10を参照しながら説明する。図10は、操作変化量算出部112の動作の一例を説明するための図である。
図10に示すように、操作変化量算出部112は、補正目標偏差e(t)が入力されると、この補正目標偏差e(t)に対して所定の制御ゲインを乗じることで操作変化量du(t)を算出し、算出したdu(t)を出力する。例えば、所定の制御ゲインとして積分ゲインkを用いる場合、操作変化量du(t)は、du(t)=k×e(t)で算出される。
ただし、補正目標偏差e(t)に対して所定の制御ゲインを乗じた結果、操作変化量duの上限値dumaxを超える場合、操作変化量算出部112は、dumaxを操作変化量du(t)とする。同様に、補正目標偏差e(t)に対して所定の制御ゲインを乗じた結果、操作変化量duの下限値duminを下回る場合、操作変化量算出部112は、duminを操作変化量du(t)とする。
<制御装置10のハードウェア構成>
次に、一実施形態に係る制御装置10のハードウェア構成について、図11を参照しながら説明する。図11は、一実施形態に係る制御装置10のハードウェア構成の一例を示す図である。
図11に示すように、一実施形態に係る制御装置10は、入力装置201と、表示装置202と、外部I/F203と、通信I/F204と、ROM(Read Only Memory)205と、RAM206と、CPU207と、補助記憶装置208とを有する。これら各ハードウェアは、バス209により相互に通信可能に接続されている。
入力装置201は、例えば各種ボタンやタッチパネル、キーボード、マウス等であり、制御装置10に各種の操作を入力するのに用いられる。表示装置202は、例えばディスプレイ等であり、制御装置10による各種の処理結果を表示する。なお、制御装置10は、入力装置201及び表示装置202の少なくとも一方を有していなくてもよい。
外部I/F203は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。制御装置10は、外部I/F203を介して、記録媒体203aの読み取りや書き込みを行うことができる。記録媒体203aには、例えば、SDメモリカード(SD memory card)やUSBメモリ、CD(Compact Disk)、DVD(Digital Versatile Disk)等がある。なお、制御装置10が有する各機能部を実現する1以上のプログラムは、記録媒体203aに格納されていてもよい。
通信I/F204は、制御装置10が他の装置とデータ通信を行うためのインタフェースである。なお、制御装置10が有する各機能部を実現する1以上のプログラムは、通信I/F204を介して、所定のサーバ等から取得(ダウンロード)されてもよい。
ROM205は、電源を切ってもデータを保持することができる不揮発性の半導体メモリである。RAM206は、プログラムやデータを一時保持する揮発性の半導体メモリである。CPU207は、例えば補助記憶装置208やROM205からプログラムやデータをRAM206に読み出して、各種処理を実行する演算装置である。
補助記憶装置208は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性のメモリである。補助記憶装置208に格納されているプログラムやデータには、例えば、制御装置10が有する各機能部を実現する1以上のプログラムや基本ソフトウェアであるOS(Operating System)、OS上で動作する各種アプリケーションプログラム等がある。
一実施形態に係る制御装置10は、図11に示すハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、図11では、制御装置10が1台のコンピュータで実現されている場合のハードウェア構成例を示したが、これに限られず、制御装置10は複数台のコンピュータで実現されていてもよい。
[第二の実施形態]
次に、第二の実施形態について説明する。第二の実施形態では、モデルパラメータ推定値θestを用いて制御量を推定する場合について説明する。これにより、モデルパラメータ推定値θestをプラント応答関数{Sθ(t)}に設定した場合における制御量の推定値を得ることができるため、例えば、ユーザ等は、実際の制御量と比較することで、このモデルパラメータ推定値θestをプラント応答関数{Sθ(t)}に設定すべきか否かを判断することができるようになる。言い換えれば、ユーザ等は、制御量の推定値と実際の制御量とを比較することで、現在のプラント応答関数{Sθ(t)}の良否を視覚的に容易に判断することができるようになる。
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の構成要素については、その説明を省略又は簡略化する。
<制御装置10の構成>
まず、本実施形態に係る制御装置10の構成について、図12を参照しながら説明する。図12は、第二の実施形態に係る制御装置10の構成の一例を示す図である。
図12に示すように、本実施形態に係る制御装置10は、更に、制御量推定部107を有する。制御量推定部107は、例えば、制御装置10にインストールされた1以上のプログラムがCPU等に実行させる処理により実現される。
制御量推定部107は、モデルパラメータ推定部101により出力されたモデルパラメータ推定値θestと、制御量現在値yと、操作量現在値uとに基づいて、制御量の推定値yestを算出し、出力する。また、制御量推定部107は、推定初期化フラグの値に応じて計算の初期化(具体的には状態ベクトルφ(k)の初期化)を行う。なお、以降では、制御量の推定値yestを「制御量推定値yest」とも表す。
<制御量の推定>
次に、制御量を推定する処理(つまり、制御量推定値yestを算出する処理)について、図13を参照しながら説明する。図13は、制御量推定処理の一例を説明するためのフローチャートである。なお、図14では、モデルパラメータ推定値θestと制御量現在値yと操作量現在値uとが入力されたものとして、或るインデックスkにおける制御量推定値yestを算出する場合について説明する。なお、該インデックスkは前記プラント応答関数の計算におけるインデックスkとは独立した値であり、制御量推定処理の実行時インデックスを表す。
ステップS51:制御量推定部107は、推定初期化フラグがONであるか否かを判定する。なお、推定初期化フラグがONである場合には、制御量の推定は行わずに、状態ベクトルφ(k+1)が初期化される。推定初期化フラグのON又はOFFは、例えば、ユーザ等によって適宜設定されればよい。
推定初期化フラグがONであると判定した場合(ステップS51でYES)、制御量推定部107は、ステップS52に進む。一方で、推定初期化フラグがONであると判定しなかった場合(ステップS51でNO)、制御量推定部107は、ステップS53に進む。
ステップS52:上記のステップS51で推定初期化フラグがONであると判定された場合、制御量推定部107は、状態ベクトルφ(k+1)を初期化して、処理を終了する。制御量推定部107は、例えば、以下により状態ベクトルφ(k+1)を初期化する。
Figure 2022097222000018
ここで、y(k)には制御量現在値yを設定し、u(k)には操作量現在値uを設定する。また、y(k-1),・・・,y(k-N+1)及びu(k-1),・・・,u(k-M+1)には、状態ベクトルφ(k)と同じ値を設定する(すなわち、状態ベクトルφ(k)に含まれるy(k-1),・・・,y(k-N+1)及びu(k-1),・・・,u(k-M+1)をそれぞれ設定する。)。
推定初期化フラグがONの状態が一定時間継続することで、上記のステップS52により、状態ベクトルφ(k+1)の各要素が、計測部103によって計測された制御量及び操作量(つまり、制御量の観測値及び操作量の観測値)に初期化される。
ステップS53:上記のステップS51で推定初期化フラグがONであると判定されなかった場合、制御量推定部107は、モデルパラメータ推定値θestと状態ベクトルφ(k)とに基づいて制御量推定値yest(k)を計算する。制御量推定部107は、例えば、yest(k)=φ(k)Τθestにより制御量推定値yest(k)を計算する。
ステップS54:次に、制御量推定部107は、上記のステップS53で計算された制御量推定値yest(k)と、操作量現在値uと、状態ベクトルφ(k)とに基づいて、次のインデックス(つまり、k+1)における状態ベクトルφ(k+1)を更新する。制御量推定部107は、例えば、以下により状態ベクトルφ(k+1)を更新する。
Figure 2022097222000019
ここで、y(k)には制御量推定値yest(k)を設定し、u(k)には操作量現在値uを設定する。また、y(k-1),・・・,y(k-N+1)及びu(k-1),・・・,u(k-M+1)には、状態ベクトルφ(k)と同じ値を設定する。このように、制御量推定値yest(k)を用いて状態ベクトルφ(k+1)を更新することで、上記のステップS53での制御量推定値の計算を、制御量の観測値及び操作量の観測値のうちの操作量の観測値のみから行うことが可能となる(つまり、制御量の観測値を用いずに制御量推定値を計算することが可能となる。)。
ステップS55:制御量推定部107は、制御量推定処理の実行時インデックスkをk+1に更新する。
[第三の実施形態]
次に、第三の実施形態について説明する。第三の実施形態では、モデルパラメータ推定値θestにより、プラント応答関数{Sθ(t)}に設定されているモデルパラメータ設定値θを更新する場合について説明する。
なお、第三の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の構成要素については、その説明を省略又は簡略化する。
<制御装置10の構成>
本実施形態に係る制御装置10の構成について、図14を参照しながら説明する。図14は、第三の実施形態に係る制御装置10の構成の一例を示す図である。
図14に示すように、本実施形態に係る制御装置10は、更に、モデルパラメータ更新部108を有する。モデルパラメータ更新部108は、例えば、制御装置10にインストールされた1以上のプログラムがCPU等に実行させる処理により実現される。
モデルパラメータ更新部108は、モデル更新トリガの値に応じて、モデルパラメータ推定部101により出力されたモデルパラメータ推定値θestをプラント応答関数{Sθ(t)}に設定する。例えば、モデル更新トリガがONである場合、モデルパラメータ更新部108は、モデルパラメータ推定値θestをプラント応答関数{Sθ(t)}に設定する(つまり、モデルパラメータ推定値θestをモデルパラメータ設定値θとする。)。なお、例えば、モデル更新トリガがOFFである場合は、モデルパラメータ更新部108は、何もしない。
これにより、ユーザ等は、例えば、モデルパラメータ推定値θestをプラント応答関数{Sθ(t)}に設定することでより高い精度で制御が可能であると判断した場合には、モデル更新トリガをONにすることで、より高い精度の制御を実現することが可能となる。
[第四の実施形態]
次に、第四の実施形態について説明する。第四の実施形態では、外乱vも考慮してモデルパラメータ推定値θestを算出する場合について説明する。
なお、第四の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同一の構成要素については、その説明を省略又は簡略化する。
<制御装置10の構成>
本実施形態に係る制御装置10の構成について、図15を参照しながら説明する。図15は、第四の実施形態に係る制御装置10の構成の一例を示す図である。
図15に示すように、本実施形態に係る制御装置10の構成は第一の実施形態と同様であるが、主に、モデルパラメータ推定部101及び計測部103の機能が異なる。
本実施形態に係る計測部103は、外乱vも計測し、計測した外乱vをモデルパラメータ推定部101に出力する。なお、計測部103により計測された外乱vを「観測外乱v」とも表す。
また、本実施形態に係るモデルパラメータ推定部101は、制御量現在値yと、操作量現在値uと、観測外乱vと、モデルパラメータ設定値θとが入力されると、モデルパラメータの推定値θestを算出し、出力する。ここで、観測外乱vを用いる場合、プラント応答関数Sθ(t)の計算モデルとしては、例えば、ARMAXモデル(autoregressive moving average model with exogenous variables)を採用すればよい。一例として、制御量yについては過去N点の自己回帰、操作量uについては過去M点の移動平均、観測外乱vについては過去L点の攪乱項を用いた場合、プラント応答関数Sθ(t)の計算モデルは、以下の式(5)で表される。なお、Lは、例えば、制御装置10のユーザ等によって予め設定される。
Figure 2022097222000020
なお、モデルパラメータ設定値θは、
Figure 2022097222000021
と表される。
したがって、状態ベクトルφ(k)を
Figure 2022097222000022
と読み替えることで、モデルパラメータ推定部101は、図4のステップS21~ステップS27によりモデルパラメータ推定値θestを算出することができる。ただし、上記のステップS27で状態ベクトルφ(k+1)を更新する際には、v(k)には観測外乱vを設定する。これにより、外乱vも考慮したモデルパラメータθを推定することが可能となる。
[実施例1]
次に、実施例1について説明する。実施例1では、第二の実施形態に係る制御装置10によって制御対象プラント20を制御する場合について説明する。
まず、真のプラント応答は、ΔTを時間メッシュとして、y(t)=-ay(t-ΔT)-ay(n-2ΔT)+bu(n-ΔT)+bu(n-2ΔT)+δ(t)で表されるものとする。ここで、δ(t)はノイズを表す。
ΔT=Tとすれば、プラント応答関数{Sθ(t)}は2次のARMAモデルとなり、y(k)=-ay(k-1)-ay(k-2)+by(k-1)+by(k-2)と表せる。
このとき、状態ベクトルは、
Figure 2022097222000023
と表せる。
モデルパラメータ推定値は、
Figure 2022097222000024
と表せる。
モデルパラメータの真値は、
Figure 2022097222000025
と表せる。また、制御量推定値は、yest(k)=φ(k)Τθ(k-1)と表すことができる。
実施例1では、モデルパラメータの真値は、
Figure 2022097222000026
であるものとする。このときの制御対象プラント20のステップ応答を図16に示す。図16に示すように、実施例1における制御対象プラント20のステップ応答は、滑らかに増加する形状となっている。
実施例1では、制御対象プラント20をバッチ運転し、図17に示すように、3つのバッチ(バッチ1、バッチ2、バッチ3)が連続するものとする。このとき、実施例1では、図17に示すように、運転開始前の時刻tで共分散行列の初期化とモデルパラメータの初期化とを行う。
モデルパラメータの初期値は、
Figure 2022097222000027
とした。
また、共分散行列の初期値は、
Figure 2022097222000028
とした。
更に、対角化調整パラメータはα=0.7とした。
実施例1では、図17に示すように、制御装置10を運用するものとする。すなわち、バッチ開始後は共分散行列の更新を継続して行うと共に、バッチ1が開始され、或る程度共分散行列が更新された時刻tでモデルパラメータ推定値更新をONにする(つまり、図4のステップS25でYESとなるようにする)ことで、以降は継続してモデルパラメータ推定値を更新する。また、或る程度モデルパラメータ推定値が更新され、バッチ1が終了した時点tで推定初期化フラグをONにし、状態ベクトルを初期化する。その後、推定初期化フラグをOFFにして、バッチ2の間、バッチ2の制御量推定を行う。同様に、バッチ2が終了した時点tで推定初期化フラグをONにし、状態ベクトルを初期化する。その後、推定初期化フラグをOFFにして、バッチ3の間、バッチ3の制御量推定を行う。
このとき、操作量u及び制御量yが、それぞれ図18(a)及び図18(b)に示すものであったとする。すなわち、実施例1では、操作量uに応じて制御量yが変動しており、制御量yに1つの山があるものとする。この場合、モデルパラメータ推定値θest及び制御量推定値yestは、図19に示すようになる。図19の上段がモデルパラメータ推定値θest、下段が制御量推定値yestである。なお、θ 、θ 、θ 及びθ は、それぞれθの真値、θの真値、θの真値及びθの真値である。
≪バッチ1≫
まず、時刻0~50までは共分散行列の更新を行い、モデルパラメータ推定値は更新しない。時刻50からモデルパラメータ推定値の更新を開始しているが、モデルパラメータ推定値は、バッチ1の間、その値が変化し、バッチ1終了近くの時刻230付近ではほぼ真値に落ち着いている。バッチ1終了後、推定初期化フラグをONにして、状態ベクトルを初期化する。
≪バッチ2≫
モデルパラメータ推定値の更新は継続しているが、ほぼ一定に近い値で落ち着いている。また、制御量推定部107によって算出された制御量推定値yestと、計測部103によって計測された制御量y(つまり、制御量の観測値)とを比較すると、ピークの位置はほぼ一致しているものの、制御量推定値yestが観測値yよりもやや高めの値となっている。
≪バッチ3≫
モデルパラメータ推定値の更新は継続しているが、ほぼ一定に近い値で落ち着いている。バッチ2と比較すると変動量は少ない。また、制御量推定部107によって算出された制御量推定値yestと、計測部103によって計測された制御量y(観測値y)とを比較すると、ピークの位置はほぼ一致している。バッチ2と比較すると、ピークの位置でyestが観測値yよりもやや低めの値となっているが、後半の時刻200~230では制御量推定値yestと観測値yとがよく一致しているといえる。
[実施例2]
次に、実施例2について説明する。実施例2では、操作量u及び制御量yが実施例1と異なり、それ以外は実施例1と同様であるものとする。実施例2では、操作量u及び制御量yが、それぞれ図20(a)及び図20(b)に示すものであったとする。すなわち、実施例2では、操作量uに応じて制御量yが変動しており、制御量yに2つの山があるものとする。この場合、モデルパラメータ推定値θest及び制御量推定値yestは、図21に示すようになる。図21の上段がモデルパラメータ推定値θest、下段が制御量推定値yestである。なお、θ 、θ 、θ 及びθ は、それぞれθの真値、θの真値、θの真値及びθの真値である。
≪バッチ1≫
まず、時刻0~50までは共分散行列の更新を行い、モデルパラメータ推定値は更新しない。時刻50からモデルパラメータ推定値の更新を開始しているが、モデルパラメータ推定値は、バッチ1の間、その値が変化し、バッチ1終了近くの時刻230付近ではほぼ真値に落ち着いている。バッチ1終了後、推定初期化フラグをONにして、状態ベクトルを初期化する。
≪バッチ2≫
モデルパラメータ推定値の更新は継続しているが、ほぼ一定に近い値で落ち着いている。また、制御量推定部107によって算出された制御量推定値yestと、計測部103によって計測された制御量yとを比較すると、ピークの位置で若干のずれはあるものの、ほぼ近い値となっている。
≪バッチ3≫
モデルパラメータ推定値の更新は継続しているが、ほぼ一定に近い値で落ち着いている。バッチ2と比較すると変動量は少ない。また、制御量推定部107によって算出された制御量推定値yestと、計測部103によって計測された制御量y(観測値y)とを比較すると、ピークの位置で若干のずれはあるものの、ほぼ近い値となっている。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更、組み合わせ等が可能である。
10 制御装置
20 制御対象プラント
101 モデルパラメータ推定部
102 目標値先読み部
103 計測部
104 差分器
105 操作量更新部
106 タイマ
111 先読み応答補正部
112 操作変化量算出部
113 加算器

Claims (10)

  1. 制御対象に対する操作量を出力し、前記制御対象の制御量を目標値に追従させる制御装置であって、
    前記目標値の時系列である目標値時系列と、前記目標値を先読みする時間幅を示す先読み長とが入力されると、前記目標値時系列に含まれる複数の目標値のうち、前記先読み長後の目標値を示す先読み目標値を取得する目標値先読み手段と、
    前記先読み目標値と、前記制御対象の現在の制御量との差である先読み目標偏差を算出する先読み目標偏差算出手段と、
    前記制御対象のプラント応答を表すプラント応答関数と、現在に至るまでの過去の前記操作量の変化量とに基づいて、前記先読み長後の制御量の予測値と、前記先読み目標値との差を示す補正目標偏差を算出する補正目標偏差算出手段と、
    前記補正目標偏差に基づいて、新たな前記操作量を算出する操作量算出手段と、
    前記制御量と、前記操作量とに基づいて、前記プラント応答関数に含まれるモデルパラメータの推定値を算出するモデルパラメータ推定手段と、
    を有することを特徴とする制御装置。
  2. ON又はOFFのいずれかの値を取るフラグがONになった時点における前記制御量を初期値として、前記モデルパラメータ推定手段により算出された推定値と、前記操作量とに基づいて、前記時点以降の制御量の推定値を算出する制御量推定手段、
    を有することを特徴とする請求項1に記載の制御装置。
  3. 前記制御量推定手段は、
    前記モデルパラメータ推定手段により算出された推定値を用いた前記制御量の推定値の算出と、前記プラント応答関数に含まれるモデルパラメータを用いた前記制御量の推定値の算出とを行う、
    ことを特徴とする請求項2に記載の制御装置。
  4. 予め決められた更新トリガに応じて、前記モデルパラメータ推定手段により算出された推定値を、前記プラント応答関数に含まれるパラメータに設定するモデルパラメータ更新手段、
    を有することを特徴とする請求項1乃至3の何れか一項に記載の制御装置。
  5. 前記モデルパラメータ推定手段は、
    前記制御量と、前記操作量と、前記制御対象に対する外乱の計測値とに基づいて、前記プラント応答関数に含まれるモデルパラメータの推定値を算出する、
    ことを特徴とする請求項1乃至4の何れか一項に記載の制御装置。
  6. 前記プラント応答関数は、ARMAモデル又はARMAXモデルから計算するステップ応答であり、
    前記モデルパラメータは、前記ARMAモデル又はARMAXモデルの係数であり、
    前記先読み長後の制御量の予測値は、前記先読み長後の時点におけるステップ応答を前記ARMAモデル又はARMAXモデルにより計算することで算出される、ことを特徴とする請求項1乃至5の何れか一項に記載の制御装置。
  7. 前記モデルパラメータ推定手段は、
    逐次最小2乗法又はカルマンフィルタの手法により、共分散行列の更新と前記モデルパラメータの推定値の算出とを行う、
    ことを特徴とする請求項1乃至6の何れか一項に記載の制御装置。
  8. 前記モデルパラメータ推定手段は、
    前記共分散行列の更新において、前記共分散行列の非対角項の絶対値を減少させる補正処理を行う、
    ことを特徴とする請求項7に記載の制御装置。
  9. 制御対象に対する操作量を出力し、前記制御対象の制御量を目標値に追従させるコンピュータが、
    前記目標値の時系列である目標値時系列と、前記目標値を先読みする時間幅を示す先読み長とが入力されると、前記目標値時系列に含まれる複数の目標値のうち、前記先読み長後の目標値を示す先読み目標値を取得する目標値先読み手順と、
    前記先読み目標値と、前記制御対象の現在の制御量との差である先読み目標偏差を算出する先読み目標偏差算出手順と、
    前記制御対象のプラント応答を表すプラント応答関数と、現在に至るまでの過去の前記操作量の変化量とに基づいて、前記先読み長後の制御量の予測値と、前記先読み目標値との差を示す補正目標偏差を算出する補正目標偏差算出手順と、
    前記補正目標偏差に基づいて、新たな前記操作量を算出する操作量算出手順と、
    前記制御量と、前記操作量とに基づいて、前記プラント応答関数に含まれるモデルパラメータの推定値を算出するモデルパラメータ推定手順と、
    を実行することを特徴とする制御方法。
  10. 制御対象に対する操作量を出力し、前記制御対象の制御量を目標値に追従させるコンピュータを、
    前記目標値の時系列である目標値時系列と、前記目標値を先読みする時間幅を示す先読み長とが入力されると、前記目標値時系列に含まれる複数の目標値のうち、前記先読み長後の目標値を示す先読み目標値を取得する目標値先読み手段、
    前記先読み目標値と、前記制御対象の現在の制御量との差である先読み目標偏差を算出する先読み目標偏差算出手段、
    前記制御対象のプラント応答を表すプラント応答関数と、現在に至るまでの過去の前記操作量の変化量とに基づいて、前記先読み長後の制御量の予測値と、前記先読み目標値との差を示す補正目標偏差を算出する補正目標偏差算出手段、
    前記補正目標偏差に基づいて、新たな前記操作量を算出する操作量算出手段、
    前記制御量と、前記操作量とに基づいて、前記プラント応答関数に含まれるモデルパラメータの推定値を算出するモデルパラメータ推定手段、
    として機能させるためのプログラム。
JP2020210682A 2020-12-18 2020-12-18 制御装置、制御方法及びプログラム Active JP6901037B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020210682A JP6901037B1 (ja) 2020-12-18 2020-12-18 制御装置、制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020210682A JP6901037B1 (ja) 2020-12-18 2020-12-18 制御装置、制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP6901037B1 JP6901037B1 (ja) 2021-07-14
JP2022097222A true JP2022097222A (ja) 2022-06-30

Family

ID=76753062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020210682A Active JP6901037B1 (ja) 2020-12-18 2020-12-18 制御装置、制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6901037B1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7014330B1 (ja) 2021-08-19 2022-02-01 富士電機株式会社 制御装置、制御方法、及びプログラム
JP7047966B1 (ja) 2021-10-01 2022-04-05 富士電機株式会社 プラント応答推定装置、プラント応答推定方法、及びプログラム
JP7115654B1 (ja) 2022-02-04 2022-08-09 富士電機株式会社 制御装置、制御方法及びプログラム

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2754676B2 (ja) * 1989-03-10 1998-05-20 トヨタ自動車株式会社 内燃機関の燃料噴射量制御装置
JP2007122592A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 卸商品市場入札価格設定支援システムと方法、およびプログラム
JP4755555B2 (ja) * 2006-09-04 2011-08-24 日本電信電話株式会社 音声信号区間推定方法、及びその装置とそのプログラムとその記憶媒体
JP2012078980A (ja) * 2010-09-30 2012-04-19 Nippon Hoso Kyokai <Nhk> モデルパラメータ推定装置およびそのプログラム
WO2015060149A1 (ja) * 2013-10-21 2015-04-30 富士電機株式会社 制御系設計支援装置、制御系設計支援プログラム、制御系設計支援方法、操作変化量算出装置および制御装置
JP2015108499A (ja) * 2013-10-24 2015-06-11 清水建設株式会社 空調最適制御システム及び空調最適制御方法
WO2016031191A1 (ja) * 2014-08-28 2016-03-03 日本電気株式会社 情報処理装置、情報処理方法、及び、記録媒体
WO2016092872A1 (ja) * 2014-12-11 2016-06-16 富士電機株式会社 制御装置、そのプログラム、プラント制御方法
JP2019145098A (ja) * 2018-02-19 2019-08-29 富士電機株式会社 制御装置、制御方法及びプログラム
JP2020095352A (ja) * 2018-12-10 2020-06-18 富士電機株式会社 制御装置、制御方法及びプログラム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2754676B2 (ja) * 1989-03-10 1998-05-20 トヨタ自動車株式会社 内燃機関の燃料噴射量制御装置
JP2007122592A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 卸商品市場入札価格設定支援システムと方法、およびプログラム
JP4755555B2 (ja) * 2006-09-04 2011-08-24 日本電信電話株式会社 音声信号区間推定方法、及びその装置とそのプログラムとその記憶媒体
JP2012078980A (ja) * 2010-09-30 2012-04-19 Nippon Hoso Kyokai <Nhk> モデルパラメータ推定装置およびそのプログラム
WO2015060149A1 (ja) * 2013-10-21 2015-04-30 富士電機株式会社 制御系設計支援装置、制御系設計支援プログラム、制御系設計支援方法、操作変化量算出装置および制御装置
JP2015108499A (ja) * 2013-10-24 2015-06-11 清水建設株式会社 空調最適制御システム及び空調最適制御方法
WO2016031191A1 (ja) * 2014-08-28 2016-03-03 日本電気株式会社 情報処理装置、情報処理方法、及び、記録媒体
WO2016092872A1 (ja) * 2014-12-11 2016-06-16 富士電機株式会社 制御装置、そのプログラム、プラント制御方法
JP2019145098A (ja) * 2018-02-19 2019-08-29 富士電機株式会社 制御装置、制御方法及びプログラム
JP2020095352A (ja) * 2018-12-10 2020-06-18 富士電機株式会社 制御装置、制御方法及びプログラム

Also Published As

Publication number Publication date
JP6901037B1 (ja) 2021-07-14

Similar Documents

Publication Publication Date Title
JP6901037B1 (ja) 制御装置、制御方法及びプログラム
US7894943B2 (en) Real-time global optimization of building setpoints and sequence of operation
JP7206874B2 (ja) 制御装置、制御方法及びプログラム
JP6927446B1 (ja) 制御装置、制御方法及びプログラム
JP2016100009A (ja) 機械の動作を制御する方法、および機械の動作を反復的に制御する制御システム
JP2004503000A (ja) 多変量マトリクスプロセス制御
JP2015232436A (ja) 蒸気圧縮システムを制御するシステム及び方法
JP2010514986A (ja) 技術システムの、とりわけガスタービンの、計算機支援による閉ループ制御および/または開ループ制御のための方法
JP7014330B1 (ja) 制御装置、制御方法、及びプログラム
JP7047966B1 (ja) プラント応答推定装置、プラント応答推定方法、及びプログラム
CN115280075A (zh) 空调控制的学习装置以及推理装置
JP2021051462A (ja) 情報処理装置及びプログラム
JP2011242981A (ja) 関数生成装置、及び関数生成方法
JP7231102B1 (ja) プラント応答推定装置、プラント応答推定方法、及びプログラム
JP7115654B1 (ja) 制御装置、制御方法及びプログラム
JP5717950B2 (ja) モデル関数処理装置および方法
JP6848710B2 (ja) プラント制御調整装置及び方法
JP7283095B2 (ja) 制御装置、制御方法及びプログラム
JP2022163293A (ja) 運用支援装置、運用支援方法及びプログラム
WO2023199588A1 (ja) 制御装置、制御方法及びプログラム
JP2020021411A (ja) 制御装置、制御方法及びプログラム
CN114117778A (zh) 控制参数确定方法、装置、电子设备和存储介质
Mayfrank et al. End-to-End Reinforcement Learning of Koopman Models for Economic Nonlinear MPC
JP6904473B1 (ja) モデル作成支援装置、モデル作成支援方法及びプログラム
JP7484504B2 (ja) 制御装置、制御方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201218

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201218

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210518

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210531

R150 Certificate of patent or registration of utility model

Ref document number: 6901037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250