インバータによって回転機の速度制御を行うシステムでは、回転位置(位相)検出器を用いることが多い。また、回転位置(位相)検出器を用いて回転速度を演算する先行技術として、特許文献1に記載のものが提案されている。
回転体の回転位置(位相)検出器の一つにレゾルバがある。図1にVR型レゾルバの鉄心形状の例を示す。ここではレゾルバの構成要素である励磁巻線や検出巻線などは省略している。
図1において、回転子軸101の外周には回転子鉄心102が固着されている。回転子鉄心102の外周には所定間隔を隔てて固定子鉄心103が配設されている。固定子鉄心103の内周側には鉄心の歯部(スロット部)103nが10個形成されており、歯部103nには各々巻線が施されている。図1の例では巻線スロット数Ns=10個であり、回転子形状は1周上に4個の凹凸があるので軸倍角Nx=4である。
図1のレゾルバの回転位相検出における位相誤差の例を図2に示す。図2の(a)は軸位相を、(b)は位相誤差成分を、(c)は検出位相を各々示している。
回転子軸101の回転位相θmは連続位相であるが、図2(a)のように、原点から一回転を0~360degとする位相θを定義して説明に使用する。
Nx=4のレゾルバの場合は、レゾルバ/デジタル・コンバータ(以下、RDCと称する)により検出可能な位相は図2(a)破線のθreのように0~90degの変化が4回だけ繰り返されるものであり、この幅以上の回転角になると連続した波形として軸位相θを検出できない。0degと90degとの不連続変化時に90degのオフセットを加減算補正(多回転拡張、上位拡張とも呼ぶ)すればθのような一回転の位相を模擬できるが、原点位置を推定する機能が無いので、図2(a)の波形θ_90のように始点がずれる場合もある。つまり、Nx=2以上の場合には、軸上の特定位相である原点を基準とする絶対位相θは計測できないという制約がある。
本発明で問題とするのは、レゾルバの「軸位相θに対して整数倍の高次位相検出誤差」であり、ランダムノイズではなく、回転位相θに対して再現性のある位相誤差成分を抑制することを提案する。
回転子鉄心の加工歪や軸の偏心などにより、軸倍角やスロット数などの影響により、軸倍角Nxの整数倍(4次、8次、…)や、スロット数Nsの整数倍の次数成分(10次、20次、…)などの誤差が発生する。このような機械的要因の場合には、再現性のある検出位相誤差が発生するので、あらかじめ誤差特性を計測しておき、検出位相に加算補正することが行われている。
図2(b)では4次の誤差成分Δθ_4thと10次の誤差成分Δθ_10th、およびそれらの合成波形を示している。Nx=4のRDCの出力はθreであり、これと4次の位相誤差は同期している。しかし、10次成分はθreが0~90degの範囲と90~180degの範囲では、ちょうど正負が逆の波形となっている。
つまり、4次成分はθreと同期しているが、10次成分は非同期である。そのため、4次成分の誤差(Δθ_4th)は検出位相θreを利用して補正することはできるが、10次成分(Δθ_10th)はθreの情報だけでは補正することができない。θreの奇数周期と偶数周期のどちらを始点にするかで補正値の正負符号を切り替える必要がある。
本発明は、この10次のような「軸位相に対して高次ではあるが、RDCの検出位相とは非同期な位相誤差成分」を抑制するものである。軸位相θとRDC検出位相θreに、このΔθ_4thとΔθ_10thを加算した波形が図2(c)の波形である。実線で示した1回転の位相情報θを使用せず、破線で示したRDC出力位相の情報から図2(a)のθやθ_90のように一回転の位相に上位拡張した位相θRを使用して10次成分の誤差を抑制することを提案する。
図3に従来の速度検出方式の例を示す。図3において、31は位相検出器としてのレゾルバであり、例えば図1のVR型レゾルバで構成される。32は、RDC(レゾルバ/デジタル・コンバータ)であり、レゾルバ31の位相を検出する計測回路である。このRDC32は、1回転中にNx周期の検出位相を検出するが、ここでは回転軸の一周期に上位拡張した機能を有しており、軸位相の推定値θR(t)を出力するものである(tは時刻)。
36はタイマであり、時間・時刻に相当する信号を出力する。これを位相検出と同時にサンプルして計測時刻とする。また、タイマ36にはCPUの割込信号発生器も含ませており、位相・時刻のラッチタイミングと速度演算処理の割り込み信号となるTrg_nを出力する。
sn11、sn21はラッチ回路であり、ラッチタイミングTrg_n(n)において、ラッチ回路sn11はRDC32から検出位相θR(t)をサンプルしてθ'(n)とし、ラッチ回路sn21はタイマ36から時刻tをサンプルしてT(n)とする。
誤差補正部33と加算器34は、4次成分のようにθreと同期した誤差成分の補償部であり、予め誤差量を計測しておき検出したθ'(n)から補償量を推定する。検出したθRを4倍すれば4次成分と同期位相になるので、補正テーブルや正弦波関数などを利用して位相誤差補償量Δθ^_4th(n)を計算し、これを加算器34にてθ'(n)に加算補正したものを補正後の位相θ(n)とする。もし4次成分などの同期した誤差成分の補正を行わない場合にはこの機能は省略できる。他の次数成分も同様に補正できるがここでは4次の例だけを示している。
sn12、sn22はラッチ回路であり、前回のサンプルタイミングTrg_n(n-1)におけるθ(n-1)とT(n-1)を保管する。
35は、補正後の位相θ(n)からラッチ回路sn12に保管された前回のθ(n-1)を差し引く差分器であり、位相差Δθ(n)を出力する。
37は、ラッチ回路sn21より出力される時刻T(n)から、ラッチ回路sn22に保管された前回の時刻T(n-1)を差し引く差分器であり時間差ΔT(n)を出力する。
38は、前記位相差Δθ(n)を時間差ΔT(n)で除算して式(1)のように速度検出成分ωR(n)を出力する除算器である。
39は、除算器38から出力される速度検出成分ωR(n)に含まれる高周波成分の誤差を抑制するための低域通過フィルタである。このフィルタ39は遮断周波数を低く設定すれば高次成分の振幅を抑制できるが、同時に検出遅れが大きくなるので速度制御系の性能を制約する。
図4に、従来例(図3)の動作を説明するためのタイムチャートを示す。図4では説明を簡素化するために、位相誤差は10次成分のみに限定しており、(a)は10次成分の位相誤差成分Δθ_10th(t)を示し、(b)はRDCの検出位相θR(t)の波形を示している。横軸は時間tである。T(n-1)、T(n)、T(n+1)は図3の割込み信号Trg_nによるサンプルタイミングであり、「□、△、〇」印がサンプルされる位相θR(n-1)、θR(n)、θR(n+1)である。
10次成分はランダムな値がサンプルされるために、各サンプル間の位相差Δθ(n,n-1)やΔθ(n+1,n)に誤差が生じ、これが速度検出の誤差要因になる。この10次成分はθreと非同期であるため、前述したように誤差補正部33では補正できないことが問題点である。
10次は高次であり、検出速度の誤差成分は周波数も高くなるので、低域通過フィルタ(LPF)などで高域成分を遮断すればよさそうである。しかし、速度検出の場合には位相を時間微分するので、次数に比例して振幅が拡大されるため影響が無視できない。大きな振幅成分を十分に抑制しようとすると、低域通過フィルタの遮断帯域をかなり低くしなければならず、その結果として検出遅れが増大してしまう。ひいては、速度制御などの性能を制約してしまう。また、10次成分のように高次な成分になると、機器による組み立て精度のばらつきも影響されるため、機台による補償値のばらつきも生じるので、事前の誤差計測を利用した誤差補償が困難になる。
本発明は上記課題を解決するものであり、その目的は、軸位相に対しては高次ではあるが、RDCなどの位相検出部の検出位相とは非同期な位相誤差成分を抑制することができる速度検出装置を提供することにある。
上記課題を解決するための請求項1に記載の速度検出装置は、
回転機の速度を検出する速度検出装置であって、
回転機の回転位相を検出する位相検出部と、
前記位相検出部の位相検出データから、速度検出演算周期よりも短い周期でサンプリングされた位相サンプルデータを記憶し、タイマで計測される時刻データから、前記位相サンプルデータと同時にサンプリングされた時刻サンプルデータを記憶する位相・時刻データ記憶部と、
W1(サンプル回数)=abs(ΔT_Nth[s]/Ts[s])、na=floor(W1)、nb=na+1、ka=W1-naで示される各式(ただし、ΔT_Nth[s]は位相誤差を補正するN次成分と同期した時間差、Ts[s]はサンプル間隔、na、nbは抑制したい高次成分と同期した2点に関する複数のサンプルデータであり、線形補間による位相同期補正、時間同期補正を行うための速度検出演算開始時の第1の基準位相、第1の基準時刻よりも過去のサンプルデータとを指定する選択番号、floorは切り捨て関数、kaは線形補間の重み係数、absは絶対値関数、Nは2以上の整数)を用いて、選択番号na,nbおよび線形補間の重み係数kaを演算する位相・時刻選択制御部と、
前記位相・時刻データ記憶部から、速度検出演算開始時の第1の基準位相データと、前記位相・時刻選択制御部で演算された選択番号na,nbで指定された過去の位相サンプルデータとを抽出し、該抽出した第1の基準位相データおよび過去の位相サンプルデータと、前記位相・時刻選択制御部で演算された線形補間の重み係数kaに基いて、線形補間による位相同期補正を行って位相差分を演算する位相同期補正部と、
前記位相・時刻データ記憶部から、速度検出演算開始時の第1の基準時刻データと、前記位相・時刻選択制御部で演算された選択番号na,nbで指定された過去の時刻サンプルデータとを抽出し、該抽出した第1の基準時刻データおよび過去の時刻サンプルデータと、前記位相・時刻選択制御部で演算された線形補間の重み係数kaに基いて、線形補間による時間同期補正を行って時間差分を演算する時間同期補正部と、を備え、
前記位相同期補正部で演算された位相差分を、時間同期補正部で演算された時間差分で除算して速度検出値を算出することを特徴としている。
請求項2に記載の速度検出装置は、請求項1において、
前記位相・時刻選択制御部が演算する選択番号naは、速度検出演算開始時の第1の基準時刻から前記時間差ΔT_Nth[s]分過去に遡った点の、前記第1の基準時刻側に隣接する点の位相サンプルデータおよび時刻サンプルデータを指定する選択番号であり、
前記選択番号nbは、速度検出演算開始時の第1の基準時刻から前記時間差ΔT_Nth[s]分過去に遡った点の、前記第1の基準時刻と反対側に隣接する点の位相サンプルデータおよび時刻サンプルデータを指定する選択番号であり、
前記位相同期補正部は、
(ただしθ0は第1の基準位相データの位相、θ1aは選択番号naで指定された位相サンプルデータの位相、θ1bは選択番号nbで指定された位相サンプルデータ、kaは線形補間の重み係数、ExtS_phは-180~+180degの範囲の符号付位相値に変換する関数)
を演算して位相差分Δθ1を求め、
前記時間同期補正部は、
又は
(ただしT0は第1の基準時刻データの時刻、T1aは選択番号naで指定された時刻サンプルデータの時刻、T1bは選択番号nbで指定された時刻サンプルデータ、kaは線形補間の重み係数、Δθ_Nth[rad]は位相誤差を補正するN次成分の一周期位相でありΔθ_Nth[rad]=2π[rad/N]、ExtS_tは±Tim_max(タイマの最大値)/2の範囲の符号付きの値に変換する関数、ωestは参考検出速度)
を演算して時間差分ΔT1を求めることを特徴とする。
請求項3に記載の速度検出装置は、請求項1又は2において、
回転機の回転速度が第1の設定速度未満の場合、前記位相・時刻選択制御部で用いる、ΔT_Nthを、固定値である最大制限の時間差ΔT_maxに設定したことを特徴とする。
請求項4に記載の速度検出装置は、請求項1から3のいずれか1項において、
回転機の回転速度が第1の設定速度以上の場合、前記位相・時刻選択制御部で用いる、ΔT_Nthを整数倍して最小制限の時間差ΔT_minよりも長く設定したことを特徴とする。
請求項5に記載の速度検出装置は、請求項1から4のいずれか1項において、
前記位相・時刻選択制御部におけるna=floor(W1)、nb=na+1の演算時に、切り捨て関数floorの代わりにW1を四捨五入した値をnaとし、前記線形補間の重み係数kaを0とすることを特徴としている。
請求項6に記載の速度検出装置は、請求項2において、
前記位相・時刻選択制御部は、速度検出演算の最も古いサンプルデータの時刻を第2の基準時刻TYとし、第2の基準時刻TYから前記時間差ΔT_Nth[s]分、前記第1の基準時刻に近付けた点の、前記第2の基準時刻側に隣接する点の位相サンプルデータおよび時刻サンプルデータを指定する選択番号ncと、第2の基準時刻TYから前記時間差ΔT_Nth[s]分、前記第1の基準時刻側に近付けた点の、前記第1の基準時刻側に隣接する点の位相サンプルデータおよび時刻サンプルデータを指定する選択番号ndと、を演算し、
前記位相同期補正部および時間同期補正部は、
又は
ωR(n)={ExtS_ph(θ0-θ1a)+ka×ExtS_ph(θ1a-θ1b)}/{Δθ_Nth[rad]/abs(ωest[rad/s])}…(4)’’
(ただしθ0は第1の基準位相データの位相、θ1aは選択番号naで指定された位相サンプルデータの位相、θ1bは選択番号nbで指定された位相サンプルデータ、kaは線形補間の重み係数、ExtS_phは-180~+180degの範囲の符号付位相値に変換する関数、T0は第1の基準時刻データの時刻、T1aは選択番号naで指定された時刻サンプルデータの時刻、T1bは選択番号nbで指定された時刻サンプルデータ、Δθ_Nth[rad]は位相誤差を補正するN次成分の一周期位相でありΔθ_Nth[rad]=2π[rad/N]、ExtS_tは±Tim_max(タイマの最大値)/2の範囲の符号付きの値に変換する関数、ωestは参考検出速度)
を演算して第1の速度検出値ωR(n)を算出し、
前記位相・時刻選択制御部は、前記第1の基準時刻T0を用いた第1の速度検出の時間遅れ成分ΔT1_dlyと、前記第2の基準時刻TYを用いた第2の速度検出の時間遅れ成分ΔT2_dlyの平均遅延時間をΔTdlyとしたときの、
次の式(12)
(ただし、Ts_0は前記第1の基準時刻、Ts_Yは前記第2の基準時刻)
の条件が成立するΔTdlyを設定し、
次の式(13)、式(14)
(ただしYは第2の基準時刻TYの位相サンプルデータおよび時刻サンプルデータを指定する選択番号)
によって選択番号Y、nc、ndを演算し、
前記位相同期補正部および時間同期補正部は、
次の式(15)~式(17)
(ただしθ2cは選択番号ncで指定された位相サンプルデータの位相、θYは第2の基準時刻TYの位相サンプルデータ、θ2dは選択番号ndで指定された位相サンプルデータの位相、T2cは選択番号ncで指定された時刻サンプルデータの時刻、TYは第2の基準時刻TYの時刻サンプルデータ、T2dは選択番号ndで指定された時刻サンプルデータの時刻、Δθ2は第2の位相差分、ΔT2は第2の時間差分)
を演算して第2の速度検出値ωR2(n)を算出し、
次の式(18)によって、
第1の速度検出値と第2の速度検出値の平均値ωR_ave(n)を算出することを特徴としている。
請求項7に記載の速度検出装置は、請求項2において、
前記位相・時刻選択制御部は、速度検出演算の最も古いサンプルデータの時刻を第2の基準時刻TYとし、第2の基準時刻TYから前記時間差ΔT_Nth[s]分、前記第1の基準時刻に近付けた点の、前記第2の基準時刻側に隣接する点の位相サンプルデータおよび時刻サンプルデータを指定する選択番号ncと、第2の基準時刻TYから前記時間差ΔT_Nth[s]分、前記第1の基準時刻側に近付けた点の、前記第1の基準時刻側に隣接する点の位相サンプルデータおよび時刻サンプルデータを指定する選択番号ndと、を演算し、
前記第1の基準時刻T0を用いた第1の速度検出の時間遅れ成分ΔT1_dlyと、前記第2の基準時刻TYを用いた第2の速度検出の時間遅れ成分ΔT2_dlyの平均遅延時間をΔTdlyとしたときの、
次の式(12)
の条件が成立するΔTdlyを設定し、
次の式(13)、式(14)
(ただしYは第2の基準時刻TYの位相サンプルデータおよび時刻サンプルデータを指定する選択番号)
によって選択番号Y、nc、ndを演算し、
前記位相同期補正部および時間同期補正部は、
次の式(15)、式(16)
(ただしθ2cは選択番号ncで指定された位相サンプルデータの位相、θYは第2の基準時刻TYの位相サンプルデータ、θ2dは選択番号ndで指定された位相サンプルデータの位相、T2cは選択番号ncで指定された時刻サンプルデータの時刻、TYは第2の基準時刻TYの時刻サンプルデータ、T2dは選択番号ndで指定された時刻サンプルデータの時刻、Δθ2は第2の位相差分、ΔT2は第2の時間差分)
を演算してΔθ2、ΔT2を算出し、
ωR_ave=Δθ_ave/ΔT_ave…式(18)’
(ただしΔθ_ave=Δθ1+Δθ2、ΔT_ave=ΔT1+ΔT2)
によって第1の速度検出と第2の速度検出の平均値ωR_ave(n)を算出することを特徴としている。
請求項8に記載の速度検出装置は、請求項2において、
前記第1の基準時刻と、その第1の基準時刻から1サンプリング時刻づつ隔てた過去のサンプルデータを、複数の基準位相データ、複数の基準時刻データとして前記位相・時刻記憶部から抽出し、
前記位相・時刻選択制御部が演算する選択番号naは、前記複数の基準位相データ、基準時刻データから各々前記時間差ΔT_Nth[s]分過去に遡った点の、第1の基準時刻側に隣接する点および第1の基準時刻と反対側に隣接する点の過去の位相サンプルデータおよび過去の時刻サンプルデータを各々指定する選択番号であり、
前記位相同期補正部および時間同期補正部は、
次の式(20)’
(ただしθ0_0~θ0_Mは複数の基準位相データの位相、Mは位相・時刻記憶部に格納されているメモリ個数、θ1(a+0)~θ1(a+M)は選択番号naで指定される過去の位相サンプルデータの位相、kaは線形補間の重み係数、ExtS_phは-180~+180degの範囲の符号付き位相値に変換する関数)
を演算して複数の位相差Δθ1_0~Δθ1_Mを算出し、
次の式(21)’
(ただしT0_0~T0_Mは複数の基準時刻データの時刻、Mは位相・時刻記憶部に格納されているメモリ個数、T1(a+0)~T1(a+M)は選択番号naで指定される過去の時刻サンプルデータの時刻、kaは線形補間の重み係数、ExtS_tは±Tim_max(タイマの最大値)/2の範囲の符号付きの値に変換する関数)
を演算して複数の時間差ΔT1_0~ΔT1_Mを算出し、
次の式(23)’
又は次の式(24)’
(ただしωR_0(n)~ωR_M(n)は複数の基準時刻ごとの速度検出値)
を演算して前記複数の基準時刻ごとの速度検出値の平均値ωR_ave(n)を算出することを特徴としている。
請求項9に記載の速度検出方法は、請求項1から8のいずれか1項に記載の速度検出装置を実行することを特徴としている。
(1)請求項1~9に記載の発明によれば、回転機の速度を検出する速度検出装置、方法において、軸位相に対しては高次ではあるが、RDCなどの位相検出部の検出位相とは非同期な位相誤差成分を抑制することができる。
(2)請求項3に記載の発明によれば、低速の場合に、計測する時間差を延長する機能が働くので、精度の改善が期待できる。
(3)請求項4に記載の発明によれば、高速の場合に、計測時間差が短くなりすぎることによるノイズやランダム性の誤差の影響を抑えることができる。
(4)請求項5に記載の発明によれば、速度演算が簡素化される。
(5)請求項6、7に記載の発明によれば、速度検出の遅延時間が一定となり、速度によって遅延時間は変動しない。
(6)請求項8に記載の発明によれば、多数の計測データを用いた統計的な処理を行っているので、ランダム性のあるノイズによる影響を抑制することができる。
以下、図面を参照しながら本発明の実施の形態を説明するが、本発明は下記の実施形態例に限定されるものではない。まず、実施例の構成を説明する前に、理解しやすいように、図5にて本発明方式の原理を簡単に説明する。
図5は、図4と同様に10次成分の位相誤差Δθ_10th(t)の波形(図5(a))と、RDCの検出位相θR(t)の波形(図5(b))を示している。図5では、図4に対してサンプルタイミング(「□、△、〇」印)を各2点に増やしてある。例えば速度演算の割込タイミングT(n)の位相サンプルをθ(n)とすると、T(n)よりちょうど10次成分の周期と同期したT1(n)のサンプルを追加する。こうすると、図中(1)では図5(a)の2個の□印のように10次成分が同じ値となり、これらの位相差分は10次成分を相殺することができる。図中(2)、(3)も同様となる。このように抑制したい高次成分と同期した2点のサンプル位相から速度検出することが本発明の特徴である。
この基本原理は10次成分の一周期に限定する必要はなく、様々な拡張が可能である。図中(4)のような2周期(整数倍周期)でも同様の効果が得られるし、図中(5)のように多点の位相検出データを利用して、オーバーラップした複数の位相間隔を利用して多数の速度検出を行って平均を求めてもよい。そこで、いくつかの拡張例も実施例として構成した。
図6に実施例1の構成例を示す。図6において、図3の従来例と同一部分は同一符号をもって示し、図3に対して追加・変更している構成部分のみ説明する
51はタイマであり、時間・時刻に相当する信号を出力する。このタイマ51には、速度検出演算タイミング信号Trg_nと、速度演算周期よりも短い周期の高速サンプルタイミング信号Trg_sを出力する機能を備えている。
s1は、高速サンプルタイミングTrg_sにおいて、RDC32の検出位相θR(t)から位相θsをサンプルするサンプルスイッチであり、s2は、高速サンプルタイミングTrg_sにおいて、タイマ51の時刻tから時刻Tsをサンプルするサンプルスイッチであり、これらs1,s2,Trg_sによって高速サンプル機能を構成している。
FIFO1、FIFO2は、位相θsや時刻Tsデータを格納するメモリであり、本実施例ではM段のFIFO(ファーストインファーストアウトメモリ)の構成としている。FIFO1側では位相情報を、FIFO2側では時刻情報を記憶する。FIFOメモリでは、Trg_s信号と同期して、サンプルデータをθs_0→θs_1→…θs_M-1の順にプッシュして、格納場所を移動させながらデータを保管する。このメモリの形態は何でもよく、リングバッファ構成として格納ポインタを更新する方法もある。ともかく最新からM回前までの過去の情報を記憶でき、任意の時刻のデータを読み出しできていれば良い。
s3,s4は2個のFIFOメモリ(FIFO1, FIFO2)のデータを読みだして保持するラッチ回路である。CPUに実装する場合なら、FIFOメモリから必要なデータを読み出して別の変数としてメモリに格納することに相当する。
ここで、ブロック内の添え字「_x、_0」がメモリのアドレスを示しており、「_0」の場合は、θs_0やTs_0を読み出すものである。ラッチ回路s3の方には「_x」のラッチも追加しており、これは後述する任意の番号xの位相θs_xを読み出すことを意味する。FIFOメモリから後述するような方法でアドレスを選択して読み出したデータについては、FIFOメモリのアドレス情報は不要になるので、Ts_0→T0、Ts_a→T1a、Ts_b→T1bのように新たな変数名を付加することにする。なお、ラッチ回路s4が出力するT0が第1の基準時刻となる。
s5,s6は、2個のFIFOメモリのデータを読みだして保持するラッチ回路であり、後述する位相・時刻選択制御部41からの番号指定「_a」と「_b」のアドレス指定により2個のデータを選択してラッチする。ラッチ回路s5では位相θ1aとθ1bを出力し、ラッチ回路s6では時刻T1aとT1bを出力する。このaとbは隣り合うサンプルデータであり、後述するようにこの2点を線形補間することにより(θ0-θ1)や(T0-T1)に関するデータを近似推定する。
読み出してからFIFOメモリに格納された位相データにも、θs_0→θ0、θs_a→θ1a、θs_b→θ1bのように新たな変数名を付加することにする。
ラッチ回路s3,s5の出力側に設けた減算器42,43,乗算器44および加算器45によって位相同期補正部が構成され、出力位相θ0、θ1a,θ1bから図5(b)のΔθ1に相当する位相差分が演算される。
ラッチ回路s4,s6の出力側に設けた減算器52,53,乗算器54および加算器55によって時間同期補正部が構成され、出力時刻T0、T1a,T1bから図5(b)のΔT1に相当する時間差分が演算される。
60は、位相同期補正部で演算された位相差分Δθ1を、時間同期補正部で演算された時間差分ΔT1で除算して速度検出値ωR(n)を算出する除算器である。図2で述べたようにレゾルバの検出位相θRは0⇔360degの点で不連続点が存在する。そこで、ラッチ回路s3から出力されるθ0を基準位相とし、この基準位相θ0に対する位相差(θ0-θ1a)を減算器43で計算し、(θ1a-θ1b)を減算器42で計算し、これらの位相差は1/2回転未満(±180deg未満)であるという制約を利用して、剰余や符号拡張などの演算処理を用いて-180~+180deg範囲の符号付きの値に変換する。この関数をExtS_ph()と定義する。そうすると、前記2つの位相差の合計「 ExtS_ph(θ0-θ1a)+ExtS_ph(θ1a-θ1b)」には、不連続点の影響が現れず、-1degを+361degと誤認識することを防止できる。
減算器42、43は、図6では単純な差分器として描いているが、実際にはこの符号拡張関数ExtS_ph()も適用している。これは数値演算上のテクニックであり提案内容の本質ではないのでブロック図では省略した。
θ1aとθ1bの2点間の線形補間は、式(2)のように、位相差(θ0-θ1a)の値と、(θ1a-θ1b)に線形補間の重み係数「ka」を乗算した値とを加算することにより求められる。
また、線形補間は他の計算式でも可能であり、式(2a)のように位相差(θ0-θ1a)と(θ0-θ1b)および重み係数(ka、1-ka)を利用する方法などもある。
この式(2a)の計算式を達成する回路構成を図7に示す。図7において図6と同一部分は同一符号をもって示している。
図7において図6と異なる点は、位相同期補正部側では、θ0-θ1bを減算器46で求め、減算器47で求めた重み係数kb=1-kaと前記減算器43の出力を乗算器48で乗算し、前記減算器46の出力と重み係数kaを乗算器49で乗算し、乗算器48および乗算器49の出力を加算器45で加算するように構成している。
また、時間同期補正部側では、T0-T1bを加算器56で求め、減算器47で求めた重み係数kb=1-kaと前記減算器53の出力を乗算器58で乗算し、前記減算器56の出力と重み係数kaを乗算器49で乗算し、乗算器58および乗算器59の出力を加算器55で加算するように構成している。
時間データについてもディジタル回路では無限大の数値は扱えない。そこで、タイマ51の最大値Tim_maxを不連続点とみなして、図6、図7の減算器53で求める時間差(T0-T1a)と、図6の減算器52で求める(T1a-T1b)と、図7の減算器56で求める(T0-T1b)を(-Tim_max/2~+Tim_max/2)の範囲の符号付きの値に変換する。この関数をExtS_t()と定義する。そして式(3)や式(3a)のように線形補間ΔT1=(T0-T1)を近似する。
ここで、ExtS_t:±Tim_max/2の範囲の符号付き位相値に変換する関数である。
本来はサンプル周期Tsを固定にしておけば、式(3)のような時刻の計測値から時間差を計算する必要はなく、後述する式(5)のように簡単に時間差ΔT1が計算できる。しかし、高速サンプルをCPUのソフトウエアとして実装した場合には、割込時刻から位相や時刻をread命令にて読み出すまでに不確定な時間遅れが生じる。この場合は、サンプル間隔がTsと厳密には一致しないので、計測時刻を読みだした時刻というより正確な値からそれらの時間差を演算することにより精度を維持している。位相と時刻の同時性は必須であるので「上位割り込みを禁止した連続したread命令」で読み出す必要があるが、割り込み時刻からの遅れが一定でさえあれば多少のばらつきがあっても速度検出精度には影響しない。
もちろん、ディジタル回路などで高速サンプルを実装する場合にはTsのタイミングに対して正確なサンプルが実行されるので、式(3)ではなく後述する簡単な式(5)を利用できる。
ソフトウエアやメモリを利用してデータをサンプルや記憶する場合には、厳密には「ラッチ回路」ではないが、「ラッチ回路・加算器・回路構成」などのディジタル回路の用語に統一して説明を行うことにする。
前記式(2)、式(3)により位相差Δθ1と時間差ΔT1が求まれば、従来法と同様にこれらを除算器60で除算することにより速度検出値ωR(n)が求まる。式(2)と式(3)を分子分母に当てはめると式(4)となる。
式(4)では、分母に式(3)を用いているが、この代わりに後述の式(5)を分母に用いると、速度検出値ωR(n)は式(4)’となる。
41は位相・時刻選択制御部であり、ラッチ回路s5,s6のラッチアドレス(na,nb)や線形補間の重み係数kaを計算して、先述した動作を指示する指令部である。
位相・時刻選択制御部41では、例えば10次成分の周期位相Δθ_10thからこれに相当する時間差ΔT_10thを推定して、a、bのメモリアドレスの選択番号および線形補間の重み係数kaを計算する。
速度検出演算を行うタイミングT(n)と高速サンプルタイミングとの関係を、図8の例を用いて説明する。速度演算を行うタイミングTrg_n(T(n-1)、T(n))に対して、高速サンプルタイミングTrg_sは1/5の周期に設定した例である。T(n)の時刻を現在のTrg_nタイミングとすると、FIFO2にラッチされるM個のデータは、T(n)に近い方から順に過去にさかのぼって、高速サンプルデータに「Ts_0(n)、Ts_1(n)、…、Ts_M-1(n)」と記号を付けた時刻のサンプル値になる。ここで時刻T(n)のデータだけに着目して、以降の説明では「Ts_0、Ts_1、…、Ts_M-1」のように「(n)」を省略して取り扱う。位相についても同様に、FIFO1に格納される位相のサンプル値に「θs_0、θs_1、…、θ_M-1」の記号をつける。
このFIFO2から「a、bなどのアドレス指示」によって選択読み出しされた値には、「T0、T1a、T1b」などの新たな記号を付けて分かりやすくする。
ここでT(n)とTs_0の関係であるが、これは厳密に一致させる必要はなく、基本的には異なるサンプルタイミングでもよい。しかし、一致する場合には計算式が簡素化できるので、少し構成が異なってくる。そこで、これらが混乱しないように、T(n)とTs_0サンプルとの同時性を実現する構成の場合は「Ts、Tn同期検出方式」と呼び、ソフトウエアなどで値を読み出すなど同時性が成立しない場合は「Ts、Tn非同期検出方式」と呼んで区別する。
実施例1と、後述する実施例2および実施例3の構成は、T(n)とTs_0が一致しない「Ts、Tn非同期検出方式」を想定して示しているので、時間差も計算する複雑な構成例になっている。ただ、原理説明図に関しては、あまり複雑になると理解の妨げになるので、「Ts、Tn同期検出方式」で描いているタイムチャートも一部ある。
高速サンプルを適用したことにより時間間隔が短くなっただけでなく、FIFOメモリにてM個のデータを保管することにより、速度検出演算の周期T(n)~T(n-1)とは無関係にそれよりも長い過去のデータまで保持できる。つまり、従来例の速度検出方式よりも長い時間差が取り扱えるようになる。また図8には、1サンプル前の時刻T(n-1)におけるFIFO2メモリの保管値も「Ts_0(n-1)、Ts_1(n-1)、…、Ts_M-1(n-1)」として追記した。これを見れば、同じサンプルデータが、時刻T(n-1)と時刻T(n)とでは異なるメモリアドレスのデータとして取り扱われており、何度も繰り返して利用されることが理解できる。このように、M個のメモリにて多点のデータを記憶させることにより、時刻T(n-1)と時刻T(n)の速度検出よりも長い時間差をオーバーラップさせながら有効利用できることが本実施例の効果を生み出す要因であると考えることもできる。
T(n)の時刻に対して、10次成分と同期した時間差をΔT_10thとすると、速度差を求める過去の時刻T1(n)を「T1(n)=T(n)-ΔT_10th」で計算する。ここで厳密なT1(n)(以降ではT1と省略)のタイミングで正確にサンプルしようとすると複雑な回路が必要になるし、予めΔT_10thの値を予測しておく必要もある。そこで、高速サンプルを適用して多点データを記憶させておき、後で該当するデータを読み出して線形補間することにより、近似推定することにした。
時刻T1の前と後ろの2点の高速サンプルデータを選択して新しい方をTs_a、古い方をTs_bと定義すれば、T1およびTs_aとTs_bの関係より、線形補間の重み係数kaとkbを計算できる(Ts_aは、時刻T(n)からΔT_10th分過去に遡った時刻T1(n)からみて、時刻T(n)側に隣接する時刻サンプルデータとなる。Ts_bは、時刻T(n)からΔT_10th分過去に遡った時刻T1(n)からみて、時刻T(n)と反対側に隣接する時刻サンプルデータとなる)。
10次成分の一周期位相Δθ_10thは36deg(360deg/10)であり、これに相当する時間ΔT1の推定には、前回速度など何らかの参考検出速度ωestを利用する方法(式(5))や、現在の「θs_0、θs_1、…、θ_M-1」の中から「θs_0、θs_x」の2点を取り出して推定する方法(式(6))などがある。
(数式が複雑であるので、物理的な意味が理解しやすいように一部の変数に対して補足用の単位記号を付加した。ただし、説明文ではわかりやすいように「deg」の単位を使用しているが、式(5)や式(6)などでは、角度の単位を「rad」、角速度を「rad/s」、時間を「s(秒)」に統一している。)
ここで、Δθ_10th[rad]=2π[rad]/10[次]
ここで、abs()は絶対値関数
a、bのアドレスの選択番号na,nbやkaの係数は、ΔT_10th(10次成分と同期した時間差、すなわち10次成分の同期位相)とサンプル間隔Tsから式(7)、式(8)、式(9)で計算できる。
まず、式(7)にてΔT_10thをサンプル回数W1の単位に換算する。まだW1は正の実数であり、小数点以下の値を有している。線形補間に使用する読み出しアドレスの番号na、nbは、式(8)にて切り捨て関数(floor)にて最初の読み出しアドレスnaを決定し、その次のアドレスはnb=na+1とする。線形補間係数kaは式(9)にてW1の小数点以下成分をそのまま利用する。これらが求まれば、式(2)と式(3)により位相差と時間差を線形補間できるようになる。
上述の原理以外に、実装時には次のような異常保護も必要である。誤差成分である10次成分に同期した時間間隔を利用することにしたため、速度検出に使用する時間差間隔は回転速度に応じて変化してしまう。極低速では図9のように10次成分に同期した時間差間隔ΔT_10th(n)の間隔が長くなり、高速では図10のように短くなる。
図9、図10は、図8と同様に上段に10次の位相成分を示し、下段に検出位相を示したタイムチャートである。
そこで、低速と高速域では、最大時間差と最小時間差の制限を追加することにより、できるだけ異常な検出動作をしないように対策する。
まず低速(第1の所定速度未満)の場合には、図9のようにΔT_10thを最大の時間差ΔTmax(回転速度によらない固定値)で制限する。すなわちサンプル点を図9に示す「□」印から「■」印に変更する。この制限により10次成分と同期した速度検出ができなくなるので、10次成分の抑制効果が無くなってしまう。しかし、この極低速領域(位相差の小さい領域)では10次成分自体の変化量も少ないので速度誤差も小さい。速度が上昇すると、ちょうどこの制限に掛かる限界付近の速度域が最も速度誤差が大きくなる。それでも、従来のように一定の時間差で速度検出するのではなく、低速では計測する時間差を延長する機能が働くので、その分だけでも精度の改善効果が期待できる。
次に高速(第1の所定速度以上)の場合は、図10のようにΔT_10thが最小制限の時間差ΔTminよりも短くなる。計測時間差が短くなりすぎると、検出時のノイズなどによるランダム性の誤差の影響が拡大されて現れてくる。そこで、(2×ΔT_10th)のように時間差を整数倍してΔTminより長くなるように拡大する。すなわちサンプル点を図10に示す「□」印から「■」印に変更する。これでも、10次成分との同期性は維持できるので速度検出の誤差抑制効果は維持される。
ここで、前記式(5)、式(4)’の参考検出速度ωestを用いる方法の一例として、前回の速度検出結果を利用する方法の構成例(実施例1の構成例(その3))を図23とともに説明する。
図23において図6と同一部分は同一符号をもって示しており、ここでは異なる部分のみを説明する。FIFO1の出力側には位相データθsを抽出するラッチ回路s7が設けられ、FIFO2の出力側には時刻データTsを抽出するラッチ回路s8が設けられている。
図6の位相・時刻選択制御部41と同様に構成された位相・時刻選択制御部41aでは、線形補間の重み係数kaと隣り合う2個のデータのアドレス番号na,nbを出力する。タイマ51からの速度検出演算タイミングTrg_nによりデータをラッチするラッチ回路sn10,sn1a,sn1bは、位相・時刻選択演算部41aのna,nbで指定された位相データθ0,θ1a,θ1bをラッチ回路s7からラッチして出力する。
タイマ51からの速度検出演算タイミングTrg_nによりデータをラッチするラッチ回路sn20,sn2a,sn2bは、位相・時刻選択演算部41aのna,nbで指定された時刻データT0,T1a,T1bをラッチ回路s8からラッチして出力する。
位相同期補正部では図6と同様の演算によりΔθ1を算出し、時間同期補正部では図6と同様の演算によりΔT1を算出する。除算器60ではΔθ1/ΔT1を演算して速度検出値ωR(n)を算出する。
この速度検出値ωR(n)は、タイマ51からの速度検出タイミングTrg_nでラッチ回路s9によってラッチされ、前回の速度検出結果(参考検出速度ωest)として位相・時刻選択演算部41aに入力される。
この図23の構成では、前回の速度検出結果ωestと式(5)に基いてΔT1を演算する。そして演算されたΔT1と式(7)~式(9)によってアドレスna、nb、係数kaを演算する。これが図6、図7の構成との相違点である。
図6では、計測時間をΔT_10thに設定する方法を示した。逆に、位相差がΔθ_10th=36degの倍数になるように、高速サンプルした位相データから選択・補間して位相差が同期するように近似する方法もある。式(10)の条件が成立するデータ番号iを探索すれば、式(11)にて時間差を線形補間することができる。
しかし、この方法は位相検出値にノイズが含まれている場合には、極大・極小を含むカーブとなるため想定外の点を選択する可能性がある。この対策を考えると、計測時間をΔT_10thに同期する方が簡単に実現できる。
以上は、高速サンプルと線形補間を利用して特定の位相や時刻を推定したが、高速サンプルの周期が短く精度要求を満足する場合には線形補間まで実装しなくてもよい。W1を四捨五入してnaアドレスとし、この読み出し値だけで速度演算を実行してもよい。この場合、式(4)と式(4)’では線形補間の重み係数ka=0となる。このように実施すると、ΔT_10thに対して同期精度は悪くなるが、位相と時刻の同時性を確実に確保さえしておけば、許容誤差に応じてもっと簡素化することもできる。これらは実施例1の構成に対して一部を変化させたものであり、容易に類推できるものであるので個々を実施例として記載することは省略する。
図3の従来例では、4次成分の位相誤差は検出位相と同期しているので、「Δθ^_4th(n)」のような同期している高次誤差の補正を適用しているが、図6には明示はしていないが、実施例1でもθsの高速サンプルなどにこの補正を適用することができ、そうすればより精度が改善できる。また、速度演算のためにメモリからデータを選択した後で、位相情報(θ0、θ1a、θ1b)に対して同期している高次誤差の補正を行ってもよい。これについても、提案内容の本質ではないので省略している。また、以降の実施例でも省略する。
なお、本実施例では10次成分の位相誤差を補正する例を示したが、10次成分以外の位相誤差の補正にも本発明は適用できる。その場合、前述の各式のΔT_10thがN次成分と同期した時間差ΔT_Nthに置き換わる(N:位相誤差を補正する次数)。
実施例1では、検出位相と非同期な高次成分であっても、その高次周期と同期した検出方式を採用することによる速度誤差を抑制した。しかし、速度により時間差の間隔が延びたり短くなったりすることも説明した。
これを非同期部分が複雑なので「Ts、Tn同期検出方式」にて簡素化して図示したものが図12(a)であり、T(n)とTs_0のサンプルタイミングが一致する例で表現している。
この図中のΔT1がΔθ_10thに同期する時間差であり、この情報から求めた速度検出値を速度制御などに利用する場合には、この速度はΔT1の中間時刻の瞬時値であると近似して取り扱う方が処理しやすい。つまり、図中のΔT1_dlyが等価的な「速度検出の時間遅れ成分」とみなすことになる。
「速度のフィードバック制御」を構成する場合には、この遅れ時間は「無駄時間」と呼ばれる制御応答を制限する要素となるので、できるだけ短い方が良い。しかし、計測時間を短くするとランダム性のノイズの影響が拡大され、逆に計測時間を長くすると無駄時間が大きくなって制御性能を低下させてしまう。そこで、ある程度の遅延時間を許容するかわりに精度の方を優先して確保しておき、この遅延時間の影響は予測演算などの補償を適用して対策することがある。この遅延時間の影響を予測演算する場合には、無駄時間(検出遅れ)が動的に変化すると補償演算が複雑になってしまうという課題が生じてくる。
そこで、実施例2では、実施例1よりも速度検出の遅れ時間は延びるものの、速度によって遅延時間が変動をしない方式を提案するものである。
図12を使ってこの原理を先に説明しておく。図12上段(a)のΔT1が実施例1の速度検出期間であり、これを「第1の速度検出」とする。さらに図12の下段(b)のように、最も古い方の時刻(第2の基準時刻)をTs_Yに設定しΔT2を計測期間とする「第2の速度検出」を追加すると、図中のΔT2_dlyが「第2の速度検出の時間遅れ成分」となる。そしてこの「第1の速度検出と第2の速度検出の平均」を求めると、その検出の時間遅れ成分は、ΔT1_dlyとΔT2_dlyの中間点に近似することになりΔTdly=(ΔT1_dly+ΔT2_dly)/2となる。
そこで、設定したい遅延時間ΔTdlyを先に設定し、式(12)の条件が成立するように高速メモリの選択番号Yを設定する。このYは式(13)で計算できる。また、線形補間も「第1の速度検出」で使用したna、nb、kaが流用できるので、式(14)のように置換すればよい。は図中のnc番目の時刻をT2c、nd番目の時刻をT2dとすると、式(15)にて第2の速度検出に使用する時間差が求まる。時刻(T2c、T2d)に対応する位相データを(θ2c、θ2d)とすると、位相差は式(16)で求まり、第2の速度検出値は式(17)のωR2(n)となる。なお、式(12)のTs_0は第1の基準時刻T0に相当する。
前述したように位相の値には360degの不連続点があるので、近接した(θ2c-θY)と(θ2d-θ2c)の位相差を符号拡張することにより不連続点の影響を除去している。時刻に関しても同様である。
「第1の速度検出と第2の速度検出の平均」は式(18)で計算すればよい。
式(15)は、実施例1のCPUのソフトウエアで高速サンプルを実装することも考慮した「Ts、Tn非同期検出方式」の場合であり、TsとTnのサンプルが一致する「Ts、Tn同期検出方式」の場合には、ΔT2もΔT1と同じ式(5)となるので演算を省略できる。
図11はこの原理を実装する実施例2の構成であり、ここでは「Ts、Tn非同期検出方式」の場合として、式(15)の時間差も計算する例としている。図11において図6と同一部分は同一符号をもって示している。図11の構成では、図6に対して次の要素を追加している。
ラッチ回路s7は、第2の速度検出用に、ラッチ回路s3に対応した基準時刻の位相(第2の基準位相θY)を読み出してラッチする。
ラッチ回路s8は、第2の速度検出用に、ラッチ回路s4に対応した基準時刻(第2の基準時刻TY)を読み出してラッチする。
ラッチ回路s9は、第2の速度検出用に、ラッチ回路s5に対応した線形補間を行う2点(c、d番目)の位相θ2c、θ2dを読み出す。
ラッチ回路s10は、第2の速度検出用に、ラッチ回路s6に対応した線形補間を行う2点(c、d番目)の時刻T2c、T2dを読み出す。
位相同期補正2は、減算器62、63、乗算器64および加算器65を備え、図6の位相同期補正部と同様の機能を実行する(ここで、線形補間の重み係数kaは実施例1と同じ値を利用する)。
時間同期補正2は、減算器72、73、乗算器74および加算器75を備え、図6の時間同期補正部と同様の機能を実行する(ここで、線形補間の重み係数kaは実施例1と同じ値を利用する)。
66は2種類の位相差Δθ1、Δθ2を合成するため追加した加算器であり、76は2種類の時間差ΔT1、ΔT2を合成するため追加した加算器である。
61は位相・時刻選択制御部であり、図6の位相・時刻選択制御部41と基本的には同じ機能であるが、ncやndを制御する機能を追加している。
図11の回路構成において、前記式(16)のθ2c-θYは減算器63により計算され、θ2d-θ2cは減算器62により計算され、Δθ2は加算器65により計算される。
前記式(15)のT2c-TYは減算器73により計算され、T2d-T2cは減算器72により計算され、ΔT2は加算器75により計算される。
本実施例2では加算器66を追加したことにより、その出力Add1はΔθ_ave=Δθ1+Δθ2となる。また加算器76を追加したことにより、その出力Add2はΔT_ave=ΔT1+ΔT2となる。
そして、図11の除算器60にて、
ωR_ave=Δθ_ave/ΔT_ave … 式(18)’
として速度を計算すると、この速度検出値は、図12(b)に示す第1の速度検出の時間遅れ成分ΔT1_dlyと、第2の速度検出の時間遅れ成分ΔT2_dlyの平均遅延時間ΔTdlyに相当する時間遅れに固定できる。
厳密にはωR1=Δθ1/ΔT1と、ωR2=Δθ2/ΔT2の2種類の速度を計算するべきだが、ΔT1≒ΔT2、Δθ1≒Δθ2と仮定できれば、分子と分母の要素を先に加算して合成することにより、除算を2回から1回に削減できる。図11ではこの簡素化した実施形態としている。もちろん、除算を2個に分けてωR1とωR2の2個の速度を計算してから平均してもよい。
実施例1や実施例2では、高次位相誤差に同期した速度検出方式の実施例を示した。ここでは、高速サンプルと線形補間を利用して高次成分の周期と同期した位相と時刻データを近似計算し、それらの位相差と時間差を得ている。しかし、この例では高速サンプルの一部しか利用していない。実施例1では1回のみ、実施例2でも2回しか使用していない。まだ、利用していない計測データが残っているので、これを有効利用することができる。検出位相のサンプル値にはランダム性のあるノイズ成分も含まれるので、もっと多数の計測データを用いて多数の速度検出値を得ることにより、統計的な処理によりノイズによる誤差を抑制する方法を実施例3として提案する。
実施例3の構成例を図13に示す。また、構成例の各信号については図14の原理説明に示してある。図13は「Ts、Tn非同期検出方式」の構成であるが、図14はわかりやすいように、「Ts、Tn同期検出方式」として描いてある。
実施例1の本質である高次位相誤差成分と同期した位相差は、図14のように、ΔT1_0だけでなくΔT1_1、ΔT1_2のように複数の期間としても存在する。そこで、速度検出に利用する位相差(時間差)は実施例1のΔT1_0を利用する場合と同じままとして、ΔT1_1やΔT1_2のようにサンプル時刻をずらしながら複数の速度検出を追加して、最後にそれらを平均することが提案する内容である。
そのためには、現在の速度検出処理(T(n)タイミング)において、Ts_0、Ts_1、Ts_2のように高速サンプルの基準点をずらしながら複数回の速度検出演算を行い、それから平均などの統計処理を行う速度検出方法を「Nave点平均型の速度検出」と呼ぶことにする。
ここで、図13と図14では、Nave=3、na=4の例で示してあるので、3個の速度検出を行い、平均する構成例となっている。また図の視認性を考えて図14の高速サンプルのメモリ数はM=8と少なくしてある。
図13において、図6、図11と同一部分は同一符号をもって示している。次に実施例1と差異のある部分のみを下記に示す。
ラッチ回路s301は、図6のラッチ回路s3と同様にTrg_nのタイミングで位相をラッチする機能を有しているが、複数の基準位相を得るために実施例1の「_0」番目のラッチを(Nave)個(θ0_0、θ0_1、θ0_2)に増やしてある。
ラッチ回路s401は、図6のラッチ回路s4と同様にTrg_nのタイミングで時刻をラッチする機能を有しているが、複数の基準時刻を得るために実施例1の「_0」番目のラッチを(Nave)個(T0_0、T0_1、T0_2)に増やしてある。
ラッチ回路s501は、図6のラッチ回路s5と同様にTrg_nのタイミングで位相差計算用の過去位相データをラッチする機能を有しているが、実施例1のラッチ回路s5では「_a、_b」番目の2個のラッチであったが、ここでは(Nave+1)個の(θ1(a+0)、θ1(a+3)、θ1(a+1)、θ1(a+2))に増やしてある。基準より1点増えているのは線形補間を行うためである。
ラッチ回路s601は、図6のラッチ回路s6と同様にTrg_nのタイミングで時間差計算用の過去時刻データをラッチする機能を有しているが、実施例1のラッチ回路s6では「_a、_b」番目の2個のラッチであったが、ここでは(Nave+1)個の(T1(a+0)、 T1(a+3)、 T1(a+1)、 T1(a+2))に増やしてある。
位相同期補正3は、減算器81_0,81_1,81_2,81_3、合算器82、乗算器83および加算器84を備え、ラッチ回路s301とs501にてラッチした位相、および線形補間の重み係数kaより、3種類の位相差の合計Δθ1_sumを計算する。
時間同期補正3は、減算器91_0,91_1,91_2,91_3、合算器92、乗算器93および加算器94を備え、ラッチ回路s401とs601にてラッチした時刻、および線形補間の重み係数kaより、3種類の時間差の合計ΔT1_sumを計算する。
位相同期補正3および時間同期補正3の出力はΔT1やΔθ1の約Nave倍であるが、後段の速度演算の除算部にて分子と分母で相殺されるので問題ない。
実施例1と同じく、高速サンプルしたFIFOメモリには「Ts_0、Ts_1、…、Ts_7」および「θs_0、θs_1、…、θs_7」の各8個(M個)のサンプル値が格納されている。実施例1では図14に示すΔT1_0の時間幅にて速度検出を行っており、na番号とnb=na+1番号との2点の時刻データは、ここではTs_a(図14ではTs_4)とTs_(a+1)(図14ではTs_5)に該当している。
実施例3では、さらに図14に示すΔT1_1やΔT1_2のように、サンプルデータを1個ずつずらして多数の速度検出を行う。
ここでNaveの選定にはいくつかの制約がある。最初がメモリ点数Mの制約である。計測点数以上は参照できないし、速度演算中もメモリデータの値は高速サンプルにより更新されている可能性があるので、実際にはM点すべてを利用することはできず、T(n-1)~T(n)間のサンプル点数程度は少なく設定する必要がある。次の制約は遅延時間の課題である。平均する点数を多くすると、平均した速度検出値の等価遅延時間も長くなる。したがって、実施例2で設定したΔTdlyの遅延時間より大きい場合には、実施例2よりも制御性能が低下してしまう。最後に、平均点数が多くなれば演算負荷も増大することが課題となる。
図14を用いて、実施例3の動作と機能を説明する。この例では3種類の速度検出期間(ΔT1_0、ΔT1_1、ΔT1_2)を使用しており、それらの個々の位相差と時間差は式(20)と式(21)として表せる。位相の場合は、基準点が(θ0_0、θ0_1、θ0_2)であり、それらに対応した過去の位相を線形補間して求めるために、それぞれ(θ1(a+0)、θ1(a+1))、(θ1(a+1)、θ1(a+2))(θ1(a+2)、θ1(a+3))の位相データと、重み係数kaを使用する。位相データには360degでの不連続点があるので、位相差をExtS_phで符号拡張して対処してから、線形補間を適用して位相差を求めている。時間差も同様に、±Tim_max/2の範囲の符号付き位相値に変換する関数ExtS_tを用いている。
この複数の位相差と時間差を利用して平均速度を得るためには、式(22)のように個々の速度を計算し、式(23)にて平均値を求めればよい。
しかし、除算回数が多くなるので、式(24)のように分子と分母の段階で合成して近似計算をすることにより、演算量を削減することもできる。「Δθ1_0≒Δθ1_1≒Δθ1_2」および「ΔT1_0≒ΔT1_1≒ΔT1_2」の場合には、この近似が適用できる。
式(24)の分母を詳細に分析してみると、式(25)のように係数kaに関する項が相殺されて3種類の移動平均区間であっても両端の2点の差分だけを利用して計算できるので大幅に簡素化できる。ただし、差分値が±180deg未満でないと正確な符号拡張演算ができないので、Naveの最大値にはこの制約も存在する。同様に、時間差も同様に係数kaをまとめる簡素化が適用できる。図13では、位相差と時間差のそれぞれにこの近似を適用した構成を示してある。もちろん、近似をしないで個々の速度を計算してから平均してもできることは自明である。
このように、計測期間をオーバーラップさせて、多点の計測データを利用して複数の速度計算を行うことにより、ランダム性のあるノイズによる影響を抑制することができる。
式(25)を、Nave点の位相差の合計を求める一般形として表すと式(26)となる。時間差も同様に計算できる。Naveを3点以上にする場合には、この一般式を適用すればよい。
前述の式(20)~式(25)は、Naveが3点の場合の式である。NaveがM+1点と一般化すると(Mは2以上の整数)、式(20)~式(24)は式(20)’~式(24)’のように表される。
次に、前記各実施例1~3を含む発明の効果を、シミュレーション結果の波形を用いて説明する。使用したシミュレーションの構成を図15に示す。
これは、下記の要素で構成されている。
(a)速度指令部151…実速度の変化パターン発生部であり、レゾルバの軸回転速度を設定する。0から7500rpmまでを2~8[s]の時間で直線状に変化させている。
(b)速度外乱発生部152…実施例1~3の応答性能を比較するために、(a)の速度指令に矩形状の速度変化を加算する。最初の、定常状態の特性を調べるときは、この成分は零にしておく。後半の、検出遅れ時間を調べるための応答特性確認の時には、0.2 周期で、0.1s期間は0に、0.1s期間は100rpmの矩形波を設定した。
(c)積分器154…速度信号を時間積分する機能、レゾルバの回転位相を出力する。これにはまだ、位相検出の外乱を含んでいない。
(d)10次位相外乱発生部155…レゾルバ位相に応じて検出誤差を外乱として注入する。ここでは、抑制対象である回転角の10次高調波成分を加算している。効果が分かりやすいように、位相誤差は10次成分の正弦波のみとし、誤差振幅は±0.1degに設定した。実機では、Nx=4の場合は、4次や8次の位相誤差が発生するが、ここでは効果が分かりやすいように他の次数成分は零にしている。
(e)0~360deg部132…レゾルバのRDC32に相当する部分である。積分器154の出力位相は連続波形であるが、RDC(132)の出力は1回転ごとに0にリセットされる不連続データを出力する。
(f)従来例部160、実施例1部161、実施例2部162、実施例3部163…比較する各速度検出方式を実装した部分である。従来例は、1msの割込み処理のみとし、3個の実施例は、高速サンプル周期Ts=200μs、速度演算周期Tn=1msに設定した。
実施例1と実施例2では、最小検出時間Tmin=1ms(Tsの5サンプル)、最大検出時間Tmax=4ms(Tsの20サンプル)にしている。実施例3では、平均回数を8回に設定した。
(Graph1)…前記(e)の出力位相と、(d)の10次誤差成分の特性を示すグラフである。10次の誤差成分は微小なので、縦軸を100倍に拡大して描いてある。
(Graph2)…レゾルバの実回転速度Nref、従来法での検出回転速度N_1ms、実施例1の検出回転速度N_10th、実施例2の検出回転速度N_10th_2、実施例3の検出回転速度N_10th_aveの波形をまとめて描いてある。
同じ軸状に描くと重なってしまうので、「+100rpm、+200rpm、+300rpm、+400rpm」のブロックにて、出力速度の波形にオフセットを加えて描いてある。
(Graph3)…Graph2の4種類の速度検出結果の誤差を拡大して表示するため、実回転速度Nrefを減算して誤差成分を抽出したものであり、従来例の誤差がΔN_1ms、実施例1の誤差がΔN__10th、実施例2の誤差がΔN_10th_2、実施例3の誤差がΔN_10th_aveとしている。
ここでも4種類の波形が重ならないようにオフセットを加えてずらして描いてある。ここでは、従来例と3種類の実施例との差異を示しており、3種類の実施例内の優劣はGraph4で比較する。
(Graph4)…Graph3の3種類の実施例の特性差異を拡大して表示するため、3種類の検出速度特性について縦軸を拡大して描いてある。各速度波形のオフセット幅は20rpmと小さくしている。
(Graph5)…実施例3の抑制効果が高いことを表すグラフ
<従来法に対する3種類の実施例の効果>
図16のGraph1が位相特性、Graph2が速度と速度検出の波形、Graph3が速度検出誤差の特性である。図16(c)のGraph3を比較すると、従来例に対して、3種類の実施例は誤差が抑制できていることが分かる。従来例の誤差特性のうち、速度零付近では10次成分の誤差自体が変化しないので、速度誤差は小さい。速度が上昇するにつれて速度誤差の振幅は大きくなっている。ちょうど6000rpmでは、1msのサンプル周期が10次成分の一周期と一致する。(10[次]×60[sec/min]/6000[rpm=rev/min]=0.001[s/(rev/次)])そのため、実施例1~3と同様の誤差抑制原理が働き、誤差が零になっている。しかし、速度が6000rpmから離れると誤差も大きくなっている。
これに対して、実施例1~3の方式では、500rpm程度から速度が抑制できていることが分かる。最大検出時間の制約により低速では抑制効果が低くなるが、それでも検出時間差をTmaxに拡大する機能により、誤差が抑制されている。
図5で示したような速度演算時刻(またはその直前の高速サンプル時刻)に対して、ちょうど高次位相誤差(次数:Nth)の整数倍周期の期間での位相差と時間差を使用して速度検出ができるので、差分位を演算する際に高次位相誤差(次数:Nth)の誤差が打ち消し合って相殺されるため、精度のよい速度検出が可能になる。また、計測時間差も、位相や時刻の高速サンプルを保持するメモリ数を多くすれば、速度演算の割込み周期とは無関係に長くも短くも設定できるので、低速や高速時の速度検出において精度の良い検出期間を任意に選択することもできる。
図17は、図16の特性の8.7~9.1s付近を拡大したものである。従来法のN_1msやΔN_1msは、10次誤差がサンプルごとにばらつくために、サンプル周期と位相誤差の周期とのサンプルタイミングのずれによるビート状の速度誤差が確認できていることが分かる。これに対して、3種類の実施例では、10次成分の位相誤差による速度誤差成分が十分に抑制できていることが確認できる。
<3種類の実施例における速度誤差の抑制効果の比較>
実施例1と実施例2および実施例3の3種類の特性を比較したものが図18である。図18(a)は図16のGraph3と同じ速度検出波形を描いてある。図18(b)は、Graph3の速度差を3種類の実施例に絞り、縦軸を拡大して示している。図18(c)は、図18(b)の誤差の脈動要因が、高速サンプルを線形補間することに起因することを説明するために、W1とnaという線形補間の情報を描いてある。
Graph5の0~4.7sまでの期間はW1=na=20サンプル(4ms相当)に制限されているので、10次位相誤差と同期していない、そのため位相誤差が大きくなる、しかし、4.7s以降では10次位相誤差の周期と同期した時間差で速度検出が出来ているので、速度誤差が大幅に減衰されている。サンプル間隔n1aが20~5まで変化しても、大きな誤差は発生せず、さらに、15.6s以降では10次成分の2周期に同期して検出するように切り替えているが、特に速度誤差が大きくなることはない。しかし、計測速度が加速中であるため位相の時間微分が常に変化しているため、線形補間演算に誤差が発生するので、階段状のn1aの各レベルの中央部分の速度誤差が大きくなっている。実施例3では、8点の平均を取っているので、統計処理によりさらに誤差が抑制できている。単純に速度誤差の大きさだけを比較すると、実施例1と実施例2はほぼ同じ特性であり、実施例3が最も抑制効果が高いことが分かる。
<3種類の実施例における速度誤差の検出遅れ時間の比較>
速度検出をフィードバック制御に適用する場合には、速度検出の時間遅れ成分が性能を制限する要因となる。そこで、速度検出の時間遅れを調べたものが、図19以降の特性である。
以降では、図15の速度外乱を有効にして、さらに矩形波状の速度外乱を加えてある。矩形波の周期は速度検出遅れよりも十分に長い時間に取ってあるので、矩形波の各エッジ部分がちょうどステップ応答とほぼ等価な挙動を示す。
そのため、速度検出と実速度の差分波形には、遅れ時間に相当するパルス状の速度誤差が表れる、そこで、このステップ応答時の実速度と速度検出との差異パルスの時間幅で、検出遅れ時間を評価することにした。
図19は図16に相当する特性であり、全体の速度領域の速度検出誤差を示している。Graph2に、速度に矩形波状の外乱が挿入されていること、Graph3にパルス状の速度誤差が発生していることが分かる。
このGraph3の遅れ時間に相当するパルスの振幅は、回転速度に応じて、実施例により大小関係が変化していることが確認できる。
つまり、3種類の実施例における速度検出遅れの特性は、実速度の領域によって変化する。そこで、以降では3種類の速度において時間軸を拡大して、これらの特性の差を調べている。
図20は800~1000rpm付近を拡大したものである。これは、ちょうど図18のGraph4に示した低速での最大誤差の最大値付近を拡大している。まだ、10次成分と同期検出が出来ていないので、3種類の速度誤差のパルスはほぼ等しく、優劣差は大きくは現れていない。
ところが、図21に示すように、同期検出が機能し始めると、4500~4700rpm付近でのGraph3の特性を比較すると、実施例1のパルスの振幅が最も小さくなっている。逆に、実施例2の特性はパルスの時間幅は図20とほぼ同等である。これは、遅延時間を一定にしたいという実施例2の意図通りの結果となっている。実施例3は、大体、これらの中間的な特性となっている。
図22は、さらに高速になり、高次誤差成分の2周期に同期させる領域である。この場合でも、3種類の方式の差異は、図21と同様な関係が維持されており、正常な誤差抑制効果が得られている。
以上の結果をまとめると、以下のような効果が得られることがわかる。
実施例1、実施例2、実施例3の3種類の方式は、従来例よりも10次成分の位相誤差に起因する速度を抑制できていることが分かる、ただし、低速では時間差の制限があるので、抑制効果は限定的になるとそれでも、検出時間を長くする効果による速度検出誤差の抑制効果は得られている。
実施例1と実施例3は、3種類の特性を比較すれば、高速域での誤差抑制効果が少ない。しかし、従来法に比べると十分な抑制効果がある。実施例1と実施例2の差異は速度による特性変化にあり、実施例1では高速になるほど検出遅れ時間が短くなる特性がある。逆に、実施例2の方は速度により検出遅れ時間が変化しない。無駄時間補償を適用しない場合は実施例1の方が検出遅れ時間が短いので速度制御特性が良くなると考えられるが、無駄時間補償を適用する場合には、遅延時間を固定した実施例2の方が無駄時間補償の構成が簡単になると考えられる。
実施例3は、実施例1と実施例2に対して多点を平均するという統計処理の効果があるので、検出誤差は最も少ない。また速度によって変化する検出遅れ時間も、実施例1と実施例2の中間程度の変化である。したがって、速度検出演算が多少増えてもよければ、最も大きな誤差抑制効果が得られる。
以上が3個の実施例の効果およびそれらの相対比較であり、それぞれの実施例の効果である。
それぞれに、異なる優劣があるので、実装するシステムに応じて選定して適用することになる。