(57)【要約】【課題】車両制御に係る演算処理負荷を軽減しつつ、安全性を確保することのできる車載制御装置を提供する。【解決手段】本発明に係る車載制御装置は、主演算部とその確認演算を実行する副演算部を備え、主演算部の入力または出力が正常であるか否かに基づき、副演算部の確認演算を実行するか否かを判定する。【選択図】図１
2011126327.tif 000002
【特許請求の範囲】
【請求項１】
車両の動作に関する制御演算を実行する主演算部と、
前記主演算部の動作を確認する確認演算を実行する副演算部と、
前記副演算部の確認演算の結果に基づき前記主演算部に異常が発生しているか否かを診断する診断部と、
を備え、
前記診断部は、
前記主演算部への入力値の前回値からの変化量または前記主演算部からの出力値の前回値からの変化量が所定範囲内にあるか否かに基づき、前記副演算部が確認演算を実行する必要があるか否かを判定する
ことを特徴とする車載制御装置。
【請求項２】
前記診断部は、
前記主演算部への入力値または前記主演算部からの出力値のうち少なくともいずれかを前回値と比較し、
前記出力値の前回値からの変化量が所定範囲内に収まる場合は、前記副演算部は確認演算を実行する必要はないと判定し、
前記出力値の前回値からの変化量が前記所定範囲内に収まらない場合は、前記副演算部は確認演算を実行する必要があると判定する
ことを特徴とする請求項１記載の車載制御装置。
【請求項３】
前記診断部は、
前記主演算部が前記出力値を出力する毎にその前回値と比較し、
前記出力値の前回値からの変化量が所定範囲内に収まる場合は、前記副演算部は確認演算を実行する必要はないと判定し、
前記出力値の前回値からの変化量が前記所定範囲内に収まらない場合は、前記副演算部は確認演算を実行する必要があると判定する
ことを特徴とする請求項１または請求項２記載の車載制御装置。
【請求項４】
前記診断部は、
前記主演算部への入力値と前記主演算部からの出力値の双方を前回値と比較し、
いずれか片方のみが前回値とは異なり、かつ前記出力値の前回値からの変化量が所定範囲内に収まる場合は、前記副演算部は確認演算を実行する必要はないと判定し、
前記出力値の前回値からの変化量が前記所定範囲内に収まらない場合は、前記副演算部は確認演算を実行する必要があると判定し、
双方の値が前回値とは異なる場合は、前記副演算部は確認演算を実行する必要があると判定する
ことを特徴とする請求項１から請求項３のいずれか１項に記載の車載制御装置。
【請求項５】
前記主演算部の出力値異常を検出する異常検出部を備え、
前記異常検出部は、
前記主演算部からの出力値が正常であるか否かを判定する閾値を前記車両の運転状態毎に設定し、
前記車両の運転状態とその運転状態に対応する前記閾値に基づき、前記主演算部に異常が発生しているか否かを検出する
ことを特徴とする請求項１から請求項４のいずれか１項に記載の車載制御装置。
【請求項６】
前記異常検出部は、
前記主演算部からの出力値が前記車両のいかなる運転状態においても発生し得ない値となったとき前記主演算部に異常が発生しているものと判定する
ことを特徴とする請求項１から請求項５のいずれか１項に記載の車載制御装置。
【請求項７】
前記副演算部は、
前記主演算部への入力値の前回値からの変化量または前記主演算部からの出力値の前回値からの変化量が所定範囲内にあるか否かによらず、少なくとも所定サイクル毎に必ず前記確認演算を実行する
ことを特徴とする請求項１から請求項６のいずれか１項に記載の車載制御装置。
【請求項８】
前記主演算部に異常が発生している旨を報知する報知部を備えたことを特徴とする請求項１から請求項７のいずれか１項に記載の車載制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載制御装置に関するものである。
【背景技術】
【０００２】
近年の車両制御システムは、市場要求、燃費向上、排気規制などの様々な要求により、プログラム量が増加する傾向にある。それに伴い、プログラム構成の複雑化による設計・プログラムミスに起因した故障が懸念されている。そのため、車両走行時の安全性を確保することがこれまで以上に重要視されている。
【０００３】
下記特許文献１では、走行中の挙動変化が運転者の意図したものであるかどうかを判定し、異常であればフェールセーフ処理を実行し、車両走行時の安全性を確保している。しかしながら、走行中による挙動変化ではなく、プログラムミスなどにより異常を発生する可能性もある。そこで一般的に知られている技術では、プログラムミスによる異常を検出するため、制御システムを２重冗長化して相互に演算結果を比較することにより、制御処理の品質を管理している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−６２９９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に車両制御の２重冗長系システムでは、車両制御に対する影響が大きい演算処理（例えばトルクを演算する処理）について、例えば異なるプログラム言語で作成された関数を用いて同じ演算処理を実行し、演算結果を相互に比較する。演算結果が相互に一致しない場合は異常が発生しているものとみなし、その機能ブロックについてフェールセーフ処理を実行して安全性を確保する。
【０００６】
したがって、車両制御の２重冗長系システムは、同一の演算処理を複数実行することになるので、演算負荷が大きくなり、演算装置の演算処理能力では処理しきれなくなる可能性がある。
【０００７】
本発明は、上記のような課題を解決するためになされたものであり、車両制御に係る演算処理負荷を軽減しつつ、安全性を確保することのできる車載制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る車載制御装置は、主演算部とその確認演算を実行する副演算部を備え、主演算部の入力または出力が正常であるか否かに基づき、副演算部の確認演算を実行するか否かを判定する。
【発明の効果】
【０００９】
本発明に係る車載制御装置によれば、副演算部は必ずしも確認演算を毎回実行するわけではなく、主演算部の処理が正常であると想定されるときは確認演算を実行しない。これにより、安全性を確保しつつ車載制御装置の演算処理負荷を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る車載制御装置１００の機能ブロック図である。
【図２】車載制御装置１００の１サイクル分の動作フローである。
【図３】実施の形態２における車載制御装置１００の動作フローである。
【図４】実施の形態３に係る車両制御装置１００の機能ブロック図である。
【図５】各異常検出部が主演算部の出力値の異常を検出する様子を示す図である。
【図６】車両の運転状態に併せて上限閾値と下限閾値を変化させる例を示す。
【図７】実施の形態３における車載制御装置１００の動作フローである。
【図８】主演算部と副演算部それぞれの処理の実行タイミングを示す図である。
【図９】実施の形態４における車載制御装置１００の動作フローである。
【発明を実施するための形態】
【００１１】
＜実施の形態１＞
図１は、本発明の実施の形態１に係る車載制御装置１００の機能ブロック図である。車載制御装置１００は、車両の動作に関する制御、例えばエンジン制御や通信制御などを実行する装置である。
【００１２】
車載制御装置１００は、主演算部Ｂ１１１、主演算部Ｃ１１２、主演算部Ｄ１１３、副演算部Ｂ’１２１、副演算部Ｃ’１２２、副演算部Ｄ’１２３、不整合診断部ＢＢ’１３１、不整合診断部ＣＣ’１３２、不整合診断部ＤＤ’１３３を備える。ここでは主演算部が３段構成となっている例を示したが、主演算部および副演算部の段数は任意でよい。また、必ずしも全ての主演算部に対して副演算部を設ける必要はなく、特に重要な制御演算についてのみ設けてもよい。
【００１３】
主演算部Ｂ１１１、主演算部Ｃ１１２、主演算部Ｄ１１３は、この順で直列的に接続されている。各主演算部は、車載制御装置１００の制御対象に係る制御演算を実行する。主演算部Ｂ１１１はパラメータＡを入力値として受け取り、以後の主演算部は前段の主演算部の出力値として受け取る。主演算部Ｄ１１３は、主演算部Ｃ１１２の出力値に加え、パラメータＥを入力値として受け取る。主演算部Ｄ１１３は、最終出力値としてパラメータＤを出力する。
【００１４】
副演算部Ｂ’１２１、副演算部Ｃ’１２２、副演算部Ｄ’１２３は、それぞれ対応する主演算部と同じ入力値を受け取り同じ制御演算を実行して主演算部の確認演算を行い、演算結果を対応する不整合診断部に出力する。ただし各副演算部は、対応する主演算部とは異なる手法で実装されている。例えば以下のような手法が考えられる。
（副演算部の実装手法その１）
主演算部と副演算部は、それぞれ異なる設計者が同じ制御処理について設計する。
（副演算部の実装手法その２）
主演算部と副演算部を、それぞれ異なる演算装置（マイコン、ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）上に実装する。
（副演算部の実装手法その３）
主演算部と副演算部は、それぞれ異なるプログラム言語を用いて実装する。
【００１５】
不整合診断部ＢＢ’１３１、不整合診断部ＣＣ’１３２、不整合診断部ＤＤ’１３３は、それぞれ対応する主演算部と副演算部の演算結果を受け取り、両者が一致するか否かにより、主演算部に異常が発生しているか否かを診断する。両者の差分が０、または所定閾値未満で実質的に０とみなせる場合には、主演算部は正常動作しているものとみなす。両者の差分が所定閾値以上であれば、主演算部または副演算部のいずれかに異常が発生しているものとみなす。
【００１６】
上述の各機能部は、これらの機能を実現する回路デバイスなどのハードウェアを用いて実現してもよいし、マイコンやＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置とその動作を規定するソフトウェアを用いて構成することもできる。また、複数の機能部を一体的に構成することもできる。例えば、主演算部Ｂ１１１と主演算部Ｃ１１２の機能を実装するプログラムを同一のメモリ装置上に格納してもよい。
【００１７】
以上、本実施の形態１に係る車載制御装置１００の構成を説明した。次に、副演算部の演算処理を低減する手法について説明する。
【００１８】
副演算部は、主演算部が実行した制御演算が正しいか否かを確認するための確認演算を実行する。したがって、主演算部が実行した制御演算が確実に正しいとみなすことができれば、副演算部の確認演算を実行する必要はない。車載制御装置１００は、このことを利用して演算負荷の低減を図る。下記図２を用いてその手順を説明する。
【００１９】
図２は、車載制御装置１００の１サイクル分の動作フローである。以下、図２の各ステップについて説明する。
【００２０】
（図２：ステップＳ２０１）
主演算部Ｂ１１１、主演算部Ｃ１１２、主演算部Ｄ１１３は、それぞれ規定の制御演算を実行する。
【００２１】
（図２：ステップＳ２０２）
不整合診断部ＢＢ’１３１は、入力値Ａ、出力値Ｂの前回値を適当なメモリなどに保持しておく。不整合診断部ＢＢ’１３１は、出力値Ｂとその前回値の差分が所定閾値以内に収まる場合は、主演算部Ｂ１１１が安定して動作しており、副演算部Ｂ’１２１の確認演算を行う必要がないと判断する。以後は後述のステップＳ２０３とＳ２０４をスキップしてステップＳ２０５へ進む。差分が所定閾値を超える場合は、ステップＳ２０３へ進む。なお、出力値Ｂとその前回値の差分が所定閾値以内に収まるか否かは、下記のいずれかにより判断することができる。
【００２２】
（図２：ステップＳ２０２：判断手法その１）
不整合診断部ＢＢ’１３１は、出力値Ｂそのものを前回値と比較する。今回値と前回値の差分値が所定閾値以内である場合は、副演算部Ｂ’１２１の確認演算を行う必要がないものと判断する。
【００２３】
（図２：ステップＳ２０２：判断手法その２）
不整合診断部ＢＢ’１３１は、入力値Ａを前回値と比較する。入力値Ａが前回値と近い値であれば、演算結果も前回値と近い値になると予想される。したがって不整合診断部ＢＢ’１３１は、入力値Ａの今回値と前回値の差分値が所定閾値以内である場合は、副演算部Ｂ’１２１の確認演算を行う必要がないものと判断する。
【００２４】
（図２：ステップＳ２０２：判断手法その３）
不整合診断部ＢＢ’１３１は、入力値Ａと出力値Ｂをともに前回値と比較する。いずれか一方のみが前回値とは異なり、かつ出力値Ｂの前回値からの差分値が所定範囲内に収まる場合、副演算部Ｂ’１２１の確認演算を行う必要がないものと判断する。双方の値が前回値とは異なる場合は、副演算部Ｂ’１２１の確認演算を行う必要があると判定する。
【００２５】
（図２：ステップＳ２０２：判断手法その１〜その３共通）
出力値Ｂの前回値からの差分値が所定範囲内に収まらない場合は、副演算部Ｂ’１２１の確認演算を行う必要があるものと判断する。
【００２６】
（図２：ステップＳ２０３）
副演算部Ｂ’１２１は、主演算部Ｂ１１１と同じ制御演算を実行し、演算結果を出力値Ｂ’として不整合診断部ＢＢ’１３１に出力する。
【００２７】
（図２：ステップＳ２０４）
不整合診断部ＢＢ’１３１は、主演算部Ｂ１１１の出力値Ｂと副演算部Ｂ’１２１の出力値Ｂ’が一致するか否か、または両者の差分が所定閾値未満であるか否かを判定する。両者が一致するかまたは差分が所定閾値未満である場合は、主演算部Ｂ１１１が正常動作しているものと判定し、ステップＳ２０５へ進む。両者が一致しないかまたは差分が所定閾値以上である場合は、ステップＳ２１１へ進む。
【００２８】
（図２：ステップＳ２０５〜Ｓ２０７）
主演算部Ｃ１１２および副演算部Ｃ’１２２は、これらのステップをステップＳ２０２〜Ｓ２０４と同様に実行する。
【００２９】
（図２：ステップＳ２０８〜Ｓ２１０）
主演算部Ｄ１１３および副演算部Ｄ’１２３は、これらのステップをステップＳ２０２〜Ｓ２０４と同様に実行する。ただしこれらの演算部には入力値が２つあるため、以下のいずれかのように処理する。
【００３０】
（図２：ステップＳ２０８〜Ｓ２１０：処理例その１）
入力値Ｃまたは入力値Ｅの少なくともいずれか一方とその前回値の差分値が所定範囲内に収まらない場合、副演算部Ｄ’の確認演算を行う必要があると判定する。出力値ＤについてはステップＳ２０２〜Ｓ２０４と同様とする。
【００３１】
（図２：ステップＳ２０８〜Ｓ２１０：処理例その２）
入力値Ｃまたは入力値Ｅの双方とそれぞれの前回値の差分値がともに所定範囲内に収まらない場合、副演算部Ｄ’の確認演算を行う必要があると判定する。いずれか一方のみの差分値が所定範囲内に収まらない場合は、副演算部Ｄ’の確認演算を行う必要はないと判定する。出力値ＤについてはステップＳ２０２〜Ｓ２０４と同様とする。
【００３２】
（図２：ステップＳ２１１）
異常が発生していると判定された主演算部、または主演算部に代わる代替演算部は、異常が発生していると判定された機能ブロックの機能を縮退してフェールセーフモードでその機能を実行する。例えば、不整合診断部ＢＢ’１３１が主演算部Ｂ１１１に異常が発生していると判定した場合、主演算部Ｂ１１１はその機能を縮退して異常が発生しない範囲で機能を実行する。
【００３３】
以上、車載制御装置１００の１サイクル分の動作フローを説明した。車載制御装置１００は、図２で説明した動作フローを、処理の内容に応じて、例えば数ｍｓ毎、数秒毎、などの単位で繰り返し実行する。
【００３４】
本実施の形態１において、主演算部の入力値および出力値が前回値から変化しているか否かを判定する閾値、および主演算部と副演算部の演算結果が一致しているか否かを判定する閾値は、各主演算部について同一としてもよいし、それぞれ異なる値としてもよい。また、前者の閾値と後者の閾値は、同じ値でもよいし異なる値でもよい。以下の実施形態でも同様である。
【００３５】
以上のように、本実施の形態１に係る車載制御装置１００は、主演算部の出力値が前回値と比較して所定範囲の差分以内に収まる場合は、副演算部の演算を実行しない。これにより、副演算部の演算負荷を低減しつつ、主演算部の信頼性を維持することができる。
【００３６】
また、本実施の形態１に係る車載制御装置１００は、副演算部が確認演算を行う必要があるか否かを判定する際に、主演算部の入力値の前回値からの変化量が所定範囲内に収まるか否かを基準とすることができる。これにより、主演算部の制御演算が完了する前に判定を並行処理して完了することができる。
【００３７】
また、本実施の形態１に係る車載制御装置１００は、副演算部が確認演算を行う必要があるか否かを判定する際に、主演算部の入力値と出力値の双方の変化量が前回値から所定範囲内に収まるか否かを基準とすることができる。これにより、出力値の変化量が所定範囲内に収まるか否かのみを基準とする場合よりも、より厳密な判定を行うことができる。例えば、入力値が前回値から大幅に変化しているが、主演算部の異常動作により演算結果が偶然前回値と同じ値になる可能性がある。出力値のみチェックしていると、このような異常動作を検出することが難しくなる。入力値と出力値を双方チェックすることにより、このようなチェック漏れを防ぐことができる。
【００３８】
＜実施の形態２＞
実施の形態１では、副演算部の処理を行うか否かを、主演算部毎に判定する例を説明した。一方、複数の主演算部の制御演算が密接に関連しているような場合には、これらの主演算はまとめて１つの制御演算を実行するとみなすことができる。したがって、副演算部の処理を行うか否かも、一体的に判定することができる。本発明の実施の形態２では、その１動作例を説明する。
【００３９】
図３は、本実施の形態２における車載制御装置１００の動作フローである。ここでは主演算部Ｂ１１１と主演算部Ｃ１１２が密接に関連しており、両者をまとめて１つの制御演算とみなすことができる場合の例を示した。以下、図３の各ステップについて説明する。
【００４０】
（図３：ステップＳ３０１）
本ステップは、図２のステップＳ２０１と同様である。
【００４１】
（図３：ステップＳ３０２）
不整合診断部ＣＣ’１３２は、出力値Ｃとその前回値の差分が所定閾値以内に収まる場合は、主演算部Ｂ１１１および主演算部Ｃ１１２が安定して動作しており、副演算部Ｂ’１２１および副演算部Ｃ’１２２の確認演算を行う必要がないと判断する。以後は、ステップＳ３０３〜Ｓ３０６をスキップし、出力値Ｄの変化をチェックするステップ（ステップＳ３０７）へ進む。
【００４２】
（図３：ステップＳ３０３〜Ｓ３０６）
これらのステップは、図２のステップＳ２０３〜Ｓ２０４、Ｓ２０６〜Ｓ２０７と同様である。
【００４３】
（図３：ステップＳ３０７〜Ｓ３１０）
これらのステップは、図２のステップＳ２０８〜Ｓ２１１と同様である。
【００４４】
以上、本実施の形態２における車載制御装置１００の１サイクル分の動作フローを説明した。図３では、主演算部Ｂ１１１と主演算部Ｃ１１２を一体的に取り扱う例を説明したが、連続する２以上の主演算部の制御演算が密接に関連している場合は、その他の主演算部の組み合わせについても同様に取り扱うことができる。
【００４５】
以上のように、本実施の形態２によれば、連続する２以上の主演算部の制御演算が密接に関連している場合は、副演算部の処理を実行するか否かの判定をまとめて行うことができる。これにより、実施の形態１と同様の効果に加え、出力値Ｃの変化量をチェックするステップ（図２のステップＳ２０５）を省略して演算負荷をさらに低減することができる。
【００４６】
また、本実施の形態２によれば、図２のステップＳ２０２に相当する処理を省略し、出力値Ｃの変化量のみをチェックするのみで足りるので、その分の演算負荷を低減することができる。
【００４７】
＜実施の形態３＞
以上の実施の形態１〜２において、主演算部と副演算部の演算結果が一致していても、主演算部の出力値が異常である場合もある。例えば、主演算部の演算自体は正常に行われたとしても、車両の外部環境などからの影響により、本来出力されるべきでない出力値が出力される、などの場合が考えられる。
【００４８】
そこで、本発明の実施の形態３では、実施の形態１〜２で説明した手法に加え、各主演算部の出力値の異常を、副演算部の演算結果と合致するか否か以外の観点で検出する手法を説明する。
【００４９】
図４は、本実施の形態３に係る車両制御装置１００の機能ブロック図である。実施の形態１〜２の構成に加え、新たに異常検出部Ｂ１４１、異常検出部Ｃ１４２、異常検出部Ｄ１４３を備える。異常検出部Ｂ１４１は主演算部Ｂ１１１に、異常検出部Ｃ１４２は主演算部Ｃ１１２に、異常検出部Ｄ１４３は主演算部Ｄ１１３に、それぞれ対応する。
【００５０】
各異常検出部は、対応する主演算部の出力値を受け取り、後述の図５〜図６で説明する手法を用いて、副演算部とは別の観点から異常検出処理を行う。副演算部とは別に異常検出を行うのは、上述の通り副演算部では検出できない異常を検出するためである。
【００５１】
異常検出部Ｂ１４１、異常検出部Ｃ１４２、異常検出部Ｄ１４３は、これらの機能を実現する回路デバイスなどのハードウェアを用いて実現してもよいし、マイコンやＣＰＵなどの演算装置とその動作を規定するソフトウェアを用いて構成することもできる。また、いずれか複数を他の機能部と一体的に構成することもできる。
【００５２】
図５は、各異常検出部が主演算部の出力値の異常を検出する様子を示す図である。主演算部の演算結果は、車両が運転動作を開始した以後、運転状態が例えば「加速中」「定速運転」「減速中」「停止状態」などのように変化するにともない、経時変化する。図５の「出力値」は、主演算部の出力値の経時変化を示す。
【００５３】
実際の車両では、主演算部の出力値として通常はあり得ない値範囲が存在する。例えば、エンジン温度が許容範囲を超えて上昇した場合は、明らかに何らかの異常が発生していると考えられる。そこで異常検出部は、主演算部の出力値の上限閾値または下限閾値の少なくともいずれか一方を設定し、主演算部の出力値がこれらの範囲外に達したときは、主演算部に異常が発生しているものとみなす。以下、図５の各区間について説明する。
【００５４】
（図５：（１）出力値変化）
図５の区間（１）では、主演算部の出力値が上限閾値と下限閾値の範囲内にあるので、異常検出部は主演算部が正常に動作しているものとみなす。一方、主演算部の出力値は大きく経時変化しているので、副演算部および不整合診断部の処理は必要である。主演算部と副演算部の演算結果が一致しない場合、フェールセーフ処理が実行される。
【００５５】
（図５：（２）出力値固定）
図５の区間（２）では、主演算部の出力値が上限閾値と下限閾値の範囲内にあるので、異常検出部は主演算部が正常に動作しているものとみなす。一方、主演算部の出力値は略一定であるため、主演算部は安定して動作しているものとみなされ、副演算部の処理は必要ない。フェールセーフ処理も同様に必要ない。
【００５６】
（図５：（３）出力値範囲外）
図５の区間（３）では、主演算部の出力値が上限閾値を超えているため、異常検出部は主演算部に異常が発生しているものとみなす。この場合、副演算部の処理は実行する必要はない。不整合診断部は、診断結果がＮＧであると判定する。また、フェールセーフ処理が実行される。
【００５７】
図６は、車両の運転状態に併せて上限閾値と下限閾値を変化させる例を示す。図５では車両の運転状態の変化によらず上限閾値と下限閾値を一定としたが、実際の車両では運転状態によって主演算部の出力値が取り得る範囲が変化する。そこで図６では、運転状態の変化に併せて上限閾値と下限閾値を変化させることとした。
【００５８】
図６の場合、異常検出部は、対応する主演算部の出力値に加えて、車両の運転状態を入力として受け取る。異常検出部は、受け取った運転状態に合わせて上限閾値と下限閾値の少なくともいずれかを変化させる。その他の処理は図５と同様である。異常検出部は、図５または図６いずれの手法を用いることもできる。
【００５９】
図５〜図６で説明した上限閾値および下限閾値、さらには運転状態との対応関係については、例えばあらかじめこれらの値および対応関係を適当なメモリ装置などに格納しておき、これを適宜参照するようにすればよい。
【００６０】
図７は、本実施の形態３における車載制御装置１００の動作フローである。以下、図７の各ステップについて説明する。
【００６１】
（図７：ステップＳ７０１）
主演算部Ｂ１１１は、入力値Ａを用いて制御演算を実行し、出力値Ｂを出力する。
【００６２】
（図７：ステップＳ７０２）
異常検出部Ｂ１４１は、出力値Ｂが図４〜図５で説明した上限閾値と下限閾値の間にあるか否かを判定する。必要に応じて車両の運転状態をあらかじめ受け取っておく。出力値Ｂが上限閾値と下限閾値の間にあればステップＳ７０３へ進み、間になければステップＳ７０８へ進む。
【００６３】
（図７：ステップＳ７０３〜Ｓ７０６）
主演算部Ｃ１１２、異常検出部Ｃ１４２、主演算部Ｄ１１３、異常検出部Ｄ１４３は、ステップＳ７０１〜Ｓ７０２と同様の処理を実行する。
【００６４】
（図７：ステップＳ７０７）
以後の処理は、図２のステップＳ２０２以降、または図３のステップＳ３０２以降と同様である。
【００６５】
（図７：ステップＳ７０８）
本ステップは、図２のステップＳ２１１と同様である。
【００６６】
以上、本実施の形態３における車載制御装置１００の１サイクル分の動作フローを説明した。図４では、主演算部ごとに異常検出部を設けた例を示したが、必ずしも全ての主演算部に異常検出部を設ける必要はない。
【００６７】
以上のように、本実施の形態３によれば、主演算部の出力値が異常であるにも関わらず主演算部と副演算部の演算結果が一致している場合でも、異常検出部は主演算部の出力値が上限閾値と下限閾値の間にあるか否かにより異常検出する。すなわち、副演算部の演算結果によらず主演算部の異常を検出することができる。これにより、主演算部に発生する異常の検出精度を向上させることができる。
【００６８】
また、本実施の形態３において、異常検出部は、車両の運転状態に応じて主演算部の異常動作判定を行うための上限閾値と下限閾値を変更することができる。これにより、運転状態毎に最適化した異常検出処理を実行することができる。
【００６９】
＜実施の形態４＞
実施の形態１〜３では、主演算部の入力値または出力値が略一定であれば、副演算部および不整合診断部の処理を実行しないことを説明した。しかし、副演算部および不整合診断部の処理を実行しない間に、これら各部の機能が正常動作しなくなっている可能性がある。例えば、各部の機能を実現するプログラムを格納したメモリ装置の故障、各部が演算過程で使用するメモリ装置上のデータ異常、などが考えられる。
【００７０】
そこで本発明の実施の形態４では、主演算部の入力値と出力値によらず、例えば所定間隔毎に副演算部の処理を実行し、上記のような状況を回避する動作例を説明する。その他の構成は、実施の形態１〜３いずれかと同様であるため、以下では差異点を中心に説明する。
【００７１】
図８は、主演算部と副演算部それぞれの処理の実行タイミングを示す図である。図８における演算タイミングとは、主演算部Ｂ１１１〜主演算部Ｄ１１３までの一連の制御演算を開始するタイミングのことであり、図２、図３、図７のいずれかに示した動作フロー１回分の処理を開始するタイミングに相当する。
【００７２】
図８において、全ての主演算部は演算タイミング毎に必ず制御演算を実行するが、副演算部については、演算タイミング毎にいずれか１の副演算部のみが確認演算を実行する。次の演算タイミングでは別の副演算部が確認演算を実行し、一巡すれば最初の順番に戻って同様に繰り返す。図８に示す演算タイミングによれば、副演算部の確認演算は３回の演算タイミング毎に必ず実行されることになる。
【００７３】
図９は、本実施の形態４における車載制御装置１００の動作フローである。以下、図９の各ステップについて説明する。
【００７４】
（図９：ステップＳ９０１）
本ステップは、図２のステップＳ２０２以降、または図３のステップＳ３０２以降と同様である。
【００７５】
（図９：ステップＳ９０２）
副演算部Ｂ’１２１は、ＣＮＴの値と、ステップＳ９０１において副演算部Ｂ’１２１の確認演算を実行したか否かを確認する。ＣＮＴ＝０かつ副演算部Ｂ’１２１の確認演算を未実施であればステップＳ９０３へ進み、それ以外であればステップＳ９０５へ進む。
【００７６】
（図９：ステップＳ９０２：補足）
実施の形態１で説明したように、主演算部の入力値または出力値が略一定であれば、副演算部Ｂ’１２１の確認演算は省略される。そのため、ステップＳ９０１において必ずしも副演算部Ｂ’１２１の処理は実行されるわけではない。本ステップは、そのような状態が長く続かないようにチェックする意義がある。ただし図８で説明したように、副演算部の処理を実行する順番を巡回させるため、巡回カウンタＣＮＴの値も併せてチェックし、副演算部Ｂ’１２１の順番でなければ確認演算は行わない。
【００７７】
（図９：ステップＳ９０３）
副演算部Ｂ’１２１は、主演算部Ｂ１１１の確認演算を実行する。
【００７８】
（図９：ステップＳ９０４）
不整合診断部ＢＢ’１３１は、主演算部Ｂ１１１の演算結果と副演算部Ｂ’１２１の演算結果を比較する。両者が一致すればステップＳ９１２へ進み、一致しなければステップＳ９１１へ進む。
【００７９】
（図９：ステップＳ９０５〜Ｓ９０７）
これらのステップでは、副演算部Ｃ’１２２と不整合診断部ＣＣ’１３２は、ステップＳ９０２〜Ｓ９０４と同様の処理を実行する。
【００８０】
（図９：ステップＳ９０８〜Ｓ９１０）
これらのステップでは、副演算部Ｄ’１２３と不整合診断部ＤＤ’１３３は、ステップＳ９０２〜Ｓ９０４と同様の処理を実行する。
【００８１】
（図９：ステップＳ９１１）
本ステップは、図２のステップＳ２１１と同様である。
（図９：ステップＳ９１２）
直前に確認演算を実行した副演算部は、巡回カウンタＣＮＴの値を１増やし、３の剰余を取る。これにより、ＣＮＴの値は０〜２の間で１ずつ増加しながら巡回する。
【００８２】
以上、本実施の形態４における車載制御装置１００の１サイクル分の動作フローを説明した。
【００８３】
図９で説明した動作フローでは、実施の形態１〜３と比較して副演算部および不整合診断部の処理回数が増加するため、演算負荷は増加することになる。したがって、車載制御装置１００に求められる信頼性と演算性能のバランスを取り、いずれの手法を用いるか適宜選択することが望ましい。
【００８４】
あるいは、例えば副演算部Ｂ’１２１と副演算部Ｃ’１２２についてのみ図８のように巡回実行して副演算部Ｄ’１２３については実施の形態１〜３のように実行するなど、各実施形態の手法を適宜組み合わせることもできる。
【００８５】
なお、本実施の形態４では、副演算部の演算タイミングを巡回させる例を説明したが、必ずしも規則的に巡回させなくともよい。例えば確認演算を実行させる副演算部をランダムに選択する、などの手法が考えられる。ただし、副演算部の動作確認を行う観点では、少なくとも所定周期ごとに各副演算部の確認演算が必ず実行されるようにしておくことが望ましい。
【００８６】
以上のように、本実施の形態４に係る車載制御装置１００は、副演算部の確認演算を所定演算タイミング間隔で強制的に実行する。これにより、副演算部の処理が実行されない間に故障などが発生して発見が遅れる事態を防ぎ、車載制御装置１００の信頼性を向上させることができる。
【００８７】
＜実施の形態５＞
以上の実施の形態１〜４において、車載制御装置１００は、いずれかの主演算部に故障などの異常が発生した際にその旨を報知する報知部を備えることもできる。例えば、異常が発生した旨を通知する信号を車載制御装置１００の上位装置や上位アプリケーションに対して出力する、車載制御装置１００自身が報知音を出力する、などの具体的構成が考えられる。また、いずれの主演算部が故障したかなど、より詳細なエラー情報を報知部が提供するようにしてもよい。
【００８８】
さらに、その報知を受け取った車両側において、例えば運転席の非常ランプを点灯させるなどして、運転者に異常発生の旨を報知するようにしてもよい。
【符号の説明】
【００８９】
１００：車載制御装置、１１１：主演算部Ｂ、１１２：主演算部Ｃ、１１３：主演算部Ｄ、１２１：副演算部Ｂ’、１２２：副演算部Ｃ’、１２３：副演算部Ｄ’、１３１：不整合診断部ＢＢ’、 １３２：不整合診断部ＣＣ’、 １３３：不整合診断部ＤＤ’、１４１：異常検出部Ｂ、１４２：異常検出部Ｃ、１４３：異常検出部Ｄ。
【図１】
2011126327.tif 000003
【図２】
2011126327.tif 000004
【図３】
2011126327.tif 000005
【図４】
2011126327.tif 000006
【図５】
2011126327.tif 000007
【図６】
2011126327.tif 000008
【図７】
2011126327.tif 000009
【図８】
2011126327.tif 000010
【図９】
2011126327.tif 000011