(57)【特許請求の範囲】
【請求項１】
複数のコンポーネントが互いにデータをやり取りすることにより動作するシステムにおいて発生した障害を診断する障害診断システムであって、
診断対象システムの振る舞いを階層ごとに記述したブロック線図と、診断対象システムの各コンポーネントの状態遷移を抽象度レベルごとに記述した状態遷移図とを記憶する記憶手段と、
診断対象システムの正常時における、前記ブロック線図に係る全ての階層の入出力信号と、前記状態遷移図に係る全ての抽象度レベルの状態値とを正常データログとして取得し、診断対象システムの異常時における、前記ブロック線図に係る最上位の階層の入出力信号と、前記状態遷移図に係る最上位の抽象度レベルの状態値とを異常データログとして取得するデータログ取得手段と、
前記正常データログと前記異常データログとを比較して値が相違する入出力信号および状態値のいずれか一方または両方の集まりを相違集合として算出し、全ての前記相違集合を充足することを制約条件として最大充足可能性問題の形に定式化し、前記最大充足可能性問題を解くことで、障害発生条件となる入出力信号および状態値のいずれか一方または両方の組み合わせを算出する障害発生条件算出手段と、
前記障害発生条件が算出された場合は、前記データログ取得手段が前回取得した階層よりも低い階層の入出力信号を取得するように変更し、前記障害発生条件が算出されなかった場合は、前記データログ取得手段が前回取得した抽象度レベルよりも低い抽象度レベルの状態値を取得するように変更する異常データログ取得変更手段と、
を具備することを特徴とする障害診断システム。
【請求項２】
前記異常データログ取得変更手段による変更指示は、前記ブロック線図に係る最上位の階層の入出力信号と、前記状態遷移図に係る最上位の抽象度レベルの状態値とについては常に取得するものとし、これらに加えて取得する入出力信号および状態値を変更することを特徴とする請求項１に記載の障害診断システム。
【請求項３】
前記障害発生条件算出手段は、入出力信号および状態値のいずれか一方または両方のそれぞれの値が障害発生条件の構成要素であることを否定する論理式に同じ重みを設定することで最大充足可能性問題の形に定式化し、前記最大充足可能性問題の解を算出し、算出された解を否定する論理式を制約条件として逐次追加して再度解を算出する処理を、解が存在しなくなるまで繰り返すことで、障害発生条件となる入出力信号および状態値のいずれか一方または両方の組み合わせを算出することを特徴とする請求項１または請求項２に記載の障害診断システム。
【請求項４】
複数のコンポーネントが互いにデータをやり取りすることにより動作するシステムにおいて発生した障害を診断する障害診断装置であって、
診断対象システムの振る舞いを階層ごとに記述したブロック線図と、診断対象システムの各コンポーネントの状態遷移を抽象度レベルごとに記述した状態遷移図とを記憶するモデル記憶手段と、
診断対象システムに搭載されたデータログ取得装置から、診断対象システムの正常時における、前記ブロック線図に係る全ての階層の入出力信号と、前記状態遷移図に係る全ての抽象度レベルの状態値とを正常データログとして入力し、診断対象システムの異常時における、前記ブロック線図に係る最上位の階層の入出力信号と、前記状態遷移図に係る最上位の抽象度レベルの状態値とを異常データログとして取得するデータログ取得手段と、
前記正常データと前記異常データとを比較して値が相違する入出力信号および状態値のいずれか一方または両方の集まりを相違集合として算出し、全ての前記相違集合を充足することを制約条件として最大充足可能性問題の形に定式化し、前記最大充足可能性問題を解くことで、障害発生条件となる入出力信号および状態値のいずれか一方または両方の組み合わせを算出する障害発生条件算出手段と、
前記障害発生条件が算出された場合は、前回入力した異常データログの階層よりも低い階層の入出力信号を取得するように前記データログ取得装置に変更指示を行い、前記障害発生条件が算出されなかった場合は、前回入力した異常データログの抽象度レベルよりも低い抽象度レベルの状態値を取得するように前記データログ取得装置に変更指示を行う異常データログ取得変更手段と、
を具備することを特徴とする障害診断装置。
【請求項５】
複数のコンポーネントが互いにデータをやり取りすることにより動作するシステムにおいて発生した障害を診断する障害診断方法であって、
診断対象システムの振る舞いを階層ごとに記述したブロック線図と、診断対象システムの各コンポーネントの状態遷移を抽象度レベルごとに記述した状態遷移図とを記憶する障害診断装置が、
診断対象システムに搭載されたデータログ取得装置から、診断対象システムの正常時における、前記ブロック線図に係る全ての階層の入出力信号と、前記状態遷移図に係る全ての抽象度レベルの状態値とを正常データログとして入力するステップと、
前記データログ取得装置から、診断対象システムの異常時における、前記ブロック線図に係る最上位の階層の入出力信号と、前記状態遷移図に係る最上位の抽象度レベルの状態値とを異常データログとして入力するステップと、
前記正常データと前記異常データとを比較して値が相違する入出力信号および状態値のいずれか一方または両方の集まりを相違集合として算出し、全ての前記相違集合を充足することを制約条件として最大充足可能性問題の形に定式化し、前記最大充足可能性問題を解くことで、障害発生条件となる入出力信号および状態値のいずれか一方または両方の組み合わせを算出するステップと、
前記障害発生条件が算出された場合は、前回入力した異常データログの階層よりも低い階層の入出力信号を取得するように前記データログ取得装置に変更指示を行い、前記障害発生条件算出手段によって前記障害発生条件が算出されなかった場合は、前回入力した異常データログの抽象度レベルよりも低い抽象度レベルの状態値を取得するように前記データログ取得装置に変更指示を行うステップと、
を実行することを特徴とする障害診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンポーネントが互いにデータをやり取りすることにより動作するシステムにおいて発生した障害を診断する障害診断システム、障害診断装置および障害診断方法に関するものである。
【背景技術】
【０００２】
現在、車両の安全性、快適性の要求が増大し、ソフトウェアによって実現される様々な機能が車載システムに搭載されている。新しい機能の中には、車車間通信や路車間通信など外部との通信処理なども含まれ、車載システムの大規模化、複雑化が顕著になってきている。
【０００３】
こうした中で、車載システムの信頼性を維持することが困難になっている。市場投入前であれば、ＥＣＵ連携の不整合による開発の手戻りが多くなっている。また、市場投入後であれば、車載システムに搭載されるソフトウェア関連の障害やリコールが増加している。こうした障害は、潜在的なバグに起因する想定外のものが多く、障害原因を特定することが非常に困難になっている。ここで、想定外の障害とは、ドライバーは障害を検知しているにも関わらず、故障診断コード（ＤＴＣ：Ｄｉａｇｎｏｓｔｉｃ  Ｔｒｏｕｂｌｅ  Ｃｏｄｅ）が立たず、障害時の動作値を記録するフリーズフレームデータ（ＦＦＤ：Ｆｒｅｅｚｅ  Ｆｒａｍｅ  Ｄａｔａ）などが利用できない障害である。ソフトウェアの潜在的なバグなどに起因する障害の場合、事前に障害として想定しているものではないから、故障診断コードが立たない。
【０００４】
従来の電子装置の故障診断としては、非特許文献１の階層型モデルベース診断が知られている。モデルベース診断とは、診断対象装置の構造や動作に関する知識を基に故障診断を行うアプローチである。また、階層型とは、モデルを階層的に表現し、診断の序盤では抽象度の高いモデルを用いて大局的な故障箇所の絞り込みを行い、ある程度故障箇所が絞り込まれた後に、より詳細なレベルのモデルへ移行する、といった診断モデルの使い分けを行うものである。
【０００５】
しかしながら、モデルベース診断では、抽象度の高いモデルにおいて故障箇所の絞り込みができない障害については対応できない。例えば、車車間通信や路車間通信などによる外部からの入力値がある場合、診断対象装置の構造や動作に関する知識だけでは故障箇所の絞り込みができない。また、現在ではＥＣＵごとに開発を行うことが多いことから、ＥＣＵ間のデータのやり取りにも同様のことが言える。そこで、このような外部からの入力値を含むシステム等で発生する想定外の障害についても障害原因を特定できる故障診断システムが望まれる。
【０００６】
本願の発明者らは、特許文献１に記載の発明を考案した。特許文献１に記載の発明は、障害発生前の正常時においてログを保存しておき、障害発生時のログと正常時のログとの相違集合を抽出し、最大充足可能性問題に定式化して、障害発生条件を導出する。特許文献１に記載の発明は、正常時のログを一定量蓄積しておくことで、事前に想定していなかった原因による障害についても障害原因を特定できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特願２００９−０６７３７９号公報
【非特許文献】
【０００８】
【非特許文献１】中莖洋一郎、古関義幸、田中みどり著  「階層型モデルベース診断における適応機能−適応型人工知能の実現へ向けて−」  人工知能学会誌  Ｖｏｌ  １０  Ｎｏ．３  ｐ４４６−４５３、１９９５年
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載の発明では、障害発生条件の候補となる入出力信号等を全てログとして保存することが前提となる。従って、車載ネットワーク等のリソース消費量が大きくなり、車両の動作性能をある程度落とす必要がある。
【００１０】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、事前に想定していなかった原因による障害が発生した場合であっても障害発生条件を特定可能であり、かつ障害発生時のログの保存を必要最小限に抑えて車両の動作性能を維持することが可能な故障診断システム等を提供することである。
【課題を解決するための手段】
【００１１】
前述した目的を達成するために第１の発明は、複数のコンポーネントが互いにデータをやり取りすることにより動作するシステムにおいて発生した障害を診断する障害診断システムであって、診断対象システムの振る舞いを階層ごとに記述したブロック線図と、診断対象システムの各コンポーネントの状態遷移を抽象度レベルごとに記述した状態遷移図とを記憶する記憶手段と、診断対象システムの正常時における、前記ブロック線図に係る全ての階層の入出力信号と、前記状態遷移図に係る全ての抽象度レベルの状態値とを正常データログとして取得し、診断対象システムの異常時における、前記ブロック線図に係る最上位の階層の入出力信号と、前記状態遷移図に係る最上位の抽象度レベルの状態値とを異常データログとして取得するデータログ取得手段と、前記正常データログと前記異常データログとを比較して値が相違する入出力信号および状態値のいずれか一方または両方の集まりを相違集合として算出し、全ての前記相違集合を充足することを制約条件として最大充足可能性問題の形に定式化し、前記最大充足可能性問題を解くことで、障害発生条件となる入出力信号および状態値のいずれか一方または両方の組み合わせを算出する障害発生条件算出手段と、前記障害発生条件が算出された場合は、前記データログ取得手段が前回取得した階層よりも低い階層の入出力信号を取得するように変更し、前記障害発生条件が算出されなかった場合は、前記データログ取得手段が前回取得した抽象度レベルよりも低い抽象度レベルの状態値を取得するように変更する異常データログ取得変更手段と、を具備することを特徴とする障害診断システムである。
【００１２】
第１の発明における前記異常データログ取得変更手段による変更指示は、前記ブロック線図に係る最上位の階層の入出力信号と、前記状態遷移図に係る最上位の抽象度レベルの状態値とについては常に取得するものとし、これらに加えて取得する入出力信号および状態値を変更するものであることが望ましい。
【００１３】
第１の発明における前記障害発生条件算出手段は、入出力信号および状態値のいずれか一方または両方のそれぞれの値が障害発生条件の構成要素であることを否定する論理式に同じ重みを設定することで最大充足可能性問題の形に定式化し、前記最大充足可能性問題の解を算出し、算出された解を否定する論理式を制約条件として逐次追加して再度解を算出する処理を、解が存在しなくなるまで繰り返すことで、障害発生条件となる入出力信号および状態値のいずれか一方または両方の組み合わせを算出するものである。
【００１４】
第２の発明は、複数のコンポーネントが互いにデータをやり取りすることにより動作するシステムにおいて発生した障害を診断する障害診断装置であって、診断対象システムの振る舞いを階層ごとに記述したブロック線図と、診断対象システムの各コンポーネントの状態遷移を抽象度レベルごとに記述した状態遷移図とを記憶するモデル記憶手段と、診断対象システムに搭載されたデータログ取得装置から、診断対象システムの正常時における、前記ブロック線図に係る全ての階層の入出力信号と、前記状態遷移図に係る全ての抽象度レベルの状態値とを正常データログとして入力し、診断対象システムの異常時における、前記ブロック線図に係る最上位の階層の入出力信号と、前記状態遷移図に係る最上位の抽象度レベルの状態値とを異常データログとして取得するデータログ取得手段と、前記正常データと前記異常データとを比較して値が相違する入出力信号および状態値のいずれか一方または両方の集まりを相違集合として算出し、全ての前記相違集合を充足することを制約条件として最大充足可能性問題の形に定式化し、前記最大充足可能性問題を解くことで、障害発生条件となる入出力信号および状態値のいずれか一方または両方の組み合わせを算出する障害発生条件算出手段と、前記障害発生条件が算出された場合は、前回入力した異常データログの階層よりも低い階層の入出力信号を取得するように前記データログ取得装置に変更指示を行い、前記障害発生条件が算出されなかった場合は、前回入力した異常データログの抽象度レベルよりも低い抽象度レベルの状態値を取得するように前記データログ取得装置に変更指示を行う異常データログ取得変更手段と、を具備することを特徴とする障害診断装置である。
【００１５】
第３の発明は、複数のコンポーネントが互いにデータをやり取りすることにより動作するシステムにおいて発生した障害を診断する障害診断方法であって、診断対象システムの振る舞いを階層ごとに記述したブロック線図と、診断対象システムの各コンポーネントの状態遷移を抽象度レベルごとに記述した状態遷移図とを記憶する障害診断装置が、診断対象システムに搭載されたデータログ取得装置から、診断対象システムの正常時における、前記ブロック線図に係る全ての階層の入出力信号と、前記状態遷移図に係る全ての抽象度レベルの状態値とを正常データログとして入力するステップと、前記データログ取得装置から、診断対象システムの異常時における、前記ブロック線図に係る最上位の階層の入出力信号と、前記状態遷移図に係る最上位の抽象度レベルの状態値とを異常データログとして入力するステップと、前記正常データと前記異常データとを比較して値が相違する入出力信号および状態値のいずれか一方または両方の集まりを相違集合として算出し、全ての前記相違集合を充足することを制約条件として最大充足可能性問題の形に定式化し、前記最大充足可能性問題を解くことで、障害発生条件となる入出力信号および状態値のいずれか一方または両方の組み合わせを算出するステップと、前記障害発生条件が算出された場合は、前回入力した異常データログの階層よりも低い階層の入出力信号を取得するように前記データログ取得装置に変更指示を行い、前記障害発生条件算出手段によって前記障害発生条件が算出されなかった場合は、前回入力した異常データログの抽象度レベルよりも低い抽象度レベルの状態値を取得するように前記データログ取得装置に変更指示を行うステップと、を実行することを特徴とする障害診断方法である。
【発明の効果】
【００１６】
本発明により、事前に想定していなかった原因による障害が発生した場合であっても障害発生条件を特定可能であり、かつ障害発生時のログの保存を必要最小限に抑えて車両の動作性能を維持することが可能な故障診断システム等を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】障害診断システム１の概略構成を示す図
【図２】障害診断装置５を実現するコンピュータのハードウェア構成図
【図３】データログ取得装置７のハードウェア構成図
【図４】ブロック線図４１と状態遷移図４２の一例を示す図
【図５】障害診断システム１の処理全体を示すフローチャート
【図６】正常時の時系列データの一例を示す図
【図７】異常時の時系列データの一例を示す図
【図８】抽出前の異常時の時系列データの一例を示す図
【図９】抽出後の異常時の時系列データの一例を示す図
【図１０】第１の相違集合算出処理の詳細を示すフローチャート
【図１１】相違集合の算出結果の一例を示す図
【図１２】相違集合の算出結果の一例を示す図
【図１３】第２の相違集合算出処理の詳細を示すフローチャート
【図１４】異常データログ取得の変更の一例を示す図
【図１５】最大充足可能性問題の制約条件となる論理式の一例を示す図
【図１６】各データの値が障害発生条件の構成要素であることを否定する論理式の一例を示す図
【図１７】障害発生条件算出処理の詳細を示すフローチャート
【図１８】異常データログ取得の変更の一例を示す図
【発明を実施するための形態】
【００１８】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
【００１９】
図１は、障害診断システム１の概略構成を示す図である。障害診断システム１は、複数のコンポーネントが互いにデータをやり取りすることにより動作するシステムにおいて発生した障害を診断するためのシステムである。診断対象のシステムとしては、複数のＥＣＵを搭載する車載システムなどがある。
図１に示すように、障害診断システム１は、障害診断装置５、データログ取得装置７、障害検知装置９等から構成される。診断対象の車載システム３は、データログ取得装置７、障害検知装置９、複数のＥＣＵ１１等がＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの車載ネットワーク１３や無線通信などを介して接続されている。データログ取得装置７と障害検知装置９は、車載システム３に搭載されている。一方、障害診断装置５は、例えばコンピュータであって、車載システム３に搭載される必要はない。
【００２０】
障害診断装置５は、正常時と異常時のデータログを入力として、車載システム３において発生した障害を診断する。データログは、車載ネットワーク１３に流れる入出力信号、各コンポーネントの状態値などである。障害診断装置５の出力は、障害発生条件である。障害発生条件は、入出力信号、状態値の組み合わせである。例えば、発生した障害に対して、車速を示す信号がＡｋｍ／ｈ、車間距離制御（ＡＣＣ：Ａｄａｐｔｉｖｅ  Ｃｒｕｉｓｅ  Ｃｏｎｔｒｏｌ）システムがＯＮであることが障害発生条件という具合である。
【００２１】
データログ取得装置７は、車載ネットワーク１３に流れる入出力値、各コンポーネントの状態値をデータログとして取得する。取得したデータログは、無線で遠隔にあるコンピュータに送信しても良いし、ケーブル等を介してコンピュータに送信しても良い。
障害検知装置９は、障害の発生を検知し、障害が発生したことをデータログ取得装置７に通知する。障害検知装置９は、例えば、車両に搭載されている各種のセンサから障害発生を示すダイアグ信号を受信すると、障害が発生したと判断する。また、車両の運転者が障害の発生を検知したときに、入力装置等によってその旨を入力するようにしても良い。
データログ取得装置７は、常にデータログを記録し、特定の期間は記録を残すようにしておく。そして、障害検知装置９から障害発生の通知を受けると、記録しているデータログの中から障害発生の通知を受けた前後のデータログは、異常時のデータログとして記録する。一方、正常時のデータログは、車両の実験走行時などに取得して記録する。正常時のデータログは、様々な走行環境で取得することが望ましい。
ＥＣＵ１１は、診断対象のシステムにおける各機能を実現する。
【００２２】
図２は、障害診断装置５を実現するコンピュータのハードウェア構成図である。尚、図２のハードウェア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
図２に示すように、障害診断装置５は、制御部２１、記憶部２２、メディア入出力部２３、通信制御部２４、入力部２５、表示部２６、周辺機器Ｉ／Ｆ部２７等が、バス２８を介して接続される。
【００２３】
制御部２１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。ＣＰＵは、記憶部２２、ＲＯＭ、記録媒体等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、バス２８を介して接続された各装置を駆動制御し、障害診断装置５が行う後述する処理を実現する。
ＲＯＭは、不揮発性メモリであり、コンピュータのブートプログラムやＢＩＯＳ等のプログラム、データ等を恒久的に保持している。
ＲＡＭは、揮発性メモリであり、記憶部２２、ＲＯＭ、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部２１が各種処理を行う為に使用するワークエリアを備える。
【００２４】
記憶部２２は、ＨＤＤ（ハードディスクドライブ）であり、制御部２１が実行するプログラム、プログラム実行に必要なデータ、ＯＳ（オペレーティングシステム）等が格納される。プログラムに関しては、ＯＳ（オペレーティングシステム）に相当する制御プログラムや、後述する処理をコンピュータに実行させるためのアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部２１により必要に応じて読み出されてＲＡＭに移され、ＣＰＵに読み出されて各種の手段として実行される。
【００２５】
メディア入出力部２３（ドライブ装置）は、データの入出力を行い、例えば、ＣＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＤＶＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＭＯドライブ等のメディア入出力装置を有する。
通信制御部２４は、通信制御装置、通信ポート等を有し、コンピュータとネットワーク２９間の通信を媒介する通信インタフェースであり、ネットワーク２９を介して、他のコンピュータ間との通信制御を行う。
【００２６】
入力部２５は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部２５を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。
表示部２６は、ＣＲＴモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してコンピュータのビデオ機能を実現するための論理回路等（ビデオアダプタ等）を有する。
【００２７】
周辺機器Ｉ／Ｆ（インタフェース）部２７は、コンピュータに周辺機器を接続させるためのポートであり、周辺機器Ｉ／Ｆ部２７を介してコンピュータは周辺機器とのデータの送受信を行う。周辺機器Ｉ／Ｆ部２７は、ＵＳＢやＩＥＥＥ１３９４やＲＳ−２３２Ｃ等で構成されており、通常複数の周辺機器Ｉ／Ｆを有する。周辺機器との接続形態は有線、無線を問わない。
バス２８は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【００２８】
図３は、データログ取得装置７のハードウェア構成図である。尚、図３のハードウェア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
図３に示すように、データログ取得装置７は、制御部３１、記憶部３２、周辺機器Ｉ／Ｆ部３３、通信インタフェース３４等で構成される。
【００２９】
制御部３１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。ＣＰＵは、記憶部３２、ＲＯＭ、記録媒体等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、モジュール５全体を駆動制御する。
ＲＯＭは、不揮発性メモリであり、処理に必要なプログラム、データ等を恒久的に保持している。
ＲＡＭは、揮発性メモリであり、記憶部３２、ＲＯＭ等からロードしたプログラム、データ等を一時的に保持するとともに、制御部３１が各種処理を行う為に使用するワークエリアを備える。
【００３０】
記憶部３２は、制御部３１が実行するプログラム、プログラム実行に必要なデータ等が格納される。これらの各プログラムコードは、制御部３１により必要に応じて読み出されてＲＡＭに移され、ＣＰＵに読み出されて各種の手段として実行される。
周辺機器Ｉ／Ｆ（インタフェース）部２７は、データログ取得装置７に周辺機器を接続させるためのポートであり、周辺機器Ｉ／Ｆ部２７を介してデータログ取得装置７は周辺機器とのデータの送受信を行う。周辺機器は、遠隔のコンピュータと無線で通信するための無線通信機器、コンピュータと有線で通信するための各種ケーブル等である。
通信インタフェース３４は、データログ取得装置７と車載ネットワーク１３間の通信を媒介する。
【００３１】
図４は、ブロック線図４１と状態遷移図４２の一例を示す図である。ブロック線図４１と状態遷移図４２は、障害診断装置５の記憶部２２に記憶される。ブロック線図４１は、診断対象システムの振る舞いを階層ごとに記述したものである。また、状態遷移図４２は、診断対象システムの各コンポーネントの状態遷移を抽象度レベルごとに記述したものである。
【００３２】
一般に、ブロック線図とは、自動制御系の中での信号伝達を表す線図であり、伝達関数を示すブロック、信号を示す矢印などで構成される。矢印の向きは、信号の伝達方向を表す。
例えば、最上位層（第一層）は、複数のＥＣＵから構成された車両システム全体の振る舞いを表すものとし、各ブロックが一つのＥＣＵに対応する。また、例えば、第二層は、一つのＥＣＵの振る舞いを表すものとし、各ブロックが一つのＥＣＵが備える各機能に対応する。また、例えば、第三層は、一つの機能の振る舞いを表すものとし、各ブロックが一つの機能が備えるソフトウェア部品に対応する。但し、階層化の基準はこれに限定されるものではなく、様々な基準によってブロック線図の階層化を行うことができる。
【００３３】
また、一般に、状態遷移図とは、状態が遷移していく様子を表現する図であり、状態を表す角のまるい四角、角のまるい四角同士を結ぶ矢印、初期状態を示す黒丸、終了状態を示す黒二重丸などから構成される。
また、状態遷移図には階層化の概念を導入することもできる。例えば、カーエアコンの場合、最も抽象度レベルの高い最上位層（第一層）は、スイッチが「ＯＮ」と「ＯＦＦ」の２つの状態を表現する。また、例えば、第二層は、スイッチが「ＯＮ」の状態の入れ子として、「冷房」と「暖房」の２つの状態を表現する。また、例えば、第三層は、「冷房」の状態の入れ子として、風の強さが「弱」、「中」、「強」の３つの状態を表現する。状態遷移図４２の抽象度レベルは様々な基準によって決定することができる。
尚、本願の状態遷移図４２は、状態遷移表を含む概念である。状態遷移図と状態遷移表は互いに一方から他方を作成することが可能な関係にあり、本願発明においては適宜選択することができる。
【００３４】
システムが大規模な場合、ブロック線図において一つの階層でシステムの全ての振る舞いを記述しようとすると、ブロックの数が増えて煩雑になる。このような問題に対処する為、現在市販されている一般的なモデリングソフトウェアでは、ブロック線図における複数のブロックを一つのブロックとしてまとめて上位層とする機能、一つのブロックの内部を複数のブロックで記述して下位層とする機能を備えている。こうしたソフトウェアを用いることで、図４に示すブロック線図４１を作成することができる。
また、ブロック線図と状態遷移図を組み合わせることで、局所的に必要十分な精度でモデル化することができる。現在市販されている一般的なモデリングソフトウェアでは、ブロック線図と状態遷移図を組み合わせて記述する機能を備えている。こうしたソフトウェアを用いることで、図４に示すように、診断対象システムの振る舞いをブロック線図４１と状態遷移図４２で記述することができる。
【００３５】
図５は、障害診断システム１の処理全体を示すフローチャートである。
図５に示すように、データログ取得装置７の制御部３１は、正常時のデータログを取得する（Ｓ１０１）。正常時のデータログは、障害診断装置５に送信されて記憶部２２に記憶される。
次に、障害診断装置５の制御部２１は、正常時の時系列データを生成する（Ｓ１０２）。
【００３６】
図６は、正常時の時系列データの一例を示す図である。時系列データは、データログに含まれる入出力信号、コンポーネントの状態値などのデータを入力としたとき、各ＥＣＵ１１の処理結果が変わらない範囲、例えば、プログラム中の条件分岐やジャンプ部で同じ動きをする範囲を同値とみなし、同値とみなす範囲にデータを分割して変換し、同一時刻ごとに纏めたものである。例えば、車速を示す信号の場合、０ｋｍ／ｈであれば０、０ｋｍ／ｈ〜５ｋｍ／ｈであれば１、５ｋｍ／ｈ〜２０ｋｍ／ｈであれば２、・・・といった具合に変換する。
図６に示すように、例えば、Ｎｏ．が「Ｘ１」の正常時の時系列データは、データ１が「０」、データ２が「１」、データ３が「０」、データ４が「１」、データ５が「０」である。
【００３７】
図５の説明に戻ると、データログ取得装置７の制御部３１は、異常時のデータログを取得する（Ｓ１０３）。異常時のデータログは、障害検知装置９から通知を受けたときの前後のデータログであり、障害診断装置５に送信されて記憶部２２に記憶される。
次に、障害診断装置５の制御部２１は、異常時の時系列データを生成する（Ｓ１０４）。
【００３８】
図７は、異常時の時系列データの一例を示す図である。図７に示すデータは、図６に示す正常時の時系列データと同じように、同値とみなす範囲にデータの値を分割して変換し、同一時刻ごとに纏めたものである。図７に示すデータでは、データ容量を圧縮する為、データの組み合わせが変化する時刻のみを抽出するようにしている。
【００３９】
図８は、抽出前の異常時の時系列データの一例を示す図である。図９は、抽出後の異常時の時系列データの一例を示す図である。
図８に示すように、取得時刻が「ｔ２」のデータは、取得時刻が「ｔ１」のデータと比較して変化がない。そこで、図９に示すように、取得時刻が「ｔ２」のデータは抽出しない。次に、取得時刻が「ｔ３」のデータは、取得時刻が「ｔ２」のデータと比較してデータ１、データ５の値が変化している。そこで、図９に示すように、取得時刻が「ｔ３」のデータを抽出する。同様に、取得時刻が「ｔ５」と「ｔ６」のデータは、それぞれ一時刻前のデータとデータの値が変化していることから抽出対象となる。
尚、データ容量を圧縮するためのデータの抽出は、一定時間間隔ごとに抽出するようにしても良い。
【００４０】
図５の説明に戻ると、障害診断装置５の制御部２１は、相違集合を算出する（Ｓ１０５）。相違集合は、異常時の時系列データのそれぞれを全ての正常時の時系列データと比較した結果、値が相違するデータの集まりである。
【００４１】
図１０は、第１の相違集合算出処理の詳細を示すフローチャートである。図１０では、１時刻単位で異常時の時系列データのそれぞれを全ての正常時の時系列データと比較し、相違集合を算出する。
図１０に示すように、障害診断装置５の制御部２１は、正常時の時系列データＸｉの番号を示す添え字ｉ、異常時の時系列データＹｊの番号を示す添え字ｊにそれぞれ１を代入する（Ｓ２０１）。
次に、制御部２１は、正常時の時系列データＸｉと異常時の時系列データＹｊの相違を算出する（Ｓ２０２）。
【００４２】
図１１は、相違集合の算出結果の一例を示す図である。図１１は、図７に示すＮｏ．が「Ｙ１」の異常時の時系列データと、図６に示す全ての正常時の時系列データとを比較した結果である。
Ｎｏ．が「Ｙ１」の異常時の時系列データは、データ１が「１」、データ２が「３」、データ３が「１」、データ４が「０」、データ５が「１」である。Ｎｏ．が「Ｘ１」の正常時の時系列データは、データ１が「０」、データ２が「１」、データ３が「０」、データ４が「１」、データ５が「０」である。これらを比較すると、全てのデータの値が相違することから、図１０に示すように、Ｎｏ．が「Ｄ１」の相違集合は、｛Ｓ１ｆ、Ｓ２ｆ、Ｓ３ｆ、Ｓ４ｆ、Ｓ５ｆ｝となる。ここで、Ｓ１ｆは障害発生時におけるデータ１の値、この例ではＹ１のデータ１の値を意味する。
【００４３】
図１０の説明に戻ると、障害診断装置５の制御部２１は、Ｓ２０２の結果、正常時の時系列データＸｉと異常時の時系列データＹｊの相違がある場合（Ｓ２０３のＹｅｓ）、Ｓ２０４に進む。一方、制御部２１は、Ｓ２０２の結果、正常時の時系列データＸｉと異常時の時系列データＹｊの相違がない場合（Ｓ２０３のＮｏ）、Ｓ２０６に進む。
【００４４】
Ｓ２０４では、制御部２１は、添え字ｉと、正常時の時系列データＸｉの最終番号ｍを比較し、添え字ｉがｍより大きくない場合（Ｓ２０４のＮｏ）、添え字ｉにｉ＋１を代入し（Ｓ２０５）、Ｓ２０２から繰り返す。一方、制御部２１は、添え字ｉと、正常時の時系列データＸｉの最終番号ｍを比較し、添え字ｉがｍより大きい場合（Ｓ２０４のＹｅｓ）、現在処理対象の異常時の時系列データＹｊに障害発生条件が含まれるとして、全ての相違集合を記憶部２２またはＲＡＭに保存し（Ｓ２０８）、処理を終了する。
【００４５】
Ｓ２０６では、制御部２１は、添え字ｊと、異常時の時系列データＹｊの最終番号ｎを比較し、添え字ｊがｎより大きくない場合（Ｓ２０６のＮｏ）、添え字ｊにｊ＋１を代入し（Ｓ２０７）、Ｓ２０２から繰り返す。一方、制御部２１は、添え字ｊと、異常時の時系列データＹｊの最終番号ｎを比較し、添え字ｊがｎより大きい場合（Ｓ２０６のＹｅｓ）、処理を終了する。尚、このケースでは、障害発生条件を特定できないことになる。この場合、図１３の説明にて後述するように、複数時刻単位で異常時の時系列データのそれぞれを全ての正常時の時系列データと比較していくことになる。
【００４６】
図１１に示す例では、Ｎｏ．が「Ｄ６」の相違集合が｛φ｝（空集合）になっている。この場合、Ｓ２０３の判定結果がＮｏになることから、制御部２１は、Ｓ２０６に進む。相違集合が空集合になることは、異常時の時系列データＹｊ（ｊ＝１）が正常時の時系列データＸｉ（ｉ＝６）と一致することを意味する。従って、ｊ＝１に対応する時刻には、障害が発生していないと推定できる。
【００４７】
図１２は、相違集合の算出結果の一例を示す図である。図１２は、図７に示すＮｏ．が「Ｙ２」の異常時の時系列データＹｊ（ｊ＝２）と、図６に示す全ての正常時の時系列データとを比較した結果である。
図１２に示す例では、相違集合が全て空集合ではない。この場合、Ｓ２０３の判定結果が常にＹｅｓとなり、添え字ｉについて最後の番号まで処理を行うと、Ｓ２０４の判定結果がＹｅｓとなり、制御部２１は、Ｓ２０８に進む。このケースでは、異常時の時系列データＹｊ（ｊ＝２）が正常時の時系列データＸｉとのいずれとも一致しないことを意味する。従って、ｊ＝２に対応する時刻には、障害が発生していると推定できる。
【００４８】
図１３は、第２の相違集合算出処理の詳細を示すフローチャートである。図１３では、２時刻単位で異常時の時系列データのそれぞれを全ての正常時の時系列データと比較し、相違集合を算出する。
図１０のＳ２０８を実行せずに第１の相違集合算出処理を終了した場合、障害診断装置５は、図１３に示す第２の相違集合算出処理を実行する。
【００４９】
図１３に示すように、障害診断装置５の制御部２１は、正常時の時系列データＸｉの番号を示す添え字ｉ、異常時の時系列データＹｊの番号を示す添え字ｊにそれぞれ１を代入する（Ｓ３０１）。
次に、制御部２１は、正常時の時系列データＸｉ、Ｘ（ｉ＋１）と異常時の時系列データＹｊ、Ｙ（ｊ＋１）の相違を算出する（Ｓ３０２）。
【００５０】
次に、障害診断装置５の制御部２１は、Ｓ３０２の結果、正常時の時系列データＸｉ、Ｘ（ｉ＋１）と異常時の時系列データＹｊ、Ｙ（ｊ＋１）の相違がある場合（Ｓ３０３のＹｅｓ）、Ｓ３０４に進む。一方、制御部２１は、Ｓ３０２の結果、正常時の時系列データＸｉ、Ｘ（ｉ＋１）と異常時の時系列データＹｊ、Ｙ（ｊ＋１）の相違がない場合（Ｓ３０３のＮｏ）、Ｓ３０６に進む。
【００５１】
Ｓ３０４では、制御部２１は、添え字ｉと、正常時の時系列データＸｉの最終番号から１を引いたｍ−１を比較し、添え字ｉがｍ−１より大きくない場合（Ｓ３０４のＮｏ）、添え字ｉにｉ＋１を代入し（Ｓ３０５）、Ｓ３０２から繰り返す。一方、制御部２１は、添え字ｉと、正常時の時系列データＸｉの最終番号から１を引いたｍ−１を比較し、添え字ｉがｍ−１より大きい場合（Ｓ３０４のＹｅｓ）、現在処理対象の異常時の時系列データＹｊ、Ｙ（ｊ＋１）の組み合わせに障害発生条件が含まれるとして、全ての相違集合を記憶部２２またはＲＡＭに保存し（Ｓ３０８）、処理を終了する。
【００５２】
Ｓ３０６では、制御部２１は、添え字ｊと、異常時の時系列データＹｊの最終番号から１を引いたｎ−１を比較し、添え字ｊがｎ−１より大きくない場合（Ｓ３０６のＮｏ）、添え字ｊにｊ＋１を代入し（Ｓ３０７）、Ｓ３０２から繰り返す。一方、制御部２１は、添え字ｊと、異常時の時系列データＹｊの最終番号から１を引いたｎ−１を比較し、添え字ｊがｎ−１より大きい場合（Ｓ３０６のＹｅｓ）、処理を終了する。尚、このケースでは、障害発生条件を特定できないことになる。この場合、更に３時刻単位、４時刻単位、・・・というように、異常時の時系列データのそれぞれを全ての正常時の時系列データと比較していくことで、障害発生条件を特定することができる。
但し、本発明の実施の形態では、データログ取得装置７は全ての入出力信号と状態値を取得するわけでないことから、一回の障害診断だけでは障害発生条件を特定できない場合もある。
【００５３】
以上の通り、図１０に示す処理では、１時刻単位で相違集合を算出している。この場合、同時刻における複数のデータの値のパターンが障害発生条件となる。一方、後述する図１３に示す処理では、２時刻単位で相違集合を算出する。このように複数時刻単位で相違データを算出する場合、複数のデータの値の時系列的な変化のパターンが障害発生条件となる。
【００５４】
図５の説明に戻ると、障害診断装置５の制御部２１は、障害発生条件を算出できるかを判断する（Ｓ１０６）。Ｓ１０５にて比較した結果、比較対象の異常時の時系列データが、いずれかの正常時の時系列データに一致する場合（図１１に示す場合）には、比較対象の異常時の時系列データから障害発生条件を算出できないと判断する。
【００５５】
障害診断装置５の制御部２１は、Ｓ１０６にて障害発生条件を算出できないと判断すると（Ｓ１０６のＮＯ）、前回より低い抽象度レベルの状態値を取得するように、データログ取得装置７に変更指示する（Ｓ１０７）。変更指示は、無線で遠隔から送信しても良いし、ケーブル等を介して送信しても良い。
尚、変更指示は、最上位の階層の入出力信号と最上位の抽象度レベルの状態値については常に取得するものとし、これらに加えて取得する入出力信号と状態値を変更するものとしても良い。即ち、データログ取得装置７は、最上位の階層の入出力信号と最上位の抽象度レベルの状態値については常に取得するようにしても良い。これは、稀に複数の障害が同時に発生する場合もあるので、現在診断対象としている障害とは異なる障害に対して障害原因を診断できるようにするためである。
【００５６】
図１４は、異常データログ取得の変更の一例を示す図である。図１４に示す入出力信号と状態値は、図４に示すブロック線図４１と状態遷移図４２に関するものである。
障害発生前の場合、データログ取得装置７は、ブロック線図４１の最上位階層の入出力信号と、状態遷移図４２の最も抽象度レベルの高い状態値を取得する。図４に示すブロック線図４１では、Ｂ０が最上位階層であるから、１回目の障害診断のログ取得対象は、入出力信号ａ〜ｄ、ｈ〜ｊとなる。また、図４に示す状態遷移図４２では、コンポーネントＳ１の最も抽象度レベルの高い状態値がｖ（ｖ１、ｖ２）、コンポーネントＳ２の最も抽象度レベルの高い状態値がｘ（ｘ１、ｘ２）であるから、１回目の障害診断のログ取得対象は、状態値ｖ、ｘとなる。
【００５７】
図１４に示す例では、１回目の障害診断の結果が「障害発生条件が算出できない」となっている。この場合、障害診断装置５の制御部２１は、前回より低い抽象度レベルの状態値を取得するように、データログ取得装置７に変更指示する。従って、２回目の障害診断のログ取得対象は、入出力信号については変更せず、状態値については前回より低い抽象度レベルであるｗ、ｙとなる。
図１４に示す例では、２回目の障害診断の結果が（ｃ、ｙ）＝（−３０、ＯＮ）となり、前回より低い抽象度レベルであるｙを含む障害発生条件が算出できている。
【００５８】
ここで、障害発生条件が算出できなかった場合、前回より低い階層の入出力信号を取得するように変更するのではなく、前回より低い抽象度レベルの状態値を取得するように変更する理由について説明する。
本実施の形態における障害診断システム１は、例えば、ＡＣＣ作動中なのに先行車に追従しない、というようなドライバーが障害を検知しているにも関わらず、故障診断コードが立たないような障害を対象にしている。ドライバーが検知できるような障害は、診断対象全体のふるまいを１つの順序機械と捉えると、その入力と状態と出力の関係におかしい（正常でない）ことが発生したと考えられる。つまり、図４の最上位の階層Ｂ０の入出力信号と、Ｂ０の状態を規定する状態値であるａ、ｂ、ｃ、ｄ、ｈ、ｉ、ｊ、ｖ、ｗ、ｘ、ｙの関係で問題が起きていると考えられる。仮に、信号ｍ、ｎ、ｉのような低い階層のコンポーネント間でやりとりされるような信号で問題が生じていたとしても、より高い階層でのふるまい、すなわち図４のａ、ｂ、ｃ、ｄ、ｈ、ｉ、ｊ、ｖ、ｗ、ｘ、ｙの関係で問題が生じなければ、ドライバーが検知するような障害として表面化していないと考えられる。
従って、障害が発生した際、最上位の階層で現れる信号が障害発生条件として導出された場合のみ、より低い階層の入出力信号を取得するように変更し、障害発生条件が導出されなかった場合は、そのような変更は行わない。
一方、例えば、図４において、（ｗ、ｆ）＝（ｗ２、ｆ＊）が真の障害発生条件とする。また、（ｖ、ｗ、ｆ）＝（ｖ２、ｗ１、ｆ＊）が正常データログとして記憶部２２に記憶されているものとする。この場合、最上位層の状態値を取得すると、（ｖ、ｆ）＝（ｖ２、ｆ＊）となり、正常データログと一致する（但しｗは取得していないので比較しない。）ことになり、障害発生条件を算出できない。しかし、第二層の状態値を取得すれば、（ｗ、ｆ）＝（ｗ２、ｆ＊）となり、正常データログと一致せず、障害発生条件を算出できる。従って、最上位層の状態値を取得する時点で障害発生条件を算出できない場合、より抽象度レベルの低い状態値を順次取得していくことで障害発生条件を算出できることになる。
【００５９】
図５の説明に戻ると、障害診断装置５の制御部２１は、障害発生条件を算出できると判断すると（Ｓ１０６のＹＥＳ）、最大充足可能性問題（ＭＡＸＳＡＴ）の形に定式化する（Ｓ１０８）。最大充足可能性問題とは、重み付きの節（ｃｌａｕｓｅ）の集合が与えられたときに、充足する節の重みの和を最大にする割り当てを求める問題である。節とは、ｎ個の変数ｘ１,・・・,ｘｎとその否定¬ｘ１,・・・, ¬ｘｎの中から、いくつかを論理和（∨）でつなげた論理式である。
制御部２１は、全ての相違集合を充足することを制約条件とし、各データの値が障害発生条件の構成要素であることを否定する論理式に同じ重みを設定することで最大充足可能性問題の形に定式化する。
【００６０】
図１５は、最大充足可能性問題の制約条件となる論理式の一例を示す図である。図１５は、図１２の例における最大充足可能性問題の制約条件となる論理式を示している。
障害診断装置５の制御部２１は、Ｓ１０５にて算出した相違集合から、最大充足可能性問題の制約条件となる論理式を導出する。例えば、制御部２１は、図１２に示すＮｏ．が「Ｄ１」の相違集合｛Ｓ２ｆ、Ｓ３ｆ、Ｓ４ｆ｝から、図１５に示すＮｏ．が「Ｌ１」の論理式ｃｄ（Ｓ２ｆ）∨ｃｄ（Ｓ３ｆ）∨ｃｄ（Ｓ４ｆ）を導出する。ここで、例えば、ｃｄ（Ｓ２ｆ）は、データ２の値が障害発生条件の一つを構成するときに真となる。
制御部２１は、図１２に示す７つの論理式の全てを最大充足可能性問題の制約条件として定式化する。
【００６１】
図１６は、各データの値が障害発生条件の構成要素であることを否定する論理式の一例を示す図である。
図１６に示すように、例えば、データ１が障害発生条件の構成データであることを否定する論理式は、¬ｃｄ（Ｓ１ｆ）である。制御部２１は、全てのデータの値について、障害発生条件の構成データであることを否定する論理式を導出し、それぞれの論理式に同じ重みを設定することで、最大充足可能性問題として定式化する。
図１２の例では、図１５に示す論理式（Ｎｏ．が「Ｌ１」〜「Ｌ７」）を制約条件とし、図１６に示す論理式（Ｎｏ．が「Ｌ１１」〜「Ｌ１５」）に同じ重みを設定した最大充足可能性問題が定式化される。
【００６２】
図５の説明に戻ると、障害診断装置５は、障害発生条件を算出する（Ｓ１０９）。障害診断装置５は、Ｓ１０８にて定式化した最大充足可能性問題の解を算出し、算出された解を否定する論理式を制約条件として逐次追加して再度解を算出する処理を、解が存在しなくなるまで繰り返すことで、障害発生条件となるデータの値またはデータの値の組み合わせを算出する。
【００６３】
図１７は、障害発生条件算出処理の詳細を示すフローチャートである。
図１７に示すように、障害診断装置５の制御部２１は、最大充足可能性問題の解を算出する（Ｓ４０１）。初回のＳ４０１の処理では、制御部２１は、図５のＳ１０６にて定式化した最大充足可能性問題のミニマム解を算出する。ミニマム解とは、データを１つでも削るとｓａｔｉｓｆｉａｂｌｅにならない解である。
【００６４】
次に、制御部２１は、解が存在したかどうか確認する（Ｓ４０２）。
解が存在する場合、制御部２１は、算出された解を否定する論理式を制約条件として追加し（Ｓ４０３）、Ｓ４０１に進む。２回目以降のＳ４０１の処理では、制御部２１は、Ｓ４０３にて追加された制約条件を含めた最大充足可能性問題のミニマム解を算出する。
一方、解が存在しない場合、制御部２１は、算出された全ての解の和集合を障害発生条件として保存する（Ｓ４０４）。正常時の時系列データが十分に多い場合、ミニマム解の和集合が真の障害発生条件に収束すると考えられる。
【００６５】
図１５に示す論理式（Ｎｏ．が「Ｌ１」〜「Ｌ７」）を制約条件とし、図１６に示す論理式（Ｎｏ．が「Ｌ１１」〜「Ｌ１５」）に同じ重みを設定した最大充足可能性問題を解くと、例えば、最初のミニマム解として、｛Ｓ１ｆ、Ｓ２ｆ｝が算出される（Ｓ４０１）。解が算出されたことから（Ｓ４０２のＹｅｓ）、算出された解を否定する論理式を制約条件として追加する（Ｓ４０３）。算出された解に対応する論理式は、ｃｄ（Ｓ１ｆ）∧ｃｄ（Ｓ２ｆ）である。この論理式を否定する論理式は、¬ｃｄ（Ｓ１ｆ）∨¬ｃｄ（Ｓ２ｆ）である。
次に、¬ｃｄ（Ｓ１ｆ）∨¬ｃｄ（Ｓ２ｆ）の論理式を制約条件として追加し、最大充足可能性問題を解くと、次のミニマム解として、｛Ｓ２ｆ、Ｓ５ｆ｝が算出される（Ｓ４０１）。解が存在することから（Ｓ４０２のＹｅｓ）、算出された解を否定する論理式を制約条件として追加する（Ｓ４０３）。算出された解に対応する論理式は、ｃｄ（Ｓ２ｆ）∧ｃｄ（Ｓ５ｆ）である。この論理式を否定する論理式は、¬ｃｄ（Ｓ２ｆ）∨¬ｃｄ（Ｓ５ｆ）である。
次に、¬ｃｄ（Ｓ２ｆ）∨¬ｃｄ（Ｓ５ｆ）の論理式を制約条件として追加し、最大充足可能性問題を解くと、解は存在しない（Ｓ４０１）。解が存在しないことから（Ｓ４０２のＮｏ）、算出された全ての解の和集合を障害発生条件として保存する（Ｓ４０４）。この場合の障害発生条件は、｛Ｓ１ｆ、Ｓ２ｆ、Ｓ５ｆ｝となる。
ミニマム解の和集合を障害発生条件とする理由は、正常時の時系列データが多くなると、ミニマム解の和集合が真の障害発生条件に近づくと考えられるからである。例えば、図７において、Ｙ２中のデータ２が「３」、データ５が「０」が真の障害発生条件であった場合を考える。正常時データが、データ２が「３」、かつデータ５が「０」であるデータを含んでいない図６に示すＸ１〜Ｘ７だった場合は、前述のように、ミニマム解の和集合は、｛Ｓ１ｆ、Ｓ２ｆ、Ｓ５ｆ｝となる。正常時の時系列データがさらに多い状態を考えると、相違データが極力少ない正常時データが存在する状況が考えられる。最も相違データが小さい正常時データとしては、Ｙ２中のデータ２以外のすべてのデータが同じ値であるデータ、つまりデータ１が「０」、データ３が「１」、データ４が「０」、データ５が「０」でデータ２が「３」でないデータ、及び、Ｙ２中のデータ５以外の全てのデータが同じ値であるデータ、つまりデータ１が「０」、データ２が「３」、データ３が「１」、データ４が「０」でデータ５が「０」でないデータが考えられる。Ｙ２の上記２つの正常時データに対する相違データはそれぞれ｛Ｓ２ｆ｝、｛Ｓ５ｆ｝となり、前述の手順からミニマム解及びその和集合は｛Ｓ２ｆ、Ｓ５ｆ｝となり、障害発生条件と一致する。このように、正常時データが多くなると、ミニマム解の和集合が真の障害発生条件に近づくと考えられることから、ミニマム解の和集合を障害発生条件とする。
【００６６】
図５の説明に戻る。障害診断装置５の制御部２１は、Ｓ１０９にて障害発生条件を算出すると、前回より低い階層の入出力信号を取得するように、データログ取得装置７に変更指示する（Ｓ１１０）。変更指示は、無線で遠隔から送信しても良いし、ケーブル等を介して送信しても良い。前回より低い階層の入出力信号を取得することで、真の障害発生条件を算出できる。
尚、変更指示は、最上位の階層の入出力信号と最上位の抽象度レベルの状態値については常に取得するものとし、これらに加えて取得する入出力信号と状態値を変更するものとしても良い。即ち、データログ取得装置７は、最上位の階層の入出力信号と最上位の抽象度レベルの状態値については常に取得するようにしても良い。これは、稀に複数の障害が同時に発生する場合もあるので、現在診断対象としている障害とは異なる障害に対して障害原因を診断できるようにするためである。
【００６７】
図１８は、異常データログ取得の変更の一例を示す図である。図１８に示す入出力信号と状態値は、図４に示すブロック線図４１と状態遷移図４２に関するものである。
障害発生前の場合、データログ取得装置７は、ブロック線図４１の最上位階層の入出力信号と、状態遷移図４２の最も抽象度レベルの高い状態値を取得する。図４に示すブロック線図４１では、Ｂ０が最上位階層であるから、１回目の障害診断のログ取得対象は、入出力信号ａ〜ｄ、ｈ〜ｊとなる。また、図４に示す状態遷移図４２では、コンポーネントＳ１の最も抽象度レベルの高い状態値がｖ（ｖ１、ｖ２）、コンポーネントＳ２の最も抽象度レベルの高い状態値がｘ（ｘ１、ｘ２）であるから、１回目の障害診断のログ取得対象は、状態値ｖ、ｘとなる。
【００６８】
図１８に示す例では、１回目の障害診断の結果が（ｉ、ｊ）＝（５０、５０）となり、障害発生条件が算出できている。この場合、障害診断装置５の制御部２１は、前回より低い階層の入出力信号を取得するように、データログ取得装置７に変更指示する。従って、２回目の障害診断のログ取得対象は、状態値については変更せず、入出力信号については前回より低い階層であるｌ〜ｎとなる。
図１８に示す例では、２回目の障害診断の結果が（ｌ、ｎ）＝（ＯＮ、ＯＮ）となり、前回より低い階層の入出力信号を含む障害発生条件が算出できている。
【００６９】
以上、図面を参照しながら本発明の実施の形態を説明した。
本発明では、システムに潜在的に存在するバグに起因する障害等、事前に想定していなかった原因による障害が発生した場合であっても障害発生条件を特定できる。本発明では、障害原因に関する事前知識は必要としないため、製品を市場に投入する段階では想定できない障害に対しても対応することができる。また、本発明では、障害発生条件を特定する過程で、障害を繰り返し再現することを必要としないため、再現が困難な障害に対しても対応することができる。
また、本発明では、ブロック線図と状態遷移図によるシステムの振る舞いの階層的な記述情報を用いて、異常時に取得する異常データログを変化させてログ取得と診断を繰り返すことで、障害発生時のログの保存を必要最小限に抑えて車両の動作性能を維持しながら、障害発生条件を絞り込むことができる。
【００７０】
以上、添付図面を参照しながら、本発明に係る障害診断システム等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００７１】
１………障害診断システム
３………車載システム
５………障害診断装置
７………データログ取得装置
９………障害検知装置
１１………ＥＣＵ
１３………車載ネットワーク
２１………制御部
２２………記憶部
２３………メディア入出力部
２４………通信制御部
２５………入力部
２６………表示部
２７………周辺機器Ｉ／Ｆ部
２８………バス
２９………ネットワーク
３１………制御部
３２………記憶部
３３………周辺機器Ｉ／Ｆ部
３４………通信インタフェース
４１………ブロック線図
４２………状態遷移図
【図１】
0005544804.tif 000002
【図２】
0005544804.tif 000003
【図３】
0005544804.tif 000004
【図４】
0005544804.tif 000005
【図５】
0005544804.tif 000006
【図６】
0005544804.tif 000007
【図７】
0005544804.tif 000008
【図８】
0005544804.tif 000009
【図９】
0005544804.tif 000010
【図１０】
0005544804.tif 000011
【図１１】
0005544804.tif 000012
【図１２】
0005544804.tif 000013
【図１３】
0005544804.tif 000014
【図１４】
0005544804.tif 000015
【図１５】
0005544804.tif 000016
【図１６】
0005544804.tif 000017
【図１７】
0005544804.tif 000018
【図１８】
0005544804.tif 000019