(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-29
(45)【発行日】2024-04-08
(54)【発明の名称】制御装置、方法、プログラム及びシステム
(51)【国際特許分類】
G05B 13/02 20060101AFI20240401BHJP
G06N 20/00 20190101ALI20240401BHJP
【FI】
G05B13/02 L
G06N20/00
(21)【出願番号】P 2020203983
(22)【出願日】2020-12-09
(62)【分割の表示】P 2020517407の分割
【原出願日】2019-10-21
【審査請求日】2022-10-17
(73)【特許権者】
【識別番号】517045705
【氏名又は名称】株式会社エイシング
(74)【代理人】
【識別番号】100098899
【氏名又は名称】飯塚 信市
(74)【代理人】
【識別番号】100163865
【氏名又は名称】飯塚 健
(72)【発明者】
【氏名】出澤 純一
(72)【発明者】
【氏名】菅原 志門
【審査官】松本 泰典
(56)【参考文献】
【文献】特開平10-275002(JP,A)
【文献】特開平7-152404(JP,A)
【文献】特開2019-071405(JP,A)
【文献】特開平6-332501(JP,A)
【文献】米国特許出願公開第2017/0326726(US,A1)
【文献】特開平7-210209(JP,A)
【文献】特開2000-187505(JP,A)
【文献】特開2019-71405(JP,A)
【文献】特開2019-166603(JP,A)
【文献】特開2018-26020(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/02
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
所定の装置に対してフィードバック制御を行うための制御装置であって、
前記装置からフィードバックされる出力と目標値に基づいて、前記装置に対する第1の操作量を生成する、第1のコントローラと、
前記装置からフィードバックされる出力と前記第1の操作量に基づいて前記装置からの予測出力を生成するよう機械学習された学習済モデルを備えた、予測出力生成部と、
前記予測出力と前記目標値
の偏差を入力として、前記装置に対する第2の操作量を生成する、第2のコントローラと、
前記第1の操作量と前記第2の操作量
を加算して、前記装置に対する操作量である統合操作量を生成する、統合操作量生成部と、
前記第2の操作量が
所定の値域にあるか否かを判定する、判定部と、
前記判定部において
前記第2の操作量が前記値域にないと判定された場合、前記統合操作量生成部へと前記第2の操作量を提供せず、それにより、前記第1の操作量を前記統合操作量とする、無効化処理部と、
前記第2の操作量が
前記値域にないと判定された場合に、前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、記憶部と、を備え、
前記第1のコントローラ及び前記第2のコントローラは、それぞれ、P制御、PI制御、PD制御又はPID制御のいずれかを行うものである、制御装置。
【請求項2】
前記制御装置は、さらに、
前記機械学習用データに基づいて学習処理を行い前記学習済モデルを更新する、学習処理部を備える、請求項1に記載の制御装置。
【請求項3】
前記記憶部は、さらに、
前記第2の操作量が
0となる場合に、前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、請求項1に記載の制御装置。
【請求項4】
前記記憶部は、さらに、
前記第2の操作量が
前記値域にないと判定された場合の参照時間ステップに係る前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力に加えて、さらに、前記参照時間
ステップより時間的に前の1又は複数の時間ステップに係る前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、請求項1に記載の制御装置。
【請求項5】
前記学習済モデルは、階層的に分割された状態空間へとそれぞれ対応付けられた複数のノードを階層的に配置することにより構成された木構造を有する学習モデルを用いて機械学習を行うことにより得られるものである、請求項1に記載の制御装置。
【請求項6】
所定の装置に対してフィードバック制御を行うための制御装置における制御方法であって、
前記制御装置は、
前記装置からフィードバックされる出力と目標値に基づいて、前記装置に対する第1の操作量を生成する、第1のコントローラと、
前記装置からフィードバックされる出力と前記第1の操作量に基づいて前記装置からの予測出力を生成するよう機械学習された学習済モデルを備えた、予測出力生成部と、
前記予測出力と前記目標値
の偏差を入力として、前記装置に対する第2の操作量を生成する、第2のコントローラと、を備え、
前記第1の操作量と前記第2の操作量
を加算して、前記装置に対する操作量である統合操作量を生成する、統合操作量生成ステップと、
前記第2の操作量が
所定の値域にあるか否かを判定する、判定ステップと、
前記判定
ステップにおいて
前記第2の操作量が前記値域にないと判定された場合、前記統合操作量生成ステップにおいて前記第2の操作量を前記第1の操作量と加算せず、それにより、前記第1の操作量を前記統合操作量とする、無効化処理ステップと、
前記第2の操作量が
前記値域にないと判定された場合に、前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、記憶ステップと、を備え、
前記第1のコントローラ及び前記第2のコントローラは、それぞれ、P制御、PI制御、PD制御又はPID制御のいずれかを行うものである、制御方法。
【請求項7】
所定の装置に対してフィードバック制御を行うための制御装置の制御プログラムであって、
前記制御装置は、
前記装置からフィードバックされる出力と目標値に基づいて、前記装置に対する第1の操作量を生成する、第1のコントローラと、
前記装置からフィードバックされる出力と前記第1の操作量に基づいて前記装置からの予測出力を生成するよう機械学習された学習済モデルを備えた、予測出力生成部と、
前記予測出力と前記目標値
の偏差を入力として、前記装置に対する第2の操作量を生成する、第2のコントローラと、を備え、
前記第1の操作量と前記第2の操作量
を加算して、前記装置に対する操作量である統合操作量を生成する、統合操作量生成ステップと、
前記第2の操作量が
所定の値域にあるか否かを判定する、判定ステップと、
前記判定
ステップにおいて
前記第2の操作量が前記値域にないと判定された場合、前記統合操作量生成ステップにおいて前記第2の操作量を前記第1の操作量と加算せず、それにより、前記第1の操作量を前記統合操作量とする、無効化処理ステップと、
前記第2の操作量が
前記値域にないと判定された場合に、前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、記憶ステップと、を備え、
前記第1のコントローラ及び前記第2のコントローラは、それぞれ、P制御、PI制御、PD制御又はPID制御のいずれかを行うものである、制御プログラム。
【請求項8】
所定の装置に対してフィードバック制御を行うための制御システムであって、
前記装置からフィードバックされる出力と目標値に基づいて、前記装置に対する第1の操作量を生成する、第1のコントローラと、
前記装置からフィードバックされる出力と前記第1の操作量に基づいて前記装置からの予測出力を生成するよう機械学習された学習済モデルを備えた、予測出力生成部と、
前記予測出力と前記目標値
の偏差を入力として、前記装置に対する第2の操作量を生成する、第2のコントローラと、
前記第1の操作量と前記第2の操作量
を加算して、前記装置に対する操作量である統合操作量を生成する、統合操作量生成部と、
前記第2の操作量が
所定の値域にあるか否かを判定する、判定部と、
前記判定部において
前記第2の操作量が前記値域にないと判定された場合、前記統合操作量生成部へと前記第2の操作量を提供せず、それにより、前記第1の操作量を前記統合操作量とする、無効化処理部と、
前記第2の操作量が
前記値域にないと判定された場合に、前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、記憶部と、を備え、
前記第1のコントローラ及び前記第2のコントローラは、それぞれ、P制御、PI制御、PD制御又はPID制御のいずれかを行うものである、制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、フィードバック制御を行う制御装置に関する。
【背景技術】
【0002】
様々な装置の制御には、フィードバック制御、例えば、PID制御が広く使用されている。フィードバック制御は、古典制御に属するものの、その過去の実績に基づく信頼や、技術者の経験則による調整の容易さから、現在に至っても未だ産業界の主力の制御手法である。
【0003】
図11は、従前のフィードバック制御の基本的構成、すなわち従前のフィードバックシステム200について示す図である。同図から明らかな通り、制御機構202の検出子(例えば、センサ等)から得られた出力yは同図左側の入力側へとフィードバックされ、目標値rとの偏差が算出される。この算出された偏差はさらにコントローラ201へと入力されて操作量uが算出される。この操作量uに応じて制御機構202の操作子(例えば、アクチュエータ等)は動作し、図示しない制御対象を制御する。このとき、外乱wが乗ることがある。この一連のプロセスが繰り返されることで、偏差が小さくなるような制御、すなわち、出力yを目標値rへと近付ける制御が行われる。
【0004】
一方、近年、機械学習の分野が高い注目を集めている。このような背景の中、本願の発明者らは、木構造を有する新たな機械学習の枠組み(学習木)を提唱している(特許文献1)。
【0005】
図12は、上述の新たな機械学習の枠組みについて示す説明図、すなわち、学習木の構造について示す説明図である。
図12(a)には、当該学習手法における学習木の構造が示されており、
図12(b)には、当該構造に対応する状態空間のイメージが示されている。同図から明らかな通り、学習木構造は、階層的に分割された各状態空間に対応する各ノードを、最上位ノード(始端ノード又は根ノード)から最下端ノード(末端ノード又は葉ノード)まで、樹形状乃至格子状に分岐して配置することにより構成されている。なお、同図は、N階層d次元n分割の学習木においてdが2、nが2の場合の例を示しており、
図12(a)に記載の学習木の1階層目の4つの末端ノードに付された1~4の番号は、それぞれ、
図12(b)に記載の4つの状態空間に対応している。
【0006】
上記学習木を用いて学習処理を行う際には、入力されるデータが、逐次、分割された各状態空間に対応付けられ、それらが各状態空間に蓄積されていくこととなる。このとき、それまでデータが存在しなかった状態空間に新たにデータが入力された場合には、新たなノードが順次生成されていく。予測出力は、学習後に各状態空間に内包される各データに対応する出力値又は出力ベクトルの相加平均をとることで算出されることとなる。
【0007】
このような機械学習技術によれば、省メモリかつ高速の機械学習を実現することができる。
【先行技術文献】
【特許文献】
【0008】
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、PID制御をはじめとする従前のフィードバック制御では、ゲインを制御開始前に調整・設定し、制御開始後は当該ゲインを固定的に使用することが一般的であった。そのため、例えば、経年劣化等により制御対象や操作子の特性が変化したような場合には適応的な対応ができず、従って、制御の精度が低下するおそれがあった。
【0010】
本発明は、上述の技術的背景の下になされたものであり、その目的とするところは、長年利用されている信頼性の高いフィードバック制御を利用しつつも、制御中に得られたデータに基づいて適応的な制御を行うことにある。
【0011】
本発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【0012】
上述の技術的課題は、以下の構成を有する制御装置、方法、プログラム及びシステム等により解決することができる。
【0013】
すなわち、本発明に係る制御装置は、所定の装置に対してフィードバック制御を行うための制御装置であって、前記装置からフィードバックされる出力と目標値に基づいて、前記装置に対する第1の操作量を生成する、第1のコントローラと、前記装置からフィードバックされる出力と前記第1の操作量に基づいて前記装置からの予測出力を生成するよう機械学習された学習済モデルを備えた、予測出力生成部と、前記予測出力と前記目標値に基づいて、前記装置に対する第2の操作量を生成する、第2のコントローラと、前記第1の操作量と前記第2の操作量とに基づいて、前記装置に対する操作量である統合操作量を生成する、統合操作量生成部と、前記第2の操作量が無効化処理される場合に、前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、記憶部と、を備えている。
【0014】
このような構成によれば、フィードバック制御という長年利用されている信頼性の高い制御技術を利用しつつも、機械学習技術により、制御中に得られたデータに基づいて適応的な制御を行うことができる。
【0015】
前記制御装置は、さらに、前記機械学習用データに基づいて学習処理を行い前記学習済モデルを更新する、学習処理部を備えてもよい。
【0016】
このような構成によれば、装置の制御を行いつつも学習処理を行い、制御を最適化することができる。
【0017】
前記制御装置は、さらに、前記第2の操作量が無効化条件を満たすか否かを判定する、判定部と、前記判定部において無効化条件を満たすと判定された場合に、前記第2の操作量を無効化処理する、無効化処理部と、を備える、ものであってもよい。
【0018】
このような構成によれば、第2の操作量が予め定めた条件を満たす場合には第2の操作量を無効化して第1の操作量に基づく制御のみが行われるので、より信頼性の高い制御を行うことができる。また、当該期間のデータは機械学習用データとして供されるので将来に向けて制御精度の向上を見込むことができる。
【0019】
前記無効化条件は、前記第2の操作量が第1の閾値よりも大きいか、又は前記第1の閾値よりも小さい第2の閾値よりも小さいことであってもよい。
【0020】
このような構成によれば、操作量が想定を超える場合に第2の操作量を無効化するので、より信頼性の高い制御を行うことができる。また、当該期間のデータは機械学習用データとして供されるので将来に向けて制御精度の向上を見込むことができる。
【0021】
前記記憶部は、さらに、前記第2の操作量が0又はその近傍値となる場合に、前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、ものであってもよい。
【0022】
このような構成によれば、第2の操作量が0又はその近傍値となる場合も利用して学習を進めることができるので、さらなる制御精度の向上を期待することができる。
【0023】
前記記憶部は、さらに、前記第2の操作量が無効化処理される場合の参照時間ステップに係る前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力に加えて、さらに、前記参照時間より時間的に前の1又は複数の時間ステップに係る前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、ものであってもよい。
【0024】
このような構成によれば、参照時間ステップの前の1又は複数の時間ステップに係るデータも併せて学習するので、より汎化させやすくなり、学習速度の向上を期待することができる。
【0025】
前記第1のコントローラ及び/又は前記第2のコントローラは、それぞれ、P制御、PI制御、PD制御又はPID制御のいずれかを行うものであってもよい。
【0026】
このような構成によれば、長年利用されている信頼性の高い制御技術を利用しつつも、機械学習技術により、装置運転中に得られたデータに基づいて制御精度をさらに向上させることができる。
【0027】
前記学習済モデルは、階層的に分割された状態空間へとそれぞれ対応付けられた複数のノードを階層的に配置することにより構成された木構造を有する学習モデルを用いて機械学習を行うことにより得られるものであってもよい。
【0028】
このような構成によれば、人工ニューラルネットワーク等に対する学習に比べて省メモリで高速学習を行うことが可能となるので、装置を動作させつつ同時学習(オンライン学習)を行う場合に特に有利となる。
【0029】
本発明は、方法としても観念することができる。すなわち、本発明に係る制御方法は、所定の装置に対してフィードバック制御を行うための制御装置における制御方法であって、前記制御装置は、前記装置からフィードバックされる出力と目標値に基づいて、前記装置に対する第1の操作量を生成する、第1のコントローラと、前記装置からフィードバックされる出力と前記第1の操作量に基づいて前記装置からの予測出力を生成するよう機械学習された学習済モデルを備えた、予測出力生成部と、前記予測出力と前記目標値に基づいて、前記装置に対する第2の操作量を生成する、第2のコントローラと、を備え、前記第1の操作量と前記第2の操作量とに基づいて、前記装置に対する操作量である統合操作量を生成する、統合操作量生成ステップと、前記第2の操作量が無効化処理される場合に、前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、記憶ステップと、を備えている。
【0030】
本発明は、プログラムとしても観念することができる。すなわち、本発明に係る制御プログラムは、所定の装置に対してフィードバック制御を行うための制御装置の制御プログラムであって、前記制御装置は、前記装置からフィードバックされる出力と目標値に基づいて、前記装置に対する第1の操作量を生成する、第1のコントローラと、前記装置からフィードバックされる出力と前記第1の操作量に基づいて前記装置からの予測出力を生成するよう機械学習された学習済モデルを備えた、予測出力生成部と、前記予測出力と前記目標値に基づいて、前記装置に対する第2の操作量を生成する、第2のコントローラと、を備え、前記第1の操作量と前記第2の操作量とに基づいて、前記装置に対する操作量である統合操作量を生成する、統合操作量生成ステップと、前記第2の操作量が無効化処理される場合に、前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、記憶ステップと、を備えている。
【0031】
本発明は、システムとしても観念することができる。すなわち、本発明に係る制御システムは、所定の装置に対してフィードバック制御を行うための制御システムであって、前記装置からフィードバックされる出力と目標値に基づいて、前記装置に対する第1の操作量を生成する、第1のコントローラと、前記装置からフィードバックされる出力と前記第1の操作量に基づいて前記装置からの予測出力を生成するよう機械学習された学習済モデルを備えた、予測出力生成部と、前記予測出力と前記目標値に基づいて、前記装置に対する第2の操作量を生成する、第2のコントローラと、前記第1の操作量と前記第2の操作量とに基づいて、前記装置に対する操作量である統合操作量を生成する、統合操作量生成部と、前記第2の操作量が無効化処理される場合に、前記第1の操作量、前記装置からフィードバックされた前記出力及び前記統合操作量に対応する前記装置からの出力を機械学習用データとして記憶する、記憶部と、を備えている。
【発明の効果】
【0032】
本発明によれば、信頼性の高いフィードバック制御を利用しつつも、制御中に得られたデータに基づいて適応的な制御を行うことができる。
【図面の簡単な説明】
【0033】
【
図1】
図1は、制御システムのハードウェア構成図である。
【
図2】
図2は、システムの動作に関するゼネラルフローチャートである。
【
図3】
図3は、基本システムに関するブロック図である。
【
図4】
図4は、基本システムの動作に関する詳細フローチャートである。
【
図5】
図5は、初期学習に関する詳細フローチャートである。
【
図6】
図6は、拡張システムの動作に関する詳細フローチャートである。
【
図7】
図7は、拡張システムに関するブロック図である。
【
図8】
図8は、拡張システムにおける制御処理に関する詳細フローチャート(その1)である。
【
図9】
図9は、拡張システムにおける制御処理に関する詳細フローチャート(その2)である。
【
図10】
図10は、第2の操作量の条件に関する説明図である。
【
図11】
図11は、フィードバックシステムの基本的構成に関するブロック図である。
【発明を実施するための形態】
【0034】
以下、本発明の実施の一形態を、添付の図面を参照しつつ、詳細に説明する。
【0035】
<1.第1の実施形態>
<1.1 構成>
図1は、制御装置100と制御機構12とから成る制御システムのハードウェア構成図である。
【0036】
同図から明らかな通り、制御装置100は、制御部1、記憶部2、I/O部3、入力部4、表示部5及び通信部6を備え、それらは互いにバスを介して接続されている。また、制御装置100は、制御機構12を構成する操作部121及び検出部122と接続され、図示しない制御対象を制御可能に構成されている。
【0037】
制御部1は、CPU等の情報処理部であり、記憶部2に記憶されている各種のプログラムを読み出して実行する。記憶部2は、ROM、RAM、ハードディスク、フラッシュメモリ等の揮発性又は不揮発性の記憶装置であり、機械学習対象となるデータを含む後述の各種のデータを記憶する。I/O部3は、外部装置との入出力を行うインタフェースである。入力部4は、キーボード、タッチパネル、ボタン等を介して入力された信号を処理する。表示部5は、ディスプレイ等と接続されて表示制御を行い、ディスプレイ等を介してユーザにGUIを提供する。通信部6は、有線又は無線にて外部機器と通信を行う通信ユニットである。
【0038】
操作部121は、所定の操作量に基づいて制御対象に影響を与えるものであり、例えば、アクチュエータ等で構成される。検出部122は、制御対象の状態等を検出するものであり、例えば、センサ等で構成される。
【0039】
なお、ハードウェア構成は、本実施形態に係る構成に限定されるものではなく、構成や機能を分散又は統合してもよい。例えば、複数台の制御装置100を用いて分散的に処理を行っても良いし、大容量記憶装置をさらに外部に設けて制御装置100と接続する等してもよい。また、インターネット等を介してコンピュータネットワークを形成して処理を行ってもよい。
【0040】
さらに、本実施形態に係る処理は、FPGA等の半導体回路(IC等)を用いて、所謂ハードウェアとして実装してもよい。
【0041】
<1.2 動作>
次に、
図2~
図10を参照しつつ、制御装置100の動作に関して説明する。
【0042】
図2は、制御装置100の動作に関するゼネラルフローチャートである。
【0043】
同図から明らかな通り、処理が開始すると、後述の基本システム10の第1のPIDコントローラ11に設定される各ゲイン(すなわち、P(比例)ゲイン、I(積分)ゲイン、D(微分)ゲイン)の設定処理が行われる(S1)。
【0044】
図3は、基本システム10に関するブロック図である。同図から明らかな通り、基本システム10は、第1のPIDコントローラ11と、第1のPIDコントローラ11の後段に設けられ、操作部121と検出部122を備えた制御機構12と、第1のPIDコントローラから出力される操作量u
0と制御機構12の検出部122から出力される出力値yを記録するデータロガー13とから構成されている。なお、その動作は、
図11に示したフィードバックシステム200と略同一であるが、データロガー13が、第1のPIDコントローラから出力される操作量u
0と制御機構12の検出部122から出力される出力値yを記録する点において相違する。
【0045】
ユーザは、基本システム10を動作させ又はシミュレーションを行う等して、公知の手法で第1のPIDコントローラ11の各ゲインを調整し、入力部4等を介して最終的なゲインを入力して設定する。この入力された各ゲインは記憶部2へと記憶される。
【0046】
図2に戻り、ゲインの設定処理(S1)が完了すると、当該ゲインを利用して実際に基本システム10を動作させる処理、すなわち、機械学習用のデータを取得し記憶する処理が行われる(S3)。
【0047】
図4は、基本システム10の動作に関する詳細フローチャートである。同図から明らかな通り、処理が開始すると、時間ステップに相当する所定の整数値tを初期化する(例えば、1とする)処理が行われる(S31)。初期化が完了すると、所定の目標値r(t)と、1つ前の時間ステップ(t-1)の出力値y(t-1)を読み出し、その偏差(r(t)-y(t-1))を算出し、同偏差を第1のコントローラ11へと入力する処理が行われる(S32)。
【0048】
第1のコントローラ11は、偏差が入力されると、設定されたゲインに基づいて操作量u(t)を算出する(S33)。この操作量u(t)は、制御機構12の操作部121へと提供され、これにより制御対象に対して所定の制御行為が行われる。その後、制御機構12の検出部122を介して、現在(t)の出力値y(t)が検出される(S34)。
【0049】
以上一連の処理が終了すると、1つ前の時間ステップの出力値y(t-1)、操作量u(t)及び現在時間(t)の出力値y(t)を、データロガー13を介して記憶部2へと記憶する処理が行われる(S36)。その後、tの値を1だけインクリメントして(S38)、再度一連の処理(S32~S38)が行われる。
【0050】
すなわち、制御対象を制御しつつ、1つ前の時間ステップの出力値y(t-1)、操作量u(t)及び現在時間の出力値y(t)を、データロガー13を介して記憶部2へと記憶する処理が継続的に行われる。これにより、後述する予測処理部35で用いられる学習済モデルを生成するための機械学習用データが所望量蓄積されていくことになる。
【0051】
図2に戻り、基本システム10の動作に基づいてデータの取得と記憶処理が完了すると(S3)、得られたデータに基づいて初期学習を行う処理が行われる(S5)。
【0052】
図5は、初期学習に関する詳細フローチャートである。本実施形態においては、機械学習技術として
図12を用いて示した上述の木構造を利用した機械学習技術を用いる。
【0053】
同図から明らかな通り、処理が開始すると、学習木の構造(階層数、次元数、分割数など)や種々の初期パラメータを含む、学習に関するパラメータファイルを記憶部2から読み出す処理が行われる。その後、所定の整数値tを初期化する(例えば1とする)処理が行われる(S52)。
【0054】
この初期化の後、t番目の入力データ、すなわち、1つ前の時間ステップの出力値y(t-1)と操作量u(t)を読み出して学習木への入力とする処理が行われる(S53)。その後、当該入力は、所定の分岐条件に応じて分類されて根ノードから葉ノードへと至る複数のノードが特定され、各ノードと対応付けて記憶される(S54)。
【0055】
その後、各ノードにおいて、出力値yに基づくそれまでの相加平均値を更新するように、新たな出力値y(t)も加えた相加平均値を算出し、ノードと対応付けて記憶する処理が行われる(S56)。
【0056】
その後、tの値が所定の最大値(t_max)と一致するかを判定し、未だtの値が最大値ではない場合(S57NO)、tの値を1だけインクリメントして、再度上述の学習処理(S53~S56)を繰り返す。一方、tの値が所定の最大値となる場合(S57YES)、処理は終了する。
【0057】
すなわち、これにより、1つ前の時間ステップの出力値y(t-1)と現在時間の操作量u(t)とに基づいて、出力値y(t)を予測する学習済モデルが生成されることとなる。
【0058】
図2に戻り、初期学習処理が完了すると、次に、基本システム10を拡張した後述の拡張システム30を動作させる(S7)。
【0059】
図6は、拡張システム30の動作に関する詳細フローチャートである。同図から明らかな通り、処理が開始すると、拡張システム30に基づく制御処理が行われる(S71)。
【0060】
図7は、拡張システム30のブロック図である。同図から明らかな通り、拡張システム30は、第1のフィードバックループを備える基本システム10の構成に加えて、さらに、第2のフィードバックループと学習処理部34とを備えている。第2のフィードバックループは、学習済モデルを備える予測処理部35、その後段に設けられた第2のコントローラ37、さらにその後段に設けられた無効化処理部38及び判定部39とから成る。
【0061】
予測処理部35は、1つ前の時間ステップの出力値y(t-1)と現在時間の第1の操作量u1(t)とに基づいて、予測出力値yhat(t)を生成する学習済モデルを備えている。また、第2のコントローラ37は、目標値r(t)と予測出力値yhat(t)との偏差(r(t)-yhat(t))に基づいて、第2の操作量u2(t)を生成する。判定部39は、第2の操作量u2(t)に関して所定の条件判定を行い、無効化処理部38に対して判定結果を提供する。無効化処理部38は、判定部39から提供される判定結果に応じて、第2の操作量u2(t)を無効化して(例えば、第2の操作量u2(t)を0として)又はそのまま提供する。
【0062】
また、学習処理部34は、データロガー53を通じて記憶部2に記憶されたデータを読み出して、所定の条件下、学習処理を行い、更新された学習済モデルを予測処理部35へと提供する。
【0063】
図8及び
図9は、拡張システム30における制御処理に関する詳細フローチャートである。
【0064】
図8において、処理が開始すると、後述の処理において使用されるフラグを初期化する処理が行われる(S711)。次に、1つ前の時間ステップの出力値y(t-1)と目標値r(t)の偏差(r(t)-y(t-1))を第1のコントローラ31へと入力する処理が行われる(S712)。第1のコントローラ31は、当該入力と設定されたゲインに基づき、第1の操作量u
1(t)を算出する処理が行われる(S713)。
【0065】
その後、第1の操作量u1(t)及び1つ前の時間ステップの出力値y(t-1)を予測処理部35へと入力する処理が行われる(S714)。予測処理部35は、学習済モデルへと第1の操作量u1(t)及び1つ前の時間ステップの出力値y(t-1)を入力することにより、予測出力yhat(t)を算出する(S715)。この算出の後、予測出力yhat(t)と目標値r(t)との偏差(r(t)-yhat(t))を第2のコントローラ37へと入力する処理が行われる(S716)。第2のコントローラ37は、予測出力yhat(t)と目標値r(t)との偏差に基づいて第2の操作量u2(t)を算出する(S717)。
【0066】
図9へと続き、第2の操作量u
2(t)が算出されると、判定部39により、当該第2の操作量u
2(t)が所定の条件を満たすか否かを判定する処理が行われる(S719)。
【0067】
図10は、第2の操作量u
2(t)の所定条件の概要に関する説明図である。同図から明らかな通り、所定条件は、第2の操作量u
2(t)が所定の閾値U
L以上かつ所定の閾値U
H以下の範囲(同
図Rで示した範囲)にあるか否かである。
【0068】
この範囲(R)に無い場合(S719NO)、すなわち、第2の操作量u2(t)が所定の閾値ULより小さいか又は所定の閾値UHより大きい場合、判定部39は、無効化処理部38へと所定の範囲内に第2の操作量u2(t)が無いことを表す判定信号を提供し、無効化処理部38は、第2の操作量u2(t)を無効化する処理を行う(S720)。この無効化処理を行った後、無効化を行ったことを意味するフラグをONとする処理が行われる(S721)。
【0069】
一方、第2の操作量u2(t)が上記範囲(R)内に存在する場合(S719YES)、判定部39は、無効化処理部38へと所定の範囲内に第2の操作量u2(t)が存在することを表す判定信号を提供し、無効化処理部38は、第2の操作量u2(t)をそのまま第1のフィードバックループの第1のコントローラ13の出力後段へと提供する(S722)。
【0070】
その後、第1のフィードバックループの第1のコントローラ13の出力後段において、第1の操作量u1(t)と第2の操作量u2(t)を加算して、操作量u(t)を算出する処理が行われる(S723)。この操作量u(t)は、制御機構32の操作部121へと入力され、検出部122を通じてその結果としての出力値y(t)が検出される(S724)。
【0071】
この検出処理の後、1つ前の時間ステップの出力値y(t-1)、操作量u(t)、出力値y(t)及びフラグ信号を記憶する処理が行われ(S725)、拡張システム30における制御処理の一周期に相当する処理は終了する。
【0072】
図6に戻り、拡張システム30における制御処理の一周期相当が終了すると、記憶されたフラグの状態を判定する処理が行われる(S73)。フラグがOFF状態であると判定された場合(S73NO)、拡張システム30の次の時間ステップにおける処理が再度行われる(S71)。一方、フラグがON状態にあると判定された場合(S73YES)、すなわち、第2の操作量u
2(t)の無効化処理が行われていた場合、学習処理が行われる(S75)。
【0073】
学習処理(S75)の内容は
図5に示したものと略同一であるので、ここでは説明を省略する。この学習処理の後、拡張システム30の次の時間ステップにおける処理が再度行われる(S71)。
【0074】
このような構成によれば、フィードバック制御という長年利用されている信頼性の高い制御技術を利用しつつも、機械学習技術により、制御中に得られたデータに基づいて適応的な制御を行うことができる。
【0075】
また、このような構成によれば、第2の操作量u2(t)が予め定めた条件を満たす場合には第2の操作量u2(t)を無効化して第1の操作量u1(t)に基づく制御のみを行うので、信頼性の高い制御を行うことができる。また、当該期間のデータは機械学習用データとして供されるので将来に向けて制御精度の向上を見込むことができる。
【0076】
<2.変形例>
上記実施形態は例示的な実施形態であり、本発明は様々な変形が可能である。
【0077】
上述の実施形態においては、コントローラとして、PIDコントローラを例示したが、本発明はこのような構成に限定されない。従って、同種の機能を有する他のコントローラであってもよく、又、例えば、P制御、PI、PD制御など、その一部のゲインのみを利用した制御を利用してもよい。
【0078】
上述の実施形態においては、各時間ステップ毎にフラグの状態を確認して、都度リアルタイムに学習処理を行う構成(オンライン学習)としたが、本発明はこのような構成に限定されない。従って、例えば、ある程度学習対象となるデータが蓄積されるのを待って、バッチ的に学習(バッチ学習、ミニバッチ学習)を行ってもよい。
【0079】
上述の実施形態においては、フラグがONとなった場合に(S721)、前1ステップに係るデータを学習する構成としたが、本発明はこのような構成に限定されない。従って、例えば、当該1ステップへと至る1又は複数のステップのデータも利用して学習(S75)を行ってもよい。このような学習は、特に、学習対象に連続性がある場合に有効となり得る。
【0080】
上述の実施形態においては、第2の操作量u
2(t)が所定の範囲(
図10の「R」で示される領域)から外れる場合に(S719NO)、無効化処理(S720)が行われることから、当該領域(R)から外れる場合にフラグをONとして学習(S75)する構成とした。しかしながら、本発明はこのような構成に限定されない。従って、例えば、第2の操作量u
2(t)が所定の範囲(R)内にあるか否かを問わず、第2の操作量u
2(t)が0又はその近傍(0±εの範囲)(εは微小な値)となる場合に学習(S75)を行ってもよい。なお、このとき、この微小な値εをユーザが任意に設定可能なように構成してもよい。
【0081】
上述の実施形態においては、木構造モデルを基本とした機械学習モデルを利用したが、本発明はこのような構成に限定されない。従って、例えば、ニューラルネットワークやサポート・ベクター・マシーン等の他の機械学習モデルを利用してもよい。
【産業上の利用可能性】
【0082】
本発明は、制御装置を利用する種々の産業等にて利用可能である。
【符号の説明】
【0083】
1 制御部
2 記憶部
3 I/O部
4 入力部
5 表示部
6 通信部
10 基本システム
11 第1のPIDコントローラ
12 制御機構
100 制御装置
121 操作部
122 検出部
13 データロガー
30 拡張システム
31 第1のコントローラ
32 制御機構
33 データロガー
34 学習処理部
35 予測処理部
37 第2のコントローラ
38 無効化処理部
39 判定部
200 フィードバックシステム
201 コントローラ
202 制御機構