(57)【特許請求の範囲】
【請求項１】
複数のサブシステムによって階層構造をなすシステムの異常診断を行う異常診断装置であって、
前記システム及び前記サブシステムごとに、正常動作モデルを記憶する正常動作モデル蓄積部と、
前記システム及び前記サブシステムごとに、実動時動作データを抽出する実動時動作抽出部と、
前記システム及び前記サブシステムごとに、前記正常動作モデルに前記実動時動作データが含まれている場合には「正常」、含まれていない場合には「異常の可能性有」とする局所判定を行う正常動作モデル比較部と、
前記システムに係る前記局所判定が「異常の可能性有」であり、かつ、前記階層構造の最下位層の前記サブシステムから遡って前記階層構造の最上位層の前記サブシステムに到達するまでの遡及経路に含まれる全ての前記局所判定が「異常の可能性有」である場合には、「異常の可能性大」とする総合判定を行い、最下位層の前記サブシステムを異常箇所として同定する総合判定部と、
を具備する異常診断装置。
【請求項２】
前記総合判定部は、前記遡及経路に含まれる全ての前記局所判定が「異常の可能性有」であるか否かの判定処理を再帰的に実行することによって、前記総合判定を行う
請求項１に記載の異常診断装置。
【請求項３】
前記正常動作モデルは、前記システム及び前記サブシステムがそれぞれ独立に正常に動作していることを特徴づけるデータのみによって構築される
請求項１又は請求項２に記載の異常診断装置。
【請求項４】
前記正常動作モデルは、前記システム及び前記サブシステムごとの正常時の入出力値の対応関係を示す表現形式、並びに、前記システム及び前記サブシステムごとの正常時に取り得るデータフロー或いは制御フローを示す表現形式の中から、前記システム及び前記サブシステムごとに最適な表現形式によって構築される
請求項３に記載の異常診断装置。
【請求項５】
コンピュータを、請求項１に記載の異常診断装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模なシステムの異常を検出するとともに、異常発生個所を同定する異常診断装置等に関するものである。
【背景技術】
【０００２】
近年、車載システム、宇宙機器システム、航空システムなどの高い信頼性が求められる制御システム（以下、単に「システム」と記載する。）においては、システムを構成するハードウエア並びにソフトウエアの大規模化、複雑化が顕著に進んでいる。その為、ハードウエアやソフトウエアの製造時の不具合が残留する可能性が高まり、それゆえに、市場に出たり、実際に運用されたりした後に、その不具合が顕在化する可能性も高まっている。また、残留している不具合に起因してシステムが異常となる危険性、すなわちシステムが設計者の意図通りに動作しない危険性が高まっている。従って、システムの高い信頼性を維持する為には、市場に出たり、実際に運用されたりした後のシステム稼働時（以下、「実動時」と記載する。）において、システムが正常か異常かを高精度に判定し、更に、システムに異常が発生した場合、異常発生個所を高精度に同定することが必要不可欠と言える。
【０００３】
システムの異常を検出する仕組みの一つとして、「正常動作モデルによる異常検出」が挙げられる。この仕組みの概要は、以下の通りである。
・システムの実動前に予めシステムを動作させ、システムが正常に動作していることを特徴づけるパラメータ値を抽出することによって、「正常動作モデル」を構築する。
・実動時においては、システムの動作中にパラメータ値を取得し、正常動作モデルと一致するか否かを調べて、一致する場合は「正常」、一致しない場合は「異常の可能性有」と判定する。
【０００４】
「正常動作モデルによる異常検出」の仕組みの利点は、「異常動作」を定義しなくても、「正常」か「異常の可能性有」のいずれかを判定できることであり、それゆえ、異常動作を網羅的に抜けもれなく定義する労力から解放されることである。特許文献１には、「正常動作モデルによる異常検出」の仕組みの一例が記載されている。
特許文献１では、ＷＥＢサービス又は業務サービスといった情報通信サービスを提供する情報処理装置に関する運用管理方法として、以下の仕組みが記載されている。
・性能情報より、「時系列に変化する任意の２つの変数の変換関数」を導出することによって、相関モデルを生成し、これを「正常動作モデル」とする。
・実動時において性能を測定し、相関モデル（正常動作モデル）と一致しない変数値の組み合わせの個数がしきい値以上存在する場合に異常と判定し、該当変数に関する箇所を異常発生個所と同定する。
【０００５】
また、システムの異常を検出する仕組みのもう一つの例として、システム全体をサブシステムごとに階層化し、サブシステムごとに「正常動作モデル」を作成し、実動時に比較する仕組みも提案されている（特許文献２、３参照）。
特許文献２では、この仕組みを適用し、原子力発電プラントや石油化学プラントなどの異常を診断する異常診断装置が開示されている。特許文献３では、この仕組みを適用し、プラント運転支援システムなどにおける異常なサブシステムやその異常原因の特定に使用される異常診断装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１８６３１０号公報
【特許文献２】特開平１０−２０９３２号公報
【特許文献３】特開平６−５４３７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の運用管理方法では、以下の課題がある。
（１）開発の最終段階において大きな労力が発生する。これは、特許文献１に記載の運用管理方法では、大規模なシステムの正常／異常の判定、並びに、異常発生箇所の同定を行う為には、システムの完成時になって初めて正常動作モデル（特許文献１では「相関モデル」）を構築することが可能になるからである。すなわち、特許文献１に記載の運用管理方法では、システムが正常に動作していることを特徴づける変数に加えて、そのシステムの一部を構成する部分（以降、「サブシステム」と記載する。）が正常に動作していることを特徴づける変数の値も全て抽出し、それらの膨大な変数の相関モデルを構築しなければならない。
（２）異常の判定精度が正常動作モデルの網羅度に依存する。すなわち、正常動作モデルを網羅的に作成することができれば異常の判定精度は向上するが、正常動作モデルを網羅的に作成することができなければ、異常の判定精度が低下して誤報（「正常」なのに「異常の可能性有」と通知されてしまうこと。）が発生し易くなる。
（３）正常動作モデルの表現形式が「時系列に変化する２つの変数の変換関数」に限定されている為、その表現形式によって正常動作モデルを表現できない場合には特許文献１に記載の運用管理方法を適用できない。正常動作モデルの表現形式は、２つの変数の相関による表現形式以外にも、例えば、ツリー形式を用いてシステムが正常時に取り得る変数の組の集合を表現したり、ソフトウエアが正常時に取り得る制御フロー集合を表現したりと、多様な表現形式が考えられる。従って、正常動作モデルの表現形式は、システム又はサブシステムの特性に応じて適切な表現形式を用いることが望ましい。
【０００８】
また、特許文献２や特許文献３に記載の異常診断装置にも課題がある。特許文献２や特許文献３に記載の異常診断装置では、階層の最上位の正常動作モデルが「異常」と判断された場合には、その下の階層のサブシステムがたとえ「正常」と判断されていても、最終的に「異常」と判定してしまう。この判定方法では、仮に最上位の正常動作モデルの網羅度が低いと、「正常」を「異常」と判定してしまう場合があり、誤報を引き起こす可能性が高いと言える。
【０００９】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、開発の最終段階での労力を軽減し、システム又はサブシステムの特性に応じて適切な表現形式を用いて正常動作モデルが構築され、異常の判定精度を向上させて誤報を減らすとともに異常発生個所の同定も可能とする異常診断装置等を提供することである。
【課題を解決するための手段】
【００１０】
前述した目的を達成するために第１の発明は、複数のサブシステムによって階層構造をなすシステムの異常診断を行う異常診断装置であって、前記システム及び前記サブシステムごとに、正常動作モデルを記憶する正常動作モデル蓄積部と、前記システム及び前記サブシステムごとに、実動時動作データを抽出する実動時動作抽出部と、前記システム及び前記サブシステムごとに、前記正常動作モデルに前記実動時動作データが含まれている場合には「正常」、含まれていない場合には「異常の可能性有」とする局所判定を行う正常動作モデル比較部と、前記システムに係る前記局所判定が「異常の可能性有」であり、かつ、前記階層構造の最下位層の前記サブシステムから遡って前記階層構造の最上位層の前記サブシステムに到達するまでの遡及経路に含まれる全ての前記局所判定が「異常の可能性有」である場合には、「異常の可能性大」とする総合判定を行い、最下位層の前記サブシステムを異常箇所として同定する総合判定部と、を具備する異常診断装置である。
第１の発明によって、異常の判定精度を向上させて誤報を減らすとともに異常発生個所の同定も行うことができる。
【００１１】
第１の発明における前記総合判定部は、前記遡及経路に含まれる全ての前記局所判定が「異常の可能性有」であるか否かの判定処理を再帰的に実行することによって、前記総合判定を行うことが望ましい。
これによって、第１の発明の異常診断装置の実装作業が容易となるとともに、サブシステムの追加、削除、分割、又は統合があったとしても、対応が容易となる。
【００１２】
第１の発明における前記正常動作モデルは、前記システム及び前記サブシステムがそれぞれ独立に正常に動作していることを特徴づけるデータのみによって構築されることが望ましい。
これによって、開発の最終段階ではシステムの正常動作モデルのみを構築すれば良いので、開発の最終段階での労力を軽減することができる。
【００１３】
第１の発明における前記正常動作モデルは、前記システム及び前記サブシステムごとの正常時の入出力値の対応関係を示す表現形式、並びに、前記システム及び前記サブシステムごとの正常時に取り得るデータフロー或いは制御フローを示す表現形式の中から、前記システム及び前記サブシステムごとに最適な表現形式によって構築されることが望ましい。
これによって、システム又はサブシステムの特性に応じて適切な表現形式を用いて正常動作モデルが構築される。
【００１４】
第２の発明は、コンピュータを、第１の発明の異常診断装置として機能させるためのプログラムである。
汎用のコンピュータに第２の発明のプログラムをインストールすることによって、第１の発明の異常診断装置を得ることができる。
【発明の効果】
【００１５】
本発明により、開発の最終段階での労力を軽減し、システム又はサブシステムの特性に応じて適切な表現形式を用いて正常動作モデルが構築され、異常の判定精度を向上させて誤報を減らすとともに異常発生個所の同定も可能とする異常診断装置等を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】診断対象のシステムと異常診断装置の概略構成図
【図２】システムの一例としての車両の概要図
【図３】正常動作モデルの階層構造を示す図
【図４】車両の正常動作モデルの一例を示す図
【図５】ＡＢＳの正常動作モデルの一例を示す図
【図６】ＳＷの正常動作モデルの一例を示す図
【図７】ＨＷ（ＦＬ）の正常動作モデルの一例を示す図
【図８】ＨＷ（ＦＲ）の正常動作モデルの一例を示す図
【図９】実動時動作データの階層構造を示す図
【図１０】局所判定アルゴリズムの一例を示すフローチャート
【図１１】総合判定アルゴリズムの一例を示すフローチャート
【図１２】総合判定表の一例を示す図
【図１３】総合判定結果の一例を示す図
【発明を実施するための形態】
【００１７】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
本発明の実施の形態に係る異常診断装置１は、複数のサブシステムによって階層構造をなすシステムを診断対象とする。異常診断装置１は、診断対象のシステムに搭載されていても良いし、診断対象のシステムの外部に設置されていても良い。例えば、診断対象のシステムが車両の制御システムである場合、異常診断装置１が車両に搭載されていると、後述する実動時動作データの収集が容易になるとともに、運転者に対して即座に診断結果を通知することが可能となる。
【００１８】
図１は、診断対象のシステムと異常診断装置の概略構成図である。
図１に示すように、診断対象のシステムは、複数のサブシステムによって階層構造をなす。図１を詳細に説明すると、システムは、「サブシステム１」、・・・、「サブシステムｎ」（最上位層のサブシステム）を含む。また、「サブシステム１」（最上位層のサブシステム群）は、「サブシステム１１」、・・・、「サブシステム１ｐ」（第２階層のサブシステム群）を含み、「サブシステムｎ」（最上位層のサブシステム）は、「サブシステムｎ１」、・・・、「サブシステムｎｑ」（第２階層のサブシステム群）を含む。尚、第２階層よりも下の階層のサブシステムが存在しない場合、第２階層が最下位層となる。
【００１９】
階層構造の階層数は任意である。サブシステムの分割単位は、機能、ＨＷ（ハードウエア）、ＳＷ（ソフトウエア）などが考えられる。機能、ＨＷ（ハードウエア）、ＳＷ（ソフトウエア）ごとに分けられたサブシステムは、更に複数のサブ機能、サブＨＷ、サブＳＷに階層化しても良い。また、例えば、図１に示す「サブシステム１ｐ」と「サブシステムｎ１」などが、同一のサブシステムであっても良い。
【００２０】
また、図１に示すように、階層型異常診断装置１（以下、単に「異常診断装置１」と記載する。）は、実動時動作抽出部２、正常動作モデル蓄積部３、正常動作モデル比較部４、総合判定部５等を具備する。
【００２１】
正常動作モデル蓄積部３は、システム及びサブシステムごとに、階層型正常動作モデル７（以下、単に「正常動作モデル７」と記載する。）を記憶する。正常動作モデル７は、例えば、サブシステムごとの動作を確認する単体テストやシステム全体の動作を確認する総合テストの際に構築される。また、正常動作モデル７は、システムの実動後にデータが追加されても良い。
【００２２】
正常動作モデル７は、システム及びサブシステムがそれぞれ独立に正常に動作していることを特徴づけるデータのみによって構築されることが望ましい。これは、システム全体や特定のサブシステムが正常か否かを判定する為には、より下位のサブシステムの動作を特徴づけるデータを含める必要がないからである。また、あるサブシステムの正常動作モデル７が他のサブシステムに依存する場合、他のサブシステムが完成しないと構築できない為、開発の最終段階において大きな労力が必要である。これに対して、正常動作モデル７をシステム及びサブシステムごとに独立して構築することによって、開発の最終段階ではシステムの正常動作モデル７のみを構築すれば良いので、開発の最終段階での労力を軽減することができる。
【００２３】
正常動作モデル７は、システム及びサブシステムごとの正常時の入出力値の対応関係を示す表現形式（第１の表現形式）、並びに、システム及びサブシステムごとの正常時に取り得るフローを示す表現形式（第２の表現形式）などの中から、システム及びサブシステムごとに最適な表現形式によって構築される。例えば、機能、ＨＷ（ハードウエア）、ＳＷ（ソフトウエア）などの分割単位に応じて最適な表現形式が選択される。
第１の表現形式の例としては、入出力変数の相関関数、ツリー構造やテーブルなどによって表現される入出力変数値の羅列などが考えられる。また、第２の表現形式の例としては、データフローや制御フローなどが考えられる。例えば、機能やＨＷを分割単位とするときは、第１の表現形式などが望ましい。また、例えば、ＳＷを分割単位とするときは、処理が単純な場合にはいずれの表現形式でも良く、処理が複雑な場合には第２の表現形式などが望ましい。
【００２４】
実動時動作抽出部２は、システムの実動時に、システム及びサブシステムごとに、階層型実動時動作データ６（以下、単に「実動時動作データ６」と記載する。）を抽出する。実動時動作抽出部２は、正常動作モデル７との比較が可能なように、正常動作モデル７の表現形式に応じたデータを実動時動作データ６として収集する。例えば、正常動作モデル７が、入出力変数の相関関数、入出力変数値の羅列、データフローなどによって表現される場合、実動時動作抽出部２は、関連するデータを実動時動作データ６として収集する。また、例えば、正常動作モデル７が、制御フローなどによって表現される場合、実行された命令や命令の実行アドレスを実動時動作データ６として収集する。
例えば、診断対象のシステムを構成する為の各種プログラムには、異常診断装置１に実動時動作データ６を送信する命令が記述されている。また、例えば、異常診断装置１の実動時動作抽出部２を構成する為のプログラムには、各種センサから実動時動作データ６を取得する命令が記述されている。
【００２５】
正常動作モデル比較部４は、システムの実動時に、システム及びサブシステムごとに、正常動作モデル７に実動時動作データ６が含まれている場合には「正常」、含まれていない場合には「異常の可能性有」とする局所判定を行う。正常動作モデル比較部４が従う局所判定アルゴリズム８の一例については後述する。
【００２６】
総合判定部５は、システムの実動時に、システムに係る局所判定が「異常の可能性有」であり、かつ、階層構造の最下位層のサブシステムから遡って階層構造の最上位層のサブシステムに到達するまでの遡及経路に含まれる全ての局所判定が「異常の可能性有」である場合には、「異常の可能性大」とする総合判定を行い、最下位層のサブシステムを異常箇所として同定する。以下、遡及経路とは、階層構造の最下位層のサブシステムから遡って階層構造の最上位層のサブシステムに到達するまでの経路を意味するものとする。総合判定部５が従う総合判定アルゴリズム９の一例については後述する。
【００２７】
ここで、異常診断装置１のハードウエア構成について説明する。異常診断装置１は、例えば、制御装置、記憶装置、及び通信制御装置等がバスを介して接続されて構成される。
制御装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。ＣＰＵは、記憶装置、ＲＯＭ等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、バスを介して接続された各装置を駆動制御し、異常診断装置１が行う後述する処理を実現する。ＲＯＭは、不揮発性メモリであり、異常診断装置１のブートプログラムやＢＩＯＳ等のプログラム、データ等を恒久的に保持している。ＲＡＭは、揮発性メモリであり、記憶装置、ＲＯＭ等からロードしたプログラム、データ等を一時的に保持するとともに、制御装置が各種処理を行う為に使用するワークエリアを備える。
記憶装置は、ＨＤＤ（ハードディスクドライブ）またはＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）等であり、制御装置が実行するプログラム、プログラム実行に必要なデータ等が格納される。プログラムは、制御装置により必要に応じて読み出されてＲＡＭに移され、ＣＰＵに読み出されて各種の手段として実行される。
通信制御装置は、他の装置との通信を媒介する通信インタフェースであり、他の装置との通信制御を行う。
【００２８】
実動時動作抽出部２、正常動作モデル比較部４、及び総合判定部５は、制御装置が記憶装置に記憶されているプログラムを実行することによって実現される。また、実動時動作抽出部２は、制御装置が通信制御装置を介してデータを収集することによって実現される。正常動作モデル蓄積部３は、記憶装置に記憶されるファイル群によって実現される。
【００２９】
図２は、システムの一例としての車両の概要図である。車両１１は、図１に示すシステムに相当する。ＡＢＳ（Ａｎｔｉｌｏｃｋ  Ｂｒａｋｅ  Ｓｙｓｔｅｍ）１２は、図１に示す最上位層のサブシステムに相当する。説明を簡単にする為に、車両１１に含まれるＡＢＳ１２以外の最上位層のサブシステムについては省略する。
【００３０】
ＡＢＳ１２は、急ブレーキや低摩擦の路面でのブレーキ操作において、車輪のロック（車輪の回転が止まること）による滑走を防止する機能である。ＡＢＳ１２は、例えば、ＥＣＵ（Ｅｌｅｃｔｒｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ：電子制御装置）によって実現される。ＥＣＵは、マイクロコンピュータであり、組み込まれるＳＷ（ソフトウエア）１３に従って動作する。
【００３１】
また、図２に示すＡＢＳ１２は、４センサ２チャンネル型となっている。４つのセンサは、車輪速（ＦＬ：左前輪）２１、車輪速（ＦＲ：右前輪）２２、車輪速（ＲＬ：左後輪）２３、車輪速（ＲＲ：右後輪）２４の車速センサである。２つのチャンネルは、ＨＷ（ＦＬ：左前輪）１４、ＨＷ（ＦＲ：右前輪）１５である。尚、ＨＷはハードウエアの略称である。ＨＷ（ＦＬ）１４やＨＷ（ＦＲ）１５は、例えば、ブレーキ油圧を制御するソレノイドバルブである。
ＳＷ１３、ＨＷ（ＦＬ）１４、及びＨＷ（ＦＲ）１５は、図１に示す第２階層のサブシステムに相当する。
【００３２】
以下では、車輪速（ＦＬ）２１、車輪速（ＦＲ）２２、車輪速（ＲＬ）２３、車輪速（ＲＲ）２４の車速センサや、出力装置２５（例えば、警報ランプなど）、車輪（ＦＬ）２６、車輪（ＦＲ）２７、ブレーキ装置２８などは、サブシステムとしてのＡＢＳ１２に含まれないものとして説明する。
【００３３】
図３〜図８を参照しながら、正常動作モデル蓄積部３について説明する。正常動作モデル蓄積部３は、図３に示す正常動作モデルの階層構造を示すデータとともに、図４〜図８に示すシステム及びサブシステムの正常動作モデルのデータを蓄積する。
【００３４】
図３は、正常動作モデルの階層構造を示す図である。
図３に示すように、車両１１、ＡＢＳ１２、ＳＷ１３、ＨＷ（ＦＬ）１４、ＨＷ（ＦＲ）１５のそれぞれに対して、車両の正常動作モデル３１、ＡＢＳの正常動作モデル３２、ＳＷの正常動作モデル３３、ＨＷ（ＦＬ）の正常動作モデル３４、ＨＷ（ＦＲ）の正常動作モデル３５が構築される。システムが複数のサブシステムによって階層構造をなす為、正常動作モデル７も、図３に示す階層構造をなしている。
【００３５】
図４は、車両の正常動作モデルの一例を示す図である。
車両の正常動作モデル３１は、例えば、正常な車両１１の動作を表す変数値の組み合わせの羅列を示す表として構築される。正常な車両１１の動作を表す変数値としては、運転者の操作を示す変数値、運転者の操作に対する反応を示す変数値、車両１１の状態を示す変数値などが挙げられる。
図４に示すように、車両の正常動作モデル３１は、例えば、運転者の操作を示す変数値として、アクセル踏み角４１、ブレーキ値４２、及びステアリング角４３を含み、運転者の操作に対する反応を示す変数値として、Ｇ（加速度）センサｘ値（前後方向の値）４４、Ｇ（加速度）センサｙ値（左右方向の値）４５を含み、車両１１の状態を示す変数値として、車速４６を含む。
例えば、Ｎｏ．１のデータであれば、アクセル踏み角４１が「１．１」、ブレーキ値４２が「０」、ステアリング角４３が「１．１」、Ｇセンサｘ値４４が「１．５」、Ｇセンサｙ値４５が「３．７」、車速４６が「１．６」である。図４に示すＮｏ．１〜Ｎｏ．５などのデータは、それぞれ、正常な車両１１の動作を表す変数値の組み合わせとなっている。
【００３６】
図５は、ＡＢＳの正常動作モデルの一例を示す図である。
ＡＢＳの正常動作モデル３２は、例えば、正常なＡＢＳ１２の動作を表す変数値の組み合わせの羅列を示す表として構築される。正常なＡＢＳ１２の動作を表す変数値としては、ＡＢＳ１２に対する入力を示す変数値、ＡＢＳ１２からの出力を示す変数値などが挙げられる。
図５に示すように、ＡＢＳの正常動作モデル３２は、例えば、ＡＢＳ１２に対する入力を示す変数値として、車輪減速度（ＦＬ）５１、車輪減速度（ＦＲ）５２、車輪減速度（ＲＬ）５３、車輪減速度（ＲＲ）５４を含み、ＡＢＳ１２からの出力を示す変数値として、ソレノイドバルブ（ＦＬ）５５、ソレノイドバルブ（ＦＲ）５６を含む。
例えば、Ｎｏ．１のデータであれば、車輪減速度（ＦＬ）５１が「２．４」、車輪減速度（ＦＲ）５２が「３．５」、車輪減速度（ＲＬ）５３が「２．７」、車輪減速度（ＲＲ）５４が「１．５」、ソレノイドバルブ（ＦＬ）５５が「０」、ソレノイドバルブ（ＦＲ）５６が「０」である。図５に示すＮｏ．１〜Ｎｏ．５などのデータは、それぞれ、正常なＡＢＳ１２の動作を表す変数値の組み合わせとなっている。尚、ソレノイドバルブ（ＦＬ）５５とソレノイドバルブ（ＦＲ）５６の値は、制御モードをコード化したものであり、「０」が減圧、「１」が保持、「２」が増圧を示している。
【００３７】
図６は、ＳＷの正常動作モデルの一例を示す図である。
ＳＷの正常動作モデル３３は、例えば、正常なＳＷ１３の制御フローを示す表として構築される。正常なＳＷ１３の制御フローとしては、ＳＷ１３の命令の実行アドレス列６１などが挙げられる。
図６に示すように、ＳＷの正常動作モデル３３は、例えば、実行アドレス列６１として、命令１〜命令６の実行アドレスを含む。
例えば、Ｎｏ．１のデータであれば、命令１が「０ｘ１０００」、命令２が「０ｘ１００１」、命令３が「０ｘ１００２」、命令４が「０ｘ１００３」、命令５が「０ｘ１００４」、命令６が「０ｘ１００５」である。図６に示すＮｏ．１〜Ｎｏ．５などのデータは、それぞれ、正常なＳＷ１３の制御フローとなっている。
尚、図６に示す例では、ＳＷの正常動作モデル３３は、実行アドレス列６１による表現形式としたが、例えば、関数呼出しの呼出し順や、分岐処理だけに着目した制御フローなどによる表現形式であっても良い。
【００３８】
図７は、ＨＷ（ＦＬ）の正常動作モデルの一例を示す図である。
ＨＷ（ＦＬ）の正常動作モデル３４は、例えば、正常なＨＷ（ＦＬ）１４の動作を表す変数値の組み合わせの羅列を示す表として構築される。正常なＨＷ（ＦＬ）１４の動作を表す変数値としては、ＨＷ（ＦＬ）１４に対する入力を示す変数値、ＨＷ（ＦＬ）１４からの出力を示す変数値などが挙げられる。
図５に示すように、ＨＷ（ＦＬ）の正常動作モデル３４は、例えば、ＨＷ（ＦＬ）１４に対する入力を示す変数値として、ＡＢＳ１２のＥＣＵから与えられる電流値７１を含み、ＨＷ（ＦＬ）１４からの出力を示す変数値として、ソレノイドバルブのプランジャ位置７２を含む。
例えば、Ｎｏ．１のデータであれば、電流値７１が「０．１」、プランジャ位置７２が「０」である。図７に示すＮｏ．１〜Ｎｏ．５などのデータは、それぞれ、正常なＨＷ（ＦＬ）１４の動作を表す変数値の組み合わせとなっている。尚、プランジャ位置７２の値は、コード化したものであり、「０」が高の位置、「１」が中の位置、「２」が低の位置を示している。
【００３９】
図８は、ＨＷ（ＦＲ）の正常動作モデルの一例を示す図である。
ＨＷ（ＦＬ）の正常動作モデル３５は、例えば、正常なＨＷ（ＦＲ）１５の動作を表す変数値の組み合わせの羅列を示す表として構築される。例えば、正常なＨＷ（ＦＲ）１５の動作を表す変数値の組み合わせの羅列を示す表として構築される。正常なＨＷ（ＦＲ）１５の動作を表す変数値としては、ＨＷ（ＦＲ）１５に対する入力を示す変数値、ＨＷ（ＦＲ）１５からの出力を示す変数値などが挙げられる。
図８に示すデータの意味は、図７に示すデータと同様である為、説明を省略する。
【００４０】
次に、図９を参照しながら、実動時動作抽出部２について説明する。実動時動作抽出部２は、システムの実動時に、図９に示すシステム及びサブシステムの実動時動作データを抽出する。
【００４１】
図９は、実動時動作データの階層構造を示す図である。
図９に示すように、車両１１、ＡＢＳ１２、ＳＷ１３、ＨＷ（ＦＬ）１４、ＨＷ（ＦＲ）１５のそれぞれに対して、車両の実動時動作データ９１、ＡＢＳの実動時動作データ９２、ＳＷの実動時動作データ９３、ＨＷ（ＦＬ）の実動時動作データ９４、ＨＷ（ＦＲ）の実動時動作データ９５が構築される。システムが複数のサブシステムによって階層構造をなす為、実動時動作データも図９に示す階層構造をなしている。
各実動時動作データの内容は、前述の正常動作モデル（図４〜図８参照）と同様である為、説明を省略する。
【００４２】
次に、図１０を参照しながら、正常動作モデル比較部４について説明する。
図１０は、局所判定アルゴリズムの一例を示すフローチャートである。図１０に示す「Ｓ」は、システム及びサブシステムを一意に特定するデータを格納する変数である。「Ｎ」は、システム又は特定のサブシステムの正常動作モデルを格納する変数である。「Ｒ」は、システム又は特定のサブシステムの実動時動作データを格納する変数である。
【００４３】
正常動作モデル比較部４は、変数Ｓに、システム又は特定のサブシステムを示すデータを格納し、図１０に示すフローチャートを実行する。
図１０に示すように、正常動作モデル比較部４は、変数Ｎに「変数Ｓの正常動作モデル」を格納するとともに（ステップＳ１１）、変数Ｒに「変数Ｓの実動時動作データ」を格納する（ステップＳ１２）。
【００４４】
次に、正常動作モデル比較部４は、変数Ｎのデータに変数Ｒのデータが含まれるか否か判定する（ステップＳ１３）。
例えば、変数Ｎには、図４に示す車両の正常動作モデル３１が格納されているとする。また、例えば、変数Ｒには、アクセル踏み角４１が「１．１」、ブレーキ値４２が「０」、ステアリング角４３が「１．１」、Ｇセンサｘ値４４が「１．５」、Ｇセンサｙ値４５が「３．７」、車速４６が「１．６」のデータが格納されているものとする。この場合、変数Ｒのデータは、変数ＮのＮｏ．１のデータと同一であるから、正常動作モデル比較部４は、変数Ｎのデータに変数Ｒのデータが含まれていると判定する。
また、例えば、変数Ｎには、図４に示す車両の正常動作モデル３１が格納されているとする。また、例えば、変数Ｒには、アクセル踏み角４１が「１．１」、ブレーキ値４２が「０」、ステアリング角４３が「０．５」、Ｇセンサｘ値４４が「１．５」、Ｇセンサｙ値４５が「３．７」、車速４６が「１．６」のデータが格納されているものとする。この場合、変数Ｒのデータは、変数ＮのＮｏ．１のデータと比べるとステアリング角４３が異なり、それ以外のデータとも一致しないことから、正常動作モデル比較部４は、変数Ｎのデータに変数Ｒのデータが含まれていないと判定する。
【００４５】
次に、正常動作モデル比較部４は、変数Ｎのデータに変数Ｒのデータが含まれていると判定した場合、「正常」と判定する（ステップＳ１４）。また、正常動作モデル比較部４は、変数Ｎのデータに変数Ｒのデータが含まれていないと判定した場合、「異常の可能性有」と判定する（ステップＳ１５）。
正常動作モデル比較部４は、局所判定の結果をＲＡＭ等に記憶し、図１０の処理を終了する。
正常動作モデル比較部４は、システム及び全てのサブシステムに対して前述の処理を実行し、システム及びサブシステムごとの局所判定の結果をＲＡＭ等に記憶する。
【００４６】
次に、図１１〜図１３を参照しながら、総合判定部５について説明する。総合判定部５は、図１１に示す総合判定アルゴリズム９、又は、図１２に示す総合判定表１００に従って、処理を実行する。
【００４７】
総合判定部５は、図１１に示す総合判定アルゴリズム９及び図１２に示す総合判定表１００のいずれに従う場合であっても、システムに係る局所判定が「異常の可能性有」であり、かつ、遡及経路（階層構造の最下位層のサブシステムから遡って階層構造の最上位層のサブシステムに到達するまでの経路）に含まれる全ての局所判定が「異常の可能性有」である場合には、「異常の可能性大」とする総合判定を行い、最下位層のサブシステムを異常箇所として同定する。図２に示す例であれば、遡及経路は、（１）ＳＷ１３−ＡＢＳ１２−車両１１、（２）ＨＷ（ＦＬ）１４−ＡＢＳ１２−車両１１、（３）ＨＷ（ＦＲ）１５−ＡＢＳ１２−車両１２である。
【００４８】
最初に、図１１に示す総合判定アルゴリズム９に従う場合について説明する。図１１は、総合判定アルゴリズムの一例を示すフローチャートである。図１１に示すＳは、サブシステムの集合を格納する変数である。Ｓｉは、サブシステムを一意に特定するデータを格納する変数である。
【００４９】
総合判定部５は、最初に、システムの局所判定が「正常」か否か判定する（ステップＳ２１）。
総合判定部５は、システムの局所判定が「正常」の場合（ステップＳ２１の「Ｙ」）、総合判定を「正常とみなす」とし（ステップＳ２２）、総合判定を出力し（ステップＳ２３）、処理を終了する。
一方、総合判定部５は、システムの局所判定が「正常」でない場合（ステップＳ２１の「Ｎ」）、ステップＳ２４〜ステップＳ３２に示される「再帰処理」を実行し、現コンテキストが再帰のコンテキストではなくなると（ステップＳ２６の「Ｎ」）、総合判定を出力し（ステップＳ２３）、処理を終了する。
尚、「現コンテキストが再帰のコンテキストである」（ステップＳ２６の「Ｙ」）とは、後述する再帰呼び出し（ステップＳ３０の判定が「Ｙ」の場合）によってステップＳ２６が実行されていること、言い換えれば、後述するループ処理中にステップＳ２６が実行されていることを意味する。
【００５０】
以下では、ステップＳ２４〜ステップＳ３２に示される「再帰処理」について説明する。
総合判定部５は、もう一段下位の層のサブシステム群を変数Ｓに格納し、変数Ｓに含まれるサブシステムの局所判定が「全て正常」か否かの各層判定を行う（ステップＳ２４）。
総合判定部５は、各層判定が「全て正常」の場合（ステップＳ２４の「Ｙ」）、総合判定がφ（空集合）の場合には総合判定を「正常か異常か不明」とし（ステップＳ２５）、現コンテキストが再帰のコンテキストか否かを確認する（ステップＳ２６）。総合判定部５は、現コンテキストが再帰のコンテキストである場合（ステップＳ２６の「Ｙ」）、変数Ｓに一段上の階層のサブシステム群を格納し、再帰からリターンする（ステップＳ２７）。一方、総合判定部５は、現コンテキストが再帰のコンテキストではない場合（ステップＳ２６の「Ｎ」）、前述の通りステップＳ２３に進む。
また、総合判定部５は、各層判定が「全て正常」ではない場合（ステップＳ２４の「Ｎ」）、Ｓ２８〜Ｓ３２に示される「ループ処理」を実行する。
【００５１】
「ループ処理」では、総合判定部５は、変数Ｓにおける各サブシステムを変数Ｓｉに代入して順に一連の処理（ステップＳ２９〜ステップＳ３１）を実行する（ステップＳ２８）。変数Ｓに含まれる全てのサブシステムに対して一連の処理が終了すると、総合判定部５は、ループ処理を終了し（ステップＳ３２）、ステップＳ２６に進む。
【００５２】
総合判定部５は、変数Ｓｉの局所判定が「正常」か否かを確認する（ステップＳ２９）。総合判定部５は、変数Ｓｉの局所判定が「正常」の場合（ステップＳ２９の「Ｙ」）、次のサブシステムを変数Ｓｉに代入してステップＳ２９から処理を繰り返す。一方、総合判定部５は、変数Ｓｉの局所判定が「正常」ではない場合（ステップＳ２９の「Ｎ」）、ステップＳ３０に進む。
【００５３】
ステップＳ３０では、総合判定部５は、変数Ｓｉのもう一段下位のサブシステムが存在するか否か確認し、存在する場合（ステップＳ３０の「Ｙ」）にはＳ２４の処理の再帰呼び出しを行い、存在しない場合（ステップＳ３０の「Ｎ」）には総合判定を「異常の可能性大」とし、異常箇所として「変数Ｓｉ」を付け加えて（ステップＳ３１）、次のサブシステムを変数Ｓｉに代入してステップＳ２９から処理を繰り返す。
【００５４】
以上の通り、総合判定部５は、図１１に示す総合判定アルゴリズム９に従う場合、遡及経路に含まれる全ての局所判定が「異常の可能性有」であるか否かの判定処理を再帰的に実行することによって、総合判定及び異常箇所の同定を行う。
【００５５】
次に、図１２に示す総合判定表に従う場合について説明する。図１２は、総合判定表の一例を示す図である。
総合判定部５は、予め総合判定表１００を記憶しておき、正常動作モデル比較部４による判定結果を総合判定表１００に当てはめることによって、総合判定及び異常箇所の同定を行う。
図１２に示すように、総合判定表１００は、局所判定１０１の組み合わせパターンと、総合判定＆異常箇所同定１０２との対応関係を示す表である。
例えば、Ｎｏ．１のデータであれば、車両１１の局所判定が「正常」、ＡＢＳ１２の局所判定が「正常」、ＳＷ１３の局所判定が「正常」、ＨＷ（ＦＬ）１４の局所判定が「正常」、かつ、ＨＷ（ＦＲ）１５の局所判定が「正常」の場合、総合判定を「正常とみなす」と決定することを示している。
【００５６】
図１２のＮｏ．１〜Ｎｏ．１６に示すように、総合判定部５は、車両１１（システム）の局所判定が「正常」であれば、総合判定を「正常とみなす」と決定する。
【００５７】
また、図１２のＮｏ．１７〜Ｎｏ．２５に示すように、総合判定部５は、車両１１（システム）の局所判定が「異常の可能性有」であっても、遡及経路に含まれるいずれか１つの局所判定が「正常」である場合には、総合判定を「正常か異常か不明」と決定する。
【００５８】
また、図１２のＮｏ．２６〜Ｎｏ．３２に示すように、総合判定部５は、車両１１（システム）の局所判定が「異常の可能性有」、かつ遡及経路に含まれる全ての局所判定が「異常の可能性有」である場合には、総合判定を「異常の可能性大」と決定する。
Ｎｏ．２９〜Ｎｏ.３２の場合、（１）ＳＷ１３−ＡＢＳ１２−車両１１の遡及経路に含まれる全ての局所判定が「異常の可能性有」であるから、最下位層のサブシステムである「ＳＷ１３」を異常箇所として同定する。
Ｎｏ．２７、Ｎｏ．２８、Ｎｏ．３１、Ｎｏ．３２の場合、（２）ＨＷ（ＦＬ）１４−ＡＢＳ１２−車両１１の遡及経路に含まれる全ての局所判定が「異常の可能性有」であるから、最下位層のサブシステムである「ＨＷ（ＦＬ）１４」を異常箇所として同定する。
Ｎｏ．２６、Ｎｏ．２８、Ｎｏ．３０、Ｎｏ．３２の場合、（３）ＨＷ（ＦＲ）１５−ＡＢＳ１２−車両１２の遡及経路に含まれる全ての局所判定が「異常の可能性有」であるから、最下位層のサブシステムである「ＨＷ（ＦＲ）１５」を異常箇所として同定する。
【００５９】
前述した通り、総合判定部５は、図１１に示す総合判定アルゴリズム９及び図１２に示す総合判定表１００のいずれに従う場合であっても、同様のルールによって総合判定及び異常箇所の同定を行う。従って、図１１に示す総合判定アルゴリズム９に従った総合判定及び異常箇所の同定は、図１２に示す総合判定及び異常箇所の同定１０２と同一である。
【００６０】
図１３は、総合判定結果の一例を示す図である。
図１３（ａ）は、図１２のＮｏ．２１に対応する。図１３（ｂ）は、図１２のＮｏ．２９に対応する。
図１３（ａ）では、車両１１（システム）の局所判定、及び、ＳＷ１３（最下位層のサブシステムの１つ）の局所判定が「異常の可能性有」となっており、ＡＢＳ１２（最上位層のサブシステム）の局所判定が「正常」となっている。このような状況は、車両の正常動作モデル３１及びＳＷの正常動作モデル３３の網羅度が低いと考えられる。そこで、総合判定部５は、総合判定を「正常か異常か不明」と決定する。
一方、図１３（ｂ）では、車両１１（システム）の局所判定、ＡＢＳ１２（最上位層のサブシステム）の局所判定、及び、ＳＷ１３（最下位層のサブシステムの１つ）の局所判定が「異常の可能性有」となっている。言い換えると、「異常の可能性有」の局所判定だけを辿って、最下位層のサブシステムから遡って最上位層のサブシステムに到達することができる。このような状況は、最下位層のサブシステムであるＳＷ１３に何らかの不具合がある可能性が高いと考えられる。そこで、総合判定部５は、総合判定を「異常の可能性大」と決定し、「ＳＷ１３」（最下位層のサブシステム）を異常箇所として同定する。
このように、本発明の異常診断装置１では、仮にシステムや一部のサブシステムの正常動作モデルの網羅度が低い場合であっても、他のサブシステムの局所判定も考慮されて総合判定が決定されるので、誤報（「正常」なのに「異常の可能性有」と通知されてしまうこと。）を低減することができる。
【００６１】
ここで、総合判定を決定した後の対応について説明する。
例えば、総合判定が「異常の可能性大」の場合、異常診断装置１は、運転者に対して、車両１１を安全に停止させるように、警報を出力することが望ましい。
また、例えば、総合判定が「正常か異常か不明」の場合であっても、異常診断装置１は、無線などを介して車両１１の診断センタなどに診断結果を通知しておくことが望ましい。
また、例えば、総合判定が「正常とみなす」の場合であっても、異常診断装置１は、局所判定が「異常の可能性有」のサブシステムについて、適宜必要なログを収集しておくことが望ましい。
【００６２】
総合判定部５が、図１１に示す総合判定アルゴリズム９に従う場合、すなわち、遡及経路に含まれる全ての局所判定が「異常の可能性有」であるか否かの判定処理を再帰的に実行することによって総合判定を行う場合、総合判定表１００を作成する必要がないので、本発明の異常診断装置１の実装作業が容易となる。また、サブシステムの追加、削除、分割、又は統合があったとしても、対応が容易となる。つまり、総合判定表１００に従う場合であれば、総合判定表１００として記憶される数多くのデータの追加、削除、修正が必要となるが、総合判定アルゴリズムに従う場合であればプログラムの修正は不要であり、階層構造を示すデータのみ修正すれば良い。
【００６３】
以上、添付図面を参照しながら、本発明に係る異常診断装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００６４】
１………階層型異常診断装置
２………実動時動作抽出部
３………正常動作モデル蓄積部
４………正常動作モデル比較部
５………総合判定部
６………階層型実動時動作データ
７………階層型正常動作モデル
８………局所判定アルゴリズム
９………総合判定アルゴリズム
【図１】
0005621667.tif 000002
【図２】
0005621667.tif 000003
【図３】
0005621667.tif 000004
【図４】
0005621667.tif 000005
【図５】
0005621667.tif 000006
【図６】
0005621667.tif 000007
【図７】
0005621667.tif 000008
【図８】
0005621667.tif 000009
【図９】
0005621667.tif 000010
【図１０】
0005621667.tif 000011
【図１１】
0005621667.tif 000012
【図１２】
0005621667.tif 000013
【図１３】
0005621667.tif 000014