以下、本願に係る車両制御装置の実施の形態について、図面を参照して説明する。
1.実施の形態1
1−1.自動運転システム
図1は、実施の形態1に係る自動運転システム1の構成を説明する図である。ADASに適用する場合も同様の図で説明できるが、ここでは例示的に自動運転システム1への応用の場合を示すこととする。図1の自動運転システム1では、外界センシング装置110、HMI(Human Machine Interface)120、ナビゲーション装置130、および車両センサ140が車両制御装置150に接続され入力情報を伝達する。車両制御装置150は、電源を供給するバッテリ190に接続され、さらにステアリング制御装置170、ブレーキ制御装置160、およびトルク出力制御装置180からなる駆動装置に接続され、制御信号を出力する。
外界センシング装置110は、カメラ111と、レーダ(Radar)112と、ライダ(LIDAR)113と、を備える。カメラ111は、自車両の任意の箇所に少なくとも一つ設けられ、自車両の周囲を撮像して画像情報を取得する。カメラ111は、単眼カメラまたはステレオカメラであり、例えばCCD(Charge−Coupled Device)、CMOS(Complementary Metal Oxide Semiconductor)等の固体撮像素子を利用したデジタルカメラが用いられる。レーダ112は、自車両の任意の箇所に少なくとも一つ設けられ、自車両の周囲に存在する物体の位置(距離及び方位)を検出する。具体的には、レーダ112は、車両の周囲にミリ波等の電磁波を照射し、照射された電磁波が物体によって反射された反射波を検出することで、物体の位置を検出する。
ライダ113は、自車両の任意の箇所に少なくとも一つ設けられ、自車両の周囲に存在する物体の位置(距離及び方位)および性質を検出する。具体的には、ライダ113は、車両の周囲にミリ波よりも短波長の電磁波(紫外光、可視光、近赤外光等の電磁波)をパルス状に照射し、照射された電磁波が物体によって散乱された散乱波を検出することで、レーダ112よりも遠距離に存在する物体の位置及び性質を検出する。外界センシング装置110は、センサフュージョン技術によって、上述のカメラ111、レーダ112及びライダ113等で取得された各情報を総合的に評価し、より正確な情報を後述する車両制御装置150に出力する。
HMI120は、運転者等に各種情報を提示するとともに、運転者等による入力操作を受け付けるインターフェースである。HMI120は、例えば、いずれも図示しない表示装置、シートベルト装置、ハンドルタッチセンサ、ドライバモニタカメラ、各種操作スイッチ等を備える。
HMI120の表示装置は、例えば画像を表示するとともに運転者等による操作を受け付けるタッチパネル式表示装置である。シートベルト装置は、例えばシートベルトプリテンショナーを含んで構成され、例えば車両に保安上の問題が生じたときに、シートベルトを振動させて運転者に報知、警告する。ハンドルタッチセンサは、車両のステアリングホイールに設けられ、ステアリングホイールに対する運転者の接触及び運転者がステアリングホイールを握る圧力を検出する。ドライバモニタカメラは、運転者の顔及び上半身を撮像する。各種操作スイッチは、例えば自動運転の開始及び停止を指示するGUI(Graphical User Interface)式または機械式の自動運転切替スイッチ等を含んで構成される。また、HMI120は、外部との通信機能を有する各種通信装置を含んでいてもよい。
ナビゲーション装置130は、運転者等がナビゲーション装置130を利用するための表示装置、スピーカ、操作スイッチ等を、上述のHMI120内に備える。ナビゲーション装置130は、GNSS(Global Navigation Satellite System)衛星からの受信信号に基づいて、車両の位置を特定する。ただし、後述する車両センサ140からの取得情報により、車両の位置を特定してもよい。
ナビゲーション装置130は、例えばGNSS衛星からの受信信号により特定された自車両の位置から、運転者等により入力された目的地までの経路を、ナビゲーション装置130内に記憶された地図情報を参照して決定する。このナビゲーション装置130により決定された経路は、上述のHMI120内の表示装置、スピーカ等により運転者等に経路案内される。
ナビゲーション装置130の高精度な地図情報としては、例えば、道路の種別、道路の車線数、非常駐車帯の位置、車線の幅員、道路の勾配、道路の位置、車線カーブの曲率、車線の合流及び分岐ポイント位置、道路標識等の情報、交差点の位置情報、信号機の有無情報、停止線の位置情報、渋滞情報、他車情報等が含まれる。
なお、ナビゲーション装置130は、例えば、スマートフォン、タブレット端末等の端末装置により構成されてもよい。また、ナビゲーション装置130は、いずれも図示しない各種セルラー網、車載専用通信ユニットTCU(Telematics Communication Unit)等を備え、クラウドサーバ等との間で送受信可能となっている。これにより、車両位置情報等が外部に送信される他、上述の地図情報が随時更新される。
車両センサ140は、自車両の各種挙動を検出するための複数のセンサを備える。例えば、車両センサ140は、自車両の速度(車速)を検出する車速センサ、自車両の各車輪の速度を検出する車輪速センサ、自車両の加減速度を検出する前後加速度センサ、自車両の横加速度を検出する横加速度センサ、自車両のヨーレートを検出するヨーレートセンサ、自車両の向きを検出する方位センサ、および、自車両の勾配を検出する勾配センサ等を備える。
また、車両センサ140は、各種操作デバイスの操作量を検出する複数のセンサを備える。例えば、車両センサ140は、アクセルペダルの踏込(開度)量を検出するアクセルペダルセンサ、ステアリングホイールの操作量(操舵角)を検出する舵角センサ、操舵トルクを検出するトルクセンサ、ブレーキペダルの踏込量を検出するブレーキペダルセンサ、シフトレバーの位置を検出するシフトセンサ、および、後述のステアリング制御装置170の転舵機構が車輪(転舵輪)を駆動制御した角度(即ち転舵角)を示す量(例えば、ラックストローク量)を検出する転舵角センサ等を備える。
車両制御装置150は、外界センシング装置110とHMI120とナビゲーション装置130と車両センサ140の情報を入力とし、車両の走行状態と運転者の状態と周辺状況を認知し、車両のステアリング制御装置170、ブレーキ制御装置160、トルク出力制御装置180等の駆動装置に対して制御指示を行う。例えば、道路上の車線をカメラで認識して自車の走行車線を維持するようにステアリングの操舵角を制御する。また、前方の車両、障害物をレーダで認識して、衝突の恐れがあるときはブレーキ操作を行い車両の速度を低減させ、エンジンまたはモータのトルク出力を低減するように働きかけて衝突を回避するなどの制御を行う。
ステアリング制御装置170は、車両制御装置150から出力される制御指令信号に従って、後車輪(操舵輪)または前車輪(操舵輪)もしくは全車輪の向きを変更する。ブレーキ制御装置160は、例えば油圧式ブレーキを併用する電動サーボブレーキで構成される。ブレーキ制御装置160は、車両制御装置150から出力される制御指令に従って車輪を制動する。トルク出力制御装置180は、自車両の駆動源である電動機等で構成される。トルク出力制御装置180は、車両制御装置150から出力される制御指令に従って自車両が走行するための走行駆動力(トルク)を生成し、トランスミッションを介して各車輪に伝達する。
1−2.車両制御装置のハードウェア構成
図2は、車両制御装置150のハードウェア構成図である。本実施の形態では、車両制御装置150は、車両を制御する制御装置である。車両制御装置150の各機能は、車両制御装置150が備えた処理回路により実現される。具体的には、車両制御装置150は、処理回路として、CPU(Central Processing Unit)等の演算処理装置90(コンピュータ)、演算処理装置90とデータのやり取りをする記憶装置91、演算処理装置90に外部の信号を入力する入力回路92、及び演算処理装置90から外部に信号を出力する出力回路93等を備えている。
演算処理装置90として、ASIC(Application Specific Integrated Circuit)、IC(Integrated Circuit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、各種の論理回路、及び各種の信号処理回路等が備えられてもよい。また、演算処理装置90として、同じ種類のものまたは異なる種類のものが複数備えられ、各処理が分担して実行されてもよい。記憶装置91として、演算処理装置90からデータを読み出し及び書き込みが可能に構成されたRAM(Random Access Memory)、演算処理装置90からデータを読み出し可能に構成されたROM(Read only Memory)等が備えられている。入力回路92は、外界センシング装置110、HMI120、ナビゲーション装置130、車両センサ140等の各種のセンサ、スイッチ、および通信線が接続され、これらセンサ、スイッチの出力信号と通信情報を演算処理装置90に入力するA/D変換器、通信回路等を備えている。出力回路93は、ブレーキ制御装置160、ステアリング制御装置170、トルク出力制御装置180等の駆動装置が接続され、これら駆動装置に演算処理装置90からの制御信号を出力する駆動回路等を備えている。
車両制御装置150が備える各機能は、演算処理装置90が、ROM等の記憶装置91に記憶されたソフトウェア(プログラム)を実行し、記憶装置91、入力回路92、及び出力回路93等の車両制御装置150の他のハードウェアと協働することにより実現される。なお、車両制御装置150が用いる閾値、判定値等の設定データは、ソフトウェア(プログラム)の一部として、ROM等の記憶装置91に記憶されている。車両制御装置150の有する各機能は、それぞれソフトウェアのモジュールで構成されるものであってもよいが、ソフトウェアとハードウェアの組み合わせによって構成されるものであってもよい。
1−3.車両制御装置の機能
次に、実施の形態1に係る車両制御装置150の機能について説明する。図3は、車両制御装置150の機能を説明する構成図である。車両制御装置150は、第一の制御指令部210と、第二の制御指令部220と、第一の通信回路203と、第二の通信回路204と出力回路の切り替え部206で構成される。車両制御装置150は、第一の制御指令部210と第一の通信回路203、第二の制御指令部220と第二の通信回路204がそれぞれ別々の基板上に構成されていてもよい。
第一の制御指令部210は、自動運転の制御指令信号の算出を行う。車両制御装置150の外部に接続されたバッテリ190から電源供給を受けて実行する。車両の走行状況、運転者の状態、車両の周辺環境をセンシングする外界センシング装置110とHMI120とナビゲーション装置130と、車両センサ140の入力情報をもとに制御指令信号の演算を行い、第一の通信回路203により出力回路の切り替え部206を介してステアリング制御装置170、ブレーキ制御装置160、トルク出力制御装置180といった駆動装置に制御指令信号を出力する。
第一の制御指令部210は、演算処理部211と第一の制御指令信号算出部212と第一の記憶部213で構成される。第一の制御指令信号算出部212は、自動運転の制御指令信号を演算するための処理フローが格納されており、第一の制御指令信号算出部212の演算処理は演算処理部211内に設置された高速コア214で実行される。第一の記憶部213は、第一の制御指令信号算出部212の演算の処理フロー内で制御指令信号の演算時に更新、参照が行われる内部演算の制御量(演算結果、制御指令信号の過去の履歴、積分量など)を記憶している。
第二の制御指令部220は、自動運転の制御指令信号の算出を行う第一の制御指令部210が故障したときに制御指令信号の算出の代行を行う。車両制御装置150の外部に接続されたバッテリ190から電源供給を受けて実行する。車両の走行状況、運転者の状態、車両の周辺環境をセンシングする外界センシング装置110とHMI120とナビゲーション装置130と、車両センサ140の入力情報をもとに制御指令信号の演算を行い、第二の通信回路204により出力回路の切り替え部206を介してステアリング制御装置170、ブレーキ制御装置160、トルク出力制御装置180といった駆動装置に制御指令信号を出力することができる。
第二の制御指令部220は、演算処理部221と実行制御部225と故障検出部226と第二の制御指令信号算出部227と第二の記憶部228で構成される。第二の制御指令信号算出部227には、第一の制御指令部210が故障したときに行う自動運転の制御指令信号を演算するための処理フローが格納されている。第二の制御指令信号算出部227には、第一の制御指令信号算出部212と同一の演算処理が設定されていてもよい。また、第二の制御指令信号算出部227には、第一の制御指令部210の故障時に必要な機能に限定した縮退運転を行うための演算処理が設定されていてもよい。第二の記憶部228は、第二の制御指令信号算出部227の演算の処理フロー内で制御指令信号の演算時に更新、参照が行われる内部演算の制御量(演算結果、制御指令信号の過去の履歴、積分量など)を記憶している。
故障検出部226は、第一の制御指令部210の故障検出を行う。具体的には、故障検出部226は、第一の制御指令信号算出部212の自己診断部から診断情報を受信し、故障判定条件が成立しているかどうかを判定する。また、第一の制御指令信号算出部212と通信ができなくなった場合は、通信途絶として第一の制御指令部210の故障を判定することができる。第一の制御指令部210の動作が故障判定条件を満たした回数を故障判定カウンタでカウントする。第一の制御指令部210の故障判定条件が成立して故障判定カウンタの値が故障確定値(故障確定回数)未満のときを故障の兆候があるとして、故障の度合いを故障判定カウンタの値から求める。そして、故障判定カウンタの値が故障確定値(故障確定回数)以上になったときに第一の制御指令部210の故障を確定し、制御指令切り替え信号230を出力する。以上、故障確定の判断を故障判定カウンタの値から求める手法について説明したが、故障の種類に応じて故障を確定することとしてもよい。例えば、第一の制御指令部210のウォッチドッグ・タイマによるリセット検出は即座に故障を確定し、センサ検出値の正常範囲逸脱は所定時間継続を待って故障の確定を行うようにしてもよい。また、故障の度合いを測る指標として、故障判定カウンタのカウンタ値を用いる例について説明した。しかし、故障の種類に応じて故障の度合いを決定することにしてもよい。例えば、予めセンサの重要度に応じてセンサ異常の場合の故障の度合いを決定しておくことができる。
実行制御部225は、故障検出部226より第一の制御指令部210の故障情報を受信して、第二の制御指令信号算出部227の演算処理を行う演算処理部221に第二の制御指令信号算出部227の演算の実行を指示する。また実行制御部225は、故障検出部226から受信した故障情報に含まれる故障の度合いから、第二の制御指令信号算出部227の演算処理の速度を変更する機能を有する。実行制御部225は、第二の制御指令信号算出部227の演算処理を行う演算処理部221に対して演算を行うコアを、低速コア222、中速コア223、および高速コア224から選択して演算速度を変更することができる。さらに、実行制御部225は、第一の記憶部213と第二の記憶部228を故障検出部226等を介してモニタして記憶されている内部演算の制御量を比較して差分によって、第二の制御指令信号算出部227の演算処理速度を変更する機能を有していてもよい。
演算処理部221は、実行制御部225の指示に従い第二の制御指令信号算出部227の演算処理を実行する。演算処理部221は、低速コア222、中速コア223、および高速コア224で構成される。低速コア222、中速コア223、および高速コア224は、それぞれの処理性能に応じてコア内で演算処理を行う動作クロックを設定することができる。例えば、低速コア222の動作クロックは1MHzから10MHz、中速コア223の動作クロックは10MHzから50MHz、高速コア224は、50MHzから100MHzというようにそれぞれのコアの処理性能内で動作クロックを設定できる。演算処理を低速で実行したい場合は低速コア222により1MHzで実行し、高速で実行したい場合は高速コア224により100MHzで実行するなど動作クロックの割り当てを変更することによって演算処理の実行速度を変更することができる。反対に、演算処理を実行する動作クロックが高いほど消費電力は大きくなる。近年では、演算処理を実行していない間は消費電力を発生しないスリープモードに入れることにより、さらに消費電力を低減する機能を有するコアも存在する。消費電力を低減するためには、演算処理を必要な状況に応じて実行速度、実行間隔を制御して実行することができる。
出力回路の切り替え部206は、故障検出部226より制御指令切り替え信号230を受信する。第一の制御指令部210が正常時は第一の制御指令信号算出部212の制御指令信号を第一の通信回路203から出力する。第一の制御指令部210が故障時は第二の制御指令信号算出部227の制御指令信号を第二の通信回路204から出力する。出力回路の切り替え部206は、第一の通信回路203と第二の通信回路204から受け取った制御指令信号を切り替えて、車両制御装置150からステアリング制御装置170、ブレーキ制御装置160、トルク出力制御装置180といった駆動装置に対して出力する。
ここで、故障検出部226と実行制御部225を合わせて故障判定部229と称する。故障判定部229は、第一の制御指令部の故障に対応して、第二の制御指令部220の演算速度(制御速度)を変更し、第一の制御指令部210の故障の確定に対応し出力回路の切り替え部206に制御指令切り替え信号230を出力して駆動装置への制御指令信号を、第一の制御指令部210の出力から第二の制御指令部220の出力に切り替える。ここでは、第二の制御指令部220の制御速度の変更と出力回路の切り替え部206の切り替えを故障判定部229が実施する事例を説明した。しかし、故障判定部229の検出した故障情報を他の制御装置が利用して、第二の制御指令部220の制御速度の変更と出力回路の切り替え部206の切り替えを実行することとしてもよい。実質的には、故障判定部229が故障情報を介して第二の制御指令部220の制御速度の変更と出力回路の切り替え部206の切り替えを実行させていることになり、車両制御装置150の故障に対する対応としては、変わりがない。
1−4.故障対応処理のフローチャート
図4に実施の形態1に係る車両制御装置150の故障対応処理を示すフローチャートを示す。図4の故障対応処理は、車両制御装置150の演算処理装置90で実行されるが、第二の制御指令部220が独自に演算処理装置90を有しておりそこで実行することとする。しかし、故障対応処理は車両制御装置150全体としての制御内容を決定する共通の演算処理装置90で実行することとしてもよい。また、故障判定部229が独自に演算処理装置90を有しておりそこで実行することとしてもよい。フローチャートは所定時間ごと(例えば1msごと)に実行されることとする。フローチャートの処理は、所定時間ごとではなく、車輪速センサの出力パルスごと等、他のイベント発生ごとに実施されることとしてもよい。ステップS300から故障対応処理を開始する。ここで図には示していないが、故障判定カウンタは、車両制御装置150に電源が投入されて起動したとき初期値0が設定されることとする。
ステップS301では、故障検出部226で第一の制御指令部210の故障判定条件が成立しているか判定する。具体的には、故障検出部226は、第一の制御指令信号算出部212の自己診断部から診断情報を受信し、故障判定条件が成立しているかどうかを判定する。ステップS301で故障判定条件が成立していた場合はステップS302に進み、故障判定条件が成立していなかった場合はステップS303に進む。
ステップS302では、故障判定カウンタをカウントアップしてステップS303に進む。ステップS303で、故障判定カウンタを故障確定値と比較する。故障判定カウンタが故障確定値未満だった場合は、ステップS304に進む。ステップS304で故障判定カウンタを初期値0(故障判定条件非成立の値)と比較する。
ステップS304で故障判定カウンタが初期値0を超えていない場合(故障判定条件が非成立)、ステップS330に進み、第二の制御指令信号算出部227の演算の実行を停止する。このようにすることで、第一の制御指令部210が正常に動作している間の第二の制御指令信号算出部227の演算の演算処理部221での実行を停止でき、消費電力を低減できる。次にステップS321に進む。
ステップS304で故障判定カウンタが初期値0を超えてカウントされていた場合(故障判定条件が成立)、ステップS320に進み、演算処理部221で第二の制御指令信号算出部227の演算の実行を開始する。演算処理部221で実行する第二の制御指令信号算出部227の演算の実行速度は第一の制御指令部210の故障の度合いに応じて実行速度を切り替える。
ステップS320の第二の制御指令信号算出部227の演算の実行速度の設定について述べる。第一の制御指令部210の故障確定時に実行する第二の制御指令信号算出の実行速度を第二の制御指令信号算出の「上限速度」とする。例えば、第二の制御指令信号算出の上限速度は、第一の制御指令信号算出の実行速度と同一に設定することができ、縮退運転を行うために第一の制御指令信号算出の実行速度よりも低い速度に設定することができる。ステップS320での第二の制御指令信号算出の実行は、故障検出部226より受信した第一の制御指令部210の故障判定カウンタと故障確定値をもとに、故障の度合い(故障判定カウンタ/故障確定値)を算出して第二の制御指令信号算出の実行速度を(上限速度×(故障判定カウンタ/故障確定値))の式で算出する。
このように第二の制御指令信号算出の実行速度を可変に制御することで、第一の制御指令部210の故障の兆候を検出したときに、故障の度合い(故障判定カウンタ/故障確定値)に応じて第二の制御指令信号算出の実行速度を制御することができ、消費電力を低減できる。また、第一の制御指令部210の故障確定前に第二の制御指令信号算出部227の演算を実行開始できるため、車両の運転状況に応じて第二の記憶部228に記憶されている内部演算の制御量を更新できる。第二の記憶部228に記憶されている内部演算の制御量を更新することで、第一の制御指令部210の故障確定時に、急激な変動を抑えた制御ギャップの少ない制御指令信号を第二の制御指令信号算出部227で算出することができる。ステップS320の次にステップS321に進む。
ステップS321で、第一の制御指令信号算出部212の演算を演算処理部211内の高速コア214で実行して制御指令信号を算出する。次にステップS322に進む。
ステップS322で、第一の制御指令信号算出部212で算出した制御指令信号を第一の通信回路203に送信する。次にステップS323に進む。
ステップS323で、出力回路の切り替え部206で車両制御装置150の制御指令信号の出力回路を第一の通信回路203に接続する。次にステップS324に進む。ステップS324で、第一の通信回路203の出力を車両制御装置150の制御指令信号として駆動装置に出力し、ステップS339で処理を終了する。
次にステップS303で故障判定カウンタが故障確定値以上となり第一の制御指令部210の故障が確定したときの処理フローについて説明する。ステップS310に進み、第二の制御指令信号算出部227の演算を演算処理部221で上限速度で実行する。次にステップS311に進む。
ステップS311で、第二の制御指令信号算出部227で算出した制御指令信号を第二の通信回路204に送信する。次にステップS312に進む。
ステップS312で、出力回路の切り替え部206で制御指令信号の出力回路を第二の通信回路204に接続する。次にステップS313に進む。
ステップS313で、第二の通信回路204の出力を車両制御装置150の制御指令信号として駆動装置に出力する。次にステップS314に進む。
ステップS314では、第一の制御指令信号算出部212の演算の実行を停止して、ステップS339で処理を終了する。
1−5.車両制御装置の故障対応の挙動
図5に、実施の形態1に係る車両制御装置150の故障対応動作を示すタイムチャートを示す。故障判定カウンタと、第一の制御指令部210、第二の制御指令部220の演算実行状態を示す。
故障判定カウンタは縦軸に故障判定カウンタの値(初期値は0であり故障判定なし)を示し、横軸に時刻を示す。
第一の制御指令信号算出は、縦軸に演算の速度、横軸に時刻を示す。処理量が0のときは実行を停止している状態を示す。上に行くほど演算速度が速いことを示す。
第二の制御指令信号算出は、縦軸に演算の速度、横軸に時刻を示す。処理量が0のときは実行を停止している状態を示す。上に行くほど演算速度が速いことを示す。
第一の制御指令部210の故障未検出の状態では、故障判定カウンタの値は0であり、正常状態である。このとき第一の制御指令信号算出は実行されている。第二の制御指令信号算出は、実行を停止している状態である。
第一の制御指令部210の故障を検出すると、故障判定カウンタの値がカウントアップされ1になる。故障判定条件は成立したが、故障の度合いは小さいと判定した状態になる。第一の制御指令部210の故障は確定していないため、第一の制御指令信号算出は継続して実行する。第二の制御指令信号算出は、故障判定カウンタの値が1で故障確定値が3のため、低速コア222を用いて実行速度を低速度(上限速度の3分の1の速度)で実行する。
故障判定カウンタの値が1の状態で第一の制御指令部210の故障を再度検出すると、故障判定カウンタの値がカウントアップされ2になる。故障は確定していないが、故障の度合いは大きいと判定された状態になる。第一の制御指令部210の故障は確定していないため、第一の制御指令信号算出は継続して実行している。第二の制御指令信号算出は、故障判定カウンタの値が2で故障確定値が3のため、中速コア223を用いて実行速度を中速度(上限速度の3分の2の速度)で実行する。すなわち、ここでは、予め定めた判定度合いを1と規定して、故障の度合いがこの判定度合い以下の場合に低速、判定度合いより大きい場合に中速を選択している。
故障判定カウンタの値が2の状態で第一の制御指令部210の故障を再度検出すると、故障判定カウンタの値がカウントアップされ3になる。故障判定カウンタの値が故障確定値(故障確定回数)以上となったので、第一の制御指令部210の故障が確定された状態になる。第一の制御指令部210の故障が確定したため、第一の制御指令信号算出の実行は停止される。第二の制御指令信号算出は、第一の制御指令部210の故障が確定したため高速コア224を用いて実行速度を上限速度で実行する。以上が、第一の制御指令部210の故障に対応する故障判定部229の動作である。
上記のように、第一の制御指令部210の故障の兆候を検出したときに故障の度合いに応じて、第二の制御指令信号算出部227の演算の実行速度を可変にすることで、第一の制御指令部210の演算を行う演算処理部221の処理負荷を可変に調整でき消費電力を低減した状態で第二の制御指令信号算出部227の演算処理を実行することができる。また、第一の制御指令部210の故障確定前に、第二の制御指令信号算出部227の演算処理を開始できるため、第一の制御指令部210の故障確定前の車両の運転状況に応じて第二の記憶部228に記憶されている内部演算の制御量を最新値に更新できる。そのため、第一の制御指令部の故障時に、第二の記憶部228に記憶されている最新化された内部演算の制御量を参照した第二の制御指令信号算出部227の演算処理を実行でき、制御指令信号の急激な変動を抑えることができる。
また、第一の制御指令部210の故障の度合いが予め定めた判定度合い以下の場合は、第二の制御指令信号算出の実行速度を低速にすることで、第二の制御指令信号算出の演算処理を行う演算処理部221の処理負荷を低減し、消費電力を低減できる。反対に、第一の制御指令部210の故障の度合いが前述の判定度合いより大きい場合は、第二の制御指令信号算出の実行速度を高速にすることで、第二の制御指令信号算出部227の制御指令信号を算出できるまでの応答性の向上を高めて、第一の制御指令部の故障時に即時に制御指令信号の出力を行うことができる。
2.実施の形態2
実施の形態1では、第二の制御指令信号算出部227の演算の実行速度を可変にする事例を説明した。実行速度を変化させるために、演算処理部221の低速コア222、中速コア223、高速コア224コアを使い分ける例について説明した。実施の形態2では、演算処理部221のコアを使い分けるのではなく、演算処理の実行間隔を変化させることで、第二の制御指令信号算出部227の演算の実行速度を実質上可変にする。実施の形態2では、実施の形態1の図3で説明した車両制御装置150の構成をそのまま使用し、制御ソフトウェアを変更した状態で適用するが、演算処理部221のコアは1個でもよい。
2−1.故障対応処理のフローチャート
図6に実施の形態2に係る車両制御装置150の故障対応処理を示すフローチャートを示す。図6の故障対応処理は、車両制御装置150の演算処理装置90で実行されるが、第二の制御指令部220が独自に演算処理装置90を有しておりそこで実行することとする。しかし、故障対応処理は車両制御装置150全体としての制御内容を決定する共通の演算処理装置90で実行することとしてもよい。また、故障判定部229が独自に演算処理装置90を有しておりそこで実行することとしてもよい。フローチャートは所定時間ごと(例えば1msごと)に実行されることとする。フローチャートの処理は、所定時間ごとではなく、車輪速センサの出力パルスごと等、他のイベント発生ごとに実施されることとしてもよい。ステップS500から故障対応処理を開始する。ここで図には示していないが、故障判定カウンタは、車両制御装置150に電源が投入されて起動したとき初期値0が設定されることとする。
ステップS501で故障検出部226が第一の制御指令部210の故障判定条件を判定する。ステップS501で故障判定条件が成立していた場合はステップS502に進み、故障判定条件が成立していなかった場合はステップS503に進む。ステップS502では、故障判定カウンタをカウントアップしてステップS503に進む。
ステップS503で、故障判定カウンタを故障確定値と比較する。故障判定カウンタが故障確定値未満だった場合は、ステップS504に進む。ステップS504で故障判定カウンタを初期値0(故障判定条件非成立の値)と比較する。
ステップS504で故障判定カウンタが初期値0を超えていない場合(故障判定条件の非成立)、ステップS530に進み、第二の制御指令信号算出部227の演算の実行を停止する。このようにすることで、第一の制御指令部210が正常に動作している間の第二の制御指令信号算出部227の演算の演算処理部221での実行を停止でき、消費電力を低減できる。次にステップS521に進む。
ステップS504で故障判定カウンタが初期値0を超えてカウントされていた場合(故障判定条件が成立)、ステップS520に進み、第二の制御指令信号算出部227の演算の実行を開始する。第二の制御指令信号算出部227の演算の実行間隔は第一の制御指令部210の故障の度合いに応じて実行間隔を切り替える。
ステップS520での第二の制御指令信号算出部227の演算の実行間隔の設定について述べる。第一の制御指令部210の故障確定時に実行する第二の制御指令信号算出の実行間隔を第二の制御指令信号算出の「最短実行間隔」とする。例えば、第二の制御指令信号算出の最短実行間隔は、第一の制御指令信号算出の実行間隔と同一に設定することができ、縮退運転を行うために第一の制御指令信号算出の実行間隔よりも長い間隔に設定することができる。ステップS520での第二の制御指令信号算出の実行は、故障検出部226より受信した第一の制御指令部210の故障判定カウンタと故障確定値の値をもとに、故障の度合いを、(故障判定カウンタ/故障確定値)で定義し、この値を用いて第二の制御指令信号算出の実行間隔を算出する。実際には、故障の度合いの逆数を用いて、(最短実行間隔×(故障確定値/故障判定カウンタ))の式で実行間隔を算出する。
このように第二の制御指令信号算出の実行間隔を可変に制御することで、第一の制御指令部210の故障の兆候を検出したときに、故障の度合いを(故障判定カウンタ/故障確定値)で定義し、この逆数を用いて第二の制御指令信号算出の実行間隔を制御することができ、消費電力を低減できる。すなわち、故障の度合いが小さい場合は実行間隔を長く設定し消費電力を低減できる。そして、故障の度合いが大きい場合は実行間隔を短く設定し、第一の制御指令部210の故障確定前に第二の制御指令部220に短い間隔で演算処理を実行させて、切り替えに備えることができる。このため、車両の運転状況に応じて第二の記憶部228に記憶されている内部演算の制御量を短い間隔で更新することができる。これにより、第一の制御指令部210の故障確定時に、急激な変動を抑えた制御ギャップの少ない制御指令信号を第二の制御指令信号算出部227で算出することができる。
次にステップS521に進む。
ステップS521で、第一の制御指令信号算出部212の演算を演算処理部211内の高速コア214で実行して制御指令信号を算出する。次にステップS522に進む。
ステップS522で、第一の制御指令信号算出部212で算出した制御指令信号を第一の通信回路203に送信する。次にステップS523に進む。
ステップS523で、出力回路の切り替え部206で車両制御装置150の制御指令信号の出力回路を第一の通信回路203に接続する。次にステップS524に進む。
ステップS524で、第一の通信回路203の出力を車両制御装置150の制御指令信号として駆動装置に出力し、ステップS539で処理を終了する。
次にステップS503で故障判定カウンタが故障確定値以上となり第一の制御指令部210の故障が確定したときの処理フローについて説明する。ステップS510に進み、第二の制御指令信号算出を最短実行間隔で実行する。次にステップS511に進む。
ステップS511で、第二の制御指令信号算出部227で算出した制御指令信号を第二の通信回路204に送信する。次にステップS512に進む。
ステップS512で、出力回路の切り替え部206で制御指令信号の出力回路を第二の通信回路204に接続する。次にステップS513に進む。
ステップS513で、第二の通信回路204の出力を車両制御装置150の制御指令信号として駆動装置に出力する。次にステップS514に進む。
ステップS514では、第一の制御指令信号算出部212の演算の実行を停止し、ステップS539で処理を終了する。
2−2.車両制御装置の故障対応の挙動
図7に、実施の形態2に係る車両制御装置150の故障対応動作を示すタイムチャートを示す。故障判定カウンタと、第一の制御指令部210、第二の制御指令部220の演算実行状態を示す。
故障判定カウンタは縦軸に故障判定カウンタの値(初期値は0で故障判定なし)を示し、横軸に時刻を示す。第一の制御指令信号算出は、縦軸に演算の処理量、横軸に時刻を示す。演算の処理量が0のときは実行を停止している状態を示す。単位時間当たりの処理量が多い場合は演算速度が速いことを示す。第二の制御指令信号算出は、縦軸に演算の処理量、横軸に時刻を示す。演算の処理量が0のときは実行を停止している状態を示す。単位時間当たりの処理量が多い場合は演算速度が速いことを示す。
第一の制御指令部210の故障未検出の状態では、故障判定カウンタの値は0であり、正常状態である。このとき第一の制御指令信号算出は実行されている。第二の制御指令信号算出は、実行を停止している状態である。
第一の制御指令部210の故障を検出すると、故障判定カウンタの値がカウントアップされ1になる。故障判定条件は成立したが、故障の度合いは小さいと判定した状態になる。第一の制御指令部210の故障は確定していないため、第一の制御指令信号算出は継続して実行する。第二の制御指令信号算出は、故障判定カウンタの値が1で故障確定値が3のため、実行間隔を長く設定して(最短実行間隔の3倍(3/1倍))実行する。
故障判定カウンタの値が1の状態で第一の制御指令部210の故障を再度検出すると、故障判定カウンタの値がカウントアップされ2になる。故障は確定していないが、故障の度合いは大きいと判定された状態になる。第一の制御指令部210の故障は確定していないため、第一の制御指令信号算出は継続して実行している。第二の制御指令信号算出は、故障判定カウンタの値が2で故障確定値が3のため、実行間隔を中程度(最短実行間隔の1.5倍(3/2倍))の実行間隔で実行する。すなわち、ここでは、予め定めた第二の判定度合いを1と規定して、故障の度合いがこの第二の判定度合い以下の場合に低速(長い実行間隔)、第二の判定度合いより大きい場合により高い速度(より短い実行間隔)を選択している。
故障判定カウンタの値が2の状態で第一の制御指令部210の故障を再度検出すると、故障判定カウンタの値がカウントアップされ3になる。故障判定カウンタの値が故障確定値(故障確定回数)以上となったので、第一の制御指令部210の故障が確定された状態になる。第一の制御指令部210の故障が確定したため、第一の制御指令信号算出の実行は停止される。第二の制御指令信号算出は、第一の制御指令部210の故障が確定したため実行間隔を最短実行間隔に設定して実行する。
上記のように実施の形態2では、第一の制御指令部210の故障の兆候を検出したときに故障の度合いに応じて、第二の制御指令信号算出の実行間隔を可変にすることで、演算処理部221の処理負荷を可変に調整でき消費電力を低減した状態で第二の制御指令信号算出の演算処理を実行することができる。また、第一の制御指令部210の故障確定前に、第二の制御指令部220の演算処理を開始できるため、第一の制御指令部210の故障確定前の車両の運転状況に応じて第二の記憶部228に記憶されている内部演算の制御量を最新値に更新できる。そのため、第一の制御指令部の故障時に、第二の記憶部228に記憶されている最新化された内部演算の制御量を参照した第二の制御指令信号算出の演算処理を実行でき、制御指令信号の急激な変動を抑えることができる。また、第二の制御指令信号算出の実行間隔を可変にすることで、実質的な演算速度を変化させるので、実施の形態1のように、複数のコアを切り換えて第二の制御指令信号算出部227の処理速度を切り換える必要がない。よって、複数のコアを使用することなしに、第二の制御指令信号算出部227の処理速度を変化させることができ、コスト削減することも可能である。
また、第一の制御指令部210の故障の度合いが予め定めた第二の判定度合い以下の場合は、第二の制御指令信号算出の実行間隔を長くすることで、第二の制御指令信号算出の演算処理を行う演算処理部221の処理負荷を低減し、消費電力を低減できる。反対に、第一の制御指令部210の故障の度合いが前述の第二の判定度合いより大きい場合は、第二の制御指令信号算出の実行間隔を短くすることで、第二の制御指令信号算出部227の制御指令信号を算出できるまでの応答性を向上し、第一の制御指令部の故障時に即時に制御指令信号の出力を行うことができる。
3.実施の形態3
実施の形態1および実施の形態2では、第二の制御指令信号算出部227の実行速度を可変にする事例を説明した。実施の形態3では、第二の制御指令信号算出部227が演算を実行する機能を選択する事例について説明する。演算を実行する機能を選択して絞り込むことによって、第二の制御指令部220の演算処理の負荷を変化させることができる。単位時間当たりに実行する演算の数を増減することによって、実質的に第二の制御指令信号算出部227の演算の平均処理速度を変化させていることになる。実施の形態3では、実施の形態1の図3で説明した車両制御装置150の構成をそのまま使用し、制御ソフトウェアを変更した状態で適用するが、演算処理部221のコアは1個でもよい。
実施の形態3では、第二の制御指令信号算出部227の制御内容を機能ごとに分割し、それぞれの機能ごとに優先度付けを行い、故障判定カウンタの値に応じて優先度の高い機能から順次実行開始する。第二の制御指令信号算出部227の制御内容を機能ごとに3つに分割し、分割した3つの機能をそれぞれ優先度の高い順に、優先度(高)制御、優先度(中)制御、優先度(低)制御としている。第二の制御指令信号算出部227の優先度(高)制御、優先度(中)制御、優先度(低)制御の3つの制御の実行開始をそれぞれ判定するため、故障判定カウンタの値と比較する閾値を設定しておく。第二の制御指令信号算出部227の優先度(高)制御を開始する閾値を優先度(高)制御の実行判定値、優先度(中)制御を開始する閾値を優先度(中)制御の実行判定値、優先度(低)制御を開始する閾値は優先度(低)制御の実行判定値とする。0<優先度(高)制御の実行判定値<優先度(中)制御の実行判定値<優先度(低)制御の実行判定値となるように設定する。優先度(低)制御の実行判定値の値は故障確定値と同一に設定してもよい。
3−1.故障対応処理のフローチャート
図8、図9に実施の形態3に係る車両制御装置150の故障対応処理を示すフローチャートを分割して示す。図8、図9の故障対応処理は、車両制御装置150の演算処理装置90で実行されるが、第二の制御指令部220が独自に演算処理装置90を有しておりそこで実行することとする。しかし、故障対応処理は車両制御装置150全体としての制御内容を決定する共通の演算処理装置90で実行することとしてもよい。また、故障判定部229が独自に演算処理装置90を有しておりそこで実行することとしてもよい。フローチャートは所定時間ごと(例えば1msごと)に実行されることとする。フローチャートの処理は、所定時間ごとではなく、車輪速センサの出力パルスごと等、他のイベント発生ごとに実施されることとしてもよい。ステップS700から故障対応処理を開始する。ここで図には示していないが、故障判定カウンタは、車両制御装置150に電源が投入されて起動したとき初期値0が設定されることとする。
ステップS701において故障検出部226で第一の制御指令部210の故障判定を行う。ステップS701で故障判定条件が成立していた場合はステップS702に進み、故障判定条件が成立していなかった場合はステップS703に進む。
ステップS702では、故障判定カウンタをカウントアップしてステップS703に進む。ステップS703では、故障判定カウンタと第二の制御指令信号算出部227の優先度(高)制御実行判定値との比較を行う。故障判定カウンタが第二の制御指令信号算出部227の優先度(高)制御の実行判定値以上の場合は、ステップS704に進む。故障判定カウンタが第二の制御指令信号算出部227の優先度(高)制御の実行判定値未満の場合は、ステップS705に進む。
ステップS704では、第二の制御指令信号算出部227の優先度(高)制御の実行を開始する。次にステップS705に進む。ステップS705では、故障判定カウンタと第二の制御指令信号算出部227の優先度(中)制御実行判定値との比較を行う。故障判定カウンタが第二の制御指令信号算出部227の優先度(中)制御の実行判定値以上の場合は、ステップS706に進む。故障判定カウンタが第二の制御指令信号算出部227の優先度(中)制御の実行判定値未満の場合は、ステップS707に進む。
ステップS706では、第二の制御指令信号算出部227の優先度(中)制御の実行を開始する。次にステップS707に進む。
ステップS707では、故障判定カウンタと第二の制御指令信号算出部227の優先度(低)制御実行判定値との比較を行う。故障判定カウンタが第二の制御指令信号算出部227の優先度(低)制御の実行判定値以上の場合は、ステップS708に進む。故障判定カウンタが第二の制御指令信号算出部227の優先度(低)制御の実行判定値未満の場合は、ステップS709に進む。
ステップS708では、第二の制御指令信号算出部227の優先度(低)制御の実行を開始する。次にステップS709に進む。ステップS709で、故障判定カウンタを故障確定値と比較する。故障判定カウンタが故障確定値未満だった場合は、ステップS720に進む。ステップS720で、第一の制御指令信号算出部212の制御を演算処理部211内の高速コア214で実行して制御指令信号を算出する。次にステップS721に進む。
ステップS721で、第一の制御指令信号算出部212で算出した制御指令信号を第一の通信回路203に送信する。次にステップS722に進む。
ステップS722で、出力回路の切り替え部206で車両制御装置150の制御指令信号の出力回路を第一の通信回路203に接続する。次にステップS723に進む。
ステップS723で、第一の通信回路203の出力を車両制御装置150の制御指令信号として駆動装置に出力し、ステップS729で処理を終了する。
次にステップS709で故障判定カウンタが故障確定値以上となり第一の制御指令部210の故障が確定したときの処理フローについて説明する。
ステップS710で、第二の制御指令信号算出部227で算出した優先度(高)制御の制御指令信号と優先度(中)制御の制御指令信号と優先度(低)制御の制御指令信号を第二の通信回路204に送信する。次にステップS711に進む。
ステップS711で、出力回路の切り替え部206で車両制御装置150の制御指令信号の出力回路を第二の通信回路204に接続する。次にステップS712に進む。ステップS712で、第二の通信回路204の出力を車両制御装置150の制御指令信号として駆動装置に出力する。
ステップS713で、第一の制御指令信号算出部212の実行を停止して、ステップS729で処理を終了する。
以上のように図8に実施の形態3に係る車両制御装置150の制御方法について示した。図8の処理フローではステップS710からステップS713の処理フローで第二の制御指令信号算出部227で算出した優先度(高)制御の制御指令信号と優先度(中)制御の制御指令信号と優先度(低)制御の制御指令信号を一度にまとめて切り替える処理フローを示したが、第二の制御指令信号算出部227の優先度(高)制御の制御指令信号と優先度(中)制御の制御指令信号と優先度(低)制御の制御指令信号をそれぞれ個別に優先度(高)制御と優先度(中)制御と優先度(低)制御を実行開始したタイミングで機能ごとに制御指令信号の切り替えを行うことも考えられる。機能ごとに制御指令信号の切り替えを行う場合、第一の制御指令信号算出部212の制御内容も機能ごとに分けて制御指令信号の切り替えが機能単位でできるようにしておく必要がある。また、第一の制御指令部210の故障時に必要な機能に限定した縮退運転を場合は、第二の制御指令信号算出演算のうち、例えば優先度(高)制御と優先度(中)制御のみの実行を行い、第一の制御指令部210の故障時でも優先度(低)制御の実行は行わないなど一部の機能のみ実行するという制御方法も考えられる。
図8のように、実行制御部225の実行を制御することで、第一の制御指令部210の故障の兆候を検出したときに、故障の度合いに応じて第二の制御指令信号算出部227の機能を選択して実行することができ、第二の制御指令信号算出部227の処理の平均実行速度を実質上変化させて消費電力を低減することができる。また、第一の制御指令部210の故障確定前に第二の制御指令信号算出部227を実行開始できるため、車両の運転状況に応じて第二の記憶部228に記憶されている内部演算の制御量を優先度の高い制御に関係の深い部分から順次更新できる。第二の記憶部228に記憶されている内部演算の制御量を更新することで、第一の制御指令部210の故障確定時に、急激な変動を抑えた制御ギャップの少ない制御指令信号を第二の制御指令信号算出部227で第二の記憶部228に記憶された制御量に基づいて算出することができる。
3−2.車両制御装置の故障対応の挙動
図10に、実施の形態3に係る車両制御装置150の故障対応動作を示すタイムチャートを示す。故障判定カウンタと第一の制御指令部210、第二の制御指令部220の演算実行状態を示す。
第二の制御指令信号算出部227の制御内容を機能ごとに優先度(高)制御、優先度(中)制御、優先度(低)制御に実行する優先度をつける。制御内容に優先度を付与する例として、ブレーキ制御装置160、ステアリング制御装置170、トルク出力制御装置への制御指令信号の演算に優先度を振り分けた例を以下に示す。
優先度(高)制御で算出する制御指令信号優先度(高)はブレーキ制御装置160を制御する制御指令信号である。優先度(中)制御で算出する制御指令信号優先度(中)はステアリング制御装置170を制御する制御指令信号である。優先度(低)制御の制御指令信号優先度(低)はトルク出力制御装置180を制御する制御指令信号である。
図10の最上段から順に説明する。故障判定カウンタは縦軸に故障判定カウンタの値(初期値0)(初期値0は故障判定なし)を示し、横軸に時刻を示す。
図10の次段の、第一の制御指令信号算出実行状態は、縦軸に処理量、横軸に時刻を示す。処理量が0のときは実行を停止している状態を示す。単位時間当たりの処理量が多い場合は演算速度が速いことを示す。
図10のその下の、第二の制御指令信号算出優先度(高)制御実行状態は、縦軸に実行処理量、横軸に時刻を示す。実行処理量が0のときは実行を停止している状態を示す。第二の制御指令信号算出優先度(中)制御実行状態は、縦軸に実行処理量、横軸に時刻を示す。実行処理量が0のときは実行を停止している状態を示す。第二の制御指令信号算出優先度(低)制御実行状態は、縦軸に実行処理量、横軸に時刻を示す。実行処理量が0のときは実行を停止している状態を示す。
第一の制御指令部210の故障未検出の状態では、故障判定カウンタの値は0であり、正常状態である。このとき第一の制御指令信号算出は実行されている。第二の制御指令信号算出部227の優先度(高)制御と優先度(中)制御と優先度(低)制御は、実行を停止している状態である。
第一の制御指令部210の故障条件判定が成立すると、故障判定カウンタの値がカウントアップされ1になる。故障条件判定が成立したが、故障の度合いは小さいと判定された状態になる。第一の制御指令部210の故障は確定していないため、第一の制御指令信号算出は継続して実行されている。第二の制御指令信号算出は、故障の度合いは小さいと判定しているため優先度(高)制御のみ実行を開始する。優先度(中)制御と優先度(低)制御は、実行を停止している状態である。優先度(高)制御で算出した制御指令信号優先度(高)は、ブレーキ制御装置160に実行開始のタイミングに合わせて出力を開始する、もしくは、第一の制御指令部210の故障確定時に他の制御指令信号と一括して出力を開始する。
故障判定カウンタの値が1の状態で第一の制御指令部210の故障を再度検出した場合、故障判定カウンタの値がカウントアップされ2になる。第一の制御指令部210の故障確定はしていないが、故障の度合いは大きいと判定された状態になる。第一の制御指令部210の故障は確定していないため、第一の制御指令信号算出は継続して実行されている。実行指令部は、故障の度合いは大きいと判定しているため、既に実行を開始している優先度(高)制御に加えて、優先度(中)制御の実行を開始する。優先度(低)制御は、実行を停止している状態である。優先度(中)制御で算出した制御指令信号優先度(中)は、ステアリング制御装置170 に実行開始のタイミングに合わせて出力を開始する、もしくは、第一の制御指令部210の故障確定時に他の制御指令信号と一括して出力を開始する。すなわち、ここで、予め定めた第三の判定度合いを1と規定すると、故障の度合いがこの第三の判定度合い以下の場合に優先度(高)制御のみを実施するので、平均処理量は少なくなり、平均処理速度は低速となっている。故障の度合いが第三の判定度合いより大きい場合に優先度(中)制御も共に実施するので、平均処理量はより多くなり、平均処理速度はより高い速度となっている。
故障判定カウンタの値が2の状態で第一の制御指令部210の故障を再度検出すると、故障判定カウンタの値がカウントアップされ3になる。故障判定カウンタの値が故障確定値(故障確定回数)以上となったため、第一の制御指令部210の故障が確定された状態になる。第一の制御指令部210の故障が確定したため、第一の制御指令信号算出の実行は停止される。既に実行を開始している優先度(高)制御と優先度(中)制御に加えて、優先度(低)制御の実行を開始する。優先度(低)制御で算出した制御指令信号優先度(低)は、トルク出力制御装置180 に実行開始のタイミングに合わせて出力を開始する、もしくは、第一の制御指令部210の故障確定時に他の制御指令信号と一括して出力を開始する。以上が、実施の形態3に示す車両制御装置150で、故障判定部229で、第一の制御指令部210の故障を判定したときの故障判定部229の対応状態である。
以上のように、実施の形態3では、第一の制御指令部210の故障の度合いを検出したときに故障の度合いに応じて、第二の制御指令信号算出部227の機能ごとに選択して実行することで、第一の制御指令部210の故障の確定度合いに応じて第二の制御指令信号算出部227演算を行う演算処理部221の実質的な処理速度を変更し、処理負荷を可変に調整でき消費電力を低減した状態で第二の制御指令信号算出部227の演算処理を実行することができる。また、第一の制御指令部210の故障確定の直前に、第二の制御指令信号算出部227の演算処理を開始できるため、第一の制御指令部210の故障確定の直前の車両の運転状況に応じて第二の記憶部228に記憶されている内部演算の制御量のうち、優先度応じて選択された機能に関連する制御量が最新値に更新できる。そのため、第一の制御指令部の故障時に、第二の記憶部228に記憶されている最新化された内部演算の制御量を参照した第二の制御指令信号算出部227の演算処理を実行でき、制御指令信号の急激な変動を抑えることができる。
また、第一の制御指令部210の故障の度合いが予め定めた第三の判定度合い以下の場合は、第二の制御指令信号算出部227の優先度の高い機能を選択して実行することで、第二の制御指令信号算出部227の演算処理を行う演算処理部221の処理負荷を低減でき、消費電力を低減できる。事実上、第二の制御指令部220の演算の平均速度を低下させていることになる。第二の記憶部228に記憶されている内部演算の制御量のうち、優先度の高い機能に関連する制御量が最新値に更新でき、第一の制御指令部の故障時に第二の制御指令信号算出部227の優先度の高い機能から順に算出される制御指令信号の精度および信頼性が高まる。第一の制御指令部210の故障の度合いが前述の第三の判定度合いより大きい場合は、第二の制御指令信号算出部227の優先度がより低い機能も併せて選択して実行するので、処理量は増加し、事実上、第二の制御指令部220の演算の平均速度を向上させることとなる。このため、第二の制御指令信号算出部227の制御指令信号を算出できるまでの応答性を向上して、第一の制御指令部210の故障時に即時に制御指令信号の出力を行うことができる。
4.実施の形態4
実施の形態1から3では、故障判定部229で検出した第一の制御指令部210故障の度合いに応じて第二の制御指令信号算出部227の処理量を可変にする事例を説明した。実施の形態4では、第一の記憶部213と第二の記憶部228に記憶されている制御量の差分(差分の絶対値を示す。以下省略するが、制御量の差分は、制御量の差分の絶対値を指すこととする)の大きさに応じて、第二の制御指令部220の演算処理の処理速度を変化させる事例について説明する。実施の形態4では、実施の形態1の図3で説明した車両制御装置150の構成をそのまま使用し、制御ソフトウェアを変更した状態で適用する。
4−1.故障対応処理のフローチャート
図11、図12に実施の形態4に係る車両制御装置150の故障対応処理を示すフローチャートを分割して示す。図11、図12の故障対応処理は、車両制御装置150の演算処理装置90で実行されるが、第二の制御指令部220が独自に演算処理装置90を有しておりそこで実行することとする。しかし、故障対応処理は車両制御装置150全体としての制御内容を決定する共通の演算処理装置90で実行することとしてもよい。図3には第一の記憶部213と第二の記憶部228が別体として記されているが、同一の記憶装置91上に配置されていることとしてもよい。また、故障判定部229が独自に演算処理装置90を有しておりそこで実行することとしてもよい。フローチャートは所定時間ごと(例えば1msごと)に実行されることとする。フローチャートの処理は、所定時間ごとではなく、車輪速センサの出力パルスごと等、他のイベント発生ごとに実施されることとしてもよい。ステップS900から故障対応処理を開始する。ここで図には示していないが、故障判定カウンタは、車両制御装置150に電源が投入されて起動したとき初期値0が設定されることとする。
図11、図12の処理フローでは、第一の制御指令部210の第一の記憶部213と第二の制御指令部220の第二の記憶部228に記憶されている過去の制御指令信号、制御量の積分値などの制御量の差分と比較して、第二の制御指令信号算出の実行開始を判定する閾値である実行開始判定値と実行停止を判定する閾値である実行停止判定値を設定しておく。実行開始を判定する閾値である実行開始判定値と実行停止を判定する閾値である実行停止判定値は、第二の制御指令信号算出が短時間に実行開始と停止を繰り返して第二の制御指令信号算出の演算が不安定になることを防止するため、実行開始判定値を実行停止判定値より大きな値になるように設定されている。第二の制御指令信号算出の実行と停止の判定にヒステリシスを設けて、短時間に実行開始と停止を繰り返さないようにする。第二の制御指令信号算出の実行を、第一の制御指令部210の故障確定時と同一の実行状態で行うことを判定する閾値である制限解除判定値を設定しておく。
図11のステップS901で、第一の記憶部213と第二の記憶部228に記憶されている制御指令信号の演算時に更新、参照が行われる内部演算の制御量(演算結果、制御指令信号の過去の履歴、積分量など)の比較を行う。故障判定部229で制御量の比較を行う場合は、第一の記憶部213に格納された制御量のデータを第一の制御指令信号算出部212を介して受け取り、第二の記憶部228に格納された制御量のデータを第二の制御指令信号算出部227を介して受け取ることとなる。制御量の差分が第二の制御指令信号算出の実行開始を判定するための閾値である実行開始判定値以下の場合は、ステップS909に進む。制御量の差分が実行開始判定値より大きい場合は、ステップS930に進む。
ステップS909では、内部演算の制御量の差分が第二の制御指令信号算出の実行停止を判定するための閾値である実行停止判定値より小さい場合は、ステップS931に進む。ステップS931では、実行中フラグをクリアする(0を設定する)。実行中フラグは、制御量の差分が、実行開始判定値を超えた時にセット(1を設定)される。実行中フラグは、第二の制御指令信号の算出が実行中であることを示すフラグである。制御量の差分が、いったん実行開始判定値を超えると、その後、実行開始判定値より小さい実行停止判定値を下回るまで、実行中フラグはクリアされない。ステップS931の後、ステップS905へ進み、第二の制御指令信号算出の実行を停止する。このようにすることで、内部演算の制御量の差分が小さいときは、第二の制御指令信号算出部227の演算処理部221での実行を停止でき、消費電力を低減できる。ステップS905の後、ステップS906へ進む。
ステップS909で制御量の差分が閾値である実行停止判定値以上の場合は、ステップS932に進み、ステップS932で、実行中フラグがセットされている(1が設定されている)かどうか判定する。実行中フラグがセットされている場合は、ステップS904へ進む。ステップS932で、実行中フラグがセットされていない(0が設定されている)場合はステップS905へ進む。
ステップS930で、実行中フラグをセットする(1を設定)。実行中フラグは、制御量の差分が実行開始判定値よりも大きくなり、第二の制御指令信号の算出を実行中であることを示すフラグである。その後ステップS902へ進み、第一の記憶部213と第二の記憶部228に記憶されている内部演算の制御量の差分と、閾値である制限解除判定値とを比較する。制御量の差分が制限解除判定値以下の場合は、ステップS904に進む。制御量の差分が閾値である制限解除判定値より大きい場合は、ステップS903に進む。
ステップS903について説明する。第一の制御指令部210の故障確定時に、実行する第二の制御指令信号算出部227の実行速度を第二の制御指令信号算出部227の上限速度とする。例えば、第二の制御指令信号算出部227の上限速度は、第一の制御指令信号算出部212の実行速度と同一に設定することができ、縮退運転を行うために第一の制御指令信号算出部212の実行速度よりも低い速度に設定することができる。ステップS903では、第二の制御指令信号算出部227の実行速度を第一の制御指令部210の故障確定時と同じ上限速度で実行する。その後ステップS906へ進む。
ステップS904では、第二の制御指令信号算出の実行を(上限速度×(制御量の差分/制限解除判定値))で算出した実行速度で実行する。このように第二の制御指令信号算出部227の実行速度を可変に制御することで、内部演算の制御量の差分に応じて第二の制御指令信号算出部227の実行速度を制御することができ、消費電力を低減できる。また、第一の制御指令部210の故障確定前に第二の制御指令信号算出部227を実行開始できるため、車両の運転状況に応じて第二の記憶部228に記憶されている内部演算の制御量を更新できる。第二の記憶部228に記憶されている内部演算の制御量を更新することで、第一の制御指令部210の故障確定時に、急激な変動を抑えた制御ギャップの少ない制御指令信号を第二の制御指令信号算出部227で算出することができる。次にステップS906に進む。
ステップS906では、故障検出部226で第一の制御指令部210の故障判定条件を判定する。ステップS906で故障判定条件が成立していた場合はステップS907に進み、故障判定条件が成立していなかった場合は図12のステップS908に進む。
ステップS907では、故障判定カウンタをカウントアップして図12のステップS908に進む。ステップS908で、故障判定カウンタを故障確定値と比較する。故障判定カウンタが故障確定値(故障確定回数)より小さい場合は、ステップS920に進む。故障判定カウンタが故障確定値(故障確定回数)以上だった場合は、ステップS910に進む。
ステップS920では、故障判定カウンタが故障確定値より小さい場合の処理を行う。ステップS920で、第一の制御指令信号算出部212の制御を演算処理部211内の高速コア214で実行して制御指令信号を算出する。次にステップS921に進む。ステップS921で、第一の制御指令信号算出部212で算出した制御指令信号を第一の通信回路203に送信する。次にステップS922に進む。ステップS922で、出力回路の切り替え部206で車両制御装置150の出力回路を第一の通信回路203に接続する。次にステップS923に進む。ステップS923で、第一の通信回路203の出力を車両制御装置150の制御指令信号として駆動装置に出力し、ステップS939で処理を終了する。
次にステップS908で故障判定カウンタが故障確定値(故障確定回数)以上となり第一の制御指令部210の故障が確定したときの処理フローについて説明する。ステップS910に進み、第二の制御指令信号算出部227の演算を上限速度で実行する。次にステップS911に進む。ステップS911で、第二の制御指令信号算出部227の演算で算出した制御指令信号を第二の通信回路204に送信する。次にステップS912に進む。
ステップS912で、出力回路の切り替え部206で出力回路を第二の通信回路204に接続する。次にステップS913に進む。ステップS913で、第二の通信回路204の出力を車両制御装置150の制御指令信号として駆動装置に出力する。次にステップS914に進む。
ステップS914では、第一の制御指令信号算出部212の演算の実行を停止し、ステップS939で処理を終了する。
4−2.車両制御装置の故障対応の挙動
図13に、実施の形態4に係る車両制御装置150の故障対応動作を示すタイムチャートを示す。故障判定カウンタと第一の制御指令部210、第二の制御指令部220の演算実行状態を示す。
故障判定カウンタは縦軸に故障判定カウンタの値(初期値は0で、故障判定なしを示す)を示し、横軸に時刻を示す。
第一の制御指令信号算出実行状態は、縦軸に速度、横軸に時刻を示す。処理量が0のときは実行を停止している状態を示す。上に行くほど、演算速度が速いことを示す。
記憶部の制御量は、縦軸に制御量の値、横軸に時刻を示す。第一の記憶部213の制御量は破線で示し、第二の記憶部228の制御量は実線で示す。
第二の制御指令信号算出実行状態は、縦軸に速度、横軸に時刻を示す。処理量が0のときは実行を停止している状態を示す。上に行くほど演算速度が速いことを示す。
第一の制御指令部210の故障未検出の状態では、故障判定カウンタの値は0であり、正常状態である。このとき第一の制御指令信号算出は実行されている。
第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分が第二の制御指令信号算出部227の実行開始判定値より小さい場合のとき、第二の制御指令信号算出部227の実行は停止する。
第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分が第二の制御指令信号算出部227の実行開始判定値より大きく、制限解除判定値より小さい場合、実行制御部225で第二の制御指令信号算出部227の実行速度を、(上限速度×(内部演算の制御量の差分/制限解除判定値))で算出して制御する。また、第二の制御指令信号算出部227の実行速度を算出する他の手法としては、制御量の差分に応じて第二の制御指令信号算出部227の実行速度をあらかじめ決めて第二の制御指令信号算出部227の実行速度の算出マップとして設定しておく方法などの手段が考えられる。
第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分が第二の制御指令信号算出部227制限解除判定値以上となった場合、実行制御部225で第二の制御指令信号算出部227の実行速度を、上限速度で実行する。
ここで、制御解除判定値は、予め定められた判定差分と規定することができる。制御量の差分が前述の判定差分以下の場合は、上限速度よりも低速で第二の制御指令信号を算出する。制御量の差分が前述の判定差分より大きい場合は、上限速度で第二の制御指令信号を算出することとなる。
制御量の差分が第二の制御指令信号算出の実行停止判定値より小さくなった場合、実行制御部225で第二の制御指令信号算出の実行を停止する。
第一の制御指令部210の故障判定条件が成立し故障判定カウンタが進んで故障確定した場合、実行制御部225は第一の制御指令信号算出部212の演算の実行を停止する。実行制御部225は第二の制御指令信号算出を上限速度で実行する。第一の制御指令部210の故障確定時、故障検出部226で制御指令切り替え信号230を出力して、出力回路の切り替え部206で出力回路を第一の通信回路203から第二の通信回路204に切り替える。出力回路が第一の通信回路203から第二の通信回路204に切り替わることによって第二の制御指令信号算出部227で算出した制御指令信号が車両制御装置150の制御指令信号として出力される。
実施の形態4では、第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分に応じて、第二の制御指令信号算出部227の実行速度を可変にすることで、内部演算の制御量の差分に応じて第二の制御指令信号算出部227演算を行う演算処理部221の処理負荷を可変に調整でき消費電力を低減できる。
また、第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分が予め定められた判定差分以下の場合は、第二の制御指令信号算出部227の演算の実行速度を低速にすることで、第二の制御指令信号算出部227の演算処理を行う演算処理部221の処理負荷を低減し、消費電力を低減できる。反対に、内部演算の制御量の差分が前述の判定差分より大きい場合は、第二の制御指令信号算出部227の演算の実行速度を高速にすることで、車両の運転状況に応じて第二の記憶部228に記憶されている内部演算の制御量を最新値に更新する速度を速めて、第一の制御指令部210の故障時に、第二の記憶部228に記憶されている最新化された内部演算の制御量を参照した第二の制御指令信号算出部227の演算処理を実行でき、制御指令信号の急激な変動を抑えることができる。さらに、実施の形態4では、第一の制御指令部210の故障判定を、内部演算の制御量の差分とは別に実行しているが、内部演算の制御量の差分が別途定めた故障確定判定値を超えた場合に、故障を判定することとしてもよい。第二の制御指令信号算出部227の演算の実行速度と、駆動装置を制御する制御指令の第一の制御指令部210から第二の制御指令部220の出力への切り替えを、内部演算の制御量の差分で判断できるので、判断の処理を単純にできる利点がある。
5.実施の形態5
実施の形態4では、第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分の大きさに応じて第二の制御指令信号算出部227の実行速度を可変にする事例を説明した。実行速度を変化させるために、演算処理部221の低速コア222、中速コア223、高速コア224コアを使い分ける例について説明した。実施の形態5では、演算処理部221のコアを使い分けるのではなく、演算処理の実行間隔を変化させることで、第二の制御指令信号算出部227の演算の実行速度を実質上可変にする。実施の形態5では、実施の形態1の図3で説明した車両制御装置150の構成をそのまま使用し、制御ソフトウェアを変更した状態で適用するが、演算処理部221のコアは1個でもよい。
5−1.故障対応処理のフローチャート
図14、図15に実施の形態5に係る故障対応処理のフローチャートを分割して示す。故障対応処理は、車両制御装置150の演算処理装置90で実行されるが、第二の制御指令部220が独自に演算処理装置90を有しておりそこで実行することとする。図3には第一の記憶部213と第二の記憶部228が別体として記されているが、同一の記憶装置91上に配置されていることとしてもよい。しかし、故障対応処理は車両制御装置150全体としての制御内容を決定する共通の演算処理装置90で実行することとしてもよい。また、故障判定部229が独自に演算処理装置90を有しておりそこで実行することとしてもよい。フローチャートは所定時間ごと(例えば1msごと)に実行されることとする。フローチャートの処理は、所定時間ごとではなく、車輪速センサの出力パルスごと等、他のイベント発生ごとに実施されることとしてもよい。ステップS1100から故障対応処理を開始する。ここで図には示していないが、故障判定カウンタは、車両制御装置150に電源が投入されて起動したとき初期値0が設定されることとする。
図13、図15の処理フローチャートでは、実施の形態4に係る図11、図12のフローチャートと同様の判定値に関する説明は省略する。
図14のステップS1101で、第一の記憶部213と第二の記憶部228に記憶されている制御指令信号の演算時に更新、参照が行われる内部演算の制御量(演算結果、制御指令信号の過去の履歴、積分量など)の比較を行う。故障判定部229で制御量の比較を行う場合は、第一の記憶部213に格納された制御量のデータを第一の制御指令信号算出部212を介して受け取り、第二の記憶部228に格納された制御量のデータを第二の制御指令信号算出部227を介して受け取ることとなる。制御量の差分が第二の制御指令信号算出の実行開始を判定するための閾値である実行開始判定値以下の場合は、ステップS1109に進む。制御量の差分が実行開始判定値より大きい場合は、ステップS1130に進む。
ステップS1109では、内部演算の制御量の差分が第二の制御指令信号算出の実行停止を判定するための閾値である実行停止判定値より小さい場合は、ステップS1131に進む。ステップS1131では、実行中フラグをクリアする(0を設定する)。実行中フラグは、制御量の差分が、実行開始判定値を超えた時にセット(1を設定)される。実行中フラグは、第二の制御指令信号の算出が実行中であることを示すフラグである。制御量の差分が、いったん実行開始判定値を超えると、その後、実行開始判定値より小さい実行停止判定値を下回るまで、実行中フラグはクリアされない。ステップS1131の後、ステップS1105へ進み、第二の制御指令信号算出の実行を停止する。このようにすることで、内部演算の制御量の差分が小さいときは、第二の制御指令信号算出の演算処理部221での実行を停止でき、消費電力を低減できる。ステップS1105の後、ステップS1106へ進む。
ステップS1109では、内部演算の制御量の差分が実行停止判定値以上の場合は、ステップS1132に進み、ステップS1132で、実行中フラグがセットされている(1が設定されている)かどうか判定する。実行中フラグがセットされている場合は、ステップS1104へ進む。ステップS1132で、実行中フラグがセットされていない(0が設定されている)場合はステップS1105へ進む。
ステップS1130で、実行中フラグをセットする(1を設定)。実行中フラグは、制御量の差分が実行開始判定値よりも大きくなり、第二の制御指令信号の算出を実行中であることを示すフラグである。その後ステップS1102へ進み、第一の記憶部213と第二の記憶部228に記憶されている内部演算の制御量の差分と、閾値である制限解除判定値とを比較する。制御量の差分が閾値である制限解除判定値以下の場合は、ステップS1104に進む。制御量の差分が閾値である制限解除判定値より大きい場合は、ステップS1103に進む。
ステップS1103について説明する。第一の制御指令部210の故障確定時に、実行する第二の制御指令信号算出の実行間隔を第二の制御指令信号算出の最短実行間隔とする。例えば、第二の制御指令信号算出の最短実行間隔は、第一の制御指令信号算出の実行間隔と同一に設定することができ、縮退運転を行うために第一の制御指令信号算出の実行間隔よりも長い実行間隔に設定することができる。ステップS1103では、第二の制御指令信号算出の実行間隔を第一の制御指令部210の故障確定時と同じ最短実行間隔で実行する。その後ステップS1106へ進む。
ステップS1104では、第二の制御指令信号算出の実行を(最短実行間隔×(制限解除判定値/制御量の差分))で算出した実行間隔で実行する。このように第二の制御指令信号算出の実行間隔を可変に制御することで、内部演算の制御量の差分に応じて第二の制御指令信号算出の実行間隔を制御することができ、実質上制御速度を低下させて消費電力を低減できる。また、第一の制御指令部210の故障確定前に第二の制御指令信号算出を実行開始できるため、車両の運転状況に応じて第二の記憶部228に記憶されている内部演算の制御量を更新できる。第二の記憶部228に記憶されている内部演算の制御量を更新することで、第一の制御指令部210の故障確定時に、急激な変動を抑えた制御ギャップの少ない制御指令信号を第二の制御指令信号算出部227で算出することができる。次にステップS1106に進む。
ステップS1106で故障検出部226により第一の制御指令部210の故障判定条件を判定する。ステップS1106で故障判定条件が成立していた場合はステップS1107に進み、故障判定条件が成立していなかった場合は図15のステップS1108に進む。
ステップS1107では、故障判定カウンタをカウントアップして図15のステップS1108に進む。ステップS1108で、故障判定カウンタを故障確定値(故障確定回数)と比較する。故障判定カウンタが故障確定値(故障確定回数)より小さい場合は、ステップS1120に進む。故障判定カウンタが故障確定値以上だった場合は、ステップS1110に進む。
ステップS1120では、故障判定カウンタが故障確定値より小さい場合の処理を行う。ステップS1120で、第一の制御指令信号算出部212の制御を演算処理部211内の高速コア214で実行して制御指令信号を算出する。次にステップS1121に進む。ステップS1121で、第一の制御指令信号算出部212で算出した制御指令信号を第一の通信回路203に送信する。次にステップS1122に進む。
ステップS1122で、出力回路の切り替え部206で車両制御装置150の出力回路を第一の通信回路203に接続する。次にステップS1123に進む。ステップS1123で、第一の通信回路203の出力を車両制御装置150の制御指令信号として駆動装置に出力し、ステップS1139で処理を終了する。
次にステップS1108で故障判定カウンタが故障確定値以上となり第一の制御指令部210の故障が確定したときの処理フローについて説明する。ステップS1110に進み、第二の制御指令信号算出部227の演算の実行を最短実行間隔で実行する。次にステップS1111に進む。
ステップS1111で、第二の制御指令信号算出部227の演算で算出した制御指令信号を第二の通信回路204に送信する。次にステップS1112に進む。ステップS1112で、出力回路の切り替え部206の出力回路を第二の通信回路204に接続する。次にステップS1113に進む。
ステップS1113で、第二の通信回路204の出力を車両制御装置150の制御指令信号として駆動装置に出力する。次にステップS1114に進む。
ステップS1114では、第一の制御指令信号算出部212の実行を停止し、ステップS1139で処理を終了する。
5−2.車両制御装置の故障対応の挙動
図16に、実施の形態5に係る車両制御装置150の故障対応動作を示すタイムチャートを示す。故障判定カウンタと、第一の制御指令部210の演算状況、記憶部の制御量の差分、第二の制御指令部220の演算実行状態を示す。
故障判定カウンタは縦軸に故障判定カウンタの値(初期値0は故障判定なし)を示し、横軸に時刻を示す。
第一の制御指令信号算出実行状態は、縦軸に処理量、横軸に時刻を示す。処理量が0のときは実行を停止している状態を示す。単位時間当たりの処理量が多い場合は演算速度が速いことを示す。
記憶部の制御量は、縦軸に制御量の値、横軸に時刻を示す。第一の記憶部213の制御量は破線で示し、第二の記憶部228の制御量は実線で示す。
第二の制御指令信号算出実行状態は、縦軸に処理量、横軸に時刻を示す。処理量が0のときは実行を停止している状態を示す。単位時間当たりの処理量が多い場合は演算速度が速いことを示す。
第一の制御指令部210の故障未検出の状態では、故障判定カウンタの値は0であり、正常状態である。このとき第一の制御指令信号算出は実行されている。
第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分が第二の制御指令信号算出部227の実行開始判定値より小さい場合のとき、第二の制御指令信号算出部227の実行は停止している。
第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分が第二の制御指令信号算出部227の実行開始判定値より大きく、制限解除判定値より小さい場合、実行制御部225で第二の制御指令信号算出部227演算の実行間隔を、(最短実行間隔×(制限解除判定値/内部演算の制御量の差分))で算出して制御する。また、第二の制御指令信号算出部227の実行間隔を算出する他の手法としては、制御量の差分に応じて第二の制御指令信号算出部227の実行間隔をあらかじめ決めて第二の制御指令信号算出部227の実行間隔の算出マップとして設定しておく方法などの手段が考えられる。
第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分が第二の制御指令信号算出部227制限解除判定値以上となった場合、実行制御部225で第二の制御指令信号算出部227の実行間隔を、最短実行間隔で実行する。
ここで、制御解除判定値は、予め定められた第二の判定差分と規定することができる。制御量の差分が前述の第二の判定差分以下の場合は、第二の制御指令信号算出部227演算の実行間隔を、(最短実行間隔×(制限解除判定値/内部演算の制御量の差分))で算出して制御する。すなわち、最短実行間隔よりも長い時間間隔で演算を実施する。平均実行速度は、最短実行間隔での実施よりも遅くなる。制御量の差分が前述の第二の判定差分より大きい場合は、最短実行間隔で第二の制御指令信号を算出することとなる。平均実行速度はより速くなる。
制御量の差分が第二の制御指令信号算出の実行停止判定値より小さくなった場合、実行制御部225で第二の制御指令信号算出の実行を停止する。
第一の制御指令部210の故障判定条件が成立し故障判定カウンタが進んで故障確定した場合、実行制御部225は第一の制御指令信号算出部212の演算の実行を停止する。実行制御部225は第二の制御指令信号算出の実行を最短実行間隔で実行する。第一の制御指令部210の故障確定時、故障検出部226で制御指令切り替え信号230を出力して、出力回路の切り替え部206で出力回路を第一の通信回路203から第二の通信回路204に切り替える。出力回路が第一の通信回路203から第二の通信回路204に切り替わることによって第二の制御指令信号算出部227で算出した制御指令信号が車両制御装置150の制御指令信号として出力される。
上記のように実施の形態5では、第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分の大きさに応じて、第二の制御指令信号算出の実行間隔を可変にすることで、第二の制御指令信号算出の演算を行う演算処理部221の処理負荷を可変に調整でき消費電力を低減した状態で第二の制御指令信号算出の演算処理を実行することができる。第二の制御指令信号算出の実行間隔を可変にすることで、実質的な演算速度を変化させるので、実施の形態4のように、複数のコアを切り換えて第二の制御指令信号算出部227の処理速度を切り換える必要がない。よって、複数のコアを使用することなしに、第二の制御指令信号算出部227の処理速度を変化させることができ、コスト削減することも可能である。
また、内部演算の制御量の差分が予め定めた第二の判定差分以下の場合は、第二の制御指令信号算出の実行間隔を長くすることで、実質的に処理速度を低下させ、第二の制御指令信号算出の演算処理を行う演算処理部221の処理負荷を低減し、消費電力を低減できる。反対に、制御量の差分が前述の第二の判定差分よりも大きい場合は、第二の制御指令信号算出の実行間隔を短くすることで実質的に処理速度を向上させ、第二の制御指令信号算出部227の制御指令信号を算出できるまでの応答性の向上を高めて、第一の制御指令部の故障時に即時に制御指令信号の出力を行うことができる。
上記のように実施の形態5では、第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分と比較して、第二の制御指令信号算出の実行開始を判定する実行開始判定値と第二の制御指令信号算出の実行停止を判定する実行停止判定値を設けることにより、内部演算の制御量が小さい場合の第二の制御指令信号算出部227の実行を停止して不要な実行を防止することで、第二の制御指令信号算出部227の実行に伴う消費電力を低減できる。
また、第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量と比較して、第二の制御指令信号算出部227の実行開始を判定する実行開始判定値と第二の制御指令信号算出部227の実行停止を判定する実行停止判定値の設定値にヒステリシスを設けることにより、第二の制御指令信号算出部227の実行と停止を短時間に繰り返し動作することを防止して、制御指令信号の振動による車両の挙動の変動を防止する。
6.実施の形態6
実施の形態4および実施の形態5では、第二の制御指令信号算出部227の実行速度を可変にする事例を説明した。実施の形態6では、第二の制御指令信号算出部227が演算を実行する機能を選択する事例について説明する。演算を実行する機能を選択して絞り込むことによって、第二の制御指令部220の演算処理の負荷を変化させることができる。単位時間当たりに実行する演算の数を増減することによって、実質的に第二の制御指令信号算出部227の演算の平均処理速度を変化させていることになる。実施の形態6では、実施の形態1の図3で説明した車両制御装置150の構成をそのまま使用し、制御ソフトウェアを変更した状態で適用するが、演算処理部221のコアは1個でもよい。
実施の形態6では、第二の制御指令信号算出部227の制御内容を機能ごとに分割し、それぞれの機能ごとに優先度付けを行い、故障判定カウンタの値に応じて優先度の高い機能から順次実行開始する。第二の制御指令信号算出部227の制御内容を機能ごとに3つに分割し、分割した3つの機能をそれぞれ優先度の高い順に、優先度(高)制御、優先度(中)制御、優先度(低)制御としている。第二の制御指令信号算出部227の優先度(高)制御、優先度(中)制御、優先度(低)制御の3つの制御の実行開始をそれぞれ判定するため、故障判定カウンタの値と比較する閾値を設定しておく。第二の制御指令信号算出部227の優先度(高)制御を開始する閾値を優先度(高)制御の実行判定値、優先度(中)制御を開始する閾値を優先度(中)制御の実行判定値、優先度(低)制御を開始する閾値は優先度(低)制御の実行判定値とする。0<優先度(高)制御の実行判定値<優先度(中)制御の実行判定値<優先度(低)制御の実行判定値となるように設定する。優先度(低)制御の実行判定値の値は故障確定値と同一に設定してもよい。
実施の形態6では、第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分の大きさに応じて、優先度の高い順に第二の制御指令信号の算出を実施する。差分が小さい場合は優先度の高い制御指令信号の算出のみを実施する。差分が大きくなるにしたがって、優先度(中)、優先度(小)の制御指令信号の算出を追加してゆく。これによって単位時間に実行する制御指令信号の算出処理量が変化するので、実質的に制御速度を変更していることになる。
実施の形態3に係る図10の説明における、故障カウンタのカウント値の大きさに応じて、実施する第二の制御指令信号の算出の対象が、優先度(高)のみから、優先度(高)と優先度(中)、優先度(高)と優先度(中)優先度(低)までと変化してゆく挙動に対して、故障カウンタのカウント値の代わりに、内部演算の制御量の差分の大きさに応じて変化してゆくことにした場合が実施の形態6に相当する。実施の形態6について、図面による説明は省略する。
実施の形態6では、第一の記憶部213と第二の記憶部228に記憶された内部演算の制御量の差分の大きさに応じて、第二の制御指令信号算出をその機能ごとに選択して実行することで、第二の制御指令信号算出部227が演算を行う演算処理部221の実質的な処理速度を変更し、処理負荷を可変に調整でき消費電力を低減した状態で第二の制御指令信号算出部227の演算処理を実行することができる。また、内部演算の制御量の差分が大きい場合は、第二の制御指令信号算出部227の演算処理を高い頻度で実行するため、第一の制御指令部210が故障確定した場合であっても、優先度に応じて選択された機能に関連する制御量が最新値に更新できているため、大きな問題がない。内部演算の制御量の差分が小さい場合は、第二の制御指令信号算出部227の演算処理を高い頻度で実行していなくても問題がない。よって、第一の制御指令部210が故障確定した場合の制御指令信号の急激な変動を抑えることができる。
また、内部演算の制御量の差分が小さい場合は、第二の制御指令信号算出部227の優先度の高い機能を選択して実行することで、第二の制御指令信号算出部227の演算処理を行う演算処理部221の処理負荷を低減でき、消費電力を低減できる。第二の記憶部228に記憶されている内部演算の制御量のうち、優先度の高い機能に関連する制御量が最新値に更新でき、第一の制御指令部の故障時に第二の制御指令信号算出部227の優先度の高い機能から順に算出される制御指令信号の精度および信頼性が高まる。
ここで、例えば、制御解除判定値を、予め定められた第三の判定差分と規定することができる。制御量の差分が前述の第三の判定差分以下の場合は、第二の制御指令信号算出部227の優先度の高い機能を選択して実行することで、第二の制御指令信号算出部227の演算処理を行う演算処理部221の処理負荷を低減でき、消費電力を低減できる。事実上、第二の制御指令部220の演算の平均速度を低下させていることになる。
制御量の差分が前述の第三の判定差分より大きい場合は、第二の制御指令信号算出部227の優先度がより低い機能も併せて選択して実行するので、処理量は増加し、事実上、第二の制御指令部220の演算の平均速度を向上させることとなる。
本願は、様々な例示的な実施の形態及び実施例が記載されているが、1つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。