(57)【要約】【課題】誘導性負荷の電流制御のための処理負荷を低減する。【解決手段】リニアソレノイドの通電経路上のスイッチング手段を駆動するＰＷＭ信号のデューティ比を制御する装置では、ソレノイド電流に応じた電圧信号をＡ／Ｄ変換するＡ／Ｄ変換器を、ＰＷＭ信号の１周期時間Ｔｐよりも短い一定時間Ｔｓ毎に起動すると共に、その一定時間Ｔｓ毎のＡ／Ｄ変換値を、少なくとも、最新のものから１周期時間Ｔｐ分の数（この例では０番目〜９番目の１０個）だけメモリに更新して記憶する。そして、１周期時間Ｔｐ毎に実行するＦＢ演算処理では、メモリに記憶されている０番目〜９番目のＡ／Ｄ変換値のうちから、ＰＷＭ信号がローからハイになる直前のＡ／Ｄ変換値と、ＰＷＭ信号がハイからローになる直前のＡ／Ｄ変換値とを選択し、その選択した各Ａ／Ｄ変換値を用いて算出するソレノイド電流が目標値となるように、デューティ比を制御する。【選択図】図５
2014197622.tif 000002
【特許請求の範囲】
【請求項１】
誘導性負荷（３）に電流を流すための通電経路において前記誘導性負荷に対し直列に接続され、前記誘導性負荷に流れる電流を制御するためにＰＷＭ信号で駆動されるスイッチング手段（２１）と、
前記誘導性負荷に流れる電流に応じた電圧信号を出力する電流検出手段（２７，２９）と、
前記電流検出手段からの前記電圧信号をＡ／Ｄ変換するＡ／Ｄ変換手段（１３）と、
前記Ａ／Ｄ変換手段を前記ＰＷＭ信号の１周期時間よりも短い一定時間毎に起動する起動手段（５，Ｓ２１０）と、
前記Ａ／Ｄ変換手段による前記一定時間毎のＡ／Ｄ変換値を、少なくとも、最新のものから前記ＰＷＭ信号の１周期時間分の数だけメモリ（１１）に更新して記憶する保存手段（５，Ｓ２５０，Ｓ２８０）と、
前記一定時間よりも長い所定時間毎に動作して、前記メモリに記憶されたＡ／Ｄ変換値のうちから、前記ＰＷＭ信号が前記スイッチング手段をオフさせる方の非アクティブレベルから前記スイッチング手段をオンさせる方のアクティブレベルへ変化するオン切り替わりタイミングの直前のＡ／Ｄ変換値であるオン直前Ａ／Ｄ変換値と、前記ＰＷＭ信号が前記アクティブレベルから前記非アクティブレベルへ変化するオフ切り替わりタイミングの直前のＡ／Ｄ変換値であるオフ直前Ａ／Ｄ変換値とを選択すると共に、その選択した前記オン直前Ａ／Ｄ変換値及び前記オフ直前Ａ／Ｄ変換値を用いて、前記誘導性負荷に流れる電流を算出する電流算出手段（５，Ｓ３２０〜Ｓ３２９，Ｓ３３０〜Ｓ３３５）と、
前記電流算出手段による前記電流の算出値が目標値となるように前記ＰＷＭ信号のデューティ比を制御する制御手段（５，Ｓ３４０，Ｓ２３０）と、
を備えることを特徴とする誘導性負荷制御装置。
【請求項２】
請求項１に記載の誘導性負荷制御装置において、
前記電流算出手段は、前記ＰＷＭ信号の１周期時間毎に動作すること、
を特徴とする誘導性負荷制御装置。
【請求項３】
請求項１又は請求項２に記載の誘導性負荷制御装置において、
前記電流算出手段（５，Ｓ３２１〜Ｓ３２９，Ｓ３３３，Ｓ３３５）は、前記メモリに記憶されたＡ／Ｄ変換値のうちから、前記オン切り替わりタイミングの直後のＡ／Ｄ変換値であるオン直後Ａ／Ｄ変換値と、前記オフ切り替わりタイミングの直後のＡ／Ｄ変換値であるオフ直後Ａ／Ｄ変換値も選択し、その選択した前記オン直後Ａ／Ｄ変換値及び前記オフ直後Ａ／Ｄ変換値も用いて、前記電流を算出すること、
を特徴とする誘導性負荷制御装置。
【請求項４】
請求項３に記載の誘導性負荷制御装置において、
前記電流算出手段（５，Ｓ３２１〜Ｓ３２５，Ｓ３３３）は、前記オン直前Ａ／Ｄ変換値と前記オン直後Ａ／Ｄ変換値のうち、小さい方を選択すると共に、前記オフ直前Ａ／Ｄ変換値と前記オフ直後Ａ／Ｄ変換値のうち、大きい方を選択し、その選択した２つのＡ／Ｄ変換値から前記電流を算出すること、
を特徴とする誘導性負荷制御装置。
【請求項５】
請求項３に記載の誘導性負荷制御装置において、
前記電流算出手段（５，Ｓ３２１，Ｓ３２７，Ｓ３２９，Ｓ３３５）は、前記オン直前Ａ／Ｄ変換値と前記オン直後Ａ／Ｄ変換値の平均値を算出すると共に、前記オフ直前Ａ／Ｄ変換値と前記オフ直後Ａ／Ｄ変換値の平均値を算出し、その算出した２つの平均値から前記電流を算出すること、
を特徴とする誘導性負荷制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誘導性負荷に流れる電流を制御する装置に関する。
【背景技術】
【０００２】
リニアソレノイド等の誘導性負荷に流れる電流をフィードバック制御する従来の装置が、例えば特許文献１に記載されている。
特許文献１に記載されている従来の装置では、リニアソレノイドに電流を流すための通電経路において、リニアソレノイドに対し直列に、ＰＷＭ（パルス幅変調）信号で駆動される電流制御用のスイッチング素子を設けている。そして、上記通電経路に設けた電流検出抵抗により、リニアソレノイドに流れる電流に応じた電圧の電流検出信号を発生させ、その電流検出信号を、ＰＷＭ信号の１周期時間よりも短い一定時間毎に、Ａ／Ｄ変換器によりＡ／Ｄ変換（アナログ／デジタル変換）している。更に、電流検出信号のＡ／Ｄ変換が完了する毎に、ＣＰＵが、ＰＷＭ信号１周期分のＡ／Ｄ変換値を平均化する処理を行って、その処理で得た平均値を、実際の電流の算出（実電流値）としている。そして、ＣＰＵは、その電流の算出値が目標値となるように、スイッチング素子の駆動信号であるＰＷＭ信号のデューティ比を制御する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１１４０３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来の装置では、電流検出信号のＡ／Ｄ変換を実施する毎に、Ａ／Ｄ変換器からＡ／Ｄ変換値を取得する処理に加えて、ＰＷＭ信号１周期分のＡ／Ｄ変換値を平均化する処理を行うため、処理負荷が大きくなってしまう。
【０００５】
そこで本発明は、誘導性負荷制御装置において、誘導性負荷の電流制御のための処理負荷を低減することを目的としている。
【課題を解決するための手段】
【０００６】
第１発明の誘導性負荷制御装置は、誘導性負荷に電流を流すための通電経路において前記誘導性負荷に対し直列に接続され、前記誘導性負荷に流れる電流を制御するためにＰＷＭ信号で駆動されるスイッチング手段と、前記誘導性負荷に流れる電流に応じた電圧信号を出力する電流検出手段と、前記電流検出手段からの前記電圧信号をＡ／Ｄ変換するＡ／Ｄ変換手段と、前記Ａ／Ｄ変換手段を前記ＰＷＭ信号の１周期時間よりも短い一定時間毎に起動する起動手段と、前記Ａ／Ｄ変換手段による前記一定時間毎のＡ／Ｄ変換値を、少なくとも、最新のものから前記ＰＷＭ信号の１周期時間分の数だけメモリに更新して記憶する保存手段と、電流算出手段及び制御手段とを備える。
【０００７】
電流算出手段は、前記一定時間よりも長い所定時間毎に動作して、前記メモリに記憶されたＡ／Ｄ変換値のうちから、前記ＰＷＭ信号が前記スイッチング手段をオフさせる方の非アクティブレベルから前記スイッチング手段をオンさせる方のアクティブレベルへ変化するオン切り替わりタイミングの直前のＡ／Ｄ変換値であるオン直前Ａ／Ｄ変換値と、前記ＰＷＭ信号が前記アクティブレベルから前記非アクティブレベルへ変化するオフ切り替わりタイミングの直前のＡ／Ｄ変換値であるオフ直前Ａ／Ｄ変換値とを選択する。更に、電流算出手段は、その選択した前記オン直前Ａ／Ｄ変換値及び前記オフ直前Ａ／Ｄ変換値を用いて、前記誘導性負荷に流れる電流（以下、負荷電流ともいう）を算出する。そして、制御手段は、前記電流算出手段による前記電流の算出値が目標値となるように前記ＰＷＭ信号のデューティ比を制御する。
【０００８】
つまり、この装置では、Ａ／Ｄ変換の実施間隔よりも長い所定時間毎に、メモリに記憶されている複数のＡ／Ｄ変換値のうちから、オン直前Ａ／Ｄ変換値とオフ直前Ａ／Ｄ変換値とを選択し、その選択したＡ／Ｄ変換値を用いて、ＰＷＭ信号のデューティ比を決めるための負荷電流を算出している。
【０００９】
このため、Ａ／Ｄ変換を実施する毎に、ＰＷＭ信号１周期分のＡ／Ｄ変換値を平均化する処理を行う必要がなく、誘導性負荷を制御するための処理負荷を低減することができる。また、メモリに記憶された一定時間毎のＡ／Ｄ変換値のうち、オン直前Ａ／Ｄ変換値は、負荷電流の極小値を表すと考えられ、オフ直前Ａ／Ｄ変換値は、負荷電流の極大値を表すと考えられる。よって、オン直前Ａ／Ｄ変換値とオフ直前Ａ／Ｄ変換値とから、負荷電流を精度良く算出することができ、誘導性負荷の電流制御精度も確保することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態の電子制御装置（ＥＣＵ）の構成を表す構成図である。
【図２】第１実施形態の初期化処理を表すフローチャートである。
【図３】第１実施形態のタイマ割り込み処理を表すフローチャートである。
【図４】第１実施形態のＦＢ演算処理を表すフローチャートである。
【図５】第１実施形態の電子制御装置の作用を表すタイムチャートである。
【図６】第２実施形態のＦＢ演算処理を表すフローチャートである。
【図７】第３実施形態のＦＢ演算処理を表すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、本発明が適用された実施形態の、誘導性負荷制御装置としての電子制御装置について説明する。
尚、本実施形態の電子制御装置（以下、ＥＣＵという）は、例えば、自動車のエンジンと変速機を制御するものであり、変速機の制御として、変速機の変速状態を切り替えるリニアソレノイドの制御を行う。そして、ここでは、主にリニアソレノイドの制御に関する部分について説明する。
【００１２】
〔第１実施形態〕
図１に示すように、本実施形態のＥＣＵ１は、自動車のエンジンと変速機を制御するための処理を行うマイコン５を備えている。
【００１３】
そして、マイコン５は、ＣＰＵ７と、ＣＰＵ７が実行するプログラムや固定の制御データ等が記憶されたＲＯＭ９と、ＣＰＵ７による演算結果や演算対象データ等が記憶されるＲＡＭ１１と、割り込みコントローラ１２と、Ａ／Ｄ変換器（ＡＤＣ）１３と、Ａ／Ｄ変換器１３がＡ／Ｄ変換を完了する毎に、そのＡ／Ｄ変換器１３によるＡ／Ｄ変換値がソフトウェアを介さずに格納されると共に、ＣＰＵ７からアクセス可能なレジスタ（Ａ／Ｄ変換値用のレジスタ）１５と、変速機の変速状態を切り替えるリニアソレノイド３をデューティ制御するための、ＰＷＭ信号を生成して当該マイコン５の外部へ出力するＰＷＭ信号出力回路１７と、ＰＷＭ信号出力回路１７がＰＷＭ信号を生成するのに用いるＰＷＭデータが、ＣＰＵ７によって書き込まれるレジスタ（ＰＷＭデータ用のレジスタ）１９と、当該マイコン５における所定周波数の内部クロックでカウントアップされるフリーランタイマ（ＦＲＴ）２０とを備えている。
【００１４】
Ａ／Ｄ変換器１３は、複数の入力チャンネルを有しており、その入力チャンネル毎に、当該Ａ／Ｄ変換器１３の起動モードがＣＰＵ７によって設定可能となっている。その起動モードとしては、例えば、ＣＰＵ７からの起動指令によってその都度起動する第１モードと、ＣＰＵ７によって設定された一定時間毎に自動的に起動する第２モードとがある。そして、レジスタ１５も、Ａ／Ｄ変換器１３の入力チャンネル毎にそれぞれ設けられている。
【００１５】
また、ＣＰＵ７がレジスタ１９に書き込むＰＷＭデータは、ＰＷＭ信号の１周期時間（以下単に、周期ともいう）Ｔｐを表す周期データと、ＰＷＭ信号のデューティ比を表すデューティ比データとからなる。そして、デューティ比データは、ＰＷＭ信号の１周期において該ＰＷＭ信号をアクティブレベル（即ち、後述するスイッチング手段をオンして電源電圧からリニアソレノイド３に通電する方のレベルであり、本実施形態では例えばハイレベル）にする時間も間接的に示す。つまり、デューティ比データが示すデューティ比を、周期データが示す１周期時間Ｔｐに乗じた値が、ＰＷＭ信号のハイレベル時間（以下、オン時間という）になる。また、１周期時間Ｔｐから、そのオン時間を引いた時間が、ＰＷＭ信号のローレベル時間（以下、オフ時間という）になる。
【００１６】
そして、ＰＷＭ信号出力回路１７は、レジスタ１９に書き込まれたＰＷＭデータが示す周期及びデューティ比のＰＷＭ信号を生成して当該マイコン５の外部へ出力する。具体的には、ＰＷＭ信号出力回路１７は、出力するＰＷＭ信号の周期を、周期データが示す周期に設定すると共に、そのＰＷＭ信号の１周期において、該１周期の開始時からデューティ比データが示すオン時間は、ＰＷＭ信号の出力レベルをアクティブレベル（ハイレベル）にし、残りのオフ時間は、ＰＷＭ信号の出力レベルを非アクティブレベル（ローレベル）にする。尚、ＰＷＭ信号出力回路１７は、例えばフリーランタイマ２０を用いて、ＰＷＭ信号の周期、オン時間及びオフ時間の計測をする。
【００１７】
また、ＥＣＵ１は、電源電圧（本実施形態では、自動車のバッテリ電圧）ＶＢからリニアソレノイド３に電流を流すための通電経路を断続させるスイッチング手段として、例えばＰチャンネル形のＭＯＳＦＥＴ（以下単にＦＥＴという）２１を備えている。ＦＥＴ２１は、上記通電経路において、リニアソレノイド３に対し直列に且つリニアソレノイド３よりも上流側に、所謂ハイサイドスイッチとして設けられている。
【００１８】
そして、ＥＣＵ１は、ＦＥＴ２１をオン／オフさせる（駆動する）ためのトランジスタとして、コレクタがＦＥＴ２１のゲートに接続され、エミッタがグランドラインに接続されたＮＰＮトランジスタ２３を備えている。そのＮＰＮトランジスタ２３のベースには、ＰＷＭ信号出力回路１７によってマイコン５から出力されるＰＷＭ信号が、駆動信号として入力される。
【００１９】
更に、ＥＣＵ１は、ＦＥＴ２１のリニアソレノイド３側の端子（この例ではドレイン）にカソードが接続され、アノードがグランドラインに接続された電流環流用のダイオード２５と、リニアソレノイド３の下流側とグランドラインとの間に接続された電流検出用の抵抗２７と、抵抗２７の両端の電圧差を増幅して出力する増幅回路２９と、を備えている。
【００２０】
このようなハードウェア構成を有したＥＣＵ１では、マイコン５からのＰＷＭ信号がハイレベルであるときに、ＮＰＮトランジスタ２３がオンして、ＦＥＴ２１がオンすることにより、電源電圧ＶＢからリニアソレノイド３への通電経路が導通して、リニアソレノイド３に電流が流れる。また、ＰＷＭ信号がハイレベルからローレベルに切り替わると、ＮＰＮトランジスタ２３がオフして、ＦＥＴ２１がオフすることにより、電源電圧ＶＢからリニアソレノイド３への通電経路が遮断される。すると、リニアソレノイド３には、該リニアソレノイド３に蓄積されたフライバックエネルギー（逆起電力）により、グランドライン側からダイオード２５を経由して電流が流れる。
【００２１】
このため、リニアソレノイド３に流れる電流（以下、ソレノイド電流という）は、図５に示すように、ＰＷＭ信号がハイレベルになると増加し、ＰＷＭ信号がローレベルになると減少する。よって、ソレノイド電流は、ＰＷＭ信号のローレベルからハイレベルへの変化タイミング（１周期時間Ｔｐの開始タイミングでもあり、以下単に、オン切り替わりタイミングという）において、極小値となり、ＰＷＭ信号のハイレベルからローレベルへの変化タイミング（以下単に、オフ切り替わりタイミングという）において、極大値となる。そして、ＰＷＭ信号のデューティ比が大きいほど、ソレノイド電流の平均値は大きくなる。尚、ＦＥＴ２１は、ＰＷＭ信号によってオン／オフするため、ＰＷＭ信号は、ＮＰＮトランジスタ２３の駆動信号であると共に、ＦＥＴ２１の駆動信号でもある。
【００２２】
また、ＰＷＭ信号がハイレベルとローレベルとの何れの場合でも、ソレノイド電流は、抵抗２７にも流れるため、その抵抗２７の両端には、ソレノイド電流に比例した電圧（＝ソレノイド電流×抵抗２７の抵抗値）が生じる。
【００２３】
このため、増幅回路２９からは、ソレノイド電流に比例した電圧信号が、ソレノイド電流を表す電流検出信号として出力される。そして、ＥＣＵ１では、その増幅回路２９から出力される電流検出信号が、マイコン５に入力されて、Ａ／Ｄ変換器１３によりＡ／Ｄ変換される。
【００２４】
また、マイコン５には、エンジンと変速機の制御に用いられる情報を表す他の複数の信号も入力され、それらの信号のうち、アナログ信号は、電流検出信号と同様に、Ａ／Ｄ変換器１３によりＡ／Ｄ変換される。尚、電流検出信号と他のアナログ信号は、Ａ／Ｄ変換器１３の異なる入力チャンネルにそれぞれ入力される。そして、Ａ／Ｄ変換器１３は、電流検出信号については前述の第１モードで起動されてＡ／Ｄ変換し、他のアナログ信号については、第１モード又は第２モードで起動されてＡ／Ｄ変換する。
【００２５】
このようなＥＣＵ１において、マイコン５は、ソレノイド電流を目標値となるようにフィードバック制御する。具体的には、マイコン５は、ＦＥＴ２１をオン／オフさせるＰＷＭ信号の１周期時間Ｔｐよりも短い一定時間Ｔｓ毎に、タイマ割り込みを発生させ、そのタイマ割り込みの処理により、Ａ／Ｄ変換器１３に増幅回路２９からの電流検出信号をＡ／Ｄ変換させる。そして、マイコン５は、その電流検出信号のＡ／Ｄ変換値に基づいて、実際のソレノイド電流が目標値となるように、ＰＷＭ信号のデューティ比を制御する。
【００２６】
そこで次に、マイコン５がリニアソレノイド３を制御するために行う処理について、フローチャートを用い説明する。尚、マイコン５が行う処理は、実際には、ＣＰＵ７がＲＯＭ９内のプログラムを実行することで行う処理である。
【００２７】
まず、マイコン５は、ＥＣＵ１に電源電圧が供給されて起動すると、図２の初期化処理を行う。
そして、図２に示すように、マイコン５は、初期化処理を開始すると、まずＳ１１０にて、タイマ割り込みの初回の発生タイミングを設定する。
【００２８】
具体的に説明すると、マイコン５において、割り込みコントローラ１２は、フリーランタイマ２０の値（以下、フリーランタイマ値という）と比較されるコンペアレジスタ３１を備えている。そして、割り込みコントローラ１２は、フリーランタイマ値がコンペアレジスタ３１の値と一致すると、当該マイコン５内でタイマ割り込みを発生させる。具体的なアクションとしては、タイマ割り込みの要求信号を出力する。すると、ＣＰＵ７は、そのタイマ割り込みに対してＲＯＭ９に用意されたプログラムの処理であるタイマ割り込みの処理（以下、タイマ割り込み処理という）を実行する。
【００２９】
このため、マイコン５は、Ｓ１１０にて、コンペアレジスタ３１に、タイマ割り込みを発生させるタイミングに該当する値（詳しくは、現在からタイマ割り込みを発生させるタイミングまでの時間を上記内部クロックの周期で割った値を、現在のフリーランタイマ値に加えた値）を書き込み、割り込みを許可する。
【００３０】
また、このＳ１１０では、図５における時刻ｔ１であって、最初のオン切り替わりタイミングである時刻ｔ２よりも微小な所定時間Ｔｂ（本実施形態では、例えば１００μｓ）だけ前の時刻ｔ１に、タイマ割り込みを発生させる値を、コンペアレジスタ３１に書き込む。
【００３１】
尚、時刻ｔ２は、プログラムの設計上、既知である。また、本実施形態では、マイコン５が起動してから最初のＰＷＭ信号のデューティ比を、０に設定するようになっている。図５において、ＰＷＭ信号が時刻ｔ２のオン切り替わりタイミングでハイになっていないのは、このためである。また、図５の１段目（「タイマ」の段）は、タイマ割り込みが発生する毎にフリーランタイマ値が０に戻ると仮定して、フリーランタイマ値の変化状態を表している。
【００３２】
そして、マイコン５は、次のＳ１２０にて、後述する図３のタイマ割り込み処理で参照されるカウンタＣＮＴの値を０に設定する。カウンタＣＮＴは、ＰＷＭ信号の１周期時間Ｔｐにおけるタイマ割り込み回数を数えるためのカウンタである。
【００３３】
次に、マイコン５は、Ｓ１３０にて、Ａ／Ｄ変換機能の初期設定を行う。具体的には、Ａ／Ｄ変換器１３の各入力チャンネルについて、起動モードを設定すると共に、起動モードを前述の第２モードに設定した入力チャンネルについては、Ａ／Ｄ変換器１３を自動的に起動する時間間隔も設定する。そして、電流検出信号の入力チャンネルについては第１モードに設定し、後述する図３のタイマ割り込み処理により、Ａ／Ｄ変換器１３を起動して、その電流検出信号のＡ／Ｄ変換が実施されるようにする。
【００３４】
尚、以下の説明において、「Ａ／Ｄ変換器１３を起動する」ということは、電流検出信号の入力チャンネルについてＡ／Ｄ変換器１３を起動するということであり、複数のアナログ信号のうちの電流検出信号をＡ／Ｄ変換させるためにＡ／Ｄ変換器１３を起動するということである。そして、以下の説明におけるレジスタ１５は、電流検出信号の入力チャンネルに対応するレジスタ１５であって、電流検出信号のＡ／Ｄ変換値が格納されるレジスタ１５のことである。更に、Ａ／Ｄ変換値とは、電流検出信号のＡ／Ｄ変換値である。
【００３５】
次に、マイコン５は、Ｓ１４０にて、ＰＷＭ出力機能の初期設定を行う。具体的には、ＰＷＭデータの初期値（即ち、ＰＷＭ信号の周期とデューティ比との初期値）をレジスタ１９に書き込むと共に、前述の時刻ｔ２（図５参照）でＰＷＭ信号出力回路１７が動作を開始するように内部設定を行う。尚、ＰＷＭデータのうち、デューティ比データの初期値としては、０を書き込む。また、周期データの初期値としては、例えば３００ヘルツに相当する３．３３ｍｓに該当する値を書き込む。また、本実施形態において、ＰＷＭ信号の１周期時間Ｔｐは、このＳ１４０で設定される初期値（この例では３．３３ｍｓ）から変更されることはないが、マイコン５の動作中にＰＷＭ信号の１周期時間Ｔｐを変更することも可能である。
【００３６】
そして、マイコン５は、上記Ｓ１４０の処理を行った後、当該初期化処理を終了し、その後は、割り込みコントローラ１２によってタイマ割り込みが発生される毎に、図３のタイマ割り込み処理を行う。尚、この例では、タイマ割り込みの発生間隔である一定時間Ｔｓを、ＰＷＭ信号の１周期時間Ｔｐの１／１０にしている。このため、１周期時間Ｔｐあたりにタイマ割り込み処理が実行される回数（電流検出信号をＡ／Ｄ変換する回数でもある）は１０回であるが、その回数は１０回に限らず、他の整数回でも良い。
【００３７】
図３に示すように、マイコン５は、タイマ割り込み処理を開始すると、まずＳ２１０にて、Ａ／Ｄ変換器１３を起動して該Ａ／Ｄ変換器１３に電流検出信号をＡ／Ｄ変換させる。
【００３８】
次に、マイコン５は、Ｓ２２０にて、カウンタＣＮＴの値が０であるか否かを判定し、カウンタＣＮＴの値が０であれば、今回のＳ２１０によるＡ／Ｄ変換が、０番目から９番目までのＡ／Ｄ変換のうち、０番目のＡＤ変換であると判定して、Ｓ２３０に進む。
【００３９】
マイコン５は、Ｓ２３０では、レジスタ１９内のＰＷＭデータを更新する。
具体的には、マイコン５は、図５において☆印で示しているように、ＰＷＭ信号のデューティ比を算出するＦＢ演算処理（ＦＢはフィードバックの略）を、一定時間Ｔｓよりも長い所定時間毎（本実施形態では、１周期時間Ｔｐ毎）に実行するようになっている。尚、ＦＢ演算処理については後で図４を用い説明する。そして、マイコン５は、Ｓ２３０では、レジスタ１９内のＰＷＭデータのうち、デューティ比データを、ＦＢ演算処理で算出した最新のデューティ比を表すデータに書き換える。但し、マイコン５が起動してから最初のタイマ割り込み処理は、図５における時刻ｔ１で実行され、その時刻ｔ１では、未だＦＢ演算処理が一度も実行されていないこととなる。このため、マイコン５が起動してから最初のタイマ割り込み処理におけるＳ２３０では、図２のＳ１４０と同様に、レジスタ１９内のデューティ比データを０に設定する。
【００４０】
次に、マイコン５は、Ｓ２５０にて、レジスタ１５から今回のＡ／Ｄ変換値を読み出して、そのＡ／Ｄ変換値を、ＲＡＭ１１におけるＡ／Ｄ変換値用の記憶領域のうち、ＡＤ［ＣＮＴ］という領域に記憶する。尚、ＡＤ［ＣＮＴ］の［  ］内は、カウンタＣＮＴの値を示す。また、ＡＤ［ＣＮＴ］としては、ＡＤ［０］〜ＡＤ［９］が用意されており、つまりは、Ａ／Ｄ変換値を、少なくとも最新のものからＰＷＭ信号の１周期時間Ｔｐ分の数（この例では１０個）だけ更新して記憶できるようになっている。
【００４１】
次に、マイコン５は、Ｓ２６０にて、カウンタＣＮＴをインクリメント（＋１）した後、Ｓ２７０に進む。
マイコン５は、Ｓ２７０では、タイマ割り込みの次回の発生タイミングを、今回のタイマ割り込みの発生タイミングから一定時間Ｔｓ後となるように設定する。具体的には、今回のタイマ割り込みが発生したタイミングでのフリーランタイマ値に、タイマ割り込みの発生間隔である一定時間Ｔｓに相当する値（詳しくは、一定時間Ｔｓを上記内部クロックの周期で割った値）を加算した値を、コンペアレジスタ３１に書き込む。そして、その後、マイコン５は、当該タイマ割り込み処理を終了する。
【００４２】
また、マイコン５は、上記Ｓ２２０にて、カウンタＣＮＴの値が０ではないと判定した場合には、Ｓ２４０に移行して、カウンタＣＮＴの値が９であるか否かを判定する。そして、カウンタＣＮＴの値が９でなければ（即ち、１〜８の何れかであれば）、上記Ｓ２５０〜Ｓ２７０の処理を行った後、当該タイマ割り込み処理を終了する。
【００４３】
また、マイコン５は、上記Ｓ２４０にて、カウンタＣＮＴの値が９であると判定した場合には、Ｓ２８０に進み、レジスタ１５から今回のＡ／Ｄ変換値を読み出して、そのＡ／Ｄ変換値をＡＤ［９］に記憶し、次のＳ２９０にて、カウンタＣＮＴの値を０にする。そして、上記Ｓ２７０の処理を行った後、当該タイマ割り込み処理を終了する。
【００４４】
このようなタイマ割り込み処理は、図２の初期化処理におけるＳ１１０のタイミング設定により、図５における時刻ｔ１で最初に実行され、その後は、当該タイマ割り込み処理におけるＳ２７０のタイミング設定により、一定時間Ｔｓ毎に実行される。
【００４５】
そして、タイマ割り込み処理が実行される毎に、Ａ／Ｄ変換器１３が起動されて（Ｓ２１０）、電流検出信号がＡ／Ｄ変換されると共に、各回のＡ／Ｄ変換値が、ＲＡＭ１１におけるＡＤ［０］〜ＡＤ［９］の各々に記憶されることとなる（Ｓ２５０，Ｓ２８０）。
【００４６】
また、カウンタＣＮＴの値がｎ（ｎは０〜９の何れか）である場合に実行が開始されるタイマ割り込み処理を、ｎ番目のタイマ割り込み処理と称することにすると、０番目のタイマ割り込み処理の実行タイミングから、オン切り替わりタイミングまでの時間は、図５に示すように、前述の所定時間Ｔｂである。尚、図５においては、カウンタＣＮＴの値としての０〜９が付された一定時間Ｔｓ毎の各タイミングが、タイマ割り込み処理の実行タイミングを示しており、それらのうち、０が付されたタイミングが、０番目のタイマ割り込み処理の実行タイミングである。
【００４７】
そして、この例において、一定時間Ｔｓは、３３３μｓ（＝Ｔｐ／１０＝３．３３ｍｓ／１０）であり、所定時間Ｔｂ（＝１００μｓ）よりも長い。
よって、０番目から９番目のタイマ割り込み処理のうちでは、０番目のタイマ割り込み処理が、オン切り替わりタイミングの直前に実行されるタイマ割り込み処理となる。また、１番目のタイマ割り込み処理が、オン切り替わりタイミングの直後に実行されるタイマ割り込み処理となる。
【００４８】
このため、ＡＤ［０］〜ＡＤ［９］に記憶されるＡ／Ｄ変換値のうち、ＡＤ［０］に記憶されるＡ／Ｄ変換値は、オン切り替わりタイミングの直前のＡ／Ｄ変換値（以下、オン直前Ａ／Ｄ変換値という）となる。そして、ＡＤ［１］に記憶されるＡ／Ｄ変換値は、オン切り替わりタイミングの直後のＡ／Ｄ変換値（以下、オン直後Ａ／Ｄ変換値という）となる。ＡＤ［０］〜ＡＤ［９］に記憶されるＡ／Ｄ変換値は、既知の一定時間Ｔｓ毎に且つ［  ］内の値の順番でＡ／Ｄ変換された値であるため、ＰＷＭ信号の１周期におけるどのタイミングでのＡ／Ｄ変換値であるかが特定可能である。このため、以下の説明では、ＡＤ［ｎ］に記憶されるＡ／Ｄ変換値のことを、ｎ番目のＡ／Ｄ変換値ともいう。
【００４９】
以上のことを踏まえて、図４のＦＢ演算処理について説明する。
本実施形態では、図５において☆印で示しているように、ＦＢ演算処理は、ＰＷＭ信号の１周期時間Ｔｐと同じ時間毎に、且つ、例えば９番目のタイマ割り込み処理と０番目のタイマ割り込み処理との間のタイミングで実行される。
【００５０】
そして、マイコン５は、ＦＢ演算処理を開始すると、Ｓ３２０にて、レジスタ１９に現在設定しているＰＷＭデータ（１周期時間Ｔｐ及びデューティ比）に基づいて、０番目〜９番目のＡ／Ｄ変換値のうちから、オン直前Ａ／Ｄ変換値と、オフ切り替わりタイミングの直前のＡ／Ｄ変換値（以下、オフ直前Ａ／Ｄ変換値という）とを選択して取得する。
【００５１】
具体的に説明すると、オン直前Ａ／Ｄ変換値としては、前述の理由により、ＡＤ［０］内のＡ／Ｄ変換値（０番目のＡ／Ｄ変換値）を選択して、ＡＤ［０］から取得する。
また、オフ直前Ａ／Ｄ変換値については、まず、ＰＷＭ信号の１周期時間Ｔｐ及びデューティ比からＰＷＭ信号のオン時間Ｔｏｎを求め、「Ｔｓ×ｍ＜Ｔｂ＋Ｔｏｎ」の関係を満たす最大のｍ（ｍは０〜９の何れか）を求める。そして、オフ直前Ａ／Ｄ変換値としては、その求めたｍ番目のＡ／Ｄ変換値を選択して、ＡＤ［ｍ］から取得する。例えば、図５における☆印のうち、右側の☆印のタイミングで実行されるＦＢ演算処理では、ＡＤ［５］内のＡ／Ｄ変換値（５番目のＡ／Ｄ変換値）を、オフ直前Ａ／Ｄ変換値として選択することとなる。
【００５２】
尚、他の例として、０番目〜９番目のＡ／Ｄ変換値のうち、オフ直前Ａ／Ｄ変換値がどれであるかを、オン時間Ｔｏｎに応じて選択するためのテーブルを用意しておき、そのテーブルを用いて目的のＡ／Ｄ変換値を選択する（特定する）ようになっていても良い。
【００５３】
また、当該ＦＢ演算処理の実行時において、ＰＷＭ信号がハイレベルである場合（つまり、今回のオフ切り替わりタイミングが未だ到来していない場合）には、Ｓ３２０では、オフ直前Ａ／Ｄ変換値として、前回のＳ３２０で選択したＡ／Ｄ変換値をＲＡＭ１１から取得し直す。また、当該ＦＢ演算処理の実行時において、ＰＷＭ信号のデュー比ティが０に設定されている場合には、オフ直前Ａ／Ｄ変換値として、例えば、予め定められた所定番目のＡ／Ｄ変換値（例えば０番目又は１番目のＡ／Ｄ変換値）を選択する。
【００５４】
次に、マイコン５は、Ｓ３３０にて、上記Ｓ３２０で取得した各Ａ／Ｄ変換値を用いて、ソレノイド電流を算出する。例えば、Ｓ３２０で取得した各Ａ／Ｄ変換値の平均値を、ソレノイド電流の検出値として算出する。また他の例として、例えば、取得した各Ａ／Ｄ変換値に異なる定数を乗じた値を加算し、その加算値を所定数で割った値を、ソレノイド電流の検出値として算出しても良い。
【００５５】
そして、マイコン５は、次のＳ３４０にて、Ｓ３３０で求めたソレノイド電流の算出値を目標値にするためのＦＢ演算により、ＰＷＭ信号のデューティ比を算出する。そのＦＢ演算では、目標値からソレノイド電流の算出値を引いた偏差に応じて、偏差が正であればデューティ比を大きくし、偏差が負であればデューティ比を小さくする。そして、その後、マイコン５は、当該ＦＢ演算処理を終了する。
【００５６】
上記Ｓ３４０で算出されるデューティ比は、０番目のタイマ割り込み処理におけるＳ２３０にて、レジスタ１９にデューティ比データとして書き込まれ、その書き込み後のＰＷＭ信号１周期におけるデューティ比として反映される。
【００５７】
また、マイコン５が起動してから当該ＦＢ演算処理が１回目に実行された場合（図５における☆印のうち、左側の☆印のタイミングで当該ＦＢ演算処理が実行された場合）には、有効なＡ／Ｄ変換値が無いため、Ｓ３４０では、デューティ比の算出値を、例えば予め定められた通電開始用のデューティ比（例えば５０％）にする。
【００５８】
以上のようなＥＣＵ１において、マイコン５は、ＰＷＭ信号の１周期時間Ｔｐよりも短い一定時間Ｔｓ（＝Ｔｐ／１０）毎のタイマ割り込み処理により、Ａ／Ｄ変換器１３を起動して電流検出信号のＡ／Ｄ変換を実施すると共に、各回のＡ／Ｄ変換値を、ＲＡＭ１１におけるＡＤ［０］〜ＡＤ［９］の各々に記憶する。このため、ＲＡＭ１１のＡＤ［０］〜ＡＤ［９］には、一定時間Ｔｓ毎のＡ／Ｄ変換値が、最新のものから１周期時間Ｔｐ分の数だけ更新して記憶される。
【００５９】
そして、マイコン５は、１周期時間Ｔｐと同じ時間毎のＦＢ演算処理では、ＰＷＭ信号の１周期時間Ｔｐ及びデューティ比の現在設定値に基づいて、ＡＤ［０］〜ＡＤ［９］内のＡ／Ｄ変換値のうちから、オン直前Ａ／Ｄ変換値と、オフ直前Ａ／Ｄ変換値とを選択する（Ｓ３２０）。その選択される２つのＡ／Ｄ変換値のうち、オン直前Ａ／Ｄ変換値は、ソレノイド電流の極小値を表すと考えられ、オフ直前Ａ／Ｄ変換値は、ソレノイド電流の極大値を表すと考えられる。このため、マイコン５は、ＦＢ演算処理では、例えば、選択した２つのＡ／Ｄ変換値の平均値をソレノイド電流の検出値として算出し（Ｓ３３０）、その算出値を目標値にするためのデューティ比を算出する（Ｓ３４０）。
【００６０】
そして、ＦＢ演算処理で算出されたデューティ比は、０番目〜９番目のタイマ割り込み処理のうち、オン切り替わりタイミングの直前に実行される０番目のタイマ割り込み処理にて、レジスタ１９にデューティ比データとして書き込まれる（Ｓ２３０）。よって、ＦＢ演算処理で算出されたデューティ比は、そのＦＢ演算処理の実行後に最初に到来するオン切り替わりタイミングからのＰＷＭ信号のデューティ比として反映される。
【００６１】
図５を用いて具体例を説明する。マイコン５は、図５における☆印のうち、例えば右側の☆印のタイミングでＦＢ演算処理を実行した場合には、時刻ｔ３でのＡ／Ｄ変換値であるＡＤ［０］内のＡ／Ｄ変換値を、オン直前Ａ／Ｄ変換値として選択し、時刻ｔ４でのＡ／Ｄ変換値であるＡＤ［５］内のＡ／Ｄ変換値を、オフ直前Ａ／Ｄ変換値として選択することとなる。更に、マイコン５は、その選択した２つのＡ／Ｄ変換値から、ソレノイド電流を目標値にするためのデューティ比を算出することとなる。そして、その回のＦＢ演算処理で算出されたデューティ比は、時刻ｔ５でのタイマ割り込みによってレジスタ１９に設定されるため、時刻ｔ５の次のオン切り替わりタイミングである時刻ｔ６から１周期が始まるＰＷＭ信号のデューティ比となる。
【００６２】
このようなＥＣＵ１では、ＲＡＭ１１に記憶した一定時間Ｔｓ毎の複数のＡ／Ｄ変換値のうちから、オン直前Ａ／Ｄ変換値とオフ直前Ａ／Ｄ変換値とを選択し、その選択したＡ／Ｄ変換値を用いて、ＰＷＭ信号のデューティ比を決めるためのソレノイド電流を算出している。
【００６３】
このため、Ａ／Ｄ変換を実施する毎に、ＰＷＭ信号１周期分のＡ／Ｄ変換値を平均化する処理を行う必要がなく、誘導性負荷としてのリニアソレノイド３を制御するための処理負荷を低減することができる。また、選択されるオン直前Ａ／Ｄ変換値とオフ直前Ａ／Ｄ変換値との各々は、リニアソレノイドの極小値と極大値とを表すこととなり、その各Ａ／Ｄ変換値からソレノイド電流を精度良く算出することができる。よって、リニアソレノイド３の電流制御精度も確保することができる。
【００６４】
尚、ＦＢ演算処理の実行間隔は、Ａ／Ｄ変換を実施する一定時間Ｔｓよりも長い時間であれば良いが、上記例のようにＰＷＭ信号の１周期時間Ｔｐと同じ時間であれば、無駄も無いし制御精度も良いため、最も効率が良い。
【００６５】
また、ＦＢ演算処理の実行タイミングは、図５に示したタイミング（☆印）以外でも良い。但し、ＦＢ演算処理の実行タイミングは、図５のように、ＰＷＭ信号の１周期におけるＡ／Ｄ変換タイミングのうち、オン切り替わりタイミングの２つ前のＡ／Ｄ変換タイミング（図５の例では９番目のＡ／Ｄ変換のタイミング）と、オン切り替わりタイミングの１つ前のＡ／Ｄ変換タイミング（図５の例では０番目のＡ／Ｄ変換のタイミング）との間に設定するのが好ましい。ＰＷＭ信号のデューティ比が大きくなっても、その回の周期におけるソレノイド電流を、次の周期のデューティ比に反映させ易くなるからである。
【００６６】
また、ＲＡＭ１１に記憶するＡ／Ｄ変換値の数は、ＰＷＭ信号の１周期時間Ｔｐ分の数より多くても良いが、上記例のように１周期時間Ｔｐ分の数にすれば、使用するメモリ資源を最小に抑えることができる。
【００６７】
〔第２実施形態〕
次に、第２実施形態のＥＣＵについて説明するが、ＥＣＵの符号としては、第１実施形態と同じ“１”を用いる。また、第１実施形態と同様の構成要素や処理についても、第１実施形態と同じ符号を用いる。そして、このことは、後述する他の実施形態についても同様である。
【００６８】
第２実施形態のＥＣＵ１は、第１実施形態のＥＣＵ１と比較すると、マイコン５が、図４のＦＢ演算処理に代えて、図６のＦＢ演算処理を実行する点が異なる。
マイコン５は、図６のＦＢ演算処理では、Ｓ３２１にて、図４のＳ３２０と同様に、レジスタ１９に現在設定しているＰＷＭデータ（１周期時間Ｔｐ及びデューティ比）に基づいて、０番目〜９番目のＡ／Ｄ変換値のうちから、オン直前Ａ／Ｄ変換値と、オフ直前Ａ／Ｄ変換値と、を選択して取得する。そして更に、Ｓ３２１では、オン直後Ａ／Ｄ変換値と、オフ切り替わりタイミングの直後のＡ／Ｄ変換値（以下、オフ直後Ａ／Ｄ変換値という）との各々も、選択して取得する。
【００６９】
具体的に説明すると、オン直後Ａ／Ｄ変換値としては、オン直前Ａ／Ｄ変換値の次のＡ／Ｄ変換値（即ち、１番目のＡ／Ｄ変換値）を選択する。同様に、オフ直後Ａ／Ｄ変換値としては、オフ直前Ａ／Ｄ変換値の次のＡ／Ｄ変換値を選択する。例えば、図５における☆印のうち、右側の☆印のタイミングで実行されるＦＢ演算処理では、ＡＤ［６］内のＡ／Ｄ変換値（６番目のＡ／Ｄ変換値）を、オフ直後Ａ／Ｄ変換値として選択することとなる。
【００７０】
尚、当該ＦＢ演算処理の実行時において、ＰＷＭ信号がハイレベルである場合には、Ｓ３２１では、オフ直前Ａ／Ｄ変換値及びオフ直後Ａ／Ｄ変換値の各々として、前回のＳ３２１で選択したＡ／Ｄ変換値をＲＡＭ１１から取得し直す。また、当該ＦＢ演算処理の実行時において、ＰＷＭ信号のデュー比ティが０に設定されている場合には、オフ直前Ａ／Ｄ変換値及びオフ直後Ａ／Ｄ変換値の各々として、例えば、予め定められた所定番目のＡ／Ｄ変換値（例えば２番目と３番目のＡ／Ｄ変換値）を選択する。
【００７１】
そして、マイコン５は、次のＳ３２３にて、Ｓ３２１で取得したオン直前Ａ／Ｄ変換値とオン直後Ａ／Ｄ変換値のうち、小さい方を選択し、続くＳ３２５にて、Ｓ３２１で取得したオフ直前Ａ／Ｄ変換値とオフ直後Ａ／Ｄ変換値のうち、大きい方を選択する。
【００７２】
次に、マイコン５は、Ｓ３３３にて、Ｓ３２３で選択したＡ／Ｄ変換値とＳ３２５で選択したＡ／Ｄ変換値とを用いて、図４のＳ３３０と同様の処理により、ソレノイド電流を算出する。例えば、Ｓ３２３とＳ３２５とで選択した各Ａ／Ｄ変換値の平均値を、ソレノイド電流の検出値として算出する。そして、マイコン５は、Ｓ３４０では、上記Ｓ３３３で求めたソレノイド電流の算出値を目標値にするためのＦＢ演算により、ＰＷＭ信号のデューティ比を算出し、その後、当該ＦＢ演算処理を終了する。
【００７３】
このような第２実施形態のＥＣＵ１では、オン切り替わりタイミングからＦＥＴ２１が実際にオンするまでの遅れ時間が大きくなって、オン直前Ａ／Ｄ変換値よりもオン直後Ａ／Ｄ変換値の方が小さくなった場合に、そのオン直後Ａ／Ｄ変換値が、ソレノイド電流の極小値を表すＡ／Ｄ変換値として選択される。同様に、オフ切り替わりタイミングからＦＥＴ２１が実際にオフするまでの遅れ時間が大きくなって、オフ直前Ａ／Ｄ変換値よりもオフ直後Ａ／Ｄ変換値の方が大きくなった場合に、そのオフ直後Ａ／Ｄ変換値が、ソレノイド電流の極大値を表すＡ／Ｄ変換値として選択される。
【００７４】
このため、第１実施形態のＥＣＵ１と比較すると、ソレノイド電流の算出精度を向上させることができ、延いては、リニアソレノイド３の制御精度を向上させることができる。
〔第３実施形態〕
第３実施形態のＥＣＵ１は、第２実施形態のＥＣＵ１と比較すると、マイコン５が、図６のＦＢ演算処理に代えて、図７のＦＢ演算処理を実行する点が異なる。
【００７５】
そして、図７のＦＢ演算処理は、図６のＦＢ演算処理と比較すると、Ｓ３２３，Ｓ３２５，Ｓ３３３の各々に代えて、Ｓ３２７，Ｓ３２９，Ｓ３３５の処理が行われる点が異なる。
【００７６】
図７に示すように、マイコン５は、Ｓ３２７では、Ｓ３２１で取得したオン直前Ａ／Ｄ変換値とオン直後Ａ／Ｄ変換値の平均値を算出し、Ｓ３２９では、Ｓ３２１で取得したオフ直前Ａ／Ｄ変換値とオフ直後Ａ／Ｄ変換値の平均値を算出する。そして、マイコン５は、Ｓ３３５では、Ｓ３２７で算出した平均値とＳ３２９で算出した平均値とを用いて、図４のＳ３３０と同様の処理により、ソレノイド電流を算出する。例えば、Ｓ３２７とＳ３２９とで算出した各平均値の平均値を、ソレノイド電流の検出値として算出する。尚、マイコン５は、Ｓ３４０では、Ｓ３３５で求めたソレノイド電流の算出値を用いて、デューティ比を算出する。
【００７７】
このような第３実施形態のＥＣＵ１では、オン直前Ａ／Ｄ変換値とオン直後Ａ／Ｄ変換値とのうち、ソレノイド電流の極小値を表す方よりも、他方がノイズによって小さくなったとしても、それらの平均値がソレノイド電流を算出するために用いられる。同様に、オフ直前Ａ／Ｄ変換値とオフ直後Ａ／Ｄ変換値とのうち、ソレノイド電流の極大値を表す方よりも、他方がノイズによって大きくなったとしても、それらの平均値がソレノイド電流を算出するために用いられる。
【００７８】
このため、第２実施形態のＥＣＵ１と比較すると、ソレノイド電流の算出精度において、ノイズの影響を抑制することができる。
以上、本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されず、特許請求の範囲に記載された本発明の要旨の範囲において、種々の態様で実施することができ、前述した実施形態の構成や処理のうちの、何れかの組み合わせを変える変形や、一部を削除する変形等を行うことも可能である。また、前述した数値も一例である。
【００７９】
例えば、前述の例では、タイマ割り込み処理によってＡ／Ｄ変換器１３を起動したが、Ａ／Ｄ変換器１３は、ソフトウェアによらない前述の第２モードで一定時間毎に起動されるようにしても良い。その場合、マイコン５は、例えば、図３のタイマ割り込み処理からＳ２１０，Ｓ２７０の処理を除いた処理を、Ａ／Ｄ変換が完了する毎に起床されるＡ／Ｄ変換完了割り込みの処理として実行すれば良い。更に、Ａ／Ｄ変換が完了する毎に、ソフトウェアによらずカウントアップされるカウンタを、カウンタＣＮＴとして用いれば、Ｓ２６０のインクリメント処理を省略することができる。
【００８０】
また、Ａ／Ｄ変換器１３により抵抗２７の両端の各電圧（上流側電圧と下流側電圧）を、ソレノイド電流に応じた電圧信号としてＡ／Ｄ変換し、その両Ａ／Ｄ変換値の差を、ソレノイド電流を表すＡ／Ｄ変換値して処理する構成を採っても良い。
【００８１】
また、スイッチング手段としては、例えば、Ｎチャンネル形のＭＯＳＦＥＴでも良く、バイポーラトランジスタやＩＧＢＴ等の他の種類のスイッチング素子でも良い。
また、制御対象の誘導性負荷は、変速機の変速状態を切り替えるリニアソレノイド３に限らず、流れる電流を制御すべき他の誘導性負荷であっても良い。
【００８２】
また、上記実施形態では、起動手段、保存手段、電流算出手段及び制御手段の各々を、マイコン５によって実現したが、それら手段の１つ以上は、例えば、ソフトウェアを利用しない専用のハードウェア回路で実現しても良い。また、メモリとしては、ＲＡＭ１１以外の書き換え可能なメモリやレジスタでも良い。
【符号の説明】
【００８３】
３…リニアソレノイド、５…マイコン、１１…ＲＡＭ、１３…Ａ／Ｄ変換器、２１…ＦＥＴ、２７…抵抗、２９…増幅回路
【図１】
2014197622.tif 000003
【図２】
2014197622.tif 000004
【図３】
2014197622.tif 000005
【図４】
2014197622.tif 000006
【図５】
2014197622.tif 000007
【図６】
2014197622.tif 000008
【図７】
2014197622.tif 000009