(57)【要約】【課題】階層構造化されたソフトウェアを備えた制御装置において、下位階層から報告された情報に基づいて、上位階層が異常を検出した場合でも、その異常の原因を分析することができるようにする。【解決手段】下位の階層ソフトウェアは、センサからの情報を上位の階層のソフトウェアに報告し、上位の階層ソフトウェアは、下位の階層ソフトウェアから報告された情報に基づいて、異常を検出する。上位の階層ソフトウェアは、異常を下位の階層ソフトウェアに通知する。下位の階層ソフトウェアは、通知された異常に対応する関連情報を、例えば、不揮発メモリに保存する。【選択図】図1
2010224680.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１の階層と第２の階層を含む複数の階層のソフトウェアを有するマイクロプロセッサを用いて制御対象からのセンサ値の異常を診断する異常診断方法において、
前記第２の階層ソフトウェアによって、制御対象に設けられたセンサからのセンサ値を入力するセンサ値入力ステップと、
前記第２の階層ソフトウェアにおいて、前記センサ値入力ステップにて入力したセンサ値に基づいて、該センサ値の異常を検出する前記第２の階層ソフトウェアによる異常検出ステップと、
前記第２の階層ソフトウェアによって、前記センサ値を保存するセンサ値保存ステップと、
前記第１の階層ソフトウェアから前記第２の階層ソフトウェアにセンサ値の問合せを行なう問合せステップと、
前記第２の階層ソフトウェアから前記第１の階層ソフトウェアにセンサ値の報告を行なう報告ステップと、
前記第１の階層ソフトウェアにおいて、前記報告ステップにて報告された前記センサ値に基づいて、前記第２の階層ソフトウェアによって検出された異常とは種類又はカテゴリが異なる前記センサ値の異常を検出する前記第１の階層ソフトウェアによる異常検出ステップと、
前記第１の階層ソフトウェアによる前記異常検出ステップにて前記センサ値の異常を検出したとき、前記第１の階層ソフトウェアから前記第２の階層ソフトウェアに異常を通知する異常通知ステップと、
前記異常通知ステップにて異常を通知されたとき、前記第２の階層ソフトウェアによって、前記センサ値に関連した情報を保存する情報保存ステップと、
を有する異常診断方法。
【請求項２】
請求項１記載の異常診断方法において、
前記マイクロプロセッサは更に第３の階層ソフトウェアを有し、
前記センサ値入力ステップでは、前記第２の階層ソフトウェアは、前記第３の階層ソフトウェアから前記センサ値を入力し、
前記第２の階層ソフトウェアは、前記第２の階層ソフトウェアにおいて検出した前記センサ値の異常と、前記第１の階層ソフトウェアから通知された前記センサ値の異常を、前記第３の階層ソフトウェアに通知することを特徴とする異常診断方法。
【請求項３】
請求項１記載の異常診断方法において、
前記第１の階層ソフトウェアにおいて、前記報告ステップにて報告された前記センサ値に基づいて、前記制御対象に設けられたアクチュエータに対する制御命令を算出し、前記第２の階層ソフトウェアに対して動作指示を行なう動作指示ステップと、
前記第１の階層ソフトウェアからの動作指示に基づいて、前記第２の階層ソフトウェアから前記アクチュエータに制御命令を送る制御命令ステップと、を有し、
前記第２の階層ソフトウェアによる異常検出ステップでは、前記センサ値の大きさの異常を検出し、
前記第１の階層ソフトウェアによる異常検出ステップでは、前記第１の階層ソフトウェアが算出した前記制御命令と前記第２の階層ソフトウェアからのセンサ値とを比較して、前記センサ値の変化の方向又は変化率の異常を検出することを特徴とする異常診断方法。
【請求項４】
請求項１記載の異常診断方法において、
前記第２の階層ソフトウェアは、前記センサ値が正常であるときは該センサ値及び前記センサ値に関連する情報を保存し、前記センサ値の異常を検出したとき、又は、前記第１の階層ソフトウェアから前記センサ値の異常を通知されたとき、前記センサ値及び前記センサ値に関連する情報を保存する動作を停止することを特徴とする異常診断方法。
【請求項５】
請求項１記載の異常診断方法において、
前記第１の階層ソフトウェアは、前記センサ値の異常を検出したとき、該センサ値の異常及びそれに関連する情報を保存することを特徴とする異常診断方法。
【請求項６】
請求項３記載の異常診断方法において、
前記制御対象はエンジンに設けられたスロットルバルブであり、前記センサ値はスロットルバルブの位置であり、前記アクチュエータは、スロットルバルブの開度を変化させるモータであり、前記制御命令は前記モータの制御デューティであることを特徴とする異常診断方法。
【請求項７】
請求項１記載の異常診断方法において、
前記センサ値は、制御装置の基板の温度であることを特徴とする異常診断方法。
【請求項８】
階層構造の複数のソフトウェアを有するマイクロプロセッサと、前記ソフトウェアからの命令に従ってデータを記憶する不揮発メモリと、を有し、前記マイクロプロセッサには、少なくとも第１の階層ソフトウェアと第２の階層のソフトウェアが格納された制御装置において、
前記第２の階層ソフトウェアは、制御対象に設けられたセンサからのセンサ値の読み込みを行うセンサ入力モジュールと、前記第１の階層ソフトウェアからのセンサ値の問合せに応答して前記第１の階層ソフトウェアに前記センサ値の報告を行うのセンサ値報告モジュールと、前記第１の階層ソフトウェアからの動作指示に基づいて前記制御対象に設けられたアクチュエータに対して制御命令を供給するアクチュエータ駆動モジュールと、前記センサ入力モジュールによって前記センサ値の異常が検出されたとき、該センサ値を前記不揮発メモリに記録する異常情報記録モジュールと、を有し、
前記第１の階層ソフトウェアは、前記第２の階層ソフトウェアから報告された前記センサ値に基づいて、前記センサ入力モジュールが検出した前記センサ値の異常とは種類又はカテゴリが異なる異常を検出し、それを前記異常情報記録モジュールに通知し、
前記異常情報記録モジュールは、前記第１の階層ソフトウェアから前記センサ値の異常通知を受け取ると、前記センサ値と該センサ値に関連する情報を前記不揮発メモリに保存する処理を行なうことを特徴とする制御装置。
【請求項９】
請求項８記載の制御装置において、
前記第２の階層ソフトウェアは、前記センサ値が正常であるときは該センサ値及び前記センサ値に関連する情報を前記不揮発メモリに保存し、前記センサ入力モジュールによって前記センサ値の異常が検出されたとき、又は、前記第１の階層ソフトウェアから前記センサ値の異常を通知されたとき、前記不揮発メモリに前記センサ値及び前記センサ値に関連する情報を保存する動作を停止することを特徴とする制御装置。
【請求項１０】
請求項８記載の制御装置において、
前記マイクロプロセッサには更に第３の階層のソフトウェアが格納され、前記第２の階層ソフトウェアは前記第１の階層ソフトウェアから前記センサ値の異常通知を受け取ると、当該異常に関連する情報を前記第３の階層のソフトウェアに通知することを特徴とする制御装置。
【請求項１１】
請求項８記載の制御装置において、
前記制御対象はスロットルバルブであり、
前記センサ入力モジュールは、前記センサ値としてスロットルバルブの位置を読み込み、該スロットルバルブの位置の異常の有無を検出し、前記アクチュエータ駆動モジュールは、前記スロットルバルブの開度を変化させるモータに供給するパルスの制御デューティを前記制御命令として前記モータに供給し、
前記異常情報記録モジュールは、前記センサ入力モジュールによって前記スロットルバルブの位置の異常が検出されたとき、該スロットルバルブの位置及び該スロットルバルブに関連する情報を前記不揮発メモリに記録することを特徴とする制御装置。
【請求項１２】
請求項１１記載の制御装置において、
前記第１の階層ソフトウェアは、前記第２の階層ソフトウェアから報告された前記スロットルバルブの位置の変化と前記第２の階層ソフトウェアへ供給した動作指示とを比較して、前記スロットルバルブの位置の変化が異常であるか否かを判定し、異常であると判定した場合に、前記第２の階層ソフトウェアの前記異常情報記録モジュールに、前記センサ値の異常を通知することを特徴とする制御装置。
【請求項１３】
階層構造の複数のソフトウェアを有するマイクロプロセッサと、前記ソフトウェアからの命令に従ってデータを記憶する不揮発メモリと、を有し、前記マイクロプロセッサには、少なくとも第１の階層ソフトウェアと第２の階層のソフトウェアが格納された制御装置において、
前記第２の階層ソフトウェアは、制御対象に設けられたセンサからのセンサ値の読み込み、該センサ値を前記第１の階層ソフトウェアに報告し、
前記第１の階層ソフトウェアは、前記第２の階層ソフトウェアから報告されたセンサ値に基づいて、前記センサ値の異常を検出したとき、該センサ値の異常を前記第２の階層ソフトウェアに通知し、
前記第２の階層ソフトウェアは、前記第１の階層ソフトウェアから前記センサ値の異常通知を受け取ると、該センサ値の異常に関連する情報を前記不揮発メモリに保存する処理を行なうことを特徴とする制御装置。
【請求項１４】
請求項１３記載の制御装置において、前記第２の階層ソフトウェアは、前記センサ値が正常であるときは該センサ値及び該センサ値に関連する情報を前記不揮発メモリに保存し、前記センサ値が異常となっとき、又は、前記第１の階層ソフトウェアから前記センサ値の異常を通知されたとき、前記不揮発メモリに前記センサ値及び該センサ値に関連する情報を保存する動作を停止することを特徴とする制御装置。
【請求項１５】
請求項１３記載の制御装置において、
前記第２の階層ソフトウェアは、制御対象に設けられたセンサからのセンサ値の読み込みを行うセンサ入力モジュールと、前記第１の階層ソフトウェアからのセンサ値の問合せに応答して前記第１の階層ソフトウェアに前記センサ値の報告を行うのセンサ値報告モジュールと、前記第１の階層ソフトウェアからの動作指示に基づいて前記制御対象に設けられたアクチュエータに対して制御命令を供給するアクチュエータ駆動モジュールと、前記センサ入力モジュールによって前記センサ値の異常が検出されたとき、該センサ値を前記不揮発メモリに記録する異常情報記録モジュールと、を有し、
前記第１の階層ソフトウェアは、前記第２の階層ソフトウェアから報告された前記センサ値に基づいて、前記センサ入力モジュールが検出した前記センサ値の異常とは種類又はカテゴリが異なる異常を検出し、それを前記異常情報記録モジュールに通知し、
前記異常情報記録モジュールは、前記第１の階層ソフトウェアから前記センサ値の異常通知を受け取ると、該センサ値及び該センサ値に関連する情報を前記不揮発メモリに保存する処理を行なうことを特徴とする制御装置。
【請求項１６】
請求項１５記載の制御装置において、
前記制御対象はスロットルバルブであり、
前記センサ入力モジュールは、前記センサ値としてスロットルバルブの位置を読み込み、該スロットルバルブの位置の異常の有無を検出し、前記アクチュエータ駆動モジュールは、前記スロットルバルブの開度を変化させるモータに供給するパルスの制御デューティを前記制御命令として前記モータに供給し、
前記異常情報記録モジュールは、前記センサ入力モジュールによって前記スロットルバルブの位置の異常が検出されたとき、該スロットルバルブの位置及び該スロットルバルブの位置に関連する情報を前記不揮発メモリに記録することを特徴とする制御装置。
【請求項１７】
請求項１３記載の制御装置において、
前記第２の階層ソフトウェアは、前記センサ値として制御装置の基板の温度を読み込み、該基板温度を前記第１の階層ソフトウェアに通知し、更に、該基板温度が所定の範囲を超えたか否かを判定し、
前記第１の階層ソフトウェアは、前記第２の階層ソフトウェアから報告された基板温度に基づいて、前記基板温度の変化率が所定の閾値を超えたか否かを判定し、前記基板温の変化率が所定の閾値を超えた場合には、前記基板温度の変化率の異常を、前記第２の階層ソフトウェアに通知し、
前記第２の階層ソフトウェアは、前記基板温度が所定の範囲を超えたか否かを判定したとき、又は、前記第１の階層ソフトウェアから前記基板温度の変化率の異常を通知されたとき、前記基板温度を前記不揮発性メモリに保存することを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層構造のソフトウェアを備えた制御装置に関し、特に、制御装置に設けられた異常診断機能に関する。
【背景技術】
【０００２】
制御装置は、センサによって検出されたセンサ値を入力し、制御量を演算し、アクチュエータを駆動する。制御装置は、他の制御装置との間で情報を交換する通信機能を備えることもある。
【０００３】
制御装置の一つの形態に、マイクロコンピュータ又はマイクロプロセッサ（以下、マイコンと称する。）で制御する制御装置がある。マイコンにはソフトウェアが含まれる。ソフトウェアの規模が増大すると、ソフトウェアを階層構造に構成する必要がある。即ち、１つのソフトウェアは、複数の階層のソフトウェアによって構成される。各階層のソフトウェアは、通常、異なるソフトウェア会社、又は、異なる部門によって提供される。
【０００４】
階層構造化されたソフトウェアでは、隣り合う階層のソフトウェア間のインタフェースを明確に規定し、階層間の独立性を保持するように構成する。それによって、ソフトウェアの開発、及び、保守の効率化を図ることができる。
【０００５】
制御装置には、センサ、アクチュエータ等が正常に機能しているか又は異常かを判別する診断機能が設けられる。異常が検出されたとき、その異常の分析を行なうことが望ましい。異常の分析を、リアルタイムに行なう場合もあるが、後になってから行なう場合もある。
【０００６】
例えば、複雑な制御装置では、異常の原因が多種多様で、簡単には決定できない場合がある。また、多くの要因を総合的に判定して行なう場合もある。更に、異常の原因の判別に特殊な検査機器が必要な場合もある。このような場合には、その制御装置を一旦取り外して、別の時間、別の場所で異常を分析する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ソフトウェアが階層化されている場合、各階層のソフトウェアには、それぞれ別個の異常診断機能が割り当てられる。下位階層では個別のセンサ、アクチュエータに密着した診断を行ない、上位階層のソフトウェアは、より総合的な診断を行なう。例えば、個別のセンサ、アクチュエータでは異常が検出されないが、複数のセンサ又はアクチュエータを総合的に診断すると異常であると診断することができる場合がある。
【０００８】
階層構造化されたソフトウェアでは、通常、センサからのセンサ値は、下位の階層から上位の階層に報告される。上位の階層は、下位の階層から報告された情報に基づいて、異常を検出する。一方、下位階層も、センサ値に基づいて、異常を検出する。この場合、上位の階層が検出する異常と、下位階層が検出する異常は重複しない。下位階層が検出した異常は上位階層に報告されるが、上位階層が検出した異常は下位階層には通知されない。
【０００９】
通常、下位階層が検出する異常の原因を分析するのに必要な情報は保存されている。そのため、下位階層が検出した異常の原因を分析することができる。しかしながら、上位階層が検出する異常の原因を分析するのに必要な情報は、保存されていない。そのため、上位階層が検出する異常の原因を分析することができない。
【００１０】
本発明の目的は、階層構造化されたソフトウェアを備えた制御装置において、下位階層から報告された情報に基づいて、上位階層が異常を検出した場合でも、その異常の原因を分析することができるようにすることにある。
【課題を解決するための手段】
【００１１】
本発明によると、階層構造のソフトウェアを備えた制御装置において、下位の階層ソフトウェアは、センサからの情報を上位の階層のソフトウェアに報告し、上位の階層ソフトウェアは、下位の階層ソフトウェアから報告された情報に基づいて、異常を検出する。上位の階層ソフトウェアは、異常を下位の階層ソフトウェアに通知する。下位の階層ソフトウェアは、通知された異常に対応する関連情報を、例えば、不揮発メモリに保存する。
【００１２】
下位の階層ソフトウェアは、センサからの情報を、不揮発メモリに保存するが、上位の階層のソフトウェアから異常が通知されたら、センサからの情報及び関連情報を、不揮発メモリへ保存する処理を停止する。
【００１３】
下位の階層ソフトウェアは、センサからの情報に基づいて、異常を検出する。しかしながら、下位の階層ソフトウェアが検出する異常と、上位の階層ソフトウェアが検出する異常は、種類又はカテゴリが異なる。
【００１４】
階層構造のソフトウェアが上位、中位、下位の３階層、またはそれ以上の階層の場合であっても、同様である。即ち、上位階層のソフトウェアが異常を検出したとき、中位階層及び下位階層のソフトウェアは、上位階層から通知された異常の種類に関連する情報を、例えば、不揮発メモリに保存する。
【発明の効果】
【００１５】
本発明によると、階層構造化されたソフトウェアを備えた制御装置において、下位階層から報告された情報に基づいて、上位階層が異常を検出した場合でも、その異常の原因を分析することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の制御装置の第１の例の構成を示す図である。
【図２】本発明の制御装置の第１の例の上位階層ソフトウェアの行う処理を示す図である。
【図３】本発明の制御装置の第１の例の下位階層ソフトウェアのセンサ入力モジュールが行う処理を示す図である。
【図４】本発明の制御装置の第１の例の下位階層ソフトウェアのセンサ値報告モジュールが行う処理を示す図である。
【図５】本発明の制御装置の第１の例の下位階層ソフトウェアのアクチュエータ駆動モジュールが行う処理を示す図である。
【図６】本発明の制御装置の第１の例の下位階層ソフトウェアの異常情報記録モジュールが行う処理を示す図である。
【図７】本発明の制御装置の第１の例において、ソフトウェア階層が３階層以上の場合の異常情報記録モジュールが行う処理を示す図である。
【図８】本発明の制御装置の不揮発メモリの構成例を示す図である。
【図９】本発明の制御装置の第２の例の処理を示す図である。
【発明を実施するための形態】
【００１７】
図１を参照して本発明の制御装置の第１の例を説明する。本例の制御装置10は、上位階層ソフトウェア20、下位階層ソフトウェア30、及び、不揮発メモリ40を有する。制御装置10は、上位階層ソフトウェア20、及び、下位階層ソフトウェア30を格納するマイコン（マイクロコンピュータ又はマイクロプロセッサ）50を有する。不揮発メモリ40には、マイコン50、又は、ソフトウェア20、30からの命令によってデータが保存される。本例の制御装置10による制御対象（図示なし）には、センサ110及びアクチュエータ120が設けられている。
【００１８】
下位階層ソフトウェア30は、センサ入力モジュール35、センサ値報告モジュール36、アクチュエータ駆動モジュール37、及び、異常情報記録モジュール38を有する。センサ入力モジュール35は、一定周期でセンサ110からのセンサ値の読み込み31を行ない、その値を保持する。上位階層ソフトウェア20は必要な時点で下位階層ソフトウェア30にセンサ値の問合せ21ａを行なう。下位階層ソフトウェア30のセンサ値報告モジュール36は、センサ値の問合せ21ａに応答してセンサ値の報告21ｂを行う。
【００１９】
上位階層ソフトウェア20は、センサ値報告モジュール36から提供されたセンサ値を用いてアクチュエータ120に対する制御命令を算出し、下位階層ソフトウェア30に対して動作指示22を行なう。
【００２０】
下位階層ソフトウェア30のアクチュエータ駆動モジュール37は、アクチュエータ120に対して必要な制御命令32を行なう。上位階層ソフトウェア20は、センサ値の異常を発見したときは下位階層ソフトウェア30を呼び出し、異常通知23を行う。上位階層ソフトウェア20は、同時に、センサ値の異常を不揮発メモリ40に保存する。下位階層ソフトウェア30の異常情報記録モジュール38は、上位階層ソフトウェア20から呼び出され、異常通知23を受信すると、センサ値の異常を不揮発メモリ40に保存する。下位階層ソフトウェア30も、センサ値から異常を検出するが、上位階層ソフトウェア20が検出する異常と、下位階層ソフトウェア30が検出する異常は、種類又はカテゴリが異なる。従って、両者の異常診断処理が重複することはない。これについては、以下に詳細に説明する。
【００２１】
図１に示す例では、制御装置10は、上位階層ソフトウェア20と下位階層ソフトウェア30の２階層のソフトウェアを有するが、３階層のソフトウェアによって構成されてもよい。この場合、第１の階層ソフトウェアは、センサ値が正常、又は、異常であることを検出したとき、第２の階層のソフトウェアに、センサ値が正常、又は、異常であることを通知する。第２のソフトウェアは、第３の階層ソフトウェアに、センサ値が正常、又は、異常であることを通知する。制御装置10は、４階層以上のソフトウェアによって構成されてもよい。
【００２２】
本発明は、このように、上位階層ソフトウェア20、下位階層ソフトウェア30、及び、不揮発メモリ40を有するものであればどのような制御装置にも適用可能であるが、ここでは、自動車のエンジンに搭載される制御装置を例として説明する。
【００２３】
本発明の制御装置の第１の例を説明する。本例の制御装置では、制御対象はスロットルバルブであり、センサ110は、スロットルバルブの位置センサである。センサ110は、スロットルバルブの位置をセンサ値として出力する。アクチュエータ120はスロットルバルブを回転させるモータである。このモータには、常時、パルスが印加されている。即ち、スロットルバルブの開度を変化させないときにも、モータにはパルスが印加されている。スロットルバルブの開度は変化させるときには、モータに印加するパルスのデューティを変化させる。デューティを制御する方法として、パルス幅制御PWM(Pulse Width Modulation)が用いられてよい。パルス幅制御機能は、マイコン機能として実現されている。ただし、本発明と直接的な関係はないため、その内容の説明はここでは省略する。
【００２４】
下位階層ソフトウェア30が、アクチュエータ120に供給する制御命令32は、モータに印加するパルスのデューティである。これを制御デューティと称する。制御デューティを増加させると、スロットルバルブの開度が増加する。それによって、センサ110からのセンサ値が増加する。制御デューティを変化させないと、スロットルバルブの開度は変化しない。この場合には、センサ110からのセンサ値は変化しない。
【００２５】
センサ入力モジュール35は、一定周期にて、オペレーティング・システムによって起動され、センサ110からスロットルバルブの位置をセンサ値として入力する。センサ入力モジュール35は、センサ値の上下限チェックを行った後、それを記憶する。センサ値報告モジュール36は、上位階層ソフトウェア20からのセンサ値の問合せ21ａに対して、このセンサ値を読出して、報告21ｂする。アクチュエータ駆動モジュール37は、上位階層ソフトウェア20によって呼び出されたとき、指示された制御デューティをアクチュエータ120、即ち、モータに印加する。異常情報記録モジュール38は、上位階層ソフトウェア20から呼び出され、異常通知23を受け取ると、異常の種類に応じた情報を不揮発メモリ40に記録する。
【００２６】
本発明の制御装置の第１の例におけるセンサ値の異常診断方法の例を説明する。本例では、スロットルバルブの位置、即ち、センサ値の大きさと変化方向の異常を検出する。先ず、センサ値の大きさの診断を説明する。下位階層ソフトウェア30はセンサ110からのセンサ値の上下限チェックを行なう。すなわち、センサ値が予め決めた有効範囲内にあれば正常と判定し、センサ値が有効範囲外であれば、異常と判定する。センサ値が正常であるとき、センサ値報告モジュール36は、センサ値をそのまま、上位階層ソフトウェア20に報告する。センサ値が異常であるとき、センサ値報告モジュール36は、センサ値の代わりに、有効範囲の上限値又は下限値を、上位階層ソフトウェア20に報告する。例えば、センサ値が、有効範囲の上限値を超えた場合には、上限値を報告し、センサ値が、有効範囲の下限値を超えた場合には、下限値を報告する。
【００２７】
上位階層ソフトウェア20は、センサ値報告モジュール36からの報告に基づいて、下位階層ソフトウェア30が異常を検出したか否かを知ることができる。更に、上位階層ソフトウェア20は、異常を検出した場合に、それが上限側の異常なのか下限側の異常なのかを知ることができる。下位階層ソフトウェア30はアクチュエータ120に関する診断は行なわないものとする。
【００２８】
次に、センサ値の変化方向の診断を説明する。上述のように、上位階層ソフトウェア20は、モータの制御デューティを算出するから、制御デューティを増加させたか、減少させたかを知っている。ある瞬間にセンサ値が、その有効範囲の中央近傍にあるときに、上位階層ソフトウェア20がスロットルバルブの開度を増加せるために、より大きな制御デューティを指示したとする。その直後にセンサ値が少しだけ減少したが、センサ値はまだ有効範囲内にあるとする。この場合、下位階層ソフトウェア30の行なう診断では、センサ値の異常低下は検出されない。しかしながら、上位階層ソフトウェア20は、制御デューティの指示とは逆方向にセンサ値が変化したことを検出することができる。従って、上位階層ソフトウェア20は、センサ値が異常低下したと判定する。
【００２９】
上位階層ソフトウェア20は、センサ値の大きさと変化方向の異常を検出すると、センサ値と制御デューティを不揮発メモリ40に書き込む。更に、上位階層ソフトウェア20は、下位階層ソフトウェア30にセンサ値が異常低下した旨の異常通知23を発行する。下位階層ソフトウェア30は、異常通知23を受信すると、センサ値と、センサ供給電源の電圧、同一のセンサ供給電源を共有する他のセンサのセンサ値を不揮発メモリ40に書き込む。
【００３０】
本例では、センサ供給電源とそれより電圧が供給されるセンサとの間の対応関係について、下位階層ソフトウェア30は認識しているが、上位階層ソフトウェア20は認識していない。即ち、上位階層ソフトウェア20は、個別のハードウェア構成については関知しないものとしている。センサ供給電源は、下位階層ソフトウェア30が管理するように構成されている。このように、上位階層ソフトウェア20と下位階層ソフトウェア30に、互いに重複しないように、処理を分担させることが、制御装置を階層構造化する目的のひとつである。
【００３１】
後日、この不揮発メモリ40の内容を分析すると、制御デューティを増加させる指示にも拘らず、センサ値が低下したことを発見する。更に、詳細に分析すると、センサ供給電源の電圧の低下、及び、そのセンサ供給電源を共有する他のセンサのセンサ値に異常な低下が認められたものとする。このような場合には、制御デューティの変化とは逆方向にセンサ値が変化したことの原因の一つに、センサ供給電源の異常の可能性があると判定できる。
【００３２】
図２を参照して、上位階層ソフトウェア20における異常診断の処理を説明する。上位階層ソフトウェア20はオペレーティング・システムにより、一定周期で起動される。ただし、オペレーティング・システムは本発明と直接的な関係がないために省略している。
【００３３】
上位階層ソフトウェア20が起動されると、まず、ステップＳ211にて、下位階層ソフトウェア30にセンサ値の問合せ21ａを行なう。上位階層ソフトウェア20は、下位階層ソフトウェア30からセンサ値の報告21ｂを得る。ここでセンサ値は、スロットルバルブの位置である。ステップＳ212にて、今回のセンサ値の報告と、保存されている前回のセンサ値の報告を比較して、センサ値の変化方向と変化量を計算する。
【００３４】
ステップＳ213では、異常判定を行う。先ず、制御デューティの変化方向と変化量を検出する。上述のように、アクチュエータ120、即ち、モータには常時、パルスが印加されている。上位階層ソフトウェア20は、制御デューティの変化方向と変化量を常時、演算している。そこで、上位階層ソフトウェア20は、制御デューティの変化方向と変化量と、センサ値の変化方向と変化量を比較し、異常の有無を判定する。
【００３５】
例えば、制御デューティが増加しているにも拘らず、センサ値が一定、又は、減少した場合には、異常であると判定する。制御デューティが減少しているにも拘らず、センサ値が一定、又は、増加した場合には、異常であると判定する。更に、制御デューティの変化量に比較して、センサ値の変化量が異常に大きい場合又は小さい場合にも、異常であると判定してよい。
【００３６】
異常であると判定されたときは、ステップＳ214に進み、異常なしと判定されたときは、ステップＳ216に進む。ステップＳ214にて、前回指示した制御デューティを不揮発メモリに記録する。ステップＳ215にて、下位階層ソフトウェア30に、異常通知23を発行する。下位階層ソフトウェア30に、例えば、センサ値の異常低下を通知する。
【００３７】
ステップＳ216にて、今回のセンサ値の問合せ結果から制御デューティを算出する。ステップＳ217にて、制御デューティを下位階層ソフトウェア30に動作指示22を行う。
【００３８】
図３を参照してセンサ入力モジュール35の処理の例を説明する。ステップＳ221にて、センサ110からスロットルバルブの位置を入力値として入力する。ステップＳ222にて、入力値が有効範囲の上限値以上かどうかを判定する。入力値が有効範囲の上限値以上なら、ステップＳ223に進み、そうでなければステップＳ224に進む。ステップＳ223にて、上限値をセンサ値とする。ステップＳ224にて、入力値が有効範囲の下限値以下かどうかを判定する。入力値が有効範囲の下限値以下なら、ステップＳ225に進み、そうでなければステップＳ226に進む。ステップＳ225にて、下限値をセンサ値とする。ステップＳ226にて、入力値をセンサ値とする。
【００３９】
図４を参照してはセンサ値報告モジュール36の処理内容の例を説明する。上位階層ソフトウェア20からセンサ値の問合せ21aがあったとき、ステップＳ231にて、上位階層ソフトウェア20へ、センサ値の報告21ｂを行う。ここで報告するセンサ値は、図３の処理で決定したセンサ値である。
【００４０】
図５を参照してはアクチュエータ駆動モジュール37の処理内容の例を説明する。ステップＳ241にて、指示された制御デューティからPWM制御パラメータ値を算出する。ステップＳ242にて、PWM制御パラメータをマイコンに設定する。
【００４１】
図６を参照しては異常情報記録モジュール38の処理内容の例を説明する。ステップＳ251にて、異常情報記録モジュール38は、上位階層ソフトウェア20から異常通知23がなされると、異常の種類の判定を行う。ステップＳ252にて、異常の種類がセンサ値の異常低下であるか否かを判定する。センサ値の異常低下である場合には、ステップＳ253に進み、そうでない場合には、ステップＳ254に進む。ステップＳ253にて、センサ値、センサ供給電源値、供給電源を共用する他のセンサのセンサ値を不揮発メモリ40に記録する。ここで、センサ値異常低下の時に不揮発メモリ40に記録する情報はセンサ値、センサ供給電源値、供給電源を共用するセンサのセンサ値の3個の情報であることは、別途、下位階層ソフトウェア30の中で定められているものとする。
ステップＳ254では、異常の種類に応じて、処理を行うが、ここでは詳細な説明は省略する。
【００４２】
図７を参照しては異常情報記録モジュール38の処理内容の更に他の例を説明する。図７のステップＳ261からステップＳ264は、図６のステップＳ251からステップＳ254と同じ内容である。本例では、ステップＳ265が追加されている。ステップＳ256では、下位の階層に異常の種類を通知する。本例の異常情報記録38の処理は、ソフトウェア階層が3階層以上であることを前提とする。例えば、ソフトウェア階層が、上位階層ソフトウェア、中位階層ソフトウェア、下位階層ソフトウェアの３階層である場合、中位階層ソフトウェアは上位階層ソフトウェアから異常の種類を通知された時、それを下位階層ソフトウェアに通知する。ソフトウェアの処理内容によっては、ステップＳ261からステップＳ264の処理を行わず、ステップＳ265の処理、即ち、下位の階層のソフトウェアに異常の種類を通知する処理のみを行ってもよい。
【００４３】
図８を参照して本例の制御装置における不揮発メモリ40の他の例を説明する。本例では、不揮発メモリ40は、サイクリックに情報が書き込まれる記憶領域41を有する。ここでは、記憶領域41について説明する。図５を参照して説明したように、アクチュエータ駆動モジュール37は、上位階層ソフトウェア20によって指示された制御デューティからPWM制御パラメータ値を算出するものとする。異常情報記録モジュール38は、上位階層ソフトウェア20から呼び出されるが、それ以外に、オペレーティング・システムから一定の周期で呼び出される。異常情報記録モジュール38は、オペレーティング・システムから呼び出されると、センサ入力モジュール35が生成したセンサ値とアクチュエータ駆動モジュール37が生成したPWM制御パラメータを、順次、記憶領域41に記憶する。
【００４４】
異常情報記録モジュール38は、上位階層ソフトウェア20からセンサ値の異常低下の通知23を受けたときは、それ以後、記憶領域41への書き込みを停止する。従って、記憶領域41には、センサ値の異常低下の通知23が受信される直前までのPWM制御パラメータ値が保存される。後日、異常の分析を行なうとき、記憶領域41に保存されたPWM制御パラメータ値が参照される。
【００４５】
次に、本発明の制御装置の第２の例を説明する。本例の制御装置では、センサ110は、基板温度を測定する温度センサである。温度センサは基板に固定される。基板温度の観測は、例えば1秒間隔で行なわれる。即ち、センサ入力モジュール35は、1秒間隔でセンサ値の読み込み31を行う。制御装置が動作する温度範囲は、例えば、-40℃〜105℃とする。
【００４６】
本発明の制御装置の第２の例におけるセンサ値の異常診断方法の例を説明する。本例では、基板温度、即ち、センサ値の大きさと変化率の異常を検出する。先ず、センサ値の大きさの診断を説明する。下位階層ソフトウェア30はセンサ110からのセンサ値の上下限チェックを行なう。すなわち、基板温度が-40℃〜105℃内にあれば正常と判定し、基板温度が-40℃〜105℃外にあれば異常と判定する。センサ値が正常であるとき、センサ値報告モジュール36は、センサ値をそのまま、上位階層ソフトウェア20に報告する。センサ値が異常であるとき、センサ値報告モジュール36は、センサ値の代わりに、温度の上限値又は下限値を、上位階層ソフトウェア20に報告する。
【００４７】
次に、センサ値の変化率の診断を説明する。基板温度の観測を、1秒間隔で行う。温度の変化率の閾値を、例えば、5℃／秒であると設定する。上位階層ソフトウェア20は、基板温度の変化率が5℃／秒を超えた場合には、異常であると判定する。
【００４８】
上位階層ソフトウェア20は、センサ値の大きさと変化率の異常を検出すると、センサ値と変化率を不揮発メモリ40に書き込む。更に、上位階層ソフトウェア20は、下位階層ソフトウェア30にセンサ値が異常変化した旨の異常通知23を発行する。下位階層ソフトウェア30は、異常通知23を受信すると、センサ値と、センサ供給電源の電圧、同一のセンサ供給電源を共有する他のセンサのセンサ値を不揮発メモリ40に書き込む。
【００４９】
図９を参照して、本発明の制御装置の第２の例におけるセンサ値の異常診断方法の例を詳細に説明する。上位階層ソフトウェア20はオペレーティング・システムにより、１秒周期で起動されるものとする。上位階層ソフトウェア20が起動されると、下位階層ソフトウェア30にセンサ値の問合せ21ａを行なう。下位階層ソフトウェア30は、１秒周期でセンサ値の読み込み31を行う。
【００５０】
ステップＳ271にて、センサ入力モジュール35は、センサ110から基板温度を入力する。これを現在温度値とする。1秒前の時点での現在温度値を前回温度値として記憶するものとする。前回温度値は、基板温度モニタ機能が最初に起動されたときには存在しないものであり、前回温度値が存在するかどうかを示すデータとして前回温度値フラグを設ける。前回温度値フラグ＝ゼロは、前回温度値フラグが存在しないことを意味する。前回温度値フラグ＝１は、前回温度値フラグが存在することを意味する。即ち、前回温度値フラグは、前回温度値が記録されているかどうかの判定に参照される。マイコン初期化時には、前回温度値フラグをゼロに設定する。
【００５１】
ステップＳ272にて、現在温度値が105℃を超えたかどうかを判定する。現在温度値が105℃を超えた場合は、現在温度値は異常であると判定し、ステップＳ273に進み、現在温度値が105℃を超えていない場合は、現在温度値は異常でないと判定し、ステップＳ274に進む。ステップＳ273にて、現在温度値を不揮発メモリ40に記録し、ステップＳ278に進む。ステップＳ274にて、前回温度値フラグがゼロか否かを判定する。前回温度値フラグがゼロなら、前回温度値が保存されていないため、ステップＳ277に進む。前回温度値フラグがゼロでないなら、前回温度値が保存されているため、ステップＳ275に進む。
【００５２】
ステップＳ275にて、前回温度値と今回温度値との差が5℃を越えたかどうかを判定する。即ち、温度変化率が5℃／秒を超えたか否かを判定する。温度変化率が5℃／秒を超えた場合には、ステップＳ276に進み、温度変化率が5℃／秒を超えていない場合には、ステップＳ278に進む。ステップＳ276にて、不揮発メモリ40の記憶領域41に警告状態を記録してステップＳ278に進む。即ち、記憶領域41に温度変化率が5℃／秒を超えたことを記録する。
【００５３】
ステップＳ277にて、前回温度値フラグをゼロから1に変更して、ステップＳ278に進む。こうして、前回温度値フラグは、本例の異常診断処理が最初に起動されたときに1にセットされ、以後はマイコンが動作停止するまでその状態が続く。ステップＳ278にて、前回温度値を今回温度値に置き換える。
【００５４】
以上の処理により、例えば、基板温度が105℃を越えるという異常が検出されなかった場合でも、温度変化率が5℃／秒を越えたことが不揮発メモリ40の記憶領域41に保存されている。従って、後に、記憶領域41のデータを検査し、繰り返し、温度変化率が5℃／秒を越えたことが判れば、その原因を究明すればよい。例えば、温度変化率の異常が、他のセンサ値の変化率の異常と同時に観測された場合には、両者の関連性を疑うことができる。この場合、素子の性能低下、回路の間歇的な短絡、等が発生している可能性がある。
【００５５】
図９の各ステップＳ271〜278は、図８の制御装置の上位階層ソフトウェア20と下位階層ソフトウェア30のいずれによって実行してもよい。図９の各ステップＳ271〜278の一部を上位階層ソフトウェア20によって実行し、残りの一部を下位階層ソフトウェア30によって実行してもよい。
【００５６】
以上本発明の例を説明したが本発明は上述の例に限定されるものではなく、特許請求の範囲に記載された発明の範囲にて様々な変更が可能であることは、当業者によって容易に理解されよう。
【符号の説明】
【００５７】
10…制御装置、20…上位階層ソフトウェア、21ａ…センサ値の問合せ、21ｂ…センサ値の報告、22…動作指示、23…異常通知、30…下位階層ソフトウェア、31…センサ値の読み込み、32…制御命令、35…センサ入力モジュール、36…センサ値報告モジュール、37…アクチュエータ駆動モジュール、38…異常情報記録モジュール、40…不揮発メモリ、41…サイクリックメモリ、50…マイコン、110…センサ、120…アクチュエータ
【図１】
2010224680.tif 000003
【図２】
2010224680.tif 000004
【図３】
2010224680.tif 000005
【図４】
2010224680.tif 000006
【図５】
2010224680.tif 000007
【図６】
2010224680.tif 000008
【図７】
2010224680.tif 000009
【図８】
2010224680.tif 000010
【図９】
2010224680.tif 000011