(57)【特許請求の範囲】
【請求項１】
初期値Ａが設定されクロックで動作する第１の積分器、外部入力するアップ／ダウン信号でωの極性が切り替わる第１のω係数器、前記クロックで動作する第２の積分器、および前記アップ／ダウン信号でωの極性が前記第１のω係数器のωの極性と反対に切り替わる第２のω係数器を順次リング接続して２相発振器を構成し、且つ、前記アップ／ダウン信号に応じて前記クロックをアップ／ダウンカウントするアップ／ダウンカウンタを設け、前記第１の積分器からＡcosωｔを、前記第２の積分器からＡsinωtを、前記アップ／ダウンカウンタからＡcosωｔおよびＡsinωtの角度情報ωｔを、それぞれ同時に生成し、前記アップ／ダウン信号が第１の値を示すとき前記ωｔの位相を進め、第２の値を示すとき前記ωｔの位相を遅らせることを特徴とするディジタル発振器。
【請求項２】
請求項１に記載のディジタル発振器において、
前記第１および第２の積分器は、前記クロックで動作するレジスタと、該レジスタの出力信号に１未満の係数を乗じて前記レジスタの入力側に加算させる１−δ係数器とで構成されていることを特徴とするディジタル発振器。
【請求項３】
請求項２に記載のディジタル発振器において、
前記１−δ係数器は、δの係数を設定する複数のビットシフト回路と、前記レジスタの出力から前記複数のビットシフト回路の出力を減算する加算器と、で構成されていることを特徴とするディジタル発振器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、角度情報φ（＝ωｔ）に同期したsinφ(＝sinωt)波およびcosφ(＝cosωt)波を生成するディジタル発振器に係り、特にレゾルバ／デジタル（Ｒ／Ｄ）コンバータ等に好適なディジタル発振器に関する。
【背景技術】
【０００２】
従来、モータの回転角度の検出を行う信号処理回路では、図７に示すように、はじめに、アップ／ダウン信号で制御されてクロックをカウントするアップ／ダウンカウンタ２１により角度情報φを取得し、得られた角度情報φをアドレスとして、余弦波ＲＯＭテーブル２２、正弦波ＲＯＭテーブル２３からcosφ波／sinφ波の各波高値を順次読み出すルックアップテーブル方式が用いられていた。
【０００３】
例えば、特許文献１では、図８に示すように、補償器３１から出力するアップ／ダウン信号でアップ／ダウンが制御されるアップ／ダウンカウンタ３２から出力する角度情報φを基にして、余弦波ＲＯＭテーブル３３、正弦波テーブル３４から正弦波／余弦波の各波高値cosφ／sinφを順次読み出している。そして、これらを、１０ビット乗算型ＤＡＣ３５，３６において、レゾルバの２相の２次巻線から出力するsinθ・f(t)、cosθ・f(t)にそれぞれ乗算して、sinθ・f(t)・cosφ、cosθ・f(t)・sinφを求め、その差分sin（θ−φ）・ｆ(t)を減算器３７で求め、比較器３８でその極性を検出し、同期検波器３９で励磁成分ｆ(t)を除去して制御成分sin（θ−φ）を求め、これを補償器３１に入力して前記アップ／ダウン信号を生成するようにトラッキングループを構成している。そして、θ−φが零となるように制御することで、レゾルバ回転子の回転角度θ（＝φ）を求めている。４０は励磁信号ｆ(t)を生成する励磁信号生成器であり、この励磁信号ｆ(t)がレゾルバの１次巻線に印加され、また同期検波用となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３４４２３１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ルックアップテーブル方式を用いる場合、正弦波／余弦波の各波高値を緻密にメモリに記憶させる必要があるため、テーブルが巨大化し、半導体装置のなかで特にメモリの占有する領域が増大する傾向にあるという問題があった。また、メモリに記憶させた正弦波／余弦波の各波高値を読み出すためには、はじめに角度データを取得し、次に、得られた角度データを基にして、読み出すＲＯＭのメモリアドレスを設定する必要があるため、処理が複雑になる傾向にあった。
【０００６】
本発明の目的は、ルックアップテーブル方式のようなメモリを使用せずに、正弦波、余弦波、角度情報が同時に得られるようにしたディジタル発振器を提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１にかかる発明は、初期値Ａが設定されクロックで動作する第１の積分器、外部入力するアップ／ダウン信号でωの極性が切り替わる第１のω係数器、前記クロックで動作する第２の積分器、および前記アップ／ダウン信号でωの極性が前記第１のω係数器のωの極性と反対に切り替わる第２のω係数器を順次リング接続して２相発振器を構成し、且つ、前記アップ／ダウン信号に応じて前記クロックをアップ／ダウンカウントするアップ／ダウンカウンタを設け、前記第１の積分器からＡcosωｔを、前記第２の積分器からＡsinωtを、前記アップ／ダウンカウンタからＡcosωｔおよびＡsinωtの角度情報ωｔを、それぞれ同時に生成し、前記アップ／ダウン信号が第１の値を示すとき前記ωｔの位相を進め、第２の値を示すとき前記ωｔの位相を遅らせることを特徴とする。
請求項２にかかる発明は、請求項１に記載のディジタル発振器において、前記第１および第２の積分器は、前記クロックで動作するレジスタと、該レジスタの出力信号に１未満の係数を乗じて前記レジスタの入力側に加算させる１−δ係数器とで構成されていることを特徴とする。
請求項３にかかる発明は、請求項２に記載のディジタル発振器において、前記１−δ係数器は、δの係数を設定する複数のビットシフト回路と、前記レジスタの出力から前記複数のビットシフト回路の出力を減算する加算器と、で構成されていることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ルックアップテーブル方式のようなメモリが不要になるため、従来の半導体装置においてチップ面積に対する比率が大きかったメモリを削減することができ、チップ面積を小さくすることかできる。また、ソフトウェアにおいて実現する場合も、メモリを占有する割合が小さくなるため、より、廉価なマイコン等で処理が可能になる。さらにアップ／ダウン信号を、角度データの取得に用いるだけでなく、正弦波／余弦波の位相の進み／遅れの制御に使用することで、角度情報と同期した正弦波／余弦波を同時に取得することができるため、ハードウエア／ソフトウエアのどちらの手段で実現する場合でも、ルックアップテーブル方式に比べ処理が簡単になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の１つの実施例のディジタル発振器の構成図である。
【図２】図１のディジタル発振器の記憶／係数ユニット１，２の閉ループ部分の伝達関数の説明図である。
【図３】図２の伝達関数の積分器をディジタル的に表現した説明図で、（ａ）は一般的な構成の説明図、（ｂ）は発散を抑制した構成の説明図である。
【図４】ディジタル発振器の動作のフローチャートであり、(a)従来のルックアップテーブル方式の動作のフローチャート、(b)は本発明の方式の動作のフローチャートである。
【図５】図２の２相発振器の詳細なブロック図である。
【図６】本発明のディジタル発振器をＲ／Ｄコンバータに適用した例の構成図である。
【図７】ルックアップテーブル方式のディジタル発振器の動作説明図である。
【図８】特許文献１におけるＲ／Ｄコンバータの構成図である。
【発明を実施するための形態】
【００１０】
図１に本発明の実施例のディジタル発振器を示す。本実施例のディジタル発振器は、余弦波用の記憶／係数ユニット１、正弦波用の記憶／係数ユニット２、および角度取得ユニット３から構成されている。記憶／係数ユニット１，２は、積分器を含み、値を保持するためのレジスタと正弦波／余弦波の波形の発散を押さえるための１未満の係数等を備えている。角度取得ユニット３は、角度情報φを生成するためのアップ／ダウンカウンタ、アップ／ダウンカウンタで得られた角度情報φを出力するためパラレル出力回路、エンコーダ相当の出力回路、シリアル出力回路などを備える。
【００１１】
図１の上側に示した記憶／係数ユニット１，２の閉ループ回路で構成される発振回路は、一般的には２相発振器と呼ばれ、図２に示す伝達関数で表される。図２において、４は初期インパルスＡを取り込むための加算器、５Ａ，５Ｂは積分器、６Ａ，６Ｂはω係数器である。ωは角周波数であり、その周期はＴである（ω＝２π／Ｔ）。図２の伝達関数は、以下の式（１）、（２）のように求められる。
【００１２】
図２の左上に発振の初期値として振幅Ａのインパルスを入力した場合、図２の右上側の出力信号であるＡcosωtを考える。
0005798844.tif 000002
この式（１）を逆ラプラス変換すると、Z(t)＝Ａcosωtとなる。
【００１３】
同様に、図２の左下側の出力信号であるＡsinωtを考える。
0005798844.tif 000003
この式（２）を逆ラプラス変換すると、Z'(t)＝Ａsinωtとなる。
【００１４】
つまり、同一の入力信号（振幅Ａのインパルス）に対して、Ａcosωt、Ａsinωtの２つの出力信号を同時に得ることができる。
【００１５】
また、図２の伝達関数において、１／ｓで示される積分器５Ａ，５Ｂをディジタル的に表現すると、図３（ａ）に示すように、加算器５１とレジスタ５２で表現することができる。ただし、この構成で図２の伝達関数の回路を構成した場合は、以下のような理由から出力の正弦波／余弦波が発散するため、発散を抑制する必要があり、本発明において使用した回路では、図３（ｂ）に示すように、帰還経路に１−δ係数器５３を挿入している。以下に理由を説明する。
【００１６】
図２において、余弦波出力側の積分器５Ａのレジスタ５２の値をＲ（ｎ）、正弦波出力側の積分器５Ｂのレジスタ５２の値をＩ（ｎ）とし、ｎを離散時刻における値とすると、クロックによって次にレジスタ５２が更新される際の値Ｒ（ｎ＋１）、Ｉ（ｎ＋１）は、
0005798844.tif 000004
となる。この式（３）を行列で表現すると、
0005798844.tif 000005
となる。
【００１７】
この式（４）における１と±ωで表される行列は、レジスタの値の現在から次の値へと変わる際の変換行列となる。このノルムＨは、
0005798844.tif 000006
であるから、レジスタの値が更新されるたびに大きな値となり、その結果出力信号が発散してしまう。
【００１８】
そこで、図３（ｂ）に示したような補正項δを用いて回路を構成する。補正項δを用いたときの式（６）を以下に表す。
0005798844.tif 000007
この式（６）を行列で表現すると、
0005798844.tif 000008
となる。
【００１９】
この式（７）のノルムＧは、
0005798844.tif 000009
となり、δの値を調整することで、Ｇ＝１を実現でき、レジスタ値の増大が抑制されるため、出力信号の発散を防ぐことができる。
【００２０】
以上のような理由から、図１の記憶／係数ユニット１，２は、図３（ｂ）のように構成される積分器５Ａ，５Ｂと、ω係数器６Ａ，６Ｂから構成される。ω＝２π／Ｔであるので、周期Ｔが決まれば、ω係数器６Ａ，６Ｂのωは決まる。      
【００２１】
本実施例では、外部入力するアップ／ダウン信号に応じて、ω係数器６Ａ，６Ｂのωの極性を反対方向に切り替えることで、出力信号である正弦波／余弦波の位相を進めたり、遅らせたりすることができる。具体的には、位相を進めるときは前述の式（６）、位相を遅らせるときには次の式（９）式のように表現できる。
0005798844.tif 000010
つまり、位相を進めるときは、ω係数器６Ａのωの極性を負に、ω係数器６Ａのωの極性を正に設定し、位相を遅らせるときは、ω係数器６Ａのωの極性を正に、ω係数器６Ｂのωの極性をを負に設定すればよい。
【００２２】
このように正弦波／余弦波の位相の進み／遅れを制御するためには、図２におけるω係数器６Ａ，６Ｂのωの極性のみを切替えるだけで良く、また本発明においてこの発振回路をディジタルにて実現しているため極性切替は容易である。
【００２３】
上記の本実施例のディジタル発振器の動作をフローチャートに表したものが、図４（ｂ）である。図４（ａ）のフローチャートが従来のルックアップテーブル方式によるものである。両方の方式とも、アップ／ダウン判定を行うことは同じであるが、本実施例では、判定の結果であるアップ／ダウン信号を、図１のように記憶係数ユニット１，２、角度取得ユニット３に同時に入力することで、記憶係数ユニット１，２ではωΔＴ（ΔＴはクロックの周期）にあたるΔφ分だけ角度φが増減するため、sin波はsin（φ±Δφ）のように、cos波はcos（φ±Δφ）のように、それぞれ位相が同時に変化する。また角度取得ユニット３では、アップ／ダウンの回転角度を表すカウント値が増減し、φの値を出力する。このため、本実施例では、従来のルックアップテーブル方式より処理ステップが少なくてすむ。
【００２４】
以上の理由により、上記した図１の記憶／係数ユニット１，２を構成する２相発振器の積分器５Ａ，５Ｂのレジスタ５２の値をクロック周期（ΔＴ）毎に更新するタイミングで、角度指示増減方向の値であるアップ／ダウン信号を読み込み、同時に更新することで、記憶／係数ユニット１，２（２相発振器）においては位相の制御を、角度取得ユニット３（アップ／ダウンカウンタ）においては角度情報の制御を、それぞれ行うため、各々同期した角度情報φ、sinφ波、cosφ波を、同時に得ることが可能となる。
【００２５】
図５に、図２の２相発振器（図１の記憶／係数ユニット１，２）の具体回路を示す。積分器５Ａは、加算器５１と、初期値Ａの取り込み用のセレクタ５４と、レジスタ５２と、１−δ係数器５３とで構成される。加算器５１とセレクタ５４は図２の加算器４を構成する。ここでは、初期値Ａは、レジスタ５２に初期設定する値として最初だけセレクタ５４を経由して取り込み、その後は、セレクタ５４で加算器５１の出力を常時選択させる。１−δ係数器５３は、レジスタ５２から読み出した値に係数δを乗算する複数のビットシフト回路５３１と、レジスタ５２の出力値からビットシフト回路５３１の出力値を減算（＝１−δ）する加算器５３２で構成される。
【００２６】
信号の発散を防止するための係数値は、通常の演算では浮動小数点での演算となるため、処理が重くなり、回路的にも複雑な回路となる。しかし、図５の１−δ係数器５３に示すように、ビットシフトと加算の論理演算で値を求めると、簡単な回路構成で実現することができる。なお、１−δ係数器５３の係数（１−δ）の実際の値は１未満であるが、その値は、式（８）の値を１として、この式（８）にωを代入することで求めることができる。もう一方の積分器５Ｂは、初期値を取り込むセレクタ５４が削除されている他は、積分器５Ａと同じ構成である。
【００２７】
ω係数器６Ｂは、３個のビットシフト回路６１と、そのビットシフト回路６１の出力値を加算する加算器６２と、その加算器６２の出力値の極性を反転する乗算器６３と、アップ／ダウン信号に応じて加算器６２の出力と乗算器６３の出力の一方を選択するセレクタ６４とで構成される。ここでは、ωの周期をＴ＝５０としたときの例として、ビットシフト回路６１を３個とした。Ｔ＝５０であれば、ω＝２π／Ｔ＝0.125663706・・・≒２-3＋２-11＋２-13となるので、ωを３個のビットシフト回路の出力の和で表現できる。ただし、このビットシフト回路６１の個数は３個に限られるものではなく、必要な精度で決まる。もう一方のω係数器６Ａは、以上説明したω係数器６Ｂと同じである。
【００２８】
本実施例のディジタル発振器は、正弦波、余弦波、および角度情報が同時に必要な装置において利用する事ができる。図６に本実施例の応用例であるＲ／Ｄコンバータの構成を示す。図６において、正弦波／余弦波／角度同時生成回路１００は、図１で表される構成であり、ここでsinφ、cosφ、角度φが同時生成される。cosφは、レゾルバ２次巻線から出力するsinθ・f(t)と乗算器７１で乗算され、この乗算器７１からsinθ・f(t)・cosφが出力する。また、sinφは、レゾルバ２次巻線から出力するcosθ・f(t)と乗算器７２で乗算され、この乗算器７２からcosθ・f(t)・sinφが出力する。そして、これらが減算器７３で減算されることで、sin(θ−φ)・f(t)が得られ、同期検波器７４に入力する。同期検波器７４では、正弦波生成器７５から出力するｆ(t)によりsin(θ−φ)・f(t)からｆ(t)が除去され、sin(θ−φ)が得られる。そして、このsin(θ−φ)が制御器７６に入力することで、そこからアップ／ダウン信号が出力する。θ＞φのときアップ信号となり、θ＜φのときダウン信号となる。そして、このアップ／ダウン信号が正弦波／余弦波／角度同時生成回路１００に帰還されることで、アップ信号のときはφの位相が進み、ダウン信号のときはφの位相が遅れることで、Ｒ／Ｄトラッキングが行われ、θ＝φに収束する制御が行われて、正弦波／余弦波／角度同時生成回路１００から出力する角度φが、レゾルバが検出している角度θを示すことになる。
【００２９】
このように、本実施例では、制御器７６で得られたアップ／ダウン信号で回転角度φを生成し、同時にcosφ、sinφを生成している。このため波高値を記憶するためのテーブルが不要となり、処理を簡単にすることができる。
【符号の説明】
【００３０】
１００：正弦波／余弦波／角度同時生成回路、１，２：記憶／係数ユニット、３：角度取得ユニット、４：加算器
５Ａ，５Ｂ：積分器、５１：加算器、５２：レジスタ、５３：係数器、５３１：ビットシフト回路、５３２：加算器、５４：セレクタ
６Ａ，６Ｂ：ω係数器、６１：ビットシフト回路、６２：加算器、６３：乗算器、６４：セレクタ
７１，７２：乗算器、７３：加算器、７４：同期検波器、７５：正弦波生成器、７６：制御器
【図１】
0005798844.tif 000011
【図２】
0005798844.tif 000012
【図３】
0005798844.tif 000013
【図４】
0005798844.tif 000014
【図５】
0005798844.tif 000015
【図６】
0005798844.tif 000016
【図７】
0005798844.tif 000017
【図８】
0005798844.tif 000018