(57)【特許請求の範囲】
【請求項１】
車両の駆動装置に出力する制御信号を切り替える切り替え部と、
前記切り替え部に第一の制御信号を出力する第一制御指令部と、
前記切り替え部に第二の制御信号を出力する第二制御指令部と、
前記第一制御指令部の故障の度合いを判定し、前記故障の度合いが予め定めた故障確定度合い以上の場合は前記故障を確定し、前記故障の度合いに応じて前記第二制御指令部の制御速度を変更し、前記故障を確定した場合は前記切り替え部の出力を前記第一の制御信号から前記第二の制御信号に切り替える故障判定部と、を備えた車両制御装置。
【請求項２】
前記故障判定部は、前記第一制御指令部の故障回数を検出し、前記故障回数に応じて前記故障の度合いを判定し、前記故障回数が予め定めた故障確定回数以上の場合に前記故障を確定する、請求項１に記載の車両制御装置。
【請求項３】
前記故障判定部は、前記故障の度合いが予め定めた判定度合い以下の場合は前記第二制御指令部の前記制御速度を低速にし、前記故障の度合いが前記判定度合いよりも大きい場合は前記第二制御指令部の前記制御速度を高速にする請求項１または２に記載の車両制御装置。
【請求項４】
前記故障判定部は、前記故障の度合いに応じて前記第二制御指令部の制御の実行間隔を変更する請求項１から３のいずれか一項に記載の車両制御装置。
【請求項５】
前記故障判定部は、前記故障の度合いが予め定めた第二の判定度合い以下の場合は前記第二制御指令部の前記制御の実行間隔を延伸し、前記故障の度合いが前記第二の判定度合いよりも大きい場合は前記第二制御指令部の前記制御の実行間隔を短縮する請求項４に記載の車両制御装置。
【請求項６】
前記故障判定部は、前記故障の度合いに応じて前記第二制御指令部の実行する機能を選択する請求項１から５のいずれか一項に記載の車両制御装置。
【請求項７】
前記故障判定部は、前記故障の度合いが予め定めた第三の判定度合い以下の場合は前記第二制御指令部の高優先度の機能の制御のみを実行し、前記故障の度合いが前記第三の判定度合いよりも大きい場合は前記第二制御指令部の前記高優先度の機能に加えて低優先度の機能の制御を実行する請求項６に記載の車両制御装置。
【請求項８】
車両の駆動装置に出力する制御信号を切り替える切り替え部と、
演算した第一の制御量を記憶部に格納し、前記第一の制御量に基づいて決定した第一の制御信号を前記切り替え部に出力する第一制御指令部と、
演算した第二の制御量を記憶部に格納し、前記第二の制御量に基づいて決定した第二の制御信号を前記切り替え部に出力する第二制御指令部と、
前記記憶部に格納された前記第一の制御量と前記第二の制御量との差分を算出し、前記差分の大きさに応じて前記第二制御指令部の制御速度を変更し、さらに前記第一制御指令部の故障を検出し、検出した値が予め定めた故障確定値以上の場合は前記故障を確定し、前記故障を確定した場合は前記切り替え部の出力を前記第一の制御信号から前記第二の制御信号に切り替える故障判定部と、を備えた車両制御装置。
【請求項９】
前記故障判定部は、前記差分が予め定めた判定差分以下の場合は前記第二制御指令部の制御速度を低速にし、前記差分が前記判定差分よりも大きい場合は前記第二制御指令部の制御速度を高速にする請求項８に記載の車両制御装置。
【請求項１０】
前記故障判定部は、前記差分の大きさに応じて前記第二制御指令部の制御の実行間隔を変更する請求項８または９に記載の車両制御装置。
【請求項１１】
前記故障判定部は、前記差分が予め定めた第二の判定差分以下の場合は前記第二制御指令部の制御の実行間隔を延伸し、前記差分が前記第二の判定差分よりも大きい場合は前記第二制御指令部の制御の実行間隔を短縮する請求項１０に記載の車両制御装置。
【請求項１２】
前記故障判定部は、前記差分の大きさに応じて前記第二制御指令部の実行する機能を選択する請求項８から１１のいずれか一項に記載の車両制御装置。
【請求項１３】
前記故障判定部は、前記差分が予め定めた第三の判定差分以下の場合は前記第二制御指令部の高優先度の機能の制御のみを実行し、前記差分が前記第三の判定差分よりも大きい場合は前記第二制御指令部の高優先度の機能に加えて低優先度の機能の制御を実行する請求項１２に記載の車両制御装置。
【請求項１４】
前記故障判定部は、前記差分が予め定めた実行開始判定値よりも大きい場合は前記第二制御指令部の制御を実行し、前記差分が予め定めた実行停止判定値以下の場合は前記第二制御指令部の制御を中止する請求項８から１３のいずれか一項に記載の車両制御装置。
【請求項１５】
前記故障判定部は、前記実行開始判定値が前記実行停止判定値よりも大きな値に設定された請求項１４に記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、車両制御装置に関するものである。
【背景技術】
【０００２】
近年、未然に事故を防ぎ、運転者の運転の負荷を軽減する目的でＡＤＡＳ（Ａｄｖａｎｃｅｄ  Ｄｒｉｖｅｒ−Ａｓｓｉｓｔａｎｃｅ  Ｓｙｓｔｅｍｓ）または自動運転システムを搭載する車両が開発されている。これらのシステムを実現する車両制御装置は、車両に取り付けられたセンサ、車両の周辺の交通および道路状況をセンシングする装置、ナビゲーション装置の入力などから情報を入力する。車両制御装置は入力した情報に基づいて、車両の衝突、破損につながる可能性が生じたときに運転手に警告音で操作の必要性を知らせる。または、車両制御装置は歩行者、他の車両、障害物との衝突を回避するために緊急にブレーキを実行させる。あるいは、車両制御装置は運転者の運転の負担の軽減をするために特定の環境下で車両が目的地まで到着できるように自動で車両の運転制御を行う。車両制御装置は、ブレーキ制御装置、ステアリング制御装置、トルク出力制御装置などの駆動装置に制御指令信号を伝達し車両の制御を実行する。
【０００３】
一方で、車両の走行中に車両制御装置が故障した場合、運転手に衝突の可能性を知らせ、衝突を回避するための緊急ブレーキを実行するといった機能が実行されず、大きな問題となることが考えられる。また、車両制御装置の故障によって車両の自動運転制御が実行されず、目的地に到着できなくなる場合も考えられる。さらに、車両制御装置の故障によって、車両の駆動装置に対して出力していた制御指令信号が急変して車両が不安定となる事態も考えられる。
【０００４】
ＡＤＡＳ、自動運転システムの車両制御装置において、制御指令信号を算出する第一の制御指令部と、算出した制御指令信号を出力する第一の通信回路を備え、第一の制御指令部が故障したときに備えて、並行して制御指令信号を算出するための第二の制御指令部と、並行して算出した制御指令信号を出力する第二の通信回路を設けた車両制御装置が存在する。第一の制御指令部が故障した場合は第二の制御指令部で算出した制御指令信号を第二の通信回路を介して出力する装置が提案されている。（例えば特許文献１）
【０００５】
また、同様に、第一の制御指令部と、第二の制御指令部とを設けた車両制御装置において、第一の制御指令部が故障した場合の別の対応が提案されている。同期信号により第一の制御指令部と第二の制御指令部を同期させた状態で第一の制御指令部で演算した制御指令信号と第二の制御指令部で演算した制御指令信号とを比較することにより第一の制御指令部の故障判定を行い、第一の制御指令部が故障したと判定されたときに制御指令信号をスムーズに第二の制御指令部で演算された制御指令信号に切り替えることが提案されている。（例えば特許文献２）
【０００６】
ＡＤＡＳ、自動運転システムの車両制御装置において、高度で複雑な制御に係る演算処理を実行するために、演算処理部に演算処理性能の異なるプロセッサコア（以下コアと記述する）を複数もつＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）を採用する事例が出てきている。複数のコアを使用することで一度にたくさんの演算処理を行えるメリットがある反面、演算処理の実行状況に応じて多くの消費電力を使用するデメリットが存在する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１８／０３００３２号
【特許文献２】国際公開第２０１８／１１０１２４号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１と特許文献２の技術では、第一の制御指令部が正常に演算を実行している間も並行して第二の制御指令部の演算の実行が必要である。このため、第一の制御指令部のみの演算を実行させる場合と比較して、第二の制御指令部の演算を実行させる分消費電力が増大する。特に特許文献２の技術は、制御指令信号の急激な変動を抑えながら制御指令信号の切り替えを行う目的には望ましい技術であるが、第一の制御指令部と第二の制御指令部が同期を取って常に稼働しているので、電力消費が大きい問題を有する。車両を駆動するために必要な電力源をバッテリに依存する電動車両の場合、消費電力の増加はバッテリ残量の低下につながり走行可能距離に影響を及ぼす。消費電力の増大は、バッテリの残量不足を招き、目的地に到達できずに車両が走行不能に陥るなど運転者にとって重大な問題を引き起こす可能性がある。
【０００９】
本願は、上記のような課題を解決するためになされたものであり、消費電力を抑制しつつ、第一の制御指令部の故障確定時に制御指令信号の急激な変動を抑えながら第二の制御指令部による制御指令信号の出力に切り替える車両制御装置を得ることを目的とするものである。
【課題を解決するための手段】
【００１０】
本願に係る車両制御装置は、
車両の駆動装置に出力する制御信号を切り替える切り替え部と、
切り替え部に第一の制御信号を出力する第一制御指令部と、
切り替え部に第二の制御信号を出力する第二制御指令部と、
第一制御指令部の故障の度合いを判定し、故障の度合いが予め定めた故障確定度合い以上の場合は故障を確定し、故障の度合いに応じて第二制御指令部の制御速度を変更し、故障を確定した場合は切り替え部の出力を第一の制御信号から第二の制御信号に切り替える故障判定部と、を備えたものである。
【発明の効果】
【００１１】
本願に係る車両制御装置によれば、消費電力を抑制しつつ、第一の制御指令部の故障確定時に制御指令信号の急激な変動を抑えながら第二の制御指令部による制御指令信号の出力に切り替えることができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係る自動運転システムの構成図である。
【図２】実施の形態１に係る車両制御装置のハードウェア構成図である。
【図３】実施の形態１に係る車両制御装置の機能を示す構成図である。
【図４】実施の形態１に係る車両制御装置の故障対応処理を示すフローチャートである。
【図５】実施の形態１に係る車両制御装置の故障対応動作を示すタイムチャートである。
【図６】実施の形態２に係る車両制御装置の故障対応処理を示すフローチャートである。
【図７】実施の形態２に係る車両制御装置の故障対応動作を示すタイムチャートである。
【図８】実施の形態３に係る車両制御装置の故障対応処理を示す第一のフローチャートである。
【図９】実施の形態３に係る車両制御装置の故障対応処理を示す第二のフローチャートである。
【図１０】実施の形態３に係る車両制御装置の故障対応動作を示すタイムチャートである。
【図１１】実施の形態４に係る車両制御装置の故障対応処理を示す第一のフローチャートである。
【図１２】実施の形態４に係る車両制御装置の故障対応処理を示す第二のフローチャートである。
【図１３】実施の形態４に係る車両制御装置の故障対応動作を示すタイムチャートである。
【図１４】実施の形態５に係る車両制御装置の故障対応処理を示す第一のフローチャートである。
【図１５】実施の形態５に係る車両制御装置の故障対応処理を示す第二のフローチャートである。
【図１６】実施の形態５に係る車両制御装置の故障対応動作を示すタイムチャートである。
【発明を実施するための形態】
【００１３】
以下、本願に係る車両制御装置の実施の形態について、図面を参照して説明する。
【００１４】
１．実施の形態１
１−１．自動運転システム
図１は、実施の形態１に係る自動運転システム１の構成を説明する図である。ＡＤＡＳに適用する場合も同様の図で説明できるが、ここでは例示的に自動運転システム１への応用の場合を示すこととする。図１の自動運転システム１では、外界センシング装置１１０、ＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）１２０、ナビゲーション装置１３０、および車両センサ１４０が車両制御装置１５０に接続され入力情報を伝達する。車両制御装置１５０は、電源を供給するバッテリ１９０に接続され、さらにステアリング制御装置１７０、ブレーキ制御装置１６０、およびトルク出力制御装置１８０からなる駆動装置に接続され、制御信号を出力する。
【００１５】
外界センシング装置１１０は、カメラ１１１と、レーダ（Ｒａｄａｒ）１１２と、ライダ（ＬＩＤＡＲ）１１３と、を備える。カメラ１１１は、自車両の任意の箇所に少なくとも一つ設けられ、自車両の周囲を撮像して画像情報を取得する。カメラ１１１は、単眼カメラまたはステレオカメラであり、例えばＣＣＤ（Ｃｈａｒｇｅ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）等の固体撮像素子を利用したデジタルカメラが用いられる。レーダ１１２は、自車両の任意の箇所に少なくとも一つ設けられ、自車両の周囲に存在する物体の位置（距離及び方位）を検出する。具体的には、レーダ１１２は、車両の周囲にミリ波等の電磁波を照射し、照射された電磁波が物体によって反射された反射波を検出することで、物体の位置を検出する。
【００１６】
ライダ１１３は、自車両の任意の箇所に少なくとも一つ設けられ、自車両の周囲に存在する物体の位置（距離及び方位）および性質を検出する。具体的には、ライダ１１３は、車両の周囲にミリ波よりも短波長の電磁波（紫外光、可視光、近赤外光等の電磁波）をパルス状に照射し、照射された電磁波が物体によって散乱された散乱波を検出することで、レーダ１１２よりも遠距離に存在する物体の位置及び性質を検出する。外界センシング装置１１０は、センサフュージョン技術によって、上述のカメラ１１１、レーダ１１２及びライダ１１３等で取得された各情報を総合的に評価し、より正確な情報を後述する車両制御装置１５０に出力する。
【００１７】
ＨＭＩ１２０は、運転者等に各種情報を提示するとともに、運転者等による入力操作を受け付けるインターフェースである。ＨＭＩ１２０は、例えば、いずれも図示しない表示装置、シートベルト装置、ハンドルタッチセンサ、ドライバモニタカメラ、各種操作スイッチ等を備える。
【００１８】
ＨＭＩ１２０の表示装置は、例えば画像を表示するとともに運転者等による操作を受け付けるタッチパネル式表示装置である。シートベルト装置は、例えばシートベルトプリテンショナーを含んで構成され、例えば車両に保安上の問題が生じたときに、シートベルトを振動させて運転者に報知、警告する。ハンドルタッチセンサは、車両のステアリングホイールに設けられ、ステアリングホイールに対する運転者の接触及び運転者がステアリングホイールを握る圧力を検出する。ドライバモニタカメラは、運転者の顔及び上半身を撮像する。各種操作スイッチは、例えば自動運転の開始及び停止を指示するＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）式または機械式の自動運転切替スイッチ等を含んで構成される。また、ＨＭＩ１２０は、外部との通信機能を有する各種通信装置を含んでいてもよい。
【００１９】
ナビゲーション装置１３０は、運転者等がナビゲーション装置１３０を利用するための表示装置、スピーカ、操作スイッチ等を、上述のＨＭＩ１２０内に備える。ナビゲーション装置１３０は、ＧＮＳＳ（Ｇｌｏｂａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ  Ｓｙｓｔｅｍ）衛星からの受信信号に基づいて、車両の位置を特定する。ただし、後述する車両センサ１４０からの取得情報により、車両の位置を特定してもよい。
【００２０】
ナビゲーション装置１３０は、例えばＧＮＳＳ衛星からの受信信号により特定された自車両の位置から、運転者等により入力された目的地までの経路を、ナビゲーション装置１３０内に記憶された地図情報を参照して決定する。このナビゲーション装置１３０により決定された経路は、上述のＨＭＩ１２０内の表示装置、スピーカ等により運転者等に経路案内される。
【００２１】
ナビゲーション装置１３０の高精度な地図情報としては、例えば、道路の種別、道路の車線数、非常駐車帯の位置、車線の幅員、道路の勾配、道路の位置、車線カーブの曲率、車線の合流及び分岐ポイント位置、道路標識等の情報、交差点の位置情報、信号機の有無情報、停止線の位置情報、渋滞情報、他車情報等が含まれる。
【００２２】
なお、ナビゲーション装置１３０は、例えば、スマートフォン、タブレット端末等の端末装置により構成されてもよい。また、ナビゲーション装置１３０は、いずれも図示しない各種セルラー網、車載専用通信ユニットＴＣＵ（Ｔｅｌｅｍａｔｉｃｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｔ）等を備え、クラウドサーバ等との間で送受信可能となっている。これにより、車両位置情報等が外部に送信される他、上述の地図情報が随時更新される。
【００２３】
車両センサ１４０は、自車両の各種挙動を検出するための複数のセンサを備える。例えば、車両センサ１４０は、自車両の速度（車速）を検出する車速センサ、自車両の各車輪の速度を検出する車輪速センサ、自車両の加減速度を検出する前後加速度センサ、自車両の横加速度を検出する横加速度センサ、自車両のヨーレートを検出するヨーレートセンサ、自車両の向きを検出する方位センサ、および、自車両の勾配を検出する勾配センサ等を備える。
【００２４】
また、車両センサ１４０は、各種操作デバイスの操作量を検出する複数のセンサを備える。例えば、車両センサ１４０は、アクセルペダルの踏込（開度）量を検出するアクセルペダルセンサ、ステアリングホイールの操作量（操舵角）を検出する舵角センサ、操舵トルクを検出するトルクセンサ、ブレーキペダルの踏込量を検出するブレーキペダルセンサ、シフトレバーの位置を検出するシフトセンサ、および、後述のステアリング制御装置１７０の転舵機構が車輪（転舵輪）を駆動制御した角度（即ち転舵角）を示す量（例えば、ラックストローク量）を検出する転舵角センサ等を備える。
【００２５】
車両制御装置１５０は、外界センシング装置１１０とＨＭＩ１２０とナビゲーション装置１３０と車両センサ１４０の情報を入力とし、車両の走行状態と運転者の状態と周辺状況を認知し、車両のステアリング制御装置１７０、ブレーキ制御装置１６０、トルク出力制御装置１８０等の駆動装置に対して制御指示を行う。例えば、道路上の車線をカメラで認識して自車の走行車線を維持するようにステアリングの操舵角を制御する。また、前方の車両、障害物をレーダで認識して、衝突の恐れがあるときはブレーキ操作を行い車両の速度を低減させ、エンジンまたはモータのトルク出力を低減するように働きかけて衝突を回避するなどの制御を行う。
【００２６】
ステアリング制御装置１７０は、車両制御装置１５０から出力される制御指令信号に従って、後車輪（操舵輪）または前車輪（操舵輪）もしくは全車輪の向きを変更する。ブレーキ制御装置１６０は、例えば油圧式ブレーキを併用する電動サーボブレーキで構成される。ブレーキ制御装置１６０は、車両制御装置１５０から出力される制御指令に従って車輪を制動する。トルク出力制御装置１８０は、自車両の駆動源である電動機等で構成される。トルク出力制御装置１８０は、車両制御装置１５０から出力される制御指令に従って自車両が走行するための走行駆動力（トルク）を生成し、トランスミッションを介して各車輪に伝達する。
【００２７】
１−２．車両制御装置のハードウェア構成
図２は、車両制御装置１５０のハードウェア構成図である。本実施の形態では、車両制御装置１５０は、車両を制御する制御装置である。車両制御装置１５０の各機能は、車両制御装置１５０が備えた処理回路により実現される。具体的には、車両制御装置１５０は、処理回路として、ＣＰＵ（Central Processing Unit）等の演算処理装置９０（コンピュータ）、演算処理装置９０とデータのやり取りをする記憶装置９１、演算処理装置９０に外部の信号を入力する入力回路９２、及び演算処理装置９０から外部に信号を出力する出力回路９３等を備えている。
【００２８】
演算処理装置９０として、ＡＳＩＣ（Application Specific Integrated Circuit）、ＩＣ（Integrated Circuit）、ＤＳＰ（Digital Signal Processor）、ＦＰＧＡ（Field Programmable Gate Array）、各種の論理回路、及び各種の信号処理回路等が備えられてもよい。また、演算処理装置９０として、同じ種類のものまたは異なる種類のものが複数備えられ、各処理が分担して実行されてもよい。記憶装置９１として、演算処理装置９０からデータを読み出し及び書き込みが可能に構成されたＲＡＭ（Random Access Memory）、演算処理装置９０からデータを読み出し可能に構成されたＲＯＭ（Read only Memory）等が備えられている。入力回路９２は、外界センシング装置１１０、ＨＭＩ１２０、ナビゲーション装置１３０、車両センサ１４０等の各種のセンサ、スイッチ、および通信線が接続され、これらセンサ、スイッチの出力信号と通信情報を演算処理装置９０に入力するＡ／Ｄ変換器、通信回路等を備えている。出力回路９３は、ブレーキ制御装置１６０、ステアリング制御装置１７０、トルク出力制御装置１８０等の駆動装置が接続され、これら駆動装置に演算処理装置９０からの制御信号を出力する駆動回路等を備えている。
【００２９】
車両制御装置１５０が備える各機能は、演算処理装置９０が、ＲＯＭ等の記憶装置９１に記憶されたソフトウェア（プログラム）を実行し、記憶装置９１、入力回路９２、及び出力回路９３等の車両制御装置１５０の他のハードウェアと協働することにより実現される。なお、車両制御装置１５０が用いる閾値、判定値等の設定データは、ソフトウェア（プログラム）の一部として、ＲＯＭ等の記憶装置９１に記憶されている。車両制御装置１５０の有する各機能は、それぞれソフトウェアのモジュールで構成されるものであってもよいが、ソフトウェアとハードウェアの組み合わせによって構成されるものであってもよい。
【００３０】
１−３．車両制御装置の機能
次に、実施の形態１に係る車両制御装置１５０の機能について説明する。図３は、車両制御装置１５０の機能を説明する構成図である。車両制御装置１５０は、第一の制御指令部２１０と、第二の制御指令部２２０と、第一の通信回路２０３と、第二の通信回路２０４と出力回路の切り替え部２０６で構成される。車両制御装置１５０は、第一の制御指令部２１０と第一の通信回路２０３、第二の制御指令部２２０と第二の通信回路２０４がそれぞれ別々の基板上に構成されていてもよい。
【００３１】
第一の制御指令部２１０は、自動運転の制御指令信号の算出を行う。車両制御装置１５０の外部に接続されたバッテリ１９０から電源供給を受けて実行する。車両の走行状況、運転者の状態、車両の周辺環境をセンシングする外界センシング装置１１０とＨＭＩ１２０とナビゲーション装置１３０と、車両センサ１４０の入力情報をもとに制御指令信号の演算を行い、第一の通信回路２０３により出力回路の切り替え部２０６を介してステアリング制御装置１７０、ブレーキ制御装置１６０、トルク出力制御装置１８０といった駆動装置に制御指令信号を出力する。
【００３２】
第一の制御指令部２１０は、演算処理部２１１と第一の制御指令信号算出部２１２と第一の記憶部２１３で構成される。第一の制御指令信号算出部２１２は、自動運転の制御指令信号を演算するための処理フローが格納されており、第一の制御指令信号算出部２１２の演算処理は演算処理部２１１内に設置された高速コア２１４で実行される。第一の記憶部２１３は、第一の制御指令信号算出部２１２の演算の処理フロー内で制御指令信号の演算時に更新、参照が行われる内部演算の制御量（演算結果、制御指令信号の過去の履歴、積分量など）を記憶している。
【００３３】
第二の制御指令部２２０は、自動運転の制御指令信号の算出を行う第一の制御指令部２１０が故障したときに制御指令信号の算出の代行を行う。車両制御装置１５０の外部に接続されたバッテリ１９０から電源供給を受けて実行する。車両の走行状況、運転者の状態、車両の周辺環境をセンシングする外界センシング装置１１０とＨＭＩ１２０とナビゲーション装置１３０と、車両センサ１４０の入力情報をもとに制御指令信号の演算を行い、第二の通信回路２０４により出力回路の切り替え部２０６を介してステアリング制御装置１７０、ブレーキ制御装置１６０、トルク出力制御装置１８０といった駆動装置に制御指令信号を出力することができる。
【００３４】
第二の制御指令部２２０は、演算処理部２２１と実行制御部２２５と故障検出部２２６と第二の制御指令信号算出部２２７と第二の記憶部２２８で構成される。第二の制御指令信号算出部２２７には、第一の制御指令部２１０が故障したときに行う自動運転の制御指令信号を演算するための処理フローが格納されている。第二の制御指令信号算出部２２７には、第一の制御指令信号算出部２１２と同一の演算処理が設定されていてもよい。また、第二の制御指令信号算出部２２７には、第一の制御指令部２１０の故障時に必要な機能に限定した縮退運転を行うための演算処理が設定されていてもよい。第二の記憶部２２８は、第二の制御指令信号算出部２２７の演算の処理フロー内で制御指令信号の演算時に更新、参照が行われる内部演算の制御量（演算結果、制御指令信号の過去の履歴、積分量など）を記憶している。
【００３５】
故障検出部２２６は、第一の制御指令部２１０の故障検出を行う。具体的には、故障検出部２２６は、第一の制御指令信号算出部２１２の自己診断部から診断情報を受信し、故障判定条件が成立しているかどうかを判定する。また、第一の制御指令信号算出部２１２と通信ができなくなった場合は、通信途絶として第一の制御指令部２１０の故障を判定することができる。第一の制御指令部２１０の動作が故障判定条件を満たした回数を故障判定カウンタでカウントする。第一の制御指令部２１０の故障判定条件が成立して故障判定カウンタの値が故障確定値（故障確定回数）未満のときを故障の兆候があるとして、故障の度合いを故障判定カウンタの値から求める。そして、故障判定カウンタの値が故障確定値（故障確定回数）以上になったときに第一の制御指令部２１０の故障を確定し、制御指令切り替え信号２３０を出力する。以上、故障確定の判断を故障判定カウンタの値から求める手法について説明したが、故障の種類に応じて故障を確定することとしてもよい。例えば、第一の制御指令部２１０のウォッチドッグ・タイマによるリセット検出は即座に故障を確定し、センサ検出値の正常範囲逸脱は所定時間継続を待って故障の確定を行うようにしてもよい。また、故障の度合いを測る指標として、故障判定カウンタのカウンタ値を用いる例について説明した。しかし、故障の種類に応じて故障の度合いを決定することにしてもよい。例えば、予めセンサの重要度に応じてセンサ異常の場合の故障の度合いを決定しておくことができる。
【００３６】
実行制御部２２５は、故障検出部２２６より第一の制御指令部２１０の故障情報を受信して、第二の制御指令信号算出部２２７の演算処理を行う演算処理部２２１に第二の制御指令信号算出部２２７の演算の実行を指示する。また実行制御部２２５は、故障検出部２２６から受信した故障情報に含まれる故障の度合いから、第二の制御指令信号算出部２２７の演算処理の速度を変更する機能を有する。実行制御部２２５は、第二の制御指令信号算出部２２７の演算処理を行う演算処理部２２１に対して演算を行うコアを、低速コア２２２、中速コア２２３、および高速コア２２４から選択して演算速度を変更することができる。さらに、実行制御部２２５は、第一の記憶部２１３と第二の記憶部２２８を故障検出部２２６等を介してモニタして記憶されている内部演算の制御量を比較して差分によって、第二の制御指令信号算出部２２７の演算処理速度を変更する機能を有していてもよい。
【００３７】
演算処理部２２１は、実行制御部２２５の指示に従い第二の制御指令信号算出部２２７の演算処理を実行する。演算処理部２２１は、低速コア２２２、中速コア２２３、および高速コア２２４で構成される。低速コア２２２、中速コア２２３、および高速コア２２４は、それぞれの処理性能に応じてコア内で演算処理を行う動作クロックを設定することができる。例えば、低速コア２２２の動作クロックは１ＭＨｚから１０ＭＨｚ、中速コア２２３の動作クロックは１０ＭＨｚから５０ＭＨｚ、高速コア２２４は、５０ＭＨｚから１００ＭＨｚというようにそれぞれのコアの処理性能内で動作クロックを設定できる。演算処理を低速で実行したい場合は低速コア２２２により１ＭＨｚで実行し、高速で実行したい場合は高速コア２２４により１００ＭＨｚで実行するなど動作クロックの割り当てを変更することによって演算処理の実行速度を変更することができる。反対に、演算処理を実行する動作クロックが高いほど消費電力は大きくなる。近年では、演算処理を実行していない間は消費電力を発生しないスリープモードに入れることにより、さらに消費電力を低減する機能を有するコアも存在する。消費電力を低減するためには、演算処理を必要な状況に応じて実行速度、実行間隔を制御して実行することができる。
【００３８】
出力回路の切り替え部２０６は、故障検出部２２６より制御指令切り替え信号２３０を受信する。第一の制御指令部２１０が正常時は第一の制御指令信号算出部２１２の制御指令信号を第一の通信回路２０３から出力する。第一の制御指令部２１０が故障時は第二の制御指令信号算出部２２７の制御指令信号を第二の通信回路２０４から出力する。出力回路の切り替え部２０６は、第一の通信回路２０３と第二の通信回路２０４から受け取った制御指令信号を切り替えて、車両制御装置１５０からステアリング制御装置１７０、ブレーキ制御装置１６０、トルク出力制御装置１８０といった駆動装置に対して出力する。
【００３９】
ここで、故障検出部２２６と実行制御部２２５を合わせて故障判定部２２９と称する。故障判定部２２９は、第一の制御指令部の故障に対応して、第二の制御指令部２２０の演算速度（制御速度）を変更し、第一の制御指令部２１０の故障の確定に対応し出力回路の切り替え部２０６に制御指令切り替え信号２３０を出力して駆動装置への制御指令信号を、第一の制御指令部２１０の出力から第二の制御指令部２２０の出力に切り替える。ここでは、第二の制御指令部２２０の制御速度の変更と出力回路の切り替え部２０６の切り替えを故障判定部２２９が実施する事例を説明した。しかし、故障判定部２２９の検出した故障情報を他の制御装置が利用して、第二の制御指令部２２０の制御速度の変更と出力回路の切り替え部２０６の切り替えを実行することとしてもよい。実質的には、故障判定部２２９が故障情報を介して第二の制御指令部２２０の制御速度の変更と出力回路の切り替え部２０６の切り替えを実行させていることになり、車両制御装置１５０の故障に対する対応としては、変わりがない。
【００４０】
１−４．故障対応処理のフローチャート
図４に実施の形態１に係る車両制御装置１５０の故障対応処理を示すフローチャートを示す。図４の故障対応処理は、車両制御装置１５０の演算処理装置９０で実行されるが、第二の制御指令部２２０が独自に演算処理装置９０を有しておりそこで実行することとする。しかし、故障対応処理は車両制御装置１５０全体としての制御内容を決定する共通の演算処理装置９０で実行することとしてもよい。また、故障判定部２２９が独自に演算処理装置９０を有しておりそこで実行することとしてもよい。フローチャートは所定時間ごと（例えば１ｍｓごと）に実行されることとする。フローチャートの処理は、所定時間ごとではなく、車輪速センサの出力パルスごと等、他のイベント発生ごとに実施されることとしてもよい。ステップＳ３００から故障対応処理を開始する。ここで図には示していないが、故障判定カウンタは、車両制御装置１５０に電源が投入されて起動したとき初期値０が設定されることとする。
【００４１】
ステップＳ３０１では、故障検出部２２６で第一の制御指令部２１０の故障判定条件が成立しているか判定する。具体的には、故障検出部２２６は、第一の制御指令信号算出部２１２の自己診断部から診断情報を受信し、故障判定条件が成立しているかどうかを判定する。ステップＳ３０１で故障判定条件が成立していた場合はステップＳ３０２に進み、故障判定条件が成立していなかった場合はステップＳ３０３に進む。
【００４２】
ステップＳ３０２では、故障判定カウンタをカウントアップしてステップＳ３０３に進む。ステップＳ３０３で、故障判定カウンタを故障確定値と比較する。故障判定カウンタが故障確定値未満だった場合は、ステップＳ３０４に進む。ステップＳ３０４で故障判定カウンタを初期値０（故障判定条件非成立の値）と比較する。
【００４３】
ステップＳ３０４で故障判定カウンタが初期値０を超えていない場合（故障判定条件が非成立）、ステップＳ３３０に進み、第二の制御指令信号算出部２２７の演算の実行を停止する。このようにすることで、第一の制御指令部２１０が正常に動作している間の第二の制御指令信号算出部２２７の演算の演算処理部２２１での実行を停止でき、消費電力を低減できる。次にステップＳ３２１に進む。
【００４４】
ステップＳ３０４で故障判定カウンタが初期値０を超えてカウントされていた場合（故障判定条件が成立）、ステップＳ３２０に進み、演算処理部２２１で第二の制御指令信号算出部２２７の演算の実行を開始する。演算処理部２２１で実行する第二の制御指令信号算出部２２７の演算の実行速度は第一の制御指令部２１０の故障の度合いに応じて実行速度を切り替える。
【００４５】
ステップＳ３２０の第二の制御指令信号算出部２２７の演算の実行速度の設定について述べる。第一の制御指令部２１０の故障確定時に実行する第二の制御指令信号算出の実行速度を第二の制御指令信号算出の「上限速度」とする。例えば、第二の制御指令信号算出の上限速度は、第一の制御指令信号算出の実行速度と同一に設定することができ、縮退運転を行うために第一の制御指令信号算出の実行速度よりも低い速度に設定することができる。ステップＳ３２０での第二の制御指令信号算出の実行は、故障検出部２２６より受信した第一の制御指令部２１０の故障判定カウンタと故障確定値をもとに、故障の度合い（故障判定カウンタ／故障確定値）を算出して第二の制御指令信号算出の実行速度を(上限速度×（故障判定カウンタ／故障確定値））の式で算出する。
【００４６】
このように第二の制御指令信号算出の実行速度を可変に制御することで、第一の制御指令部２１０の故障の兆候を検出したときに、故障の度合い（故障判定カウンタ／故障確定値）に応じて第二の制御指令信号算出の実行速度を制御することができ、消費電力を低減できる。また、第一の制御指令部２１０の故障確定前に第二の制御指令信号算出部２２７の演算を実行開始できるため、車両の運転状況に応じて第二の記憶部２２８に記憶されている内部演算の制御量を更新できる。第二の記憶部２２８に記憶されている内部演算の制御量を更新することで、第一の制御指令部２１０の故障確定時に、急激な変動を抑えた制御ギャップの少ない制御指令信号を第二の制御指令信号算出部２２７で算出することができる。ステップＳ３２０の次にステップＳ３２１に進む。
【００４７】
ステップＳ３２１で、第一の制御指令信号算出部２１２の演算を演算処理部２１１内の高速コア２１４で実行して制御指令信号を算出する。次にステップＳ３２２に進む。
【００４８】
ステップＳ３２２で、第一の制御指令信号算出部２１２で算出した制御指令信号を第一の通信回路２０３に送信する。次にステップＳ３２３に進む。
【００４９】
ステップＳ３２３で、出力回路の切り替え部２０６で車両制御装置１５０の制御指令信号の出力回路を第一の通信回路２０３に接続する。次にステップＳ３２４に進む。ステップＳ３２４で、第一の通信回路２０３の出力を車両制御装置１５０の制御指令信号として駆動装置に出力し、ステップＳ３３９で処理を終了する。
【００５０】
次にステップＳ３０３で故障判定カウンタが故障確定値以上となり第一の制御指令部２１０の故障が確定したときの処理フローについて説明する。ステップＳ３１０に進み、第二の制御指令信号算出部２２７の演算を演算処理部２２１で上限速度で実行する。次にステップＳ３１１に進む。
【００５１】
ステップＳ３１１で、第二の制御指令信号算出部２２７で算出した制御指令信号を第二の通信回路２０４に送信する。次にステップＳ３１２に進む。
【００５２】
ステップＳ３１２で、出力回路の切り替え部２０６で制御指令信号の出力回路を第二の通信回路２０４に接続する。次にステップＳ３１３に進む。
【００５３】
ステップＳ３１３で、第二の通信回路２０４の出力を車両制御装置１５０の制御指令信号として駆動装置に出力する。次にステップＳ３１４に進む。
【００５４】
ステップＳ３１４では、第一の制御指令信号算出部２１２の演算の実行を停止して、ステップＳ３３９で処理を終了する。
【００５５】
１−５．車両制御装置の故障対応の挙動
図５に、実施の形態１に係る車両制御装置１５０の故障対応動作を示すタイムチャートを示す。故障判定カウンタと、第一の制御指令部２１０、第二の制御指令部２２０の演算実行状態を示す。
【００５６】
故障判定カウンタは縦軸に故障判定カウンタの値（初期値は０であり故障判定なし）を示し、横軸に時刻を示す。
【００５７】
第一の制御指令信号算出は、縦軸に演算の速度、横軸に時刻を示す。処理量が０のときは実行を停止している状態を示す。上に行くほど演算速度が速いことを示す。
【００５８】
第二の制御指令信号算出は、縦軸に演算の速度、横軸に時刻を示す。処理量が０のときは実行を停止している状態を示す。上に行くほど演算速度が速いことを示す。
【００５９】
第一の制御指令部２１０の故障未検出の状態では、故障判定カウンタの値は０であり、正常状態である。このとき第一の制御指令信号算出は実行されている。第二の制御指令信号算出は、実行を停止している状態である。
【００６０】
第一の制御指令部２１０の故障を検出すると、故障判定カウンタの値がカウントアップされ１になる。故障判定条件は成立したが、故障の度合いは小さいと判定した状態になる。第一の制御指令部２１０の故障は確定していないため、第一の制御指令信号算出は継続して実行する。第二の制御指令信号算出は、故障判定カウンタの値が１で故障確定値が３のため、低速コア２２２を用いて実行速度を低速度（上限速度の３分の１の速度）で実行する。
【００６１】
故障判定カウンタの値が１の状態で第一の制御指令部２１０の故障を再度検出すると、故障判定カウンタの値がカウントアップされ２になる。故障は確定していないが、故障の度合いは大きいと判定された状態になる。第一の制御指令部２１０の故障は確定していないため、第一の制御指令信号算出は継続して実行している。第二の制御指令信号算出は、故障判定カウンタの値が２で故障確定値が３のため、中速コア２２３を用いて実行速度を中速度（上限速度の３分の２の速度）で実行する。すなわち、ここでは、予め定めた判定度合いを１と規定して、故障の度合いがこの判定度合い以下の場合に低速、判定度合いより大きい場合に中速を選択している。
【００６２】
故障判定カウンタの値が２の状態で第一の制御指令部２１０の故障を再度検出すると、故障判定カウンタの値がカウントアップされ３になる。故障判定カウンタの値が故障確定値（故障確定回数）以上となったので、第一の制御指令部２１０の故障が確定された状態になる。第一の制御指令部２１０の故障が確定したため、第一の制御指令信号算出の実行は停止される。第二の制御指令信号算出は、第一の制御指令部２１０の故障が確定したため高速コア２２４を用いて実行速度を上限速度で実行する。以上が、第一の制御指令部２１０の故障に対応する故障判定部２２９の動作である。
【００６３】
上記のように、第一の制御指令部２１０の故障の兆候を検出したときに故障の度合いに応じて、第二の制御指令信号算出部２２７の演算の実行速度を可変にすることで、第一の制御指令部２１０の演算を行う演算処理部２２１の処理負荷を可変に調整でき消費電力を低減した状態で第二の制御指令信号算出部２２７の演算処理を実行することができる。また、第一の制御指令部２１０の故障確定前に、第二の制御指令信号算出部２２７の演算処理を開始できるため、第一の制御指令部２１０の故障確定前の車両の運転状況に応じて第二の記憶部２２８に記憶されている内部演算の制御量を最新値に更新できる。そのため、第一の制御指令部の故障時に、第二の記憶部２２８に記憶されている最新化された内部演算の制御量を参照した第二の制御指令信号算出部２２７の演算処理を実行でき、制御指令信号の急激な変動を抑えることができる。
【００６４】
また、第一の制御指令部２１０の故障の度合いが予め定めた判定度合い以下の場合は、第二の制御指令信号算出の実行速度を低速にすることで、第二の制御指令信号算出の演算処理を行う演算処理部２２１の処理負荷を低減し、消費電力を低減できる。反対に、第一の制御指令部２１０の故障の度合いが前述の判定度合いより大きい場合は、第二の制御指令信号算出の実行速度を高速にすることで、第二の制御指令信号算出部２２７の制御指令信号を算出できるまでの応答性の向上を高めて、第一の制御指令部の故障時に即時に制御指令信号の出力を行うことができる。
【００６５】
２．実施の形態２
実施の形態１では、第二の制御指令信号算出部２２７の演算の実行速度を可変にする事例を説明した。実行速度を変化させるために、演算処理部２２１の低速コア２２２、中速コア２２３、高速コア２２４コアを使い分ける例について説明した。実施の形態２では、演算処理部２２１のコアを使い分けるのではなく、演算処理の実行間隔を変化させることで、第二の制御指令信号算出部２２７の演算の実行速度を実質上可変にする。実施の形態２では、実施の形態１の図３で説明した車両制御装置１５０の構成をそのまま使用し、制御ソフトウェアを変更した状態で適用するが、演算処理部２２１のコアは１個でもよい。
【００６６】
２−１．故障対応処理のフローチャート
図６に実施の形態２に係る車両制御装置１５０の故障対応処理を示すフローチャートを示す。図６の故障対応処理は、車両制御装置１５０の演算処理装置９０で実行されるが、第二の制御指令部２２０が独自に演算処理装置９０を有しておりそこで実行することとする。しかし、故障対応処理は車両制御装置１５０全体としての制御内容を決定する共通の演算処理装置９０で実行することとしてもよい。また、故障判定部２２９が独自に演算処理装置９０を有しておりそこで実行することとしてもよい。フローチャートは所定時間ごと（例えば１ｍｓごと）に実行されることとする。フローチャートの処理は、所定時間ごとではなく、車輪速センサの出力パルスごと等、他のイベント発生ごとに実施されることとしてもよい。ステップＳ５００から故障対応処理を開始する。ここで図には示していないが、故障判定カウンタは、車両制御装置１５０に電源が投入されて起動したとき初期値０が設定されることとする。
【００６７】
ステップＳ５０１で故障検出部２２６が第一の制御指令部２１０の故障判定条件を判定する。ステップＳ５０１で故障判定条件が成立していた場合はステップＳ５０２に進み、故障判定条件が成立していなかった場合はステップＳ５０３に進む。ステップＳ５０２では、故障判定カウンタをカウントアップしてステップＳ５０３に進む。
【００６８】
ステップＳ５０３で、故障判定カウンタを故障確定値と比較する。故障判定カウンタが故障確定値未満だった場合は、ステップＳ５０４に進む。ステップＳ５０４で故障判定カウンタを初期値０（故障判定条件非成立の値）と比較する。
【００６９】
ステップＳ５０４で故障判定カウンタが初期値０を超えていない場合（故障判定条件の非成立）、ステップＳ５３０に進み、第二の制御指令信号算出部２２７の演算の実行を停止する。このようにすることで、第一の制御指令部２１０が正常に動作している間の第二の制御指令信号算出部２２７の演算の演算処理部２２１での実行を停止でき、消費電力を低減できる。次にステップＳ５２１に進む。
【００７０】
ステップＳ５０４で故障判定カウンタが初期値０を超えてカウントされていた場合（故障判定条件が成立）、ステップＳ５２０に進み、第二の制御指令信号算出部２２７の演算の実行を開始する。第二の制御指令信号算出部２２７の演算の実行間隔は第一の制御指令部２１０の故障の度合いに応じて実行間隔を切り替える。
【００７１】
ステップＳ５２０での第二の制御指令信号算出部２２７の演算の実行間隔の設定について述べる。第一の制御指令部２１０の故障確定時に実行する第二の制御指令信号算出の実行間隔を第二の制御指令信号算出の「最短実行間隔」とする。例えば、第二の制御指令信号算出の最短実行間隔は、第一の制御指令信号算出の実行間隔と同一に設定することができ、縮退運転を行うために第一の制御指令信号算出の実行間隔よりも長い間隔に設定することができる。ステップＳ５２０での第二の制御指令信号算出の実行は、故障検出部２２６より受信した第一の制御指令部２１０の故障判定カウンタと故障確定値の値をもとに、故障の度合いを、（故障判定カウンタ／故障確定値）で定義し、この値を用いて第二の制御指令信号算出の実行間隔を算出する。実際には、故障の度合いの逆数を用いて、(最短実行間隔×（故障確定値／故障判定カウンタ））の式で実行間隔を算出する。
【００７２】
このように第二の制御指令信号算出の実行間隔を可変に制御することで、第一の制御指令部２１０の故障の兆候を検出したときに、故障の度合いを（故障判定カウンタ／故障確定値）で定義し、この逆数を用いて第二の制御指令信号算出の実行間隔を制御することができ、消費電力を低減できる。すなわち、故障の度合いが小さい場合は実行間隔を長く設定し消費電力を低減できる。そして、故障の度合いが大きい場合は実行間隔を短く設定し、第一の制御指令部２１０の故障確定前に第二の制御指令部２２０に短い間隔で演算処理を実行させて、切り替えに備えることができる。このため、車両の運転状況に応じて第二の記憶部２２８に記憶されている内部演算の制御量を短い間隔で更新することができる。これにより、第一の制御指令部２１０の故障確定時に、急激な変動を抑えた制御ギャップの少ない制御指令信号を第二の制御指令信号算出部２２７で算出することができる。
【００７３】
次にステップＳ５２１に進む。
【００７４】
ステップＳ５２１で、第一の制御指令信号算出部２１２の演算を演算処理部２１１内の高速コア２１４で実行して制御指令信号を算出する。次にステップＳ５２２に進む。
【００７５】
ステップＳ５２２で、第一の制御指令信号算出部２１２で算出した制御指令信号を第一の通信回路２０３に送信する。次にステップＳ５２３に進む。
【００７６】
ステップＳ５２３で、出力回路の切り替え部２０６で車両制御装置１５０の制御指令信号の出力回路を第一の通信回路２０３に接続する。次にステップＳ５２４に進む。
【００７７】
ステップＳ５２４で、第一の通信回路２０３の出力を車両制御装置１５０の制御指令信号として駆動装置に出力し、ステップＳ５３９で処理を終了する。
【００７８】
次にステップＳ５０３で故障判定カウンタが故障確定値以上となり第一の制御指令部２１０の故障が確定したときの処理フローについて説明する。ステップＳ５１０に進み、第二の制御指令信号算出を最短実行間隔で実行する。次にステップＳ５１１に進む。
【００７９】
ステップＳ５１１で、第二の制御指令信号算出部２２７で算出した制御指令信号を第二の通信回路２０４に送信する。次にステップＳ５１２に進む。
【００８０】
ステップＳ５１２で、出力回路の切り替え部２０６で制御指令信号の出力回路を第二の通信回路２０４に接続する。次にステップＳ５１３に進む。
【００８１】
ステップＳ５１３で、第二の通信回路２０４の出力を車両制御装置１５０の制御指令信号として駆動装置に出力する。次にステップＳ５１４に進む。
【００８２】
ステップＳ５１４では、第一の制御指令信号算出部２１２の演算の実行を停止し、ステップＳ５３９で処理を終了する。
【００８３】
２−２．車両制御装置の故障対応の挙動
図７に、実施の形態２に係る車両制御装置１５０の故障対応動作を示すタイムチャートを示す。故障判定カウンタと、第一の制御指令部２１０、第二の制御指令部２２０の演算実行状態を示す。
【００８４】
故障判定カウンタは縦軸に故障判定カウンタの値（初期値は０で故障判定なし）を示し、横軸に時刻を示す。第一の制御指令信号算出は、縦軸に演算の処理量、横軸に時刻を示す。演算の処理量が０のときは実行を停止している状態を示す。単位時間当たりの処理量が多い場合は演算速度が速いことを示す。第二の制御指令信号算出は、縦軸に演算の処理量、横軸に時刻を示す。演算の処理量が０のときは実行を停止している状態を示す。単位時間当たりの処理量が多い場合は演算速度が速いことを示す。
【００８５】
第一の制御指令部２１０の故障未検出の状態では、故障判定カウンタの値は０であり、正常状態である。このとき第一の制御指令信号算出は実行されている。第二の制御指令信号算出は、実行を停止している状態である。
【００８６】
第一の制御指令部２１０の故障を検出すると、故障判定カウンタの値がカウントアップされ１になる。故障判定条件は成立したが、故障の度合いは小さいと判定した状態になる。第一の制御指令部２１０の故障は確定していないため、第一の制御指令信号算出は継続して実行する。第二の制御指令信号算出は、故障判定カウンタの値が１で故障確定値が３のため、実行間隔を長く設定して（最短実行間隔の３倍（３／１倍））実行する。
【００８７】
故障判定カウンタの値が１の状態で第一の制御指令部２１０の故障を再度検出すると、故障判定カウンタの値がカウントアップされ２になる。故障は確定していないが、故障の度合いは大きいと判定された状態になる。第一の制御指令部２１０の故障は確定していないため、第一の制御指令信号算出は継続して実行している。第二の制御指令信号算出は、故障判定カウンタの値が２で故障確定値が３のため、実行間隔を中程度（最短実行間隔の１．５倍（３／２倍））の実行間隔で実行する。すなわち、ここでは、予め定めた第二の判定度合いを１と規定して、故障の度合いがこの第二の判定度合い以下の場合に低速（長い実行間隔）、第二の判定度合いより大きい場合により高い速度（より短い実行間隔）を選択している。
【００８８】
故障判定カウンタの値が２の状態で第一の制御指令部２１０の故障を再度検出すると、故障判定カウンタの値がカウントアップされ３になる。故障判定カウンタの値が故障確定値（故障確定回数）以上となったので、第一の制御指令部２１０の故障が確定された状態になる。第一の制御指令部２１０の故障が確定したため、第一の制御指令信号算出の実行は停止される。第二の制御指令信号算出は、第一の制御指令部２１０の故障が確定したため実行間隔を最短実行間隔に設定して実行する。
【００８９】
上記のように実施の形態２では、第一の制御指令部２１０の故障の兆候を検出したときに故障の度合いに応じて、第二の制御指令信号算出の実行間隔を可変にすることで、演算処理部２２１の処理負荷を可変に調整でき消費電力を低減した状態で第二の制御指令信号算出の演算処理を実行することができる。また、第一の制御指令部２１０の故障確定前に、第二の制御指令部２２０の演算処理を開始できるため、第一の制御指令部２１０の故障確定前の車両の運転状況に応じて第二の記憶部２２８に記憶されている内部演算の制御量を最新値に更新できる。そのため、第一の制御指令部の故障時に、第二の記憶部２２８に記憶されている最新化された内部演算の制御量を参照した第二の制御指令信号算出の演算処理を実行でき、制御指令信号の急激な変動を抑えることができる。また、第二の制御指令信号算出の実行間隔を可変にすることで、実質的な演算速度を変化させるので、実施の形態１のように、複数のコアを切り換えて第二の制御指令信号算出部２２７の処理速度を切り換える必要がない。よって、複数のコアを使用することなしに、第二の制御指令信号算出部２２７の処理速度を変化させることができ、コスト削減することも可能である。
【００９０】
また、第一の制御指令部２１０の故障の度合いが予め定めた第二の判定度合い以下の場合は、第二の制御指令信号算出の実行間隔を長くすることで、第二の制御指令信号算出の演算処理を行う演算処理部２２１の処理負荷を低減し、消費電力を低減できる。反対に、第一の制御指令部２１０の故障の度合いが前述の第二の判定度合いより大きい場合は、第二の制御指令信号算出の実行間隔を短くすることで、第二の制御指令信号算出部２２７の制御指令信号を算出できるまでの応答性を向上し、第一の制御指令部の故障時に即時に制御指令信号の出力を行うことができる。
【００９１】
３．実施の形態３
実施の形態１および実施の形態２では、第二の制御指令信号算出部２２７の実行速度を可変にする事例を説明した。実施の形態３では、第二の制御指令信号算出部２２７が演算を実行する機能を選択する事例について説明する。演算を実行する機能を選択して絞り込むことによって、第二の制御指令部２２０の演算処理の負荷を変化させることができる。単位時間当たりに実行する演算の数を増減することによって、実質的に第二の制御指令信号算出部２２７の演算の平均処理速度を変化させていることになる。実施の形態３では、実施の形態１の図３で説明した車両制御装置１５０の構成をそのまま使用し、制御ソフトウェアを変更した状態で適用するが、演算処理部２２１のコアは１個でもよい。
【００９２】
実施の形態３では、第二の制御指令信号算出部２２７の制御内容を機能ごとに分割し、それぞれの機能ごとに優先度付けを行い、故障判定カウンタの値に応じて優先度の高い機能から順次実行開始する。第二の制御指令信号算出部２２７の制御内容を機能ごとに３つに分割し、分割した３つの機能をそれぞれ優先度の高い順に、優先度（高）制御、優先度（中）制御、優先度（低）制御としている。第二の制御指令信号算出部２２７の優先度（高）制御、優先度（中）制御、優先度（低）制御の３つの制御の実行開始をそれぞれ判定するため、故障判定カウンタの値と比較する閾値を設定しておく。第二の制御指令信号算出部２２７の優先度（高）制御を開始する閾値を優先度（高）制御の実行判定値、優先度（中）制御を開始する閾値を優先度（中）制御の実行判定値、優先度（低）制御を開始する閾値は優先度（低）制御の実行判定値とする。０＜優先度（高）制御の実行判定値＜優先度（中）制御の実行判定値＜優先度（低）制御の実行判定値となるように設定する。優先度（低）制御の実行判定値の値は故障確定値と同一に設定してもよい。
【００９３】
３−１．故障対応処理のフローチャート
図８、図９に実施の形態３に係る車両制御装置１５０の故障対応処理を示すフローチャートを分割して示す。図８、図９の故障対応処理は、車両制御装置１５０の演算処理装置９０で実行されるが、第二の制御指令部２２０が独自に演算処理装置９０を有しておりそこで実行することとする。しかし、故障対応処理は車両制御装置１５０全体としての制御内容を決定する共通の演算処理装置９０で実行することとしてもよい。また、故障判定部２２９が独自に演算処理装置９０を有しておりそこで実行することとしてもよい。フローチャートは所定時間ごと（例えば１ｍｓごと）に実行されることとする。フローチャートの処理は、所定時間ごとではなく、車輪速センサの出力パルスごと等、他のイベント発生ごとに実施されることとしてもよい。ステップＳ７００から故障対応処理を開始する。ここで図には示していないが、故障判定カウンタは、車両制御装置１５０に電源が投入されて起動したとき初期値０が設定されることとする。
【００９４】
ステップＳ７０１において故障検出部２２６で第一の制御指令部２１０の故障判定を行う。ステップＳ７０１で故障判定条件が成立していた場合はステップＳ７０２に進み、故障判定条件が成立していなかった場合はステップＳ７０３に進む。
【００９５】
ステップＳ７０２では、故障判定カウンタをカウントアップしてステップＳ７０３に進む。ステップＳ７０３では、故障判定カウンタと第二の制御指令信号算出部２２７の優先度（高）制御実行判定値との比較を行う。故障判定カウンタが第二の制御指令信号算出部２２７の優先度（高）制御の実行判定値以上の場合は、ステップＳ７０４に進む。故障判定カウンタが第二の制御指令信号算出部２２７の優先度（高）制御の実行判定値未満の場合は、ステップＳ７０５に進む。
【００９６】
ステップＳ７０４では、第二の制御指令信号算出部２２７の優先度（高）制御の実行を開始する。次にステップＳ７０５に進む。ステップＳ７０５では、故障判定カウンタと第二の制御指令信号算出部２２７の優先度（中）制御実行判定値との比較を行う。故障判定カウンタが第二の制御指令信号算出部２２７の優先度（中）制御の実行判定値以上の場合は、ステップＳ７０６に進む。故障判定カウンタが第二の制御指令信号算出部２２７の優先度（中）制御の実行判定値未満の場合は、ステップＳ７０７に進む。
【００９７】
ステップＳ７０６では、第二の制御指令信号算出部２２７の優先度（中）制御の実行を開始する。次にステップＳ７０７に進む。
【００９８】
ステップＳ７０７では、故障判定カウンタと第二の制御指令信号算出部２２７の優先度（低）制御実行判定値との比較を行う。故障判定カウンタが第二の制御指令信号算出部２２７の優先度（低）制御の実行判定値以上の場合は、ステップＳ７０８に進む。故障判定カウンタが第二の制御指令信号算出部２２７の優先度（低）制御の実行判定値未満の場合は、ステップＳ７０９に進む。
【００９９】
ステップＳ７０８では、第二の制御指令信号算出部２２７の優先度（低）制御の実行を開始する。次にステップＳ７０９に進む。ステップＳ７０９で、故障判定カウンタを故障確定値と比較する。故障判定カウンタが故障確定値未満だった場合は、ステップＳ７２０に進む。ステップＳ７２０で、第一の制御指令信号算出部２１２の制御を演算処理部２１１内の高速コア２１４で実行して制御指令信号を算出する。次にステップＳ７２１に進む。
【０１００】
ステップＳ７２１で、第一の制御指令信号算出部２１２で算出した制御指令信号を第一の通信回路２０３に送信する。次にステップＳ７２２に進む。
【０１０１】
ステップＳ７２２で、出力回路の切り替え部２０６で車両制御装置１５０の制御指令信号の出力回路を第一の通信回路２０３に接続する。次にステップＳ７２３に進む。
【０１０２】
ステップＳ７２３で、第一の通信回路２０３の出力を車両制御装置１５０の制御指令信号として駆動装置に出力し、ステップＳ７２９で処理を終了する。
【０１０３】
次にステップＳ７０９で故障判定カウンタが故障確定値以上となり第一の制御指令部２１０の故障が確定したときの処理フローについて説明する。
【０１０４】
ステップＳ７１０で、第二の制御指令信号算出部２２７で算出した優先度（高）制御の制御指令信号と優先度（中）制御の制御指令信号と優先度（低）制御の制御指令信号を第二の通信回路２０４に送信する。次にステップＳ７１１に進む。
【０１０５】
ステップＳ７１１で、出力回路の切り替え部２０６で車両制御装置１５０の制御指令信号の出力回路を第二の通信回路２０４に接続する。次にステップＳ７１２に進む。ステップＳ７１２で、第二の通信回路２０４の出力を車両制御装置１５０の制御指令信号として駆動装置に出力する。
【０１０６】
ステップＳ７１３で、第一の制御指令信号算出部２１２の実行を停止して、ステップＳ７２９で処理を終了する。
【０１０７】
以上のように図８に実施の形態３に係る車両制御装置１５０の制御方法について示した。図８の処理フローではステップＳ７１０からステップＳ７１３の処理フローで第二の制御指令信号算出部２２７で算出した優先度（高）制御の制御指令信号と優先度（中）制御の制御指令信号と優先度（低）制御の制御指令信号を一度にまとめて切り替える処理フローを示したが、第二の制御指令信号算出部２２７の優先度（高）制御の制御指令信号と優先度（中）制御の制御指令信号と優先度（低）制御の制御指令信号をそれぞれ個別に優先度（高）制御と優先度（中）制御と優先度（低）制御を実行開始したタイミングで機能ごとに制御指令信号の切り替えを行うことも考えられる。機能ごとに制御指令信号の切り替えを行う場合、第一の制御指令信号算出部２１２の制御内容も機能ごとに分けて制御指令信号の切り替えが機能単位でできるようにしておく必要がある。また、第一の制御指令部２１０の故障時に必要な機能に限定した縮退運転を場合は、第二の制御指令信号算出演算のうち、例えば優先度（高）制御と優先度（中）制御のみの実行を行い、第一の制御指令部２１０の故障時でも優先度（低）制御の実行は行わないなど一部の機能のみ実行するという制御方法も考えられる。
【０１０８】
図８のように、実行制御部２２５の実行を制御することで、第一の制御指令部２１０の故障の兆候を検出したときに、故障の度合いに応じて第二の制御指令信号算出部２２７の機能を選択して実行することができ、第二の制御指令信号算出部２２７の処理の平均実行速度を実質上変化させて消費電力を低減することができる。また、第一の制御指令部２１０の故障確定前に第二の制御指令信号算出部２２７を実行開始できるため、車両の運転状況に応じて第二の記憶部２２８に記憶されている内部演算の制御量を優先度の高い制御に関係の深い部分から順次更新できる。第二の記憶部２２８に記憶されている内部演算の制御量を更新することで、第一の制御指令部２１０の故障確定時に、急激な変動を抑えた制御ギャップの少ない制御指令信号を第二の制御指令信号算出部２２７で第二の記憶部２２８に記憶された制御量に基づいて算出することができる。
【０１０９】
３−２．車両制御装置の故障対応の挙動
図１０に、実施の形態３に係る車両制御装置１５０の故障対応動作を示すタイムチャートを示す。故障判定カウンタと第一の制御指令部２１０、第二の制御指令部２２０の演算実行状態を示す。
【０１１０】
第二の制御指令信号算出部２２７の制御内容を機能ごとに優先度（高）制御、優先度（中）制御、優先度（低）制御に実行する優先度をつける。制御内容に優先度を付与する例として、ブレーキ制御装置１６０、ステアリング制御装置１７０、トルク出力制御装置への制御指令信号の演算に優先度を振り分けた例を以下に示す。
【０１１１】
優先度（高）制御で算出する制御指令信号優先度（高）はブレーキ制御装置１６０を制御する制御指令信号である。優先度（中）制御で算出する制御指令信号優先度（中）はステアリング制御装置１７０を制御する制御指令信号である。優先度（低）制御の制御指令信号優先度（低）はトルク出力制御装置１８０を制御する制御指令信号である。
【０１１２】
図１０の最上段から順に説明する。故障判定カウンタは縦軸に故障判定カウンタの値（初期値０）（初期値０は故障判定なし）を示し、横軸に時刻を示す。
【０１１３】
図１０の次段の、第一の制御指令信号算出実行状態は、縦軸に処理量、横軸に時刻を示す。処理量が０のときは実行を停止している状態を示す。単位時間当たりの処理量が多い場合は演算速度が速いことを示す。
【０１１４】
図１０のその下の、第二の制御指令信号算出優先度（高）制御実行状態は、縦軸に実行処理量、横軸に時刻を示す。実行処理量が０のときは実行を停止している状態を示す。第二の制御指令信号算出優先度（中）制御実行状態は、縦軸に実行処理量、横軸に時刻を示す。実行処理量が０のときは実行を停止している状態を示す。第二の制御指令信号算出優先度（低）制御実行状態は、縦軸に実行処理量、横軸に時刻を示す。実行処理量が０のときは実行を停止している状態を示す。
【０１１５】
第一の制御指令部２１０の故障未検出の状態では、故障判定カウンタの値は０であり、正常状態である。このとき第一の制御指令信号算出は実行されている。第二の制御指令信号算出部２２７の優先度（高）制御と優先度（中）制御と優先度（低）制御は、実行を停止している状態である。
【０１１６】
第一の制御指令部２１０の故障条件判定が成立すると、故障判定カウンタの値がカウントアップされ１になる。故障条件判定が成立したが、故障の度合いは小さいと判定された状態になる。第一の制御指令部２１０の故障は確定していないため、第一の制御指令信号算出は継続して実行されている。第二の制御指令信号算出は、故障の度合いは小さいと判定しているため優先度（高）制御のみ実行を開始する。優先度（中）制御と優先度（低）制御は、実行を停止している状態である。優先度（高）制御で算出した制御指令信号優先度（高）は、ブレーキ制御装置１６０に実行開始のタイミングに合わせて出力を開始する、もしくは、第一の制御指令部２１０の故障確定時に他の制御指令信号と一括して出力を開始する。
【０１１７】
故障判定カウンタの値が１の状態で第一の制御指令部２１０の故障を再度検出した場合、故障判定カウンタの値がカウントアップされ２になる。第一の制御指令部２１０の故障確定はしていないが、故障の度合いは大きいと判定された状態になる。第一の制御指令部２１０の故障は確定していないため、第一の制御指令信号算出は継続して実行されている。実行指令部は、故障の度合いは大きいと判定しているため、既に実行を開始している優先度（高）制御に加えて、優先度（中）制御の実行を開始する。優先度（低）制御は、実行を停止している状態である。優先度（中）制御で算出した制御指令信号優先度（中）は、ステアリング制御装置１７０ に実行開始のタイミングに合わせて出力を開始する、もしくは、第一の制御指令部２１０の故障確定時に他の制御指令信号と一括して出力を開始する。すなわち、ここで、予め定めた第三の判定度合いを１と規定すると、故障の度合いがこの第三の判定度合い以下の場合に優先度（高）制御のみを実施するので、平均処理量は少なくなり、平均処理速度は低速となっている。故障の度合いが第三の判定度合いより大きい場合に優先度（中）制御も共に実施するので、平均処理量はより多くなり、平均処理速度はより高い速度となっている。
【０１１８】
故障判定カウンタの値が２の状態で第一の制御指令部２１０の故障を再度検出すると、故障判定カウンタの値がカウントアップされ３になる。故障判定カウンタの値が故障確定値（故障確定回数）以上となったため、第一の制御指令部２１０の故障が確定された状態になる。第一の制御指令部２１０の故障が確定したため、第一の制御指令信号算出の実行は停止される。既に実行を開始している優先度（高）制御と優先度（中）制御に加えて、優先度（低）制御の実行を開始する。優先度（低）制御で算出した制御指令信号優先度（低）は、トルク出力制御装置１８０ に実行開始のタイミングに合わせて出力を開始する、もしくは、第一の制御指令部２１０の故障確定時に他の制御指令信号と一括して出力を開始する。以上が、実施の形態３に示す車両制御装置１５０で、故障判定部２２９で、第一の制御指令部２１０の故障を判定したときの故障判定部２２９の対応状態である。
【０１１９】
以上のように、実施の形態３では、第一の制御指令部２１０の故障の度合いを検出したときに故障の度合いに応じて、第二の制御指令信号算出部２２７の機能ごとに選択して実行することで、第一の制御指令部２１０の故障の確定度合いに応じて第二の制御指令信号算出部２２７演算を行う演算処理部２２１の実質的な処理速度を変更し、処理負荷を可変に調整でき消費電力を低減した状態で第二の制御指令信号算出部２２７の演算処理を実行することができる。また、第一の制御指令部２１０の故障確定の直前に、第二の制御指令信号算出部２２７の演算処理を開始できるため、第一の制御指令部２１０の故障確定の直前の車両の運転状況に応じて第二の記憶部２２８に記憶されている内部演算の制御量のうち、優先度応じて選択された機能に関連する制御量が最新値に更新できる。そのため、第一の制御指令部の故障時に、第二の記憶部２２８に記憶されている最新化された内部演算の制御量を参照した第二の制御指令信号算出部２２７の演算処理を実行でき、制御指令信号の急激な変動を抑えることができる。
【０１２０】
また、第一の制御指令部２１０の故障の度合いが予め定めた第三の判定度合い以下の場合は、第二の制御指令信号算出部２２７の優先度の高い機能を選択して実行することで、第二の制御指令信号算出部２２７の演算処理を行う演算処理部２２１の処理負荷を低減でき、消費電力を低減できる。事実上、第二の制御指令部２２０の演算の平均速度を低下させていることになる。第二の記憶部２２８に記憶されている内部演算の制御量のうち、優先度の高い機能に関連する制御量が最新値に更新でき、第一の制御指令部の故障時に第二の制御指令信号算出部２２７の優先度の高い機能から順に算出される制御指令信号の精度および信頼性が高まる。第一の制御指令部２１０の故障の度合いが前述の第三の判定度合いより大きい場合は、第二の制御指令信号算出部２２７の優先度がより低い機能も併せて選択して実行するので、処理量は増加し、事実上、第二の制御指令部２２０の演算の平均速度を向上させることとなる。このため、第二の制御指令信号算出部２２７の制御指令信号を算出できるまでの応答性を向上して、第一の制御指令部２１０の故障時に即時に制御指令信号の出力を行うことができる。
【０１２１】
４．実施の形態４
実施の形態１から３では、故障判定部２２９で検出した第一の制御指令部２１０故障の度合いに応じて第二の制御指令信号算出部２２７の処理量を可変にする事例を説明した。実施の形態４では、第一の記憶部２１３と第二の記憶部２２８に記憶されている制御量の差分（差分の絶対値を示す。以下省略するが、制御量の差分は、制御量の差分の絶対値を指すこととする）の大きさに応じて、第二の制御指令部２２０の演算処理の処理速度を変化させる事例について説明する。実施の形態４では、実施の形態１の図３で説明した車両制御装置１５０の構成をそのまま使用し、制御ソフトウェアを変更した状態で適用する。
【０１２２】
４−１．故障対応処理のフローチャート
図１１、図１２に実施の形態４に係る車両制御装置１５０の故障対応処理を示すフローチャートを分割して示す。図１１、図１２の故障対応処理は、車両制御装置１５０の演算処理装置９０で実行されるが、第二の制御指令部２２０が独自に演算処理装置９０を有しておりそこで実行することとする。しかし、故障対応処理は車両制御装置１５０全体としての制御内容を決定する共通の演算処理装置９０で実行することとしてもよい。図３には第一の記憶部２１３と第二の記憶部２２８が別体として記されているが、同一の記憶装置９１上に配置されていることとしてもよい。また、故障判定部２２９が独自に演算処理装置９０を有しておりそこで実行することとしてもよい。フローチャートは所定時間ごと（例えば１ｍｓごと）に実行されることとする。フローチャートの処理は、所定時間ごとではなく、車輪速センサの出力パルスごと等、他のイベント発生ごとに実施されることとしてもよい。ステップＳ９００から故障対応処理を開始する。ここで図には示していないが、故障判定カウンタは、車両制御装置１５０に電源が投入されて起動したとき初期値０が設定されることとする。
【０１２３】
図１１、図１２の処理フローでは、第一の制御指令部２１０の第一の記憶部２１３と第二の制御指令部２２０の第二の記憶部２２８に記憶されている過去の制御指令信号、制御量の積分値などの制御量の差分と比較して、第二の制御指令信号算出の実行開始を判定する閾値である実行開始判定値と実行停止を判定する閾値である実行停止判定値を設定しておく。実行開始を判定する閾値である実行開始判定値と実行停止を判定する閾値である実行停止判定値は、第二の制御指令信号算出が短時間に実行開始と停止を繰り返して第二の制御指令信号算出の演算が不安定になることを防止するため、実行開始判定値を実行停止判定値より大きな値になるように設定されている。第二の制御指令信号算出の実行と停止の判定にヒステリシスを設けて、短時間に実行開始と停止を繰り返さないようにする。第二の制御指令信号算出の実行を、第一の制御指令部２１０の故障確定時と同一の実行状態で行うことを判定する閾値である制限解除判定値を設定しておく。
【０１２４】
図１１のステップＳ９０１で、第一の記憶部２１３と第二の記憶部２２８に記憶されている制御指令信号の演算時に更新、参照が行われる内部演算の制御量（演算結果、制御指令信号の過去の履歴、積分量など）の比較を行う。故障判定部２２９で制御量の比較を行う場合は、第一の記憶部２１３に格納された制御量のデータを第一の制御指令信号算出部２１２を介して受け取り、第二の記憶部２２８に格納された制御量のデータを第二の制御指令信号算出部２２７を介して受け取ることとなる。制御量の差分が第二の制御指令信号算出の実行開始を判定するための閾値である実行開始判定値以下の場合は、ステップＳ９０９に進む。制御量の差分が実行開始判定値より大きい場合は、ステップＳ９３０に進む。
【０１２５】
ステップＳ９０９では、内部演算の制御量の差分が第二の制御指令信号算出の実行停止を判定するための閾値である実行停止判定値より小さい場合は、ステップＳ９３１に進む。ステップＳ９３１では、実行中フラグをクリアする（０を設定する）。実行中フラグは、制御量の差分が、実行開始判定値を超えた時にセット（１を設定）される。実行中フラグは、第二の制御指令信号の算出が実行中であることを示すフラグである。制御量の差分が、いったん実行開始判定値を超えると、その後、実行開始判定値より小さい実行停止判定値を下回るまで、実行中フラグはクリアされない。ステップＳ９３１の後、ステップＳ９０５へ進み、第二の制御指令信号算出の実行を停止する。このようにすることで、内部演算の制御量の差分が小さいときは、第二の制御指令信号算出部２２７の演算処理部２２１での実行を停止でき、消費電力を低減できる。ステップＳ９０５の後、ステップＳ９０６へ進む。
【０１２６】
ステップＳ９０９で制御量の差分が閾値である実行停止判定値以上の場合は、ステップＳ９３２に進み、ステップＳ９３２で、実行中フラグがセットされている（１が設定されている）かどうか判定する。実行中フラグがセットされている場合は、ステップＳ９０４へ進む。ステップＳ９３２で、実行中フラグがセットされていない（０が設定されている）場合はステップＳ９０５へ進む。
【０１２７】
ステップＳ９３０で、実行中フラグをセットする（１を設定）。実行中フラグは、制御量の差分が実行開始判定値よりも大きくなり、第二の制御指令信号の算出を実行中であることを示すフラグである。その後ステップＳ９０２へ進み、第一の記憶部２１３と第二の記憶部２２８に記憶されている内部演算の制御量の差分と、閾値である制限解除判定値とを比較する。制御量の差分が制限解除判定値以下の場合は、ステップＳ９０４に進む。制御量の差分が閾値である制限解除判定値より大きい場合は、ステップＳ９０３に進む。
【０１２８】
ステップＳ９０３について説明する。第一の制御指令部２１０の故障確定時に、実行する第二の制御指令信号算出部２２７の実行速度を第二の制御指令信号算出部２２７の上限速度とする。例えば、第二の制御指令信号算出部２２７の上限速度は、第一の制御指令信号算出部２１２の実行速度と同一に設定することができ、縮退運転を行うために第一の制御指令信号算出部２１２の実行速度よりも低い速度に設定することができる。ステップＳ９０３では、第二の制御指令信号算出部２２７の実行速度を第一の制御指令部２１０の故障確定時と同じ上限速度で実行する。その後ステップＳ９０６へ進む。
【０１２９】
ステップＳ９０４では、第二の制御指令信号算出の実行を（上限速度×（制御量の差分／制限解除判定値)）で算出した実行速度で実行する。このように第二の制御指令信号算出部２２７の実行速度を可変に制御することで、内部演算の制御量の差分に応じて第二の制御指令信号算出部２２７の実行速度を制御することができ、消費電力を低減できる。また、第一の制御指令部２１０の故障確定前に第二の制御指令信号算出部２２７を実行開始できるため、車両の運転状況に応じて第二の記憶部２２８に記憶されている内部演算の制御量を更新できる。第二の記憶部２２８に記憶されている内部演算の制御量を更新することで、第一の制御指令部２１０の故障確定時に、急激な変動を抑えた制御ギャップの少ない制御指令信号を第二の制御指令信号算出部２２７で算出することができる。次にステップＳ９０６に進む。
【０１３０】
ステップＳ９０６では、故障検出部２２６で第一の制御指令部２１０の故障判定条件を判定する。ステップＳ９０６で故障判定条件が成立していた場合はステップＳ９０７に進み、故障判定条件が成立していなかった場合は図１２のステップＳ９０８に進む。
【０１３１】
ステップＳ９０７では、故障判定カウンタをカウントアップして図１２のステップＳ９０８に進む。ステップＳ９０８で、故障判定カウンタを故障確定値と比較する。故障判定カウンタが故障確定値（故障確定回数）より小さい場合は、ステップＳ９２０に進む。故障判定カウンタが故障確定値（故障確定回数）以上だった場合は、ステップＳ９１０に進む。
【０１３２】
ステップＳ９２０では、故障判定カウンタが故障確定値より小さい場合の処理を行う。ステップＳ９２０で、第一の制御指令信号算出部２１２の制御を演算処理部２１１内の高速コア２１４で実行して制御指令信号を算出する。次にステップＳ９２１に進む。ステップＳ９２１で、第一の制御指令信号算出部２１２で算出した制御指令信号を第一の通信回路２０３に送信する。次にステップＳ９２２に進む。ステップＳ９２２で、出力回路の切り替え部２０６で車両制御装置１５０の出力回路を第一の通信回路２０３に接続する。次にステップＳ９２３に進む。ステップＳ９２３で、第一の通信回路２０３の出力を車両制御装置１５０の制御指令信号として駆動装置に出力し、ステップＳ９３９で処理を終了する。
【０１３３】
次にステップＳ９０８で故障判定カウンタが故障確定値（故障確定回数）以上となり第一の制御指令部２１０の故障が確定したときの処理フローについて説明する。ステップＳ９１０に進み、第二の制御指令信号算出部２２７の演算を上限速度で実行する。次にステップＳ９１１に進む。ステップＳ９１１で、第二の制御指令信号算出部２２７の演算で算出した制御指令信号を第二の通信回路２０４に送信する。次にステップＳ９１２に進む。
【０１３４】
ステップＳ９１２で、出力回路の切り替え部２０６で出力回路を第二の通信回路２０４に接続する。次にステップＳ９１３に進む。ステップＳ９１３で、第二の通信回路２０４の出力を車両制御装置１５０の制御指令信号として駆動装置に出力する。次にステップＳ９１４に進む。
【０１３５】
ステップＳ９１４では、第一の制御指令信号算出部２１２の演算の実行を停止し、ステップＳ９３９で処理を終了する。
【０１３６】
４−２．車両制御装置の故障対応の挙動
図１３に、実施の形態４に係る車両制御装置１５０の故障対応動作を示すタイムチャートを示す。故障判定カウンタと第一の制御指令部２１０、第二の制御指令部２２０の演算実行状態を示す。
【０１３７】
故障判定カウンタは縦軸に故障判定カウンタの値（初期値は０で、故障判定なしを示す）を示し、横軸に時刻を示す。
【０１３８】
第一の制御指令信号算出実行状態は、縦軸に速度、横軸に時刻を示す。処理量が０のときは実行を停止している状態を示す。上に行くほど、演算速度が速いことを示す。
【０１３９】
記憶部の制御量は、縦軸に制御量の値、横軸に時刻を示す。第一の記憶部２１３の制御量は破線で示し、第二の記憶部２２８の制御量は実線で示す。
【０１４０】
第二の制御指令信号算出実行状態は、縦軸に速度、横軸に時刻を示す。処理量が０のときは実行を停止している状態を示す。上に行くほど演算速度が速いことを示す。
【０１４１】
第一の制御指令部２１０の故障未検出の状態では、故障判定カウンタの値は０であり、正常状態である。このとき第一の制御指令信号算出は実行されている。
【０１４２】
第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分が第二の制御指令信号算出部２２７の実行開始判定値より小さい場合のとき、第二の制御指令信号算出部２２７の実行は停止する。
【０１４３】
第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分が第二の制御指令信号算出部２２７の実行開始判定値より大きく、制限解除判定値より小さい場合、実行制御部２２５で第二の制御指令信号算出部２２７の実行速度を、（上限速度×（内部演算の制御量の差分／制限解除判定値））で算出して制御する。また、第二の制御指令信号算出部２２７の実行速度を算出する他の手法としては、制御量の差分に応じて第二の制御指令信号算出部２２７の実行速度をあらかじめ決めて第二の制御指令信号算出部２２７の実行速度の算出マップとして設定しておく方法などの手段が考えられる。
【０１４４】
第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分が第二の制御指令信号算出部２２７制限解除判定値以上となった場合、実行制御部２２５で第二の制御指令信号算出部２２７の実行速度を、上限速度で実行する。
【０１４５】
ここで、制御解除判定値は、予め定められた判定差分と規定することができる。制御量の差分が前述の判定差分以下の場合は、上限速度よりも低速で第二の制御指令信号を算出する。制御量の差分が前述の判定差分より大きい場合は、上限速度で第二の制御指令信号を算出することとなる。
【０１４６】
制御量の差分が第二の制御指令信号算出の実行停止判定値より小さくなった場合、実行制御部２２５で第二の制御指令信号算出の実行を停止する。
【０１４７】
第一の制御指令部２１０の故障判定条件が成立し故障判定カウンタが進んで故障確定した場合、実行制御部２２５は第一の制御指令信号算出部２１２の演算の実行を停止する。実行制御部２２５は第二の制御指令信号算出を上限速度で実行する。第一の制御指令部２１０の故障確定時、故障検出部２２６で制御指令切り替え信号２３０を出力して、出力回路の切り替え部２０６で出力回路を第一の通信回路２０３から第二の通信回路２０４に切り替える。出力回路が第一の通信回路２０３から第二の通信回路２０４に切り替わることによって第二の制御指令信号算出部２２７で算出した制御指令信号が車両制御装置１５０の制御指令信号として出力される。
【０１４８】
実施の形態４では、第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分に応じて、第二の制御指令信号算出部２２７の実行速度を可変にすることで、内部演算の制御量の差分に応じて第二の制御指令信号算出部２２７演算を行う演算処理部２２１の処理負荷を可変に調整でき消費電力を低減できる。
【０１４９】
また、第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分が予め定められた判定差分以下の場合は、第二の制御指令信号算出部２２７の演算の実行速度を低速にすることで、第二の制御指令信号算出部２２７の演算処理を行う演算処理部２２１の処理負荷を低減し、消費電力を低減できる。反対に、内部演算の制御量の差分が前述の判定差分より大きい場合は、第二の制御指令信号算出部２２７の演算の実行速度を高速にすることで、車両の運転状況に応じて第二の記憶部２２８に記憶されている内部演算の制御量を最新値に更新する速度を速めて、第一の制御指令部２１０の故障時に、第二の記憶部２２８に記憶されている最新化された内部演算の制御量を参照した第二の制御指令信号算出部２２７の演算処理を実行でき、制御指令信号の急激な変動を抑えることができる。さらに、実施の形態４では、第一の制御指令部２１０の故障判定を、内部演算の制御量の差分とは別に実行しているが、内部演算の制御量の差分が別途定めた故障確定判定値を超えた場合に、故障を判定することとしてもよい。第二の制御指令信号算出部２２７の演算の実行速度と、駆動装置を制御する制御指令の第一の制御指令部２１０から第二の制御指令部２２０の出力への切り替えを、内部演算の制御量の差分で判断できるので、判断の処理を単純にできる利点がある。
【０１５０】
５．実施の形態５
実施の形態４では、第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分の大きさに応じて第二の制御指令信号算出部２２７の実行速度を可変にする事例を説明した。実行速度を変化させるために、演算処理部２２１の低速コア２２２、中速コア２２３、高速コア２２４コアを使い分ける例について説明した。実施の形態５では、演算処理部２２１のコアを使い分けるのではなく、演算処理の実行間隔を変化させることで、第二の制御指令信号算出部２２７の演算の実行速度を実質上可変にする。実施の形態５では、実施の形態１の図３で説明した車両制御装置１５０の構成をそのまま使用し、制御ソフトウェアを変更した状態で適用するが、演算処理部２２１のコアは１個でもよい。
【０１５１】
５−１．故障対応処理のフローチャート
図１４、図１５に実施の形態５に係る故障対応処理のフローチャートを分割して示す。故障対応処理は、車両制御装置１５０の演算処理装置９０で実行されるが、第二の制御指令部２２０が独自に演算処理装置９０を有しておりそこで実行することとする。図３には第一の記憶部２１３と第二の記憶部２２８が別体として記されているが、同一の記憶装置９１上に配置されていることとしてもよい。しかし、故障対応処理は車両制御装置１５０全体としての制御内容を決定する共通の演算処理装置９０で実行することとしてもよい。また、故障判定部２２９が独自に演算処理装置９０を有しておりそこで実行することとしてもよい。フローチャートは所定時間ごと（例えば１ｍｓごと）に実行されることとする。フローチャートの処理は、所定時間ごとではなく、車輪速センサの出力パルスごと等、他のイベント発生ごとに実施されることとしてもよい。ステップＳ１１００から故障対応処理を開始する。ここで図には示していないが、故障判定カウンタは、車両制御装置１５０に電源が投入されて起動したとき初期値０が設定されることとする。
【０１５２】
図１３、図１５の処理フローチャートでは、実施の形態４に係る図１１、図１２のフローチャートと同様の判定値に関する説明は省略する。
【０１５３】
図１４のステップＳ１１０１で、第一の記憶部２１３と第二の記憶部２２８に記憶されている制御指令信号の演算時に更新、参照が行われる内部演算の制御量（演算結果、制御指令信号の過去の履歴、積分量など）の比較を行う。故障判定部２２９で制御量の比較を行う場合は、第一の記憶部２１３に格納された制御量のデータを第一の制御指令信号算出部２１２を介して受け取り、第二の記憶部２２８に格納された制御量のデータを第二の制御指令信号算出部２２７を介して受け取ることとなる。制御量の差分が第二の制御指令信号算出の実行開始を判定するための閾値である実行開始判定値以下の場合は、ステップＳ１１０９に進む。制御量の差分が実行開始判定値より大きい場合は、ステップＳ１１３０に進む。
【０１５４】
ステップＳ１１０９では、内部演算の制御量の差分が第二の制御指令信号算出の実行停止を判定するための閾値である実行停止判定値より小さい場合は、ステップＳ１１３１に進む。ステップＳ１１３１では、実行中フラグをクリアする（０を設定する）。実行中フラグは、制御量の差分が、実行開始判定値を超えた時にセット（１を設定）される。実行中フラグは、第二の制御指令信号の算出が実行中であることを示すフラグである。制御量の差分が、いったん実行開始判定値を超えると、その後、実行開始判定値より小さい実行停止判定値を下回るまで、実行中フラグはクリアされない。ステップＳ１１３１の後、ステップＳ１１０５へ進み、第二の制御指令信号算出の実行を停止する。このようにすることで、内部演算の制御量の差分が小さいときは、第二の制御指令信号算出の演算処理部２２１での実行を停止でき、消費電力を低減できる。ステップＳ１１０５の後、ステップＳ１１０６へ進む。
【０１５５】
ステップＳ１１０９では、内部演算の制御量の差分が実行停止判定値以上の場合は、ステップＳ１１３２に進み、ステップＳ１１３２で、実行中フラグがセットされている（１が設定されている）かどうか判定する。実行中フラグがセットされている場合は、ステップＳ１１０４へ進む。ステップＳ１１３２で、実行中フラグがセットされていない（０が設定されている）場合はステップＳ１１０５へ進む。
【０１５６】
ステップＳ１１３０で、実行中フラグをセットする（１を設定）。実行中フラグは、制御量の差分が実行開始判定値よりも大きくなり、第二の制御指令信号の算出を実行中であることを示すフラグである。その後ステップＳ１１０２へ進み、第一の記憶部２１３と第二の記憶部２２８に記憶されている内部演算の制御量の差分と、閾値である制限解除判定値とを比較する。制御量の差分が閾値である制限解除判定値以下の場合は、ステップＳ１１０４に進む。制御量の差分が閾値である制限解除判定値より大きい場合は、ステップＳ１１０３に進む。
【０１５７】
ステップＳ１１０３について説明する。第一の制御指令部２１０の故障確定時に、実行する第二の制御指令信号算出の実行間隔を第二の制御指令信号算出の最短実行間隔とする。例えば、第二の制御指令信号算出の最短実行間隔は、第一の制御指令信号算出の実行間隔と同一に設定することができ、縮退運転を行うために第一の制御指令信号算出の実行間隔よりも長い実行間隔に設定することができる。ステップＳ１１０３では、第二の制御指令信号算出の実行間隔を第一の制御指令部２１０の故障確定時と同じ最短実行間隔で実行する。その後ステップＳ１１０６へ進む。
【０１５８】
ステップＳ１１０４では、第二の制御指令信号算出の実行を（最短実行間隔×（制限解除判定値／制御量の差分））で算出した実行間隔で実行する。このように第二の制御指令信号算出の実行間隔を可変に制御することで、内部演算の制御量の差分に応じて第二の制御指令信号算出の実行間隔を制御することができ、実質上制御速度を低下させて消費電力を低減できる。また、第一の制御指令部２１０の故障確定前に第二の制御指令信号算出を実行開始できるため、車両の運転状況に応じて第二の記憶部２２８に記憶されている内部演算の制御量を更新できる。第二の記憶部２２８に記憶されている内部演算の制御量を更新することで、第一の制御指令部２１０の故障確定時に、急激な変動を抑えた制御ギャップの少ない制御指令信号を第二の制御指令信号算出部２２７で算出することができる。次にステップＳ１１０６に進む。
【０１５９】
ステップＳ１１０６で故障検出部２２６により第一の制御指令部２１０の故障判定条件を判定する。ステップＳ１１０６で故障判定条件が成立していた場合はステップＳ１１０７に進み、故障判定条件が成立していなかった場合は図１５のステップＳ１１０８に進む。
【０１６０】
ステップＳ１１０７では、故障判定カウンタをカウントアップして図１５のステップＳ１１０８に進む。ステップＳ１１０８で、故障判定カウンタを故障確定値（故障確定回数）と比較する。故障判定カウンタが故障確定値（故障確定回数）より小さい場合は、ステップＳ１１２０に進む。故障判定カウンタが故障確定値以上だった場合は、ステップＳ１１１０に進む。
【０１６１】
ステップＳ１１２０では、故障判定カウンタが故障確定値より小さい場合の処理を行う。ステップＳ１１２０で、第一の制御指令信号算出部２１２の制御を演算処理部２１１内の高速コア２１４で実行して制御指令信号を算出する。次にステップＳ１１２１に進む。ステップＳ１１２１で、第一の制御指令信号算出部２１２で算出した制御指令信号を第一の通信回路２０３に送信する。次にステップＳ１１２２に進む。
【０１６２】
ステップＳ１１２２で、出力回路の切り替え部２０６で車両制御装置１５０の出力回路を第一の通信回路２０３に接続する。次にステップＳ１１２３に進む。ステップＳ１１２３で、第一の通信回路２０３の出力を車両制御装置１５０の制御指令信号として駆動装置に出力し、ステップＳ１１３９で処理を終了する。
【０１６３】
次にステップＳ１１０８で故障判定カウンタが故障確定値以上となり第一の制御指令部２１０の故障が確定したときの処理フローについて説明する。ステップＳ１１１０に進み、第二の制御指令信号算出部２２７の演算の実行を最短実行間隔で実行する。次にステップＳ１１１１に進む。
【０１６４】
ステップＳ１１１１で、第二の制御指令信号算出部２２７の演算で算出した制御指令信号を第二の通信回路２０４に送信する。次にステップＳ１１１２に進む。ステップＳ１１１２で、出力回路の切り替え部２０６の出力回路を第二の通信回路２０４に接続する。次にステップＳ１１１３に進む。
【０１６５】
ステップＳ１１１３で、第二の通信回路２０４の出力を車両制御装置１５０の制御指令信号として駆動装置に出力する。次にステップＳ１１１４に進む。
【０１６６】
ステップＳ１１１４では、第一の制御指令信号算出部２１２の実行を停止し、ステップＳ１１３９で処理を終了する。
【０１６７】
５−２．車両制御装置の故障対応の挙動
図１６に、実施の形態５に係る車両制御装置１５０の故障対応動作を示すタイムチャートを示す。故障判定カウンタと、第一の制御指令部２１０の演算状況、記憶部の制御量の差分、第二の制御指令部２２０の演算実行状態を示す。
【０１６８】
故障判定カウンタは縦軸に故障判定カウンタの値（初期値０は故障判定なし）を示し、横軸に時刻を示す。
【０１６９】
第一の制御指令信号算出実行状態は、縦軸に処理量、横軸に時刻を示す。処理量が０のときは実行を停止している状態を示す。単位時間当たりの処理量が多い場合は演算速度が速いことを示す。
【０１７０】
記憶部の制御量は、縦軸に制御量の値、横軸に時刻を示す。第一の記憶部２１３の制御量は破線で示し、第二の記憶部２２８の制御量は実線で示す。
【０１７１】
第二の制御指令信号算出実行状態は、縦軸に処理量、横軸に時刻を示す。処理量が０のときは実行を停止している状態を示す。単位時間当たりの処理量が多い場合は演算速度が速いことを示す。
【０１７２】
第一の制御指令部２１０の故障未検出の状態では、故障判定カウンタの値は０であり、正常状態である。このとき第一の制御指令信号算出は実行されている。
【０１７３】
第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分が第二の制御指令信号算出部２２７の実行開始判定値より小さい場合のとき、第二の制御指令信号算出部２２７の実行は停止している。
【０１７４】
第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分が第二の制御指令信号算出部２２７の実行開始判定値より大きく、制限解除判定値より小さい場合、実行制御部２２５で第二の制御指令信号算出部２２７演算の実行間隔を、（最短実行間隔×（制限解除判定値／内部演算の制御量の差分））で算出して制御する。また、第二の制御指令信号算出部２２７の実行間隔を算出する他の手法としては、制御量の差分に応じて第二の制御指令信号算出部２２７の実行間隔をあらかじめ決めて第二の制御指令信号算出部２２７の実行間隔の算出マップとして設定しておく方法などの手段が考えられる。
【０１７５】
第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分が第二の制御指令信号算出部２２７制限解除判定値以上となった場合、実行制御部２２５で第二の制御指令信号算出部２２７の実行間隔を、最短実行間隔で実行する。
【０１７６】
ここで、制御解除判定値は、予め定められた第二の判定差分と規定することができる。制御量の差分が前述の第二の判定差分以下の場合は、第二の制御指令信号算出部２２７演算の実行間隔を、（最短実行間隔×（制限解除判定値／内部演算の制御量の差分））で算出して制御する。すなわち、最短実行間隔よりも長い時間間隔で演算を実施する。平均実行速度は、最短実行間隔での実施よりも遅くなる。制御量の差分が前述の第二の判定差分より大きい場合は、最短実行間隔で第二の制御指令信号を算出することとなる。平均実行速度はより速くなる。
【０１７７】
制御量の差分が第二の制御指令信号算出の実行停止判定値より小さくなった場合、実行制御部２２５で第二の制御指令信号算出の実行を停止する。
【０１７８】
第一の制御指令部２１０の故障判定条件が成立し故障判定カウンタが進んで故障確定した場合、実行制御部２２５は第一の制御指令信号算出部２１２の演算の実行を停止する。実行制御部２２５は第二の制御指令信号算出の実行を最短実行間隔で実行する。第一の制御指令部２１０の故障確定時、故障検出部２２６で制御指令切り替え信号２３０を出力して、出力回路の切り替え部２０６で出力回路を第一の通信回路２０３から第二の通信回路２０４に切り替える。出力回路が第一の通信回路２０３から第二の通信回路２０４に切り替わることによって第二の制御指令信号算出部２２７で算出した制御指令信号が車両制御装置１５０の制御指令信号として出力される。
【０１７９】
上記のように実施の形態５では、第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分の大きさに応じて、第二の制御指令信号算出の実行間隔を可変にすることで、第二の制御指令信号算出の演算を行う演算処理部２２１の処理負荷を可変に調整でき消費電力を低減した状態で第二の制御指令信号算出の演算処理を実行することができる。第二の制御指令信号算出の実行間隔を可変にすることで、実質的な演算速度を変化させるので、実施の形態４のように、複数のコアを切り換えて第二の制御指令信号算出部２２７の処理速度を切り換える必要がない。よって、複数のコアを使用することなしに、第二の制御指令信号算出部２２７の処理速度を変化させることができ、コスト削減することも可能である。
【０１８０】
また、内部演算の制御量の差分が予め定めた第二の判定差分以下の場合は、第二の制御指令信号算出の実行間隔を長くすることで、実質的に処理速度を低下させ、第二の制御指令信号算出の演算処理を行う演算処理部２２１の処理負荷を低減し、消費電力を低減できる。反対に、制御量の差分が前述の第二の判定差分よりも大きい場合は、第二の制御指令信号算出の実行間隔を短くすることで実質的に処理速度を向上させ、第二の制御指令信号算出部２２７の制御指令信号を算出できるまでの応答性の向上を高めて、第一の制御指令部の故障時に即時に制御指令信号の出力を行うことができる。
【０１８１】
上記のように実施の形態５では、第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分と比較して、第二の制御指令信号算出の実行開始を判定する実行開始判定値と第二の制御指令信号算出の実行停止を判定する実行停止判定値を設けることにより、内部演算の制御量が小さい場合の第二の制御指令信号算出部２２７の実行を停止して不要な実行を防止することで、第二の制御指令信号算出部２２７の実行に伴う消費電力を低減できる。
【０１８２】
また、第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量と比較して、第二の制御指令信号算出部２２７の実行開始を判定する実行開始判定値と第二の制御指令信号算出部２２７の実行停止を判定する実行停止判定値の設定値にヒステリシスを設けることにより、第二の制御指令信号算出部２２７の実行と停止を短時間に繰り返し動作することを防止して、制御指令信号の振動による車両の挙動の変動を防止する。
【０１８３】
６．実施の形態６
実施の形態４および実施の形態５では、第二の制御指令信号算出部２２７の実行速度を可変にする事例を説明した。実施の形態６では、第二の制御指令信号算出部２２７が演算を実行する機能を選択する事例について説明する。演算を実行する機能を選択して絞り込むことによって、第二の制御指令部２２０の演算処理の負荷を変化させることができる。単位時間当たりに実行する演算の数を増減することによって、実質的に第二の制御指令信号算出部２２７の演算の平均処理速度を変化させていることになる。実施の形態６では、実施の形態１の図３で説明した車両制御装置１５０の構成をそのまま使用し、制御ソフトウェアを変更した状態で適用するが、演算処理部２２１のコアは１個でもよい。
【０１８４】
実施の形態６では、第二の制御指令信号算出部２２７の制御内容を機能ごとに分割し、それぞれの機能ごとに優先度付けを行い、故障判定カウンタの値に応じて優先度の高い機能から順次実行開始する。第二の制御指令信号算出部２２７の制御内容を機能ごとに３つに分割し、分割した３つの機能をそれぞれ優先度の高い順に、優先度（高）制御、優先度（中）制御、優先度（低）制御としている。第二の制御指令信号算出部２２７の優先度（高）制御、優先度（中）制御、優先度（低）制御の３つの制御の実行開始をそれぞれ判定するため、故障判定カウンタの値と比較する閾値を設定しておく。第二の制御指令信号算出部２２７の優先度（高）制御を開始する閾値を優先度（高）制御の実行判定値、優先度（中）制御を開始する閾値を優先度（中）制御の実行判定値、優先度（低）制御を開始する閾値は優先度（低）制御の実行判定値とする。０＜優先度（高）制御の実行判定値＜優先度（中）制御の実行判定値＜優先度（低）制御の実行判定値となるように設定する。優先度（低）制御の実行判定値の値は故障確定値と同一に設定してもよい。
【０１８５】
実施の形態６では、第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分の大きさに応じて、優先度の高い順に第二の制御指令信号の算出を実施する。差分が小さい場合は優先度の高い制御指令信号の算出のみを実施する。差分が大きくなるにしたがって、優先度（中）、優先度（小）の制御指令信号の算出を追加してゆく。これによって単位時間に実行する制御指令信号の算出処理量が変化するので、実質的に制御速度を変更していることになる。
【０１８６】
実施の形態３に係る図１０の説明における、故障カウンタのカウント値の大きさに応じて、実施する第二の制御指令信号の算出の対象が、優先度（高）のみから、優先度（高）と優先度（中）、優先度（高）と優先度（中）優先度（低）までと変化してゆく挙動に対して、故障カウンタのカウント値の代わりに、内部演算の制御量の差分の大きさに応じて変化してゆくことにした場合が実施の形態６に相当する。実施の形態６について、図面による説明は省略する。
【０１８７】
実施の形態６では、第一の記憶部２１３と第二の記憶部２２８に記憶された内部演算の制御量の差分の大きさに応じて、第二の制御指令信号算出をその機能ごとに選択して実行することで、第二の制御指令信号算出部２２７が演算を行う演算処理部２２１の実質的な処理速度を変更し、処理負荷を可変に調整でき消費電力を低減した状態で第二の制御指令信号算出部２２７の演算処理を実行することができる。また、内部演算の制御量の差分が大きい場合は、第二の制御指令信号算出部２２７の演算処理を高い頻度で実行するため、第一の制御指令部２１０が故障確定した場合であっても、優先度に応じて選択された機能に関連する制御量が最新値に更新できているため、大きな問題がない。内部演算の制御量の差分が小さい場合は、第二の制御指令信号算出部２２７の演算処理を高い頻度で実行していなくても問題がない。よって、第一の制御指令部２１０が故障確定した場合の制御指令信号の急激な変動を抑えることができる。
【０１８８】
また、内部演算の制御量の差分が小さい場合は、第二の制御指令信号算出部２２７の優先度の高い機能を選択して実行することで、第二の制御指令信号算出部２２７の演算処理を行う演算処理部２２１の処理負荷を低減でき、消費電力を低減できる。第二の記憶部２２８に記憶されている内部演算の制御量のうち、優先度の高い機能に関連する制御量が最新値に更新でき、第一の制御指令部の故障時に第二の制御指令信号算出部２２７の優先度の高い機能から順に算出される制御指令信号の精度および信頼性が高まる。
【０１８９】
ここで、例えば、制御解除判定値を、予め定められた第三の判定差分と規定することができる。制御量の差分が前述の第三の判定差分以下の場合は、第二の制御指令信号算出部２２７の優先度の高い機能を選択して実行することで、第二の制御指令信号算出部２２７の演算処理を行う演算処理部２２１の処理負荷を低減でき、消費電力を低減できる。事実上、第二の制御指令部２２０の演算の平均速度を低下させていることになる。
【０１９０】
制御量の差分が前述の第三の判定差分より大きい場合は、第二の制御指令信号算出部２２７の優先度がより低い機能も併せて選択して実行するので、処理量は増加し、事実上、第二の制御指令部２２０の演算の平均速度を向上させることとなる。
【０１９１】
本願は、様々な例示的な実施の形態及び実施例が記載されているが、１つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも１つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも１つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
【符号の説明】
【０１９２】
１  自動運転システム、１５０  車両制御装置、２１０  第一の制御指令部、２１３  第一の記憶部、２２０  第二の制御指令部、２２８  第二の記憶部、２２９  故障判定部、２０６  切り替え部、１６０  ブレーキ制御装置、１７０  ステアリング制御装置、１８０  トルク出力制御装置
【要約】      （修正有）【課題】消費電力を抑制しつつ、第一の制御指令部の故障時に急激な変動を抑えながら第二の制御指令部による制御指令信号の出力に切り替える車両制御装置を提供する。【解決手段】車両制御装置１５０は、車両の駆動装置に出力する制御信号を切り替える切り替え部２０６と、切り替え部２０６に第一の制御信号を出力する第一制御指令部２１０と、切り替え部に第二の制御信号を出力する第二制御指令部２２０と、第一制御指令部２１０の故障の度合いを判定し、故障の度合いが予め定めた故障確定度合いを超えた場合は故障を確定し、故障の度合いに応じて第二制御指令部２２０の制御速度を変更し、故障を確定した場合は切り替え部２０６の出力を第一の制御信号から第二の制御信号に切り替える故障判定部２２９と、を備えた車両制御装置。【選択図】図３【図１】
0006925483.tif 000002
【図２】
0006925483.tif 000003
【図３】
0006925483.tif 000004
【図４】
0006925483.tif 000005
【図５】
0006925483.tif 000006
【図６】
0006925483.tif 000007
【図７】
0006925483.tif 000008
【図８】
0006925483.tif 000009
【図９】
0006925483.tif 000010
【図１０】
0006925483.tif 000011
【図１１】
0006925483.tif 000012
【図１２】
0006925483.tif 000013
【図１３】
0006925483.tif 000014
【図１４】
0006925483.tif 000015
【図１５】
0006925483.tif 000016
【図１６】
0006925483.tif 000017