以下この発明のいくつかの実施の形態について、図面を参照して説明する。
実施の形態1.
図1は、この発明によるスロットルバルブ制御装置の実施の形態1を示す全体構成図である。この実施の形態1に係るスロットルバルブ制御装置は、自動車などの各種車両に搭載され、車両に搭載された内燃機関のスロットルバルブを制御する。
実施の形態1に係るスロットルバルブ制御装置は、コントロールユニット10を中心として構成され、このコントロールユニット10の外部には、アクセルセンサ1と、電子制御スロットルボディ3と、内燃機関の運転に必要な各種センサ8が組み合わされている。電子制御スロットルボディ3は、スロットルバルブ4と、スロットルセンサ5と、スロットルバルブ駆動用モータ6を含む。コントロールユニット10は、アクセルセンサ用電源11と、スロットルセンサ用電源15と、車体ボディにアースされるグランドGNDと、モータ駆動回路16と、マイクロコンピュータ20を含む。
アクセルセンサ1は、図示しないアクセルペダルに付設され、アクセルペダルの踏込値に対応したアクセルセンサ出力ASを出力し、このアクセルセンサ出力ASをコントロールユニット10へ供給する。アクセルセンサ1は、システムの安全性を高めるために、主アクセルセンサと副アクセルセンサを含むように構成される。アクセルセンサ出力ASは、センサ出力1とセンサ出力2を含み、センサ出力1は主アクセルセンサから、またセンサ出力2は副アクセルセンサからそれぞれ出力される。主アクセルセンサと副アクセルセンサは、その一方が故障したときに、その他方を使用して、コントロールユニット10が、アクセルペダルの踏込値を表わすアクセル踏込値AFVを演算できるようにするために、配置される。アクセルセンサ出力ASのセンサ出力1とセンサ出力2は、ともにアクセルペダルの踏込値に対応するアナログ値である。
アクセルセンサ1は、コントロールユニット10内のアクセルセンサ用電源11とグランドGNDに、それぞれ電源ハーネス11aとグランドハーネスGNDaを用いて接続され、アクセルセンサ用電源11から給電される。アクセルセンサ1の主アクセルセンサと副アクセルセンサは、ともにアクセルセンサ用電源11とグランドGNDに、それぞれ電源ハーネス11aとグランドハーネスGNDaを用いて接続され、アクセルセンサ用電源11から給電される。図1では、アクセルセンサ1に対し、アクセルセンサ用電源11およびグランドGNDを1つとしているが、主アクセルセンサと副アクセルセンサのそれぞれに、アクセルセンサ用電源11とグランドGNDを各1つずつ設けることもできる。
電子制御スロットルボディ3のスロットルバルブ4は、内燃機関の吸気管41内に配置され、この吸気管41に直交するスロットル軸42に固定される。このスロットルバルブ4は、スロットル軸42の回転により回動し、内燃機関に対する吸気量を制御する。駆動モータ6は、スロットル軸42を介してスロットルバルブ4を回転駆動し、スロットルバルブ4の開度を調整し、内燃機関に対する吸気量を調整する。スロットルセンサ5は、スロットルバルブ4のスロットル軸42に付設され、スロットルバルブ4の開度値に対応するスロットルセンサ出力TSを出力し、このスロットルセンサ出力TSをコントロールユニット10へ供給する。スロットルセンサ5は、システムの安全性を高めるために、主スロットルセンサと副スロットルセンサを含むように構成される。スロットルセンサ出力TSは、センサ出力1とセンサ出力2を含み、センサ出力1は主スロットルセンサから、またセンサ出力2は副スロットルセンサからそれぞれ出力される。主スロットルセンサと副スロットルセンサは、その一方が故障したときに、その他方を使用して、コントロールユニット10が、スロットルバルブ4の開度値を表わすスロットル開度値TOVを演算できるように
するために、配置される。スロットルセンサ出力TSのセンサ出力1とセンサ出力2は、ともにスロットルバルブ4の開度値に対応するアナログ量である。
スロットルセンサ5は、コントロールユニット10内のスロットルセンサ用電源15とグランドGNDに、それぞれ電源ハーネス15sとグランドハーネスGNDsを用いて接続され、スロットルセンサ用電源15から給電される。スロットルセンサ5の主スロットルセンサと副スロットルセンサは、ともにスロットルセンサ用電源15とグランドGNDに、電源ハーネス15sとグランドハーネスGNDsを用いて接続され、スロットルセンサ用電源15から給電される。図1では、スロットルセンサ5に対し、スロットルセンサ用電源15およびグランドGNDを1つとしているが、主スロットルセンサと副スロットルセンサのそれぞれに、スロットルセンサ用電源15とグランドGNDを各1つずつ設けることもできる。
コントロールユニット10のマイクロコンピュータ20は、A/D変換手段21、22と、アクセルセンサ出力ノイズ判定手段23と、アクセルセンサ出力ノイズ除去手段24と、アクセル踏込値演算手段25を有する。A/D変換手段21、22は、アクセル信号ハーネス21a、22aを用いてアクセルセンサ1に接続される。A/D変換手段21、22には、アクセル信号ハーネス21a、22aを通じて、アクセルセンサ出力ASのセンサ出力1とセンサ出力2が入力される。これらのA/D変換手段21、22は、マイクロコンピュータ20の各処理サイクルにおいて、アクセルセンサ出力ASのセンサ出力1とセンサ出力2の各出力値をサンプリングし、その各出力値をディジタル値に変換する。
アクセルセンサ出力ノイズ判定手段23は、A/D変換手段21、22からディジタル値に変換されたアクセルセンサ出力ASのセンサ出力1とセンサ出力2の出力値を受け、それぞれの出力値がノイズであるか否かを判定する。アクセルセンサ出力ノイズ除去手段24は、アクセルセンサ出力ノイズ判定手段23の出力を受け、アクセルセンサ出力ASのセンサ出力1とセンサ出力2の出力値がそれぞれノイズ(不正値)であるときには、その出力値を除去し、また、アクセルセンサ出力ASのセンサ出力1とセンサ出力2の出力値がそれぞれ正常値であるときには、それらをそのまま出力する。アクセルセンサ出力ノイズ除去手段24は、アクセル対応のセンサ出力値out1、out2を出力する。アクセル対応のセンサ出力値out1、out2は、それぞれアクセルセンサ出力ASのセンサ出力1、センサ出力2に対応する。
アクセル踏込値演算手段25は、アクセルセンサ出力ノイズ除去手段24から出力されるアクセル対応のセンサ出力値out1、out2を受け、アクセルペダルの踏込値を表わすアクセル踏込値AFVを演算する。このアクセル踏込値演算手段25は、アクセルセンサ出力ノ
イズ除去手段24から出力されるアクセル対応のセンサ出力値out1、out2に基づいて、アクセルセンサ1の主アクセルセンサと副アクセルセンサの故障判定を行ない、この故障判定に基づいて、アクセル対応のセンサ出力値out1、out2の何れか一方、または両方を用い、アクセル踏込値AFVを演算する。
各種センサ8は、内燃機関の冷却水温度、吸気温度などを検出する各種センサを含み、各種センサからのセンサ出力をコントロールユニット10に供給する。各種センサ8からのセンサ出力は、アナログ値である。マイクロコンピュータ20は、また、A/D変換手段26と、目標開度値演算手段27を有する。A/D変換手段26は、各種センサ8からのセンサ出力を受け、それらのセンサ出力をディジタル値に変換する。目標開度値演算手段27は、アクセル踏込値演算手段25とA/D変換手段26とに接続される。この目標開度値演算手段27は、アクセル踏込値演算手段25から出力されるアクセル踏込値AFV
と、A/D変換手段26でディジタル値に変換された各種センサ出力を受けて、スロットルバルブ4に対する目標開度値TAGを演算する。
マイクロコンピュータ20は、さらに、A/D変換手段31、32と、スロットルセンサ出力ノイズ判定手段33と、スロットルセンサ出力ノイズ除去手段34と、スロットル開度値演算手段35と、フィードバック制御手段36を有する。A/D変換手段31、32は、スロットル信号ハーネス31s、32sを用いてスロットルセンサ5に接続される。A/D変換手段31、32には、スロットル信号ハーネス31s、32sを通じてスロットルセンサ出力TSのセンサ出力1とセンサ出力2が供給される。A/D変換手段31、32は、マイクロコンピュータ20の各処理サイクルにおいて、スロットルセンサ出力TSのセンサ出力1とセンサ出力2の出力値をサンプリングし、それらの出力値をディジタル値に変換する。
スロットルセンサ出力ノイズ判定手段33は、A/D変換手段31、32からディジタル値に変換されたスロットルセンサ出力TSのセンサ出力1とセンサ出力の出力値を受け、それぞれの出力値がノイズ(不正値)であるか否かを判定する。スロットルセンサ出力ノイズ除去手段34は、スロットルセンサ出力ノイズ判定手段33の出力を受け、スロットルセンサ出力TSのセンサ出力1とセンサ出力2の出力値がそれぞれノイズ(不正値)であるときには、その出力値を除去し、また、スロットルセンサ出力TSのセンサ出力1とセンサ出力2の出力値がそれぞれ正常値であるときには、それらをそのまま出力する。スロットルノイズ除去手段34は、スロットル対応のセンサ出力値out1、out2を出力する。スロットル対応のセンサ出力値out1、out2は、それぞれスロットルセンサ出力TSのセンサ出力1、センサ出力2に対応する。
スロットル開度値演算手段35は、スロットルセンサ出力ノイズ除去手段34から出力されるスロットル対応のセンサ出力値out1、out2を受け、スロットルバルブ4の実開度値を表わすスロットル開度値TOVを演算する。このスロットル開度値演算手段35は、スロットルセンサ出力ノイズ除去手段34から出力されるスロットル対応のセンサ出力値out1、out2に基づいて、スロットルセンサ5の主アクセルセンサと副アクセルセンサの故障判定を行ない、この故障判定に基づいて、スロットル対応のセンサ出力値out1、out2の何れか一方、または両方を用い、スロットル開度値TOVを演算する。
フィードバック制御手段36は、目標開度値演算手段27とスロットル開度値演算手段35に接続される。このフィードバック制御手段36は、目標開度値演算手段27からの目標開度値TAGと、スロットル開度値演算手段35からのスロットル開度値TOVを受け、これらに基づいて、PID制御などにより、制御信号CSを出力する。この制御信号CSは、目標開度値TAGとスロットル開度値TOVとの偏差DFなどに基づいて演算され、スロットル開度値TOVを目標開度値TAGに一致させるモータ駆動信号である。
制御信号CSは、コントロールユニット10のモータ駆動回路16に供給される。モータ駆動回路16は、制御信号CSに基づいて、駆動モータ6の駆動電流を制御し、その駆動電流に従って、スロットルバルブ4が開閉駆動される。スロットルバルブ4の駆動結果は、スロットルセンサ5を介して再び前記コントロールユニット10へ入力される。マイクロコンピュータ10の各手段21〜27、31〜36は、繰返される各処理サイクルにおいて、前述の処理動作を実行し、スロットルバルブ4の目標開度値TAGへのフィードバック制御を行なう。
アクセルセンサ出力ASに対する一連の処理、すなわちA/D変換手段21、22とアクセルセンサ出力ノイズ判定手段23とアクセルセンサ出力ノイズ除去手段24による処理と、スロットルセンサ出力TSに対する一連の処理、すなわちA/D変換手段31、32とスロットルセンサ出力ノイズ判定手段33とスロットルセンサ出力ノイズ除去手段34による処理とは、各種定数の値は違うものの、同一の処理である。この同じ処理について、図2を用いて説明する。
図2は、実施の形態1において、マイクロコンピュータ20により実行されるノイズ除去制御の処理動作を示すフローチャートである。この図2の処理動作は、初期化時処理Aと、所定周期処理Bを含む。まず、マイクロコンピュータ20に電源が投入された場合、各種RAMを初期化するため、マイコン初期化時処理スタートA1より処理を開始し、ステップS1にてRAMの各セクションを設定し、エンドA2で処理を終了する。
初期化時処理Aでは、次の通り、初期化される。矢印の左辺は、RAMの各セクションの名称であり、矢印の右辺は設定値または初期値である。out1は、アクセルセンサ出力ノイズ除去手段24とスロットルセンサ出力ノイズ除去手段34から出力されるセンサ出力値out1に対応するセクションであり、out2は、アクセルセンサ出力ノイズ除去手段24とスロットルセンサ出力ノイズ除去手段34から出力されるセンサ出力値out2に対応するセクションである。counterは、カウンタ値であり、timerはリセット期間T2が発生した回数に対応する回数値である。
real1←A/D変換値(A/D変換手段21、31により、ディジタル値に変換されたセ
ンサ出力1)
out1←real1
out1_pre←real1
real2←A/D変換値(A/D変換手段22、32により、ディジタル値に変換されたセ
ンサ出力2)
out2←real2
out2_pre←real2
counter←Kcnt(初期値)
timer←Ktim(初期値)
所定周期処理Bは、所定周期にて繰返される各処理サイクルにおいて、繰返し実行される。この所定周期処理Bは、所定周期処理スタートB1より処理を開始する。最初のステップS2では、前回の処理サイクルにおけるノイズ除去結果であるセンサ出力値out1、out2を、それぞれ前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preに保存する。次のステップS3では、今回の処理サイクルにおけるセンサ出力1の出力値のA/D変換をA/D変換手段21、31で行ない、その結果をreal1に保存する。次のステップS4では、今回の処理サイクルにおけるセンサ出力2の出力値のA/D変換をA/D変換手段22、32で行ない、その結果をreal2に保存する。
次のステップS5では、out1について、前回の処理サイクルにおけるセンサ出力値out1_preと今回の処理サイクルにおけるA/D変換値real1との絶対差ABS(real1-out1_pre)が所定値Kadm1未満であるか否かを判定する。絶対差ABS(real1-out1_pre)が所定値Kamd1未満であるときには、ステップS5の判定結果はYESとなり、ステップS6へ進む。それ以外では、ステップS5の判定結果はNOとなり、ステップS7へ進む。ステップS6では、out2について、前回の処理サイクルにおけるセンサ出力値out2_preと今回の処理サイクルにおけるA/D変換値real2との絶対差ABS(real2-out2_pre)が所定値Kadm2未満であるか否かを判定する。絶対差ABS(real2-out2_pre)がKadm2未満であるときには、ステップS6の判定結果はYESとなり、ステップS8へ進む。それ以外では、ステップS6の判定結果はNOとなり、ステップS7へ進む。ステップS5、S6は、それぞれ判定手段を構成する。
ステップS7では、カウンタ値counterが0であるか否かを確認する。このカウンタ値counterは、絶対差ABS(real1-out1_pre)が所定値Kadm1以上となり、しかもカウンタ値counterが0以外であるとき、および絶対差ABS(real2-out2_pre)が所定値Kadm2以上となり、しかもカウンタ値counterが0以外であるときに、ステップS15において、1づつ減算されるカウント値である。カウント値counterが0であれば、ステップS7の判定結果はYESとなり、ステップS8へ進み、カウンタ値counterを初期値Kcntに初期化する。カウンタ値counterが0以外であれば、ステップS7の判定結果はNOとなり、ステップS15へ進む。ステップS15では、今回の処理サイクルにおけるセンサ出力値out1、out2を前回の処理サイクルにおけるセンサ出力値に保持するため、今回の処理サイクルにおけるセンサ出力値out1に前回の処理サイクルにおけるセンサ出力値out1_preを代入し、また、今回の処理サイクルにおけるセンサ出力値out2に前回の処理サイクルにおけるセンサ出力値out2_preを代入し、カウント値counterから1を減算する。
このカウンタ値counterは、初期値がKcntであるが、ステップS5、S6の判定結果がNOとなり、しかもステップS7の判定結果がNOとなる処理サイクルで、順次1が減算される。ステップS7の判定結果がNOとなる処理サイクルがKcntに等しい回数だけ繰返されると、カウンタ値counterが0となり、ステップS7の判定結果がYESとなる。ステップS8では、ステップS5、S6の判定結果がともにYESとなったとき、およびステップS7の判定結果がYESとなったときに、カウンタ値counterが初期値Kcntに初期化される。
ステップS5、S6、S7、S15は、今回の処理サイクルにおけるA/D変換値real1、real2が、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preと比較して、その変化量が大きい場合に、今回の処理サイクルにおけるセンサ出力値out1、out2を前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preに保持する第1の制御ブロックCB1を構成する。
次のステップS9では、今回の処理サイクルにおけるA/D変換値real1とreal2との絶対差ABS(real1-real2)が所定値Kdis未満であるか否かが判定される。絶対差ABS(real1-real2)が所定値Kdis未満であるときには、ステップS9の判定結果はYESとなり、ステップS11に進む。絶対差ABS(real1-real2)が所定値Kdis以上であるときには、ステップS9の判定結果はNOとなり、ステップS12へ進む。ステップS9は、判定手段を構成する。
ステップS11では、回数値timerが0より大きいか否かを確認する。この回数値timerは、センサ出力値out1とセンサ出力値out2がほぼ等しい、すなわち、リセット状態と判定された処理サイクルの数を表だけ、所定値Ktimから1ずつ減算される。回数値timerの値が0より大きいときには、ステップS11の判定結果はYESとなり、ステップS13に進む。ステップS13では、今回の処理サイクルにおけるセンサ出力値out1、out2がノイズ(不正値)であると判定し、今回の処理サイクルにおけるセンサ出力値out1に前回の処理サイクルにおけるセンサ出力値out1_preを代入し、また、今回の処理サイクルにおけるセンサ出力値out2に前回の処理サイクルにおけるセンサ出力値out2_preを代入し、今回の処理サイクルにおけるセンサ出力値out1、out2を、ともに前回の処理サイクルにおける前回値に保持する。併せて、このステップS13では、回数値timerから1を減算する。回数値timerが0であるときには、ステップS11の判定結果はNOとなり、ステップS14へ進む。
ステップS9の判定結果がNOとなったときには、ステップS12において、回数値timerをKtimに初期化し、ステップS14へ進む。ステップS14では、今回の処理サイクルにおけるセンサ出力値out1、out2は正常値と判定され、今回の処理サイクルにおけるセンサ出力値out1にA/D変換値real1を代入し、今回の処理サイクルにおけるセンサ出力値out2にA/D変換値real2を代入する。ステップS13、S14、S15の処理が終了すると、エンドB2へ進み、今回の処理サイクルを終了する。
ステップS9、S11、S13は、今回の処理サイクルにおけるアクセルセンサ1およびスロットルセンサ5のA/D変換値real1とreal2を比較し、それらのA/D変換値real1とreal2の差が所定値Kdis未満であるときに、今回の処理サイクルにおけるセンサ出力値out1、out2を、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preに保持する第2の制御ブロックCB2を構成する。
さて、実施の形態1において、アクセルセンサ1およびスロットルセンサ5に対して、センサ用電源電圧に異常が発生した場合の動作について、図3を参照して説明する。図3は、実施の形態1におけるセンサ電源電圧低下時のノイズ除去結果を示すタイミングチャートである。図3(a)は、実施の形態1において、センサ用電源電圧の低下異常が発生した場合におけるセンサ出力1とセンサ出力2とセンサ出力値out1、out2の変化を示すタイミングチャートであり、図3(b)は、図3(a)に対応した偏差DFの変化を示すタイミングチャートである。図3(a)(b)の縦軸は、電圧値(V)であり、その横軸は、共通な時間である。偏差DFは、スロットル開度値TOVと目標開度値TAGとの偏差であり、DF=TOV-TAGである。
この図3(a)(b)について、具体的に説明する前に、実施の形態1に使用されるアクセルセンサ1およびスロットルセンサ5について、さらに具体的に説明する。先ず、これらのアクセルセンサ1およびスロットルセンサ5には、センサ用電源電圧の低下異常時に、図12で説明したリセット期間T2と、暫定期間T3と、復帰ウエイト期間T4と、強制規制期間T5が与えられるタイプのセンサが使用される。このため、図3(a)には、図12と同様に、センサ用電源の低下異常に伴なう電源電圧、センサ出力1、センサ出力2の変化を破線で示している。図3(a)には、電源電圧異常期間T1、リセット期間T2、暫定期間T3、復帰ウエイト期間T4、強制規制期間T5も、図12と同様に図示している。電源電圧異常期間T1は、センサ用電源11、15に誘導されたノイズ、電源ハーネス11a、15sおよびグランドハーネスGNDa、GNDsに発生した接触不良、または誘導されたノイズにより、センサ用電源電圧が低下する期間である。
図3(a)において、破線は、アクセルセンサ1、スロットルセンサ5に供給される電源電圧とセンサ出力1とセンサ出力2の出力値の変化を示し、out1、out2は、アクセルセンサ出力ノイズ除去手段24およびスロットルセンサ出力ノイズ除去手段34から出力されるセンサ出力値out1、out2の変化を示す。
アクセルセンサ1およびスロットルセンサ5は、具体的には、電源電圧5(V)で動作するものが使用される。センサ用電源電圧が正常状態にあり、電源電圧が正常値5(V)であるときには、アクセルセンサ出力ASおよびスロットルセンサ出力TSは、この電源電圧5(V)に基づいて、アクセルペダルの踏込値およびスロットルバルブ4の開度値の変化に対応したセンサ出力1とセンサ出力2を出力する。図12と同様、それぞれ、3(V)、2(V)で図示している。電源電圧が低下する電源電圧異常期間T1が発生すると、暫定期間T3では、アクセルセンサ出力ASおよびスロットルセンサ出力TSのセンサ出力1とセンサ出力2は、アクセルペダルの踏込値およびスロットルバルブ4の開度値に対応しながら、電源電圧の低下に伴なって低下する。電源電圧がリセット電圧Vr(図12と同様、4(V)で図示している)より小さくなった後の強制規制期間T5では、復帰ウエイト期間T4をも含めて、センサ出力1=センサ出力2=電源電圧とされる。
図5(a)(b)は、実施の形態1において使用されるアクセルセンサ1およびスロットルセンサ5のセンサ出力特性を示す特性図である。実施の形態1では、図5(a)(b)の何れかのセンサ出力特性を持ったアクセルセンサ1およびスロットルセンサ5が使用される。図5(a)(b)は、センサ用電源11、15の電源電圧が正常状態にあるときのセンサ出力1とセンサ出力2の変化を例示する。図5(a)(b)の縦軸は、センサ出力1とセンサ出力2の出力値(V)を示し、横軸は、アクセルペダルの踏込値およびスロットルバルブ4の開度値を(%)で示す。
図5(a)では、横軸に示すアクセルペダルの踏込値およびスロットルバルブ4の開度値が0〜100(%)で変化する全変化範囲において、センサ出力1とセンサ2は互いに平行に所定の勾配で直線的に変化し、センサ出力1とセンサ出力2の出力値の差Vdisは、前記全変化範囲において、常に一定である。この出力値の差Vdisは、前記全変化範囲に亘り、図2のステップS9において使用される所定値Kdis以上である。図5(b)では、アクセルペダルの踏込値およびスロットルバルブ4の開度値が100(%)に近い所定値α以上でセンサ出力2が飽和するのに対し、センサ出力1は前記全変化範囲において、センサ出力2より小さく、所定の勾配で直線的に変化している。この図5(b)では、アクセルペダルの踏込値およびスロットルバルブ5の開度値が100(%)となる部分で、センサ出力1とセンサ出力2の出力値の差は、最小値Vdisとなるが、この最小値Vdisは、図2のステップS9で使用される所定値Kdis以上である。したがって、図5(b)でも、前記全変化範囲において、センサ出力1とセンサ出力2の出力値の差は、図2のステップS9において使用される所定値Kdis以上である。このように、実施の形態1では、アクセルセンサ1、スロットルセンサ5の電源電圧が正常状態にあるときに、アクセルセンサ1およびスロットルセンサ5は、アクセルセンサ出力ASおよびスロットルセンサ出力TSのそれぞれのセンサ出力1とセンサ出力2の出力値の差が、前記アクセルペダルの踏込値またはスロットルバルブの開度値の全変化範囲において、所定値Kdis以上となるように設定される。
アクセルセンサ1およびスロットルセンサ5は、それらに対する電源電圧が5(V)である場合、例えば、0.5〜4.5(V)の範囲のセンサ出力値を持つセンサ出力1、センサ出力2を出力するように構成される。具体的には、図5(a)(b)のセンサ特性において、縦軸に示すセンサ出力値の変化範囲は、センサ出力1とセンサ出力2との両方を含む範囲において、0.5〜4.5(V)となるように設定される。電源短絡またはグランド短絡が起これば、センサ出力値は5.0(V)または0(V)となるが、これらの電源短絡およびグランド短絡と区別するために、図5(a)(b)のセンサ特性において、縦軸に示すセンサ出力値の変化範囲は、センサ出力1とセンサ出力2との両方を含む範囲において、0.5〜4.5(V)となるように設定される。
また、図3(a)(b)について説明する前に、図2のフローチャートで使用した各所定値と初期値の設定について説明する。それぞれの所定値と初期値は相互に関係するため、下記を満たすように定める。
センサ用電源11、15にノイズが重畳した場合、または、電源ハーネス11a、15s、グランドハーネスGNDa、GNDsに断線が発生した場合であっても、図3(a)の暫定期間T3では、センサ出力値out1とout2が一致していない。この暫定期間T3において、初期値Kcntに等しい回数の処理サイクルが実行されないようにするため、
T3<処理周期×Kcnt
となるように、各処理サイクルの処理周期と初期値Kcntを定める。実際には、この暫定期間T3は数十マイクロ秒のオーダであり、処理周期より十分短いことが多い。このため、具体的には、初期値Kcnt=1とすれば十分である。
所定値Kadm1は、1つの処理サイクルの処理周期において、アクルペダルの踏込値およ
びスロットルバルブ4の開度値の変化量として、想定される値のKcnt倍を基準に設定する。例えば、アクセルセンサ1であれば、人がアクセルペダルを最大速度で踏み込む場合における出力値の最大変化速度が、変化量として想定される最大値であり、そのKcnt倍を基準に設定する。所定値Kadm2についても同様に設定する。
所定値Kdisは、センサ出力1とセンサ出力2の出力値が実質的に同じであっても、それらが時間に対し変化している場合、センサ出力1とセンサ出力2のA/D変換タイミングが若干異なるため、real1とreal2とが異なる場合がある。所定値Kdisは、このreal1とreal2との差の最大値を考慮し、この最大値を僅かに超える値を基準として設定する。
初期値Ktimは、センサ出力1とセンサ出力2の出力値の差がKdis未満となる場合に、何回ノイズと判定し、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preを出力するかの回数として設定される。この初期値Ktimが大きすぎると、ソフトウエア処理の後段で行われるセンサ出力値の電圧異常判定を妨害してしまう。初期値Ktimが小さすぎると、ノイズ除去可能な電源電圧異常期間T1が短くなる。そのため、ノイズや一時的な断線などを除去したい強制規制期間T5=リセット期間T2+復帰ウエイト期間T4を基準に初期値Ktimを設定する。
初期値Kcnt、Ktimおよび所定値Kadm1、Kadm2、Kdisは、アクセルセンサ出力ASとスロットルセンサ出力TSのそれぞれに対応して、互いに異なる値に設定することができる。しかし、それらが、互いに等しい値として設定される場合もある。
さて、図3(a)(b)について説明する。実施の形態1において、図2のノイズ除去制御の処理動作を示すフローチャートは、第1、第2の制御ブロックCB1、CB2を含むことを特徴としている。以下の説明では、スロットルセンサ5を例として、説明する。図3では、スロットルバルブ4に対する目標開度値TAGは3(V)で、フィードバックの対象となる実開度を表わすスロットル開度値TOVは、センサ出力1とセンサ出力2の中から選択されたセンサ出力1をノイズ除去したセンサ出力値out1としている。スロットル開度値TOVと目標開度値TAGとの偏差DFが0(V)となるように、モータ6が駆動される。また、図3では、偏差DFが0(V)で、スロットルバルブ4が開度を保持したまま動いていない、平衡状態から表示している。
時刻tでは、ノイズや一時的な断線などにより、センサの電源電圧が低下する前の正常状態におけるセンサ出力1とセンサ出力2をサンプリングする。これらのセンサ出力1とセンサ出力2の出力値は、正常値と判定され、センサ出力値out1=3(V)、センサ出力値out2=2(V)となる。スロットル開度値TOVと目標開度値TAGとの偏差DFが0(V)であるため、スロットルバルブ4が開度を保持したままとなる。
次のサンプリング時刻t+1までの間に、電源電圧異常期間T1が発生し、ノイズや一時的な断線などにより、センサの電源電圧が低下し始める。時刻t+1は、電源電圧が低下しているリセット期間T2とされ、この時刻t+1において、センサ出力1とセンサ2がサンプリングされるものとする。この時刻t+1におけるセンサ出力1とセンサ2のA/D変換値real1、real2は、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preから、所定値Kadm1、Kadm2以上変化していて、ステップS5、S6の判定結果はNOとなり、ノイズ(不正値)と判定されるとする。あるいは、所定値Kadm1、Kadm2以上変化していないと判定されたとしても、センサ出力1=センサ出力2であるため、ノイズ(不正値)と判定される。そのため、ステップS15に進み、時刻t+1におけるセンサ出力1とセンサ出力2のサンプリング値(図の黒四角)は採用されず、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preが保持され、センサ出力値out1=3(V)、センサ出力値out2=2(V)となる。
次のサンプリング時刻t+2までの間に、センサの電源電圧は5(V)に復帰するが、時刻t+2は、復帰ウエイト期間T4とされ、この時刻t+2において、センサ出力1とセンサ出力2がサンプリングされるものとする。このとき、時刻t+1でノイズ処理を行なったため、カウンタ値counterが0であったとしても、センサ出力1=センサ出力2であり、ステップS9の判定結果はYESとなり、併せて回数値Ktimは、ノイズや一時的な断線などの除去したい強制規制期間T5=リセット期間T2+復帰ウエイト期間T4に対応するため、ステップS11の判定結果もYESとなるので、ステップS13に進み、ここでもノイズ除去は有効で、時刻t+2におけるセンサ出力1とセンサ出力2のサンプリング値(図の黒四角)は採用されず、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preが保持され、センサ出力値out1=3(V)、センサ出力値out2=2(V)の実線で示す値となる。結果として、正常時の時刻tにおけるセンサ出力値out1およびout2が保持され、センサ出力値out1は目標開度値TAGと一致しており、偏差DFは0(V)となる。よって、制御信号CSも時刻tから変化せず、スロットルバルブ4は今の開度を保持したままとなる。
次のサンプリング時刻t+3までの間に、復帰ウエイト期間T4が終了し、センサ出力1=3(V)、センサ出力2=2(V)と正常値に戻る。この時刻t+3におけるセンサ出力1とセンサ出力2のA/D変換値real1、real2は、real1=3(V)、real2=2(V)であり、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preとの差はKadm1、Kadm2より小さく、ステップS5、S6の判定結果はYESとなり、併せて今回の処理サイクルおけるA/D変換値real1、real2の差も所定値Kdis以上であるため、ステップS9の判定結果はNOとなり、ノイズ(不正値)と判定されず、ステップS14に進み、センサ出力値out1=3(V)、センサ出力値out2=2(V)となる。結果として、この時もまた、偏差DFは0(V)であり、制御信号CSも時刻tから変化せず、スロットルバルブ4は今の開度を保持したままとなる。次のサンプリング時刻t+4でも、時刻t+3と同じ処理が行なわれる。
このように、実施の形態1は、第1の制御ブロックCB1と、第2の制御ブロックCB2を含むので、アクセルセンサ1およびスロットルセンサ5の電源電圧に異常状態が発生した場合にも、良好にノイズ(不正値)を除去することができ、その結果、スロットルバルブ4に異常挙動は発生せず、内燃機関回転数の急変なども起こらない。
加えて、特許文献1の先行技術では、ノイズ判定時はフィルタ処理を行なっているが、このフィルタ処理はノイズを除外するものではなく、ノイズも一定の比率で受け入れる処理である。このため、その比率が例え小さくとも、ノイズが大きな場合には、フィルタ後に、このノイズの影響が出てしまうという問題がある。これに対し、実施の形態1では、第1、第2の制御ブロックCB1、CB2におけるノイズ処理では、前回の処理サイクルにおける出力値に保持する処理を行なうので、ノイズが大きくとも、そのノイズの影響が残ることもない。
また、加えて、特許文献1の先行技術では、変化方向が逆向きであることによりノイズ判定を行なうので、次の問題点もある。例えば、図6に示すように、時刻t-1でインパルスノイズにより正常値と離れた出力値を読み取り、次の時刻tで正常値に戻った場合を考える。特許文献1の先行技術では、ノイズから復帰した時刻tの正常値もノイズと判定してしまうという問題がある。また、時刻tでは、時刻t-1の信号をノイズと判定するが、既に時刻t-1の出力値は正常値として扱われてしまっている問題もある。簡単のため、正常値はフィルタなしとして図6で示すと、時刻t-1のノイズ異常値は、正常値としてフィルタすることなく採用され、時刻tと時刻t+1での読み取り値をフィルタ処理するため、時刻t-1から時刻t+2までは太線のように処理され、正常値から大きく異なった出力値にしてしまう問題がある。
1処理サイクル前の出力値に対して判定するという遅れの問題を抑制するためには、フィードバック制御手段36の処理周期の数倍の高周期で、アクセルセンサ出力ASとスロットルセンサ出力TSの読み取りとノイズ判定とノイズ処理を行なう必要があるが、これを実施すると、マイクロコンピュータ20のCPU負荷が高くなり、その結果、その高い負荷に耐え得るような高速高価なマイクロコンピュータ20が必要になり、コストアップとなる問題がある。また、一次フィルタで出力値をなましすぎると、応答性に悪影響が大きくでてしまい、ノイズと判定した時の応答性が悪化する問題もある。
これに対し、実施の形態1では、第1、第2の制御ブロックCB1、CB2におけるノイズ処理では、前回の処理サイクルにおけるセンサ出力値に保持する処理を行なうので、変化方向が逆向きであることによりノイズ判定を行なうことに伴なう各問題を解消することができる。
さて、実施の形態1と対比される比較例について、センサの電源電圧に異常状態が発生した場合の動作を図4を参照して説明する。この比較例は、図2のフローチャートにおいて、第2の制御ブロックCB2を削除したものである。図4は、この比較例において、センサ用電源電圧低下時のノイズ除去結果を示すタイミングチャートである。図4(a)(b)は、図3(a)(b)に対応する。図4(a)では、図3(a)との対比のために、電源電圧異常期間T1、オフセット期間T2、暫定期間T3、復帰ウエイト期間T4、強制規制期間T5は、図3(a)と同じに図示し、時刻t、t+1、t+2、t+3、t+4も図3と同じにしている。
図4の時刻t、t+1における動作は、図3と同じである。時刻t+1と時刻t+2の間で、センサの電源電圧は5(V)に復帰するが、時刻t+2は、復帰ウエイト期間T4とされ、この時刻t+2において、センサ出力1とセンサ出力2がサンプリングされるものとする。このとき、センサ出力1とセンサ出力2のA/D変換値real1、real2は、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preから、所定値Kadm1、Kadm2以上変化していたとしても、時刻t+1でノイズ除去しているので、カウント値counterは0となっており、また、第2の制御ブロックCB2がないため、時刻t+2におけるセンサ出力1とセンサ出力2のサンプリング値である5(V)を正常値として受け付けてしまう。その結果、時刻t+2において、センサ出力値out1、out2は、実線で示す5(V)となる。目標開度値TAGが3(V)であるから、スロットル開度値TOVと目標開度値TAGとの偏差DFは2(V)となり、フィードバック制御手段36は、この2(V)を解消しようと、スロットルバルブ4を例えば閉じ側へ駆動し始めることになる。
次のサンプリング時刻t+3までの間に、復帰ウエイト期間T4が終了し、センサ出力1=3(V)、センサ出力2=2(V)と正常値に戻る。この場合、前回の処理サイクルにおけるセンサ出力値out1_pre=out2_pre=5(V)であるのに対し、時刻t+3においてサンプリングされたA/D変換値real1、real2は、real1=3(V)、real2=2(V)であり、また、カウンタ値counterは、初期値Kcntに初期化されている。このため、real1とout1_preの差およびreal2とout2_preとの差は所定値Kadm1、Kadm2以上となり、ステップS5、S6の判定結果はNOとなり、また、ステップS7の判定結果もNOとなるので、ノイズと判定され、ステップ15に進む。結果として、時刻t+3におけるセンサ出力1とセンサ出力2のサンプリング値(図の黒四角)は採用されず、前回のセンサ出力値が保持され、センサ出力値out1=センサ出力値out2=5(V)となり、前時刻t+2と同じく、偏差DF=2(V)となり、引き続きスロットルバルブ4を例えば閉じ側へ駆動し続けることになる。
次のサンプリング時刻t+4では、サンプリング値はセンサ出力1=3(V)、センサ出力2=2(V)であり、またカウンタ値counter=0であるため、センサ出力値out1=3(V)、センサ出力値out2=2(V)となる。この時刻t+4にて、ようやく正常値に戻ることなり、偏差DF=0(V)となり、スロットルバルブ4の駆動は停止する。実際には、時刻t+2、t+3での駆動の影響でスロットルバルブ4の開度値は少し変化しており、例えば、センサ出力1=3(V)より少し低く、センサ出力2=2(V)より少し高くなる。この結果、偏差DFが少し発生するため、これを目標開度値TAG=3(V)へ収束させるように、スロットルバルブ4を駆動することになる。
このように、比較例は、実施の形態1における第2の制御ブロックCB2を含まないので、この比較例では、センサ用電源電圧に異常状態が発生した場合に、センサ出力値の不正値を全て除去できず一部を受け付けてしまうため、目標開度値TAGとの偏差が生じ、それを解消するようフィードバック制御手段36がスロットルバルブ4を駆動するため、結果として、異常挙動を起こしてしまう。目標開度値TAGが低いなど、場合によっては、この異常駆動が内燃機関回転数に影響し、車両の急加速、急減速を発生させてしまう。
以上は、スロットルセンサ5を例として、説明を行なったが、アクセルセンサ1についても同様である。アクセルセンサ1の場合は、ノイズにより、アクセル踏込値AFVが異常値となり、その結果、目標開度値TAGが異常値となるため、その値に追従するようにスロットルバルブ4が駆動され、前記と同様の異常挙動を起こしてしまう。
実施の形態1についてまとめると、実施の形態1では、アクセルセンサ出力ASとスロットルセンサ出力TSの両方のセンサ出力は、それぞれセンサ出力1とセンサ出力2を含み、アクセルセンサ出力ASのセンサ出力1とセンサ出力2およびスロットルセンサ出力TSのセンサ出力1とセンサ出力2は、正常状態では、それぞれの出力値の差が、アクセルペダルの踏込値とスロットルバルブの開度値の全変化範囲において、それぞれのセンサ出力に対応した所定値以上となるように設定され、コントロールユニット10は、アクセルセンサ出力ASおよびスロットルセンサ出力TSのそれぞれのセンサ出力1とセンサ出力2の出力差が、前記それぞれのセンサ出力に対応した所定値以上であるときには、各処理サイクルにおいて、その処理サイクルで得られたアクセルセンサ出力ASのセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値と、その処理サイクルで得られたスロットルセンサ出力TSのセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値とを使用して制御信号CSを出力し、また、アクセルセンサ出力ASとスロットルセンサ出力TSの一方のセンサ出力のセンサ出力1とセンサ出力2の出力値の差が前記一方のセンサ出力に対応した所定値以上でありながら、その他方のセンサ出力のセンサ出力1とセンサ出力2の出力値の差が、前記他方のセンサ出力に対応した所定値未満となるときには、いくつかの処理サイクルにおいて、その処理サイクルで得られた前記一方のセンサ出力のセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値と、それ以前の処理サイクルで得られた前記他方のセンサ出力のセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値とを使用して制御信号CSを出力する。
また、実施の形態1では、アクセルセンサ出力ASとスロットルセンサ出力TSの両方のセンサ出力は、それぞれセンサ出力1とセンサ出力2を含み、アクセルセンサ出力ASのセンサ出力1とセンサ出力2およびスロットルセンサ出力TSのセンサ出力1とセンサ出力2は、正常状態では、それぞれの出力値の差が、アクセルペダルの踏込値とスロットルバルブの開度値の全変化範囲において、それぞれのセンサ出力に対応した所定値以上となるように設定され、コントロールユニット10は、アクセルセンサ出力ASおよびスロットルセンサ出力TSのそれぞれのセンサ出力1とセンサ出力2の出力差が、前記それぞれのセンサ出力に対応した所定値以上であるときには、各処理サイクルにおいて、その処理サイクルで得られたアクセルセンサ出力ASのセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値と、その処理サイクルで得られたスロットルセンサ出力TSのセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値とを使用して制御信号CSを出力し、また、アクセルセンサ出力ASとスロットルセンサ出力TSのそれぞれのセンサ出力のセンサ出力1とセンサ出力2の出力値の差が、それぞれのセンサ出力に対応した所定値未満となるときには、コントロールユニット10は、アクセルセンサ出力ASとスロットルセンサ出力TSのそれぞれについて、それ以前の処理サイクルで得られたセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値とを使用して制御信号CSを出力する。
しかし、実施の形態1では、アクセルセンサ出力ASとスロットルセンサ出力TSの少なくとも一方のセンサ出力は、センサ出力1とセンサ出力2を含み、前記センサ出力1とセンサ出力2は、正常状態では、それらの出力値の差が、前記アクセルペダルの踏込値またはスロットルバルブの開度値の全変化範囲において、所定値以上となるように設定することも可能である。この場合、コントロールユニット10は、前記センサ出力1とセンサ出力2の出力値の差が前記所定値以上であるときには、各処理サイクルにおいて、その処理サイクルで得られた前記センサ出力1とセンサ出力2の何れかに基づくセンサ出力値を使用して制御信号CSを出力し、また、前記センサ出力1とセンサ出力2の出力値の差が、前記所定値未満となるときには、いくつかの処理サイクルにおいて、それ以前の処理サイクルで得られた前記センサ出力1とセンサ出力2の何れかに基づくセンサ出力値を使用して制御信号CSを出力することになる。
実施の形態2.
この実施の形態2では、アクセルセンサ1およびスロットルセンサ5に対する電源電圧が正常状態にあるときに、アクセルセンサ1およびスロットルセンサ5が、アクセルペダルの踏込値およびスロットルバルブ4の開度値の所定変化部分において、互いに所定出力値Kcoの近傍値となるセンサ出力1とセンサ出力2を出力するように構成され、コントロールユニット10は、アクセルセンサ出力ASおよびスロットルセンサ出力TSのセンサ出力が、前記所定出力値Kcoの近傍値となるときに、そのセンサ出力をノイズと判定しないように、制御する。この実施の形態2に係るスロットルバルブ制御装置の全体構成は、図1に示す実施の形態1と同じとされる。
図7は、実施の形態2において、マイクロコンピュータ20により実行されるノイズ除去制御の処理動作を示すフローチャートである。この図7に示すフローチャートは、図2のフローチャートに対して、ステップS10を追加している。図7のフローチャートは、その他においては、図2のフローチャートと同じに構成される。ステップS10は、ステップS9とステップS11との間に配置される。このステップS10は、判定手段を構成する。
図7のステップS5、S6、S7、S15は、それぞれ図2と同じであり、第1の制御ブロックCB1を構成する。この第1の制御ブロックCB1のステップS15では、実施の形態1と同様に、今回の処理サイクルにおけるセンサ出力値out1、out2に、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preが代入され、カウンタ値counterから1が減算される。
図7のステップS9、S10、S11、S13は、実施の形態2における第2の制御ブロックCB3を構成する。この第2の制御ブロックCB3におけるステップS9、S11、S13は、それぞれ図2と同じである。
図7において、ステップS10は、ステップS9とともに、今回の処理サイクルにおけるA/D変換値real1、real2をノイズ(不正値)と判定する条件を決定する。ステップS9は、今回の処理サイクルにおけるA/D変換値real1とreal2の絶対差が所定値Kdis未満であることを第1条件として判定する。この第1条件が満足された場合に、ステップS9の判定結果はYESとなる。ステップS10は、前記第1条件が満足された範囲の中で、さらに、今回の処理サイクルにおけるA/D変換値real1、real2が、ともに所定出力値Kcoの近傍値でないことを第2条件として判定する。この第2条件が満足された場合に、ステップS10の判定結果はYESとなる。
実施の形態2の第2の制御ブロックCB3は、ステップS9による第1条件と、ステップS10による第2条件がともに満足された場合に、ノイズ(不正値)と判定し、ステップS11で回数値timerを確認した上で、ステップS13に進み、今回の処理サイクルにおけるセンサ出力値out1、out2が、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preとされる。第1条件が満足されない場合には、ステップS9の判定結果はNOとなり、また第2条件が満足されない場合には、ステップS10の判定結果はNOとなり、ノイズ判定はされず、それぞれステップS12において、回数値timerを初期値Ktimにセットした上で、ステップS14に進み、今回の処理サイクルにおけるA/D変換値real1、real2を、今回の処理サイクルにおけるセンサ出力値out1、out2とする。
ステップS9による第1条件が満足される場合でも、ステップS10による第2条件が満足されない場合には、ノイズ判定はされない。言換えれば、今回の処理サイクルにおけるA/D変換値real1とreal2の絶対差が所定値Kdis未満であったとしても、今回の処理サイクルにおけるA/D変換値real1、real2が、ともに所定出力値Kcoの近傍値であるならば、ノイズ判定はされない。
ステップS10では、具体的には、今回の処理サイクルにおけるA/D変換値real1と所定出力値Kcoとの絶対差ABS(real1-Kco)が所定値Kcrs1以上であり、かつ、今回の処理サイクルにおけるA/D変換値real2と所定出力値Kcoとの絶対差ABS(real2-Kco)が所定値Kcrs2以上であるか否かが判定される。絶対差ABS(real1-Kco)が所定値Kcrs1以上であり、かつ、絶対差ABS(real2-Kco)が所定値Kcrs2以上である場合には、real1、real2は、所定出力値Kcoの近傍値でないとされ、ステップS10の判定結果はYESとなる。絶対差ABS(real1-Kco)が所定値Kcrs1未満であり、または絶対差ABS(real2-Kco)が所定値Kcrs2未満である場合には、real1、real2が所定出力値Kcoの近傍値とされ、ステップS10の判定結果はNOとされる。
図7でも、ステップS13、S14、S15の処理が終了すると、エンドB2へ進み、この周期での処理が終わる。
所定値および初期値設定の考え方も、初期値Ktim以外は実施の形態1と同様である。初期値Ktimは、実施の形態1の考え方に加えて、次に示すように、偶然に所定出力値Kcoの近傍値を読み取ってノイズ除去が解除されないように配慮する必要がある。初期値Kcnt、Ktim、所定値Kadm1、Kadm2、Kdis、Kcrs1、Kcrs2、および所定出力値Kcoは、アクセルセンサ出力ASとスロットルセンサ出力TSのそれぞれに対応して、互いに異なる値に設定することができる。しかし、それらが、互いに等しい値として設定される場合もある。
図8は、所定出力値Kco=2.5(V)であり、また、センサ出力1とセンサ2が、センサ出力1=センサ出力2=所定出力値Kcoと同一値である状態において、短時間断線することでセンサの電源電圧が低下した場合におけるセンサ1とセンサ2の出力値の時間変化を示したチャートである。図3と同じ電源電圧異常期間T1、リセット期間T2、暫定期間T3、復帰ウエイト期間T4、強制規制期間T5が図8にも示されている。ノイズにより電源電圧が低下する場合も同様である。この図8に示すように、センサ出力1=センサ出力2=電源電圧となっているリセット期間T2において、偶然に、図示する2箇所の何れか、或いは両方でA/D変換のタイミングとなると、センサ出力1=センサ出力2=電源電圧=所定出力値Kcoの近傍値、となってしまい、本来ノイズとして除外されるべきサンプル値をノイズ(不正値)ではないと判定してしまう。
このため、複数回、所定出力値Kcoの近傍値を読み取らないように、電源電圧異常期間T1の開始から電源電圧が所定出力値Kco以上に復帰するまでの時間T6を、T6<Ktim×処理周期とするか、または電源電圧が所定出力値Kcoと一致するかそれを横切る回数をKtimより小さくして、確実にノイズ除去する必要がある。
また、所定出力値Kcoおよび所定値Kcrs1、Kcrs2は、アクセルセンサ1およびスロットルセンサ5のセンサ出力特性との関係で、次のように設定する。
図9(a)(b)(c)は、実施の形態2において使用されるアクセルセンサ1およびスロットルセンサ5のセンサ出力特性を示す特性図である。実施の形態2では、図9(a)(b)(c)の何れかのセンサ出力特性を持ったアクセルセンサ1およびスロットルセンサ5が使用される。図9(a)(b)(c)は、アクセルセンサ1、スロットルセンサ5の電源電圧が正常状態にあるときにおけるセンサ出力1とセンサ出力2の変化を例示する。図9(a)(b)(c)の縦軸は、センサ出力1とセンサ出力2の出力値(V)を示し、横軸は、アクセルペダルの踏込値およびスロットルバルブ4の開度値を(%)で示す。
図9(a)では、横軸に示すアクセルペダルの踏込値およびスロットルバルブ4の開度値が0〜100(%)で変化する全変化範囲において、センサ出力1は、アクセルペダルの踏込値およびスロットルバルブ4の開度値の増加に対して、直線的にある勾配で増加し、また、センサ出力2は、アクセルペダルの踏込値およびスロットルバルブ4の開度値の増加に対して、センサ出力1と同じ勾配で、直線的に減少している。センサ出力1とセンサ出力2の出力値の合計値は、アクセルペダルの踏込値およびスロットルバルブ4の開度値の0〜100(%)の全変化範囲において、一定値、例えば5(V)とされる。センサ出力1とセンサ出力2の出力値は、アクセルペダルの踏込値およびスロットルバルブ4の開度値がβ(%)であるときに、互いに等しくなり、このときの出力値を所定出力値Kcoとする。βは、アクセルペダルの踏込値およびスロットルバルブ4の開度値が、例えば50(%)となる部分である。
図9(b)では、アクセルペダルの踏込値およびスロットルバルブ4の開度値がβ1(%)となる部分で、センサ出力1とセンサ出力2との出力値が互いに等しくなり、このときの出力値を所定出力値Kcoとする。センサ出力2は、図9(a)のセンサ出力2と同様に、アクセルペダルの踏込値およびスロットルバルブ4の開度値が0〜100(%)で変化する全変化範囲において、アクセルペダルの踏込値およびスロットルバルブ4の開度値の増加に対して、直線的に減少している。これに対し、センサ出力1は、アクセルペダルの踏込値およびスロットルバルブ4の開度値が0〜α1(%)の範囲では、アクセルペダルの踏込値およびスロットルバルブ4の開度値の増加に対して急激に増加し、α1以上の範囲では、飽和している。
このように、図9(a)(b)に示すセンサ出力特性では、アクセルセンサ1、スロットルセンサ5の電源電圧が正常状態にあるときに、アクセルセンサ1およびスロットルセンサ5は、アクセルセンサ出力ASおよびスロットルセンサ出力TSのそれぞれのセンサ出力1とセンサ出力2の出力値が、前記アクセルペダルの踏込値またはスロットルバルブの開度値の所定変化部分β、β1において、互いに等しくなり、このときの出力値を所定出力値Kcoとする。絶対差ABS(real1-Kco)が所定値Kcrs1未満となる部分、および絶対差ABS(real2-Kco)が所定値Kcrs2未満となる部分では、ノイズとの判定が行なわれることがないように、所定値Kcrs1、Kcrs2が設定される。図9(a)(b)では、Kcoを含む所定出力値Kcoの近傍値は、ノイズと判定されない。
図9(c)に示すセンサ出力特性を有するアクセルセンサ1およびスロットルセンサ5も、実施の形態2で使用することができる。この図9(c)に示すセンサ出力特性は、図5(b)に示すセンサ出力特性に類似しているが、アクセルペダルの踏込値およびスロットルバルブの開度値が100(%)となったときにおけるセンサ出力1とセンサ出力2の出力値の平均値が所定出力値Kcoとされ、絶対差ABS(real1-Kco)が所定値Kcrs1未満となる部分、および絶対差ABS(real2-Kco)が所定値Kcrs2未満となる部分では、ノイズとの判定が行なわれることがないように、所定値Kcrs1、Kcrs2が設定される。図9(c)では、アクセルペダルの踏込値およびスロットルバルブの開度値が100(%)の近傍となったときにおけるセンサ出力1とセンサ出力2の出力値は、ともに所定出力値Kcoの近傍値とされ、ノイズと判定されない。
この実施の形態2でも、アクセルセンサ1およびスロットルセンサ5は、それらに対する電源電圧が5(V)である場合、例えば、0.5〜4.5(V)の範囲のセンサ出力値を持つセンサ出力1、センサ出力2を出力するように構成される。具体的には、図9(a)(b)(c)のセンサ特性において、縦軸に示すセンサ出力値の変化範囲は、センサ出力1とセンサ出力2との両方を含む範囲において、0.5〜4.5(V)となるように設定される。電源短絡またはグランド短絡が起これば、センサ出力値は5.0(V)または0(V)となるが、これらの電源短絡およびグランド短絡と区別するために、図9(a)(b)(c)のセンサ特性において、縦軸に示すセンサ出力値の変化範囲は、センサ出力1とセンサ出力2との両方を含む範囲において、0.5〜4.5(V)となるように設定される。したがって、所定出力値Kcoも、0.5〜4.5(V)となる。
図9(a)(b)(c)では、所定出力値Kcoの近傍値をノイズ判定外とするための電圧幅を、所定値Kcrs1、Kcrs2で定める。図9(a)のように、センサ出力1とセンサ出力2の絶対値勾配が同じである場合は、Kcrs1=Kcrs2とすることで問題ないが、図9(b)のように、センサ出力1とセンサ出力2の絶対値勾配が互いに異なる場合には、それらの勾配に対応して所定値Kcrs1、Kcrs2を設定する。図9(c)において、アクセルペダルの踏込値およびスロットルバルブ4の開度値が100(%)である場合におけるセンサ出力1とセンサ出力2の差が、所定値Kdisにくらべて十分に小さくないため、実施の形態2で対応する場合には、アクセルペダルの踏込値およびスロットルバルブ4の開度値が100(%)であるときにおけるセンサ出力1とセンサ出力2の電圧値の平均値を所定出力値Kcoとし、また、センサ出力1とセンサ出力2の勾配に対応して、所定値Kcrs1、Kcrs2を設定する。いずれも、所定値Kcrs1、Kcrs2は、できるだけ小さく設定し、図8に示すように、偶発的にノイズ解除される可能性を下げておく。
具体的には、所定値Kcrs1、Kcrs2は、アクセルセンサ1およびスロットルセンサ5に対する電源電圧が5(V)である場合、その電源電圧の1/100以下、例えば1/500、すなわち10(mV)程度の小さな値に設定される。
さて、実施の形態2において、アクセルセンサ1およびスロットルセンサ5に対して、センサ用電源電圧に異常状態が発生した場合の動作について、図10を参照して説明する。図10は、実施の形態2におけるセンサ電源電圧低下時のノイズ除去結果を示すタイミングチャートであり、図10(a)は、電源電圧とセンサ出力1とセンサ出力2とセンサ出力値out1、out2の変化を示すタイミングチャートであり、図10(b)は、図10(a)に対応した偏差DFの変化を示すタイミングチャートである。図10(a)(b)の横軸は、共通な時間を示す。この図10にも、図3に示すと同じ電源電圧異常期間T1、リセット期間T2、暫定期間T3、復帰ウエイト期間T4、強制規制期間T5を示す。センサ出力1とセンサ出力2は、電源電圧とともに破線で示され、センサ出力値out1、out2は実線で示される。図10(a)では、図8と同様に、所定出力値Kco=2.5(V)、強制規制期間T5におけるセンサ出力1=センサ出力2=所定出力値Kcoの一定値としている。また、このときの目標開度値TAGは2.5(V)で、フィードバックの対象となる実開度を表わすスロットル開度値TOVは、センサ出力1をノイズ除去したセンサ出力値out1とする。
時刻tでは、ノイズや一時的な断線などにより、センサの電源電圧が低下する前の正常状態のセンサ出力1とセンサ出力2をサンプリングする。これらのセンサ出力1とセンサ出力2は、正常値と判定され、センサ出力値out1=センサ出力値out2=2.5(V)となる。また、偏差DFは0(V)となる。
次のサンプリング時刻t+1までの間に、ノイズや一時的な断線などにより、センサの電源電圧が低下し始める。時刻t+1は、電源電圧が低下しているリセット期間T2とされ、この時刻t+1において、センサ出力1とセンサ出力2がサンプリングされるものとする。この時刻t+1におけるセンサ出力1、センサ出力2のA/D変換値real1、real2は、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preから、所定値Kadm1、Kadm2以上変化していて、ステップS5、S6の判定結果はNOとなり、ノイズ(不正値)と判定されるとする。あるいは、所定値Kadm1、Kadm2以上変化していないと判定されたとしても、センサ出力1=センサ出力2であり、しかも所定出力値Kcoの近傍値でないと判定され、ノイズ(不正値)と判定される。そのため、ステップS15に進み、時刻t+1におけるセンサ出力1とセンサ出力2のサンプリング値(図の黒四角)は採用されず、前回の処理サイクルにおけるセンサ出力値が保持され、センサ出力値out1=センサ出力値out2=2.5(V)となる。
なお、時刻t+1におけるセンサ出力1、センサ出力2のA/D変換値real1、real2と、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preとの変化量が所定値Kadm1、Kadm2未満で、ステップS5、S6の判定結果がYESとなり、しかも、時刻t+1におけるセンサ出力1、センサ出力2のA/D変換値real1、real2の絶対差が所定値Kdis未満で、ステップS9の判定結果がYESとなり、さらに、絶対差(real1-Kco)、絶対差(real2-Kco)が所定値Kcrs1、Kcrs2未満であって、ステップS10の判定結果がNOとなる場合には、ステップS14に進み、時刻t+1におけるセンサ出力1、センサ出力2のA/D変換値real1、real2がセンサ出力値out1、out2として出力されることになる。しかし、所定値Kcrs1、Kcrs2が、10(mV)程度と小さくされるので、センサ出力値out1、out2の変動も10(mV)以下であり、大きな出力変動は発生しない。そのため、実際にスロットルバルブ5が駆動されてしまう開度量は小さく、問題ない範囲である。
次のサンプリング時刻t+2までの間に、センサの電源電圧は5(V)に復帰するが、時刻t+2は、復帰ウエイト期間T4とされ、この時刻t+2において、センサ出力1とセンサ出力2がサンプリングされるものとする。このとき、時刻t+1でノイズ処理を行なったため、カウンタ値counterが0であったとしても、センサ出力1=センサ出力2であり、ステップS9の判定結果はYESとなり、しかもセンサ出力1とセンサ出力2は所定出力値Kcoの近傍値でないので、ステップS10の判定結果もYESとなり、さらに、回数値Ktimは、ノイズや一時的な断線などの除去したい強制規制期間T5=リセット期間T2+復帰ウエイト期間T4に対応するため、ステップS11の判定結果もYESとなるので、ステップS13に進み、ここでもノイズ除去は有効で、時刻t+2におけるセンサ出力1とセンサ出力2のサンプリング値(図の黒四角)は採用されず、前回の処理サイクルにおける出力値が保持され、センサ出力値out1=センサ出力値out2=2.5(V)の実線で示す値となる。結果として、時刻tから時刻t+2まで、図10(b)に示すように偏差DF=0(V)であり、スロットルバルブ4は今の開度を保持したままとなる。なお、時刻t+2におけるセンサ出力1とセンサ出力2のサンプリング値(図の黒四角)は、電源電圧5(V)に等しく、一方、所定出力値Kcoは、前述の通り、0.5〜4.5(V)の範囲に設定されるので、所定出力値Kcoの近傍値内となることはない。
次のサンプリング時刻t+3までの間に、復帰ウエイト期間T4が終了し、センサ出力1=センサ出力2=2.5(V)と正常値に戻る。この時刻t+3におけるセンサ出力1とセンサ出力2のA/D変換値real1、real2は、real1=2.5(V)、real2=2.5(V)であり、前回の処理サイクルにおける出力値out1_pre、out2_preとの差はKadm1、Kadm2より小さく、ステップS5、S6の判定結果はYESとなり、また、A/D変換値real1とreal2の差も所定値Kdis未満であるため、ステップS9の判定結果はYESとなり、また、A/D変換値real1、real2とも所定値Kcoの近傍値であり、ステップS10の判定結果はNOとなり、ノイズ(不正値)と判定されず、ステップS14に進み、センサ出力値out1=センサ出力値out2=2.5(V)となる。結果として、この時もまた、偏差DF=0(V)であり、スロットルバルブ4は今の開度を保持したままとなる。次のサンプリング時刻t+4でも、時刻t+3と同じ処理が行なわれる。
このように、実施の形態2は、第1の制御ブロックCB1と、第2の制御ブロックCB3を含むので、アクセルセンサ1およびスロットルセンサ5の電源電圧に異常状態が発生した場合にも、センサ出力1とセンサ出力2が所定出力値Kcoの近傍値以外でほぼ同じ出力値となった場合も含め、良好にノイズ(不正値)を除去することができ、その結果、スロットルバルブ4に異常挙動は発生せず、内燃機関回転数の急変なども起こらない。
さて、実施の形態2と対比される比較例について、センサの電源電圧に異常状態が発生した場合の動作を図11を参照して説明する。この比較例は、図7のフローチャートにおいて、第2の制御ブロックCB3を削除したものである。図11は、この比較例において、センサの電源電圧に異常状態が発生した場合におけるノイズ除去結果を示すタイミングチャートである。図11(a)(b)は、図10(a)(b)に対応する。図11では、図10との対比のために、電源電圧異常期間T1、オフセット期間T2、暫定期間T3、復帰ウエイト期間T4、強制規制期間T5は、図10と同じに図示し、時刻t、t+1、t+2、t+3、t+4も図10と同じにしている。
図11の時刻t、t+1における動作は、図10と同じである。時刻t+1と時刻t+2の間で、センサの電源電圧は5(V)に復帰するが、時刻t+2は、復帰ウエイト期間T4とされ、この時刻t+2において、センサ出力1とセンサ出力2がサンプリングされるものとする。このとき、センサ出力1とセンサ出力2のA/D変換値real1、real2は、前回の処理サイクルにおけるセンサ出力値out1_pre、out2_preから、所定値Kadm1、Kadm2以上変化していたとしても、時刻t+1でノイズ除去しているので、カウント値counterは0となっており、このため、時刻t+2におけるセンサ出力1とセンサ出力2のサンプリング値である5(V)を受け付けてしまう。その結果、時刻t+2において、センサ出力値out1、out2は、実線で示す5(V)となる。目標開度値TAGが2.5(V)であるから、偏差DFは2.5(V)となり、フィードバック制御は、この2.5(V)を解消しようと、スロットルバルブ4を例えば閉じ側へ駆動し始めることになる。
次のサンプリング時刻t+3までの間に、復帰ウエイト期間T4が終了し、センサ出力1=センサ出力2=2.5(V)と正常値に戻る。この場合、前回のセンサ出力値out1_pre=out2_pre=5(V)であるのに対し、時刻t+3においてサンプリングされたA/D変換値real1、real2は、real1=real2=2.5(V)であり、また、カウンタ値counterは、初期値Kcntに初期化されている。このため、real1とout1_preの差およびreal2とout2_preとの差は所定値Kadm1、Kadm2以上となり、ステップS5、S6の判定結果はNOとなり、また、ステップS7の判定結果もNOとなるので、ノイズ(不正値)と判定され、ステップ15に進む。結果として、時刻t+3におけるセンサ出力1とセンサ出力2のサンプリング値(図の黒四角)は採用されず、前回のセンサ出力値が保持され、センサ出力値out1=センサ出力値out2=5(V)となり、前時刻t+2と同じく、偏差DF=2.5(V)となり、引き続きスロットルバルブ4を例えば閉じ側へ駆動し続けることになる。
次のサンプリング時刻t+4では、サンプリング値はセンサ出力1=センサ出力2=2.
5(V)であり、またカウンタ値counter=0であり、所定出力値Kcoの近傍値であるため、センサ出力値out1=センサ出力値out2=2.5(V)となる。この時刻t+4にて、ようやく正常値に戻ることなり、偏差DF=0(V)となり、スロットルバルブ4の駆動は停止する。実際には、時刻t+2、t+3での駆動の影響でスロットルバルブ4の開度値は少し変化しており、センサ出力1=2.5(V)より少し低く、センサ出力2=2.5(V)より少し高くなる。この結果、偏差DFが少し発生するため、これを目標開度値TAGへ収束させるように、スロットルバルブ4を駆動することになる。
このように、比較例は、実施の形態2における第2の制御ブロックCB3を含まないの
で、この比較例では、センサ用電源電圧に異常状態が発生した場合に、センサ出力値の不正値を全て除去できず一部を受け付けてしまうため、目標開度値TAGとの偏差が生じ、それを解消するようフィードバック制御がスロットルバルブ4を駆動するため、結果として、異常挙動を起こしてしまう。目標開度値TAGが低いなど場合によっては、この異常駆動が内燃機関回転数に影響し、車両の急加速、急減速を発生させてしまう。
実施の形態2についてまとめると、実施の形態2では、アクセルセンサ出力ASとスロットルセンサ出力TSの両方のセンサ出力は、それぞれ2つのセンサ出力1とセンサ出力2を含み、アクセルセンサ出力ASとスロットルセンサ出力TSは、正常状態では、それぞれのセンサ出力1とセンサ出力2の出力値の差が、アクセルペダルの踏込値とスロットルバルブ4の開度値のそれぞれの所定変化部分以外において、それぞれのセンサ出力に対応した所定値以上となり、また、前記それぞれの所定変化部分では、前記それぞれのセンサ出力のセンサ出力1とセンサ出力2の出力値が、それぞれのセンサ出力に対応した所定出力値Kcoの近傍値となるように設定される。コントロールユニット10は、アクセルセンサ出力ASおよびスロットルセンサ出力TSのそれぞれのセンサ出力1とセンサ出力2の出力値の差が、ともに前記それぞれの所定変化部分以外で前記それぞれのセンサ出力に対応した所定値以上であるとき、およびアクセルセンサ出力ASおよびスロットルセンサ出力TSのそれぞれのセンサ出力1とセンサ出力2の出力値が、前記それぞれの所定変化部分におけるそれぞれのセンサ出力に対応した所定出力値Kcoの近傍値であるときには、各処理サイクルにおいて、その処理サイクルで得られたアクセルセンサ出力ASのセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値と、その処理サイクルで得られたスロットルセンサ出力TSのセンサ出力1とセンサ出力2の何れかとに基づくセンサ出力値とを使用して制御信号CSを出力し、また、アクセルセンサ出力ASとスロットルセンサ出力TSの一方のセンサ出力のセンサ出力1とセンサ出力2の出力値の差が、前記一方のセンサ出力に対応した所定値以上でありながら、その他方のセンサ出力のセンサ出力1とセンサ出力2の出力値の差が、前記他方のセンサ出力に対応した所定値未満となり、かつ、その他方のセンサ出力のセンサ出力1とセンサ出力2の出力値が、ともに前記他方のセンサ出力の所定変化部分における前記他方のセンサ出力に対応した所定出力値Kcoの近傍値でないときには、いくつかの処理サイクルにおいて、その処理サイクルで得られた前記一方のセンサ出力のセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値と、それ以前の処理サイクルで得られた前記他方のセンサ出力のセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値とを使用して制御信号CSを出力することになる。
また、実施の形態2では、アクセルセンサ出力ASとスロットルセンサ出力TSの両方のセンサ出力は、それぞれ2つのセンサ出力1とセンサ出力2を含み、アクセルセンサ出力ASとスロットルセンサ出力TSは、正常状態では、それぞれのセンサ出力1とセンサ出力2の出力値の差が、アクセルペダルの踏込値とスロットルバルブ4の開度値のそれぞれの所定変化部分以外において、それぞれのセンサ出力に対応した所定値以上となり、また、前記それぞれの所定変化部分では、前記それぞれのセンサ出力のセンサ出力1とセンサ出力2の出力値が、それぞれのセンサ出力に対応した所定出力値Kcoの近傍値となるように設定される。コントロールユニット10は、アクセルセンサ出力ASおよびスロットルセンサ出力TSのそれぞれのセンサ出力1とセンサ出力2の出力値の差が、ともに前記それぞれの所定変化部分以外で前記それぞれのセンサ出力に対応した所定値以上であるとき、およびアクセルセンサ出力ASおよびスロットルセンサ出力TSのそれぞれのセンサ出力1とセンサ出力2の出力値が、前記それぞれの所定変化部分におけるそれぞれのセンサ出力に対応した所定出力値Kcoの近傍値であるときには、各処理サイクルにおいて、その処理サイクルで得られたアクセルセンサ出力ASのセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値と、その処理サイクルで得られたスロットルセンサ出力TSのセンサ出力1とセンサ出力2の何れかとに基づくセンサ出力値とを使用して制御信号CSを出力し、また、アクセルセンサ出力ASとスロットルセンサ出力TSのそれぞれのセンサ出力のセンサ出力1とセンサ出力2の出力値の差が、前記それぞれのセンサ出力に対応した所定値未満となり、かつ、アクセルセンサ出力ASとスロットルセンサ出力TSのそれぞれのセンサ出力のセンサ出力1とセンサ出力2の出力値が、ともに前記それぞれのセンサ出力の所定変化部分におけるそれぞれのセンサ出力に対応した所定出力値Kcoの近傍値でないときには、いくつかの処理サイクルにおいて、それ以前の処理サイクルで得られたアクセルセンサ出力ASとスロットルセンサ出力TSの両方のセンサ出力のセンサ出力1とセンサ出力2の何れかに基づくセンサ出力値とを使用して制御信号CSを出力することになる。
しかし、実施の形態2では、アクセルセンサ出力ASとスロットルセンサ出力TSの少なくとも一方のセンサ出力は、センサ出力1とセンサ出力2を含み、前記センサ出力1とセンサ出力2は、正常状態では、それらの出力値の差が、アクセルペダルの踏込値またはスロットルバルブ4の開度値の全変化範囲の中の所定変化部分以外において、所定値以上となり、また、前記所定変化部分では、前記センサ出力1とセンサ出力2の出力値が、所定出力値Kcoの近傍値となるように設定することもできる。この場合、コントロールユニット10は、前記センサ出力1とセンサ出力2の出力値の差が、前記所定変化部分以外で前記所定値以上となるとき、および前記センサ出力1とセンサ出力2の出力値が、前記所定変化部分における所定出力値Kcoの近傍値となるときには、各処理サイクルにおいて、その処理サイクルで得られた前記センサ出力1とセンサ出力2の何れかに基づくセンサ出力値を使用して制御信号CSを出力し、また、前記センサ出力1とセンサ出力2の出力値の差が、前記所定値未満となり、かつ、前記センサ出力1とセンサ出力2の出力値が、ともに前記所定変化部分における所定出力値Kcoの近傍値でないときには、いくつかの処理サイクルにおいて、それ以前の処理サイクルで得られた前記センサ出力1とセンサ出力2の何れかに基づくセンサ出力値を使用して制御信号CSを出力する。