(57)【要約】【課題】ヒステリシス回路において、入力信号値に発生した振動およびビット飛びに起因する出力信号値への影響を排除する。【解決手段】ヒステリシス回路３０は、クロックに同期してＡ／Ｄ変換部３０からの入力信号のヒステリシスに応じた出力信号を生成する。ヒステリシス回路３０は、１クロック前の入力信号値と１クロック前の出力信号値との差分値を演算し、演算した差分値に従って現在のクロックの出力信号値を生成する。ヒステリシス回路３０は、差分値が正の閾値以上のときに、１クロック前の出力信号値に１ビットを加算した値を、現在のクロックの出力信号値とし、差分値が負の閾値以下のときに、１クロック前の出力信号値から１ビットを減算した値を、現在のクロックの出力信号値とし、差分値が正の閾値未満かつ負の閾値より大きいときに、１クロック前の出力信号値を現在のクロックの出力信号値とする。【選択図】図１
2014074605.tif 000002
【特許請求の範囲】
【請求項１】
クロックに同期して、デジタルの入力信号のヒステリシスに応じた出力信号の生成を行なうヒステリシス回路であって、
１クロック前の入力信号値と１クロック前の出力信号値との差分値を演算する減算回路と、
前記減算回路からの差分値に従って現在のクロックの出力信号値を生成して出力する出力回路とを備え、
前記出力回路は、
前記差分値が正の閾値以上であるときに、前記１クロック前の出力信号値に１ビットを加算した値を、前記現在のクロックの出力信号値として出力し、
前記差分値が負の閾値以下であるときに、前記１クロック前の出力信号値から１ビットを減算した値を、前記現在のクロックの出力信号値として出力し、
前記差分値が前記正の閾値未満であって、かつ、前記負の閾値より大きいときに、前記１クロック前の出力信号値を、前記現在のクロックの出力信号値として出力する、ヒステリシス回路。
【請求項２】
前記正の閾値および前記負の閾値は、前記入力信号値の振動幅に応じて設定される、請求項１に記載のヒステリシス回路。
【請求項３】
前記正の閾値および前記負の閾値は、各々の絶対値が、前記入力信号値の振動幅の半分の値に１ビットを加算した値に設定される、請求項２に記載のヒステリシス回路。
【請求項４】
前記クロックの複数倍の周期を有するサブクロックに同期して動作し、前記サブクロックの１周期における前記差分値の最大値および最小値を演算する演算回路と、
前記演算回路からの前記差分値の最大値と前記差分値の最小値とを加算するとともに、その加算結果が１以上である場合に加算指令を発生する一方で、その加算結果が−１以下である場合に減算指令を発生する指令生成回路とをさらに備え、
前記出力回路は、
前記差分値が前記正の閾値未満であって、かつ、前記負の閾値より大きいときに、前記加算指令を受けた場合には、前記１クロック前の出力信号値に１ビットを加算した値を、前記現在のクロックの出力信号値をして出力し、
前記差分値が前記正の閾値未満であって、かつ、前記負の閾値より大きいときに、前記減算指令を受けた場合には、前記１クロック前の出力信号値から１ビットを減算した値を、前記現在のクロックの出力信号値として出力する、請求項１から３のいずれか１項に記載のヒステリシス回路。
【請求項５】
回転体の回転角度を検出するレゾルバの出力信号をデジタルの角度信号に変換するためのレゾルバ／デジタルコンバータであって、
前記レゾルバの出力信号を前記角度信号に変換するアナログ／デジタル変換部と、
クロックに同期して、前記アナログ／デジタル変換部からの入力信号のヒステリシスに応じた出力信号を生成し、前記角度信号として出力するヒステリシス回路とを備え、
前記ヒステリシス回路は、
１クロック前の入力信号値と１クロック前の出力信号値との差分値を演算する減算回路と、
前記減算回路からの差分値に従って現在のクロックの出力信号値を生成して出力する出力回路とを含み、
前記出力回路は、
前記差分値が正の閾値以上であるときに、前記１クロック前の出力信号値に１ビットを加算した値を、前記現在のクロックの出力信号値として出力し、
前記差分値が負の閾値以下であるときに、前記１クロック前の出力信号値から１ビットを減算した値を、前記現在のクロックの出力信号値として出力し、
前記差分値が前記正の閾値未満であって、かつ、前記負の閾値より大きいときに、前記１クロック前の出力信号値を、前記現在のクロックの出力信号値として出力する、レゾルバ／デジタルコンバータ。
【請求項６】
前記正の閾値および前記負の閾値は、前記入力信号値の振動幅に応じて設定される、請求項５に記載のレゾルバ／デジタルコンバータ。
【請求項７】
前記正の閾値および前記負の閾値は、各々の絶対値が、前記入力信号値の振動幅の半分の値に１ビットを加算した値に設定される、請求項６に記載のレゾルバ／デジタルコンバータ。
【請求項８】
前記クロックの複数倍の周期を有するサブクロックに同期して動作し、前記サブクロックの１周期における前記差分値の最大値および最小値を演算する演算回路と、
前記演算回路からの前記差分値の最大値と前記差分値の最小値とを加算するとともに、その加算結果が１以上である場合に加算指令を発生する一方で、その加算結果が−１以下である場合に減算指令を発生する指令生成回路とをさらに備え、
前記出力回路は、
前記差分値が前記正の閾値未満であって、かつ、前記負の閾値より大きいときに、前記加算指令を受けた場合には、前記１クロック前の出力信号値に１ビットを加算した値を、前記現在のクロックの出力信号値をして出力し、
前記差分値が前記正の閾値未満であって、かつ、前記負の閾値より大きいときに、前記減算指令を受けた場合には、前記１クロック前の出力信号値から１ビットを減算した値を、前記現在のクロックの出力信号値として出力する、請求項５から７のいずれか１項に記載のレゾルバ／デジタルコンバータ。
【請求項９】
前記サブクロックは、前記レゾルバに入力される励磁信号の周期の複数倍の周期を有する、請求項８に記載のレゾルバ／デジタルコンバータ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ヒステリシス回路に関し、例えば、レゾルバから出力される電気信号をデジタルの角度信号に変換するレゾルバ／デジタルコンバータに好適に用いられるものである。
【背景技術】
【０００２】
レゾルバ／デジタルコンバータ（以下、「Ｒ／Ｄコンバータ」と称する。）は、回転体の回転角度を検出するレゾルバから出力される電気信号をデジタル値に変換する（たとえば、特許文献１参照）。具体的には、レゾルバは、ロータに設けられた一次巻線と、ステータに設けられた２つの二次巻線とを含む。なお、２つの二次巻線は機械的に９０°ずらして配置されている。一次巻線に正弦波の励磁信号を与えると、２つの二次巻線からは、ロータの回転角度に応じて変調された正弦波出力および余弦波出力がそれぞれ得られる。Ｒ／Ｄコンバータは、レゾルバの正弦波出力および余弦波出力を、所定のサンプルクロックに従ってデジタル値に変換する。
【０００３】
このようなＲ／Ｄコンバータとして、特許文献１には、レゾルバの正弦波出力および余弦波出力をアナログ／デジタル変換するＡ／Ｄコンバータと、Ａ／Ｄコンバータからの正弦波値および余弦波値をヒステリシス補正する補正手段とを備えた構成が開示されている。この特許文献１では、Ａ／Ｄコンバータ入力へのノイズ等の影響によってＡ／Ｄ変換値に生じる誤差を補償するために、Ａ／Ｄ変換値にヒステリシス特性を持たせている。詳細には、補正手段は、１サンプル前と現在のＡ／Ｄ変換値の差が一定値以内のときには、Ａ／Ｄ変換値を１サンプル前の値とする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３０９２８５号公報
【特許文献２】特開平４−３５３７６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このようなＲ／Ｄコンバータにおいては、正弦波の励磁信号に同期してＡ／Ｄ変換値が振動することがある。上記の特許文献１に記載されるＲ／Ｄコンバータにおいて、Ａ／Ｄ変換値が振動した場合、Ａ／Ｄ変換値の振動幅が補正手段における一定値を上回ると、補正手段によってもこの振動を補償することができない。そのため、ヒステリシス補正された正弦波値および余弦波値も振動することとなる。
【０００６】
また、上記の特許文献１では、Ａ／Ｄ変換値は、補正手段によって１サンプル前の値および現在のＡ／Ｄ変換値のいずれかに設定される。そのため、Ａ／Ｄ変換値が外乱ノイズ等に起因して１サンプルクロックごとに信号値が１ビットずつ遷移しない、いわゆる“ビット飛び”を起こした場合には、ヒステリシス補正された正弦波値および余弦波値にもそのままビット飛びが現れるという問題が生じてしまう。このような事態が生じると、Ｒ／Ｄコンバータから得られるロータの回転角度と実回転角度との間にずれが生じる可能性がある。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によるレゾルバ／デジタルコンバータに設けられたヒステリシス回路は、レゾルバの出力信号を角度信号に変換するアナログ／デジタル変換部と、クロックに同期して、アナログ／デジタル変換部からの入力信号のヒステリシスに応じた出力信号を生成し、角度信号として出力するヒステリシス回路とを備える。ヒステリシス回路は、１クロック前の入力信号値と１クロック前の出力信号値との差分値を演算する減算回路と、減算回路からの差分値に従って現在のクロックの出力信号値を生成して出力する出力回路とを含む。出力回路は、差分値が正の閾値以上であるときに、１クロック前の出力信号値に１ビットを加算した値を、現在のクロックの出力信号値として出力し、差分値が負の閾値以下であるときに、１クロック前の出力信号値から１ビットを減算した値を、現在のクロックの出力信号値として出力し、差分値が正の閾値未満であって、かつ、負の閾値より大きいときに、１クロック前の出力信号値を、現在のクロックの出力信号値として出力する。
【発明の効果】
【０００８】
上記の一実施の形態によれば、デジタルの入力信号値のヒステリシスに応じた出力信号値を生成するヒステリシス回路において、入力信号値に発生した振動およびビット飛びの影響を排除することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施の形態によるＲ／Ｄコンバータの構成を示すブロック図である。
【図２】励磁信号とＡ／Ｄ変換部から出力されるデジタル値との関係を示す図である。
【図３】一実施の形態によるヒステリシス回路の構成を示すブロック図である。
【図４】一実施の形態によるヒステリシス回路における入力信号値と出力信号値との関係を示す図である。
【図５】図３のヒステリシス回路の変形例を示すブロック図である。
【図６】従来のヒステリシス回路の構成を示すブロック図である。
【図７】従来のヒステリシス回路における入力信号値と出力信号値との関係を示す図である。
【発明を実施するための形態】
【００１０】
以下、一実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【００１１】
［Ｒ／Ｄコンバータの構成］
図１は、一実施の形態によるＲ／Ｄコンバータの構成を示すブロック図である。一実施の形態によるＲ／Ｄコンバータは、たとえば、図１に示すようなモータ制御システムに適用される。
【００１２】
図１を参照して、モータ制御システムは、交流モータＭ１への電流供給を制御するためのシステムであって、モータドライバ１と、モータ制御部２と、レゾルバ３と、Ｒ/Ｄコンバータ４とから構成される。
【００１３】
モータドライバ１は、交流モータＭ１を駆動する。モータドライバ１は、直流電源からの直流電力をインバータによって交流電流に変換して交流モータＭ１を駆動する。
【００１４】
モータ制御部２は、マイクロコンピュータにより構成される。モータ制御部２は、モータドライバ１から交流モータＭ１への電流供給を制御する。交流モータＭ１の通電制御において、モータ制御部２は、Ｒ／Ｄコンバータ４により検出されるロータ回転角度θに応じて、交流モータＭ１に供給する電流を制御する。
【００１５】
レゾルバ３は、交流モータＭ１の回転角度を検出する回転角センサである。レゾルバ３は、ロータと、ステータと、一次巻線と、２つの二次巻線とを含む。ロータは、ステータの内周面とのギャップが円周方向に正弦波状に変化する外径を有する。一次巻線は、ロータに設けられ、正弦波の励磁信号ＶＥｘをＲ／Ｄコンバータ４から受ける。
【００１６】
【数１】
2014074605.tif 000003
【００１７】
２つの二次巻線はステータに設けられる。第１の二次巻線は、一次巻線から機械的に９０°ずらされて配置される。第２の二次巻線は、第１の二次巻線からさらに機械的に９０°ずらされて配置される。図２に示すように、正弦波の励磁信号ＶＥｘが一次巻線に与えられると、第１および第２の二次巻線には、ロータの回転角度θに応じて変調された信号Ｖ１，Ｖ２がそれぞれ発生する。
【００１８】
【数２】
2014074605.tif 000004
【００１９】
Ｒ／Ｄコンバータ４は、レゾルバ３の２つの二次巻線から出力される上記の信号（アナログ信号）Ｖ１，Ｖ２を角度信号（デジタル信号）に変換する。Ｒ／Ｄコンバータ４は、変換した角度信号をモータ制御部２に出力する。具体的には、Ｒ／Ｄコンバータ４は、励磁信号発生部１０と、Ａ／Ｄ（アナログ／デジタル）変換部２０と、ヒステリシス回路３０とを備える。
【００２０】
励磁信号発生部１０は、上記の正弦波からなる励磁信号ＶＥｘを発生し、その発生した励磁信号ＶＥｘをレゾルバ３の一次巻線へ出力する。
【００２１】
Ａ／Ｄ変換部２０は、レゾルバ３の２つの二次巻線からそれぞれ出力される信号Ｖ１，Ｖ２を、ロータの回転角度θに対応するデジタル値φに変換する。レゾルバ３の出力信号Ｖ１，Ｖ２をデジタル値φに変換する方法については、周知の一般的な技術を利用すればよいため、ここではさらなる説明は繰り返さない。なお、デジタル値φは複数ビットの信号であり、そのビット数はＡ／Ｄ変換部２０の分解能に応じて変化する。
【００２２】
図２には、励磁信号ＶＥｘとＡ／Ｄ変換部２０から出力されるデジタル値φとの関係が示される。なお、図２に示すデジタル値φは、交流モータＭ１においてロータの回転が停止している状態におけるロータの回転角度θに対応している。
【００２３】
図２を参照して、ロータの回転が停止している状態では、通常、ロータの回転角度θは一定値を示す。したがって、ロータの回転角度θに対応するデジタル値φも一定値を示すこととなる。しかしながら、デジタル値φは、当該一定値を中心として振動する波形を示す。この振動は、Ｒ／Ｄコンバータ４の励磁信号発生部１０から出力される励磁信号の振動に同期している。また、デジタル値φの振動の振幅は、Ａ／Ｄ変換部２０の分解能に依存した大きさとなる。
【００２４】
このように、Ａ／Ｄ変換部２０から出力されるデジタル値φが励磁信号に同期して振動すると、レゾルバ３によって検出される交流モータＭ１の回転角度θと実回転角度との間にずれが生じる可能性がある。このような事態となると、モータ制御部２における交流モータＭ１の通電制御の精度が低下してしまう虞がある。
【００２５】
そこで、一実施の形態によるＲ／Ｄコンバータでは、ヒステリシス回路３０は、Ａ／Ｄ変換部２０からデジタル値を受けて、この入力信号のヒステリシス（履歴）に応じた出力信号（デジタル値）を生成する。これにより、励磁信号の影響を抑制する。ヒステリシス回路３０により生成された出力信号は、角度信号として、モータ制御部２に与えられる。
【００２６】
［従来のヒステリシス回路の概略構成および問題点］
最初に、従来のヒステリシス回路の概略構成および問題点について、図面を用いて説明する。図６は、従来のヒステリシス回路の構成を示すブロック図である。
【００２７】
図６を参照して、従来のヒステリシス回路は、図示しないＡ／Ｄ変換部の出力信号（デジタル信号）ｏｕｔを入力信号とし、この入力信号のヒステリシスに応じて生成した信号ｏｕｔ＿ｈｙｓを出力信号として出力する。以下の説明では、ヒステリシス回路に入力される出力信号ｏｕｔを「入力信号値」とも記し、ヒステリシス回路から出力される信号ｏｕｔ＿ｈｙｓを「出力信号値」とも表記する。
【００２８】
従来のヒステリシス回路は、Ｄフリップフロップ１１００と、出力信号値ｏｕｔ＿ｈｙｓを生成するための出力回路１０００とを備える。
【００２９】
Ｄフリップフロップ１１００は、遅延（Ｄｅｌａｙ）型のフリップフロップであり、図示しないクロック生成回路により生成されたクロックＣＬＫに基づいて動作する。Ｄフリップフロップ１１００は、クロックＣＬＫの立上りに応答して入力信号値ｏｕｔを取り込んで出力回路１０００へ供給する。
【００３０】
出力回路１０００には、クロックＣＬＫに同期して、入力信号値ｏｕｔと、Ｄフリップフロップ１１００によって１クロック分遅延させた入力信号値ｏｕｔとが入力される。以下の説明では、これら２つの入力信号値を区別するために、現在のクロックの入力信号値ｏｕｔを「入力信号値ｏｕｔ」とも記し、１クロック分遅延させた入力信号値ｏｕｔを「入力信号値ｏｕｔ＿ｄ１」とも表記する。この入力信号値ｏｕｔ＿ｄ１は、１クロック前の入力信号値ｏｕｔに相当する。出力回路１０００は、これら２つの入力信号値の差分値のヒステリシス（履歴）に応じた出力信号値ｏｕｔ＿ｈｙｓを生成する。
【００３１】
具体的には、出力回路１０００は、入力信号値ｏｕｔから入力信号値ｏｕｔ＿ｄ１を差し引いた差分値（＝ｏｕｔ−ｏｕｔ＿ｄ１）を演算して保持する。この差分値は、１クロック前の入力信号値ｏｕｔに対する現在のクロックの入力信号値ｏｕｔの変化量を表わす。そして、出力回路１０００は、１クロック前の差分値と現在のクロックの差分値とを比較し、その比較結果を下記の式（３）に照らし合わせることにより、現在のクロックの出力信号値ｏｕｔ＿ｈｙｓを算出する。
【００３２】
【数３】
2014074605.tif 000005
【００３３】
詳細には、１クロック前の差分値が１ビットであり、かつ、現在のクロックの差分値が１ビットであるときには、出力回路１０００は、１クロック前の入力信号値ｏｕｔ＿ｄ１に１ビットを加算した値を出力信号値ｏｕｔ＿ｈｙｓとする。そして、出力回路１０００は、生成した出力信号値ｏｕｔ＿ｈｙｓを、次のクロックの立上りに応答して出力する。すなわち、現在のクロックの入力信号値ｏｕｔが１クロック前の入力信号値ｏｕｔに対して１ビット増加するという遷移が連続して２回生じたときに（＝入力信号値ｏｕｔが合計２ビット遷移したときに）、出力信号値号ｏｕｔ＿ｈｙｓを１ビット増加させる。
【００３４】
一方、１クロック前の差分値が−１ビットであり、かつ、現在のクロックの差分値が−１ビットであるときには、出力回路１０００は、１クロック前の入力信号値ｏｕｔ＿ｄ１から１ビットを減算した値を出力信号値ｏｕｔ＿ｈｙｓとする。そして、出力回路１０００は、生成した出力信号値ｏｕｔ＿ｈｙｓを、次のクロックの立上りに応答して出力する。すなわち、現在のクロックの入力信号値ｏｕｔが１クロック前の入力信号値ｏｕｔに対して１ビット減少するという遷移が連続して２回生じたときに（＝入力信号値ｏｕｔが合計−２ビット遷移したときに）、出力信号値ｏｕｔ＿ｈｙｓを１ビット減少させる。
【００３５】
なお、出力回路１０００は、複数クロック前の差分値が１ビットとなった後、連続して差分値が０となる複数のクロック期間を経て、現在のクロックの差分値が１ビットとなったとき、すなわち、差分値が０となる複数のクロック期間を挟んで入力信号値ｏｕｔが合計２ビット遷移したときにおいても、出力信号値ｏｕｔ＿ｈｙｓを１ビット増加させる。
【００３６】
同様に、１クロックごとの差分値が−１ビットとなった後、連続して差分値が０となる複数のクロック期間を経て、現在のクロックの差分値が−１ビットとなったとき、すなわち、差分値が０となる複数のクロック期間を挟んで入力信号値ｏｕｔが合計−２ビット遷移したときにおいても、出力信号値ｏｕｔ＿ｈｙｓを１ビット減少させる。
【００３７】
このように、従来のヒステリシス回路では、現在のクロックの入力信号値ｏｕｔと１クロック前の入力信号値ｏｕｔとを比較することにより入力信号値ｏｕｔの遷移の方向を判定する。そして、その判定した遷移の方向に、出力信号値ｏｕｔ＿ｈｙｓを１ビット変化させる。図７には、従来のヒステリシス回路における入力信号値ｏｕｔと出力信号値ｏｕｔ＿ｈｙｓとの関係を示す。図７を参照して、入力信号値ｏｕｔが合計２ビット遷移したときには、入力信号値ｏｕｔが増加方向に遷移していると判定して、１クロック前の入力信号値ｏｕｔ＿ｄ１に１ビットを加算した値を次のクロックの出力信号値ｏｕｔ＿ｈｙｓとする。また、入力信号値ｏｕｔが合計−２ビット遷移したときには、入力信号値ｏｕｔが減少方向に遷移していると判定して、１クロック前の入力信号値ｏｕｔ＿ｄ１から１ビットを減算した値を次のクロックの出力信号値ｏｕｔ＿ｈｙｓとする。
【００３８】
このような構成とすることにより、入力信号値ｏｕｔが２ビットの振動幅で振動している場合には、出力信号値ｏｕｔ＿ｈｙｓは、入力信号値ｏｕｔの振動の影響を受けず、一定値（振動幅中心の信号値に対応）を示している。しかしながら、入力信号値ｏｕｔの振動幅が３ビットに増加すると、出力信号値ｏｕｔ＿ｈｙｓは、入力信号値ｏｕｔの振動の影響を排除することができず、１ビットの振動幅で振動することとなる。すなわち、従来のヒステリシス回路では、入力信号値ｏｕｔの振動幅が２ビット以下である限りにおいて、安定した出力信号値ｏｕｔ＿ｈｙｓを得ることができるが、入力信号値ｏｕｔの振動幅が２ビットを超えると、入力信号値ｏｕｔの振動の影響を受けて出力信号値ｏｕｔ＿ｈｙｓが振動してしまう。
【００３９】
また、出力信号値ｏｕｔ＿ｈｙｓは、１クロック前の入力信号値ｏｕｔ＿ｄ１に１ビットを加算した値、または１クロック前の入力信号値ｏｕｔ＿ｄ１から１ビットを減算した値に設定されるため、入力信号値ｏｕｔが、外乱ノイズ等に起因して１クロックごとに信号値が１ビットずつ遷移しない、いわゆる“ビット飛び”を起こした場合には、出力信号値ｏｕｔ＿ｈｙｓにもそのままビット飛びが現れるという問題が生じる。
【００４０】
さらに、出力信号値ｏｕｔ＿ｈｙｓは、１クロック前の入力信号値ｏｕｔ＿ｄ１に１ビットを加算／減算することにより生成されるため、入力信号値ｏｕｔに対して最低でも１ビットの偏差を常に有している。そのため、出力信号値ｏｕｔ＿ｈｙｓは最終的に入力信号値ｏｕｔに一致することなく遷移が完了してしまう。
【００４１】
以下に詳しく説明するように、一実施の形態によるヒステリシス回路は、入力信号値ｏｕｔに振動またはビット飛びが生じた場合でも、安定した出力信号値ｏｕｔ＿ｈｙｓが得られるように構成されている。また、一実施の形態によるヒステリシス回路は、出力信号値ｏｕｔ＿ｈｙｓを最終的に入力信号値ｏｕｔに一致させることが可能に構成されている。
【００４２】
［一実施の形態によるヒステリシス回路の構成］
図３は、一実施の形態によるヒステリシス回路の構成を示すブロック図である。一実施の形態によるヒステリシス回路３０は、Ａ／Ｄ変換部２０（図１）からの出力信号ｏｕｔを入力信号とし、この入力信号のヒステリシスに応じて生成した信号ｏｕｔ＿ｈｙｓを出力信号として出力する。よって、図５に示す従来のヒステリシス回路と同様に、ヒステリシス回路３０に入力される出力信号ｏｕｔを「入力信号値」とも記し、ヒステリシス回路３０から出力される信号ｏｕｔ＿ｈｙｓを「出力信号値」とも表記する。
【００４３】
図３を参照して、一実施の形態によるヒステリシス回路３０は、Ｄフリップフロップ５０，５２と、減算回路６０と、出力回路７０とを備える。ヒステリシス回路３０は、分類回路８０と、Ｄフリップフロップ５４と、ＲＳフリップフロップ９１〜９７と、演算回路１００と、指令生成回路１１０と、論理積回路１２０，１２２とをさらに備える。
【００４４】
Ｄフリップフロップ５０は、図示しないクロック生成回路により生成されたクロックＣＬＫに基づいて動作する。Ｄフリップフロップ５０は、クロックＣＬＫの立上りに応答して入力信号値ｏｕｔを取り込んで減算回路６０へ供給する。
【００４５】
Ｄフリップフロップ５２は、クロックＣＬＫに基づいて動作する。Ｄフリップフロップ５２は、クロックＣＬＫの立上りに応答して出力信号値ｏｕｔ＿ｈｙｓを取り込んで減算回路６０へ供給する。
【００４６】
減算回路６０には、クロックＣＬＫに同期して、Ｄフリップフロップ５０によって１クロック分遅延させた入力信号値ｏｕｔと、Ｄフリップフロップ５２によって１クロック分遅延させた出力信号値ｏｕｔ＿ｈｙｓとが入力される。以下の説明では、１クロック分遅延させた入力信号値ｏｕｔを「入力信号値ｏｕｔ＿ｄ」とも記し、１クロック分遅延させた出力信号値ｏｕｔ＿ｈｙｓを「出力信号値ｏｕｔ＿ｈｙｓ＿ｄ」とも表記する。入力信号値ｏｕｔ＿ｄおよび出力信号値ｏｕｔ＿ｈｙｓ＿ｄは、それぞれ、１クロック前の入力信号値ｏｕｔおよび出力信号値ｏｕｔ＿ｈｙｓに相当する。
【００４７】
減算回路６０は、下記の式（４）により、入力信号値ｏｕｔ＿ｄから出力信号値ｏｕｔ＿ｈｙｓ＿ｄを差し引いた差分値ＳＵＢ（＝ｏｕｔ＿ｄ−ｏｕｔ＿ｈｙｓ＿ｄ）を演算する。減算回路６０は、その演算結果ＳＵＢを出力回路７０へ出力する。この差分値ＳＵＢは、１クロック前の入力信号値ｏｕｔと１クロック前の出力信号値ｏｕｔ＿ｈｙｓとの差分値を表わす。
【００４８】
【数４】
2014074605.tif 000006
【００４９】
出力回路７０は、Ｄフリップフロップ５２から出力信号値ｏｕｔ＿ｈｙｓ＿ｄを受け、減算回路６０から差分値ＳＵＢを受ける。出力回路７０は、差分値ＳＵＢを下記の式（５）に照らし合わせることにより、現在のクロックの出力信号値ｏｕｔ＿ｈｙｓを算出する。
【００５０】
【数５】
2014074605.tif 000007
【００５１】
詳細には、出力回路７０は、差分値ＳＵＢについて、正の閾値および負の閾値を予め設定する。そして、出力回路７０は、１クロックＣＬＫごとに、差分値ＳＵＢと正の閾値および負の閾値とを比較する。出力回路７０は、差分値ＳＵＢが正の閾値以上となったとき、出力信号値ｏｕｔ＿ｈｙｓ＿ｄに１ビットを加算した値を、現在のクロックの出力信号値ｏｕｔ＿ｈｙｓとする。すなわち、入力信号値ｏｕｔが出力信号値ｏｕｔ＿ｈｙｓよりも正の閾値以上大きくなったときに、出力信号値ｏｕｔ＿ｈｙｓを１ビット増加させる。
【００５２】
また、出力回路７０は、差分値ＳＵＢが負の閾値以下となったとき、出力信号値ｏｕｔ＿ｈｙｓ＿ｄから１ビットを減算した値を、現在のクロックの出力信号値ｏｕｔ＿ｈｙｓとする。すなわち、入力信号値ｏｕｔが出力信号値ｏｕｔ＿ｈｙｓよりも負の閾値以下小さくなったときに、出力信号値ｏｕｔ＿ｈｙｓを１ビット減少させる。
【００５３】
ここで、上記の正の閾値および負の閾値は、入力信号値ｏｕｔの振動幅に応じて設定される。正の閾値および負の閾値は、各々の絶対値が、入力信号値ｏｕｔの振動幅の半分の値に１ビットを加算した値に設定される。例えば、入力信号値ｏｕｔの振動幅が６ビットである場合、正の閾値は４ビットに設定され、負の閾値は−４ビットに設定される。
【００５４】
そして、差分値ＳＵＢが４ビット以上であるときに、出力回路７０は、出力信号値ｏｕｔ＿ｈｙｓ＿ｄに１ビットを加算した値を、現在のクロックの出力信号値ｏｕｔ＿ｈｙｓとする。一方、差分値ＳＵＢが−４ビット以下であるときに、出力回路７０は、出力信号値ｏｕｔ＿ｈｙｓ＿ｄから１ビットを減算した値を、現在のクロックの出力信号値ｏｕｔ＿ｈｙｓとする。出力回路７０は、生成した出力信号値ｏｕｔ＿ｈｙｓを、次のクロックＣＬＫの立上りに応答して出力する。
【００５５】
なお、差分値ＳＵＢが−３ビット以上３ビット以下であるときには、出力回路７０は、後述する加算指令ＵＰおよび減算指令ＤＮのいずれかが活性化している場合を除いて、出力信号値ｏｕｔ＿ｈｙｓ＿ｄをそのまま現在のクロックの出力信号値ｏｕｔ＿ｈｙｓとする。これにより、入力信号値ｏｕｔの振動の影響を排除することができる。
【００５６】
このように、出力回路７０は、入力信号値ｏｕｔが入力信号値ｏｕｔの振動幅を超えて増加または減少したときに、出力信号値ｏｕｔ＿ｈｙｓを１ビット増加または減少させる。したがって、励磁信号の影響を受けて入力信号値ｏｕｔが振動している場合には、出力信号値ｏｕｔ＿ｈｙｓを変化させない。よって、出力信号値ｏｕｔ＿ｈｙｓは振動することなく、一定値に保たれる。
【００５７】
一方、入力信号値ｏｕｔが入力信号値ｏｕｔの振動幅を超えて増加または減少したときには、出力回路７０は、１クロック前の出力信号値ｏｕｔ＿ｈｙｓ（出力信号値ｏｕｔ＿ｈｙｓ＿ｄ）に１ビットを加算または減算するように構成されるため、出力信号値ｏｕｔ＿ｈｙｓは常に１ビットずつ遷移する。よって、入力信号値ｏｕｔにビット飛びが生じた場合であっても、出力信号値ｏｕｔの遷移は１ビットに止まる。これにより、出力信号値ｏｕｔ＿ｈｙｓにビット飛びが生じるのを防止できる。
【００５８】
なお、上記のように、従来のヒステリシス回路は、入力信号値ｏｕｔの遷移の方向を判定し、その判定結果に基づいて入力信号値ｏｕｔに１ビットを加算／減算した値を出力信号値ｏｕｔ＿ｈｙｓとするものである。これに対して、一実施の形態によるヒステリシス回路は、入力信号値ｏｕｔの遷移の大きさを判定し、入力信号値ｏｕｔが入力信号値ｏｕｔの振動幅を超えて遷移したと判定されたときに、出力信号値ｏｕｔ＿ｈｙｓ＿ｄに１ビットを加算／減算した値を出力信号値ｏｕｔ＿ｈｙｓとする。
【００５９】
以上説明したように、ヒステリシス回路３０において、Ｄフリップフロップ５０、減算回路６０、出力回路７０、およびＤフリップフロップ５２は、出力信号値ｏｕｔ＿ｈｙｓの振動およびビット飛びを防止して、出力信号値ｏｕｔ＿ｈｙｓを安定化させるための安定化回路を構成する。
【００６０】
これに対して、以下に説明するように、分類回路８０、Ｄフリップフロップ５４、ＲＳフリップフロップ９１〜９７、演算回路１００、および指令生成回路１１０は、出力信号値ｏｕｔ＿ｈｙｓを最終的に入力信号値ｏｕｔに一致させるための追従回路を構成する。
【００６１】
この追従回路では、クロックＣＬＫの複数倍の周期を有するサブクロックｒｅｃｌｒを用いる。追従回路は、サブクロックｒｅｃｌｒの１周期における差分値ＳＵＢの変移に基づいて、入力信号値ｏｕｔと出力信号値ｏｕｔ＿ｈｙｓとの大小関係を判定する。そして、その判定結果に基づいて、入力信号値ｏｕｔに近づけるように、サブクロックｒｅｃｌｒに同期して出力信号値ｏｕｔ＿ｈｙｓを１ビットずつ増加／減少させる。
【００６２】
具体的には、分類回路８０は、１クロックＣＬＫごとに減算回路６０から差分値ＳＵＢ（＝ｏｕｔ＿ｄ−ｏｕｔ＿ｈｙｓ＿ｄ）を受ける。分類回路８０は、下記の式（６）に従って、差分値ＳＵＢの値に応じて出力値ＯＵＴ３，ＯＵＴ２，ＯＵＴ１，ＯＵＴ０，ＯＵＴＭ１，ＯＵＴＭ２，ＯＵＴＭ３（以下、総称して出力値ＯＵＴとも称する。）のいずれか１つを「１」に設定する。なお、出力値ＯＵＴは初期値が「０」に設定されている。
【００６３】
例えば、差分値ＳＵＢが３以上のときには出力値ＯＵＴ３を「１」に設定し、差分値ＳＵＢが２のときには出力値ＯＵＴ２を「１」に設定する。また、差分値ＳＵＢが−３以下のときには出力値ＯＵＴＭ３を「１」に設定し、差分値ＳＵＢが−２のときには出力値ＯＵＴＭ２を「１」に設定する。
【００６４】
【数６】
2014074605.tif 000008
【００６５】
分類回路８０によって「１」または「０」に設定された出力値ＯＵＴ３，ＯＵＴ２，ＯＵＴ１，ＯＵＴ０，ＯＵＴＭ１，ＯＵＴＭ２，ＯＵＴＭ３は、後段のＲＳフリップフロップ９１〜９７にそれぞれ与えられる。
【００６６】
ＲＳフリップフロップ９１〜９７は、セットリセット型のフリップフロップである。ＲＳフリップフロップ９１〜９７の各々は、セット端子に対応する出力値ＯＵＴを受け、リセット端子にサブクロックｒｅｃｌｒを受ける。ＲＳフリップフロップ９１〜９７の各々は、対応する出力値ＯＵＴが０から１に切替わったときにセット状態になり、出力端子Ｑから信号値１を出力する。また、ＲＳフリップフロップ９１〜９７の各々は、サブクロックｒｅｃｌｒの立上りに応答してリセット状態になり、出力端子Ｑから信号値０を出力する。ＲＳフリップフロップ９１〜９７から出力される信号値（「１」または「０」）は、それぞれ入力値ＬＴ３，ＬＴ２，ＬＴ１，ＬＴ０，ＬＴＭ１，ＬＴＭ２，ＬＴＭ３として演算回路１００に入力される。このように、ＲＳフリップフロップ９１〜９７は、サブクロックｒｅｃｌｒの１周期における差分値ＳＵＢの変移を保持して演算回路１００に出力する働きをする。
【００６７】
演算回路１００は、入力値ＬＴ３，ＬＴ２，ＬＴ１，ＬＴ０，ＬＴＭ１，ＬＴＭ２，ＬＴＭ３に基づいて、差分値ＳＵＢの最大値および最小値を算出する。演算回路１００は、算出した最大値および最小値を、それぞれ出力値ＯＵＴＰ，ＯＵＴＭとして指令生成回路１１０に送出する。具体的には、演算回路１００は、下記の式（７）を用いて、差分値ＳＵＢの最大値である出力値ＯＵＴＰを算出する。また、演算回路１００は、下記の式（８）を用いて、差分値ＳＵＢの最小値である出力値ＯＵＴＭを算出する。
【００６８】
【数７】
2014074605.tif 000009
【００６９】
【数８】
2014074605.tif 000010
【００７０】
例えば、入力値ＬＴ３＝１のときには、入力値ＬＴ２，ＬＴ１の値にかかわらず、出力値ＯＵＴＰを「３」とする。なお、入力値ＬＴ３＝１は、サブクロックｒｅｃｌｒの１周期の間に差分値ＳＵＢが３以上となったことを示している。この場合、演算回路１００は、差分値ＳＵＢの最大値である出力値ＯＵＴＰを「３」に決定する。
【００７１】
一方、入力値ＬＴ３＝０であって、かつ、入力値ＬＴ２＝１のときには、入力値ＬＴ１の値にかかわらず、出力値ＯＵＴＰを「２」とする。入力値ＬＴ３＝０かつＬＴ２＝１は、サブクロックｒｅｃｌｒの１周期の間に差分値ＳＵＢが最大で２となったことを示している。この場合、演算回路１００は、差分値ＳＵＢの最大値である出力値ＯＵＴＰを「２」に決定する。
【００７２】
また、入力値ＬＴ３およびＬＴ２がともに０であって、かつ、入力値ＬＴ１＝１のときには、出力値ＯＵＴＰを「１」とする。入力値ＬＴ３＝ＬＴ２＝０かつＬＴ１＝１は、サブクロックｒｅｃｌｒの１周期の間に差分値ＳＵＢが最大で１となったことを示している。この場合、演算回路１００は、差分値ＳＵＢの最大値である出力値ＯＵＴＰを「１」に決定する。
【００７３】
演算回路１００は、差分値ＳＵＢの最小値である出力値ＯＵＴＭについても、入力値ＬＴＭ３，ＬＴＭ２，ＬＴＭ１に基づいて同様の方法によって算出する。これにより、出力値ＯＵＴＭは、−３，−２，−１，０のうちのいずれかの値に決定される。
【００７４】
指令生成回路１１０には、クロックＣＬＫに同期して、演算回路１００により算出された出力値ＯＵＴＰ，ＯＵＴＭが入力される。指令生成回路１１０は、出力値ＯＵＴＰおよびＯＵＴＭに応じて、出力信号値ｏｕｔ＿ｈｙｓを１ビット増加させるための加算指令ＵＰと、出力信号値ｏｕｔ＿ｈｙｓを１ビット減少させるための減算指令ＤＮとを生成する。具体的には、指令生成回路１１０は、下記の式（９）により、出力値ＯＵＴＰと出力値ＯＵＴＭとを加算する。
【００７５】
【数９】
2014074605.tif 000011
【００７６】
出力値ＯＵＴＰの絶対値が出力値ＯＵＴＭの絶対値よりも大きい場合、加算結果は１以上の値を示す。この加算結果は、サブクロックｒｅｃｌｒの１周期において出力信号値ｏｕｔ＿ｈｙｓが入力信号値ｏｕｔを下回る状態であることを示している。したがって、指令生成回路１１０は、出力信号値ｏｕｔ＿ｈｙｓを入力信号値ｏｕｔに近づけるために、加算指令ＵＰを「１」に活性化する。
【００７７】
これに対して、出力値ＯＵＴＭの絶対値が出力値ＯＵＴＰの絶対値よりも大きい場合、加算結果が−１以下の値を示す。この加算結果は、サブクロックｒｅｃｌｒの１周期において出力信号値ｏｕｔ＿ｈｙｓが入力信号値ｏｕｔを上回る状態であることを示している。したがって、指令生成回路１１０は、出力信号値ｏｕｔ＿ｈｙｓを入力信号値ｏｕｔに近づけるために、減算指令ＤＮを「１」に活性化する。
【００７８】
指令生成回路１１０により生成された加算指令ＵＰは、論理積回路１２０の一方の入力端子に入力される。論理積回路１２０は、加算指令ＵＰとサブクロックｒｅｃｌｒとの論理積を出力回路７０へ出力する。論理積回路１２０によって加算指令ＵＰは、サブクロックｒｅｃｌｒがＨレベルとなる期間において「１」に活性化される指令に変換される。
【００７９】
指令生成回路１１０により生成された減算指令ＤＮは、論理積回路１２２の一方の入力端子に入力される。論理積回路１２２は、減算指令ＤＮとサブクロックｒｅｃｌｒとの論理積を出力回路７０へ出力する。論理積回路１２２によって減算指令ＤＮは、サブクロックｒｅｃｌｒがＨレベルとなる期間において「１」に活性化される指令に変換される。
【００８０】
出力回路７０は、論理積回路１２０，１２２からそれぞれ出力される加算指令ＵＰおよび減算指令ＤＮに従って、出力信号値ｏｕｔ＿ｈｙｓを１ビット増加／減少させる。なお、この加算指令ＵＰおよび減算指令ＤＮに基づいた出力信号値ｏｕｔ＿ｈｙｓの調整は、上述した差分値ＳＵＢに基づいた出力信号値ｏｕｔ＿ｈｙｓの生成と比較して、処理の優先度が低く設定されている。したがって、差分値ＳＵＢが−３ビット以上かつ３ビット以下であるときに、出力回路７０は、下記の式（１０）により、加算指令ＵＰおよび減算指令ＤＮに従って、出力信号値ｏｕｔ＿ｈｙｓの調整を行なう。すなわち、出力回路７０は、加算指令ＵＰが「１」に活性化している場合、出力信号値ｏｕｔ＿ｈｙｓ＿ｄに１ビットを加算した値を、現在のクロックの出力信号値ｏｕｔ＿ｈｙｓとする。すなわち、加算指令ＵＰに応答して出力信号値ｏｕｔ＿ｈｙｓを１ビット増加させる。
【００８１】
【数１０】
2014074605.tif 000012
【００８２】
一方、減算指令ＤＮが「１」に活性化している場合、出力回路７０は、出力信号値ｏｕｔ＿ｈｙｓ＿ｄから１ビットを減算した値を、現在のクロックの出力信号値ｏｕｔ＿ｈｙｓとする。すなわち、減算指令ＤＮに応答して出力信号値ｏｕｔ＿ｈｙｓを１ビット減少させる。
【００８３】
図４は、一実施の形態によるヒステリシス回路における入力信号値ｏｕｔと出力信号値ｏｕｔ＿ｈｙｓとの関係を示す図である。また、図４には、サブクロックｒｅｃｌｒを合わせて示す。
【００８４】
図４を参照して、入力信号値ｏｕｔは６ビットの振動幅で振動する。出力回路７０では、正の閾値が４ビットに設定し、負の閾値は−４ビットに設定される。これにより、入力信号値ｏｕｔ＿ｄと出力信号値ｏｕｔ＿ｈｙｓ＿ｄとの差分値ＳＵＢが４ビット以上になったときに、出力信号値ｏｕｔ＿ｈｙｓが１ビット増加する。また、差分値ＳＵＢが−４ビット以下になったときにと、出力信号値ｏｕｔ＿ｈｙｓが１ビット減少する。
【００８５】
なお、入力信号値ｏｕｔが６ビットの振動幅で振動している場合には、出力信号値ｏｕｔ＿ｈｙｓは、入力信号値ｏｕｔの振動の影響を受けず、一定値（振動幅中心の信号値に対応）を示している。
【００８６】
上記の出力信号値ｏｕｔ＿ｈｙｓの生成と並行して、サブクロックｒｅｃｌｒの１周期における入力信号値ｏｕｔと出力信号値ｏｕｔ＿ｈｙｓとの大小関係が判定される。図４に示すように、サブクロックｒｅｃｌｒの１周期において入力信号値ｏｕｔが出力信号値ｏｕｔ＿ｈｙｓを上回る状態が生じたときには、１サブクロックｒｅｃｌｒごとに、出力信号値ｏｕｔ＿ｈｙｓが１ビットずつ増加する。これにより、最終的に出力信号値ｏｕｔ＿ｈｙｓが入力信号値ｏｕｔに一致する。
【００８７】
このように、一実施の形態によるヒステリシス回路によれば、入力信号値ｏｕｔに振動またはビット飛びが生じた場合でも、安定した出力信号値ｏｕｔ＿ｈｙｓを得ることができる。また、一実施の形態によるヒステリシス回路によれば、出力信号値ｏｕｔ＿ｈｙｓを最終的に入力信号値ｏｕｔに一致させることができる。
【００８８】
［ヒステリシス回路の変形例］
図３のヒステリシス回路３０において、出力回路７０が差分値ＳＵＢとの比較に用いる正の閾値および負の閾値は、入力信号値ｏｕｔの振動幅に応じて設定することができる。詳細には、正の閾値および負の閾値は、各々の絶対値が、入力信号値ｏｕｔの振動幅の半分の値に１ビットを加算した値に設定される。例えば、入力信号値ｏｕｔの振動幅が８ビットの場合、正の閾値は５ビットに設定され、負の閾値は−５ビットに設定される。
【００８９】
このように、正の閾値および負の閾値を入力信号値ｏｕｔの振動幅に応じて可変に設定することにより、入力信号値ｏｕｔの振動の影響を確実に排除することができる。なお、入力信号値ｏｕｔの振動幅は、前段のＡ／Ｄ変換部２０の分解能に依存した大きさとなる。したがって、図１に示すモータ制御システムを動作させて入力信号値ｏｕｔの振動幅を予め評価しておき、その評価した入力信号値ｏｕｔの振動幅に基づいて正の閾値および負の閾値を設定することができる。
【００９０】
図５は、図３のヒステリシス回路３０の変形例を示すブロック図である。図５を参照して、本変形例によるヒステリシス回路３０Ａは、図３に示した一実施の形態によるヒステリシス回路３０において、出力回路７０がレジスタ２１０から正の閾値および負の閾値を読み込むように構成したものである。マイクロコンピュータ（マイコン）２００は、図１のモータ制御システムを動作させることにより、入力信号値ｏｕｔの振動幅を予め取得する。そして、マイコン２００は、その取得した入力信号値ｏｕｔの振動幅に基づいて正の閾値および負の閾値を設定する。設定された正の閾値および負の閾値は、レジスタ２１０に格納される。モータ制御システムの起動時に、格納された正の閾値および負の閾値がレジスタ２１０から出力回路７０に読み込まれる。
【００９１】
なお、上記の一実施の形態では、本発明によるヒステリシス回路がＲ／Ｄコンバータに適用される構成について説明したが、本発明の適用はＲ／Ｄコンバータに限定されるものではない。具体的には、デジタル信号を入力として、入力信号のヒステリシスに応じた出力信号を生成するヒステリシス回路に対して本発明を適用することが可能である点について確認的に記載する。
【００９２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００９３】
１  モータドライバ、２  モータ制御部、３  レゾルバ、４  Ｒ／Ｄコンバータ、１０  励磁信号発生部、２０  Ａ／Ｄ変換部、３０，３０Ａ  ヒステリシス回路、５０，５２，５４  Ｄフリップフロップ、６０  減算回路、７０  出力回路、８０  分類回路、９１〜９７  ＲＳフリップフロップ、１００  演算回路、１１０  指令生成回路、１２０，１２２  論理積回路、Ｍ１  交流モータ。
【図１】
2014074605.tif 000013
【図２】
2014074605.tif 000014
【図３】
2014074605.tif 000015
【図４】
2014074605.tif 000016
【図５】
2014074605.tif 000017
【図６】
2014074605.tif 000018
【図７】
2014074605.tif 000019