(57)【要約】【課題】データ記録部の限られた記録容量を有効に活用して、機器類の異常ないしは故障の原因等の究明等に用いられるデータを効率的に記録することができるデータ記録装置を得る。【解決手段】車両用データ記録装置２０は、異常事象に関連する各種データを記録する際に、ＲＡＭ２３に一時的に記録した時系列データについて、前回取得データと今回取得データの差分を異常事象毎に設定したデータ閾値と比較してデータ記録部２６に記録するか否かを決定する。具体的には、細かい精度でデータを記録する必要がある場合はデータの閾値を小さく設定し、粗い精度でデータを記録すればよい場合はデータの閾値を大きく設定する。このように構成することで異常事象に応じて、各データを記録する精度を適切に設定することができるため、記録容量を無駄に使用せずに後からその原因を究明することができる。【選択図】図１
2008057418.tif 000002
【特許請求の範囲】
【請求項１】
車両内部で用いられるデータを所定のタイミングで入手するデータ入手部と、
前回入手した前回データと今回入手した今回データを比較する比較部と、
前記比較部の比較結果に応じて、前記今回データを記録するか否かを判断する判断部と、
前記判断部で前記今回データを記録すると判断した場合は、当該今回データ、当該今回データの記録フラグを含む今回データセットを作成し、前記判断部で前記今回データを記録しないと判断した場合は、少なくとも当該今回データの記録フラグのみ記録し、当該今回データを記録しないデータセット管理部と、
前記データセット管理部で作成した前記今回データセットを記録装置に記録する記録部と、
を有する車両用データ記録装置。
【請求項２】
請求項１に記載の車両用データ記録装置であって、
前記比較部は、前記データ入手部で入手した前回データと今回データの差とデータ毎に設定した閾値を比較し、今回データを記録するか否かを判断する車両用データ記録装置。
【請求項３】
請求項１に記載の車両用データ記録装置であって、
前記比較部は、発生した異常事象に応じてそれぞれのデータごとの閾値を設定する車両用データ記録装置。
【請求項４】
請求項１に記載の車両用データ記録装置であって、
前記データ入手部で入手するデータは、センサ値または指令値を含む車両用データ記録装置。
【請求項５】
請求項１に記載の車両用データ記録装置であって、
前記記録部で使用する記録装置は不揮発メモリまたはハードディスクである車両用データ記録装置。
【請求項６】
請求項１に記載の車両用データ記録装置であって、
前記データセットは、前記データ入手部のサンプリング周期ごとに設けられている車両用データ記録装置。
【請求項７】
請求項１に記載の車両用データ記録装置であって、
前記記録部では、あらかじめ設定されたデータ量に収まる最大量を判定し、前記記録装置に記録する車両用データ記録装置。
【請求項８】
請求項１に記載の車両用データ記録装置であって、
前記記録部では、発生した異常事象に応じて記録するデータ量を判定し、前記記録装置に記録する車両用データ記録装置。
【請求項９】
請求項１に記載の車両用データ記録装置であって、
前記記録部で記録したデータについて、記録しないと判断されたデータを前の時刻のデータで補うことでデータの復元を行う車両用データ記録装置。
【請求項１０】
請求項１に記載の車両用データ記録装置であって、
前記記録部でデータを記録する際には、記録フラグと記録データを別々の領域に記録することで、記録データ量が変化してもデータ記録領域に無駄な空き領域を作らない車両用データ記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用データ記録装置に係る。
【背景技術】
【０００２】
従来、機器類の動作異常が発生したときにその発生原因を後から解析する目的でその異常事象に関連するデータを記録するデータ記録装置が知られている。
【０００３】
ところで、異常事象の発生原因を後から解析することを考えると膨大なデータを記録しなければならないが、データ記録領域の容量は限られているため、不要なデータを記録することなくその限られた容量を有効活用することが望ましい。
【０００４】
このような観点から、誤動作又は故障の内容に応じて、どの異常事象に関連するデータをどれだけのデータ量で記録装置に記録するかを選別するものが知られている（例えば特許文献１参照）。具体的には、発生頻度の高い異常事象に関連するデータを優先して記録し、また発生頻度の高い異常事象に関連するデータは異常事象の解析に必要となるデータ量と同量又はそれに近い量を記録している。
【０００５】
【特許文献１】特開２００４−３６５０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ある機器類の動作異常が発生したときには、その異常事象を後から解析するためにその異常事象に関連するなるべく多くのデータ種類、なるべく長い時系列データを記録する必要がある。一方、データ記録領域の容量は限られているため、いたずらに多くのデータを記録することは好ましくない。
【０００７】
本発明は、上記従来の問題を解決するためになされたもので、データ記録部の限られた記録容量を有効に活用して、機器類の異常ないしは故障の原因等の究明等に用いられるデータを効率的に記録することができるデータ記録装置とその方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、車両内部で用いられるデータを所定のタイミングで入手するデータ入手部と、前回入手した前回データと今回入手した今回データを比較する比較部と、比較部の比較結果に応じて、前記今回データを記録するか否かを判断する判断部と、前記判断部で前記今回データを記録すると判断した場合は、当該今回データ、及び当該今回データの記録フラグを含む今回データセットを作成し、前記判断部で前記今回データを記録しないと判断した場合は、少なくとも当該今回データを含む今回データセットを作成しないデータセット管理部と、前記データセット管理部で作成した前記今回データセットを記録装置に記録する記録部と、を備える。
【発明の効果】
【０００９】
本発明によれば、データ記録部の限られた記録容量を有効に活用して、機器類の異常ないしは故障の原因等の究明等に用いられるデータを効率的に記録することができる。
【発明を実施するための最良の形態】
【００１０】
以下、電子式の制御装置、例えば自動車に搭載されているコントロールユニット等に異常事象が発生したときに、該制御装置についての各種データを、データ記録部の限れた記録容量を有効に活用しつつ、確実に収集・記録することができるデータ記録装置、その方法及びそのプログラムに関する例として、説明する。
【００１１】
図１は本実施形態の車両用データ記録装置の概略ブロック図である。
【００１２】
本実施形態の車両用データ記録装置２０は、エンジンや自動変速機などの機器を制御するコントロールユニット１０に接続されている。コントロールユニット１０はエンジンや自動変速機などの機器を制御するために、各種センサからの入力信号たとえば、車速信号、油温信号、スロットル開度信号、油圧信号等を入力してこれらの入力信号に基づいてエンジンや自動変速機などの機器の制御を実行するものである。車両用データ記録装置２０は、車両用データ記録装置の全体の制御を司るＣＰＵ２１と各種プログラムが格納されたＲＯＭ２２と、各種データを一時的に記録するＲＡＭ２３と、異常事象に関連するデータを記録するデータ記録手段としてのデータ記録部２６（例えばＥＥＰＲＯＭやＦｌａｓｈＲＯＭなどの不揮発性メモリ）と、コントロールユニット１０から出力された各種信号を入力する入力インターフェース部２４と、コントロールユニット１０から出力された異常検知信号を検出する異常検知信号検出部２５とを備えており、これらはバス２７により互いに信号を送受信可能に接続されている。
【００１３】
コントロールユニット１０から出力される異常検知信号は、異常事象毎に付与された信号であり、例えば、車速センサ異常の場合には「０００１」、油圧センサ異常の場合には「０００２」などといった具合に対応付けられている。ＲＯＭ２２にはこれらの異常事象を解析するために取得するデータと、それぞれの異常事象においてデータ毎に設定する閾値とが記憶されている（例えば図７参照）。また、異常事象ごとに異常検知前後のどこからどこまでの期間のデータを記録するかを設定できるようにしてもよい。例えば、異常検知前のデータを取得したい異常事象の場合は異常検知前から異常検知時点までのデータを記録するように構成し、異常検知後のデータを取得したい異常事象の場合は異常検知後からのデータを記録するように構成すればよい。
【００１４】
次に、本実施形態の車両用データ記録装置２０の動作について図２のフローチャートに基づいて説明する。車両用データ記録装置２０のＣＰＵ２１は、所定のサンプリング周期（例えば１００ｍｓｅｃごと）にＲＯＭ２２に記録されている車両データ記録プログラムを読み出してこれを実行する。
【００１５】
このプログラムが開始されるとＣＰＵ２１は、まず、ステップＳ１００でデータ取得停止フラグＦの値が「０」か「１」かを判定する。このデータ取得停止フラグＦは、初期設定時に「０」にリセットされ、いずれかの異常事象が発生して各種データの取得が完了し、後述するステップＳ３１０で「１」にセットされるフラグである。このステップＳ１００でデータ取得停止フラグＦが「０」つまり指定期間のデータを取得してそれを不揮発メモリに記録していないときには、ステップＳ１１０に進んでコントロールユニット１０から入力される各種データ（例えば車速、油温、スロットル開度、油圧など）やコントロールユニット１０の内部データ（指示油圧、目標変速比など）を入力インターフェース部２４を介してＲＡＭ２３に一時記録する。なお、ＲＡＭ２３は所定の記録容量を持っており、この所定の記録容量を越えるデータを記録する場合は最も古いデータに新しいデータを上書きする。
【００１６】
続くステップＳ１２０では、コントロールユニット１０からの異常検知信号を異常検知信号検出部２５で検知して、何らかの異常事象が発生しているか、していないかを判定する。ここで何らかの異常事象を検知していない場合は、以下の処理は行わず処理を終了する。
【００１７】
一方、ステップＳ１２０にて何らかの異常事象を検知した場合は異常事象検知と判断し、ステップＳ１３０に進み検知した異常事象検知が初回かどうかを判定する。ステップＳ１３０にて異常事象検知が初回だった場合は、ステップＳ１４０に進み、異常事象に応じたデータ閾値を設定し、続くステップＳ１５０では検知した異常事象に応じたデータの記録期間を設定し、続くステップＳ１６０では検知した異常事象に応じた記録データセット個数を設定する。
【００１８】
ここで、ステップＳ１４０で設定する異常事象に応じたデータ閾値とは、異常事象ごとに設定することができる値であり、データセット内のデータ１つ１つに設定することが可能となっている。この閾値は、前回取得したデータ値と今回取得したデータ値との差分をこの閾値と比較するためのものであり、後述するステップＳ２００の詳細処理内容を記載した図３のステップＳ２２０にて使用している。
【００１９】
また、ステップＳ１５０で設定する異常事象に応じたデータセット個数とは、いくつの時系列データセットを記録するかを決定する値であり、例えばこの所定タイミングで実行されるプログラムを１００ｍｓｅｃおきに実行させた場合に、ステップＳ１５０で設定するデータセット個数の値を「２０」と設定すると、１００ｍｓｅｃのサンプリング周期で２０個分、即ち合計２ｓｅｃ間のデータセットを記録できるように設定したことになる。
【００２０】
また、ステップＳ１６０で設定する異常事象に応じたデータ記録期間とは、異常事象検知前後のいつからいつまでのデータを記録するかを設定する値であり、異常事象検知前のデータセット個数と異常事象検知後のデータセット個数を設定するものである。この２つの値の和は前記ステップＳ１５０で設定した記録データセット個数と等しくなる。例えば本プログラムの実行周期が１００ｍｓｅｃで、前記ステップＳ１５０にてデータセット個数を「２０」と設定した場合に、ステップＳ１６０にて設定するデータ記録期間を異常事象検知前「１０」、異常事象検知後「１０」と設定すると、異常事象を検知した時点から以前に取得した１０回分のデータセットと異常事象を検知した以降の１０回分のデータセット、即ち異常事象検知１ｓｅｃ前から異常検知後１ｓｅｃ間のデータを取得できるように設定したことになる。このデータ記録期間の設定値は、「０」に設定することも可能であり、例えば異常事象検知前「２０」、異常事象検知後「０」と設定すると、異常事象を検知する２ｓｅｃ前から異常事象を検知するまでの間のデータを記録するように設定したことになる。
【００２１】
ステップＳ１３０で異常事象の検知が初回でない場合、即ち既に異常を検知していて、異常発生後のデータを取得するために本プログラムを実行している場合は異常事象に応じたデータ閾値と異常事象に応じた記録データセット個数、異常事象に応じたデータ記録期間は既に設定済みのため、ステップＳ１４０〜ステップＳ１６０を飛ばして、ステップＳ１７０に進む。
【００２２】
続くステップＳ１７０では、前記ステップＳ１６０で設定した記録期間分のデータセットを記録したかを判定する。例えばステップＳ１６０にて、データ記録期間を異常事象検知前「１０」、異常事象検知後「１０」と設定している場合、異常事象検知後１０回、本プログラムが実行されステップＳ１１０で各種入力データをＲＡＭ２３に一時記録した時に、指定期間分のデータを取得できたと判断する。
【００２３】
続くステップＳ２００ではデータセット毎の記録フラグの作成と記録データの編集を行う。ステップＳ２００の処理詳細について図３に示し、これを用いて説明する。まずステップＳ２０５でＲＡＭ２３に一時記録したデータセットの中から今回記録すべき一番古いデータセットの全データの記録フラグを「１」に設定する。次にステップＳ２１０でデータセット番号ｎを１インクリメントする。このデータセット番号は初期設定時に「０」に設定され、１つのデータセットの編集処理が終了したときにＳ２１０、後述Ｓ２６０にてインクリメントされるデータセットが持つ時系列データ番号である。
【００２４】
続くステップＳ２１５では、前記ステップＳ２０５にてＲＡＭ２３に一時記録したデータセット番号ｎとデータセット番号ｎ−１のデータ番号ｍについて、その差分を算出する。データセット番号ｎ−１はデータセットｎよりも１周期前の取得データセットであり、ここでデータ番号ｍはデータセットの中に含まれる取得するべきデータ１つ１つに割り振られた番号である。このデータ番号ｍは初期設定時に「０」に設定され、１つのデータ編集処理が終了したときに、後述ステップＳ２４５にてインクリメントされる。
【００２５】
続くステップＳ２２０では、前記ステップＳ２１５で算出したデータ番号ｍの差分と前記ステップＳ１４０にて設定したデータごとの閾値とを比較して、データ番号ｍの差分が閾値よりも大きい場合にはステップＳ２２５に進み、データ番号ｍの記録フラグに「１」を設定する。一方ステップＳ２２０の判定でデータ番号ｍの差分が該当データの閾値以下の場合には、ステップＳ２３０に進み、データ番号ｍの記録フラグに「０」を設定し、続くステップＳ２３５にてデータセット番号ｎのデータ番号ｍのデータとデータセット番号ｎ−１のデータ番号ｍの値を置き換える。即ち、あるデータが設定閾値に満たなかった場合は、該当データセットのデータを一周期前のデータセットのデータで置き換える。続くステップＳ２４０にてデータ番号ｍの値が最大値が否かを判定し、最大値でない場合はステップＳ２４５にてデータ番号を１インクリメントしたのち、再びステップＳ２１５を行う。一方、ステップＳ２４０でデータ番号ｍが最大値のときには、ステップＳ２５０に進んでデータ番号ｍのリセットを行う。
【００２６】
続くステップＳ２５５では、データセット番号ｎが最大値か否かを判定し、最大値でない場合はステップＳ２６０にてデータセット番号ｎを１インクリメントしたのち、再びステップＳ２１５を行う。一方、ステップＳ２５５でデータセット番号ｎが最大値の時には、ステップＳ２００の処理を終了し、図２のステップＳ３００に進む。これまでに説明したステップＳ２００の処理にて編集されたデータセット毎の記録フラグと記録データは、一時的にＲＡＭ２３内に記録される。
【００２７】
続くステップＳ３００にて、前記のステップＳ２００で編集され、ＲＡＭ２３内に一時記録されたデータセット毎の記録フラグと記録データを、データ記録部２６に記録する。このステップＳ３００にてデータ記録部２６に記録するデータは記録フラグと記録フラグが「１」と判定されたデータ本体である。図４にＲＡＭ２３に一時的に記録されたデータセット、それをステップＳ２００で編集した後の編集済みデータセット、データ記録部２６に記録されるデータセットの概要を示す。また、図５に記録フラグの値と記録データの関係を示す。このように記録フラグが「１」と設定されたデータのみを記録することで、記録する全体のデータ量を減らすことができる。
【００２８】
そして続くステップＳ３１０において、いずれかの異常事象において必要な全データセットが記録されたことを表すデータ取得停止フラグＦに「１」をセットし、このプログラムを終了する。このようにデータ取得停止フラグＦに「１」をセットした後は、所定のタイミングで本プログラムが実行されても、ステップＳ１００にてデータ取得停止フラグＦが「１」のため、そのまま終了することになり、異常事象において必要な全データセットが記録された後は、この値が更新されることはない。
【００２９】
次に、前記のステップＳ２００で編集され、ＲＡＭ２３内に一時記録されたデータセット毎の記録フラグと記録データを、データ記録部２６に記録する際のデータ記録方法について図５、図６を使用して説明する。図５に示すように１つのデータセットは記録フラグと記録データによって構成されている。このデータセットをデータ記録部２６に記録する際は、記録フラグを記録する領域と記録データを記録する領域とでデータ記録部２６の異なった領域に記録されるように構成する。記録フラグは１つ１つのデータセットにおいて常に一定量であるが、記録データについては１つ１つのデータセットにおいて記録データの変化量に依存して記録するか否かが決まるため一定量とはならならず、１つのデータセットの記録データ量は該当データセットの記録フラグが「１」となっている個数分となる。そのため、次のデータセットの記録データを記録する際は、１つ前のデータセットのデータ終了後アドレスからデータを記録するように構成する。このように構成することで無駄な空き領域を作らずにデータを記録できる。
【００３０】
次に図２、図３のフローチャートと図８のＲＡＭ２３に一時記録されたデータの例、図９、図１０、図１１の異常事象ごとの記録フラグ状態に基づいて具体例を説明する。ここでは図７に示すように異常事象１〜３があり、異常事象ごとのデータ閾値、記録データセット個数、記録期間が設定されているものとする。取得するデータはデータＡ，Ｂ，Ｃ，Ｄの４つで、異常事象１についてはデータＡ，Ｂ，Ｃ，Ｄの閾値が「０」、記録データセット個数が１０個、記録期間が異常事象検知前１０個、異常事象検知後０個と設定されているとする。同様に異常事象２についてはデータＡ，Ｂ，Ｃ，Ｄの閾値が「５」、記録データセット個数が１０個、記録期間が異常事象検知前５個、異常事象検知前５個と設定され、異常事象３についてはデータＡ，Ｂ，Ｃ，Ｄの閾値が「１０」と設定され、記録データセット個数が１０個、記録期間が異常事象検知前０個、異常事象検知後１０個と設定されているものとする。
【００３１】
（ケース１）他の異常事象を何も検知していない状態から初めて異常事象１を検知したとすると、ステップＳ１００、Ｓ１１０、Ｓ１２０と処理を行い、ステップＳ１３０で異常事象検知初回のためステップＳ１４０へ進み、ステップＳ１４０で異常事象１に応じたデータ閾値、すなわちデータＡ，Ｂ，Ｃ，Ｄの閾値が「０」と設定される。次にステップＳ１５０で異常事象１に応じた記録データセット個数が１０個と設定される。次にステップＳ１６０で異常事象に応じたデータ記録期間が異常事象検知前１０個、異常事象検知後０個と設定される。次にステップＳ１７０で指定期間データ取得したかを判定するが、前記ステップＳ１６０設定したデータ記録期間は異常検知前１０個、異常検知後０個なので異常検知後のデータを取得する必要がなく、ステップＳ２００に進む。
【００３２】
ステップＳ２００ではまずステップＳ２０５で記録すべき一番古いデータセットの全データの記録フラグに「１」を設定する。すなわち図９のデータセット０の記録フラグの値は「１１１１」となる。その後ステップＳ２１０でデータセット番号を１インクリメントし、続くステップＳ２１５でデータセット番号１とデータセット番号０のデータＡの差分を算出すると「０」を得る（５０−５０＝０）。続くステップＳ２２０でこの差分「０」とデータＡに設定された閾値「０」を比較して、“データＡの差分＞データＡ閾値”が不成立となりステップＳ２３０に進み、データＡの記録フラグに「０」を設定する。続くステップＳ２３５でデータセット１のデータＡの値をデータセット０のデータＡの値で置き換える。この処理をデータセットに含まれるデータ数分、今回の例では４回繰り返しデータセット１の記録フラグとデータを編集する。この処理後にデータセット１の記録フラグは「０００１」となり、データＡ，Ｂ，Ｃ，Ｄの値は「５０」，「０」，「１００」，「２０」から「５０」，「０」，「１００」，「２０」となる。その後データセット番号を１インクリメントしステップＳ２１５に戻る。この処理を「データセット数−１」回繰り返し、全データセットの記録フラグの設定とデータの編集を行うと、図９に記載した値となる。図９のハッチングされているデータは編集が行われたデータを表しており、これらのデータはデータ記録部には記録されないデータである。異常事象１ではデータＡ，Ｂ，Ｃ，Ｄの閾値を全て「０」に設定しているのでデータ編集後も、図８のＲＡＭ２３に一時記録したデータと等しいデータ値になる。なお、記録フラグ記録フラグが「１」のデータがデータ記録部２６に記録する対象データになるので、全記録データ個数は３１個となる。
【００３３】
（ケース２）次に、他の異常事象を何も検知していない状態から初めて異常事象２を検知した場合について述べる。ＲＡＭに一時記録したデータはケース１と同様、図８の値とする。まずステップＳ１００、Ｓ１１０、Ｓ１２０と処理を行い、ステップＳ１３０で異常事象検知初回のためステップＳ１４０へ進み、ステップＳ１４０で異常事象２に応じたデータ閾値、すなわちデータＡ，Ｂ，Ｃ，Ｄの閾値が「５」と設定される。次にステップＳ１５０で異常事象２に応じた記録データセット個数が１０個と設定される。次にステップＳ１６０で異常事象に応じたデータ記録期間が異常事象検知前５個、異常事象検知後５個と設定される。次にステップＳ１７０で指定期間データ取得したかを判定するが、前記ステップＳ１６０で設定したデータ記録期間は異常検知前５個、異常検知後５個なので指定期間データ取得（異常検知後５回分のデータ取得）していないためステップＳ２００には進まず、処理を終了する。次のタイミングで本プログラムを実行するとステップＳ１００、Ｓ１１０、Ｓ１２０と処理を行い、ステップＳ１３０では既に異常事象を検知しているのでステップＳ１７０に進み、指定期間のデータを取得していないので処理を終了する。このように本プログラムを指定期間のデータを取得するまで繰り返し実行し異常事象検知後のデータを取得する。
【００３４】
次に指定期間のデータを取得した後ステップＳ２００に進み、ステップＳ２００ではまずステップＳ２０５で記録すべき一番古いデータセット（データセット０）の全データの記録フラグに「１」を設定する。その後ステップＳ２１０でデータセット番号を１インクリメントし、続くステップＳ２１５〜Ｓ２５０を前記ケース１と同様に実行する。ここで、異常事象２で設定されたデータ毎の閾値はデータＡ，Ｂ，Ｃ，Ｄともに「５」なので、データセット１についての記録フラグの設定、データの編集処理が終了した際は、データセット１の記録フラグ「０００１」、データＡ，Ｂ，Ｃ，Ｄは「５０」，「０」，「１００」，「２０」から「５０」，「０」，「１００」，「２０」となる。次にデータセット２についても同様に処理を行うと、データセット２の記録フラグ「０１０１」、データデータＡ，Ｂ，Ｃ，Ｄは「５０」，「５」，「９９」，「５０」から「５０」，「５」，「１００」，「５０」となる。以下同様にこの処理を「データセット数−１」回繰り返し、全データセットの記録フラグの設定とデータの編集を行うと、図１０に記載した値となる。図１０のハッチングされているデータは編集が行われたデータを表しており、これらのデータはデータ記録部には記録されないデータである。異常事象２ではデータＡ，Ｂ，Ｃ，Ｄの閾値を全て「５」に設定しているのでデータ編集後は、図８のＲＡＭ２３に一時記録したデータと一部異なったデータの値になる（例えばデータセット２のデータＣなど）。なお、記録フラグ記録フラグが「１」のデータがデータ記録部２６に記録する対象データになるので、全記録データ個数は２３個となる。
【００３５】
（ケース３）次に、他の異常事象を何も検知していない状態から初めて異常事象３を検知した場合について述べる。ＲＡＭに一時記録したデータはケース１、２と同様、図８の値とする。まずステップＳ１００、Ｓ１１０、Ｓ１２０と処理を行い、ステップＳ１３０で異常事象検知初回のためステップＳ１４０へ進み、ステップＳ１４０で異常事象３に応じたデータ閾値、すなわちデータＡ，Ｂ，Ｃ，Ｄの閾値が「１０」と設定される。次にステップＳ１５０で異常事象３に応じた記録データセット個数が１０個と設定される。次にステップＳ１６０で異常事象に応じたデータ記録期間が異常事象検知前０個、異常事象検知後１０個と設定される。次にステップＳ１７０で指定期間データ取得したかを判定するが、前記ステップＳ１６０で設定したデータ記録期間は異常検知前０個、異常検知後１０個なので指定期間データ取得（異常検知後１０回分のデータ取得）していないためステップＳ２００には進まず、処理を終了する。次のタイミングで本プログラムを実行するとステップＳ１００、Ｓ１１０、Ｓ１２０と処理を行い、ステップＳ１３０では既に異常事象を検知しているのでステップＳ１７０に進み、指定期間データを取得していないので処理を終了する。このように本プログラムを指定期間のデータを取得するまで繰り返し実行し異常事象検知後のデータを取得する。
【００３６】
次に指定期間のデータを取得した後ステップＳ２００に進み、ステップＳ２００ではまずステップＳ２０５で記録すべき一番古いデータセット（データセット０）の全データの記録フラグに「１」を設定する。その後ステップＳ２１０でデータセット番号を１インクリメントし、続くステップＳ２１５〜Ｓ２５０を前記ケース１，２と同様に実行する。ここで、異常事象３で設定されたデータ毎の閾値はデータＡ，Ｂ，Ｃ，Ｄともに「１０」なので、データセット１についての記録フラグの設定、データの編集処理が終了した際は、データセット１の記録フラグ「０００１」、データＡ，Ｂ，Ｃ，Ｄは「５０」，「０」，「１００」，「２０」から「５０」，「０」，「１００」，「２０」となる。次にデータセット２についても同様に処理を行うと、データセット２の記録フラグ「０１０１」、データデータＡ，Ｂ，Ｃ，Ｄは「５０」，「５」，「９９」，「５０」から「５０」，「０」，「１００」，「５０」となる。以下同様にこの処理をデータセット数−１回繰り返し、全データセットの記録フラグの設定とデータの編集を行うと、図１１に記載した値となる。図１１のハッチングされているデータは編集が行われたデータを表しており、これらのデータはデータ記録部には記録されないデータである。異常事象３ではデータＡ，Ｂ，Ｃ，Ｄの閾値を全て「１０」に設定しているのでデータ編集後は、図８のＲＡＭ２３に一時記録したデータと一部異なったデータの値になる（例えばデータセット２のデータＣなど）。なお、記録フラグが「１」のデータがデータ記録部２６に記録する対象データになるので、全記録データ個数は１９個となる。
【００３７】
次に、ケース１，２，３のステップＳ２００の処理後にステップＳ３００に進み記録フラグを含むデータセットを記録フラグとデータセットで記録する領域を分けてデータ記録部２６に記録する。記録領域を分けて記録することで、１つの異常事象に関するデータセット集合（本実施例の場合はデータセット０〜データセット９の記録フラグと記録データの集合）の全データ個数が異なった場合でもデータ記録部２６の記録領域を無駄にせずにデータを記録できる（記録フラグと記録データの関係を表した図６参照）。
【００３８】
ここで、本実施形態の構成要素と本発明の構成関係を明らかにすると、本実施形態のデータ記録部２６が本発明のデータ記録手段に相当し、ＣＰＵ２１が比較手段、判定手段、データ編集手段、及び記録手段に相当する。
【００３９】
以上詳述した本実施形態の車両用データ記録装置２０によれば、異常事象が発生した前後のデータを記録する際に、いつからいつまでの期間のデータをデータ記録部２６に記録するか任意に決定することができるので、後に異常事象の原因究明を有効に行うことができる。また、異常事象ごとに取得するデータの変化量を任意に設定した閾値と比較して記録するか否かを決定するので、異常事象毎に取得するデータの精度を任意に決定することができ、変化の少ないデータについては記録容量を無駄に使うことがない。
【００４０】
また、記録フラグと記録データをデータ記録部２６の別の場所に記録することで、記録データの記録個数が異なる場合にも、記録領域の空きを作らずにデータを記録することができるようになる。
【００４１】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることは言うまでもない。
【００４２】
例えば、上述した実施形態では、自動車に搭載された各種機器のデータを記録する場合について説明したが、本発明を自動二輪車、列車、飛行機、船舶、家電製品、精密機械などコントロールユニット（電子式の制御装置）を搭載した各種機器のデータを記録する場合に適用してもよい。
【００４３】
また、上述した実施形態では図７に示したように、１つの異常事象について全データ一定の閾値を設定したが、１つの異常事象においてもデータ毎に異なった閾値を設定することも可能であり、取得するデータの特性に合わせて閾値を設定すればよい。
【００４４】
また、上述した実施形態ではコントロールユニット１０を介して各種信号を入力するように構成したが、各種センサから直接それらの信号を車両用データ記録装置２０に入力するように構成してもよいし、あるいは、コントロールユニット内部に車両用データ記録装置２０の機能を持たせてもよい。
【００４５】
尚、データ入手部で入手した前回データと今回データの差とデータ毎に設定した閾値を比較し、今回データを記録するか否かを判断してもよい。例えば、プーリ回転数などノイズが多いデータに関しては閾値を大きく設定することで、ノイズによるデータ変動でデータ量が増加することを防ぎ、トランスミッション内部の油温など変動が緩慢なデータについては閾値を小さく、あるいは閾値を０に設定することで精度の高いデータを記録することができる。
【００４６】
また、データ入手部で入手した前回データと今回データの差との比較を行うためのデータ毎に設定した閾値は、異常事象に応じて設定することができるように構成してもよい。例えば、ある異常事象について注目すべきデータは閾値を小さく設定することで、細かい精度でデータを取得でき、また、ある異常事象において注目すべきでないデータは、閾値を大きく設定することで、粗い精度でデータを取得できる。このように構成することで、無駄に記録領域を使用せずに原因究明に必要な精度でデータを記録できる。
【００４７】
また、データ入手部で入手するデータはセンサ値、指令値、車両内部、外部問わず車両用データ記録装置が認識できるデータを含むように構成してもよい。このように構成することで、コントロールユニット内部の指令値と実際の出力値を記録し、比較することができるので、異常の原因を後から究明しやすい。
【００４８】
また、記録部で使用する記録装置はマイクロコンピュータからアクセス可能な記憶媒体であればどのようなものでも良く、例えばＥＥＰＲＯＭやＦｌａｓｈＲＯＭなどの不揮発メモリやＦＤ、ＣＤ、ＤＶＤ、ハードディスクなどでもよい。
【００４９】
また、データセットは、データ入手部のサンプリング周期ごとに設けてもよい。例えば、変動が少ないあるいは遅いデータ群と、変動が大きいあるいは早いデータ群をセットにして異なるサンプリング周期で本発明の車両用データ記録プログラムを実行することで、データ毎に適したサンプリング周期を設定できる。
【００５０】
また、記録部では、あらかじめ設定されたデータ量に収まる最大量を判定し、記録装置に記録するようにしてもよい。このように構成することで、あらかじめ設定されたデータ量を無駄に使用することなく、より長い時間の時系列データを記録することができるので、異常の原因を後から究明しやすい。
【００５１】
また、記録部では、あらかじめ設定された期間分のデータ量を判定し、前記記録装置に記録するようにしてもよい。このように構成することで一定期間のデータ量以上は無駄に記憶容量を使用しないので、余りの記憶容量を次に発生した異常時のデータ記憶容量として使用することができる。
【００５２】
また、記録部では、作成したデータセットについて記録フラグと記録データを別々の領域に配置するように記録してもよい。このように構成することで、可変長である記録データを記録する際に無駄な空き領域を作らずにデータを記録できるため、限られた記録容量を有効に利用することができる。
【００５３】
また、記録部で記録したデータについて、記録しないと判断されたデータを１周期前に取得したデータで補うことでデータの復元を行うことができる。そのため、異常事象調査時に記録部で記録したデータを解析する際は、データ毎に設定したサンプリング周期でデータを取得したかのようなデータを得ることができる。
【００５４】
また、異常事象は車載機器の異常事象でもよい。本発明の第１はどのような機器の異常事象関連のデータを記録する場合であっても適用可能であり、記録するデータは異常事象関連のデータのみに限定されず、時系列データを記録する全ての機器に適用可能であるが、自動車、自動二輪車、列車、船舶、航空機などに搭載されている機器の異常事象関連データを記録する場合に特に適している。
【００５５】
また、上述した車両用データ記録装置の少なくともデータ入手手段としては、コンピュータを機能させるためのプログラムが挙げられる。又、上述した車両用データ記録方法の各ステップをコンピュータに実現させるためのプログラムでも良い。このプログラムをコンピュータに実行させることで、上述した車両用データ記録装置による効果を得ることができる。また、このプログラムは、コンピュータが読み取り可能な記憶媒体（例えばＲＯＭ、ハードディスク、ＦＤ、ＣＤ、ＤＶＤなど）に記録されてもよいし、伝送媒体（インターネットやＬＡＮ、ＣＡＮなど無線、有線を問わない）を介して配信されてもよいし、その他どのような形で授受されてもよい。
【図面の簡単な説明】
【００５６】
【図１】本実施形態の車両用データ記録装置の概略ブロック図である。
【図２】本実施形態の車両用データ記録装置における異常事象関連データ記録プログラムのフローチャートである。
【図３】図２におけるステップＳ２００の処理を示したフローチャートである。
【図４】図２におけるステップＳ２００の処理で、ＲＡＭ２３とデータ記録部２６にどのようにデータが記録されるかを示した概略図である。
【図５】本実施形態の記録フラグと記録データの関係を示した概略図である。
【図６】図２におけるステップＳ３００の処理で、記録フラグと記録データセットをデータ記録部２６にどのように記録するかを示した概略図である。
【図７】図２におけるステップＳ１４０〜１６０にて設定する値の具体例を示した図である。
【図８】図１におけるＲＡＭ２３に一時的に記録したデータの具体例を示した図である。
【図９】図２におけるステップＳ２００の処理で図７の設定に基づいて図８に示したデータを編集した結果の一例を示した図である。
【図１０】図２におけるステップＳ２００の処理で図７の設定に基づいて図８に示したデータを編集した結果の一例を示した図である。
【図１１】図２におけるステップＳ２００の処理で図７の設定に基づいて図８に示したデータを編集した結果の一例を示した図である。
【符号の説明】
【００５７】
１０…電子制御ユニット、２０…車両用データ記録装置、２１…ＣＰＵ、２２…ＲＯＭ、２３…ＲＡＭ、２４…入力インターフェース部、２５…異常発生信号検出部、２６…データ記録部、２７…バス。
【図１】
2008057418.tif 000003
【図２】
2008057418.tif 000004
【図３】
2008057418.tif 000005
【図４】
2008057418.tif 000006
【図５】
2008057418.tif 000007
【図６】
2008057418.tif 000008
【図７】
2008057418.tif 000009
【図８】
2008057418.tif 000010
【図９】
2008057418.tif 000011
【図１０】
2008057418.tif 000012
【図１１】
2008057418.tif 000013