(57)【要約】【課題】  車両制御用のタスクを繰り返す車両制御装置において、新規な方法でタスクの込み合い度合いを軽減する。【解決手段】  車両制御装置は、ＡＴ制御タスクの、前回の実行終了時から今回の実行開始時までの余裕時間を特定し（ステップ４２０）、その特定した余裕時間が第１のしきい値時間より長いか短いかを判定し（ステップ４３０）、短い場合には、高負荷状態の持続時間に比例するタイマ値が所定の整数Ｍを超えず、かつ余裕時間が第２のしきい値時間（＞第１のしきい値時間）以下である限り、ＡＴ制御タスク３００の処理内容を一部省略して簡略化させることで、ＡＴ制御タスク３００の処理負荷を通常よりも下げるための処理を実行する（ステップ４４０）。【選択図】  図６
2006090356.tif 000002
【特許請求の範囲】
【請求項１】
ある車両制御用のタスクＸを所定のタイミングで繰り返し実行するタスク実行手段と、
前記タスクＸの、ある回の実行終了時から次の回の実行開始時までの余裕時間を特定する余裕時間特定手段と、
前記特定手段が特定した前記余裕時間に基づき、当該余裕時間が所定のタスク混雑基準を満たす場合における前記タスクＸの処理内容が、当該余裕時間が所定のタスク混雑基準を満たさない場合における前記タスクＸの処理内容よりも、その処理負荷が低いものとなるよう、前記タスクＸの処理内容を変更する変更手段と、を備えた車両制御装置。
【請求項２】
前記変更手段は、当該余裕時間が、前記タスクＸの、ある回の実行終了時から、タスク抜けを経ない、次の回の実行開始時までの余裕時間であることに基づいて、当該余裕時間が所定のタスク混雑基準を満たす場合における前記タスクＸの処理内容が、当該余裕時間が所定のタスク混雑基準を満たさない場合における前記タスクＸの処理内容よりもその処理負荷が低いものとなるよう、前記タスクＸの処理内容を変更することを特徴とする請求項１に記載の車両制御装置。
【請求項３】
前記タスクＸは、オートマチックトランスミッション制御用タスクであり、
前記変更手段は、現在車両が変速中でないことに基づいて、当該余裕時間が所定のタスク混雑基準を満たす場合における前記タスクＸの処理内容が、当該余裕時間が所定のタスク混雑基準を満さない場合における前記タスクＸの処理内容よりもその処理負荷が低いものとなるよう、前記タスクＸの処理内容を変更することを特徴とする請求項１または２に記載の車両制御装置。
【請求項４】
前記所定のタスク混雑基準を満たすとは、車両の走行状態に応じて変化するしきい値より短いことをいう請求項１ないし３のいずれか１つに記載の車両制御装置。
【請求項５】
前記タスクＸは、オートマチックトランスミッション制御用タスクであり、
前記変更手段が前記所定のタスク混雑基準に照らす前記余裕時間は、過去のシフトアップ時において前記余裕時間特定手段が特定した余裕時間に基づく余裕時間であることを特徴とする請求項１ないし４のいずれか１つに記載の車両制御装置。
【請求項６】
前記変更手段が前記所定のタスク混雑基準に照らす前記余裕時間は、過去の複数のシフトアップ時において前記余裕時間特定手段によって特定された複数の余裕時間に基づく代表的な余裕時間であることを特徴とする請求項５に記載の車両制御装置。
【請求項７】
前記変更手段が前記所定のタスク混雑基準に照らす前記余裕時間は、過去のシフトアップ時において前記余裕時間特定手段によって特定された余裕時間をそのシフトアップ前に前記余裕時間特定手段によって特定された余裕時間から減算した差分を、前記余裕時間特定手段が特定した最新の余裕時間から減算した時間であることを特徴とする請求項３に記載の車両制御装置。
【請求項８】
前記変更手段が前記所定のタスク混雑基準に照らす前記余裕時間は、過去の複数のシフトアップ時における余裕時間をそのシフトアップ前の余裕時間から減算した複数の差分の代表値を、前記余裕時間特定手段が特定した最新の余裕時間から減算した時間であることを特徴とする請求項７に記載の車両制御装置。
【請求項９】
前記余裕時間特定手段は、前記タスクＸの実行開始タイミングの直前に、現在時刻と、前回の前記タスクＸの終了時刻との比較に基づいて、前記余裕時間を特定し、
前記変更手段は、前記余裕時間特定手段が特定した前記余裕時間に基づき、当該余裕時間が所定のタスク混雑基準を満たす場合における、当該余裕時間が特定された直後の前記タスクＸの処理内容が、当該余裕時間が所定のタスク混雑基準を満たさない場合における、当該余裕時間が特定された直後の前記タスクＸの処理内容よりもその処理負荷が低いものとなるよう、前記タスクＸの処理内容を変更することを特徴とする請求項１ないし８のいずれか１つに記載の車両制御装置。
【請求項１０】
ある車両制御用のタスクＸを所定のタイミングで繰り返し実行するコンピュータを、
前記タスクＸの、ある回の実行終了時から次の回の実行開始時までの余裕時間を特定する余裕時間特定手段、および
前記余裕時間特定手段が特定した前記余裕時間に基づき、当該余裕時間が所定のタスク混雑基準を満たす場合における前記タスクＸの処理内容が、当該余裕時間が所定のタスク混雑基準を満さない場合における前記タスクＸの処理内容よりもその処理負荷が低いものとなるよう、前記タスクＸの処理内容を変更する変更手段として機能させる処理負荷制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両制御用タスクを実行する車両制御装置、および車両制御用タスクの処理負荷を制御するプログラムに関する。
【背景技術】
【０００２】
車両制御の分野では、１つの車両制御装置で複数の車両制御を実現するため、車両制御装置内が、それぞれの制御用のタスクをタイムシェアリング方式で実行する技術が知られている。複数の車両制御としては、例えば、オートマチックトランスミッション制御、エンジン点火制御、ブレーキ制御、ステアリング制御等がある。タイムシェアリング方式とは、車両制御装置の処理を時間で区切り、各時間区間を複数のタスクのうちのいずれか１つの実行に割り当てる方式である。車両制御では、このタイムシェアリング方式を用いることで、各車両制御用のタスクが、決められたタイミングで、車両制御装置によって繰り返し実行されるようになる。例えば、エンジン点火制御はエンジン回転数に反比例する間隔で、オートマチックトランスミッション制御は一定時間間隔で、それぞれ繰り返し実行されることが考えられる。
【０００３】
また、このようなタイムシェアリング方式においては、実行されるタスク毎に優先度が決められおり、複数のタスクが同時に実行されるタイミングとなってしまった場合には、優先度の高い方が先に実行されるようになっている場合が多い。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一方、車両制御の分野においては、各制御仕様の複雑化に伴い、それらの制御のためのタスクの実行に費やされる処理時間、すなわちタスクの処理負荷が、増大する傾向にある。さらに、１つの車両制御装置で実行される各タスクの実行時間が長くなると、処理が込み合い、優先度の低い処理が実行を待たされることが多くなる。このようなことが原因となって、ある車両制御用のタスクの１回分の実行が終了する前に、そのタスクの次の実行タイミングがやってくる場合がある。このような場合、新たなタスクの実行がキャンセルされるタスク抜け現象が発生するおそれがある。
【０００５】
特に、最近のオートマチックトランスミッション制御のためのタスクは、多段化に伴う処理の複雑化が顕著となっており、これが変速時の処理負荷の増大とあいまって、タスク抜けの要因となっている。オートマチックトランスミッション制御のタスク抜けは、変速ショック等のドライバビリティの悪化や、オートマチックトランスミッションシステムの耐久性の悪化を招きやすい。
【０００６】
また、１つの車両制御装置で１種類の車両制御だけを、決められたタイミングで繰り返し実行する場合であっても、車両の走行状況によっては、そのタスクの処理負荷が高くなってしまい、ある回の当該車両制御用のタスクが終了する前に、次の回のタスクの実行タイミングが来てしまう場合がある。これは、１つのタスクによって車両制御装置内のタスクの込み合い度が増大する例である。
【０００７】
本発明は上記点に鑑み、車両制御用のタスクを繰り返す車両制御装置において、新規な方法でタスクの込み合い度合いを軽減することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するための本発明の特徴は、ある車両制御用タスクの終了から、そのタスクの開始までの余裕時間に基づいて、そのタスクの実行における処理内容を変化させることにある。
【０００９】
具体的には、本発明の車両制御装置は、ある車両制御用のタスクＸを所定のタイミングで繰り返し実行し、そのタスクＸの、ある回の実行終了時から次の回の実行開始時までの余裕時間を特定し、その特定した余裕時間に基づき、当該余裕時間が所定のタスク混雑基準を満たす場合におけるタスクＸの処理内容が、当該余裕時間が所定のタスク混雑基準を満たさない場合におけるタスクＸの処理内容よりもその処理負荷が低いものとなるよう、前記タスクＸの処理内容を変更することを特徴とする。
【００１０】
このようになっているので、車両制御装置は、タスクＸの余裕時間が短くなってタスク混雑基準を満たすようになると、その処理負荷がより低くなるよう、タスクＸの処理内容を変化させるので、タスクの込み合い度合いが軽減される。
【００１１】
なお、ここでいう「所定のタイミング」とは、「あらかじめ定められたタイミング」という意味である。そして、この「あらかじめ」とは、「その定められるタイミングでタスクＸが実行開始される前に」という意味である。したがって、あらかじめ定められる時期は、この車両制御装置の製造時でもよいし、車両制御装置の作動中に、計算または物理量の検出によって定められてもよい。
【００１２】
また、「所定のタスク混雑基準を満たす」とは、あらかじめ定められた余裕時間の長さに関する基準であり、例えば、その基準に照らす対象の余裕時間が一定のしきい値時間より短いならばその基準を満たす場合、その基準に照らす対象の余裕時間が、所定の計算規則に基づいて変化するしきい値時間より短いならばその基準を満たす場合、その基準に照らす対象の余裕時間が、所定の取得方法によって取得される不規則なしきい値時間より短いならばその基準を満たす場合等が、所定の混雑基準を満たす場合に該当する。
【００１３】
また、車両制御装置がこのようなタスクＸの処理内容の変更を行うのは、当該余裕時間が、車両制御用タスクの、ある回の実行終了時刻から、タスク抜けを経ない、次の回の実行開始時刻までの余裕時間である場合であってもよい。タスク抜けを経た余裕時間は、実際は処理負荷を低減しなければならないような状況であるにも関わらず、長い時間となってしまうので、このように、タスク抜けを経ない余裕時間に基づく制御を行うことで、より精度の高い制御を行うことができる。
【００１４】
また、オートマチックトランスミッション制御においては、変速中においてはその制御内容を簡略化することは好ましくない場合があるという観点から、タスクＸがオートマチックトランスミッション制御用タスクであるときは、車両制御装置が、現在車両が変速中でないことに基づいて、上記のようなこのようなタスクＸの処理内容の変更を行うようになっていてもよい。
【００１５】
また、前記所定のタスク混雑基準を満たすとは、車両の走行状態に応じて変化するしきい値より短いことをいうようになっていてもよい。このようになっていることで、車両の走行状態に応じた制御を行うことができるようになる。
【００１６】
また、オートマチックトランスミッション制御においては、変速中と非変速中とでその処理負荷が大きく異なるという観点から、タスクＸがオートマチックトランスミッション制御用タスクであるときは、所定のタスク混雑基準に照らす前記余裕時間は、過去のシフトアップ時における余裕時間に基づく時間としてもよい。このようになっていることで、処理負荷が非常に高い可能性の高いシフトチェンジ時における余裕時間を判断基準として用いることで、よりタスクの込み合い度合いを軽減することができる。
【００１７】
また、所定のタスク混雑基準に照らす前記余裕時間は、過去の複数のシフトアップ時における複数の余裕時間に基づく代表的な余裕時間となっていてもよい。このように、過去の複数のシフトアップ時における複数の余裕時間に基づいた判断を行うことで、余裕時間についての精度がより高まる。
【００１８】
なお、代表的な余裕時間とは、その複数の余裕時間の最小値、最小値の次に小さい値、平均値等を含む概念である。
【００１９】
また、所定のタスク混雑基準に照らす余裕時間は、過去のシフトアップ時における余裕時間をそのシフトアップ前の余裕時間から減算した差分を、最新の余裕時間から減算した時間であってもよい。このようになっていることで、過去のシフトアップ前からシフトアップ時への遷移における余裕時間の変化に基づいて、次回のシフトアップ時における余裕時間を推定することができる。
【００２０】
また、所定のタスク混雑基準に照らす前記余裕時間は、過去の複数のシフトアップ時における余裕時間をそのシフトアップ前の余裕時間から減算した複数の差分の代表値を、最新の余裕時間から減算した時間であってもよい。このように、過去のシフトアップ前からシフトアップ時への遷移における余裕時間の変化を複数用いることができるので、余裕時間についての精度がより高まる。
【００２１】
また、車両制御装置は、タスクＸの実行開始タイミングの直前に、現在時刻と、前回の前記タスクＸの終了時刻との比較に基づいて、前記余裕時間を特定し、この特定した余裕時間に基づき、当該余裕時間が所定のタスク混雑基準を満たす場合における前記タスクＸの処理内容が、当該余裕時間が所定のタスク混雑基準を満たさない場合におけるタスクＸの処理内容よりもその処理負荷が低いものとなるよう、当該余裕時間が特定された直後のタスクＸの処理内容を変更するようになっていてもよい。
【００２２】
このようになっていることで、現在時刻を余裕時間の特定に用いることができるので、余裕時間を特定する時期が、タスクＸの実行開始タイミングの直前でない場合に比べ、余裕時間を特定する処理が簡易なものとなる。
【００２３】
また、本発明は、ある車両制御用のタスクＸを所定のタイミングで繰り返し実行するコンピュータに、タスクＸの、ある回の実行終了時から次の回の実行開始時までの余裕時間を特定する機能、および、特定された余裕時間に基づき、当該余裕時間が所定のタスク混雑基準を満たす場合におけるタスクＸの処理内容が、当該余裕時間が所定のタスク混雑基準を満さない場合におけるタスクＸの処理内容よりもその処理負荷が低いものとなるよう、タスクＸの処理内容を変更する機能を実現させる処理負荷制御プログラムとしても実現可能である。
【発明を実施するための最良の形態】
【００２４】
（第１実施形態）
以下、本発明の第１実施形態について説明する。図１に、本実施形態に係る車両制御装置１のハードウェア構成および車両制御装置１が車両に搭載された場合のセンサ・アクチュエータ２〜８との接続関係を示す。車両制御装置１は、ＲＡＭ１１、ＲＯＭ１２、Ｉ／Ｏ１３、およびＣＰＵ（コンピュータに相当する）１４を有している。
【００２５】
Ｉ／Ｏ１３は、エンジンのクランク角を検出して信号として出力するクランク角センサ２、車両のアクセルスロットル開度を検出して信号として出力するスロットルセンサ３、車速パルスに基づく車速信号を出力する車速センサ４等、車両の物理状態を検出するセンサからの信号を受けると、その信号をデジタルデータとしてＣＰＵ１４に出力する。またＩ／Ｏ１３は、ＣＰＵ１４から受けた制御信号を、エンジン内で燃料噴射を行うインジェクタ５、車両のシフト位置を変更するオートマチックトランスミッション６、車両の制動を制御するブレーキ７、エンジンの点火を行うイグナイタ８等の、車両制御のためのアクチュエータに出力する。
【００２６】
ＣＰＵ１４は、ＲＯＭ１２に記憶されたプログラムを実行することで、車両制御のための各種タスクを実行するようになっており、その実行の際、Ｉ／Ｏ１３を介したセンサ２〜４等からの信号等に基づいた処理を行い、その処理の必要に応じてＲＡＭ１１にデータを書き込み、ＲＡＭ１１、ＲＯＭ１２からデータを読み出し、Ｉ／Ｏ１３を用いてアクチュエータ５〜８等に制御信号を出力する。
【００２７】
図２に、ＣＰＵ１４がＲＯＭ１２からプログラムを読み出して実行するタスクの一例を示す。ＣＰＵ１４は、エンジン制御タスク１００、ブレーキ制御タスク２００、ＡＴ制御タスク３００、負荷状態判定タスク４００を実行する。
【００２８】
エンジン制御タスク１００は、クランク角センサ２からの信号に基づいて特定したクランク角、およびスロットルセンサ３からの信号に基づいて特定したスロットル開度に基づいて、エンジンの点火タイミング、燃料噴射量等を算出し、その算出結果に基づいて、インジェクタ５、イグナイタ８に対して制御信号を出力するためのタスクである。
【００２９】
ブレーキ制御タスク２００は、スロットルセンサ３からの信号、および図示しないブレーキペダルセンサからの信号に基づいて、車両の制動量を算出し、その算出結果に基づいてブレーキ６に制御信号を出力するためのタスクである。
【００３０】
ＡＴ制御タスク３００は、クランク角センサ２、スロットルセンサ３、および車速センサ４等からの信号に基づいて、現在とるべきシフト位置を算出し、その算出結果に基づいて、オートマチックトランスミッション７に制御信号を出力するためのタスクである。このＡＴ制御タスク３００の処理については以降で詳述する。
【００３１】
負荷状態判定タスク４００は、ＡＴ制御タスク３００の負荷状態、具体的にはＡＴ制御タスク３００のある回の実行終了時から次の回の実行開始時までの余裕時間を特定し、その特定結果に基づいて、ＡＴ制御タスク３００の処理内容を切り替えるためのタスクである。このＡＴ制御タスク３００の詳細についても後述する。
【００３２】
また、ＣＰＵ１４は、その他の各種タスク１〜Ｎを実行する。
【００３３】
ＣＰＵ１４は、このような複数のタスクを、タイムシェアリング方式で実行する。タイムシェアリング方式とは、ＣＰＵ１４の実行時間を区切り、その区切った各時間区間を、複数のタスクのうちのいずれか１つの実行に割り当てる方式である。図２に、本実施形態におけるＣＰＵ１４の、各タスクに対する時間区間の割り当て状況を示す。なお、簡単のため、図３においては、エンジン制御タスク１００、ブレーキ制御タスク２００、ＡＴ制御タスク３００、負荷状態判定タスク４００、およびタスクＮについてのＣＰＵ１４の時間区間割り当てのみを示す。
【００３４】
この図においては、左から右への向きが時間の流れの向きである。そして、上段に横一列に並ぶ矩形２１〜２４が、エンジン制御タスク１００が実行される時間帯を示している。また、その下の段に横一列に並ぶ矩形２５〜２８が、ブレーキ制御タスク２００が実行される時間帯を示している。また、その下の段に横一列に並ぶ矩形２９、３０が、タスクＮが実行される時間帯を示している。また、その下の段に横一列に並ぶ矩形３１、３２が、負荷状態判定タスク４００が実行される時間帯を示している。また、その下の段に横一列に並ぶ矩形３３、３４が、ＡＴ制御タスク３００が実行される時間帯を示している。
【００３５】
この図に示すように、各タスクは、その実行時間中においては独占的にＣＰＵ１４を使用するようになっており、それぞれ規定のタイミングで繰り返し実行されるようになっている。
【００３６】
例えば、本実施形態においては、エンジン制御タスク１００は、エンジンの回転周期と同じ周期で繰り返し実行されるようになっている。また、ブレーキ制御タスク２００は、エンジンの回転と相関の高い周期（例えば車速、ブレーキペダルの踏み込み量等に基づく周期）で繰り返し実行されるようになっている。また、タスクＮ、ＡＴ制御タスク３００および負荷状態判定タスク４００は、一定時間間隔（例えば十数ミリ秒程度）で実行されるようになっている。そして、負荷状態判定タスク４００は、ＡＴ制御タスク３００の実行直前に実行開始、実行終了が行われ、ＡＴ制御タスク３００は、負荷状態判定タスク４００の終了に続いて実行開始される。
【００３７】
また、各タスクの１回の実行に要する時間は、通常１ミリ秒程度である。ただし、負荷状態判定タスク４００は、その実行開始から終了までの時間が、ＡＴ制御タスク３００に比べて（例えば１０分の１程度に）短い。
【００３８】
また、各タスクにはそれぞれ優先度が、（例えばＲＯＭ１２に優先度情報が記憶されることで）割り当てられている。そして、あるタスクの実行中に別のタスクの実行開始タイミングが来た場合は、優先度の高い方のタスクの実行が先に実行され、その優先度の高いタスクが終了してから、優先度の低い方のタスクの実行が開始、または再開されるようになっている。このようなタスクの実行タイミングや優先度に基づいた、タスクの実行の制御は、ＣＰＵ１４が図示しないプログラムであるオペレーティングシステムを実行することで実現する。  
【００３９】
本実施形態においては、負荷状態判定タスク４００が最も優先度が高く、また、ＡＴ制御タスク３００よりもエンジン制御タスク１００、ブレーキ制御タスク２００、タスクＮの方が優先度が高い。
【００４０】
以下、ＣＰＵ１４が実行するＡＴ制御タスク３００、負荷状態判定タスク４００の詳細について説明する。本実施形態においては、ＡＴ制御タスク３００の処理内容が、ＡＴ制御タスク３００のある回の実行終了から次の回の実行開始までの時間、すなわち図３の矢印３５で示す余裕時間が、あるしきい値時間（例えば１００マイクロ秒）より大きいか否かで、変化するようになっている。そして、その変化の制御は、ＣＰＵ１４が、負荷状態判定タスク４００を実行することで実現される。
【００４１】
図４に、ＡＴ（オートマチックトランスミッション、以下同じ）制御タスク３００のフローチャートを示す。ＣＰＵ１４は、ＡＴ制御タスク３００の実行を開始すると、まずステップ３１０で、処理タスク実行中フラグの値をオンに変更する。処理タスク実行中フラグは、ＲＡＭ１１の一定の記憶領域に割り当てられた変数であり、他のプログラムからも参照できるようになっている。
【００４２】
続いてステップ３２０では、ＡＴ制御のためのメイン処理を行う。このメイン処理については後述する。このステップ３２０が、ＡＴ制御タスク３００の処理時間のほとんどを占める。したがって、ステップ３１０はＡＴ制御タスク３００の前処理であり、ステップ３４０以降はＡＴ制御タスク３００の後処理であると言える。
【００４３】
続いてステップ３４０で、現在時刻をＲＡＭ１１の一定の記憶領域に記憶させる。なお、ここで記憶される現在時刻は、ＡＴ制御タスク３００の実行終了時刻と実質的に同じである。この値は、他のプログラムからも参照可能である。
【００４４】
続いてステップ３５０で、上述したタスク実行中フラグをオフにし、その後ＡＴ制御タスク３００の実行を終了する。
【００４５】
このように、ＣＰＵ１４は、ＡＴ制御タスク３００の実行開示時に、タスク実行中フラグをオンにし、実行終了時に、その終了時刻を記憶させ、タスク実行中フラグをオフとする。このようになっていることで、タスク実行中フラグは、ＡＴ制御タスク３００の実行が始まってから終了するまでの時間帯ではオンとなり、ある回のＡＴ制御タスク３００の実行が終了してから次の回のＡＴ制御タスク３００が始まるまでの時間帯ではオフとなる。また、ＲＡＭ１１は、終了しているＡＴ制御タスク３００のうち、最後の回のＡＴ制御タスク３００の終了時刻を記憶するようになる。
【００４６】
ここで、ＣＰＵ１４が実行するタスクの込み合い度合いが高くなった場合について説明する。タスクの込み合い度合いが高くなる場合としては、例えばエンジン回転数が高くなり、それにつれ、エンジン制御タスク１００等の、エンジン回転と同期して実行されるタスクの実行頻度が増大する場合がある。図５に、このような場合における、ＣＰＵ１４内でのタスク実行割り当てタイミングの一例を、図３と同じ形式で示す。矩形４１〜５１に示す通り、エンジン制御タスク１００、ブレーキ制御タスク２００の実行の頻度が、図３に示した場合よりも増えている。そして、例えば矩形４３に示すエンジン制御タスク１００の実行タイミングに、矩形５６で示すＡＴ制御タスク３００の実行が終了していないため、優先度の低いＡＴ制御タスク３００の実行が中断し、さらに、矩形４３のエンジン制御タスク１００の実行が終了した後には、矩形４９に示すブレーキ制御タスク２００、および矩形４４に示すエンジン制御タスク１００の実行が続き、その間もＡＴ制御タスク３００の実行が中断したままとなる。そして矩形４４のエンジン制御タスク１００の終了の後、中断したＡＴ制御タスク３００の実行が、タイミング３６において再開され、矩形５７に示す時間帯における残りの処理の実行を経て、タイミング３７において終了する。
【００４７】
このように、タスクの込み合い度合いの増大により、ＡＴ制御タスク３００の実行が、矢印３８の示す期間だけ中断することにより、その回のＡＴ制御タスク３００の実行終了が遅れることになる。すると、矢印３９に示すように、その回のＡＴ制御タスク３００の実行終了から、次の回のＡＴ制御タスク３００の実行開始までの期間が短くなる。このようなタスクの込み合い度合いが極度に大きくなると、ＡＴ制御タスク３００の実行終了前に、次の回のＡＴ制御タスク３００の実行開始タイミングが来てしまう場合がある。このような場合、新たな回のＡＴ制御タスク３００の実行は行われないようになっている。このような現象をタスク抜けという。
【００４８】
次に、負荷状態判定タスク４００の処理内容について説明する。図６に、負荷状態判定タスク４００のフローチャートを示す。ＣＰＵ１４は、負荷状態判定タスク４００の実行を開始すると、まずステップ４１０で、ＡＴ制御タスク３００のタスク抜けが起こる否かを判定する。タスク抜けが起こるとは、この負荷状態判定タスク４００の実行直後に実行されるＡＴ制御タスク３００についてのタスク抜けがあることをいう。この判定は、具体的には、ＲＡＭ１１中のタスク実行中フラグがオンであるか否かで判定する。タスク実行中フラグがオンであれば、現在もＡＴ制御タスク３００の実行が終了していないことになり、この直後に新たなＡＴ制御タスク３００は実行できず、タスク抜けが発生する。また、タスク実行中フラグがオフであれば、現時点でＡＴ制御タスク３００の実行は終了しているので、この直後に新たなＡＴ制御タスク３００が実行でき、タスク抜けが発生しないことになる。
【００４９】
図７に、タスク実行フラグの時間的変化と、タスク抜け判定の実行タイミング６１〜６４との関係を示すタイミング図を示す。このタイミング図では、時間の流れの向きは左から右への向きである。また、実線６０が、タスク実行中フラグの時間変化を示している。負荷状態判定タスク４００の実行タイミング６１、６２、６３においては、タスク実行中フラグはオフからオンに立ち上がる直前となっているので、タスク抜けはないと判定され、ＡＴ制御タスク３００の実行が長引いた場合の負荷状態判定タスク４００の実行タイミング６４においては、タスク実行中フラグがオンのままなので、タスク抜けがあると判定される。
【００５０】
タスク抜けがある場合、負荷状態判定タスク４００の実行は終了し、タスク抜けがない場合、続いてステップ４２０を実行する。
【００５１】
ステップ４２０では、前回のＡＴ制御タスク３００の終了時から次のＡＴ制御タスク３００の実行開始までの余裕時間を計測する。具体的には、現在時刻から、ＲＡＭ１１に記憶された前回のＡＴ制御タスク３００の終了時刻を減じた結果の時間間隔を、余裕時間とする。なお、負荷状態判定タスク４００の終了後すぐにＡＴ制御タスク３００の実行が開始されるので、現在時刻は、実質的にＡＴ制御タスク３００の実行開始時刻と同じであると言える。このようにして算出された余裕時間は、図３および図５におけるＡＴ制御タスク３００終了時刻ｔ１から、負荷状態判定タスク４００実行時刻ｔ２までの時間間隔に相当する。
【００５２】
続いてステップ４３０では、ステップ４２０で特定した余裕時間に基づいて、ＡＴ制御タスク３００の処理内容を簡略化するか否かの判定を行う。具体的には、特定した余裕時間と、所定の第１のしきい値時間（例えば１００マイクロ秒、１０マイクロ秒等）とを比較し、余裕時間がその第１のしきい値時間以下であれば、簡略化すると判定し、高負荷履歴フラグをオンにする。高負荷履歴フラグは、ＲＡＭ１１の所定の記憶領域に記憶される変数であり、他のタスクや、他の実行回における自身のタスクから参照可能となっている。なお、余裕時間がその所定のしきい値より大きい場合は、高負荷履歴フラグの値を変更しない。以下、この高負荷履歴フラグの値がオンである状態を高負荷状態であるとして説明する。
【００５３】
続いてステップ４４０では、変速制御切り替え処理を実行し、その後にこの負荷状態判定タスク４００の実行を終了する。
【００５４】
図８に、ステップ４４０の変速制御切り替え処理の詳細のフローチャートを示す。変速制御切り替え処理においては、ＣＰＵ１４は、まずステップ４４１で、現在のＲＡＭ１１中の高負荷履歴フラグがオンであるか否かを判定する。オンである場合は続いてステップ４４２を実行し、オンでない場合は続いてステップ４５１を実行する。
【００５５】
ステップ４４２では、変速出力禁止フラグをセットする、すなわち、オンにする。変速出力禁止フラグは、ＲＡＭ１１中の一定の領域に割り当てられた変数であり、他のタスクや、他の実行回における自身のタスクから参照可能となっている。この変速出力禁止フラグをオンにすることは、後述するように、ＡＴ制御タスク３００の処理の一部としての変速出力処理を禁止することに相当する。したがって、このステップ４４２の処理は、ＡＴ制御タスク３００の処理内容を一部省略して簡略化させることで、ＡＴ制御タスク３００の処理負荷を通常よりも下げるための処理である。
【００５６】
続いてステップ４４３では、ＲＡＭ１１に記憶されるタイマ値が所定の整数Ｍ以下であるか否かを判定する。Ｍ以下であれば続いてステップ４４４を実行し、Ｍを超えていれば続いてステップ４５１を実行する。
【００５７】
ステップ４４４では、現在のタイマ値の値を１だけ増加させ、続いてステップ４４５で、ステップ４２０にて特定した余裕時間が所定の第２のしきい値時間Ｗ以下であるか否かを判定する。ここで、所定の第２のしきい値時間は、上述の第１のしきい値時間より長い時間である。第２のしきい値時間以下であれば、続いてステップ４４６を実行し、第２のしきい値時間を超えていれば、続いてステップ４４７を実行する。
【００５８】
ステップ４４６では、処理Ａを実行する。図９に、処理Ａのフローチャートを示す。この処理Ａでは、最初に１を代入した（ステップ４４６２）変数ｎを、所定の最大値Ｊを超えるまで１毎にインクリメントさせながら（ステップ４４６６、４４６８）、その変化する変数ｎの各値毎に、現在のタイマ値と、所定のしきい値ｄｎ（ｎ＝１、２、…、Ｊ）とを比較し（ステップ４４６４）、タイマ値の方が大きい場合、制御ｎ（ｎ＝１、２、…、Ｊ）の処理中止フラグをセットする（ステップ４４６４）。なお、しきい値ｄｎ間には、ｄ１＜ｄ２＜…＜ｄＪという関係がある。また、Ｊ個ある制御ｎの処理中止フラグは、ＲＡＭ１１に記憶される変数であり、他のタスクや、他の実行回における自身のタスクから参照可能となっている。
【００５９】
なお、この処理Ａでセットされる処理中止フラグは、後述するように、ＡＴ制御タスク３００の処理の一部の実行を省略させるためのフラグである。したがって、処理Ａは、ＡＴ制御タスク３００の処理内容を一部省略して簡略化させることで、ＡＴ制御タスク３００の処理負荷を通常よりも下げるための処理である。
【００６０】
ステップ４４７では、変速出力禁止フラグをクリアする、すなわち、オフにする。続いてステップ４４８でタイマ値をゼロにし、ステップ４４９で高負荷履歴フラグをクリアし、ステップ４５０で制御１〜制御Ｊのすべての処理中止フラグをクリアし、変速制御の切り替え処理を終了する。
【００６１】
ステップ４５１では、変速出力禁止フラグをクリアし、続いてステップ４５２でタイマ値をゼロにし、ステップ４５３で高負荷履歴フラグをクリアし、ステップ４５４で制御１〜制御Ｊのすべての処理中止フラグをクリアし、変速制御の切り替え処理を終了する。
【００６２】
以上のような負荷状態判定タスク４００の実行により、ＣＰＵ１４は、タスク抜けのない場合、負荷状態判定タスク４００のある実行回において、余裕時間が第１のしきい値時間より初めて短くなると、高負荷履歴フラグをオンに切り替え（ステップ４３０）、変速出力禁止フラグをセットし（ステップ４４２）、タイマ値をゼロから１にインクリメントし（ステップ４４４）、ＡＴ制御タスク３００の実行を簡略化する処理Ａを行う（ステップ４４６）。そして、以降の回の負荷状態判定タスク４００の実行において、タイマ値が整数Ｍを上回るか（ステップ４４０参照）、あるいはその都度特定した余裕時間が第２のしきい値時間を超える値にまで回復しない限り（ステップ４４５参照）、タイマ値のインクリメント、および処理Ａを実行し続ける。したがって、タイマ値は、高負荷状態の持続時間の増大に伴って増大する。より詳しくは、タイマ値は高負荷状態の持続時間に比例する。
【００６３】
そして、高負荷状態の持続時間がある時間を超えて持続することによってタイマ値がＭを超えるか、あるいは、余裕時間が第２のしきい値を超えるまでに復帰した場合は、変速出力禁止フラグ、高負荷履歴フラグ、全処理中止フラグをクリアし、タイマ値をゼロにリセットする（ステップ４４７〜４５４）ことで、高負荷状態を終了させ、ＡＴ制御タスク３００の処理内容を、省略のない通常の処理内容にする。
【００６４】
また、タスク抜けがある場合（ステップ４１０参照）、変速出力禁止フラグ、処理中止フラグ、高負荷履歴フラグの値はそのまま変化せず、ＡＴ制御タスク３００の処理内容は、それまでの処理内容から変化しない。
【００６５】
次に、図４に示したＡＴ制御タスク３００のステップ３２０のメイン処理について説明する。このメイン処理のフローチャートを図１０に示す。ＣＰＵ１４は、メイン処理においては、まずステップ３２２で、変速出力禁止フラグがオンであるか否かを判定し、オフであれば続いてステップ３２４を実行し、オンであれば続いてステップ３２６を実行する。
【００６６】
ステップ３２６では、変速出力を禁止する。すなわち、ＡＴ制御タスク３００のうち、オートマチックトランスミッション７に変速のための制御信号を出力する処理、およびその出力のために変速先のシフト位置を算出する処理を、必要になったとしても行わないような設定を行う。
【００６７】
ステップ３２８では、処理中止フラグに基づいて処理禁止を行う。上述した通り、処理中止フラグは、高負荷状態の持続時間の増加と共に、制御１、制御２、…、制御Ｊの順で、オンとなっていく。このステップ３２８では、このオンとなっている中止フラグに対応した制御を禁止する、すなわち必要になったとしても行わないような設定を行う。具体的には、例えば最も早く禁止する制御として、緊急性を要さない油圧制御の学習処理を、処理１としてもよい。
【００６８】
続いてステップ３２９で、ＡＴ制御を行う。このステップにおいて、禁止された制御の実行が省略されるので、禁止されない通常の場合に比べ、全体としてＡＴ制御タスク３００の処理が簡略化され、その結果、ＡＴ制御タスク３００の処理負荷が軽減される。ステップ３２９の後、メイン処理は終了する。
【００６９】
ステップ３２４では、通常のＡＴ制御のための処理を行う。通常のＡＴ制御のための処理とは、変速出力処理、制御１〜制御Ｊを禁止しないＡＴ制御をいう。ステップ３２４の後、メイン処理は終了する。
【００７０】
以上のような負荷状態判定タスク４００およびＡＴ制御タスク３００をＣＰＵ１４が実行することで、車両制御装置１は、ＡＴ制御タスク３００の、前回の実行終了時から今回の実行開始時までの余裕時間を特定し（ステップ４２０参照）、その特定した余裕時間が第１のしきい値時間より長いか短いかを判定し（ステップ４３０参照）、短い場合には、高負荷状態の持続時間に比例するタイマ値が所定の整数Ｍを超えず、（ステップ４４３参照）、かつ余裕時間が第２のしきい値時間（＞第１のしきい値時間）以下である限り、ＡＴ制御タスク３００の処理内容を一部省略して簡略化させることで、ＡＴ制御タスク３００の処理負荷を通常よりも下げるための処理を実行する（ステップ４４２、４４６参照）。
【００７１】
このようになっているので、車両制御装置１は、ＡＴ制御タスク３００の余裕時間が第１のしきい値時間より短くなって以降、第２のしきい値時間よりも長くならず、かつタイマ値がＭを超えるような所定の時間が経過していない場合に、ＡＴ制御タスク３００の処理負荷がより低くなるよう、ＡＴ制御タスク３００の処理内容を変化させるので、タスクの込み合い度合いが軽減される。なお、余裕時間が第１のしきい値時間より短くなって以降、第２のしきい値時間よりも長くならないという基準が、所定のタスク混雑基準に該当する。
【００７２】
ただし、ＡＴ制御タスク３００のタスク抜けが発生する場合（ステップ４１０参照）は、この処理Ａを行うことはない。したがって、車両制御装置１がこのようなＡＴ制御タスク３００の処理内容の変更を行うのは、当該余裕時間が、オートマチックトランスミッション制御用タスクの、ある回の実行終了時刻から、タスク抜けを経ない、次の回の実行開始時刻までの余裕時間である場合のみである。このようにすることで、タスク抜けによって１回分ＡＴ制御タスク３００が実行されなくなることで、ＲＡＭ１１中のＡＴ制御タスク３００の実行終了時刻の値が変更されなくなり、実際はタスクが込み合っているにもかかわらず余裕時間が長くなってしまうことによる、高負荷状態の誤判断の可能性を、低減するこができ、それにより、より精度の高いＡＴ制御タスク３００の処理負荷制御を行うことができる。
【００７３】
また、ステップ４４６の処理Ａにおいては、タイマ値が大きくなる程、オンとなる処理中止フラグが増えていく。すなわち、車両制御装置１は、高負荷状態の持続時間経過と共に、ＡＴ制御タスク３００の処理内容の簡略化度合い、すなわち処理負荷の軽減度合いを大きくしていくので、時系列に沿った段階的なＡＴ制御タスク３００の処理負荷の軽減を行うことができる。
（第２実施形態）
次に、本発明の第２実施形態について説明する。本実施形態が第１実施形態と異なるのは、第１しきい値時間および第２しきい値時間である。第１実施形態においては、第１しきい値時間および第２しきい値時間は一定時間であったが、本実施形態においては、第１しきい値時間および第２しきい値時間が、車両の走行状態に基づいて変化するようになっている。
【００７４】
例えば、第１しきい値時間および第２しきい値時間は、スロットルセンサ３から取得したスロットル開度の情報、車速センサ４から取得した車速の情報に基づいて、スロットル開度が大きくなればなるほど第１しきい値時間および第２しきい値時間が短く、車速が大きくなればなるほど第１しきい値時間および第２しきい値時間が短くなるようになっていてもよい。
【００７５】
そして、このような第１しきい値時間および第２しきい値時間と車両状態との依存関係の情報は、車両制御装置１のＲＯＭ１２にあらかじめ記憶されていてもよい。そして、依存関係の情報は、図１１に示すような、各行があるスロットル開度に対応し、各列がある車速に対応するようなテーブルとして記憶されていてもよい。この場合、ＲＯＭ１２は、第１しきい値時間用のテーブルと第２しきい値時間用のテーブルを、それぞれ有するようになっていてもよい。
【００７６】
なお、上述のように、第１しきい値時間および第２しきい値時間の両方がこのように変化する必要はなく、どちらか一方が変化し、他方は一定値のままであってもよい。
【００７７】
また、車両情報としては、スロットル開度、車速に限らず、エンジン回転数、外気温、エンジン温度、ステアリング量等、車両の物理的状態を示す量であればどのようなものでもよい。
（第３実施形態）
次に、本発明の第３実施形態について説明する。本実施形態が第１実施形態と異なるのは、余裕時間の算出方法である。第１実施形態においては、ＣＰＵ１４が負荷状態判定タスク４００をＡＴ制御タスク３００の実行直前に実行することで、負荷状態判定タスク４００内で、前回のＡＴ制御タスク３００の実行終了から次回のＡＴ制御タスク３００の実行開始までの実質的な余裕時間を実測しているが、本実施形態においては、高負荷状態の判定対象としての余裕時間を、過去のシフトアップ時における余裕時間の実測値に基づいて推定するようになっている。
【００７８】
図１２に、本発明の余裕時間の推定の概念を説明するためのタイミング図を示す。図中、左から右への向きが時間の流れの向きに対応する。図中の各段が、上段から順に１速から２速への変速中、ｋ−１（ｋは３以上）速からｋ速への変速中、ｋ速からｋ＋１速への変速中における、ＡＴ制御タスク実行時間帯７１〜７３と、ＡＴ制御タスク終了から負荷状態判定タスク４００の実行時刻までの余裕時間７４〜７６を示している。
【００７９】
本実施形態においては、例えば現在のシフト位置がｋ速である場合、１速からｋ速までの各シフトアップ時における余裕時間の実測値Ｔ１、…、Ｔｋ−１を記憶しておき、その記憶した余裕時間Ｔ１、…、Ｔｋ−１のうち、最も短いものを、次に来るであろうｋ速からｋ＋１へのシフトチェンジ時における余裕時間Ｒｋであると推定し、シフトチェンジ前からその推定した余裕時間を用いたＡＴ制御タスクの処理内容の変更を行う。
【００８０】
このような機能を実現するための、本実施形態のＡＴ制御タスク３００’のフローチャートを図１３に示す。このＡＴ制御タスク３００’が第１実施形態に示したＡＴ制御タスク３００と異なる点は、ステップ３３０のシフトチェンジ変数記憶の処理が、ステップ３２０と３４０との間に設けられたことである。
【００８１】
このステップ３３０では、現在自車両がシフトアップ中であるかシフトダウン中であるか、あるいはシフト変化していないかを示す変速状態フラグ、および、シフト変化中であれば何速から何速への変化であるか、シフト変化中でなければ現在何速かを示す変速段データを、シフトチェンジ変数としてＲＡＭ１１に記憶させる。ＣＰＵ１４は、車両がシフトチェンジする必要があると判定した場合、シフトチェンジのためのＡＴ制御タスク３００’の複数回の実行から成る１シリーズにより、１回のシフトチェンジを実現するようになっている。ステップ３３０では、今回のＡＴ制御タスク３００’の実行が、シフトチェンジのための実行回に該当する場合に、記憶させるシフトチェンジ変数に、そのシフトチェンジに対応した値を付与するようになっている。なお、このシフトチェンジ変数は、他のタスクから読み出し可能となっている。
【００８２】
また、本実施形態のＣＰＵ１４は、図６に示した第１実施形態の負荷状態判定タスク４００のステップ４３０に代えて、図１４に示す余裕時間推定および判定処理６００を実行するようになっている。すなわち、負荷状態判定タスク４００の実行において、ステップ４２０で、前回のＡＴ制御タスク３００’の終了時間から現在時刻までの余裕時間を実測した後、続いてステップ６１０で、ＲＡＭ１１中のシフトチェンジ変数に基づいて、現在シフトアップ中であれば、ＲＡＭ１１に確保されたシフト変化状態毎の余裕時間記憶領域（以下、余裕時間配列領域と記す）の、現在のシフト変化状態が該当する位置に、その余裕時間を記憶させる。なお、シフト変化状態とは、１速−２速、２速−３速等、シフトがどの位置からどの位置に変わろうとしているかの状態をいう。
【００８３】
続いてステップ６２０では、ＲＡＭ１１中のシフトチェンジ変数に基づいて、現在のシフト位置を特定し、余裕時間配列領域中の、１速からその変速位置までの各シフト変化状態が該当する位置に、余裕時間が記憶されているか否かを判定し、全て記憶されていれば、続いてステップ６３０を実行し、１つでも記憶されていない位置があれば、余裕時間推定および判定処理６００を終了し、続いて負荷状態判定タスク４００のステップ４４０を実行する。
【００８４】
ステップ６３０では、余裕時間配列領域中の、１速からその変速位置までの各シフト変化状態が該当する位置に記憶される各余裕時間Ｔ１〜Ｔｋ−１（現在のシフト位置をｋとする）のうち、最も小さい値を、推定余裕時間Ｒｋとする。後の負荷状態判定タスク４００のステップ４４０では、この推定余裕時間Ｒｋを、第２のしきい値時間と比較する余裕時間として用いる。
【００８５】
続いてステップ６４０では、現在変速中であるか否かを、シフトチェンジ変数に基づいて判定し、変速中であれば余裕時間推定および判定処理６００を終了し、続いてステップ４４０を実行する。また、変速中でなければ、続いてステップ６５０を実行する。
【００８６】
ステップ６５０では、この推定余裕時間Ｒｋが第１実施形態と同じであってもよく同じでなくともよい第１のしきい値時間Ｓより短いか否かを判定し、短い場合、ステップ６６０で高負荷履歴フラグをオンとし、そうでなければ、余裕時間推定および判定処理６００を終了し、続いてステップ４４０を実行する。
【００８７】
このようなプログラムをＣＰＵ１４が実行することで、車両制御装置１は、第１のしきい値時間および第２のしきい値時間と比較する余裕時間を、過去のシフトアップ時における余裕時間の最小値に基づく時間とすることができる。
【００８８】
ＡＴ制御においては、変速中と非変速中とでその処理負荷が大きく異なる場合が多いので、このようにすることで、変速前から、変速時におけるタスクの込み合い度合いにあらかじめ備えたＡＴ制御タスク３００’の処理内容の制御を行うことができる。
【００８９】
ただし、現在変速中である場合（ステップ６４０参照）は、高負荷履歴フラグをオンとすることはない。したがって、車両制御装置１がこのようなＡＴ制御タスク３００’の処理内容の処理負荷低減のための変更を行うのは、現在変速中でない場合のみである。これは、オートマチックトランスミッション制御においては、変速中においてはその制御内容を簡略化することは好ましくない場合があるという観点に基づくものである。
【００９０】
また、余裕時間配列領域中の余裕時間は、シフト変化状態毎に複数記憶されるようになっており、それぞれ過去の複数回数の当該シフト変化状態時における実測余裕時間を記憶するようになっていてもよい。なお、この複数回のシフト変化状態時とは、同一シリーズにおけるものでよいし、異なるシリーズにおけるものでもよい。このような場合、第１のしきい値時間および第２のしきい値時間と比較する余裕時間は、過去の複数のシフトアップ時における複数の余裕時間の最小値となる。このようにすることで、さらに余裕時間推定の精度が向上する。
【００９１】
また、第１のしきい値時間および第２のしきい値時間と比較する余裕時間は、過去の複数の余裕時間の最小値ではなく、平均値等、それら余裕時間の代表的な値であってもよい。
（第４実施形態）
次に、本発明の第４実施形態について説明する。本実施形態が第１実施形態と異なるのは、余裕時間の算出方法である。第１実施形態においては、ＣＰＵ１４が負荷状態判定タスク４００をＡＴ制御タスク３００の実行直前に実行することで、負荷状態判定タスク４００内で、前回のＡＴ制御タスク３００の実行終了から次回のＡＴ制御タスク３００の実行開始までの実質的な余裕時間を実測しているが、本実施形態においては、高負荷状態の判定対象としての余裕時間を、過去のシフトアップ時における余裕時間の実測値を過去の非シフトチェンジ時の余裕時間の実測値から減算した値に基づいて推定するようになっている。
【００９２】
図１５に、本発明の余裕時間の推定の概念を説明するためのタイミング図を示す。図中、左から右への向きが時間の流れの向きに対応する。図中の各段が、上段から順に、ｋ−１速でありかつ変速していないとき、ｋ−１速からｋ速への変速中、ｋ速でありかつ変速していないとき、ｋ速からｋ＋１速に変速するときにおける、ＡＴ制御タスク実行時間帯８１〜８４と、ＡＴ制御タスク終了から負荷状態判定タスク４００の実行時刻までの余裕時間８５〜８８を示している。
【００９３】
本実施形態においては、例えば現在のシフト位置がｋ速である場合、ｋ−１速からｋ速までの各シフトアップ時における余裕時間の実測値Ｔｋ−１を記憶しておき、さらに、ｋ−１速でシフト変化がない時における余裕時間の実測値Ｂｋ−１を記憶しておき、その記憶した余裕時間Ｂｋ−１から余裕時間Ｔｋ−１を減算した結果の差時間８９を、ｋ−１速でシフト変化がない現在の余裕時間の実測値Ｂｋから減じ、その結果を、次に来るであろうｋ速からｋ＋１へのシフトチェンジ時における余裕時間Ｒｋであると推定し、シフトチェンジ前からその推定した余裕時間を用いたＡＴ制御タスクの処理内容の変更を行う。
【００９４】
このような機能を実現するための、本実施形態のＡＴ制御タスクは、第３実施形態において図１３に示したＡＴ制御タスク３００’と同等である。
【００９５】
また、本実施形態のＣＰＵ１４は、図６に示した第１実施形態の負荷状態判定タスク４００のステップ４３０に代えて、図１６に示す余裕時間推定および判定処理７００を実行するようになっている。すなわち、負荷状態判定タスク４００の実行において、ステップ４２０で、前回のＡＴ制御タスク３００’の終了時間から現在時刻までの余裕時間を実測した後、続いてステップ７１０で、ＲＡＭ１１中のシフトチェンジ変数に基づいて、現在変速中であるか否かを判定し、変速中であれば、続いてステップ７４０を実行する。
【００９６】
変速中でない場合、続いてステップ７２０で、ステップ４２０にて実測した余裕時間を、ＲＡＭ１１に確保されたシフト位置毎の余裕時間記憶領域（以下、非シフトチェンジ時余裕時間配列領域と記す）の、現在のシフト位置が該当する位置に、その余裕時間を記憶させる。そしてステップ７２０の後、余裕時間推定および判定処理７００の実行を終了し、続いて負荷状態判定タスク４００のステップ４４０を実行する。
【００９７】
ステップ７４０では、ステップ４２０にて実測した余裕時間を、ＲＡＭ１１に確保されたシフト変化状態毎の余裕時間記憶領域（以下、シフトアップ時余裕時間配列領域と記す）の、現在のシフト変化状態が該当する位置に、その余裕時間を記憶させる。
【００９８】
続いてステップ７５０では、非シフトチェンジ時余裕時間配列領域から、現在のシフト位置より１つ下のシフト位置に該当する位置に記憶された余裕時間Ｂｋ−１を読み出し、さらに、シフトアップ時余裕時間配列領域から、現在のシフト位置より１つ下のシフト位置から現在のシフト位置にシフトアップするシフト変化状態における位置に記憶された余裕時間Ｔｋ−１を読み出し、この余裕時間Ｂｋ−１から余裕時間Ｔｋ−１を減じた差時間を、現在の実測余裕時間Ｂｋから減算する。そして、この結果の値を、推定余裕時間Ｒｋとする。後の負荷状態判定タスク４００のステップ４４０では、この推定余裕時間Ｒｋを、第２のしきい値時間と比較する余裕時間として用いる。
【００９９】
続いてステップ７６０ではこの推定余裕時間Ｒｋが第１実施形態と同であってもよく同じでなくともよい第１のしきい値時間Ｓより短いか否かを判定し、短い場合、ステップ７７０で高負荷履歴フラグをオンとし、そうでなければ、余裕時間推定および判定処理７００を終了し、続いてステップ４４０を実行する。
【０１００】
このようなプログラムをＣＰＵ１４が実行することで、車両制御装置１は、第１のしきい値時間および第２のしきい値時間と比較する余裕時間を、過去のシフトアップ時における余裕時間をそのシフトアップ前の非シフトチェンジ時の余裕時間から減算した差分を、最新の実測余裕時間から減算した時間とすることができる。
【０１０１】
こように、過去のシフトアップ前からシフトアップ時への遷移における余裕時間の変化に基づいて、次回のシフトアップ時における余裕時間を推定することができるので、より精度の高い推定を行うことができる。
【０１０２】
ただし、現在変速中である場合（ステップ７１０参照）は、高負荷履歴フラグをオンとすることはない。したがって、車両制御装置１がこのようなＡＴ制御タスク３００’の処理内容の処理負荷低減のための変更を行うのは、現在変速中でない場合のみである。これは、オートマチックトランスミッション制御においては、変速中においてはその制御内容を簡略化することは好ましくない場合があるという観点に基づくものである。
【０１０３】
また、非シフトチェンジ時余裕時間配列領域中の余裕時間は、シフト位置毎に複数記憶されるようになっており、それぞれ過去の複数回数の当該非シフト変化状態時における実測余裕時間を記憶するようになっていてもよい。このような場合、第１のしきい値時間および第２のしきい値時間と比較する余裕時間は、過去の複数のシフトアップ時における複数の余裕時間の平均値でも、最大値でも最小値でも、代表的な値であればどのようなものでもよい。このようにすることで、さらに余裕時間推定の精度が向上する。
【０１０４】
また、シフトアップ時余裕時間配列領域中の余裕時間は、シフト変化状態毎に複数記憶されるようになっており、それぞれ過去の複数回数の当該シフト変化状態時における実測余裕時間を記憶するようになっていてもよい。なお、この複数回のシフト変化状態時とは、同一シリーズにおけるものでよいし、異なるシリーズにおけるものでもよい。このような場合、第１のしきい値時間および第２のしきい値時間と比較する余裕時間は、過去の複数のシフトアップ時における複数の余裕時間の平均値でも、最大値でも最小値でも、代表的な値であればどのようなものでもよい。
【０１０５】
ここで、上記の各実施形態における構成要素と、特許請求の範囲の構成要素との対応関係について説明する。
【０１０６】
まず、各実施形態において、ＣＰＵ１４が、ＡＴ制御タスク３００、３００’を実行することで、タスク実行手段にとして機能する
また、ＣＰＵ１４が、負荷状態判定タスク４００のステップ４２０を実行することで、余裕時間特定手段として機能し、ステップ４３０、４４０を実行することで、変更手段として機能する。
【０１０７】
また、ＡＴ制御タスク３００、３００’がタスクＸに相当する。ただし、タスクＸとしてはＡＴ制御タスク３００、３００’である必要はなく、車両制御のためのタスクであればどのようなものでもよい。
【０１０８】
また、上記の各実施形態においては、１つの車両制御装置内で複数のタスクが実行されているが、必ずしもこのようになっておらずともよく、１つの車両制御装置内でただ１つの車両制御用タスクが、所定のタイミングで繰り返し実行されているようになっていてもよい。このような場合であっても、車両の走行状態によっては、１回の処理負荷が急激に増大し、その回のタスクの実行が次の回の実行開始時までに終わらなくなる場合がありうるからである。
【０１０９】
また、上記の各タスクは、ＣＰＵ１４がプログラムを実行することで実行されているが、必ずしもこのようになっておらずともよく、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の、回路構成がプログラム可能な装置によって、ハードウェア的に実行されるようになっていてもよい。
【０１１０】
また、上記の各実施形態において、負荷状態判定タスク４００はＡＴ制御タスク３００の直前に実行されるようになっているが、必ずしもこのようになっておらずともよい。例えば、ＡＴ制御タスクが、各実行回の自身の実行開始時刻と実行終了時刻の情報をＲＡＭ１１に記憶させ、負荷状態判定タスク４００が、その記憶された情報に基づいて、ある回のＡＴ制御タスクの実行終了時から次の回のＡＴ制御タスクの実行開始時までの余裕時間を特定するようになっていてもよい。
【０１１１】
また、第１実施形態、第２実施形態、第３実施形態、第４実施形態のそれぞれにおける、第１のしきい値時間および第２のしきい値時間と比較する余裕時間の算出方法を、適宜組み合わせるようになっていてもよい。例えば、現在のシフト位置が１速である場合には、第１実施形態の算出方法を用い、２速以上であるときは、第３実施形態または第４実施形態の方法を用いるようになっていてもよい。また、自車両の加速が所定加速度以上である等、車両が急速にスピードアップしているような場合には、第３実施形態および第４実施形態の方法を用い、それ以外の場合には第１実施形態または第２実施形態の方法を用いるようになっていてもよい。
【図面の簡単な説明】
【０１１２】
【図１】第１実施形態に係る車両制御装置１のハードウェア構成および車両制御装置１が車両に搭載された場合のセンサ・アクチュエータ２〜８との接続関係を示す図である。
【図２】ＣＰＵ１４が実行するタスクを示す図である。
【図３】ＣＰＵ１４の、各タスクに対する時間区間の割り当て状況を示す図である。
【図４】ＡＴ制御タスク３００のフローチャートである。
【図５】ＣＰＵ１４におけるタスクの込み合い度合いが高い場合の、各タスクの実行タイミングを示す図である。
【図６】負荷状態判定タスク４００のフローチャートである。
【図７】タスク実行中フラグの値とＡＴ制御タスク３００の実行タイミング６１〜６４との関係を示すタイミング図である。
【図８】負荷状態判定タスク４００の変速制御切り替え処理のフローチャートである。
【図９】処理Ａのフローチャートである。
【図１０】ＡＴ制御タスク３００のメイン処理のフローチャートである。
【図１１】第２実施形態における、第１および第２のしきい値時間を示すテーブルの図表である。
【図１２】第３実施形態の余裕時間の推定の概念を説明するためのタイミング図である。
【図１３】第３実施形態におけるＡＴ制御タスク３００’のフローチャートである。
【図１４】第３実施形態における余裕時間推定および判定処理６００のフローチャートである。
【図１５】第４実施形態における余裕時間の推定の概念を説明するためのタイミング図である。
【図１６】第４実施形態における余裕時間推定および判定処理７００のフローチャートである。
【符号の説明】
【０１１３】
１…車両制御装置、２…クランク角センサ、３…スロットルセンサ、４…車速センサ、
５…インジェクタ、６…ブレーキ、７…オートマチックトランスミッション、
８…イグナイタ、１１…ＲＡＭ、１２…ＲＯＭ、１３…Ｉ／Ｏ、１４…ＣＰＵ、
１００…エンジン制御タスク、２００…ブレーキ制御タスク、
３００…ＡＴ制御タスク、４００…負荷状態判定タスク、
６００、７００…余裕時間推定および判定処理。
【図１】
2006090356.tif 000003
【図２】
2006090356.tif 000004
【図３】
2006090356.tif 000005
【図４】
2006090356.tif 000006
【図５】
2006090356.tif 000007
【図６】
2006090356.tif 000008
【図７】
2006090356.tif 000009
【図８】
2006090356.tif 000010
【図９】
2006090356.tif 000011
【図１０】
2006090356.tif 000012
【図１１】
2006090356.tif 000013
【図１２】
2006090356.tif 000014
【図１３】
2006090356.tif 000015
【図１４】
2006090356.tif 000016
【図１５】
2006090356.tif 000017
【図１６】
2006090356.tif 000018