(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023151755
(43)【公開日】2023-10-16
(54)【発明の名称】情報処理装置および情報処理プログラム
(51)【国際特許分類】
G05B 23/02 20060101AFI20231005BHJP
【FI】
G05B23/02 301Q
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022061559
(22)【出願日】2022-04-01
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】山田 浩臣
(72)【発明者】
【氏名】川ノ上 真輔
(72)【発明者】
【氏名】宮本 幸太
【テーマコード(参考)】
3C223
【Fターム(参考)】
3C223BA01
3C223FF09
3C223GG01
3C223HH03
(57)【要約】
【課題】時系列データを時間軸上に表示する場合において、データの特性を把握する点で表示を工夫することが可能な情報処理装置を提供する。
【解決手段】情報処理装置は、時系列データを取得するデータ取得部と、データ取得部で取得した時系列データに基づくグラフを表示するグラフ表示部と、所定の関数に基づいて時系列データのデータ間の時間間隔を調整する調整部とを備える。グラフ表示部は、調整部により調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示する。
【選択図】
図12
【特許請求の範囲】
【請求項1】
時系列データを取得するデータ取得部と、
前記データ取得部で取得した時系列データに基づくグラフを表示するグラフ表示部と、
所定の関数に基づいて時系列データのデータ間の時間間隔を調整する調整部とを備え、
前記グラフ表示部は、前記調整部により調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示する、情報処理装置。
【請求項2】
前記調整部は、ユーザの指示に従って前記データ間の時間間隔を任意の幅に調整可能なスライダを含む、請求項1記載の情報処理装置。
【請求項3】
前記所定の関数は、前記時系列データのデータ間の時間間隔を基準となる前記時系列データのデータ間の時間間隔のべき乗に設定し、
前記スライダは、前記べき乗の値をパラメータとして調整する、請求項2記載の情報処理装置。
【請求項4】
前記データ取得部は、複数の変数の時系列データを取得し、
前記複数の変数のリストを生成して表示するリスト表示部と、
前記リストの中から変数の選択を受け付けるリスト選択部とをさらに含み、
前記グラフ表示部は、選択された変数の時系列データに基づくグラフを表示する、請求項1記載の情報処理装置。
【請求項5】
前記時系列データに対してラベリングするラベル受付部を含む、請求項1記載の情報処理装置。
【請求項6】
コンピュータで実行される情報処理プログラムであって、
前記情報処理プログラムは、前記コンピュータに、
時系列データを取得するステップと、
取得した時系列データに基づくグラフを表示するステップと、
所定の関数に基づいて時系列データのデータ間の時間間隔を調整するステップとを備え、
前記グラフを表示するステップは、調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示するステップを含む、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、時系列データを処理する情報処理装置、および情報処理装置を実現するための情報処理プログラムに関する。
【背景技術】
【0002】
機械や設備などの動作を制御するために用いられるコントローラには、汎用のPLCや、個別の機械等に専用のプログラム制御のコントローラがある。
【0003】
PLCは、たとえば、制御プログラムを実行するマイクロプロセッサを含むCPU(Central Processing Unit)ユニット、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するIO(Input Output)ユニット、といった複数のユニットで構成される。それらのユニット間で、制御プログラム実行サイクルごとに、PLCシステムバスおよび/またはフィールドネットワークを経由してデータの授受をしながら、PLCは制御動作を実行する。
【0004】
コントローラサポート装置は、コントローラに実行させる制御プログラムやコントローラに対する各種の設定情報を作成し、それらをコントローラに転送するために用いられる。コントローラサポート装置は、たとえば、汎用のコンピュータにコントローラサポートプログラムをインストールすることで構成される。コントローラサポート装置は、たとえば、制御プログラムのソースリストを作成するエディタ機能、制御プログラムのソースリストからコントローラで動作するオブジェクトプログラムを生成するコンパイラ機能、制御プログラムをコントローラサポート装置において試験実行させるためのコントローラのシミュレータ機能、および、コントローラとの通信機能などを有する。
【0005】
コントローラサポート装置は、制御に機械学習を用いる可変的予測モデルを構築してコントローラに転送する。
【0006】
機械学習においては、データセットと学習モデルを用いた学習、学習済みモデルの検証及び評価等が行われる。
【0007】
具体的には、まず、データセットに対して前処理が行われ、データセットが学習用と検証及び評価用とに分割される。
【0008】
この点で、データが有効なデータか無効なデータの切り分けが、精度の高い学習モデルに繋がる。
【0009】
この点に関連して、時系列データを種々の方式で解析する方法が提案されてきた。
【0010】
例えば、特開平6-131136号公報においては、時間変化するデータのトレンドを各種のグラフに表示する表示装置に係わり、特にその表示方法を入力データの特性(値,変化量等)または表示装置の表示状態に基づき、動的に表示を変更する、時間変化データ表示装置が開示されている。
【先行技術文献】
【特許文献】
【0011】
【発明の概要】
【発明が解決しようとする課題】
【0012】
一方で、時系列データを時間軸上に表示する場合において、データの凝集状態や分布状態等の特性を把握する点で表示についてさらなる工夫が可能である。
【0013】
本開示は、上記課題を解決するためのものであって、時系列データを時間軸上に表示する場合において、データの特性を把握する点で表示を工夫することが可能な情報処理装置および情報処理プログラムを提供することである。
【課題を解決するための手段】
【0014】
ある局面に基づく情報処理装置は、時系列データを取得するデータ取得部と、データ取得部で取得した時系列データに基づくグラフを表示するグラフ表示部と、所定の関数に基づいて時系列データのデータ間の時間間隔を調整する調整部とを備える。グラフ表示部は、調整部により調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示する。この構成によれば、情報処理装置は、調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示するため、データの特性を把握する点で表示を工夫することが可能である。
【0015】
調整部は、ユーザの指示に従ってデータ間の時間間隔を任意の幅に調整可能なスライダを含む。この構成によれば、ユーザの指示に従ってデータ間の時間間隔を調整可能であるためデータの特性を把握する点で効率的である。
【0016】
所定の関数は、時系列データのデータ間の時間間隔を基準となる時系列データのデータ間の時間間隔のべき乗に設定する。スライダは、べき乗の値をパラメータとして調整する。この構成によれば、べき乗の値をパラメータとして調整するため簡易に調整が可能である。
【0017】
データ取得部は、複数の変数の時系列データを取得する。情報処理装置は、複数の変数のリストを生成して表示するリスト表示部と、リストの中から変数の選択を受け付けるリスト選択部とをさらに備える。グラフ表示部は、選択された変数の時系列データに基づくグラフを表示する。この構成によれば、リストの中から変数を選択して、グラフを表示するため変数のデータの特性を把握する点で効率的である。
【0018】
情報処理装置は、時系列データに対してラベリングするラベル受付部をさらに備える。
【0019】
この構成によれば、ラベリング受付部を用いてラベリング可能であるためデータを効率的に利用することが可能である。
【0020】
ある局面に基づくコンピュータで実行される情報処理プログラムであって、情報処理プログラムは、コンピュータに、時系列データを取得するステップと、取得した時系列データに基づくグラフを表示するステップと、所定の関数に基づいて時系列データのデータ間の時間間隔を調整するステップとを備える。グラフを表示するステップは、調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示するステップを含む。
【0021】
この構成によれば、情報処理プログラムは、調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示するため、データの特性を把握する点で表示を工夫することが可能である。
【0022】
なお、本開示において、「部」及び「装置」とは、単に物理的手段を意味するものではなく、その「部」及び「装置」が有する機能をソフトウェアによって実現する構成も含む。また、1つの「部」及び「装置」が有する機能が2つ以上の物理的手段や装置によって実現されてもよく、或いは、2つ以上の「部」及び「装置」の機能が1つの物理的手段や装置によって実現されてもよい。さらに、「部」及び「装置」とは、例えば「手段」及び「システム」と言い換えることも可能な概念である。
【発明の効果】
【0023】
本開示の情報処理装置および情報処理プログラムは、調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示するため、データの特性を把握する点で表示を工夫することが可能である。
【図面の簡単な説明】
【0024】
【
図1】実施形態に基づく予測システム1の全体構成例を示す模式図である。
【
図2】実施形態に基づく予測システム1の応用例を示す模式図である。
【
図3】実施形態に基づく予測システム1による制御系を説明する図である。
【
図4】実施形態に基づく予測システム1による予測制御系の予測結果に基づく制御の一例を示す模式図である。
【
図5】実施形態に基づく予測システム1を用いた予測モデル140の生成処理の処理手順を示すフローチャートである。
【
図6】実施形態に基づく予測モデル140の学習方法について説明する図である。
【
図7】実施形態に基づく予測システム1を構成する制御装置100のハードウェア構成例を示すブロック図である。
【
図8】実施形態に基づく予測システム1を構成するサポート装置200のハードウェア構成例を示すブロック図である。
【
図9】実施形態に基づく予測システム1を構成する制御装置100およびサポート装置200のソフトウェア構成例を示すブロック図である。
【
図10】実施形態に基づく
図9に示す解析プログラム226に含まれる機能モジュールの概要を示すブロック図である。
【
図11】実施形態に基づく解析機能を実行する解析部について説明する図である。
【
図12】実施形態に基づく解析画面500の一例について説明する図である。
【
図13】実施形態に基づく解析画面502の一例について説明する図である。
【
図14】実施形態に基づくグラフ調整部257によりデータ間の時間間隔を短縮する場合について説明する図である。
【
図15】実施形態に基づくグラフ調整部257によりデータ間の時間間隔を拡張する場合について説明する図である。
【発明を実施するための形態】
【0025】
実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0026】
<A.適用例>
まず、本実施形態が適用される場面の一例について説明する。
【0027】
実施形態に基づく予測機能を有する制御システムの主要な局面について説明する。以下の説明においては、主として、制御システムが有している予測機能に注目して説明するので、制御システム全体を「予測システム」とも称する。
【0028】
図1は、実施形態に基づく予測システム1の全体構成例を示す模式図である。
図1を参照して、実施形態に基づく予測システム1は、主たる構成要素として、制御対象を制御する制御装置100と、制御装置100に接続されるサポート装置200とを含む。
【0029】
制御装置100は、PLC(プログラマブルコントローラ)などの、一種のコンピュータとして具現化されてもよい。制御装置100は、フィールドバス2を介してフィールド装置群10と接続されるとともに、フィールドバス4を介して1または複数の表示装置400と接続されてもよい。さらに、制御装置100は、上位ネットワーク6を介して上位サーバ300に接続されてもよい。なお、上位サーバ300および表示装置400はオプショナルな構成であり、予測システム1の必須の構成ではない。
【0030】
制御装置100は、設備や機械を制御するための各種演算を実行する制御ロジック(以下、「PLCエンジン」とも称す。)を有している。PLCエンジンに加えて、制御装置100は、フィールド装置群10にて計測され、制御装置100へ転送されるデータ(以下、「入力データ」とも称す。)を収集する収集機能を有している。さらに、制御装置100は、収集した入力データに基づいて将来の時間変化を予測する予測機能も有している。
【0031】
具体的には、制御装置100に実装される時系列データベース(以下、「TSDB(Time Series Data Base)」とも記す。)130が収集機能を提供し、制御装置100に実装される予測モデル140が監視機能を提供する。TSDB130および予測モデル140の詳細については後述する。
【0032】
フィールドバス2およびフィールドバス4は、産業用の通信プロトコルを採用することが好ましい。このような通信プロトコルとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
【0033】
フィールド装置群10は、制御対象または制御に関連する製造装置や生産ラインなど(以下、「フィールド」とも総称する。)から入力データを収集する装置を含む。このような入力データを収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群10は、さらに、制御装置100にて生成される指令(以下、「出力データ」とも称す。)に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群10は、フィールドバス2を介して、制御装置100との間で、入力データおよび出力データを含むデータを遣り取りする。
【0034】
図1に示す構成例においては、フィールド装置群10は、リモートI/O(Input/Output)装置12と、リレー群14と、画像センサ18およびカメラ20と、サーボドライバ22およびサーボモータ24とを含む。
【0035】
リモートI/O装置12は、フィールドバス2を介して通信を行う通信部と、入力データの収集および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。このようなI/Oユニットを介して、制御装置100とフィールドとの間で入力データおよび出力データが遣り取りされる。
図1には、リレー群14を介して、入力データおよび出力データとして、デジタル信号が遣り取りされる例が示されている。
【0036】
I/Oユニットは、フィールドバス2に直接接続されるようにしてもよい。
図1には、フィールドバス2にI/Oユニット16が直接接続されている例を示す。
【0037】
画像センサ18は、カメラ20によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置100へ送信する。
【0038】
サーボドライバ22は、制御装置100からの出力データ(例えば、位置指令など)に従って、サーボモータ24を駆動する。
【0039】
上述のように、フィールドバス2を介して、制御装置100とフィールド装置群10との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数百μsecオーダ~数十msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理を、「I/Oリフレッシュ処理」と称することもある。
【0040】
また、フィールドバス4を介して制御装置100と接続される表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置100での演算結果などをグラフィカルに表示する。
【0041】
上位サーバ300は、制御装置100と上位ネットワーク6を介して接続され、制御装置100との間で必要なデータを遣り取りする。上位ネットワーク6には、イーサネット(登録商標)などの汎用プロトコルが実装されてもよい。
【0042】
サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する情報処理装置(コンピュータの一例)である。具体的には、サポート装置200は、制御装置100で実行されるユーザプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムを制御装置100へ送信する機能、制御装置100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
【0043】
さらに、実施形態に基づくサポート装置200は、制御装置100に実装される予測モデル140の生成および最適化を支援するための機能を有している。すなわち、サポート装置200は、予測モデル140を予め決定する予測モデル生成部を有している。これらの機能の詳細については後述する。
【0044】
次に、予測システム1に含まれる制御装置100の応用例について説明する。
【0045】
図2は、実施形態に基づく予測システム1の応用例を示す模式図である。
図2には、プレス機30を含む生産設備の例を示す。
【0046】
図2を参照して、プレス機30は、ワーク31を受け入れ、ベース33に設けられた支持台34上に受け入れたワーク31を配置する。そして、モータ37で駆動される駆動軸36の先端に設けられた押し込み板35でワーク31を圧縮して、中間製品32を生成する。
【0047】
プレス機30においては、予期しない要因変動により中間製品32に不良が発生し得るとする。そのため、プレス機30の下流側に配置された検査機による検査、あるいは、検査員による目視検査または抜き取りによる検査によって、中間製品32に不良が発生しているか否かを判断する。もし、不良が発生していると判断されると、目標値などを都度調整することになる。
【0048】
このように、通常の製造工程においては、中間製品32の良品率を維持および向上させるためには、目標値を都度調整する必要があるが、様々な観点から事前設計したとしても、すべての要因変動に対応することが難しい。
【0049】
これに対して、実施形態に基づく予測モデル140を用いて、中間製品32の状態(すなわち、加工後の品質)を予測することで、不良が実際に発生する前に、制御装置100による制御を補正できる。このような事前の不要発生の予測を利用できることで、目標値などの都度調整に係る工数を削減するとともに、中間製品32に不良が発生することを防止できる。
【0050】
図3は、実施形態に基づく予測システム1による制御系を説明する図である。
図3を参照して、本例における、制御対象は、プレス機30である。既存制御系には、装置の設定値が入力されて目標値が生成される。プレス機30の制御量と、目標値とに基づくフィードバック制御により制御対象に対する操作量が設定される。また、既存制御系に対して予測制御系が設けられる。具体的には、説明変数に対して目的変数を算出する予測器が設けられる。予測器の一例は、予測モデル140である。プレス機30の品質特性の目標値と目的変数とに基づいて補正器で補正値が算出される。当該補正値が操作量に加えられる。
【0051】
図4は、実施形態に基づく予測システム1による予測制御系の予測結果に基づく制御の一例を示す模式図である。
【0052】
図4(A)には、ある時点におけるプレス機の押し込み位置の計画値(指令)と、実際のプレス機30の押し込み位置(実績値)とを示す。目標値は、加工後の中間製品32のあるべき厚みを示す。
【0053】
図4(B)を参照して、ある時点において、それまでの情報(実績値を含み得る)に基づいて、この先のプレス機30の押し込み位置(予測値)を算出し、その算出された予測値に基づいて、プレス機30に対する操作量を補正値により補正する。
【0054】
図2~
図4に示すプレス機30においては、プレス機30の押し込み位置を予測し、その予測結果に基づいて制御量を補正することで、例えば、ワーク31の硬さのばらつきなどに応じて、作業者が目標値を都度調整するようなことは必要ない。その結果、予期しない要因変動による不良品の発生を抑制でき、ワーク31に何らかのばらつきがあっても、品質を安定化できる。
【0055】
予測に用いるデータ(実績値または観測値)と予測されるデータとは、一部または全部が同一であってもよいし、全く異なるものであってもよい。
【0056】
実施形態に基づく予測システム1は、予測モデル140を適切に生成するための機能を提供する。予測モデル140を適切に生成するための機能は、典型的には、サポート装置200に実装されてもよい。
【0057】
<B.予測モデルの生成および運用の概要>
次に、実施形態に基づく予測システム1を用いた予測モデル140の生成および運用の概要について説明する。
【0058】
図5は、実施形態に基づく予測システム1を用いた予測モデル140の生成処理の処理手順を示すフローチャートである。
図5に示す各ステップは、典型的には、サポート装置200のプロセッサ202がプログラム(解析プログラム226およびOS228など)を実行することで実現される。
【0059】
図5を参照して、サポート装置200は、TSDB130に格納されている実績値の時系列データを取得する(ステップS1)。続いて、サポート装置200は、取得した実績値の時系列データから予測対象区間の設定を受け付ける(ステップS2)。
【0060】
サポート装置200は、ステップS2において設定された予測対象区間の変化を予測するための予測モデルの生成に用いられる学習用サンプルを選択する(ステップS3)。ステップS3においては、複数種類のデータのうち、いずれのデータが学習に用いられるのかが選択される。
【0061】
サポート装置200は、選択した学習用サンプルに基づいて機械学習する(ステップS4)。
【0062】
サポート装置200は、機械学習により予測モデル140を生成する(ステップS6)。本例における予測モデル140は、決定木により構成される。決定木は、ある時点の特徴量に対して押し込み位置(予測値)を出力するように構成される。この決定木の学習方法には、CLS(Concept Learning System)、ID3(Iterative Dichotomiser 3)、C4.5等が用いられてもよい。
【0063】
本明細書において、「サンプル」は、予測モデル140から出力されるべき予測値の教師データとして用いられる所定時間長さのデータ列を意味する。「サンプル」は、基本的には、予測対象の時系列データ(生データ)が用いられるが、予測対象が時系列データから抽出される特徴量である場合には、特徴量を用いてもよい。「サンプル」という用語は、複数のデータを処理する際の処理単位に注目したものであり、それに含まれるデータの内容などについては、特に限定するようなものではない。
【0064】
本明細書において、任意の予測値を算出または決定するために参照されるデータを「説明変数」とも称す。1または複数の「説明変数」を用いて、任意の予測値が算出または決定される。そのため、学習用サンプルは、「説明変数」の候補となり得るデータと何らかの方法で関連付けられることになる。
【0065】
本明細書において、「特徴量」は、処理対象の時系列データに含まれる情報を包含する用語であり、例えば、対象の時系列データについての、最大値、最小値、中間値、平均値、標準偏差、分散などを含み得る。なお、「特徴量」は、対象の時系列データそのものも含み得る。
【0066】
図6は、実施形態に基づく予測モデル140の学習方法について説明する図である。
図6(A)に示されるように、TSDB130に格納されている時系列データが示されている。当該時系列データに対して、予測対象区間が設定され、予測対象区間の時刻tおよびt-1の2点の特徴量に対して予測対象の目的変数である予測値が推定される。
図6(B)に示されるように、当該時系列データを用いて、単位時刻分ずらして学習処理を実行する場合が示されている。
【0067】
以上のような処理手順によって生成された予測モデル140を制御装置100に設定することで、
図2~
図4に示すような運用が可能となる。
【0068】
<C.ハードウェア構成例>
次に、実施形態に基づく予測システム1を構成する主要な装置のハードウェア構成例について説明する。
【0069】
(c1:制御装置100のハードウェア構成例)
図7は、実施形態に基づく予測システム1を構成する制御装置100のハードウェア構成例を示すブロック図である。
図7を参照して、制御装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、上位ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ122と、フィールドバスコントローラ118,120と、I/Oユニット124-1,124-2,…とを含む。
【0070】
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、PLCエンジン150および予測モデル140を実現する。チップセット104は、プロセッサ102と各コンポーネントとの間のデータ伝送などを制御する。
【0071】
二次記憶装置108には、PLCエンジン150を実現するためのシステムプログラムに加えて、PLCエンジン150を利用して実行されるユーザプログラムが格納される。さらに、二次記憶装置108には、予測モデル140を実現するためのプログラムも格納される。
【0072】
上位ネットワークコントローラ110は、上位ネットワーク6を介した別の装置との間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
【0073】
メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書き込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読み出すことが可能になっている。
【0074】
内部バスコントローラ122は、制御装置100に搭載されるI/Oユニット124-1,124-2,…との間でデータを遣り取りするインターフェイスである。
【0075】
フィールドバスコントローラ118は、フィールドバス2を介した別の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ120は、フィールドバス4を介した別の装置との間のデータの遣り取りを制御する。
【0076】
図7には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに基づくハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0077】
(c2:サポート装置200のハードウェア構成例)
実施形態に基づくサポート装置200は、一例として、汎用的なアーキテクチャに基づくハードウェア(例えば、汎用パソコン)を用いてプログラムを実行することで実現される。
【0078】
図8は、実施形態に基づく予測システム1を構成するサポート装置200のハードウェア構成例を示すブロック図である。
図8を参照して、サポート装置200は、CPUやMPUなどのプロセッサ202と、光学ドライブ204と、主記憶装置206と、二次記憶装置208と、USBコントローラ212と、上位ネットワークコントローラ214と、入力部216と、表示部218とを含む。これらのコンポーネントはバス220を介して接続される。
【0079】
プロセッサ202は、二次記憶装置208に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、後述するようなモデル生成処理を含む各種処理を実現する。
【0080】
二次記憶装置208は、例えば、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などで構成される。二次記憶装置208には、典型的には、サポート装置200において実行されるユーザプログラムの作成、作成したユーザプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための開発プログラム222と、制御装置100との間で予測機能に関するデータを遣り取りするためのPLCインターフェイスプログラム224と、予測モデル140の生成などを実現するための解析プログラム226と、OS228とが格納される。二次記憶装置208には、
図8に示すプログラム以外の必要なプログラムが格納されてもよい。
【0081】
サポート装置200は、光学ドライブ204を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体205(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読み取られて二次記憶装置208などにインストールされる。
【0082】
サポート装置200で実行される各種プログラムは、コンピュータ読取可能な記録媒体205を介してインストールされてもよいが、ネットワーク上の任意のサーバからダウンロードする形でインストールするようにしてもよい。また、実施形態に基づくサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
【0083】
USBコントローラ212は、USB接続を介して制御装置100との間のデータの遣り取りを制御する。上位ネットワークコントローラ214は、任意のネットワークを介した別の装置との間のデータの遣り取りを制御する。
【0084】
入力部216は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部218は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ202からの処理結果などを出力する。
【0085】
図8には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0086】
<D.ソフトウェア構成例/機能構成例>
次に、実施形態に基づく予測システム1を構成する制御装置100およびサポート装置200のソフトウェア構成例および機能構成例について説明する。
【0087】
図9は、実施形態に基づく予測システム1を構成する制御装置100およびサポート装置200のソフトウェア構成例を示すブロック図である。
図9を参照して、制御装置100は、主要な機能構成として、PLCエンジン150に加えて、TSDB130および予測モデル140を含む。
【0088】
PLCエンジン150は、ユーザプログラム154を逐次解釈して、指定された制御演算を実行する。PLCエンジン150は、フィールドから収集される状態値を変数152の形で管理しており、変数152は予め定められた周期で更新される。PLCエンジン150は、制御装置100のプロセッサ102がシステムプログラムを実行することで実現されてもよい。
【0089】
本明細書において、「状態値」は、フィールドから収集される入力値、フィールドへ出力される指令値、および、制御装置100の内部で管理されるシステム状態値や内部値を含む。実施形態に基づく制御装置100においては、「状態値」を「変数」の形で参照するので、以下の説明においては、便宜上、「変数」との用語を「状態値」を含む趣旨で用いる。なお、本開示の技術的範囲は、「状態値」を「変数」の形で参照する構成に限定されることはない。
【0090】
ユーザプログラム154は、予測値取得コード156と、誤差評価コード158と、追加学習コード160と、TSDB書き込みコード162と、制御演算コード164とを含む。
【0091】
予測値取得コード156は、制御演算コード164が参照可能な状態値のうち1または複数の状態値からなる実績値を予測モデル140に入力することで予測値を取得する予測値取得部を実現する。より具体的には、予測値取得コード156は、変数152として管理される必要な実績値を取得して、予測モデル140に入力することで、予測値を取得する命令を含む。
【0092】
誤差評価コード158は、予測値取得コード156により取得された予測値と目標値との誤差を評価する命令を含む。
【0093】
追加学習コード160は、誤差評価コード158により評価された誤差に応じて、必要に応じて、予測モデル140を追加学習する命令を含む。
【0094】
TSDB書き込みコード162は、変数152として管理される変数のうち、予め定められた変数を取得して、TSDB130の記憶領域132に書き込む。
【0095】
制御演算コード164は、制御対象を制御するための制御演算を実行する制御演算部を実現する。より具体的には、制御演算コード164は、制御対象を制御するための制御演算を実行するとともに、誤差評価コード158により評価された誤差に応じて、必要に応じて、制御演算に用いる目標値を補正する。
【0096】
TSDB130は、記憶領域132に書き込まれたデータを必要に応じて、サポート装置200などへエクスポートするエクスポートモジュール134を有している。
【0097】
予測モデル140は、参照軌道144を有している。
【0098】
一方、サポート装置200は、開発プログラム222および解析プログラム226がインストールされている。
【0099】
開発プログラム222は、ユーザ操作に従って、ユーザプログラム154を生成し、制御装置100へ転送する。また、開発プログラム222は、制御演算コード164の内容を適宜修正する機能も有している。
【0100】
解析プログラム226は、予測モデル140を予め決定する予測モデル生成部を実現するための情報処理プログラムに相当する。より具体的には、解析プログラム226は、予測モデル140の生成を支援するものであり、モデル生成モジュール2262と、解析モジュール2264とを含む。
【0101】
モデル生成モジュール2262は、予測モデル140を生成する処理に必要な機能を実現する。
【0102】
解析モジュール2264は、予測モデル140を生成するために用いられる学習用サンプルを解析するために用いられる。予測対象の時系列データ(生データ)の中から必要なデータを抽出するとともに、不要なデータを学習用サンプルから除外する処理等を実行する。これにより、予測モデル140の精度を向上させることが可能となる。
【0103】
図10は、実施形態に基づく
図9に示す解析プログラム226に含まれる機能モジュールの概要を示すブロック図である。
図10を参照して、サポート装置200の解析プログラム226は、主要な機能構成として、ユーザインターフェイス230と、入出力管理モジュール236と、画面表示モジュール238と、グラフライブラリ240と、解析モジュール242と、解析ライブラリ244とを含む。
【0104】
ユーザインターフェイス230は、ユーザからの設定を受け付けるとともに、ユーザに対して各種情報を提供するための統括的な処理を実行する。具体的な実装形態として、ユーザインターフェイス230は、スクリプトエンジン232を有しており、必要な処理を記述したスクリプトを含む設定ファイル234を読み込んで、設定された処理を実行する。
【0105】
入出力管理モジュール236は、指定されたファイルなどからデータを読み込むファイル入力機能と、データストリームを受信するストリーム入力機能と、生成したデータなどを含むファイルを出力するファイル出力機能とを含む。
【0106】
画面表示モジュール238は、入力された予測モデルに基づいてモデル評価画面を生成する機能と、ユーザの操作を受けて評価結果を表示する機能とを含む。グラフライブラリ240を参照して必要な処理を実行するようにしてもよい。
【0107】
解析モジュール242は、解析プログラム226の主要な処理を実現するモジュールであり、モデル生成機能および解析機能を有している。解析モジュール242に含まれる各機能は、解析ライブラリ244を参照することで実現される。
【0108】
解析ライブラリ244は、解析モジュール242に含まれる各機能が処理を実行するためのライブラリを含む。より具体的には、解析ライブラリ244は、統計量機能、決定木機能、時系列回帰機能、グリッドサーチ機能、クラスタリング機能、推論速度評価機能、精度評価機能、および、異常検知機能を有していてもよい。
【0109】
<E.解析ツール>
図11は、実施形態に基づく解析機能を実行する解析部について説明する図である。
図11を参照して、解析部250は、データ取得部251と、グラフ表示部252と、リスト表示部254と、リスト選択部256と、グラフ調整部257と、ラベル受付部258とを含む。解析部250は、一例として解析モジュール2264により実現される。
【0110】
図5のフローで説明したステップS1~S3の部分については解析部250で実行する。
【0111】
データ取得部251は、TSDB130に格納されている実績値の時系列データを取得する。実績値は、複数の変数のそれぞれに対応する時系列データである。
【0112】
グラフ表示部252は、複数の変数のうちの少なくとも1つの選択された変数の時系列散布図を表示する。
【0113】
グラフ調整部257は、所定の関数に基づいて時系列データのデータ間の時間間隔を調整する。
【0114】
グラフ表示部252は、グラフ調整部257により調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示する。
【0115】
リスト表示部254は、複数の変数のリストを生成して表示する。
【0116】
リスト選択部256は、リストの中から変数の選択を受け付ける。
【0117】
ラベル受付部258は、データに対してラベリングのための入力を受け付けて登録する。
【0118】
図12は、実施形態に基づく解析画面500の一例について説明する図である。
【0119】
図12を参照して、解析画面500には、グラフ表示部252により生成された時系列散布
図560が表示される。
【0120】
また、リスト表示部254により生成された変数のリスト520が表示される。
【0121】
時系列散布
図560には、縦軸の変数(「CenterHeaterDPC_MV」)に対する時系列データ表示されている。
【0122】
解析画面500には、時系列散布
図560において、所定の関数に基づいて時系列データの順序関係を維持しつつデータ間の時間間隔を調整する調整スライダ540が設けられている。調整スライダ540は、調整ボタン542が設けられており、ポインティングデバイスを用いて調整ボタン542を左右に動かすことが可能である。初期状態においては、調整ボタン542は中央に表示されており、データ間の時間間隔の調整はされていない。調整ボタン542を中央から左側に動かすとデータ間の時間間隔は短縮される。一方、調整ボタン542を中央から右側に動かすとデータ間の時間間隔は拡張される。
【0123】
本例においては、所定の関数は、次式(1)となる。
【0124】
【0125】
すなわち、所定の関数は、時系列データのデータ間の時間間隔を基準となる時系列データのデータ間の時間間隔のべき乗に設定する。
【0126】
具体的には、調整ボタン542は、べき乗のパラメータaを調整する。
【0127】
本例において、「t」は調整前の時刻であり、「t'」は調整後の時刻である。
【0128】
パラメータaの初期値は「1」である。
【0129】
したがって、調整スライダ540の調整ボタン542が中央に有る場合には調整されない。調整ボタン542を中央から右側に動かすとパラメータaは1より大きくなる。
【0130】
一方で、調整ボタン542を中央から左側に動かすとパラメータaは1より小さくなる。
【0131】
また、時系列散布
図560には、開始点選択ライン562と、終了点選択ライン564とが設けられる。開始点選択ライン562および終了点選択ライン564は、ユーザが例えばポイティングデバイスを用いて任意の位置に変更することが可能である。
【0132】
開始点選択ライン562と終了点選択ライン564とで指定される範囲が時系列データとして指定した範囲となる。例えば、当該範囲のデータに関連付けてラベルを付与することが可能である。
【0133】
変数のリスト520には、変数名と、当該変数の特徴量とがリスト表示されている。一例として、特徴量「ユニーク数」、「無効値数」が示されている。また、リスト520の順序を所定の方式に従ってソートすることも可能に設けられている。
【0134】
本例においては、初期状態において変数のリスト520の列名の最上位の変数が縦軸変数(一例として「「CenterHeaterDPC_MV」」)として設定される。
【0135】
例えば、ポインティングデバイスを用いて変数のリスト520において、変数を選択することにより、当該選択した変数を縦軸変数とした時系列データが表示される。
【0136】
また、本例においては、ラベル入力欄550が設けられている。
【0137】
例えば、ポインティングデバイスを用いて開始点選択ライン562と終了点選択ライン564とで指定した範囲が時系列データとして指定した範囲となる。
【0138】
例えばポインティングデバイスを用いて選択した範囲においてラベル入力欄550にラベル名を入力して登録ボタンを押下することにより当該範囲に対してラベルを付与することが可能である。
【0139】
なお、本例においては、ポインティングデバイスを用いて開始点選択ライン562および終了点選択ライン564を用いて範囲を指定する場合について説明したが、これに限られず時刻を直接指定して範囲を選択するようにしてもよく、範囲の選択の仕方については何ら限定されない。
【0140】
例えば、当該方式によりユーザは、データセットに対してラベルを付与することにより予測モデルの学習用サンプルとしてある特定の期間を容易に選別することが可能である。
【0141】
図13は、実施形態に基づく解析画面502の一例について説明する図である。
【0142】
図13を参照して、解析画面502には、調整スライダ540の調整ボタン542を中央から左側に動かした場合が示されている。例えば、これにより、パラメータaは、「0.5」とする。
【0143】
グラフ調整部257は、調整スライダ540の調整ボタン542のパラメータaに従って所定の関数に基づいて時系列データのデータ間の時間間隔を調整する。
【0144】
本例の場合には、データ間の時間間隔は短縮される。
【0145】
グラフ表示部252は、グラフ調整部257により調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示する。
【0146】
この場合、
図12の場合には、クラスタが2つあり、その間に大きな空白があることしか分からないが、本例のように、時間間隔を調整して順序関係を維持しつつグラフの表示幅に合わせて正規化して表示することによりクラスタ内のデータの詳細の概要を簡易に把握することが分かる。具体的には、データの順序関係が維持されるためデータの分布の時間推移の概要を把握することが可能である。本例においては、時間推移の概要として、2つのクラスタで類似したデータとなっていることが分かる。なお、データ間の時間間隔を調整して正規化しているため時間軸とデータとの線形性の関係は得られないが、データの順序関係は補完されているためデータの分布の概要を容易に把握することが可能であり、データ分析に有用である。
【0147】
図14は、実施形態に基づくグラフ調整部257によりデータ間の時間間隔を短縮する場合について説明する図である。
【0148】
図14に示されるように、縦軸変数(一例として「「CenterHeaterDPC_MV」」)の時系列データのグラフが表示されている。調整ボタン542を中央から左側に動かすとパラメータaは1より小さくなる。
【0149】
グラフ調整部257は、調整スライダ540の調整ボタン542のパラメータaに従って所定の関数に基づいて時系列データのデータ間の時間間隔を短縮する。
【0150】
グラフ表示部252は、グラフ調整部257により調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示する。
【0151】
上記したように、時間間隔を調整して順序関係を維持しつつグラフの表示幅に合わせて正規化して表示することによりクラスタ内のデータの詳細の概要を簡易に把握することが分かる。
【0152】
図15は、実施形態に基づくグラフ調整部257によりデータ間の時間間隔を拡張する場合について説明する図である。
【0153】
図15に示されるように、縦軸変数(一例として「「FilmFeedMain.Act.Pos」」)の時系列データのグラフが表示されている。調整ボタン542を中央から右側に動かすとパラメータaは1より大きくなる。
【0154】
グラフ調整部257は、調整スライダ540の調整ボタン542のパラメータaに従って所定の関数に基づいて時系列データのデータ間の時間間隔を拡張する。
【0155】
グラフ表示部252は、グラフ調整部257により調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示する。
【0156】
時間間隔を調整して順序関係を維持しつつグラフの表示幅に合わせて正規化して表示することによりクラスタ内のデータの詳細の概要を簡易に把握することが分かる。具体的には、データの順序関係が維持されるためデータの分布の時間推移の概要を把握することが可能である。本例においては、時間推移の概要として、調整前の時系列データは一定間隔で密であるように見えるが、調整後の時系列データは空白の大きさに差が生じていることが分かる。例えば、空白の大きさに差があることからデータの抜けの可能性を考えることが可能である。なお、データ間の時間間隔を調整して正規化しているため時間軸とデータとの線形性の関係は得られないが、データの順序関係は補完されているためデータの分布の概要を容易に把握することが可能であり、データ分析に有用である。
【0157】
これにより、不要なデータを学習用サンプルから除外して、予測モデルの精度を向上させることが可能となる。
【0158】
上記においては、主に決定木に代表される木構造の学習アルゴリズムに基づく予測モデルを生成する場合について説明したが、決定木に限られず、他の学習アルゴリズムを用いた予測モデルにも同様に適用することが可能である。
【0159】
さらに、本例においては、予測モデルの生成のために解析ツールを用いて解析処理を実行する場合について説明したが、予測モデルの生成に限られず、例えば一般的なデータ分析の場合においても同様に適用可能である。
【0160】
<F.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
【0161】
[構成1]
時系列データを取得するデータ取得部(251)と、
前記データ取得部で取得した時系列データに基づくグラフを表示するグラフ表示部(252)と、
所定の関数に基づいて時系列データのデータ間の時間間隔を調整する調整部(257)とを備え、
前記グラフ表示部は、前記調整部により調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示する、情報処理装置。
【0162】
[構成2]
前記調整部は、ユーザの指示に従って前記データ間の時間間隔を任意の幅に調整可能なスライダ(540)を含む、上記記載の情報処理装置。
【0163】
[構成3]
前記所定の関数は、前記時系列データのデータ間の時間間隔を基準となる前記時系列データのデータ間の時間間隔のべき乗に設定し、
前記スライダは、前記べき乗の値をパラメータとして調整する、上記記載の情報処理装置。
【0164】
[構成4]
前記データ取得部は、複数の変数の時系列データを取得し、
前記複数の変数のリストを生成して表示するリスト表示部(254)と、
前記リストの中から変数の選択を受け付けるリスト選択部(256)とをさらに含み、
前記グラフ表示部は、選択された変数の時系列データに基づくグラフを表示する、上記記載の情報処理装置。
【0165】
[構成5]
前記時系列データに対してラベリングするラベル受付部(258)を含む、上記記載の情報処理装置。
【0166】
[構成6]
コンピュータで実行される情報処理プログラムであって、
前記情報処理プログラムは、前記コンピュータに、
時系列データを取得するステップ(S2)と、
取得した時系列データに基づくグラフを表示するステップと、
所定の関数に基づいて時系列データのデータ間の時間間隔を調整するステップとを備え、
前記グラフを表示するステップは、調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示するステップを含む、情報処理プログラム。
【0167】
<G.利点>
実施形態に基づく情報処理装置においては、調整された時系列データについて順序関係を維持しつつグラフの表示幅に合わせて正規化して表示するため、データの特性を把握する点で表示を工夫することが可能である。
【0168】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0169】
1 予測システム、2,4 フィールドバス、6 上位ネットワーク、10 フィールド装置群、14 リレー群、100 制御装置、102,202 プロセッサ、104 チップセット、106,206 主記憶装置、108,208 二次記憶装置、110,214 上位ネットワークコントローラ、112,212 コントローラ、114 メモリカードインターフェイス、116 メモリカード、118,120 フィールドバスコントローラ、122 内部バスコントローラ、132 記憶領域、134 エクスポートモジュール、140 予測モデル、144 参照軌道、150 エンジン、152 変数、154 ユーザプログラム、156 予測値取得コード、158 誤差評価コード、160 追加学習コード、162 書き込みコード、164 制御演算コード、200 サポート装置、204 光学ドライブ、205 記録媒体、216 入力部、218 表示部、220 バス、222 開発プログラム、224 インターフェイスプログラム、226 解析プログラム、230 ユーザインターフェイス、232 スクリプトエンジン、234 設定ファイル、236 入出力管理モジュール、238 画面表示モジュール、240 グラフライブラリ、242 解析モジュール、244 解析ライブラリ、250 解析部、251 データ取得部、252 グラフ表示部、254 リスト表示部、256 リスト選択部、257 グラフ調整部、258 ラベル受付部、300 上位サーバ、400 表示装置。