(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-11
(45)【発行日】2022-10-19
(54)【発明の名称】リアルタイムコントローラおよびそれを用いた分散制御システム、産業機械
(51)【国際特許分類】
G05B 13/02 20060101AFI20221012BHJP
G06N 20/00 20190101ALI20221012BHJP
【FI】
G05B13/02 L
G06N20/00
(21)【出願番号】P 2019043616
(22)【出願日】2019-03-11
【審査請求日】2021-11-08
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】山科 和史
(72)【発明者】
【氏名】船津 輝宣
(72)【発明者】
【氏名】三枝 高志
【審査官】藤崎 詔夫
(56)【参考文献】
【文献】特開2019-028824(JP,A)
【文献】特開2018-073136(JP,A)
【文献】特開2019-021186(JP,A)
【文献】特開平10-301617(JP,A)
【文献】特開平09-114503(JP,A)
【文献】米国特許第05852817(US,A)
【文献】特開昭61-131122(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/02
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
その一部において深層学習の学習演算を行うネットワークに接続され、外部で計測された計測データを取り込んで深層学習の推論演算を実行するリアルタイムコントローラであって、
複数の前記計測データのうち基準データについて、前記深層学習の学習演算により求めた基準データの入力遅延時間を含む設定情報を記憶する設定保持部と、前記計測データを記憶し、前記基準データの入力時刻から前記入力遅延時間が経過した時刻を前記基準データの入力時刻とするとともに、前記基準データ以外のデータについて前記入力遅延時間が経過した時刻に直近のタイミングにおける前記基準データ以外のデータを選択する時間補正部と、前記基準データと選択した前記基準データ以外のデータを組のデータとして前記深層学習の推論演算を実行する演算部を備えることを特徴とするリアルタイムコントローラ。
【請求項2】
請求項1に記載のリアルタイムコントローラであって、
前記ネットワークの試運転時に深層学習の学習演算が実行され、その結果得られた学習モデルによる推論演算を実運転時の前記演算部において実行することを特徴とするリアルタイムコントローラ。
【請求項3】
請求項1または請求項2に記載のリアルタイムコントローラであって、
一つあるいは複数の上流通信ポートと、一つあるいは複数の下流通信ポートと、前記上流通信ポートに対しデータの送受信を行うための上流データ制御部と、前記下流通信ポートに対しデータの送受信を行うための下流データ制御部と、前記上流通信ポートと前記下流通信ポートと前記上流データ制御部と下流データ制御部と接続される通信制御部と、前記上流データ制御部と前記下流データ制御部と接続される前記時間補正部と、前記時間補正部と前記通信制御部と前記上流データ制御部と下流データ制御部と接続される前記演算部を備えるとともに、
前記上流データ制御部あるいは前記下流データ制御部で取得したデータに対して、事前の設定に基づいて前記時間補正部で基準データを定め、前記事前の設定に基づき、前記時間補正部で前記基準データの入力遅延時間を補正し、前記事前の設定と前記基準データの前記入力遅延時間に基づき、前記時間補正部で前記基準データ以外の前記データを選択し、前記基準データと前記基準データ以外のデータの組を作成することを特徴とするリアルタイムコントローラ。
【請求項4】
請求項3に記載のリアルタイムコントローラであって、
前記設定保持部は、前記時間補正部の処理に要する設定情報を任意の手段で転送し、あるいは、前記リアルタイムコントローラが備える
前記時間補正部が前記演算部の結果に基づいて処理することを特徴とするリアルタイムコントローラ。
【請求項5】
請求項4に記載のリアルタイムコントローラであって、
前記時間補正部の処理に要する前記設定情報は、前記演算部の演算に必要な複数の入力データをサンプリングする際の基準とするデータの指定情報と、前記演算部の演算に必要な複数の入力データの遅延補正情報であることを特徴とするリアルタイムコントローラ。
【請求項6】
請求項3から請求項5のいずれか1項に記載のリアルタイムコントローラであって、
前記時間補正部は、前記上流データ制御部と前記下流データ制御部と接続され、前記上流データ制御部あるいは前記下流データ制御部で取得したデータを解釈するデータ解釈部と前記データ解釈部と接続され、前記取得したデータを蓄積するデータバッファ部と、前記データバッファ部と接続され、時間を計測する時間カウント部と、前記データバッファ部と接続され、前記取得したデータから基準データを選定する基準選択部と、前記基準選択部と接続され、前記基準データを取得した際の入力遅延時間を補正する遅延補正部と、前記遅延補正部と接続され、前記データバッファ部から特定のデータを選定するタイミング調整部を備えることを特徴とするリアルタイムコントローラ。
【請求項7】
請求項6に記載のリアルタイムコントローラであって、
前記データ解釈部は受信したデータ内容を解釈し、前記データバッファ部は前記データを蓄積し、前記基準選択部は、事前の設定に基づき選定した基準データを受信したら前記遅延補正部に通知し、前記遅延補正部は、前記基準選択部からの通知に基づき入力遅延時間の時間計測を開始し、前記遅延補正部は、事前の設定に基づき特定の入力遅延時間となると前記タイミング調整部に通知し、前記タイミング調整部は、前記遅延補正部からの通知に基づき、前記データバッファ部から事前の設定に基づき前記データを選定し、データの組を作成することを特徴とするリアルタイムコントローラ。
【請求項8】
請求項1から請求項7のいずれか1項に記載のリアルタイムコントローラが、ネットワークを介して前記深層学習を実行する上流側計算機、及び前記計測データを取得する下流側計算機に接続されて構成された分散制御システム。
【請求項9】
請求項8に記載の分散制御システムであって、
前記リアルタイムコントローラをネットワーク上に複数接続し、複数の前記リアルタイムコントローラが備える前記演算部で、1種類あるいは複数種類の演算を実行することを特徴とする分散制御システム。
【請求項10】
請求項8または請求項9に記載の分散制御システムであって、
前記上流側計算機はシステム管理をするシステム管理装置であって、前記下流側計算機は少なくともセ1つのンサ、あるいは少なくとも1つのアクチュエータ、あるいは少なくとも1つのセンサと少なくとも1つのアクチュエータの両方と接続され、前記接続されたセンサあるいはアクチュエータに入出力制御をする入出力中継装置であって、ネットワーク上にシステムログや設定情報を入力する設定端末装置を備えることを特徴とする分散制御システム。
【請求項11】
請求項9に記載の分散制御システムであって、
システム管理装置は、ネットワークに接続されたサーバーを介して、深層学習の学習演算結果を受信し、さらに前記リアルタイムコントローラへ送信し、前記リアルタイムコントローラは、学習結果と入出力中継装置から転送される情報に基づいて演算することを特徴とする分散制御システム。
【請求項12】
請求項8から請求項10のいずれか1項に記載の分散制御システムにより構成された産業機械。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は実時間制御を実行するコントローラと深層学習による推論演算を用いた実時間制御によるリアルタイムコントローラおよびそれを用いた分散制御システム、産業機械に関する。
【背景技術】
【0002】
近年、画像認識の精度向上や産業装置の故障予知などを目的として、深層学習技術が用いられる。特に教師ありの深層学習では、入力データとそれに対応する任意の教師(正解)データをパラメータとして、学習演算を実行することで、数理的な設計をしなくとも任意の演算モデルを得ることができる。また、入力データや正解の誤差に応じて再学習演算をすることで、演算モデルを更新することができる。そこで、深層学習を用いることで、制御対象の運用環境の差や複雑な物理現象を考慮せずに制御演算モデル(学習結果)を作成し、これに基づき演算する(以下、推論演算)ことができ、システム設計工数の削減が期待されている。
【0003】
一般的に、産業装置やロボットなどの産業機械における機械制御は、任意のセンサあるいはアクチュエータの情報に基づき制御演算を実行する。これは、深層学習技術を用いた機械制御でも同様であり、たとえば特開特許文献1は、学習部と、推論部と、センサを備えた機械学習システムであって、機械学習システムの学習に重要なデータのみを選択し、活用することで、機械学習システムが高精度の推論演算を行うことを特徴としている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
産業装置やロボットの機械制御は、ミリ秒からマイクロ秒周期での高速な制御周期が求められる。一方で、学習演算時と推論演算時は、各演算に必要な計算性能や実装形態によって、データの入出力経路や入出力方法が異なる場合が多く、入力の際の遅延時間が大きくなる。したがって、特許文献1の構成を高速な機械制御に適用すると、学習演算時と、推論演算時のデータの入力遅延時間の誤差について配慮が無いため、これが高速制御に影響し、学習演算時と推論演算時の制御動作が同一にならない場合がある。
【0006】
以上のことから本発明においては、学習演算時と推論演算時の制御動作が同一になるようなリアルタイムコントローラおよびそれを用いた分散制御システム、産業機械を提供することを目的とする。
【課題を解決するための手段】
【0007】
以上のことから本発明においては「その一部において深層学習の学習演算を行うネットワークに接続され、外部で計測された計測データを取り込んで深層学習の推論演算を実行するリアルタイムコントローラであって、複数の計測データのうち基準データについて、深層学習の学習演算により求めた基準データの入力遅延時間を含む設定情報を記憶する設定保持部と、計測データを記憶し、基準データの入力時刻から入力遅延時間が経過した時刻を基準データの入力時刻とするとともに、基準データ以外のデータについて入力遅延時間が経過した時刻に直近のタイミングにおける基準データ以外のデータを選択する時間補正部と、基準データと選択した基準データ以外のデータを組のデータとして深層学習の推論演算を実行する演算部を備えることを特徴とするリアルタイムコントローラ。」としたものである。
【0008】
また本発明においては「リアルタイムコントローラが、ネットワークを介して深層学習を実行する上流側計算機、及び前記計測データを取得する下流側計算機に接続されて構成された分散制御システム」としたものである。
【0009】
また本発明においては「分散制御システムにより構成された産業機械」としたものである。
【発明の効果】
【0010】
本発明によれば、深層学習を用いた機械制御において、学習演算時と推論演算時のデータの入出力遅延を同一条件に補正することで、学習演算時と推論演算時の制御動作を同一にすることができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施例に係るリアルタイムコントローラの構成例を示す図。
【
図2】リアルタイムコントローラが通信で用いるデータ構造を示す図。
【
図3】リアルタイムコントローラが備える時間補正部16の詳細構成例を示す図。
【
図4】試運転モードにおける遅延時間補正をするための設定手順を示すフローチャート。
【
図5】時間補正部16が実行する遅延時間補正処理の手順を示すフローチャート。
【
図6】入力データに対して、遅延時間補正処理を行わない場合のタイミングチャートを示す図。
【
図7】入力データに対して、遅延時間補正処理を行う場合のタイミングチャートを示す図。
【
図8】リアルタイムコントローラ1を適用した分散制御システム6の構成例を示す図。
【
図9】リアルタイムコントローラが備える時間補正部に必要な設定情報を入力する設定端末画面を示す図。
【
図10】本発明の実施例3に係るリアルタイムコントローラ1の運用応用例を示す図。
【発明を実施するための形態】
【0012】
以下、本発明の実施例について図面を用いて詳細に説明する。
【実施例1】
【0013】
図1は本発明の実施例に係るリアルタイムコントローラの構成例を示す図である。
【0014】
計算機で構成されたリアルタイムコントローラ1は、有線あるいは無線のネットワークを通じて、上流側及び下流側の計算機との間で通信を行っている。またネットワークの例えば上流側計算機は深層学習の学習演算を試運転時などの事前に実行し、リアルタイムコントローラ1は深層学習の結果を反映した推論演算を通常運転時に実行する。
【0015】
図1のリアルタイムコントローラ1は、演算部18と、上下流側計算機との間の通信を制御する通信制御部12と、通信時間を補正する時間補正部16と、データの送受信を制御する上流及び下流のデータ制御部13、14を少なくとも備えている。
【0016】
さらに詳細に述べると、通信制御部12は、上流方向の通信の伝送信号を受信あるいは送信する上流通信ポート10と、下流方向の通信の伝送信号を受信あるいは送信する下流通信ポート11とを備えて、送受信する通信の伝送信号データに変換、あるいは伝送信号の中継をおこなう。送受信するデータは、上流及び下流のデータ制御部13、14により制御される。
【0017】
時間補正部16は、時間補正部の処理に必要な設定情報を設定保持部15から得、事前の設定に基づいて基準データを定め、その入力遅延時間を補正し、事前の設定と基準データの入力遅延時間に基づき、基準データ以外のデータを選択して基準データと基準データ以外のデータによるデータの組を作成する。
【0018】
演算部18は、時間補正部16からのデータを用いた演算処理を実行するとともに、この際に演算計測部17において演算時間の開始と終了の経過時間を計測する。
【0019】
なお、上流通信ポート10と下流通信ポート11は通信制御部12に接続され、通信制御部12は上流データ制御部13と下流データ制御部14に接続され、上流データ制御部13は設定保部15と時間補正部16に接続され、下流データ制御部14は時間補正部16と演算部18に接続され、設定保持部15は時間補正部16に接続され、時間補正部16は演算部18に接続され、演算部18は通信制御部12と上流データ制御部13と演算計測部17に接続されている。
【0020】
ここで、リアルタイムコントローラ1は、通信でデータを送受信するために、
図2のパケット2に示す構造を用いる。パケット2は、リアルタイムコントローラ1が通信をする際の宛先を示すアドレス部20と、演算に使用するパラメータや時間補正部16で使用する設定情報などを格納するデータ部21と、を備える。
【0021】
図3は、リアルタイムコントローラ1が備える時間補正部16の詳細を示した構成図である。
【0022】
時間補正部16は、上流データ制御部13あるいは下流データ制御部14で受信したパケットのデータ内容を解釈するデータ解釈部30と、時間の計測をする時間カウント部31と、受信したデータを蓄積するデータバッファ部32と、設定保持部15に格納された設定に基づき、基準のデータを選定する基準選択部161と、設定保持部15に格納された設定に基づき、基準データの入力遅延時間を補正する遅延補正部162と、設定保持部15に格納された設定と基準データの入力遅延時間に基づき、入力データを選定し、データの組を作るタイミング調整部163を備え、タイミング調整部163で時間調整したデータを演算部に引き渡す。
【0023】
このようにデータ解釈部30は、上流データ制御部13と下流データ制御部14とデータバッファ部と接続され、時間カウント部31は、データバッファ部32と接続され、データバッファ部は、基準選択部161とタイミング調整部163と接続され、基準選択部161は、遅延補正部162と接続され、遅延補正部162は、タイミング調整部163と接続され、タイミング調整部163は演算部18と接続されている。
【0024】
ここで、リアルタイムコントローラ1の基本動作を説明する。
【0025】
まずリアルタイムコントローラ1は、上流通信ポート10を介して時間補正部16の処理に必要な設定を、上流データ制御部13で受信する。上流データ制御部13は受信した設定情報を設定保持部15へ転送し、設定保持部15は転送された設定情報を格納する。ここで、時間補正部16の処理に必要な設定とは、遅延補償の対象とする基準データを選択するための基準データ設定情報、基準データの入力遅延時間を補正するための遅延時間補正設定情報を含む情報である。
【0026】
この際、上流データ制御部10と下流データ制御部11は、どちらも受信あるいは送信が可能である。そのため、リアルタイムコントローラ1は常時、上流方向、下流方向でパケット2の構造のデータを送受信し続ける。特に、受信したデータは、時間補正部16のデータバッファ部32で蓄積し、タイミング調整部163が演算部18の演算で使用するデータのみを選定する。また、リアルタイムコントローラ1は、受信したデータを基に定期的に演算部18で演算を実行する。その際、演算部18は演算結果を上流データ制御部13あるいは下流データ制御部14に転送する。上流データ制御部13あるいは下流データ制御部14は演算結果を転送されると、通信制御部12へ転送し通信の伝送信号へと変換する。
【0027】
またリアルタイムコントローラ1は、遅延時間補正処理の設定をするための試運転モードと、制御演算を実行する通常モードを備える。試運転モードにおいては、例えば上流側計算機により深層学習の学習演算を実行し、この試運転結果として時間補正部16の処理に必要な各種設定情報がリアルタイムコントローラ1に入手されて設定処理が実施される。通常モードでは、リアルタイムコントローラ1において深層学習の学習演算の結果得られた学習モデルを用いた推論演算が実行され、この中で試運転モードにおいて求められ、予め定められた時間補正部16の処理に必要な各種設定情報を用いた遅延時間補整処理が実行される。
【0028】
次にリアルタイムコントローラ1が備える時間補正部16で実行されるデータの遅延時間補正の処理について説明する。試運転モードにおける遅延時間補正をするための設定手順を、
図4を用いて説明する。
【0029】
図4ではまず、設定対象のデータの入力遅延や演算時間を見積もるために処理ステップS40にてリアルタイムコントローラ1を試運転モードにする。試運転モードの中では、上流側計算機により深層学習の学習演算を実行している。その次に、処理ステップS41にて試運転をした結果である動作情報を確認する。
【0030】
動作情報の確認が完了すると、次に、処理ステップS42にて、遅延時間を補正する際の基準となる基準データを選択する。
【0031】
図4の設定手順(処理ステップS43と処理ステップS44)では、基準データごとに2種類の遅延情報を入力する。1つ目が内部遅延情報であり、これは入力対象のデータ(基準データ)がデジタル値として取得できてから、リアルタイムコントローラ1に送信され、データが到着するまでの時間のことである。2つ目が外部遅延情報であり、これは、入力対象のデータがアナログ値からデジタル値に変換されるまでの時間である。
【0032】
ここで、内部遅延情報と外部遅延情報についてさらに詳述すると、例えば上流側計算機がプラント全体の制御装置、下流側計算機がプラント各部の個別制御装置という位置づけを想定した場合に、下流側計算機でプロセス量を計測してアナログ値をデジタル値に変換するまでの時間が外部遅延情報であり、さらにデジタル値が生成されてからリアルタイムコントローラ1に認知されるまでの時間が下流における内部遅延時間ということになる。
【0033】
これら2種類の情報(遅延補償の対象とする基準データを選択するための基準データ設定情報と、基準データの入力遅延時間を補正するための遅延時間補正設定情報)を処理ステップS43と処理ステップS44にて、各データについて入力が完了次第、設定を完了とする。最後に処理ステップS45にて、リアルタイムコントローラ1は通常モードの動作を開始する。
【0034】
図5は時間補正部16が通常モードにおいて実行する遅延時間補正処理の手順を示したフローチャートである。なお、ここでは、すでに処理に必要なデータは設定保持部15に格納されていることを前提とする。
図5には図示していないが、
図5におけるリアルタイムコントローラ1の処理では、深層学習の学習演算の結果得られた学習モデルを用いた推論演算が実行されている。
【0035】
時間補正部16は、処理ステップS50にて、データ解釈部30でデータを受信する。この際、データ解釈部30はデータ内容を確認後、データ受信時の時間を演算計測部17から読み出し、処理ステップS51に遷移する。次に処理ステップS51にて、データバッファ部32は、データ解釈部30で受信したデータとデータ受信時刻を合わせて蓄積し、処理ステップS52に遷移する。
【0036】
処理ステップS52にて、基準選択部161は、データバッファ部32に蓄積されたデータを順次確認し、事前に設定した基準となるデータであるかを判定する。処理ステップS52の判定で、事前に設定した基準のデータではないと判断した場合、処理ステップS50に戻りデータの受信を続ける。
【0037】
処理ステップS52の判定で、事前に設定した基準のデータであると判断した場合、基準選択部161は遅延補正部162に通知し、処理ステップS53へ遷移する。この際、基準データはパケット2に備える、アドレス部20を指定することによって判別可能である。
【0038】
次に、処理ステップS53にて、遅延補正部162は、基準データが受信された時点から、時間計測を開始し、処理ステップS54へ遷移する。処理ステップS54にて、遅延補正部162で計測中の時間が、事前に設定した時間に到達したかを判定する。この際、処理ステップS54の判定で、遅延補正部162が計測した時間が、事前に設定した入力遅延時間に達していない場合、処理ステップS54にとどまる。
【0039】
処理ステップS54の判定で、遅延補正部162が計測した時間が、事前に設定した入力遅延時間に達した場合、遅延補正部162はタイミング調整部163へ通知し、処理ステップS55へ遷移する。この際、事前に設定した入力遅延時間とは、前記内部遅延情報と前記外部遅延情報の合算した値である。
【0040】
処理ステップS53から処理ステップS54までの時間計測は、事前に設定した基準データの入力遅延時間を補正するために実行する手順である。すなわち、基準データが到着した時点より、事前に設定した入力遅延時間分だけ、意図的に時間を調整することで、任意の入力遅延時間へ補正するものである。
【0041】
処理ステップS55では、タイミング調整部163が処理ステップS54で計測した入力遅延時間と事前の設定に基づいて、データバッファ部32に蓄積しているデータの中から、基準データ以外のデータを選択する。
【0042】
ここで、タイミング調整部163がデータを選定する仕組みについて説明する。前提として、基準データ以外のデータに関しても、任意の入力遅延時間を設定することが可能である。タイミング調整部163がデータバッファ部32からデータを選定するとき、まず処理ステップS54で計測した入力遅延時間の範囲外のデータは無視する。この際、前述したとおり、データバッファ部32は、受信したデータとデータ受信時刻を合わせて蓄積しているため、このデータに紐づくデータの受信時刻を参照することが可能である。そのあと、タイミング調整部163は、基準データ以外のデータに設定された入力遅延時間とデータ受信時刻を参照することで、基準データの入力遅延時間から相対的に計算し、特定の受信時刻のデータを選択する。
【0043】
上記処理により、基準データ以外のデータの時系列的なデータ群のうち、基準データについて事前に設定した入力遅延時間で定まる時刻に直近の時刻で得られた基準データ以外のデータを選択することになる。
【0044】
その後、処理ステップS56へ遷移し、タイミング調整部163は基準データと選択された基準データ以外のデータを合わせて入力データの組を作成し、処理ステップS57へ遷移する。
【0045】
処理ステップS57にて、タイミング調整部163は、事前に設定したすべてのデータを選択したかを判断する。処理ステップS57の判定にて、事前に設定したすべてのデータを選択していないと判断した場合、処理ステップS56へ遷移し、タイミング調整部163が再度データを選択する。
【0046】
また、処理ステップS57の判定にて、事前に設定したすべてのデータを選択したと判断した場合、処理ステップS58へ遷移する。最後に処理ステップS58にて、タイミング調整部163が演算部18に入力データの組を出力する。
【0047】
図6は、リアルタイムコントローラ1が備える時間補正部16が、入力データに対して、遅延時間補正処理を行わない場合のタイミングチャートを示した図である。
【0048】
ここで、
図6に示す例はデータAとデータBを入力データとして、試運転モードで深層学習の学習演算を任意のコンピュータ(多くの場合に上流側計算機で実施)で実行する場合と、通常運転モードで学習結果としての推論演算をリアルタイムコントローラ1で実行する場合を対比して示している。なおここでは、試運転の時と通常運転の時で、異なる遅延時間の結果になってしまうことを説明しようとしている。
【0049】
図6では、データAに関して、学習演算時(試運転時)と推論演算時(実運転時)では、上流側計算機で実施する学習演算時のオーバヘッド時間T60の方が、リアルタイムコントローラ1で実施する推論演算時のオーバヘッドT62よりも長いものとする。また、データBに関しては、学習演算時と推論演算時でオーバヘッドはほとんどかからないものとする。なおT61、T63は、学習演算時と推論演算時のデータAの入力時点、T64はデータBの入力時点を表している。
【0050】
上記の前提で、データAは周期T67で、データBは周期T66でデータをサンプリングしている。この場合、データAが入力され次第、最新のサンプリングのデータBを選択し、入力データの組として演算に使用する。
【0051】
具体的には、学習演算時について、データAは、下流側計算機でのデータ計測からオーバヘッドT60を経て時点T61でリアルタイムコントローラ1にデータ入力される。これに対し、データBはデータAの入力時点T61に最も近く、最新のサンプリングであるT65の時点のデータを選択し、入力データの組とする。
【0052】
一方、推論演算時について、データAは下流側計算機でのデータ計測からオーバヘッドT62を経て時点T63でリアルタイムコントローラ1にデータ入力される。これに対し、データBはデータAの入力時点T63に最も近く最新のサンプリングであるT64の時点のデータを選択し、入力データの組とする。
【0053】
すなわち、データAのオーバヘッドが学習演算時と推論演算時で異なることから、データBが選択されるタイミングが異なり、学習演算時と推論演算時での入力データの組のうち、データBの取得時刻が異なってしまう。
【0054】
次に、
図7により時間補正部16が、入力データに対して、遅延時間補正処理を行う場合のタイミングチャートを説明する。なお、ここで説明する場合でも、
図6で説明した際と同様の前提とする。
【0055】
図7では、データAを基準データ、データBを基準データ以外のデータとして取り扱う。基準データAは、学習演算時と推論演算時とでオーバヘッドが相違することから、オーバヘッドが短い推論演算時には、オーバヘッドが長い学習演算時に遅延時間を調整することで、学習演算時と推論演算時で、同じタイミングでの基準データ入力時刻を実現する。また基準データAの入力時刻に直近のタイミングで、基準データ以外のデータBを選択する。
【0056】
まず、学習演算時、データAは
図6の場合と同様に下流側計算機でのデータ計測からオーバヘッドT60を経て、時点T61で入力される。この際、データBは時点T61に最も近く最新のサンプリングである時点T611のデータを選択し、入力データの組とする。
【0057】
他方、リアルタイムコントローラ1で推論演算時には、時間補正部6で入力データの遅延時間を補正するために、データAを基準データとして定め、さらにT610の遅延時間を設定する。ゆえに、推論演算時、データ到着時は下流側計算機でのデータ計測からオーバヘッドT68を経て、実際にはタイミングT69で入力されるが、時間T610だけ、入力遅延時間を加算する。そのあと、時点T612で入力されたものとし、その際、データBに対して、時点T612に最も近く最新のサンプリングである時点T611のデータを選択し、入力データの組とする。
【0058】
こうした入力遅延補正を行うことで、学習演算時と推論演算時で、データAのオーバヘッドを同一に補正し、データBが選択されるタイミングも同一にすることで、学習演算時と推論演算時での入力データの組のうち、データBの取得タイミングが異なってしまう問題を解決可能である。
【0059】
本実施例の態様に依れば、深層学習の学習演算と推論演算の実行時、データの入力経路や実行するための演算環境が異なっても、入力遅延時間などが同一条件での、入力データの組を作成することが可能である。
【実施例2】
【0060】
図8は、本発明の実施例2に係るリアルタイムコントローラ1を実運用するためのシステムの一例としての分散制御システム6の構成例を示した図である。
【0061】
分散制御システム7は、分散制御システム7全体のシステム管理をする、システム管理装置70と、少なくとも1つのリアルタイムコントローラ1と、少なくとも1つの入出力中継装置71と、少なくとも1つのセンサ72、あるいは、少なくとも1つのアクチュエータ73、あるいは少なくとも1つのセンサ72と少なくとも1つのアクチュエータ73の両方と、設定端末装置74を備えて構成される。
【0062】
ここではシステム管理装置70が上流側計算機、入出力中継装置71が下流側計算機とされる計算機システムを構成したものである。この場合にもまたネットワークの上流側計算機であるシステム管理装置70が試運転時に深層学習の学習演算を実行し、リアルタイムコントローラ1が実運転時に深層学習の推論演算を実行している。
【0063】
このようにシステム管理装置70は、リアルタイムコントローラ1あるいは、入出力中継装置71と接続され、リアルタイムコントローラ1は、他のリアルタイムコントローラ1あるいは入出力中継装置71と接続され、入出力中継装置71は、センサ72あるいはアクチュエータ73と接続され、設定端末装置74は、システム管理装置70と接続される。
【0064】
次に各装置の詳細を説明する。
【0065】
システム管理装置70は、少なくとも1つの下流通信ポート11と、システム管理部701と、通信制御部702と、端末接続ポート703と、を備え、システム管理部701は、通信制御部702と端末接続ポート703と接続され、通信制御部702は、少なくとも1つの下流通信ポート11と接続される。
【0066】
システム管理装置70の基本動作を説明する。システム管理装置70は、設定端末装置74にて入力される設定をシステム管理部701で管理し、通信制御部702へ転送することで、下流通信ポート11を介して、リアルタイムコントローラ1の時間補正部16に必要な設定情報を伝送する。ここで、システム管理装置70は、ネットワークに接続されるサーバーや、汎用コンピュータ、小型のコンピュータ基板などが想定される。リアルタイムコントローラ1は実施例1に記載したので、ここでは説明を割愛する。
【0067】
入出力中継装置71は、少なくとも1つの上流通信ポート10と、少なくとも1つの下流通信ポート11と、通信制御部710と、入出力部711と、デバイス接続ポート712と、を備え、通信制御部710は少なくとも1つの上流通信ポート10と少なくとも1つの下流通信ポート11と接続され、入出力部711は通信制御部710とデバイス接続ポート712と接続され、デバイス接続ポート712は、センサ72あるいは、アクチュエータ73と接続される。
【0068】
入出力中継装置71の基本動作を説明する。入出力中継装置71は、デバイス接続ポート712と接続されセンサあるいはアクチュエータに対して入出力部711を介して入出力する。この際、入力データは、入出力部711で得たデータを通信制御部710と上流通信ポート10あるいは下流通信ポート11を介して、リアルタイムコントローラ1あるいはシステム管理装置70へ送信するデータのことである。また、出力データとは、上流通信ポート10あるいは下流通信ポート11と通信制御部710を介して、リアルタイムコントローラ1あるいはシステム管理装置70から受信したデータのことであり、入出力部711を介して出力する。
【0069】
次に分散制御システム6の基本動作について説明する。
【0070】
本実施例では、複数のセンサ72の入力データに基づいて、アクチュエータ73の制御指令を求めるための演算をリアルタイムコントローラ1で実行することとする。
【0071】
分散制御システム6の使用時、まず設定端末装置74において、リアルタイムコントローラ1が入力遅延補正を実行するための設定情報を入力する。
【0072】
図9は、リアルタイムコントローラ1が備える時間補正部16に必要な設定情報を入力する設定端末画面を示した図である。この際、設定端末装置74は、
図9に示すような構成である。設定端末装置74は、設定領域80と、システムログ領域81と、を備える。設定領域80は、入力遅延補正の処理を実行するために、基準データの指定、各データへの遅延時間設定を行う。また、システムログ領域81は、入力された設定情報は、システム管理部701を介して通信制御部702へ転送し、リアルタイムコントローラ1へ伝送する。
【0073】
この際の設定手順は、実施例1に記載したとおり、はじめに試運転モードを実行した後、システムログ領域81にて、動作情報を確認する。その次に、設定領域にて、遅延時間補正対象の各データに対して、内部遅延情報と外部遅延情報を入力する。その後、設定端末装置74で入力された設定情報は、システム管理装置70を介してリアルタイムコントローラ1へ転送し、さらにリアルタイムコントローラ1は受信した設定情報を設定保持部15へ格納する。
【0074】
ここで、センサ72A、72Bが接続された入出力中継装置71A、71Bは、継続的にセンサ72A、72Bのデータをサンプリングし、リアルタイムコントローラ1へ転送する。この際、
図8に記載の通り、説明の便宜上、データAのセンサ72AとデータBのセンサ72Bとする。また、データAを入力遅延補正の基準データ、データBを基準データ以外のデータとする。リアルタイムコントローラ1は、基準データAを受信すると、実施例1で記載した方法で基準データAのセンサ72Aの入力遅延時間を補正する。そのあと、事前の設定と基準データAのセンサ72Aの入力遅延時間に基づいて、リアルタイムコントローラ1に備えるデータバッファ部30で蓄積した、複数の基準データ以外のデータBのセンサ72Bのデータのうち、1つのデータを選択する。
【0075】
この際選択したセンサ72Bの基準データ以外のデータBと、基準データAのセンサ72のデータを入力データの組として、演算部18へ転送する。演算部18ではこの入力データに基づき、演算を行った後、演算結果をアクチュエータ73が接続された入出力中継装置71Cへ通信で転送する。アクチュエータ73が接続された入出力中継装置71Cは、受信した演算結果を入出力部711にてアクチュエータ73への制御信号へと変換し、フィードバックする。
【0076】
本実施例の態様に依れば、産業装置やロボットなどの産業機械にリアルタイムコントローラ1を備える分散制御システム6を適用することで、制御演算に入力するセンサあるいはアクチュエータなどの各データの遅延時間とその組み合わせを厳密に指定することが可能である。
その他をリアルタイムコントローラ1適用した場合の効果は実施例1と同一であるため、説明は割愛する。
【実施例3】
【0077】
図10は、本発明の実施例3に係るリアルタイムコントローラ1の運用応用例である。
【0078】
リアルタイムコントローラ1が備える演算部18は、演算実行部91と、演算パラメータ記憶部92と、演算管理部93を備える。
【0079】
また演算実行部91は、時間補正部16と上流データ制御部10と下流データ制御部11と接続され、演算パラメータ記憶部92は演算実行部91と通信制御部12と接続され、演算管理部93は、演算実行部91と通信制御部12と接続される。
【0080】
この際、演算実行部91は、任意の演算を実行する。また、演算パラメータ記憶部92は、演算実行部91で実行する演算に必要な係数やパラメータなどを格納し、通信を介してその内容を変更、更新をする。
【0081】
図10に示すようにリアルタイムコントローラ1は他のリアルタイムコントローラ1と接続して運用する。この際、リアルタイムコントローラ1を単体で使用したとき、目的とした演算処理に対する演算性能が不足した場合、
図10に示すように複数のリアルタイムコントローラ1を接続し、演算処理を分散して実装することで、演算性能の補強をする。具体的には、リアルタイムコントローラ1が備える演算管理部93は、他のリアルタイムコントローラ1の演算管理部93と通信を介して、演算処理の進捗状況や演算結果を共有する。すなわち、複数のリアルタイムコントローラ1で要求性能が高い1種類、あるいは複数種類の演算処理を連携して実行する。
【0082】
また、クラウドサーバ90から、演算パラメータ記憶部92に対して、通信を介して任意のタイミングで演算処理に関する演算パラメータを転送する。さらに、リアルタイムコントローラ1は演算結果や動作状況を継続的にクラウドサーバ90へ送信し、クラウドサーバ90において演算パラメータの再考、更新をする。
【0083】
実施例3に依れば、リアルタイムコントローラ1は、演算の目的に応じて演算内容の更新や演算性能の拡張が可能である。
【符号の説明】
【0084】
1:リアルタイムコントローラ
10:上流通信ポート
11:下流通信ポート
12:通信制御部
13:上流データ制御部
14:下流データ制御部
15:設定保持部
16:時間補正部
161:基準選択部
162:遅延補正部
163:タイミング調整部
17:演算計測部
18:演算部
2:パケット
20:アドレス部
21:データ部
30:データ解釈部
31:時間カウント部
32:データバッファ部
70:システム管理装置
701:システム管理部
702:通信制御部
703:端末接続ポート
71:入出力中継装置
710:通信制御部
711:入出力部
712:デバイス接続ポート
72:センサ
73:アクチュエータ
74:設定端末装置
80:設定領域
81:システムログ領域
90:クラウドサーバ
91:演算実行部
92:演算パラメータ記憶部
93:演算管理部