(57)【特許請求の範囲】
【請求項１】
ソレノイドに流れる電流を検出する検出部と、
前記ソレノイドに電流を流すためのスイッチング素子を所定のＰＷＭ周期でＰＷＭ制御する制御部と、
前記検出部で検出された電流値を前記所定のＰＷＭ周期のｎ倍の周期でサンプリングしアナログデジタル変換することによりＰＷＭ周期毎にｎ回のＡＤ変換値を出力するＡ／Ｄ変換部と、
前記Ａ／Ｄ変換部からのｎ回のＡＤ変換値を記憶するＦＩＦＯバッファを有する移動平均演算部と、を備え、
前記移動平均演算部は、過去のｎ回のＡＤ変換値を加算した加算結果から前記ＦＩＦＯバッファからの最も古い１回のＡＤ変換値を減算して得られる（ｎ−１）回のＡＤ変換値に対し、前記Ａ／Ｄ変換部からの最新の１回のＡＤ変換値を加算してｎ回のＡＤ変換値の移動平均用総和値を得、当該移動平均用総和値をｎで除算することにより移動平均値を演算し、
前記移動平均演算部は、
前記Ａ／Ｄ変換部からのｎ回のＡＤ変換値を記憶するＦＩＦＯバッファと、
過去のｎ回のＡＤ変換値を加算した加算結果を記憶するレジスタと、
前記レジスタからのｎ回のＡＤ変換値を加算した加算結果から、前記ＦＩＦＯバッファからの最も古い１回のＡＤ変換値を減算して（ｎ−１）回のＡＤ変換値を得る第１の加算器と、
前記第１の加算器からの（ｎ−１）回のＡＤ変換値に前記Ａ／Ｄ変換部からの最新の１回のＡＤ変換値を加算してｎ回のＡＤ変換値の移動平均用総和値を得る第２の加算器と、
前記第２の加算器からの移動平均用総和値をｎで除算することにより移動平均値を演算する除算器と、
前記所定のＰＷＭ周期毎に、前記Ａ／Ｄ変換部からのｎ回のＡＤ変換値を加算して得られた周期平均用総和値を出力する第３の加算器と、
前記所定のＰＷＭ周期の最後に、前記第２の加算器からの移動平均用総和値を前記第３の加算器で得られた周期平均用総和値に置き換える補正部と、
を備えることを特徴とする電流検出回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＷＭ制御で動作するソレノイドの電流を検出する電流検出回路に関する。
【背景技術】
【０００２】
従来の電流検出回路として、例えば、特許文献１に記載されたものが知られている。特許文献１に記載された電流検出回路は、電動機を可変制御するＰＷＭインバータに係わり、ＰＷＭインバータはキャリア信号（鋸波）と周波数指令（正弦波）とからＰＷＭ波形を生成し、このＰＷＭ波形をゲート信号としてインバータ主回路のスイッチング素子をオンオフ制御する。
【０００３】
この場合、ＰＷＭ制御中の電流は、鋸波形となるため、ソレノイドを精度良く制御するために平均電流を演算する必要がある。この手法として、ＰＷＭ周期の整数倍でサンプリングし、サンプリングされた複数のサンプリング値をＰＷＭ周期毎に平均化する手法が用いられている。この手法では、平均電流値の演算結果がＰＷＭ周期毎でしか変換しないため、電流が変化する状況では、実電流と演算結果の平均電流には大きな差が現われるという課題を有していた。
【０００４】
一方、上記課題を解決する手法として、ＰＷＭ周期の整数倍でサンプリングし、サンプリング毎に直前のＰＷＭ周期分のサンプリング値で平均化処理を連続して行う方法がある。この方法は、ＰＷＭ周期の整数倍を維持したまま移動平均を算出している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２１９６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の移動平均方式では、演算量が多量であり、処理時間が長くなっていた。
【０００７】
本発明の課題は、演算量を少なくできる電流検出回路を提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係る電流検出回路は、ソレノイドに流れる電流を検出する検出部と、前記ソレノイドに電流を流すためのスイッチング素子を所定のＰＷＭ周期でＰＷＭ制御する制御部と、前記検出部で検出された電流値を前記所定のＰＷＭ周期のｎ倍の周期でサンプリングしアナログデジタル変換することによりＰＷＭ周期毎にｎ回のＡＤ変換値を出力するＡ／Ｄ変換部と、前記Ａ／Ｄ変換部からのｎ回のＡＤ変換値を記憶するＦＩＦＯバッファを有する移動平均演算部とを備え、前記移動平均演算部は、過去のｎ回のＡＤ変換値を加算した加算結果から前記ＦＩＦＯバッファからの最も古い１回のＡＤ変換値を減算して得られる（ｎ−１）回のＡＤ変換値に対し、前記Ａ／Ｄ変換部からの最新の１回のＡＤ変換値を加算してｎ回のＡＤ変換値の移動平均用総和値を得、当該移動平均用総和値をｎで除算することにより移動平均値を演算し、前記移動平均演算部は、前記Ａ／Ｄ変換部からのｎ回のＡＤ変換値を記憶するＦＩＦＯバッファと、過去のｎ回のＡＤ変換値を加算した加算結果を記憶するレジスタと、前記レジスタからのｎ回のＡＤ変換値を加算した加算結果から、前記ＦＩＦＯバッファからの最も古い１回のＡＤ変換値を減算して（ｎ−１）回のＡＤ変換値を得る第１の加算器と、前記第１の加算器からの（ｎ−１）回のＡＤ変換値に前記Ａ／Ｄ変換部からの最新の１回のＡＤ変換値を加算してｎ回のＡＤ変換値の移動平均用総和値を得る第２の加算器と、前記第２の加算器からの移動平均用総和値をｎで除算することにより移動平均値を演算する除算器と、前記所定のＰＷＭ周期毎に、前記Ａ／Ｄ変換部からのｎ回のＡＤ変換値を加算して得られた周期平均用総和値を出力する第３の加算器と、前記所定のＰＷＭ周期の最後に、前記第２の加算器からの移動平均用総和値を前記第３の加算器で得られた周期平均用総和値に置き換える補正部と、
を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、移動平均演算部は、過去のｎ回のＡＤ変換値を加算した加算結果から、ＦＩＦＯバッファからの最も古い１回のＡＤ変換値を減算して（ｎ−１）回のＡＤ変換値を得て、（ｎ−１）回のＡＤ変換値にＡ／Ｄ変換部からの最新の１回のＡＤ変換値を加算してｎ回のＡＤ変換値の移動平均用総和値を得、当該移動平均用総和値をｎで除算することにより移動平均値を演算し、所定のＰＷＭ周期毎に、ｎ回のＡＤ変換値を加算して得られた周期平均用総和値を出力し、所定のＰＷＭ周期の最後に、移動平均用総和値を周期平均用総和値に置き換えるので、演算量を少なくできる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１に係る電流検出回路の回路構成を示す図である。
【図２】本発明の実施例１に係る電流検出回路の移動平均演算部のハードウェア構成を示す図である。
【図３】本発明の実施例１に係る電流検出回路の移動平均演算部によるデータ補正処理を説明するための波形図である。
【図４】本発明の実施例２に係る電流検出回路の回路構成を示す図である。
【図５】本発明の実施例２に係る電流検出回路の移動平均演算処理を示すフローチャートである。
【図６】本発明の実施例の移動平均電流と従来のＰＷＭ周期毎度の平均電流を示す図である。
【図７】従来の電流検出回路の移動平均値のデータ異常が発生した様子を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
【実施例１】
【００１２】
図１は、本発明の実施例１に係る電流検出回路の回路構成を示す図である。図１に示す電流検出回路は、ＰＷＭ制御で動作するソレノイドＬの電流を検出するもので、電源Ｅ、スイッチング素子Ｑ１、ソレノイドＬ、電流検出抵抗Ｒ１、ダイオードＤ１、目標電流値入力部１１、オペアンプ１２、Ａ／Ｄ変換器１３、移動平均演算部１４、比較器１５、制御部１６を備えている。
【００１３】
スイッチング素子Ｑ１は、ＭＯＳＦＥＴからなり、ドレインが電源Ｅの正極に接続され、ソースが電流検出抵抗Ｒ１を介してソレノイドＬに接続されている。制御部１６は、所定のＰＷＭ周期でスイッチング素子Ｑ１をＰＷＭ制御することによりソレノイドＬに電流を流す。ソレノイドＬは、ソレノイドバブル或いは誘導電動機などの電動機を構成する。即ち、ソレノイドＬを駆動することにより、ソレノイドバブル或いは電動機をＰＷＭ制御する。
【００１４】
電流検出抵抗Ｒ１は、本発明の検出部に相当し、ソレノイドＬに流れる電流を検出する。オペアンプ１２は、電流検出抵抗Ｒ１で検出された電流を増幅してＡ／Ｄ変換器１３に出力する。
【００１５】
Ａ／Ｄ変換器１３は、オペアンプ１２からの電流検出抵抗Ｒ１で検出された電流値を制御部１６のＰＷＭ周期の整数倍ｎの短い周期で複数回サンプリングしてアナログデジタル変換することによりＰＷＭ周期のｎ倍の周期でＡＤ変換値を移動平均演算部１４に出力する。
【００１６】
移動平均演算部１４は、Ａ／Ｄ変換器１３からのＰＷＭ周期のｎ倍の周期のＡＤ変換値に基づき移動平均値を演算する。移動平均演算部１４の詳細については、後述する。
【００１７】
目標電流値入力部１１は、目標電流値を入力して比較器１５に出力する。比較器１５は、移動平均演算部１４で演算された移動平均値と目標電流値入力部１１からの目標電流値とを比較してＰＷＭ信号を生成し、生成されたＰＷＭ信号を制御部１６に出力する。
【００１８】
図２は実施例１の移動平均演算部のハードウェア構成を示す図である。移動平均演算部１４は、ＦＩＦＯ（First In First Out）バッファ１４１、加算器１４２、加算器１４３、加算器１４４、セレクタ１４５、レジスタ１４６、除算器１４７を有している。
【００１９】
ここでは、ＰＷＭ周期毎に例えば６４回（整数倍ｎ＝６４）サンプリングした場合を説明する。ＦＩＦＯバッファ１４１は、ＰＷＭ周期毎にＡ／Ｄ変換器１３からの例えば６４回分のＡＤ変換値を記憶する。１回分のＡＤ変換値は、例えば１２ビット幅である。レジスタ１４６は、過去の６４回分のＡＤ変換値を加算した加算結果を記憶する。
【００２０】
加算器１４２は、本発明の第１の加算器に対応し、ＦＩＦＯバッファ１４１から最も古い１回分のＡＤ変換値を読み出し、レジスタ１４６からの６４回分のＡＤ変換値を加算した加算結果から、ＦＩＦＯバッファ１４１からの１回分のＡＤ変換値を減算し、６３回分のＡＤ変換値を加算器１４３に出力する。
【００２１】
加算器１４３は、本発明の第２の加算器に対応し、加算器１４２からの６３回分のＡＤ変換値に最新の１回分のＡＤ変換値を加算して６４回分のＡＤ変換値の移動平均用総和値を得て、セレクタ１４５に出力する。
【００２２】
除算器１４７は、レジスタ１４６からの６４回分のＡＤ変換値を加算した加算結果を６４で除算することにより電流の移動平均値を求める。
【００２３】
加算器１４４は、本発明の第３の加算器に対応し、Ａ／Ｄ変換器１３からの６４回分のＡＤ変換値を加算し、ＰＷＭ周期毎に、６４回加算したＡＤ変換値を周期平均用総和値としてセレクタ１４５に出力する。
【００２４】
除算器１４７は、ＰＷＭ周期毎に、６４回加算したＡＤ変換値を６４で除算することにより、電流値の平均値を演算する。
【００２５】
セレクタ１４５は、ＰＷＭ周期ではないタイミングでは、加算器１４３の加算出力を選択してレジスタ１４６に出力し、ＰＷＭ周期のタイミングでは、加算器１４４の加算出力を選択してレジスタ１４６に出力する。
【００２６】
即ち、セレクタ１４５は、所定のＰＷＭ周期の最後に、加算器１４３からの移動平均用総和値を加算器１４４で得られた周期平均用総和値に置き換える本発明の補正部を構成する。
【００２７】
このように実施例１の電流検出回路によれば、加算器１４２は、ＦＩＦＯバッファ１４１から最も古いサンプリング１回分のＡＤ変換値を読み出し、レジスタ１４６からの６４回分のＡＤ変換値を加算した加算結果から、ＦＩＦＯバッファ１４１からの１回分のＡＤ変換値を減算し、６３回分のＡＤ変換値を求める。加算器１４３は、加算器１４２からの６３回分のＡＤ変換値に最新の１回分のＡＤ変換値を加算して移動平均用総和値を得る。除算器１４７は、加算器１４３からの移動平均用総和値を６４で除算することで、移動平均値を求めることができるので、演算量を少なくできる。
【００２８】
また、セレクタ１４５が、所定のＰＷＭ周期の最後に、加算器１４３で演算された移動平均用総和値に基づく移動平均値を、加算器１４４で演算された周期平均用総和値に基づく平均値に置き換える。図３に示すように、時刻ｔ２において、予期しないエラーなどにより移動平均値にデータ異常が発生しても、駆動信号のＰＷＭ周期である時刻ｔ３において、異常な移動平均値をＰＷＭ周期毎度の平均値に置き換えているので、移動平均値が正しい値となる。従って、異常データが発生しても、異常データが引き継ぎされることがなくなる。
【００２９】
また、図６に、複数のＰＷＭ周期に亙って、実施例の移動平均電流と従来のＰＷＭ周期毎度の平均電流を示した。図６から実施例の移動平均電流は滑らかに変換していることがわかる。
【実施例２】
【００３０】
図４は、本発明の実施例２に係る電流検出回路の回路構成を示す図である。図４に示す実施例２に係る電流検出回路は、実施例１と同様の機能をソフトウェア構成で実現したものであり、移動平均演算部１４ＡがＣＰＵ（中央処理装置）１４８、ＲＡＭ（ランダムアクセスメモリ）１４９、プログラム用メモリ１５０を備えることを特徴とする。
【００３１】
プログラム用メモリ１５０は、電流の移動平均演算処理を行うためのプログラムを格納している。ＣＰＵ１４８は、プログラム用メモリ１５０に格納された電流の移動平均演算処理を行うためのプログラムの各命令を順番に読み出して、各命令の処理を実行する（図５のフローチャートの各処理）。即ち、実施例２に係る電流検出回路は、ソフトウェアを用いて、実施例１の移動平均演算部１４の処理と同じ処理を行うことを特徴とする。
【００３２】
図４において、移動平均演算部１４Ａ以外のその他の構成は、図１に示す構成と同一であるので、ここでは、図５のフローチャートを参照しながら、移動平均演算部１４Ａの移動平均演算処理を説明する。
【００３３】
まず、周期平均用総和値を０とし、移動平均用総和値を０とし、移動平均値を０とし、ＡＤ変換回数を０とし、ＦＩＦＯバッファ１４１を０に初期化する（ステップＳ１１）。
【００３４】
ここで、周期平均用総和値は、ＰＷＭ一周期の間のＡＤ変換値の結果の総和値を表す。移動平均用総和値は、その時点のＡＤ変換値を含めた過去ｎ回のＡＤ変換値の総和値を表す。移動平均値はその時点のＡＤ変換値を含めた過去ｎ回のＡＤ変換値の平均値を表す。ＡＤ変換回数は、ＰＷＭ一周期の間をｎ回に分割した時のＰＷＭ開始からのＡＤ変換回数を表す。
【００３５】
次に、周期開始のイベントフラグを確認する（ステップＳ１２）。ＰＷＭ周期が開始したかどうかを判定する（ステップＳ１３）。ＰＷＭ周期開始は、ソレノイドＬを駆動するＰＷＭ制御波形の立ち上がりタイミングを表す。
【００３６】
ＰＷＭ周期が開始したと判定された場合には、ＰＷＭ周期開始のイベントフラグをクリアする（ステップＳ１４）。即ち、ＡＤ変換回数を０にし、ＰＷＭ周期平均用総和値を０にして、ステップＳ１２の処理に戻る。
【００３７】
ステップＳ１３において、ＰＷＭ周期が開始していないと判定された場合には、ＡＤ変換完了イベントフラグを確認する（ステップＳ１５）。次に、ＡＤ変換が完了したかどうかを判定する（ステップＳ１６）。ＡＤ変換完了は、ＡＤ変換結果の出力タイミングを表す。ＡＤ変換が完了したと判定された場合には、ＡＤ変換完了イベントフラグをクリアし、ＡＤ変換値を入力し、ＡＤ変換回数を１だけインクリメントする（ステップＳ１７）。
【００３８】
次に、ＡＤ変換回数がｎ未満かどうかを判定し（ステップＳ１８）、ＡＤ変換回数がｎ未満であると判定された場合には、ＦＩＦＯバッファ１４１にＡＤ変換値を入力し、移動平均用総和値にＡＤ変換値を加算した結果からＦＩＦＯ出力値を減算して移動平均用総和値を求める（ステップＳ１９）。また、周期平均用総和値にＡＤ変換値を加算して周期平均用総和値を得る。
【００３９】
次に、移動平均用総和値をｎで除算して移動平均値を求め、移動平均値を出力する（ステップＳ２０）。従って、移動平均演算部１４Ａは、ステップＳ１９で得られた移動平均用総和値を６４で除算することで、移動平均値を求めることができるので、演算量を少なくできる。
【００４０】
一方、ステップＳ１８において、ＡＤ変換回数がｎ以上である場合には、ＡＤ変換回数がｎであるかどうかを判定する（ステップＳ２１）。ＡＤ変換回数がｎより大きい場合には、ステップＳ１２の処理に戻る。
【００４１】
ＡＤ変換回数がｎである場合には、即ち、ＰＷＭ周期のときに、周期平均用総和値にその時のＡＤ変換値を加算して周期平均用総和値とし、その周期平均用総和値を移動平均用総和値に置き換え（ステップＳ２２）、ステップＳ２０の処理に進む。
【００４２】
即ち、予期しないエラーなどにより移動平均値にデータ異常が発生しても、駆動信号のＰＷＭ周期で異常な移動平均値をＰＷＭ周期毎の平均値に置き換えているので、移動平均値が正しい値となる。従って、異常データが発生しても、異常データが引き継ぎされることがなくなる。このように、本発明は、ハードウェア構成でもソフトウェア構成でも実現できる。
【符号の説明】
【００４３】
Ｑ１  スイッチング素子
Ｄ１  ダイオード
Ｒ１  電流検出抵抗
Ｅ  電源
Ｌ  ソレノイド
１１  目標電流値入力部
１２  オペアンプ
１３  Ａ／Ｄ変換部
１４，１４Ａ  移動平均演算部  
１５  比較器
１６  制御部
１４１  ＦＩＦＯバッファ
１４２，１４３，１４４  加算器
１４５  セレクタ
１４６  レジスタ
１４７  除算器
１４８  ＣＰＵ
１４９  ＲＡＭ
１５０  プログラム用メモリ
【図１】
0006519238.tif 000002
【図２】
0006519238.tif 000003
【図３】
0006519238.tif 000004
【図４】
0006519238.tif 000005
【図５】
0006519238.tif 000006
【図６】
0006519238.tif 000007
【図７】
0006519238.tif 000008