(57)【要約】【課題】リニアソレノイド制御装置において、リニアソレノイドの電流検出精度を向上させる。【解決手段】制御装置１は、通電許可用トランジスタ５をオフし且つ駆動用トランジスタ７をオンした場合の演算増幅器１７の出力Ｖｏを、第１オフセット値として検出する手段と、トランジスタ５をオンし且つトランジスタ７をオフした場合の演算増幅器１７の出力Ｖｏを、第２オフセット値として検出する手段と、補正手段とを備える。補正手段は、リニアソレノイド３に流す電流Ｉｓを制御する期間（トランジスタ５がオンされ、トランジスタ７が演算増幅器１７の出力Ｖｏに基づきオン／オフされる期間）において、トランジスタ７がオンの場合の演算増幅器１７の出力Ｖｏを、前記検出された第１オフセット値に基づいて補正し、トランジスタ７がオフの場合の演算増幅器１７の出力Ｖｏを、前記検出された第２オフセット値に基づいて補正する。【選択図】図１
2016149456.tif 000002
【特許請求の範囲】
【請求項１】
電源電圧とリニアソレノイド（３）の上流側との間に設けられた上流側トランジスタ（５）と、
前記リニアソレノイドの下流側とグランドラインとの間に設けられた下流側トランジスタ（７）と、
前記リニアソレノイドに対して直列に設けられ、前記リニアソレノイドに流れる電流と同じ電流が流れる電流検出用抵抗（９）と、
前記電流検出用抵抗の両端の電圧差を増幅して出力する演算増幅器（１７）と、
前記上流側トランジスタと前記下流側トランジスタとのうちの一方である通電許可用トランジスタをオンすると共に、前記上流側トランジスタと前記下流側トランジスタとのうちの他方である駆動用トランジスタを、前記演算増幅器の出力に基づいてオン／オフさせることにより、前記リニアソレノイドに流す電流を制御する制御手段（２３）と、
を備えたリニアソレノイド制御装置（１）であって、
前記通電許可用トランジスタをオフし且つ前記駆動用トランジスタをオンした場合の前記演算増幅器の出力を、第１オフセット値として検出する第１検出手段（Ｓ１２０〜Ｓ１４０，Ｓ２２０〜Ｓ２４０）と、
前記通電許可用トランジスタをオンし且つ前記駆動用トランジスタをオフした場合の前記演算増幅器の出力を、第２オフセット値として検出する第２検出手段（Ｓ１５０〜Ｓ１７０，Ｓ２５０〜Ｓ２７０）と、
前記制御手段が前記リニアソレノイドに流す電流を制御する期間において、前記制御手段が前記駆動用トランジスタをオンした場合の前記演算増幅器の出力を、前記第１検出手段により検出された第１オフセット値に基づいて補正し、前記制御手段が前記駆動用トランジスタをオフした場合の前記演算増幅器の出力を、前記第２検出手段により検出された第２オフセット値に基づいて補正する補正手段（Ｓ１８０，Ｓ１９０，Ｓ３１０〜Ｓ３８０）と、
を備えることを特徴とするリニアソレノイド制御装置。
【請求項２】
請求項１に記載のリニアソレノイド制御装置において、
前記第１検出手段は、前記第１オフセット値を、当該リニアソレノイド制御装置の内部温度である装置内部温度が異なるタイミングで複数回検出し、
前記第２検出手段も、前記第２オフセット値を、前記装置内部温度が異なるタイミングで複数回検出し、
当該リニアソレノイド制御装置は、
前記第１検出手段が前記第１オフセット値を検出したときの前記装置内部温度、及び前記第２検出手段が前記第２オフセット値を検出したときの前記装置内部温度を検出する温度検出手段（Ｓ１１０，Ｓ２１０）、を備え、
前記補正手段は、
前記制御手段が前記リニアソレノイドに流す電流を制御する期間において、前記装置内部温度を検出すると共に、その検出した装置内部温度での前記第１オフセット値と前記第２オフセット値を、前記第１検出手段及び前記第２検出手段により検出された複数の前記第１オフセット値及び前記第２オフセット値と、前記温度検出手段により検出された前記装置内部温度とに基づいて推定するオフセット値推定手段（Ｓ１８０，Ｓ１９０，Ｓ３１０〜Ｓ３３０）、を備え、
更に、前記補正手段は、
前記制御手段が前記駆動用トランジスタをオンした場合の前記演算増幅器の出力を、前記オフセット値推定手段により推定した前記第１オフセット値に基づいて補正し、前記制御手段が前記駆動用トランジスタをオフした場合の前記演算増幅器の出力を、前記オフセット値推定手段により推定した前記第２オフセット値に基づいて補正すること（Ｓ３４０〜Ｓ３８０）、
を特徴とするリニアソレノイド制御装置。
【請求項３】
請求項２に記載のリニアソレノイド制御装置において、
前記第１検出手段と前記第２検出手段は、連続して動作するようになっており（Ｓ１２０〜Ｓ１７０，Ｓ２２０〜Ｓ２７０）、
前記温度検出手段は、前記第１検出手段と前記第２検出手段とが連続して動作したときの前記装置内部温度を、前記第１検出手段が前記第１オフセット値を検出したときの前記装置内部温度と、前記第２検出手段が前記第２オフセット値を検出したときの前記装置内部温度との、両方を表す前記装置内部温度として検出すること、
を特徴とするリニアソレノイド制御装置。
【請求項４】
請求項２又は請求項３に記載のリニアソレノイド制御装置において、
当該リニアソレノイド制御装置は、電源スイッチ（５５）がオンされると起動し、前記電源スイッチがオフされてから所定の条件が成立すると動作を終了するようになっており、
前記第１検出手段が前記第１オフセット値を検出するタイミングは、前記電源スイッチがオンされて当該リニアソレノイド制御装置が起動したタイミング（Ｓ１２０〜Ｓ１４０）と、前記電源スイッチがオフされてから当該リニアソレノイド制御装置が動作を終了するまでの間のタイミング（Ｓ２２０〜Ｓ２４０）であり、
前記第２検出手段が前記第２オフセット値を検出するタイミングも、前記電源スイッチがオンされて当該リニアソレノイド制御装置が起動したタイミング（Ｓ１５０〜Ｓ１７０）と、前記電源スイッチがオフされてから当該リニアソレノイド制御装置が動作を終了するまでの間のタイミング（Ｓ２５０〜Ｓ２７０）であること、
を特徴とするリニアソレノイド制御装置。
【請求項５】
請求項１ないし請求項４に記載のリニアソレノイド制御装置において、
前記第１検出手段と前記第２検出手段は、当該リニアソレノイド制御装置が動作する期間に少なくとも１回は動作すること、
を特徴とするリニアソレノイド制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リニアソレノイドを制御する装置に関する。
【背景技術】
【０００２】
リニアソレノイド制御装置では、リニアソレノイドに対して直列に設けた電流検出用抵抗の両端の電圧差を、演算増幅器（オペアンプ）により増幅し、その演算増幅器の出力に基づいて、リニアソレノイドに流れる電流を検出する。そして、リニアソレノイドに通電するための駆動用トランジスタをオン／オフさせるデューティ比を、電流の検出値が目標値となるように制御する。
【０００３】
ここで、リニアソレノイドに流れる電流の検出精度を向上させる技術として、例えば特許文献１に記載の技術がある。特許文献１の技術は、リニアソレノイドの非駆動時に、電流検出用の演算増幅器の出力値をオフセット電圧として記憶し、リニアソレノイドの制御時においては、演算増幅器の出力から、上記記憶したオフセット電圧を減算する、というものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−１４３７５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リニアソレノイド制御装置において、電流検出用の演算増幅器のオフセット電圧は、駆動用トランジスタのオン時とオフ時とで同じではない。しかし、上記特許文献１の技術では、どちらか一方のオフセット電圧しか得ることができない。そのため、演算増幅器の出力に対して十分なオフセット補正ができずに、電流検出精度が低下し、延いては、リニアソレノイドの制御精度が低下する。
【０００６】
そこで、本発明は、リニアソレノイド制御装置において、リニアソレノイドの電流検出精度を向上させることを目的としている。
【課題を解決するための手段】
【０００７】
第１発明のリニアソレノイド制御装置は、電源電圧とリニアソレノイドの上流側との間に設けられた上流側トランジスタと、リニアソレノイドの下流側とグランドラインとの間に設けられた下流側トランジスタと、リニアソレノイドに対して直列に設けられ、リニアソレノイドに流れる電流と同じ電流が流れる電流検出用抵抗と、電流検出用抵抗の両端の電圧差を増幅して出力する演算増幅器と、制御手段と、を備える。
【０００８】
そして、制御手段は、上流側トランジスタと下流側トランジスタとのうちの一方である通電許可用トランジスタをオンすると共に、上流側トランジスタと下流側トランジスタとのうちの他方である駆動用トランジスタを、演算増幅器の出力に基づいてオン／オフさせることにより、リニアソレノイドに流す電流を制御する。
【０００９】
更に、このリニアソレノイド制御装置は、第１検出手段と、第２検出手段と、補正手段と、を備える。
第１検出手段は、通電許可用トランジスタをオフし且つ駆動用トランジスタをオンした場合の演算増幅器の出力を、第１オフセット値として検出する。
【００１０】
第２検出手段は、通電許可用トランジスタをオンし且つ駆動用トランジスタをオフした場合の演算増幅器の出力を、第２オフセット値として検出する。
第１オフセット値と第２オフセット値は、両方とも、リニアソレノイドに電流を流していない場合の演算増幅器の出力であるため、演算増幅器のオフセット電圧である。そして特に、第１オフセット値は、駆動用トランジスタがオン時のオフセット電圧であり、第２オフセット値は、駆動用トランジスタがオフ時のオフセット電圧である。
【００１１】
このため、補正手段は、制御手段がリニアソレノイドに流す電流を制御する期間において、制御手段が駆動用トランジスタをオンした場合の演算増幅器の出力を、第１検出手段により検出された第１オフセット値に基づいて補正する。また、補正手段は、制御手段が駆動用トランジスタをオフした場合の演算増幅器の出力を、第２検出手段により検出された第２オフセット値に基づいて補正する。
【００１２】
このリニアソレノイド制御装置によれば、リニアソレノイドを制御する際（詳しくは、リニアソレノイドに流す電流を制御する際）に、駆動用トランジスタのオン時とオフ時とで、別々の適切なオフセット値を用いて演算増幅器の出力に対するオフセット補正を行うことができる。よって、リニアソレノイドを制御する際の電流検出精度を向上させることができ、延いては、リニアソレノイドの制御精度を高めることができる。
【００１３】
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１４】
【図１】実施形態の電子制御装置（ＥＣＵ）を表す構成図である。
【図２】オフセット電圧が駆動用トランジスタのオン時とオフ時とで異なることを説明するための説明図である。
【図３】ＩＧオン時処理を表すフローチャートである。
【図４】ＩＧオフ時処理を表すフローチャートである。
【図５】第１計算式と第２計算式を説明するための説明図である。
【図６】補正処理を表すフローチャートである。
【図７】比較例のグラフである。
【図８】図７におけるＡ部の拡大図である。
【図９】実施形態の効果を例示するフラグである。
【図１０】図９におけるＢ部の拡大図である。
【発明を実施するための形態】
【００１５】
本発明が適用された実施形態のリニアソレノイド制御装置としての電子制御装置（以下、ＥＣＵという）について説明する。ＥＣＵは、「Electronic Control Unit」の略である。
【００１６】
図１に示す実施形態のＥＣＵ１は、車両に搭載されるＥＣＵであり、リニアソレノイド３に流す電流（即ち、リニアソレノイド３の駆動電流）を制御する。
リニアソレノイド３は、例えば、エンジンの吸入空気量調節用バルブを駆動させるアクチュエータとしてのリニアソレノイドであるが、油圧経路のバルブを駆動させるものなど、他の用途のリニアソレノイドであっても良い。また、以下では、リニアソレノイド３のことを、単に、ソレノイド３という。
【００１７】
図１に示すように、ＥＣＵ１は、電源電圧ＶＢとソレノイド３の上流側との間に設けられた上流側トランジスタ５と、ソレノイド３の下流側とグランドラインとの間に設けられた下流側トランジスタ７と、ソレノイド３に対して直列に設けられて、ソレノイド３に流れる電流（以下、ソレノイド電流ともいう）Ｉｓと同じ電流が流れる電流検出用抵抗９と、を備える。
【００１８】
電源電圧ＶＢは、車両のバッテリ１１から給電用のメインリレー（ＭＬ）１３を介してＥＣＵ１に供給されるバッテリ電圧（通常、例えば１２Ｖ）である。
上流側トランジスタ５と下流側トランジスタ７は、この例ではＭＯＳＦＥＴ（電界効果トランジスタ）であるが、バイポーラトランジスタや絶縁ゲートバイポーラトランジスタなど、他の種類のトランジスタであっても良い。
【００１９】
電流検出用抵抗９は、ソレノイド３の下流側と下流側トランジスタ７との間に設けられている。また、電流検出用抵抗９の下流側と下流側トランジスタ７との間の電流経路には、ソレノイド３に電流を還流させるためのダイオード１４のアノードが接続されており、そのダイオード１４のカソードは電源電圧ＶＢのラインに接続されている。そして、電流検出用抵抗９は、ソレノイド電流Ｉｓを検出するための電流検出回路１５の一部を成している。
【００２０】
電流検出回路１５は、電流検出用抵抗９の他に、演算増幅器（オペアンプ）１７と、４つの抵抗Ｒ１〜Ｒ４と、を備える。
抵抗Ｒ１は、電流検出用抵抗９の上流側と演算増幅器１７の非反転入力端子との間に接続されている。抵抗Ｒ２は、バッファ回路１９と演算増幅器１７の非反転入力端子との間に接続されている。抵抗Ｒ３は、電流検出用抵抗９の下流側と演算増幅器１７の反転入力端子との間に接続されている。抵抗Ｒ４は、演算増幅器１７の反転入力端子と出力端子との間に、帰還抵抗として接続されている。つまり、演算増幅器１７と抵抗Ｒ１，Ｒ２，Ｒ３，Ｒ４とにより、差動増幅回路が構成されている。このため、演算増幅器１７からは、電流検出用抵抗９の両端の電圧差Ｖｒを増幅した電圧が出力される。
【００２１】
また、演算増幅器１７の非反転入力端子には、抵抗Ｒ２を介して、バッファ回路１９からバイアス電圧が入力される。バッファ回路１９は、演算増幅器２１によって構成されている。
【００２２】
そして、ＥＣＵ１は、当該ＥＣＵ１の動作を司るマイクロコンピュータ（以下、マイコンという）２３と、演算増幅器１７の出力Ｖｏをマイコン２３に入力させるフィルタ回路２５と、ＥＣＵ１の内部温度（以下、装置内部温度という）を検出するためのサーミスタ２７及び抵抗２９と、を備える。演算増幅器１７の出力Ｖｏは、電流検出回路１５の出力である。
【００２３】
フィルタ回路２５は、抵抗３１とコンデンサ３３とからなるローパスフィルタ（積分回路）である。
抵抗２９の一端には、ＥＣＵ１内で電源電圧ＶＢから生成される一定電圧ＶＤ（例えば５Ｖ）が供給され、その抵抗２９の他端とグランドラインとの間に、サーミスタ２７が接続されている。そして、サーミスタ２７と抵抗２９との接続点の電圧が、装置内部温度を表す温度検出用電圧ＶＴとしてマイコン２３に入力される。装置内部温度に応じて、サーミスタ２７の抵抗値が変わるため、温度検出用電圧ＶＴの値も変わる。
【００２４】
マイコン２３は、ＣＰＵ４１と、ＣＰＵ４１が実行するプログラムや固定のデータが格納されたＲＯＭ４２と、ＣＰＵ４１による演算結果を記憶するＲＡＭ４３と、Ａ／Ｄ変換器（ＡＤＣ）４４と、Ｄ／Ａ変換器（ＤＡＣ）４５と、を備える。
【００２５】
マイコン２３において、サーミスタ２７及び抵抗２９から入力される温度検出用電圧ＶＴは、Ａ／Ｄ変換器４４によりＡ／Ｄ変換されることで検出される。同様に、フィルタ回路２５を介してマイコン２３に入力される演算増幅器１７の出力Ｖｏも、Ａ／Ｄ変換器４４によりＡ／Ｄ変換されることで検出される。
【００２６】
また、マイコン２３からバッファ回路１９へは、Ｄ／Ａ変換器４５によって発生されるバイアス電圧Ｖｂｉが出力される。そして、そのマイコン２３からのバイアス電圧Ｖｂｉが、バッファ回路１９から抵抗Ｒ２を介して演算増幅器１７の非反転入力端子に入力される。
【００２７】
また、マイコン２３から上流側トランジスタ５及び下流側トランジスタ７の各々のゲートには、図示しない駆動回路を介して駆動信号が供給される。
更に、ＥＣＵ１は、メインリレー１３をオンさせるリレー駆動回路５１と、電源回路５３と、を備える。
【００２８】
リレー駆動回路５１は、車両における電源スイッチとしてのイグニッションスイッチ（以下、ＩＧスイッチという）５５がオンされている場合、あるいは、マイコン２３からの電源保持信号Ｓｈがハイの場合に、メインリレー１３をオンさせる。「ＩＧ」とは「イグニッション」の略である。
【００２９】
電源回路５３は、バッテリ１１からメインリレー１３を介してＥＣＵ１に供給される電源電圧ＶＢから、前述の一定電圧ＶＤを生成して出力する。電源電圧５３から出力される一定電圧ＶＤは、前述の抵抗２９に供給されると共に、マイコン２３へも動作用電圧として供給される。
【００３０】
このため、ＩＧスイッチ５５がオンすると、マイコン２３が起動する。マイコン２３が起動することは、ＥＣＵ１が起動することに相当する。そして、マイコン２３は、起動すると、リレー駆動回路５１への電源保持信号Ｓｈをハイにすることで、ＩＧスイッチ５５がオフされた後も、動作し続けることができるようにする。また、マイコン２３は、ＩＧスイッチ５５がオフされたことを検知してから、所定の動作終了条件が成立したと判定すると、電源保持信号Ｓｈをローにして動作を終了する。すると、メインリレー１３がオフして、ＥＣＵ１への電源電圧ＶＢの供給が停止される。尚、マイコン２３には、ＩＧスイッチ５５のオン／オフ状態を示すＩＧスイッチ信号が、図示しない入力回路を介して入力される。そして、マイコン２３は、そのＩＧスイッチ信号に基づいて、ＩＧスイッチ５５のオン／オフ状態を判定する。
【００３１】
このＥＣＵ１において、マイコン２３からのバイアス電圧Ｖｂｉは、ソレノイド電流Ｉｓが０であるときの演算増幅器１７の出力Ｖｏが、０Ｖよりも大きい所定の基準出力値Ｖｓｏ（＜ＶＤ）となるように調整される。
【００３２】
そして、マイコン２３は、ソレノイド３を駆動する場合、つまり、ソレノイド電流Ｉｓを制御する場合には、上流側トランジスタ５と下流側トランジスタ７とのうち、通電許可用トランジスタに相当する方の上流側トランジスタ５をオンしたままにする。そして更に、マイコン２３は、駆動用トランジスタに相当する方の下流側トランジスタ７を、演算増幅器１７の出力Ｖｏに基づいてオン／オフさせる。
【００３３】
具体的には、演算増幅器１７の出力Ｖｏから上記基準出力値Ｖｓｏを減算した値は、ソレノイド電流Ｉｓに比例した値となる。このため、マイコン２３は、演算増幅器１７の出力Ｖｏの検出値（この例ではＡ／Ｄ変換値）から基準出力値Ｖｓｏを減算し、その減算した値が目標値となるように、下流側トランジスタ７のオン／オフのデューティ比を制御する。
【００３４】
ここで、電流検出回路１５において、演算増幅器１７にはオフセット電圧があり、しかも、演算増幅器１７の出力Ｖｏに含まれるオフセット電圧は、駆動用トランジスタとしての下流側トランジスタ７がオンの時とオフの時とで異なる。
【００３５】
この例において、演算増幅器１７の出力Ｖｏは、下記式１によって表される。式１における「Ｖｚ」は、図２に示すように、抵抗Ｒ３に印加される入力電圧（即ち、電流検出用抵抗９の下流側の電圧）である。また、式１における「Ｖｒ」は、電流検出用抵抗９の両端の電圧差Ｖｒである。このため、図２に示すように、抵抗Ｒ１に印加される入力電圧（即ち、電流検出用抵抗９の上流側の電圧）は、「Ｖｚ＋Ｖｒ」となる。また、式１は、図２に示すように、抵抗Ｒ２の一端をグランドライン（０Ｖ）に接続した場合を表している。尚、図２において電流検出用抵抗９の図示は省略している。
【００３６】
【数１】
2016149456.tif 000003
式１の右辺においては、１行目の項がゲイン項であり、「＋Ｖｚ」から始まる２行目の項がオフセット項である。そのオフセット項において、「Ｖｚ」は、下流側トランジスタ７がオンの場合には、「下流側トランジスタ７のオン抵抗×下流側トランジスタ７に流れる電流値」である第１の値となり、下流側トランジスタ７がオフの場合には、電源電圧ＶＢと等しい第２の値となる。このように、オフセット電圧として現れるオフセット項の値は、下流側トランジスタ７のオン時とオフ時とで異なる。上記第１の値は、第２の値に対して十分小さいが、ソレノイド３を制御する場合には、高い電流制御精度（例えば±５０ｍＡ程度）が求められるため、両方の値に対して補正をする必要が生じる。
【００３７】
そこで次に、マイコン２３が演算増幅器１７のオフセット補正のために行う処理について説明する。
尚、マイコン２３が行う処理は、実際には、ＣＰＵ４１がＲＯＭ４２内のプログラムを実行することで実現される。また、以下では、上流側トランジスタ５がオフされ且つ下流側トランジスタ７がオンされた場合の、演算増幅器１７の出力Ｖｏを、第１オフセット値といい、上流側トランジスタ５がオンされ且つ下流側トランジスタ７がオフされた場合の、演算増幅器１７の出力Ｖｏを、第２オフセット値という。また、マイコン２３から出力されるバイアス電圧Ｖｂｉの値のことを、バイアス出力値という。また、演算増幅器１７の単体でのオフセット電圧が０と仮定して、ソレノイド電流Ｉｓが０であるときの演算増幅器１７の出力Ｖｏを基準出力値Ｖｓｏにするための、バイアス電圧Ｖｂｉの理論値（計算上の値）を、基準バイアス値Ｖｓｂという。
【００３８】
〈ＩＧオン時処理〉
マイコン２３は、ＩＧスイッチ５５のオンによって起動すると、図３のＩＧオン時処理を行う。
【００３９】
図３に示すように、マイコン２３は、ＩＧオン時処理を開始すると、Ｓ１００にて、所定のイニシャル処理を行う。イニシャル処理には、バイアス出力値を基準バイアス値Ｖｓｂに設定する処理も含まれる。
【００４０】
そして、マイコン２３は、次のＳ１１０にて、サーミスタ２７及び抵抗２９からの温度検出用電圧ＶＴに基づいて、装置内部温度を検出する。例えば、ＲＯＭ４２には、温度検出用電圧ＶＴを装置内部温度に換算するための温度換算マップ又は温度換算式が記憶されている。このため、マイコン２３は、温度検出用電圧ＶＴをＡ／Ｄ変換して取得し、その取得した温度検出用電圧ＶＴを、上記温度換算マップ又は温度換算式により、装置内部温度に換算する。そして更に、マイコン２３は、Ｓ１１０では、検出した装置内部温度を、例えばＲＡＭ４３に「ＴｐＯＮ」として記憶する。ＴｐＯＮは、ＥＣＵ１の起動時における装置内部温度ということになる。
【００４１】
マイコン２３は、次のＳ１２０にて、上流側トランジスタ５をオフし、下流側トランジスタ７をオンする。マイコン２３は、次のＳ１３０にて、演算増幅器１７の出力ＶｏをＡ／Ｄ変換する。そして、マイコン２３は、次のＳ１４０にて、Ｓ１３０で取得した出力ＶｏのＡ／Ｄ変換結果を、例えばＲＡＭ４３に「Ｏｆ１ＯＮ」として記憶する。Ｏｆ１ＯＮは、ＥＣＵ１の起動時における第１オフセット値であると共に、装置内部温度がＴｐＯＮである場合の第１オフセット値ということになる。
【００４２】
マイコン２３は、次のＳ１５０にて、下流側トランジスタ７をオフし、上流側トランジスタ５をオンする。マイコン２３は、次のＳ１６０にて、演算増幅器１７の出力ＶｏをＡ／Ｄ変換する。そして、マイコン２３は、次のＳ１７０にて、Ｓ１６０で取得した出力ＶｏのＡ／Ｄ変換結果を、例えばＲＡＭ４３に「Ｏｆ２ＯＮ」として記憶する。Ｏｆ２ＯＮは、ＥＣＵ１の起動時における第２オフセット値であると共に、装置内部温度がＴｐＯＮである場合の第１オフセット値ということになる。
【００４３】
マイコン２３は、次のＳ１８０にて、任意の装置内部温度での第１オフセット値を推定して算出するための第１計算式を設定し、次のＳ１９０にて、任意の装置内部温度での第２オフセット値を推定して算出するための第２計算式を設定する。そして、その後、当該ＩＧオン時処理を終了する。尚、Ｓ１８０，Ｓ１９０の処理内容については後で説明する。
【００４４】
〈ＩＧオフ時処理〉
マイコン２３は、ＩＧスイッチ５５がオフされたことを検知すると、前述の電源保持信号Ｓｈをローにする前に、図４のＩＧオフ時処理を行う。
【００４５】
図４に示すように、マイコン２３は、ＩＧオフ時処理を開始すると、Ｓ２００にて、バイアス出力値を基準バイアス値Ｖｓｂに設定する。そして、マイコン２３は、次のＳ２１０にて、図３のＳ１１０と同様に装置内部温度を検出し、検出した装置内部温度を、例えばＲＡＭ４３に「ＴｐＯＦＦ」として記憶する。ＴｐＯＦＦは、ＥＣＵ１の動作終了時における装置内部温度ということになる。このＴｐＯＦＦは、ＥＣＵ１の起動時における装置内部温度であるＴｐＯＮと比べると、高温になっていると考えられる。
【００４６】
マイコン２３は、次のＳ２２０にて、上流側トランジスタ５をオフし、下流側トランジスタ７をオンする。マイコン２３は、次のＳ２３０にて、演算増幅器１７の出力ＶｏをＡ／Ｄ変換する。そして、マイコン２３は、次のＳ２４０にて、Ｓ２３０で取得した出力ＶｏのＡ／Ｄ変換結果を、例えばＲＡＭ４３に「Ｏｆ１ＯＦＦ」として記憶する。Ｏｆ１ＯＦＦは、ＥＣＵ１の動作終了時における第１オフセット値であると共に、装置内部温度がＴｐＯＦＦである場合の第１オフセット値ということになる。
【００４７】
マイコン２３は、次のＳ２５０にて、下流側トランジスタ７をオフし、上流側トランジスタ５をオンする。マイコン２３は、次のＳ２６０にて、演算増幅器１７の出力ＶｏをＡ／Ｄ変換する。そして、マイコン２３は、次のＳ２７０にて、Ｓ２６０で取得した出力ＶｏのＡ／Ｄ変換結果を、例えばＲＡＭ４３に「Ｏｆ２ＯＦＦ」として記憶し、その後、当該ＩＧオフ時処理を終了する。Ｏｆ２ＯＦＦは、ＥＣＵ１の動作終了時における第２オフセット値であると共に、装置内部温度がＴｐＯＦＦである場合の第２オフセット値ということになる。
【００４８】
尚、ＲＡＭ４３の記憶領域のうち、少なくともＴｐＯＦＦ，Ｏｆ１ＯＦＦ，Ｏｆ２ＯＦＦが記憶される記憶領域は、メインリレー１３がオフされてもデータ保持用電源が供給され続けるバックアップＲＡＭ領域になっている。このため、図４のＩＧオフ時処理でＲＡＭ４３に記憶されたＴｐＯＦＦ，Ｏｆ１ＯＦＦ，Ｏｆ２ＯＦＦは、ＩＧスイッチ５５がオフからオンされてマイコン２３が再び動作を開始した場合に読み出すことができる。
【００４９】
また、図４のＩＧオフ時処理におけるＳ２１０，Ｓ２４０，Ｓ２７０では、ＴｐＯＦＦ，Ｏｆ１ＯＦＦ，Ｏｆ２ＯＦＦを、ＥＥＰＲＯＭやフラッシュメモリなどの書き換え可能な不揮発性メモリに記憶しても良い。その場合、例えば、図３のＩＧオン時処理におけるＳ１１０（イニシャル処理）で、書き換え可能不揮発性メモリ内のＴｐＯＦＦ，Ｏｆ１ＯＦＦ，Ｏｆ２ＯＦをＲＡＭ４３にコピーすれば良い。
【００５０】
〈ＩＧオン時処理（図３）におけるＳ１８０，Ｓ１９０の処理〉
マイコン２３は、図３のＳ１８０では、今回の図３におけるＳ１１０とＳ１４０とでＲＡＭ４３に記憶されたＴｐＯＮ及びＯｆ１ＯＮと、直前に実行した図４におけるＳ２１０とＳ２４０とでＲＡＭ４３に記憶されたＴｐＯＦＦ及びＯｆ１ＯＦＦとを読み込む。ＴｐＯＮは、Ｏｆ１ＯＮが検出されたときの装置内部温度であり、そのＯｆ１ＯＮと対応付けてＲＡＭ４３に記憶された装置内部温度である。ＴｐＯＦＦは、Ｏｆ１ＯＦＦが検出されたときの装置内部温度であり、そのＯｆ１ＯＦＦと対応付けてＲＡＭ４３に記憶された装置内部温度である。
【００５１】
更に、マイコン２３は、Ｓ１８０では、図５に示すように、温度をｘ軸（横軸）にし、電圧をｙ軸（縦軸）にした座標において、「温度＝ＴｐＯＮ」で「電圧＝Ｏｆ１ＯＮ」である点と、「温度＝ＴｐＯＦＦ」で「電圧＝Ｏｆ１ＯＦＦ」である点との、２つの点を結ぶ直線の式「ｙ＝ｆ１（ｘ）」を算出する。そして、その一次関数の式「ｙ＝ｆ１（ｘ）」を、任意の装置内部温度での第１オフセット値を推定して算出するための第１計算式として設定する。
【００５２】
また、マイコン２３は、図３のＳ１９０では、今回の図３におけるＳ１１０とＳ１７０とでＲＡＭ４３に記憶されたＴｐＯＮ及びＯｆ２ＯＮと、直前に実行した図４におけるＳ２１０とＳ２７０とでＲＡＭ４３に記憶されたＴｐＯＦＦ及びＯｆ２ＯＦＦとを読み込む。ＴｐＯＮは、Ｏｆ２ＯＮが検出されたときの装置内部温度でもあり、そのＯｆ２ＯＮと対応付けてＲＡＭ４３に記憶された装置内部温度でもある。ＴｐＯＦＦは、Ｏｆ２ＯＦＦが検出されたときの装置内部温度でもあり、そのＯｆ２ＯＦＦと対応付けてＲＡＭ４３に記憶された装置内部温度でもある。
【００５３】
更に、マイコン２３は、Ｓ１９０では、図５に示すように、温度をｘ軸（横軸）にし、電圧をｙ軸（縦軸）にした座標において、「温度＝ＴｐＯＮ」で「電圧＝Ｏｆ２ＯＮ」である点と、「温度＝ＴｐＯＦＦ」で「電圧＝Ｏｆ２ＯＦＦ」である点との、２つの点を結ぶ直線の式「ｙ＝ｆ２（ｘ）」を算出する。そして、その一次関数の式「ｙ＝ｆ２（ｘ）」を、任意の装置内部温度での第２オフセット値を推定して算出するための第２計算式として設定する。
【００５４】
〈補正処理〉
マイコン２３は、ソレノイド電流Ｉｓを制御する期間において、図６の補正処理を例えば一定時間毎に行う。
【００５５】
図６に示すように、マイコン２３は、補正処理を開始すると、まずＳ３１０にて、図３のＳ１１０や図４のＳ２１０と同様に装置内部温度を検出し、その検出した装置内部温度を、例えばＲＡＭ４３に現在温度として記憶する。
【００５６】
マイコン２３は、次のＳ３２０にて、図３のＳ１８０で設定した第１計算式に現在温度を代入することにより、現在温度での（詳しくは、現在の装置内部温度での）第１オフセット値を算出し、その算出した第１オフセット値を、例えばＲＡＭ４３に「Ｏｆ１Ｎｏｗ」として記憶する。Ｏｆ１Ｎｏｗは、現在温度での第１オフセット値を推定した値である。
【００５７】
マイコン２３は、次のＳ３３０にて、図３のＳ１９０で設定した第２計算式に現在温度を代入することにより、現在温度での第２オフセット値を算出し、その算出した第２オフセット値を、例えばＲＡＭ４３に「Ｏｆ２Ｎｏｗ」として記憶する。Ｏｆ２Ｎｏｗは、現在温度での第２オフセット値を推定した値である。
【００５８】
マイコン２３は、次のＳ３４０にて、Ｏｆ１Ｎｏｗから、下流側トランジスタ７がオン時のバイアス出力値Ｖ１を算出する。
そのバイアス出力値Ｖ１は、下流側トランジスタ７がオンで、ソレノイド電流Ｉｓが０である場合の演算増幅器１７の出力Ｖｏを、基準出力値Ｖｓｏに補正するためのバイアス出力値である。電流検出回路１５のゲインを「Ｇ」とすると、バイアス出力値Ｖ１は、「Ｖ１＝基準バイアス値Ｖｓｂ＋（基準出力値Ｖｓｏ−Ｏｆ１Ｎｏｗ）／Ｇ」の式によって算出される。
【００５９】
マイコン２３は、次のＳ３５０にて、Ｏｆ２Ｎｏｗから、下流側トランジスタ７がオフ時のバイアス出力値Ｖ２を算出する。
そのバイアス出力値Ｖ２は、下流側トランジスタ７がオフで、ソレノイド電流Ｉｓが０である場合の演算増幅器１７の出力Ｖｏを、基準出力値Ｖｓｏに補正するためのバイアス出力値である。バイアス出力値Ｖ２は、「Ｖ２＝基準バイアス値Ｖｓｂ＋（基準出力値Ｖｓｏ−Ｏｆ２Ｎｏｗ）／Ｇ」の式によって算出される。
【００６０】
マイコン２３は、次のＳ３６０にて、下流側トランジスタ７をオンさせているか否かを判定し、下流側トランジスタ７をオンさせている場合には、Ｓ３７０に進み、下流側トランジスタ７をオフさせている場合には、Ｓ３８０に進む。
【００６１】
マイコン２３は、Ｓ３７０では、実際のバイアス出力値を、Ｓ３４０で算出したバイアス出力値Ｖ１に設定する。具体的には、Ｄ／Ａ変換器４５によるバイアス電圧Ｖｂｉの出力値を、バイアス出力値Ｖ１を設定する。また、マイコン２３は、Ｓ３８０では、実際のバイアス出力値を、Ｓ３５０で算出したバイアス出力値Ｖ２に設定する。具体的には、Ｄ／Ａ変換器４５によるバイアス電圧Ｖｂｉの出力値を、バイアス出力値Ｖ２を設定する。そして、マイコン２３は、Ｓ３７０又はＳ３８０の処理を行った後、当該補正処理を終了する。
【００６２】
以上のようなＥＣＵ１において、マイコン２３は、ソレノイド電流Ｉｓを制御する期間において、下流側トランジスタ７をオンした場合の演算増幅器１７の出力Ｖｏを、事前に検出した第１オフセット値（Ｏｆ１ＯＮ，Ｏｆ１ＯＦＦ）に基づいて補正する。また、下流側トランジスタ７をオフした場合の演算増幅器１７の出力Ｖｏを、事前に検出した第２オフセット値（Ｏｆ２ＯＮ，Ｏｆ２ＯＦＦ）に基づいて補正する。このため、ソレノイド３を制御する際に、下流側トランジスタ７のオン時とオフ時とで、別々の適切なオフセット値（第１オフセット値及び第２オフセット値）を用いて演算増幅器１７の出力Ｖｏに対するオフセット補正を行うことができる。よって、ソレノイド３を制御する際の電流検出精度を向上させることができ、延いては、ソレノイド３の制御精度を高めることができる。
【００６３】
例えば、図７は、比較例として、バイアス電圧Ｖｂｉを基準バイアス値Ｖｓｂに固定した場合の、演算増幅器１７の出力Ｖｏを表している。図７において、出力Ｖｏが増加している期間が、下流側トランジスタ７のオン期間であり、出力Ｖｏが減少している期間が、下流側トランジスタ７のオフ期間である。また、図７において、点線は理想波形であり、実線はオフセットによる誤差を含んだ波形である。そして、図７において点線楕円で囲んだＡ部の拡大図が、図８である。図７及び図８の例では、電流検出用抵抗が０．５Ωで、電流検出回路１５のゲインが１０である。図８に示すように、下流側トランジスタ７のオン期間において、演算増幅器１７の出力Ｖｏに０．４５Ｖの誤差が生じており、その誤差は、電流に換算すると９０ｍＡ（＝０．４５Ｖ／０．５Ω／１０）に相当する。
【００６４】
一方、図９は、本実施形態のＥＣＵ１における演算増幅器１７の出力Ｖｏを表している。図９においても、出力Ｖｏが増加している期間が、下流側トランジスタ７のオン期間であり、出力Ｖｏが減少している期間が、下流側トランジスタ７のオフ期間である。また、図９においても、点線は理想波形であり、実線は実際の誤差を含んだ波形であるが、その実線の波形は点線の理想波形と概ね一致している。そして、図９において点線楕円で囲んだＢ部の拡大図が、図１０である。図９及び図１０の例においても、電流検出用抵抗が０．５Ωで、電流検出回路１５のゲインが１０である。図１０に示すように、下流側トランジスタ７のオン期間において、演算増幅器１７の出力Ｖｏには０．１７Ｖの誤差が生じているが、その誤差は、電流に換算すると３４ｍＡ（＝０．１７Ｖ／０．５Ω／１０）であり、十分に抑制されている。
【００６５】
また、ＥＣＵ１において、マイコン２３は、第１オフセット値と第２オフセット値との各々を、装置内部温度が異なるタイミングで複数回（この例では２回）検出している。複数回検出した第１オフセット値の各々が、Ｏｆ１ＯＮとＯｆ１ＯＦＦであり、複数回検出した第２オフセット値の各々が、Ｏｆ２ＯＮとＯｆ２ＯＦＦである。更に、マイコン２３は、第１オフセット値（Ｏｆ１ＯＮ，Ｏｆ１ＯＦＦ）を検出したときの装置内部温度（ＴｐＯＮ，ＴｐＯＦＦ）、及び第２オフセット値（Ｏｆ２ＯＮ，Ｏｆ２ＯＦＦ）を検出したときの装置内部温度（ＴｐＯＮ，ＴｐＯＦＦ）を検出している。
【００６６】
そして、マイコン２３は、ソレノイド電流Ｉｓを制御する期間において、装置内部温度を検出し（Ｓ３１０）、その検出した現在の装置内部温度での第１オフセット値（Ｏｆ１Ｎｏｗ）と第２オフセット値（Ｏｆ２Ｎｏｗ）を、前述の第１計算式及び第２計算式を用いて推定している（Ｓ３２０〜Ｓ３３０）。第１計算式と第２計算式は、事前に検出した第１オフセット値（Ｏｆ１ＯＮ，Ｏｆ１ＯＦＦ）及び第２オフセット値（Ｏｆ２ＯＮ，Ｏｆ２ＯＦＦ）と、それらを検出したときの装置内部温度（ＴｐＯＮ，ＴｐＯＦＦ）とに基づいて設定している。
【００６７】
そして更に、マイコン２３は、ソレノイド電流Ｉｓを制御する期間において、下流側トランジスタ７をオンした場合の演算増幅器１７の出力Ｖｏを、推定した現在の装置内部温度での第１オフセット値（Ｏｆ１Ｎｏｗ）に基づいて補正する（Ｓ３４０，Ｓ３７０）。また、下流側トランジスタ７をオフした場合の演算増幅器１７の出力Ｖｏを、推定した現在の装置内部温度での第２オフセット値（Ｏｆ２Ｎｏｗ）に基づいて補正する（Ｓ３５０，Ｓ３８０）。
【００６８】
このため、演算増幅器１７のオフセット電圧の温度特性もキャンセルすることができ、電流検出精度を一層向上させることができる。
尚、本実施形態において、図３のＩＧオン時処理と図４のＩＧオフ時処理との各々では、第１オフセット値と第２オフセット値とを、連続して検出するようになっている（図３のＳ１２０〜Ｓ１７０，図４のＳ２２０〜Ｓ２７０）。このため、図３のＳ１１０では、第１オフセット値（Ｏｆ１ＯＮ）と第２オフセット値（Ｏｆ２ＯＮ）とを連続して検出するときの装置内部温度を、Ｏｆ１ＯＮを検出したときの装置内部温度と、Ｏｆ２ＯＮを検出したときの装置内部温度との、両方を表す装置内部温度（ＴｐＯＮ）として検出している。同様に、図４のＳ２１０では、第１オフセット値（Ｏｆ１ＯＦＦ）と第２オフセット値（Ｏｆ２ＯＦＦ）とを連続して検出するときの装置内部温度を、Ｏｆ１ＯＦＦを検出したときの装置内部温度と、Ｏｆ２ＯＦＦを検出したときの装置内部温度との、両方を表す装置内部温度（ＴｐＯＦＦ）として検出している。よって、ＲＡＭ４３などのメモリに記憶する装置内部温度の数を少なくすることができ、メモリ資源の節約ができる。
【００６９】
ここで、変形例として、図３のＩＧオン時処理では、例えばＳ１１０で検出した装置内部温度を、Ｏｆ１ＯＮの検出時の装置内部温度としてメモリに記憶し、更に例えばＳ１４０とＳ１５０との間で装置内部温度を検出して、その検出結果をＯｆ２ＯＮの検出時の装置内部温度としてメモリに記憶しても良い。同様に、図４のＩＧオフ時処理では、例えばＳ２１０で検出した装置内部温度を、Ｏｆ１ＯＦＦの検出時の装置内部温度としてメモリに記憶し、更に例えばＳ２４０とＳ２５０との間で装置内部温度を検出して、その検出結果をＯｆ２ＯＦＦの検出時の装置内部温度としてメモリに記憶しても良い。しかし、このように変形するよりは、図３のＩＧオン時処理と図４のＩＧオフ時処理とで、１回ずつ装置内部温度を検出する方が、メモリ資源の節約ができる。
【００７０】
また、マイコン２３は、ＩＧスイッチ５５のオンによりＥＣＵ１が起動したタイミング（図３）と、ＩＧスイッチ５５がオフされてからＥＣＵ１が動作を終了するまでの間のタイミング（図４）とで、第１オフセット値と第２オフセット値との各々を検出する。
【００７１】
このため、第１オフセット値と第２オフセット値との各々に関して、装置内部温度が極力大きく異なる２つのタイミングでの値を取得することができる。このことは、現在の装置内部温度での第１オフセット値と第２オフセット値とを推定するために構築する計算式（上記例では第１計算式と第２計算式）の精度が高くなる、という効果をもたらす。
【００７２】
また、ＥＣＵ１が動作する期間毎に、第１オフセット値と第２オフセット値とが少なくとも１回は検出されて更新されるため、例えば電流検出回路１５を構成する素子の経時特性変化によるオフセット電圧のばらつきもキャンセルすることができる。
【００７３】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。また、前述の数値も一例であり他の値でも良い。
例えば、本発明は、下流側トランジスタ７が、ソレノイド３を駆動する際にオンされたままになる通電許可用トランジスタで、上流側トランジスタ５が、ソレノイド３を駆動する際にオン／オフされる駆動用トランジスタである構成であっても、同様に適用することができる。
【００７４】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。なお、特許請求の範囲に記載した文言によって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。また、上述したＥＣＵの他、当該ＥＣＵを構成要素とするシステム、当該ＥＣＵとしてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、リニアソレノイド制御方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【００７５】
１…リニアソレノイド制御装置（ＥＣＵ）、３…リニアソレノイド、５…上流側トランジスタ、７…下流側トランジスタ、９…電流検出用抵抗、１７…演算増幅器、２３…マイクロコンピュータ（マイコン）
【図１】
2016149456.tif 000004
【図２】
2016149456.tif 000005
【図３】
2016149456.tif 000006
【図４】
2016149456.tif 000007
【図５】
2016149456.tif 000008
【図６】
2016149456.tif 000009
【図７】
2016149456.tif 000010
【図８】
2016149456.tif 000011
【図９】
2016149456.tif 000012
【図１０】
2016149456.tif 000013