(57)【特許請求の範囲】
【請求項１】
一定周期で生成されたパルス幅変調信号にて通電制御される誘導性負荷に実際に流れ前記一定周期で変化する電流を検出する検出手段と、
予め設定されたＡ／Ｄ変換周期時間毎に、前記検出手段からの検出信号を継続的にデジタル値に変換するＡ／Ｄ変換手段と、
該Ａ／Ｄ変換手段にてデジタル値に変換された検出電流値が目標電流値となるように前記パルス幅変調信号のデューティ比を制御する制御手段と、
を備えた誘導性負荷の電流制御装置において、
前記Ａ／Ｄ変換手段にてデジタル値に変換された検出電流値を記憶するためのものであって、前記パルス幅変調信号の周期時間Ｔに相当する所定個数の記憶領域からなる電流値記憶手段を備え、
前記Ａ／Ｄ変換手段は、前記検出手段からの検出信号を、前記パルス幅変調信号の周期時間Ｔよりも短いＡ／Ｄ変換周期時間ｔ（但し、Ｔ／ｔは整数）毎にデジタル値に変換すると共に、該変換した検出電流値を、前記電流値記憶手段の前記所定個数の記憶領域に順次記憶するようにして継続的に更新するものであって、
前記制御手段は、所定の演算周期毎に、前記電流値記憶手段に記憶されていた前記検出電流値を、前記パルス幅変調信号の周期時間Ｔに相当する前記所定個数の記憶領域分取り込み、該取り込んだ検出電流値を算術平均することにより、該周期時間Ｔ内の平均電流値を算出する平均電流演算手段を備え、
該平均電流演算手段は、前記電流値記憶手段から取り込んだパルス幅変調信号周期時間Ｔ相当分の検出電流値の中に異常な電流値があるか否かを判定する異常判定手段を備え、該異常判定手段にて異常電流値があると判断された場合には、該異常電流値を前記平均電流値の算出に用いないものであり、
前記平均電流演算手段が算出した平均電流値と前記目標電流値とに基づき前記パルス幅変調信号のデューティ比を制御することを特徴とする誘導性負荷の電流制御装置。
【請求項２】
前記平均電流演算手段は、前記パルス幅変調信号の周期時間Ｔ分の検出電流値として、２n個の検出電流値を取り込み、該検出電流値の総和を算出し、該総和から前記平均電流値を算出することを特徴とする請求項１記載の誘導性負荷の電流制御装置。
【請求項３】
前記平均電流演算手段は、前記異常判定手段にて異常電流値があると判断された場合には、前記Ａ／Ｄ変換手段にて該異常電流値の前・後にＡ／Ｄ変換された検出電流値から、異常電流値のＡ／Ｄ変換タイミングでの正常電流値を推定し、前記平均電流値の算出には、前記異常電流値に代えて該推定した電流値を用いることを特徴とする請求項１記載の誘導性負荷の電流制御装置。
【請求項４】
前記検出手段から前記Ａ／Ｄ変換手段への信号入力経路に、高周波ノイズ除去用のフィルタを設けたことを特徴とする請求項１〜請求項３いずれか記載の誘導性負荷の電流制御装置。
【請求項５】
前記制御手段は、
前記演算周期で動作し、前記平均電流演算手段として前記平均電流値を算出すると共に、該平均電流値と前記目標電流値とに基づき、前記パルス幅変調信号のデューティ比を算出する演算手段と、
該演算手段にて算出されたデューティ比に応じて、前記パルス幅変調信号を繰り返し生成するパルス幅変調信号生成手段と、
を備えたことを特徴とする請求項１〜請求項４いずれか記載の誘導性負荷の電流制御装置。
【請求項６】
前記Ａ／Ｄ変換手段が前記検出信号をデジタル値に変換するＡ／Ｄ変換周期時間は、前記演算手段が前記デューティ比を算出する演算周期時間以下であることを特徴とする請求項５記載の誘導性負荷の電流制御装置。
【請求項７】
前記演算手段は、前記Ａ／Ｄ変換手段とは非同期に動作し、前記平均電流演算手段として、前記電流値記憶手段に記憶された各検出電流値を使用して前記平均電流値を算出することを特徴とする請求項５又は６記載の誘導性負荷の電流制御装置。
【請求項８】
前記パルス幅変調信号生成手段と前記Ａ／Ｄ変換手段とは、同一クロック源からのクロック信号により、互いに同期して動作することを特徴とする請求項５〜請求項７いずれか記載の誘導性負荷の電流制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、誘導性負荷に流れる電流をデューティ制御するのに好適な信号入力装置，制御装置及び誘導性負荷の電流制御装置に関する。
【０００２】
【従来の技術】
従来より、電磁弁や電磁式のアクチュエータには、その動力源としてリニアソレノイドが設けられており、電磁弁の開度やアクチュエータによる駆動対象物の変位量を調整する際には、リニアソレノイドへの通電電流量を制御するようにしている。
【０００３】
また、こうしたリニアソレノイド等の誘導性負荷に流れる電流量を制御する際には、通常、誘導性負荷をトランジスタ等のスイッチング素子を介して直流電源に接続し、このスイッチング素子を、デューティ比を制御したパルス幅変調信号（以下、ＰＷＭ信号という）にてオン・オフさせることにより、誘導性負荷に流れる電流を制御するようにしており、更に、電磁弁の開度や駆動対象物の変位量を高精度に制御する必要がある場合には、誘導性負荷に流れた電流を検出し、その検出電流値が、制御目標である目標電流値となるように、スイッチング素子を駆動するＰＷＭ信号のデューティ比を増・減する、所謂電流フィードバックを行うようにしている。
【０００４】
ところで、こうした電流フィードバックを行う際には、誘導性負荷に流れた電流を検出する必要があるが、誘導性負荷には、ＰＷＭ信号により周期的にオン・オフされるスイッチング素子を介して電流が流れることから、誘導性負荷に流れる電流は脈動しており、例えば、誘導性負荷の通電経路に設けた電流検出用抵抗の両端電圧から誘導性負荷に流れた電流を検出するようにしただけでは、検出電流値が変動するので、安定した制御を実行できない。
【０００５】
そこで、従来、誘導性負荷に流れる電流をフィードバック制御する際には、例えば、特開昭６０−６８４０１号公報に記載のように、誘導性負荷の通電経路に設けた抵抗を用いて検出した電流値を、コンデンサと抵抗とからなる積分回路を用いて平滑化し、その平滑化した検出電流値と目標電流値との偏差に応じて、ＰＷＭ信号のデューティ比を増減するようにしている。
【０００６】
例えば、図１１は、自動車の内燃機関や自動変速機等に組み込まれた各種電磁弁の開度を制御するために、制御対象となる電磁弁に組み込まれたリニアソレノイドＬに流す電流を制御する自動車用リニアソレノイド制御装置の一般的な構成を表す。この図に示すように、従来の自動車用リニアソレノイド制御装置５０においては、内燃機関や自動変速機等を制御するホストＣＰＵ５２が、リニアソレノイドＬの電流制御を行うリニアソレノイド制御ＩＣ５４に対して、リニアソレノイドＬに流すべき目標電流値を指令し、リニアソレノイド制御ＩＣ５４内では、ホストＣＰＵ５２からの目標電流値をサブＣＰＵ５４が受けて、目標電流値とリニアソレノイドＬに実際に流れた実電流値（検出電流値）との偏差に基づき、リニアソレノイドＬをデューティ駆動するためのデューティ比を求め、それを指令値としてＰＷＭ信号出力回路５６に出力し、ＰＷＭ信号出力回路５６が、その指令値（デューティ比）に対応したＰＷＭ信号を生成して、直流電源であるバッテリ（電源電圧Ｖｂ）からリニアソレノイドＬに至る通電経路に設けられたスイッチング素子（図ではＦＥＴ）５８に出力することで、このスイッチング素子５８を、サブＣＰＵ５４が求めたデューティ比にてデューティ駆動する。また、リニアソレノイドＬの通電経路には、電流検出用の抵抗Ｒ10が設けられ、この抵抗Ｒ10の両端電圧を差動増幅器６０にて差動増幅することで、リニアソレノイドＬに実際に流れた電流を電圧信号に変換し、更に、この差動増幅器６０からの出力を、抵抗Ｒ11とコンデンサＣ11とからなる積分回路６２にて平滑化した後、Ａ／Ｄ変換器６４にてＡ／Ｄ変換することにより、平滑化後の電圧信号を、リニアソレノイドＬに流れた電流を表す検出電流値として、サブＣＰＵ５４に入力するようにしている。
【０００７】
【発明が解決しようとする課題】
しかしながら、従来の誘導性負荷の電流制御装置では、誘導性負荷に流れる電流をフィードバック制御する際には、積分回路等を用いて電流の検出信号を平滑化し、その平滑化後の検出電流値と目標電流値とから、ＰＷＭ信号のデューティ比を設定し、更にその設定されたデューティ比に従いＰＷＭ信号を生成するようにされていることから、このフィードバック系での遅れ、特に、電流の検出信号を平滑化する積分回路の時定数による遅れによって、誘導性負荷に流れる電流が目標電流値に達して安定するまでに時間がかかるといった問題があった。
【０００８】
例えば、図１２（ａ）に示すように、誘導性負荷に流れる電流値が目標電流値に制御されている状態で、目標電流値が変化すると（時点ｔ0 ）、検出電流値と目標電流値との偏差が大きくなって、検出電流値を目標電流値に制御すべく、ＰＷＭ信号のデューティ比もその偏差に応じて更新されるが、積分回路の時定数（ＣＲ時定数）が大きい場合には、検出電流値は、誘導性負荷に実際に流れる制御電流の変化に対して応答遅れを生じることから、制御電流が目標電流値に達しても検出電流値と目標電流値との偏差は零にならず、ＰＷＭ信号は更新され続け、制御電流は目標電流値に対してオーバシュート・アンダシュートを繰り返し、制御電流が目標電流値に安定するのに時間がかかるのである。
【０００９】
このため、例えば、自動車において自動変速機の変速段を切り換えるのに使用される電磁弁等、目標電流更新時の応答性や制御精度が要求される誘導性負荷の電流制御装置には、上記従来装置を利用できない。
尚、応答性を高めるには、積分回路を削除したり、或いはその時定数（ＣＲ時定数）を小さくすることも考えられるが、このようにした場合には、図１２（ａ）に示すように、制御電流が目標電流値付近で安定するまでの時間は短くなるものの、検出電流値は、スイッチング素子のデューティ駆動によって生じる電流の脈動に応じて変化するため、ＰＷＭ信号のデューティ比も変動することになり、目標電流値は一定であるにもかかわらず、制御電流を一定に保つことができなくなってしまう。
【００１０】
また、例えば、図１１に示した従来装置において、ＰＷＭ信号出力回路５６によるＰＷＭ信号の発生周期と、平滑化後の電流検出信号をＡ／Ｄ変換してＰＷＭ信号のデューティ比を演算するサブＣＰＵ５４の演算周期とを一致させると、サブＣＰＵ５４を高速に動作させる必要があり、サブＣＰＵ５４の処理の負担が大きくなるため、サブＣＰＵ５４とＰＷＭ信号出力回路５６とは非同期に動作させ、サブＣＰＵ５４の演算周期を、ＰＷＭ信号出力回路５６のＰＷＭ信号発生周期よりも長くすることが望ましいが、このようにすると、例えば、図１２（ｂ）に示すように、目標電流が一定で、制御電流が目標電流にほぼ安定している場合であっても、実際には、サブＣＰＵ５４の動作に応じたＡ／Ｄ変換タイミングｔADで取り込まれる検出電流値は、平滑化後の電流検出信号の脈動によって変動してしまい、目標電流値に対応して、ＰＷＭ信号のデューティ比を最適値に設定することができないという問題もある。
【００１１】
一方、例えば、特開平５−２２２９９３号公報には、上記従来のように積分回路を用いて電流検出信号を平滑化するのではなく、ＰＷＭ信号によりオン・オフされるスイッチング素子のオン直後とオフ直前との２回のタイミングで、電流検出信号を取り込み、これら２つの電流値から制御に用いる検出電流値（平均電流値）を演算により求めることが開示されている。そして、この提案の装置によれば、積分回路を用いて電流検出信号を平滑化する従来装置のように、積分回路の時定数の影響を受けることなく、制御に用いる検出電流値を求めることができ、フィードバック系の遅れを低減できる。
【００１２】
しかし、この提案の装置においては、制御によって変化するＰＷＭ信号の立上がりタイミングと立下がりタイミングとを正確に検出して、電流検出信号をＡ／Ｄ変換しなければならない。従って、Ａ／Ｄ変換を行うタイミングを、ＰＷＭ信号の立上がり及び立下がりに応じて制御するためのタイミング回路が必要になり、装置構成が複雑になるという問題がある。
【００１６】
本発明は、こうした問題に鑑みなされたものであり、誘導性負荷に流れる電流をパルス幅変調信号にてデューティ制御する誘導性負荷の電流制御装置等において、検出信号のフィードバック系で生じる信号の応答遅れによって、制御の応答性が低下するのを防止することを目的とする。
【００１８】
つまり、請求項１記載の信号入力装置においては、一定周期で変化するアナログ入力信号を外部の制御手段に入力するに当たって、前述した従来の電流制御装置のように、入力信号を積分回路等を用いて平滑化し、その平滑化後の入力信号をＡ／Ｄ変換するのではなく、Ａ／Ｄ変換手段にて入力信号を直接Ａ／Ｄ変換し、そのＡ／Ｄ変換後の入力信号ｍ周期時間分のデジタル値を算術平均する。
【００１９】
このため、本発明によれば、一定周期で変化する入力信号の平均レベルを、入力信号のＡ／Ｄ変換値として制御手段に入力するに当たって、積分回路の時定数の影響を受けることなく、制御手段に必要なＡ／Ｄ変換値を入力することが可能になる。よって、本発明を、前述した誘導性負荷の電流制御装置における検出信号の入力装置として利用すれば、この信号入力の遅れを低減して、制御の応答性を向上でき、上記目的を達成できる。
【００２０】
尚、本発明の信号入力装置は、一定周期で変化する入力信号の平均レベルをデジタル値として外部の制御手段に入力するシステムであれば、誘導性負荷の電流制御装置に限らず、どのような制御システムにも適用できる。
つまり、従来より、入力信号をＡ／Ｄ変換して制御手段に入力するシステムとしては、前述した誘導性負荷の電流制御装置のように、制御対象の動作状態を検出して、その検出結果が目標状態となるように制御対象をフィードバック制御するフィードバック制御システム以外にも、例えば、検査対象となる装置の動作状態を検出して、その検出結果を表示又は記録する検査システム、或いは、制御対象となる装置の動作状態を検出して、その動作状態が異常或いは適正範囲からずれた場合に、制御対象の動作を停止させたり、制御対象の動作を安全側に切り替えるといったオープンループ制御システム等が知られているが、こうしたシステムにおいても本発明は適用できる。そして、このようなシステムに本発明を適用すれば、一定周期で変化する入力信号の平均レベルをデジタル値として制御手段に入力する際の信号入力系での遅れを低減できるため、制御対象の制御や検査対象の検査の応答性を向上できる。
【００２３】
従って、請求項２記載の制御装置においては、制御対象を制御するに当たって、制御手段が制御に用いる、制御対象の動作状態を表すデジタル値が、前述の従来装置のように、検出信号の入力系に設けられた積分回路等の影響を受けて遅れを生じることはなく、制御の応答性を向上できる。
【００２５】
そして、請求項３記載の制御装置によれば、一定周期で変化する電流を取り込む際に、従来のように積分回路等を用いて平滑化しないので、制御手段は、制御に用いる平均電流値（デジタル値）を、応答遅れなく取り込むことができ、制御対象の制御の応答性を向上できる。
【００２６】
尚、請求項２，３に記載の制御装置において、制御手段は、平均値演算手段にて算出された検出信号の平均レベルを表すデジタル値（平均電流値）を用いて、制御対象を制御するが、この制御手段による制御は、取り込んだデジタル値（平均電流値）が目標値（目標電流値）となるように制御対象（負荷電流）を制御するフィードバック制御であってもよく、また、取り込んだデジタル値（平均電流値）から制御対象（電気負荷）の異常動作を判定して、制御対象の動作（電気負荷の通電）を停止或いは切り替えるだけのオープンループ制御であってもよい。
【００２７】
【課題を解決するための手段】
かかる目的を達成するためになされた請求項１記載の誘導性負荷の電流制御装置においては、まず、Ａ／Ｄ変換手段が、一定周期で変化するアナログ入力信号（以下単に、入力信号ともいう）を、パルス幅変調信号の周期時間Ｔよりも短いＡ／Ｄ変換周期時間ｔ（但し、Ｔ／ｔは整数）毎にデジタル値に変換する。そして、このＡ／Ｄ変換手段にて変換されたデジタル値は、記憶手段に順次記憶するように継続的に更新され、平均値演算手段が、記憶手段に記憶されたデジタル値を、パルス幅変調信号の周期時間Ｔ分取り込み、その取り込んだデジタル値を算術平均し、この演算結果が、入力信号をＡ／Ｄ変換したデジタル値として制御手段に出力される。
そして、請求項１に記載の発明においては、検出手段が、一定周期で生成されたパルス幅変調信号にて通電制御される誘導性負荷に実際に流れ一定周期で変化する電流を検出するものであって、Ａ／Ｄ変換手段が、予め設定されたＡ／Ｄ変換周期時間毎に、検出手段からの検出信号を継続的にデジタル値に変換し、制御手段が、Ａ／Ｄ変換手段にてデジタル値に変換された検出電流値が目標電流値となるようにパルス幅変調信号のデューティ比をフィードバック制御するように構成したものである。
【００２８】
そして、本発明の誘導性負荷の電流制御装置においては、Ａ／Ｄ変換手段が、検出手段からの検出信号を、誘導性負荷の通電制御に用いられるパルス幅変調信号の周期時間Ｔよりも短いＡ／Ｄ変換周期時間ｔ（但し、Ｔ／ｔは整数）毎にデジタル値に変換すると共に、その変換した検出電流値を電流値記憶手段に順次記憶するように継続的に更新する。また、制御手段においては、所定の演算周期毎に、平均電流演算手段が、電流値記憶手段から、記憶されていた検出電流値を、パルス幅変調信号の周期時間Ｔ分取り込み、その取り込んだ検出電流値を算術平均することにより、周期時間Ｔ内の平均電流値を算出し、制御手段は、この平均電流演算手段が算出した平均電流値と前記目標電流値とに基づき、パルス幅変調信号のデューティ比を制御する。
さらに、記憶手段は、周期時間Ｔに相当する所定個数の記憶領域からなり、さらにこの中から異常電流値を検出し、この異常電流値を平均値の算出に用いないようにしている。
【００２９】
即ち、本発明の誘導性負荷の電流制御装置においては、従来装置のように、検出手段からの検出信号を積分回路等を用いて平滑化し、制御手段が、その平滑化後の検出信号をＡ／Ｄ変換手段を介して取り込むことにより、フィードバック制御のための検出電流値を取り込むのではなく、Ａ／Ｄ変換手段にて、検出手段からの検出信号を所定のＡ／Ｄ変換周期で繰り返しＡ／Ｄ変換し、制御手段が誘導性負荷通電制御用のパルス幅変調信号（ＰＷＭ信号）のデューティ比を制御する際には、平均電流算出手段により、Ａ／Ｄ変換手段にてＡ／Ｄ変換されたＰＷＭ信号周期時間Ｔ分の検出電流値を算術平均することで、デューティ比の制御に用いる検出電流値（つまり平均電流値）を算出する。
【００３０】
このため、積分回路を用いて電流の検出信号を平滑化する従来装置のように、積分回路の時定数の影響を受けることなく、制御に用いる検出電流値を求めることができ、フィードバック系の遅れを低減できる。また、前述の特開平５−２２２９９３号公報に記載の装置のように、平均電流値の算出のために、ＰＷＭ信号の立上がりタイミングと立下がりタイミングとを検出して、Ａ／Ｄ変換を行うタイミングを制御する必要はなく、Ａ／Ｄ変換手段は、一定のＡ／Ｄ変換周期で動作させればよいことから、Ａ／Ｄ変換タイミングの制御のために装置構成が複雑になることもない。
また、本発明では、電流フィードバック系での応答遅れを防止するために、検出手段からの検出信号を平滑化することなくそのままＡ／Ｄ変換手段にてＡ／Ｄ変換するようにしているため、Ａ／Ｄ変換手段に入力される検出信号にノイズが重畳されていても、Ａ／Ｄ変換手段は、そのノイズを含む検出信号をそのままＡ／Ｄ変換することになり、平均電流演算手段にて得られる平均電流値に、誤差が生じることがある。
そこで、平均電流演算手段には、電流値記憶手段から取り込んだＰＷＭ信号ｍ周期時間分の検出電流値の中に異常な電流値があるか否かを判定する異常判定手段を設け、この異常判定手段にて異常電流値があると判断された場合には、その異常電流値を平均電流値の算出に用いないように構成することが望ましい。
つまり、平均電流演算手段をこのようにすれば、平均電流演算手段が取り込んだＰＷＭ信号周期時間Ｔ分の検出電流値の中に、ノイズ成分を含んだ異常な電流値があっても、それを除いた検出電流値だけで平均電流値を求めることができるようになり、平均電流値の演算精度を確保して、電流の制御精度を向上することが可能になる。
【００３１】
よって、本発明によれば、装置構成を複雑にすることなく、誘導性負荷の電流フィードバック制御の応答性を向上することが可能になる。ここで、本発明においては、制御手段がＰＷＭ信号のデューティ比を制御するのに用いる平均電流値を、平均電流演算手段にて算出するようにしているため、積分回路を用いて電流検出信号を平滑化する従来装置に比べ、制御手段における演算処理が複雑になるが、平均電流演算手段を、請求項２に記載のように構成すれば、平均電流の演算を比較的簡単な演算処理にて行うことができる。
【００３２】
つまり、請求項２に記載の誘導性負荷の電流制御装置では、平均電流演算手段が、ＰＷＭ信号の周期時間Ｔ分の検出電流値として、２n個の検出電流値を取り込み、その検出電流値の総和を算出し、この総和から平均電流値を算出することから、平均電流値を算出する際には、検出電流値の総和であるデジタル値をｎビット分だけ下位方向にシフトさせて、シフト後のデジタル値の下位ｎビット分を、除去若しくは小数点以下のデータとすればよく、平均電流演算手段において、複雑な演算処理を実行することなく、平均電流値を求めることが可能になる。
【００３３】
このため、請求項２に記載の装置によれば、制御手段側で平均電流値を演算するにもかかわらず、この制御手段に、除算処理等の複雑な演算処理を高速に行う高価な演算回路（ＣＰＵ等）を用いることなく、本発明を実現することができるようになる。
【００３７】
また、平均電流演算手段をこのように構成する場合、ＰＷＭ信号周期時間Ｔ分の検出電流値の中から異常電流値を除いた検出電流値にて平均電流値を算出するようにしてもよいが、より好ましくは、請求項３に記載のように、平均電流演算手段を、異常判定手段にて異常電流値があると判断された場合には、Ａ／Ｄ変換手段にて異常電流値の前・後にＡ／Ｄ変換された検出電流値から、異常電流値のＡ／Ｄ変換タイミングでの正常電流値を推定し、平均電流値の算出には、異常電流値に代えてその推定した電流値を用いるようにするとよい。
【００３８】
つまり、このようにすれば、異常電流値を除いて平均電流値を算出するようにした場合に比べて、得られる平均電流値の精度を高め、負荷電流の制御精度をより向上することができるようになる。また、この場合、平均電流値の算出に用いるＰＷＭ信号周期時間Ｔ分の検出電流値の個数は、常に一定になるため、請求項２に記載のように、平均電流値の算出に用いる検出電流値の個数を２n個にすることも、簡単に行うことができる。
【００３９】
一方、このようにＡ／Ｄ変換手段により得られる検出電流値に誤差が生じるのは、検出手段からＡ／Ｄ変換手段に入力される検出信号にＡ／Ｄ変換周期よりも短い高周波ノイズが重畳されるためであるため、請求項４に記載のように、検出手段からＡ／Ｄ変換手段への検出信号の入力経路に、高周波ノイズ除去用のフィルタを設け、このフィルタを用いて、検出信号に重畳された高周波ノイズを除去するようにしてもよい。
【００４５】
また次に、請求項１〜請求項４に記載の誘導性負荷の電流制御装置において、制御手段は、平均電流値演算手段にて算出した平均電流値が目標電流値になるように、誘導性負荷の通電制御に用いられるＰＷＭ信号のデューティ比をフィードバック制御できればよいが、このためには、請求項５に記載のように、制御手段を、平均電流演算手段としての機能を有し、且つ、平均電流値と目標電流値とに基づきＰＷＭ信号のデューティ比を算出する演算手段と、この演算手段にて算出されたデューティ比に応じて、ＰＷＭ信号を繰り返し生成するパルス幅変調信号生成手段とから構成するとよい。
【００４６】
つまりこのように構成すれば、制御のための演算とＰＷＭ信号の制御とを演算手段及びパルス幅変調信号生成手段にて個々に実現でき、制御手段としての機能を、例えば、ＣＰＵ等からなる一つの機能実現手段にて実現する場合に比べて、各手段（演算手段及びパルス幅変調信号生成手段）での処理の負担を軽減でき、結果として、制御手段を安価に実現できるようになる。
【００４７】
また次に、制御手段を請求項５に記載のように構成した場合、Ａ／Ｄ変換手段が検出手段からの検出信号をＡ／Ｄ変換するＡ／Ｄ変換周期時間を、演算手段がデューティ比を算出する演算周期時間よりも長くすると、演算手段がデューティ比を算出する際に、Ａ／Ｄ変換手段にてＡ／Ｄ変換されたＰＷＭ信号周期時間Ｔ分の検出電流値として、同じ検出電流値を用いてデューティ比を算出することがあり、演算手段における平均電流値及びデューティ比の演算処理が不必要に実行されることになる。このため、請求項６に記載のように、Ａ／Ｄ変換手段がＡ／Ｄ変換を行うＡ／Ｄ変換周期時間は、演算手段が平均電流値及びデューティ比の演算を行う演算周期時間以下に設定することが望ましい。つまりこのようにすれば、デューティ制御に伴う電流変動を抑えるためにＰＷＭ信号の周期を短くしても、演算手段における演算処理を不必要に高速に行う必要がなく、演算手段を比較的安価に実現できる。
【００４８】
また、本発明では、Ａ／Ｄ変換手段が、Ａ／Ｄ変換した検出電流値を電流値記憶手段の記憶領域に順次格納し、演算手段側では、電流値記憶手段に記憶されたＰＷＭ信号周期時間Ｔ分の電流値から、平均電流値を算出することから、請求項５又は請求項６に記載の装置では、請求項７に記載のように、演算手段とＡ／Ｄ変換手段とを非同期に動作させることができる。そして、このように、演算手段とＡ／Ｄ変換手段とを非同期に動作させるようにした場合には、演算手段とＡ／Ｄ変換手段とを別々に設計することができるため、電流制御装置設計時の作業性を向上することができる。但し、パルス変調信号生成手段とＡ／Ｄ変換手段とが、非同期に動作すると、演算手段側では、Ａ／Ｄ変換手段にてＡ／Ｄ変換した検出電流値から、ＰＷＭ信号周期時間Ｔ分の検出電流値を正確に取り込むことができず、平均電流値の計算精度が低下することが考えられるので、パルス幅変調信号生成手段とＡ／Ｄ変換手段とは、請求項８に記載のように、同一クロック源からのクロック信号により、互いに同期して動作するよう構成することが望ましい。
【００４９】
一方、参考例の誘導性負荷の電流制御装置について説明する。
この参考例の誘導性負荷の電流制御装置においては、演算手段が、予め設定された演算周期毎に、誘導性負荷に所定電流を流すためのＰＷＭ信号のデューティ比を算出し、パルス幅変調信号生成手段が、この演算手段にて算出されたデューティ比に応じて信号レベルが変化するＰＷＭ信号を一定周期で繰り返し生成し、この生成されたＰＷＭ信号を誘導性負荷の通電手段に出力する。
【００５０】
そして、演算手段側では、駆動データ格納手段が、上記算出したデューティ比から、ＰＷＭ信号の１周期当たりにＰＷＭ信号を第１レベル又は第２レベルに保持すべき時間を算出し、この時間を駆動データとして駆動データ記憶手段に格納する。
【００５１】
また、パルス幅変調信号生成手段側では、計時手段が、演算手段の演算周期とは同期せずにＰＷＭ信号１周期時間の２分の１の時間を繰り返し計時し、反転時間演算手段が、その計時手段による計時動作に同期して駆動データ記憶手段から駆動データを読み出し、その読み出した駆動データに基づき、ＰＷＭ信号１周期当たりにこの信号を第１レベルに保持すべき時間の２分の１の時間（第１時間）と、同じくＰＷＭ信号１周期時間当たりに該信号を第２レベルに保持すべき時間の２分の１の時間（第２時間）とを、夫々算出する。
【００５２】
そして、計時時間判定手段が、計時手段がＰＷＭ信号１周期時間の２分の１時間を計時する計時期間毎に、交互に、計時手段による計時時間が反転時間演算手段にて算出された最新の第１時間に達したか、或いは、計時手段による計時時間が反転時間演算手段にて算出された最新の第２時間に達したかを判定し、信号レベル設定手段が、計時時間判定手段にて計時手段による計時時間が第１時間に達したと判定されると、ＰＷＭ信号の信号レベルを第２レベルに設定し、計時時間判定手段にて計時手段による計時時間が第２時間に達したと判断されると、ＰＷＭ信号の信号レベルを第１レベルに設定する。
【００５３】
このため、参考例の誘導性負荷の電流制御装置によれば、パルス幅変調信号生成手段にて生成されるＰＷＭ信号は、演算手段によってデューティ比が更新された後、ＰＷＭ信号がそのデューティ比に対応するまでの遅れ時間が、最大でもＰＷＭ信号の２分の１の周期時間となり、その遅れ時間の最大がＰＷＭ信号の１周期時間となる従来の誘導性負荷の電流制御装置に比べて、制御の応答性を向上することができる。
【００５４】
つまり、本参考例では、従来装置のように、ＰＷＭ信号の１周期時間を計時することにより、その１周期時間が経過したタイミングを、ＰＷＭ信号の立ち上げ或いは立ち下げタイミングとして設定するのではなく、ＰＷＭ信号の周期の２分の１の周期時間を繰り返し計時する計時手段を設けることによって、ＰＷＭ信号の立ち上げ及び立ち下げタイミングを設定する区間を、ＰＷＭ信号の周期の２分の１の時間毎に交互に設定し、各区間毎に、ＰＷＭ信号を第１レベルに保持すべき時間の２分の１の時間が経過した際には、ＰＷＭ信号を第２レベルに切り換え、ＰＷＭ信号を第２レベルに保持すべき時間の２分の１の時間が経過した際には、ＰＷＭ信号を第２レベルに切り換えるようにしているため、演算手段にてデューティ比が更新された際に、ＰＷＭ信号がその更新されたデューティ比に対応するまでの遅れ時間を、最大でも、ＰＷＭ信号の周期の２分の１の周期時間に抑えることが可能になり、従来装置に比べて、誘導性負荷の駆動系での応答遅れを抑制することができ、延いては、制御の応答性を向上することが可能になる。
【００５５】
尚、上記参考例の誘導性負荷の通電制御装置は、誘導性負荷への通電電流量を制御するに当たって、ＰＷＭ信号のデューティ比を誘導性負荷に流すべき電流量に応じて制御する装置（つまり、単なるオープンループ制御を行う装置）にも適用できるが、上記請求項４〜請求項１３に記載の装置のように、誘導性負荷に流れる電流をフィードバック制御する場合には、下記のように構成すればよい。
【００５６】
つまり、上記参考例の誘導性負荷の通電制御装置に、誘導性負荷に実際に流れた電流を検出する検出手段と、この検出手段からの検出信号を、予め設定されたＡ／Ｄ変換周期毎にデジタル値に変換するＡ／Ｄ変換手段とを設け、演算手段において、Ａ／Ｄ変換手段にてデジタル値に変換された検出電流値と目標電流値とに基づき、検出電流値を目標電流値に制御するのに必要なＰＷＭ信号のデューティ比を算出するように構成すれば、誘導性負荷への通電電流を目標電流にフィードバック制御することが可能になる。
【００５７】
そして、この構成の装置と請求項４〜請求項１３に記載の装置とを組合せれば、誘導性負荷に流れた電流を検出して制御手段（演算手段）にフィードバックする際のフィードバック系の遅れと、ＰＷＭ信号を生成する駆動系の遅れとの両方を抑制できることになり、誘導性負荷の制御の応答性をより確実に向上することが可能になる。
【００５８】
また次に、上記参考例の電流制御装置では、反転時間演算手段は、計時手段による計時動作に同期して駆動データ記憶手段から駆動データを読み出し、その読み出した駆動データに基づき、第１時間及び第２時間を夫々算出するように構成されるが、パルス幅変調信号生成手段に、計時手段がＰＷＭ信号１周期時間の２分の１時間の計時を開始してから、次の２分の１時間の計時を開始するまでの間に、駆動データ記憶手段に記憶された駆動データが演算手段側の動作によって更新されたかどうかを監視する監視手段と、この監視手段により駆動データの更新が検出されると、反転時間演算手段を計時手段の計時動作とは非同期に動作させて、計時時間判定手段が計時時間の判定に用いる第１時間及び第２時間を、駆動データ記憶手段内の最新の駆動データに対応した時間に更新させる反転時間更新手段と、を設けるようにすれば、ＰＷＭ信号が、演算手段にて更新された最新のデューティ比に対応するまでの遅れ時間をより短くすることができる。
【００５９】
【発明の実施の形態】
以下に、本発明の一実施例を図面と共に説明する。
図１は、本発明が適用された自動車用リニアソレノイド制御装置１０の構成を表すブロック図である。
【００６０】
本実施例のリニアソレノイド制御装置１０は、自動車に搭載された内燃機関を目標状態に制御するために、内燃機関に設けられた複数（本実施例では４個）のリニアソレノイドＬ０〜Ｌ３（図ではＬ０のみを示す）を個々に通電制御するためのものであり、エンジンコントロール用のホストＣＰＵ１２にて演算された各リニアソレノイドＬ０〜Ｌ３に流すべき電流を表すデータ（以下、目標電流値という）に従い、各リニアソレノイドＬ０〜Ｌ３に流れる電流をフィードバック制御するリニアソレノイド制御ＩＣ１４を備える。
【００６１】
リニアソレノイド制御ＩＣ１４は、各リニアソレノイドＬ０〜Ｌ３をＰＷＭ信号にてデューティ駆動するためのデューティ比を演算し、その演算結果を、ＰＷＭデータ（駆動データ）としてＰＷＭデータ受渡用のＲＡＭ（駆動データ記憶手段に相当する）２２に格納する、演算手段としての制御ＣＰＵ２０と、ホストＣＰＵ１２に内蔵されたＲＡＭから各リニアソレノイドＬ０〜Ｌ３の目標電流値を読み込み、制御ＣＰＵ２０に入力する、ダイレクト・メモリ・アクセス回路（ＤＭＡ）２４と、ＰＷＭデータ受渡用ＲＡＭ２２から各リニアソレノイドＬ０〜Ｌ３に対するＰＷＭデータを夫々読み込み、各リニアソレノイドＬ０〜Ｌ３をデューティ駆動するためのＰＷＭ信号PWM0，PWM1，PWM2，PWM3を夫々生成する、パルス幅変調信号生成手段としてのＰＷＭ信号出力回路２６を備える。
【００６２】
一方、電流制御の対象となるリニアソレノイドＬ０は、バッテリの正極側に接続された電源ライン（電源電圧Ｖｂ）からバッテリの負極側に接続されたグランドラインに至る通電経路上に配置されており、その通電経路のリニアソレノイドＬ０よりも電源ライン側には、所謂ハイサイドスイッチとしてＦＥＴ２８が設けられ、更に、このＦＥＴ２８のゲートには、エミッタがグランドラインに設置されたＮＰＮトランジスタ２９のコレクタが接続されている。
【００６３】
ＮＰＮトランジスタ２９は、ＦＥＴ２８のゲートをグランドラインに接地することにより、ＦＥＴ２８をオンさせるためのものであり、そのベースには、ＰＷＭ信号出力回路２６からリニアソレノイドＬ０通電用のＰＷＭ信号PWM0が入力される。この結果、ＮＰＮトランジスタ２９及びＦＥＴ２８は、ＰＷＭ信号PWM0がHighレベルであるときにオン状態となって、バッテリからリニアソレノイドＬ０への通電経路を導通させ、逆に、ＰＷＭ信号PWM0がLow レベルであれば、オフ状態となって、リニアソレノイドＬ０の通電経路を遮断する。
【００６４】
尚、図示しない他のリニアソレノイドＬ１〜Ｌ３にも、リニアソレノイドＬ０と同様のスイッチング素子（具体的にはＮＰＮトランジスタ２９及びＦＥＴ２８）が設けられており、ＰＷＭ信号出力回路２６から出力されるＰＷＭ信号ＰＷ１〜ＰＷＭ３に従い、各スイッチング素子がオン・オフして、各リニアソレノイドＬ１〜Ｌ３に流れる電流をデューティ制御できるようにされている。
【００６５】
また、各リニアソレノイドＬ０〜Ｌ３のグランドライン側の通電経路には、電流検出用の抵抗（本発明の検出手段に相当する）Ｒ０が設けられており、その両端電圧から、各リニアソレノイドＬ０〜Ｌ３に流れた電流を検出できるようにされている。そして、この抵抗Ｒ０の両端電圧は、抵抗Ｒ１，Ｒ２を介して、差動増幅器３０に入力され、差動増幅器３０にて差動増幅された後、信号選択用のマルチプレクサ（ＭＰＸ）３２を介して、Ａ／Ｄ変換手段としてのＡ／Ｄ変換器３４に選択的に入力される。
【００６６】
そして、Ａ／Ｄ変換器３４は、ＭＰＸ３２を介して、各リニアソレノイドＬ０〜Ｌ３に流れた電流を表す電流検出信号（電圧）を一定のＡ／Ｄ変換周期で順に取り込み、デジタル値に変換し、そのデジタル値（検出電流値）を、Ａ／Ｄデータ受渡用のＲＡＭ（請求項１に記載の電流値記憶手段に相当）３６に格納する。
【００６７】
また、Ａ／Ｄデータ受渡用のＲＡＭ３６は、制御ＣＰＵ２０からもアクセスできるようにされており、制御ＣＰＵ２０側では、ＲＡＭ３６に格納された各リニアソレノイドＬ０〜Ｌ３毎の検出電流値の和を、例えば、デジタル・シグナル・プロセッサ（ＤＳＰ）等を用いて高速に演算し、その演算結果から各リニアソレノイドＬ０〜Ｌ３に流れた平均電流値を求め、この平均電流値が、夫々、ＤＭＡ２４を介して入力される各リニアソレノイドＬ０〜Ｌ３の目標電流値となるように、ＰＷＭ信号PWM0〜PWM3のデューティ比を算出し、その算出したデューティ比に基づき、各リニアソレノイドＬ０〜Ｌ３通電用のＰＷＭデータを設定し、これをＰＷＭデータ受渡用ＲＡＭ２２に格納する。
【００６８】
尚、制御ＣＰＵ２０には、演算処理実行用のプログラムや各種データが格納されたＲＯＭ３８、及び、演算処理実行時に制御用のデータを一時格納するためのＲＡＭ３９が接続されている。そして、制御ＣＰＵ２０は専用の発振子２０ａにて生成されたクロック信号を受けて動作し、ＰＷＭ信号出力回路２６及びＡ／Ｄ変換器３４は、この発振子２０ａとは異なるＰＷＭ信号生成用の発振子２６ａにて生成されたクロック信号を受けて動作する。つまり、ＰＷＭ信号出力回路２６及びＡ／Ｄ変換器３４は、同一発振子２６ａからのクロック信号により同期して動作し、制御ＣＰＵ２０は、ＰＷＭ信号出力回路２６及びＡ／Ｄ変換器３４とは異なる発振子２０ａからのクロック信号により、これら各回路とは非同期に動作する。
【００６９】
次に、ＰＷＭデータ受渡用ＲＡＭ２２及びＡ／Ｄデータ受渡用ＲＡＭ３６の構成及びこれら各部に格納されるデータ構造について説明する。
まず、ＰＷＭデータ受渡用ＲＡＭ２２は、図２（ａ）に示すように、４個のリニアソレノイドＬ０〜Ｌ３を夫々デューティ駆動するためのＰＷＭデータとして、各ＰＷＭ信号PWM0〜PWM3毎に、各ＰＷＭ信号PWM0〜PWM3の周期CYCL(0)〜CYCL(3)を表すデータ（周期データ）と、各ＰＷＭ信号PWM0〜PWM3の１周期内に、ＰＷＭ信号PWM0〜PWM3をHighレベルにして、各リニアソレノイドＬ０〜Ｌ３の通電経路に設けられたスイッチング素子をオンするためのオン時間ＴON(0)〜ＴON(3)を表すデータと、このデータが制御ＣＰＵ２０にて更新された直後であるか、或いは、データ更新後に既にＰＷＭ信号の生成に使用されたかを表す更新フラグOVW(0)〜OVW(3)と、からなる３種類のデータを各々格納できるように構成されている。
【００７０】
そして、このＰＷＭデータ受渡用ＲＡＭ２２内のＰＷＭデータは、制御ＣＰＵ２０が各リニアソレノイドＬ０〜Ｌ３をデューティ駆動するためのデューティ比を演算する度に更新され、更新フラグOVW(0)〜OVW(3)は、その更新の度にセット（OVW ←High）される。また、ＰＷＭ信号出力回路２６は、このＰＷＭデータ受渡用ＲＡＭ２２からＰＷＭデータを読み出すことにより、各リニアソレノイドＬ０〜Ｌ３をデューティ駆動するためのＰＷＭ信号を生成するが、ＰＷＭデータを読み出した際に、対応する更新フラグOVW(0)〜OVW(3)がセットされていれば、これをリセット（OVW ←Low ）することにより、そのＰＷＭデータは更新直後の値ではないことを記憶する。
【００７１】
一方、Ａ／Ｄデータ受渡用ＲＡＭ３６は、図２（ｂ）に示すように、制御対象となる４個のリニアソレノイドＬ０〜Ｌ３に対応したデータ値を、夫々、チャンネル０（ch0） 〜チャンネル３（ch3） のデータ値（検出変換値）として、各チャンネルch0〜ch3毎に、過去１６個分記憶できるようにされている。そして、Ａ／Ｄ変換器３４は、例えば、リニアソレノイドＬ０の検出電流値については、チャンネル０（ch0） のデータ記憶領域に、dat[0,0]、dat[0,1]、… dat[0,15] と記憶してゆき、その後は、データ番号順に、検出電流値を順に更新してゆくことで、各チャンネルch0〜ch3毎に、夫々、最新の検出電流値を、過去１６個分記憶させる。
【００７２】
尚、Ａ／Ｄ変換器３４には、図２（ｃ）に示す如く、Ａ／Ｄデータ受渡用ＲＡＭ３６に各チャンネルch0〜ch3の検出電流値dat[*,*]を格納する前に、各チャンネルch0〜ch3に対応する電流のＡ／Ｄ変換値ad[0]〜ad[3]を一時的に記憶しておくためのＲＡＭ３４ａが内蔵されている。
【００７３】
次に、上記のように構成された本実施例のリニアソレノイド制御装置において、リニアソレノイドの通電制御のために、Ａ／Ｄ変換器３４，制御ＣＰＵ２０，及びＰＷＭ信号出力回路２６で夫々実行される制御処理についてフローチャート及びタイムチャートを用いて順に説明する。
【００７４】
まず、図３は、Ａ／Ｄ変換器３４において、例えば１３μsec.毎に繰り返し実行されるＡ／Ｄ変換処理を表すフローチャートであり、図４は、その動作を説明するタイムチャートである。
尚、Ａ／Ｄ変換器３４には、下記の処理手順でＡ／Ｄ変換を繰り返し実行するために、単にＭＰＸ３２からの入力信号をＡ／Ｄ変換するＡ／Ｄ変換部とは別に、Ａ／Ｄ変換値のＲＡＭ３４ａへの書き込み並びにＲＡＭ３４ａからＡ／Ｄデータ受渡用ＲＡＭ３６へのＡ／Ｄ変換値の転送を行うために、ロジック回路又はＣＰＵからなる制御部が設けられている。
【００７５】
Ａ／Ｄ変換器３４は、このＡ／Ｄ変換処理を実行する度に、ＭＰＸ３２を介して取り込む電流検出信号を、リニアソレノイドＬ０からＬ３へと順に切り換えるようにされており、まず、Ｓ１１０（Ｓはステップを表す）にて、ＭＰＸ３２を介して取り込んだ電流検出信号をＡ／Ｄ変換して読み込む。そして、続くＳ１２０では、その読み込んだＡ／Ｄ変換値を、このＡ／Ｄ変換値に対応するＲＡＭ３４ａの特定チャンネル領域に記憶されたＡ／Ｄ変換値ad[nch] に加算することにより、ＲＡＭ３４ａ内のＡ／Ｄ変換値ad[nch] を更新し、Ｓ１３０に移行する。尚、nchはチャンネル番号を表し、当該処理を実行する度に０〜３のいずれかに順に更新される後述のカウンタnch の値によって特定される。
【００７６】
即ち、Ａ／Ｄ変換器３４は、Ａ／Ｄ変換処理を実行する度に、各リニアソレノイドＬ０〜Ｌ３に設けられた差動増幅器３０からの電流検出信号を、ch0 〜ch3 のＡ／Ｄ変換値として、順にＡ／Ｄ変換し、そのＡ／Ｄ変換値を、ＲＡＭ３４ａに既に記憶された対応するチャンネルのＡ／Ｄ変換値ad[nch] に加算することにより、ＲＡＭ３４ａ内の各チャンネルのＡ／Ｄ変換値ad[0]〜ad[3]を、順に更新するのである。
【００７７】
そして、続くＳ１３０では、ＲＡＭ３４ａの各チャンネルch0〜ch3用の記憶領域に格納したＡ／Ｄ変換値ad[nch] の加算回数をカウントするカウンタncntの値が、予め設定された加算回数SN1 （本実施例では４）に達しているか否かを判断し、カウンタncntの値が加算回数SN1 に達していれば（換言すれば、Ｓ１２０で更新した特定チャンネル（nch）のＡ／Ｄ変換値ad[nch]  が、そのチャンネルの過去４回分のＡ／Ｄ変換結果を加算した値であれば）、Ｓ１４０に移行して、そのチャンネル（nch） の記憶領域に記憶されたＡ／Ｄ変換値ad[nch] を、検出電流値を表す検出電流値dat[nch，cntm]として、Ａ／Ｄデータ受渡用ＲＡＭ３６の対応するアドレス[nch，cntm] に転送することにより、そのアドレスの検出電流値dat[nch，cntm]を書き換え、続くＳ１５０にて、ＲＡＭ３４ａに記憶された検出電流値ad[nch]を初期値「０」に更新する。
【００７８】
また、続くＳ１６０では、今回Ａ／Ｄデータ受渡用ＲＡＭ３６内の検出電流値dat[nch，cntm]を更新したＡ／Ｄ変換値ad[nch] のチャンネル番号（nch） は、制御対象となるリニアソレノイドＬ０〜Ｌ３のチャンネル数SNCH（本実施例では４）から値「１」を減じた値に一致するか否か、換言すれば、Ａ／Ｄデータ受渡用ＲＡＭ３６の各チャンネルch0〜ch3の「cntm」番目の検出電流値dat[0，cntm]〜dat[3，cntm]の更新が全て完了したか否かを判断する。
【００７９】
そして、Ｓ１６０にて肯定判断されると、今度は、その後の処理で、Ａ／Ｄデータ受渡用ＲＡＭ３６の各チャンネルch0〜ch3の「cntm＋１」番目の検出電流値dat[0，cntm+1]〜dat[3，cntm+1]を更新できるようにするために、Ｓ１７０にて、次に更新すべきＡ／Ｄデータ受渡用ＲＡＭ３６のアドレスを特定するためのカウンタcntmをインクリメントする。
【００８０】
また、こうしてカウンタcntmの値を更新すると、今度は、その更新により、カウンタcntmの値が、Ａ／Ｄデータ受渡用ＲＡＭ３６に各チャンネル毎に検出電流値を記憶可能な最大アドレス値SN2 （本実施例では１５）を越えたか否かを判断する。そして、カウンタcntmの値が最大アドレス値SN2 を越えていれば、カウンタcntmの値を、Ａ／Ｄデータ受渡用ＲＡＭ３６に各チャンネル毎に検出電流値を記憶可能な最小のアドレス値である値「０」に設定し、続くＳ２００に移行して、次にＡ／Ｄ変換してデータを更新すべきチャンネルを表すカウンタnch の値をインクリメントする。尚、このＳ２００の処理は、Ｓ１３０，Ｓ１６０，Ｓ１８０にて否定判断された場合にも実行される。
【００８１】
そして、Ｓ２００にて、カウンタnchの値がインクリメントされると、今度は、Ｓ２１０に移行して、この更新されたカウンタnchの値は、制御対象となるリニアソレノイドＬ０〜Ｌ３のチャンネル数SNCH（本実施例では４）に達したか否か、換言すれば、カウンタnchの値が、チャンネル番号としてとりうる「０〜３」の値を越えたか否かを判断する。
【００８２】
そして、Ｓ２１０にて、カウンタnch の値がチャンネル数SNCHに達したと判断されると、続くＳ２２０にて、カウンタnch の値を初期値「０」に設定し、更に続くＳ２３０にて、カウンタncntの値をインクリメントすることにより、ＲＡＭ３４ａでのＡ／Ｄ変換値ad[nch] の加算回数を表すカウンタncntの値を更新し、続くＳ２４０にて、その更新後のカウンタncntの値が、予め設定された加算回数SN1 を越えたか否かを判断し、カウンタncntの値が加算回数SN1 を越えていれば、Ｓ２５０にて、カウンタncntの値を初期値「１」に設定した後、当該処理を終了する。
【００８３】
また、逆に、Ｓ２４０にて、カウンタncntの値が加算回数SN1 を越えていないと判断されるか、或いは、Ｓ２１０にて、カウンタnch の値が制御対象となるリニアソレノイドＬ０〜Ｌ３のチャンネル数SNCH（本実施例では４）に達していないと判断された場合には、そのまま当該処理を終了する。
【００８４】
このように、Ａ／Ｄ変換処理を行うＡ／Ｄ変換器３４では、図４に示す如く、発振子２６ａからのクロック信号の発生周期にて設定されるＡ／Ｄ変換周期（１３μsec.）で、各リニアソレノイドＬ０〜Ｌ３の電流検出信号を順にＡ／Ｄ変換し、これにより得られたＡ／Ｄ変換値を、そのＡ／Ｄ変換値に対応するチャンネルch0〜ch3のＲＡＭ３４ａの記憶領域に順に格納し、更に、その記憶領域に既にＡ／Ｄ変換値ad[0]〜ad[3]が格納されている場合には、その記憶されたＡ／Ｄ変換値ad[0]〜ad[3]に、新たなＡ／Ｄ変換値を足し込むことにより、ＲＡＭ３４ａ内のＡ／Ｄ変換値ad[0]〜ad[3]を更新する。
【００８５】
そして、その更新を４回行い、ＲＡＭ３４ａ内のＡ／Ｄ変換値ad[0]〜ad[3]がＡ／Ｄ変換４回分のＡ／Ｄ変換値の和になると、ＲＡＭ３４ａ内のＡ／Ｄ変換値ad[0]〜ad[3]を、夫々、検出電流値を表す一つのデータdat[0,*]〜[3,*]として、Ａ／Ｄデータ受渡用ＲＡＭ３６の対応するアドレス領域に格納し、ＲＡＭ３４ａ内のＡ／Ｄ変換値ad[0]〜ad[3]を値「０」に初期化する。また、Ａ／Ｄデータ受渡用ＲＡＭ３６に、検出電流値を書き込む際には、各チャンネルch0〜ch3毎に、カウンタcntmの値で決定される「０」から「１５」のアドレス毎に順に記憶し、検出電流値を書き込んだ各チャンネルch0〜ch3のアドレスが「１５」に達すると、再度アドレス「０」の記憶領域から順に検出電流値を書き換える。
【００８６】
このため、各リニアソレノイドＬ０〜Ｌ３に流れた電流のＡ／Ｄ変換は、５２μsec.毎に実行され、Ａ／Ｄデータ受渡用ＲＡＭ３６には、各リニアソレノイドＬ０〜Ｌ３に流れた電流の検出値（検出電流値）として、Ａ／Ｄ変換４回分のＡ／Ｄ変換値の和が、２０８μsec.毎に、順に記憶される。このため、Ａ／Ｄデータ受渡用ＲＡＭ３６には、各チャンネルch0〜ch3（つまり各リニアソレノイドＬ０〜Ｌ３）毎に、３３２８μsec.（＝２０８μsec.×１６）の間に５２μsec.毎にＡ／Ｄ変換した最新のＡ／Ｄ変換結果が蓄積されることになり、そのＡ／Ｄ変換結果の更新遅れは、最大でも２０８μsec.となる。
【００８７】
尚、Ａ／Ｄデータ受渡用ＲＡＭ３６には、３３２８μsec.の間にＡ／Ｄ変換器３４を介して得られた１６個の検出電流値が格納されるが、この時間（３３２８μsec.）は、ＰＷＭ信号出力回路２６が生成するＰＷＭ信号の１周期に対応する。
【００８８】
次に、図５は、制御ＣＰＵ２０において、例えば２ｍsec.毎に繰り返し実行される制御量演算処理を表すフローチャートであり、図６は、その動作を説明するタイムチャートである。
図５に示す如く、この制御量演算処理では、まずＳ３１０にて、Ａ／Ｄデータ受渡用ＲＡＭ３６に各チャンネルch0〜ch3毎に記憶された電流値の和を表す演算データ（以下電流積算値という）SUM を値「０」に初期化し、続くＳ３２０にて、カウンタmmに、Ａ／Ｄデータ受渡用ＲＡＭ３６の最大アドレス値SN2 を設定する。そして、続くＳ３３０では、Ａ／Ｄデータ受渡用ＲＡＭ３６に記憶されたチャンネルchm の検出電流値の中から、上記カウンタmmの値に対応したアドレスの検出電流値dat[chm，mm]を読み出し、この検出電流値dat[chm，mm]を電流積算値SUM に加えることにより、電流積算値SUM を更新する。そして更に、続くＳ３４０では、カウンタmmの値をデクリメント（−１）し、続くＳ３５０にて、カウンタmmの値が負になったか否かを判断し、カウンタmmの値が負でなければ、再度Ｓ３３０に移行する。
【００８９】
つまり、上記Ｓ３１０〜Ｓ３５０の処理では、Ａ／Ｄデータ受渡用ＲＡＭ３６に記憶されたチャンネルchm の１６個の検出電流値[chm，0]〜[chm，15] を、アドレスが最も大きい検出電流値[chm，15] から順に読み出し、電流積算値SUM に加算することにより、これら１６個の検出電流値[chm，0]〜[chm，15] の和を算出するのである。尚、Ｓ３３０で読み出す検出電流値のチャンネルchm は、当該処理を実行する度に、０〜３のいずれかに順に更新されるカウンタchm の値によって特定される。
【００９０】
次に、Ｓ３５０にて、カウンタmmの値が負になったと判断されると（換言すれば、チャンネルchm の検出電流値の和を表す電流積算値SUM が求められると）、Ｓ３６０に移行して、この電流積算値SUM をｎ回（本実施例では６回）右にシフトすることにより平均電流値VIO を算出する。
【００９１】
つまり、積算値ＳＵＭを構成するＡ／Ｄ変換１回当たりのＡ／Ｄ変換値の個数は、６４個（＝４×１６）であり、２6個となる。そして、デジタルデータを２nで除算するには、デジタルデータを除算すべき値の指数ｎ分右へシフトさせ、デジタルデータの下位ｎビット分を除去若しくは小数点以下のデータとした上位のビットデータをとればよい。そこで、Ｓ３５０では、電流積算値ＳＵＭからＡ／Ｄ変換１回当たりのＡ／Ｄ変換値（＝ＳＵＭ／２6）を求めるために、デジタルデータである電流積算値ＳＵＭを、除算すべき値２nの指数ｎ（＝６）分だけ右へシフトさせることにより、Ａ／Ｄ変換値の平均値（平均電流値）ＶＩ０を算出するのである。尚、Ｓ３６０の処理は、請求項１，２に記載の平均電流演算手段に相当する。
【００９２】
こうして、平均電流値VIO が算出されると、今度は、この平均電流値VIO とＤＭＡ２４を介してホストＣＰＵ１２から取り込んだ目標電流値VR(chm) との偏差EV(chm) に基づき、チャンネルchm のリニアソレノイドをデューティ駆動するためのデューティ比D0(chm) を求め、このデューティ比に基づきＰＷＭデータ受渡用ＲＡＭ２２に書き込むＰＷＭデータを算出するフィードバック計算を行う（Ｓ３７０〜Ｓ４１０）。
【００９３】
このフィードバック計算では、まず、前回求めたチャンネルchm の電流偏差EV(chm) をEVOLD として設定（Ｓ３７０）した後、Ｓ３６０で今回求めたチャンネルchm の平均電流値VIO と目標電流値VR(chm) との偏差EV(chm) を算出し（Ｓ３８０）、この偏差EV(chm) と、前回求めた偏差EVOLD と、予め設定された制御ゲインKP，KI（KP；比例ゲイン，KI；積分ゲイン）とをパラメータとする次式に基づき、デューティ比D0(chm) の補正値DD0(chm)を求める（Ｓ３９０）。
【００９４】
DD0＝KP×［｛EV(chm)−EVOLD｝＋KI×EV(chm)］
そして、現在設定されているチャンネルchmのデューティ比D0(chm) に補正値DD0（chm）を加えることにより、デューティ比D0（chm）を更新し（Ｓ４００）、更に、この更新したデューティ比D0（chm） と、チャンネルchm のリニアソレノイドＬ(chm) に対して予め設定されたＰＷＭ信号の周期CYCL(chm) とから、ＰＷＭ信号１周期当たりのスイッチング素子（ＮＰＮトランジスタ２９，ＦＥＴ２８）のオン時間ＴON(chm) を、次式の如く算出する（Ｓ４１０）。
【００９５】
ＴON(chm) ＝（D0(chm)／100）×CYCL(chm)
尚、上式において、デューティ比D0(chm) を「１００」で割っているのは、デューティ比D0（chm）の単位がパーセント（％）であるためである。
次に、このようにチャンネルchm のＰＷＭデータとして、スイッチング素子のオン時間ＴON(chm) が算出されると、今度は、Ｓ４２０にて、このオン時間ＴON(chm) と、ＰＷＭ信号の周期CYCL(chm) とを、夫々、ＰＷＭデータ受渡用ＲＡＭ２２の対応するチャンネルのアドレス領域に格納し、続くＳ４３０にて、ＰＷＭデータ受渡用ＲＡＭ２２内のチャンネルchm の更新フラグOVW(chm)をセットすることにより、ＰＷＭデータ受渡用ＲＡＭ２２内のチャンネルchm のリニアソレノイドＬ(chm) に対するＰＷＭデータを書き換える。
【００９６】
そして、続くＳ４４０では、平均電流値及びＰＷＭデータの対象となるリニアソレノイドＬ(chm)のチャンネルを特定するカウンタchm の値をインクリメント（＋１）し、続くＳ４５０にて、このカウンタchm の値が、リニアソレノイドＬ０〜Ｌ３のチャンネル数SNCH（本実施例では４）以上になったか否かを判断する。そして、カウンタchm の値がチャンネル数SNCH以上であれば、Ｓ４６０にて、カウンタchm の値を初期値「０」に設定した後、当該処理を終了し、逆にカウンタchm の値がチャンネル数SNCH未満であれば、そのまま当該処理を終了する。
【００９７】
以上のように、制御ＣＰＵ２０においては、所定の演算周期（２ｍsec.）毎に、カウンタchm の値で特定されるリニアソレノイドＬ(chm) に流れた平均電流値VIO を求め、この平均電流値VIO と目標電流値VRとからリニアソレノイドＬ(chm) をデューティ駆動するためのデューティ比を算出し、このデューティ比に応じてＰＷＭデータ受渡用ＲＡＭ２２内のチャンネルchm のＰＷＭデータを書き換える。そしてカウンタchm は、ＰＷＭデータの書き換えが完了する度に、上記Ｓ４４０〜Ｓ４６０の処理によって０〜３のいずれかの値に順に更新されることから、ＰＷＭデータ受渡用ＲＡＭ２２内の各チャンネルch0〜ch3のＰＷＭデータは、制御量演算処理が４回実行される度（換言すれば、８ｍsec.毎）に書き換えられることになる（図６参照）。
【００９８】
そして、平均電流値には、各チャンネル毎に、Ａ／Ｄデータ受渡用ＲＡＭ３６内の１６個の検出電流値を全て加算し、その値（電流積算値）SUM を、Ａ／Ｄ変換器３４側でのＡ／Ｄ変換回数６４（４×１６）で除算した値が設定されることから、平均電流値は、ＰＷＭ信号１周期分の時間である３３２８μsec.の間にリニアソレノイドに流れた平均電流値となり、制御に用いられる平均電流値の実際値からの遅れは、最大でも２０８μsec.となる。
【００９９】
次に、図７は、ＰＷＭ信号出力回路２６において、４個のリニアソレノイドＬ０〜Ｌ３に対して各々実行されるＰＷＭ信号出力処理を表すフローチャートであり、図８は、その動作を説明するタイムチャートである。
尚、以下に説明するＰＷＭ信号出力処理は、実際には各リニアソレノイドＬ０〜Ｌ３毎に設けられた論理回路によって実現されるものであり、ここでは、説明の便宜上、ＰＷＭ信号出力回路２６の動作をフローチャートに沿って説明する。
【０１００】
図７に示す如く、ＰＷＭ信号出力処理では、まずＳ５１０にて、ＰＷＭデータ受渡用ＲＡＭ２２から、制御対象となるリニアソレノイドＬ(chm) に対応したＰＷＭ信号の周期CYCL(chm) 及びオン時間ＴON(chm) を読み込み、その読み込んだ周期CYCL(chm) の２分の１の時間を周期時間Ｔ１、オン時間ＴON(chm) の２分の１の時間をＰＷＭ信号反転用のオン時間（第１時間に相当）Ｔ２、周期時間Ｔ１からオン時間Ｔ２を減じた時間をＰＷＭ信号反転用のオフ時間（第２時間に相当）Ｔ３として設定する。そして、続くＳ５２０では、計時用カウンタＣＮＴに周期時間Ｔ１を設定し、Ｓ５３０にて、ＰＷＭ信号の出力反転許可フラグPFLG2 をセット（PFLG2 ←High）する。
【０１０１】
次に、Ｓ５４０では、ＰＷＭデータ受渡用ＲＡＭ２２から、制御対象となるリニアソレノイドＬ(chm) に対応した更新フラグOVW(chm)を読み込み、この更新フラグOVW(chm)が「High」にセットされているか否かを判断する。そして、更新フラグOVW(chm)がセットされていなければＳ５７０に移行し、更新フラグOVW(chm)がセットされていれば、Ｓ５５０にて、上記Ｓ５１０と同様の手順で、オン時間Ｔ２及びオフ時間Ｔ３を設定し、Ｓ５６０にて、ＰＷＭデータ受渡用ＲＡＭ２２内の更新フラグOVW(chm)を「Low 」にリセットした後、Ｓ５７０に移行する。
【０１０２】
Ｓ５７０では、出力反転許可フラグPFLG2 が「High」にセットされているか否かを判断する。そして、出力反転許可フラグPFLG2 がセットされていれば、Ｓ５８０にて、現在ＰＷＭ信号をLow レベルからHighレベルに反転させるべき判定期間（オン判定期間）であるか、或いはＰＷＭ信号をHighレベルからLow レベルに反転させるべき判定期間（オフ判定期間）であるかを表す判定期間識別フラグPFLG1 が、「High」にセットされているか否かを判断する。
【０１０３】
そして、Ｓ５８０にて、判定期間識別フラグPFLG1 がセットされていると判断されると、現在はオン判定期間であるとして、Ｓ５９０に移行し、計時用カウンタＣＮＴの値がオン時間Ｔ２以下であるか否かを判断する。そして、計時用カウンタＣＮＴの値がオン時間Ｔ２以下であれば、Ｓ６００にて、ＰＷＭ信号の出力レベルを「High」に設定し、Ｓ６１０にて、出力反転許可フラグPFLG2 を「Low 」にリセットした後、Ｓ６２０に移行する。
【０１０４】
一方、Ｓ５８０で判定期間識別フラグPFLG1 がセットされていないと判断された場合には、現在はオフ判定期間であるとして、Ｓ６３０に移行し、計時用カウンタＣＮＴの値がオフ時間Ｔ３以下であるか否かを判断する。そして、計時用カウンタＣＮＴの値がオフ時間Ｔ３以下であれば、Ｓ６４０にて、ＰＷＭ信号の出力レベルを「Low 」に設定し、Ｓ６１０にて、出力反転許可フラグPFLG2 を「Low 」にリセットした後、Ｓ６２０に移行する。
【０１０５】
尚、Ｓ５７０にて、出力反転許可フラグPFLG2 がセットされていないと判断されるか、或いは、Ｓ５９０にて、計時用カウンタＣＮＴの値がオン時間Ｔ２以下ではないと判断された場合には、そのままＳ６２０に移行する。
そして、Ｓ６２０では、計時用カウンタＣＮＴをデクリメント（−１）し、更に、続くＳ６５０では、この計時用カウンタＣＮＴが「０」になったか否かを判断して、計時用カウンタＣＮＴが「０」になっていなければ、再度Ｓ５４０に移行し、逆に、計時用カウンタＣＮＴが「０」になっていれば、Ｓ６６０にて、判定期間識別フラグPFLG1 のセット・リセット状態を反転し、再度Ｓ５１０に移行する。
【０１０６】
即ち、このＰＷＭ信号出力処理では、制御対象となるリニアソレノイドＬ（chm） に流れる電流を制御するためのスイッチング素子に出力すべきＰＷＭ信号の周期CYCL(chm)の２分の１の時間を、周期時間Ｔ１として、計時用カウンタＣＮＴに書き込み（Ｓ５２０）、そのカウント値を一定周期でデクリメントする（Ｓ６２０）ことにより、周期時間Ｔ１をダウンカウントさせ、更に、そのカウント値が「０」になると、再度周期時間Ｔ１を計時用カウンタＣＮＴに書き込む（Ｓ５２０）ことにより、計時用カウンタＣＮＴを用いて、出力すべきＰＷＭ信号の周期の２分の１の時間を繰り返し計時する。
そして、この計時用カウンタＣＮＴによる周期時間Ｔ１の計時が完了する度に、判定期間識別フラグPFLG1 を反転する（Ｓ６６０）ことにより、ＰＷＭ信号の１周期の半分を、ＰＷＭ信号をLow レベルからHighレベルに反転してスイッチング素子をオンさせるオン判定期間、残りの半分を、ＰＷＭ信号をHighレベルからLow レベルに反転してスイッチング素子をオフさせるオフ判定期間として設定する。  そして、図８に示す如く、オン判定期間（Ｓ５８０；ＹＥＳ）では、計時用カウンタＣＮＴの値（周期時間Ｔ１の残り時間）が、ＰＷＭ信号の１周期当たりにスイッチング素子をオンさせるべきオン時間ＴON(chm) の２分の１の時間（オン時間Ｔ２）になった時点ｔONで、ＰＷＭ信号をLow レベルからHighレベルに反転させ（Ｓ６００）、逆に、オフ判定期間（Ｓ５８０；ＮＯ）では、計時用カウンタＣＮＴの値（周期時間Ｔ１の残り時間）が、ＰＷＭ信号の１周期当たりにスイッチング素子をオフさせるべきオフ時間（CYCL(chm)−ＴON(chm)）の２分の１の時間（オフ時間Ｔ３）になった時点ｔOFF で、ＰＷＭ信号をHighレベルからLow レベルに反転させる（Ｓ６４０）。
【０１０７】
また、周期時間Ｔ１，オン時間Ｔ２，オフ時間Ｔ３は、計時用カウンタＣＮＴによるＰＷＭ信号の周期の２分の１の時間（つまり周期時間Ｔ１）の計時が完了する度に、ＰＷＭデータ受渡用ＲＡＭ２２内のＰＷＭデータを読み出して更新し（Ｓ５１０）、更に、計時用カウンタＣＮＴによる周期時間Ｔ１の計時の途中であっても、ＰＷＭデータ受渡用ＲＡＭ２２内の更新フラグOVW(chm)がセットされたか否か（換言すれば、制御ＣＰＵ２０がＰＷＭデータを書き換えたか否か）を判断して（Ｓ５４０）、更新フラグOVW(chm)がセットされていれば、更新直後の新たなＰＷＭデータに従い、オン時間Ｔ２及びオフ時間Ｔ３を更新する（Ｓ５５０）。
【０１０８】
このため、ＰＷＭ信号出力回路２６から出力されるＰＷＭ信号は、従来装置のように、その立上がり或いは立下がりの一方のタイミングが固定されることはなく、ＰＷＭデータ（換言すれば出力すべきＰＷＭ信号のデューティ比）が更新された直後の立上がり及び立下がりタイミングのいずれかで、ＰＷＭ信号を、新たなＰＷＭデータに対応した信号に変化させることができる。つまり、ＰＷＭ信号の立上がり又は立下がりタイミングの一方を固定し、他方のタイミングを制御することにより、ＰＷＭ信号を生成していた従来装置では、ＰＷＭ信号のデューティ比を変化させることができるのは、ＰＷＭ信号の１周期に１回であり、ＰＷＭデータ更新後、ＰＷＭ信号がその更新後のデューティ比に対応するまでの遅れ時間が、最大、ＰＷＭ信号の１周期時間となるが、本実施例では、ＰＷＭ信号の立上がりと立下がりの両方のタイミングで、ＰＷＭ信号のデューティ比を制御できることから、ＰＷＭデータ更新後に、ＰＷＭ信号が更新後のデューティ比に対応するまでの遅れ時間が、最大、ＰＷＭ信号の周期の２分の１の時間となり、制御の応答性が向上する。
【０１０９】
また、特に本実施例では、ＰＷＭデータの更新フラグOVW(chm)から、ＰＷＭデータの更新状態を監視し、ＰＷＭデータが更新された場合には、判定期間の切換に同期させることなく、オン時間Ｔ２及びオフ時間Ｔ３を再計算することから、再計算時の判定期間内で、ＰＷＭ信号が未だ反転していなければ（換言すれば出力反転許可フラグPFLG2 がセット状態であれば）、再計算後のオン時間Ｔ２又はオフ時間Ｔ３に基づき、ＰＷＭ信号が反転されることになり、制御の応答性をより向上することができる。
【０１１０】
尚、本実施例においては、計時用カウンタＣＮＴに周期時間Ｔ１をセットして、これをダウンカウントすることにより、ＰＷＭ信号の周期の２分の１の時間を計時する、Ｓ５２０及びＳ６２０の処理が、計時手段に相当し、ＰＷＭ信号反転用のオン時間Ｔ２、及びオフ時間Ｔ３を算出するＳ５１０の処理が、反転時間演算手段に相当し、オン時間Ｔ２又はオフ時間Ｔ３と計時用カウンタＣＮＴの値とを比較するＳ５９０及びＳ６３０の処理が、計時時間判定手段に相当し、その比較結果に基づきＰＷＭ信号の出力レベルを反転させるＳ６００及びＳ６４０の処理が、信号レベル設定手段に相当する。また、更新フラグOVW(chm)がセットされたか否かによって、ＰＷＭデータの更新を監視するＳ５４０の処理が、監視手段に相当し、Ｓ５４０にてＰＷＭデータが更新されたことが検出された直後に、ＰＷＭ信号反転用のオン時間Ｔ２及びオフ時間Ｔ３を再計算するＳ５５０の処理が、反転時間更新手段に相当する。
【０１１１】
以上説明したように、本実施例の自動車用リニアソレノイド制御装置においては、Ａ／Ｄ変換器３４側で、制御対象となる各リニアソレノイドＬ０〜Ｌ３毎に、リニアソレノイドに流れた電流を表す電流検出信号を、一定のＡ／Ｄ変換周期（５２μsec.）でＡ／Ｄ変換し、その４回分のＡ／Ｄ変換値の和を検出電流値として、Ａ／Ｄデータ受渡用ＲＡＭ３６に格納する。そして、制御ＣＰＵ２０側で、そのＡ／Ｄデータ受渡用ＲＡＭ３６に格納された過去１６回分の検出電流値から、その期間中（本実施例では、ＰＷＭ信号１周期時間）にリニアソレノイドに流れた平均電流値を求め、この平均電流値と目標電流値とからＰＷＭデータを生成し、ＰＷＭデータ受渡用ＲＡＭ２２に書き込む。
【０１１２】
このため、制御ＣＰＵ２０で算出される平均電流値の、リニアソレノイドに実際に流れた電流値からの遅れは、最大でも２０８μsec.となり、積分回路等を用いて電流検出信号を平滑化する従来装置に比べて、電流フィードバック系での応答遅れを抑制することができ、図９（ａ）に示す如く、目標電流値が変化してから（時点ｔ0 ）、リニアソレノイドに実際に流れる制御電流が安定するまでの時間を短くし、制御の応答性を向上できる。
【０１１３】
また、平均電流値は、ＰＷＭ信号１周期当たりの時間内にＡ／Ｄ変換器３４でＡ／Ｄ変換された検出電流値の総和から求めるようにしているので、図９（ｂ）に示す如く、平均電流値を求める制御ＣＰＵ２０の演算タイミングｔE と、ＰＷＭ信号とが同期していなくても、得られる平均電流値は常に安定し、ＰＷＭ信号のデューティ比が一定で、リニアソレノイドに流れる電流が一定であれば、得られる平均電流値も一定となる。このため、本実施例によれば、制御の応答性を向上できるだけでなく、制御の安定性をも向上することが可能になる。
【０１１４】
また、既述したように、ＰＷＭ信号出力回路２６側でＰＷＭ信号を生成する際に、ＰＷＭデータの更新直後から、ＰＷＭ信号をその更新後のＰＷＭデータに対応させることができるので、ＰＷＭ信号出力回路２６側で生じる遅れも低減でき、制御の応答性をより向上することが可能になる。
【０１１５】
以上、本発明の一実施例について説明したが、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。
例えば、上記実施例においては、図８からわかるように、制御ＣＰＵ側での演算周期（オンＴONの周期）が、ＰＷＭ信号１周期の時間よりも長くなるようにしているが、制御ＣＰＵ側での演算周期を、ＰＷＭ信号１周期の時間よりも短くなるように設定してもよい。
【０１１６】
また例えば、上記実施例では、制御ＣＰＵ２０において実行される制御量演算処理では、電流積算値SUM を算出する際、電流積算値SUM に、Ａ／Ｄデータ受渡用ＲＡＭ３６から読み出した検出電流値dat[chm，mm] を加算してゆくものとして説明したが、本実施例では、Ａ／Ｄ変換器３４には、ＭＰＸ３２を介して、電流検出用抵抗Ｒ０の両端電圧を差動増幅する差動増幅器３０からの出力（電流検出信号）がそのまま入力されることから、Ａ／Ｄ変換器３４によるＡ／Ｄ変換結果（換言すれば、Ａ／Ｄデータ受渡用ＲＡＭに書き込まれる検出電流値）は、電流検出信号に重畳されたノイズの影響を受けて、異常電流値になる虞がある。
【０１１７】
そこで、図５のＳ３３０にて実行される電流積算値SUM の演算処理では、例えば図１０（ａ）に示す如く、Ａ／Ｄデータ受渡用ＲＡＭ３６から読み出した検出電流値dat[chm，mm]  が正常であるか否かをチェックし（Ｓ７１０）、チェックの結果、検出電流値dat[chm，mm]が正常値であれば（Ｓ７２０；ＹＥＳ）、読み出した検出電流値dat[chm，mm]をそのまま電流積算値SUM に加算する（Ｓ７３０）ことにより、電流積算値SUM を更新し、検出電流値dat[chm，mm]が異常値であれば（Ｓ７２０；ＮＯ）、今回読み出した検出電流値dat[chm，mm]の前後のアドレス（mm-1，mm+1；但し、mm＝０であればmm-1は最大アドレス１５とし、mm＝１５であればmm+1は最小アドレス０とする）に格納された検出電流値dat[chm，mm-1]とdat[chm，mm+1]との平均値「｛dat[chm，mm-1]＋dat[chm，mm+1]｝／２」を算出し、その平均値を電流積算値SUM に加算する（Ｓ７４０）ことにより、電流積算値SUM を更新するようにするとよい。
【０１１８】
つまり、検出電流値dat[chm，mm] が異常値である場合には、その前後の検出電流値dat[chm，mm-1]、dat[chm，mm+1]の平均値から、検出電流値dat[chm，mm]の正常値を推定し、その値を電流積算値SUM に加算することにより、電流積算値SUM がノイズの影響を受けた異常な検出電流値にて更新されるのを防止するのである。
【００１１９】
そして、このようにすれば、電流積算値ＳＵＭ、延いては、平均電流値ＶＩＯを、ノイズの影響を受けることなく高精度に求めることができ、制御精度を向上できる。尚、検出電流値ｄａｔ［ｃｈｍ，ｍｍ］が正常であるか否かをチェックするＳ７１０のチェック処理（この処理は請求項１に記載の異常判定手段に相当する）は、例えば、図１０（ｂ）に示す如く、検出電流値ｄａｔ［ｃｈｍ，ｍｍ］が通常とり得る値の最大値Ｋ（この値Ｋは予め設定しておけばよい）を越えているか否かを判断し（Ｓ８１０）、検出電流値ｄａｔ［ｃｈｍ，ｍｍ］が最大値Ｋを越えていなければ、検出電流値ｄａｔ［ｃｈｍ，ｍｍ］は正常値であると判断し（Ｓ８２０）、検出電流値ｄａｔ［ｃｈｍ，ｍｍ］が最大値Ｋを越えていれば、検出電流値ｄａｔ［ｃｈｍ，ｍｍ］は異常値であると判断する（Ｓ８３０）ようにすればよい。
【０１２０】
また、このように平均電流値VIO をノイズの影響を受けることなく高精度に求めるようにするには、例えば、図１０（ｃ）に示す如く、差動増幅器３０からＭＰＸ３２に至る電流検出信号の入力経路に、コンデンサＣと抵抗Ｒとからなるノイズ除去用のフィルタを設け、Ａ／Ｄ変換器３４に入力される電流検出信号から直接ノイズを除去するようにしてもよい。
【０１２１】
尚、上記実施例では、制御ＣＰＵ２０と、ＰＷＭ信号出力回路２６及びＡ／Ｄ変換器３４とは、夫々、異なる発振子２０ａ，２６ａからのクロック信号を受けて非同期に動作するものとして説明したが、これら各部を動作させるためのクロック信号を一つの発振子で生成するようにしてもよい。そして、この場合には、１個の発振子で実現できるため、装置構成をより簡単にできる。
【図面の簡単な説明】
【図１】  実施例の自動車用リニアソレノイド制御装置の構成を表す概略構成図である。
【図２】  ＰＷＭデータ受渡用ＲＡＭ，Ａ／Ｄデータ受渡用ＲＡＭ，及びＡ／Ｄ変換器内のＲＡＭに夫々格納されるデータ構造を表す説明図である。
【図３】  Ａ／Ｄ変換器にて実行されるＡ／Ｄ変換処理を表すフローチャートである。
【図４】  Ａ／Ｄ変換器の動作を表すタイムチャートである。
【図５】  制御ＣＰＵにて実行される制御量演算処理を表すフローチャートである。
【図６】  制御ＣＰＵの動作を表すタイムチャートである。
【図７】  ＰＷＭ信号出力回路にて実行されるＰＷＭ信号出力処理を表すフローチャートである。
【図８】  ＰＷＭ信号出力回路の動作を表すタイムチャートである。
【図９】  実施例の効果を説明する説明図である。
【図１０】  実施例の自動車用リニアソレノイド制御装置の他の構成例を説明する説明図である。
【図１１】  従来のリニアソレノイド制御装置の構成を表す概略構成図である。
【図１２】  従来の問題点を説明する説明図である。
【符号の説明】
Ｌ０…リニアソレノイド、Ｒ０…電流検出用抵抗、１０…自動車用リニアソレノイド制御装置、１２…ホストＣＰＵ、１４…リニアソレノイド制御ＩＣ、２０ａ，２６ａ…発振子、２２…ＰＷＭデータ受渡用ＲＡＭ、２６…ＰＷＭ信号出力回路、２８…ＦＥＴ（スイッチング素子）、２９…ＮＰＮトランジスタ、３０…差動増幅器、３４…Ａ／Ｄ変換器、３６…Ａ／Ｄデータ受渡用ＲＡＭ。
【図１】
0004091163.tif 000002
【図２】
0004091163.tif 000003
【図３】
0004091163.tif 000004
【図４】
0004091163.tif 000005
【図５】
0004091163.tif 000006
【図６】
0004091163.tif 000007
【図７】
0004091163.tif 000008
【図８】
0004091163.tif 000009
【図９】
0004091163.tif 000010
【図１０】
0004091163.tif 000011
【図１１】
0004091163.tif 000012
【図１２】
0004091163.tif 000013