(58)【調査した分野】(Int.Cl.,DB名)
前記最新のパルス列と前記それ以前の少なくともm個のパルス列との単位時間の合計は、前記ブラシレスモータの電気角360度未満の時間であることを特徴とする請求項1に記載の駆動制御装置。
ステータに設けられた複数相の電機子コイルに流す電流をインバータ回路により切替制御して、ロータを回転させるブラシレスモータの回転異常を検出するブラシレスモータの回転異常検出方法において、
前記ロータの回転位置を検出するとともに、前記検出された回転位置に同期して単位時間ごとにパルス列が変化する複数のパルス信号を生成するステップと、
最新のパルス列とそれ以前の少なくともm個(mは2以上の整数)のパルス列とを単位時間ごとに記憶部に格納するステップと、
前記記憶部に格納された前記最新のパルス列と前記それ以前のパルス列とに基づいて、前記ロータの回転方向の変化を検出するステップと、
前記ロータの回転方向の変化が検出された時点を基点として、前記ロータの回転方向が変化した回数を検出するステップと、
前記検出された回数が所定の基準回数に達したときに前記ブラシレスモータにハンチング現象が生じたと判断するステップと、を備え、
前記ロータの回転方向が変化した回数を検出するステップは、
前記最新のパルス列とその直前のパルス列とを足し合わせた第1和と、前記直前のパルス列とその一つ前のパルス列とを足し合わせた第2和とが一致するか否かを単位時間ごとに判定するステップと、
前記最新のパルス列と前記それ以前の少なくともm個のパルス列との中に同じパルス列が重複して存在するか否かを判定するステップと、
前記第1和と前記第2和とが一致すると判定されると、前記ロータの回転方向が変化した回数を計測する計数値を増やし、前記最新のパルス列と前記それ以前の少なくともm個のパルス列の中に同じパルス列が重複して存在しないと判定されると、前記計数値をリセットするステップと、を有し、
前記計数値が予め定めた所定の基準値に達したときに前記ハンチング現象が生じたと判断することを特徴とする回転異常検出方法。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら、本発明の実施形態について詳細に説明する。
【0015】
図1は本発明の一実施形態によるブラシレスモータ10の駆動制御装置1の概略構成を示すブロック図である。
図1の駆動制御装置1は、インバータ回路2と、プリドライブ回路3と、制御回路部4と、回転位置検出器5とを備えている。
【0016】
インバータ回路2は、複数相の電機子コイルに対して通電を行なう。プリドライブ回路3は、インバータ回路2を駆動するための駆動信号を生成する。回転位置検出器5は、ブラシレスモータ10のロータの回転位置を検出する。回転位置検出器5は、ブラシレスモータ10のロータの近傍に配置された複数の位置検出センサ(不図示)の検出信号に同期したパルス信号を生成して、制御回路部4に供給する。
【0017】
制御回路部4は、ハンチング検出部6を有する。ハンチング検出部6は、回転位置検出器5から出力されるパルス信号に基づいて、ブラシレスモータ10にハンチング現象が生じたか否かを検出する。
【0018】
ここで、パルス信号とは、複数相の電機子コイルに流す電流の切替に対応して回転位置検出器5で検出されるロータの回転位置に同期した複数のパルス信号である。後述するように、これらパルス信号は、単位時間ごとにパルス列が変化する。ハンチング検出部6は、最新のパルス列とそれ以前のパルス列とに基づいて、ロータの回転方向の変化とロータの回転方向が変化した回数とを単位時間ごとに検出し、これらの検出結果に基づいてハンチング現象が生じたか否かを判断する。
【0019】
図2は本実施形態による駆動制御装置1の詳細な構成を示すブロック図である。
図2に示すように、ブラシレスモータ10は、U相、V相およびW相からなる3相構造であり、各相に応じた電機子コイルLu,Lv,Lwを有する。
【0020】
インバータ回路2は、U相の電機子コイルLuに流れる電流方向を制御するスイッチングトランジスタQ1,Q2と、V相の電機子コイルLvに流れる電流方向を制御するスイッチングトランジスタQ3,Q4と、W相の電機子コイルLwに流れる電流方向を制御するスイッチングトランジスタQ5,Q6とを有する。スイッチングトランジスタQ1,Q3,Q5はハイサイド側に配置され、スイッチングトランジスタQ2,Q4,Q6はロウサイド側に配置されている。
【0021】
プリドライブ回路3は、スイッチングトランジスタQ1〜Q6のゲートに供給する駆動信号を生成する。
【0022】
図3は回転位置検出器5から出力されるパルス信号の一例を示す信号波形図である。
図3には、ブラシレスモータ10のロータが1回転する周期内のパルス信号の信号波形が図示されている。
【0023】
図3(A)〜
図3(C)はパルス信号HU,HV,HWの信号波形を示している。図示のように、パルス信号HU,HV,HWは、それぞれ位相の異なるパルス信号である。各パルス信号のデューティ比は50%であり、各パルス信号の位相は120°ずつ、ずれている。これらのパルス信号は、回転位置検出器5にて生成される。
【0024】
図2の制御回路部4内のハンチング検出部6は、記憶部7と、回転変化検出部8と、回数検出部9と、ハンチング決定部11とを有する。記憶部7は、現在から過去に遡って少なくとも(m+1)個(mは2以上の整数)の単位時間分のパルス列を記憶する。より具体的には、記憶部7は、最新のパルス列とそれ以前の少なくともm個のパルス列とを単位時間ごとに格納する。回転変化検出部8は、記憶部7に格納された過去のm個のパルス列と最新のパルス列とに基づいて、ロータの回転方向の変化を検出する。回数検出部9は、回転変化検出部8でロータの回転方向の変化が検出された時点を基点として、ロータの回転方向が変化した回数を検出する。回数検出部9は、例えばカウンタにより構成される。ハンチング決定部11は、回数検出部9で検出された回数が基準回数に達したときにハンチング現象が生じたと判断する。
【0025】
ハンチング検出部6を構成する各部の少なくとも一部は、ソフトウェアで構成してもよいし、ハンチング検出部6の全体をハードウェアで構成してもよい。
【0026】
図3に示すように、各パルス信号HU,HV,HWの論理状態は、モータ10の電気角60°(機械角30°)ごとに変化する。本明細書では、各パルス信号の論理状態が継続する期間を単位時間と呼ぶ。単位時間の境界位置に、各パルス信号の立ち上がりエッジと立ち下がりエッジが現れる。
図3(D)は各パルス信号の立ち上がりエッジのタイミングを示し、
図3(E)は各パルス信号の立ち下がりエッジのタイミングを示している。図示のように、各パルス信号の立ち上がりエッジと立ち下がりエッジは、各単位時間の境界位置で交互に現れる。
【0027】
図3(F)に示すように、本明細書では、各単位時間の境界位置での3つのパルス信号HU,HV,HWの論理状態をパルス列と呼ぶ。例えば、時刻t1のパルス列は(110)、時刻t2のパルス列は(100)である。これらパルス列は全部で6種類あり、本実施形態では、これらのパルス列を簡略的に示すために、それぞれに固有の組合せ番号を付している。例えば、パルス列(110)は組合せ番号1であり、パルス列(100)は組合せ番号2である。その他のパルス列と組合せ番号の対応関係は、
図3(F)と
図3(G)に示されている。
【0028】
図3からわかるように、回転位置検出器5から出力されるパルス信号HU,HV,HWには、ロータが半周する間に、組合せ番号1〜6のパルス列が順に現れ、これが半周期ごとに繰り返される。したがって、ロータの1周期(モータ10の機械角360°)では、組合せ番号1〜6のパルス列が順に2回ずつ現れる。このように、回転位置検出器5は、モータ10が電気角360°分回転する間に、組合せ番号1〜6のパルス列を含むパルス信号HU,HV,HWを出力する。
【0029】
本実施形態のハンチング検出部6は、ロータがロック状態になった後にハンチング現象が生じたか否かを、パルス列に対応する組合せ番号の変化により検出する点に特徴がある。ハンチング検出部6は、最新のパルス列とそれ以前の少なくともm個(mは2以上の整数)のパルス列との中に同じパルス列が重複して存在する条件の下でロータの回転方向が変化した回数の累積が所定の基準回数に達した場合に、ハンチング現象が生じたと判断する。以下、ハンチング検出部6が行なうハンチング判定処理を詳細に説明する。
【0030】
(第1のハンチング判定処理)
図4は
図2のハンチング検出部6が行なう第1のハンチング判定処理を示すフローチャートである。
図4のフローチャートは、
図3に示す各単位時間ごとに行なわれる。
【0031】
まず、パルス信号の各単位時間ごとに、パルス信号の最新のパルス列に対応する組合せ番号H[r]を記憶部7に格納する(ステップS1)。記憶部7には、現在から過去に遡ってm回分(mは2以上の整数)のパルス列に対応する組合せ番号と最新のパルス列に対応する組合せ番号を格納することができる。最新のパルス列に対応する組合せ番号H[r]を記憶部7に格納しようとしたときに、すでに過去m+1回分の組合せ番号が記憶部7に格納されているので、そのうちの一番古い組合せ番号H[0]を削除し、最新のパルス列に対応する組合せ番号H[r]を格納する。
【0032】
次に、最新のパルス列に対応する組合せ番号H[r]とその直前のパルス列に対応する組合せ番号H[r−1]とを加算した第1和ADD_H[0]と、上述した組合せ番号H[r−1]とそのさらに直前の組合せ番号H[r−2」とを加算した第2和ADD_H[1]とを計算する(ステップS2)。
【0033】
次に、第1和ADD_H[0]と第2和ADD_H[1]が等しいか否かを判定する(ステップS3)。第1和ADD_H[0]と第2和ADD_H[1]が等しくなるのは、ロータの回転方向が変化した場合である。すなわち、組合せ番号が増加傾向から減少傾向に切り替わる場合か、減少傾向から増加傾向に切り替わる場合であり、ハンチング現象が生じた可能性がある場合である。このステップS3の処理は、回転変化検出部8により行なわれる。
【0034】
ステップS3でYES(第1和ADD_H[0]と第2和ADD_H[1]が等しい)と判定されると、計数値nを1だけインクリメントする(ステップS4)。なお、計数値nの初期値はゼロとする。計数値nのカウントは、回数検出部9により行なわれる。
【0035】
ステップS3の判定がNOの場合(第1和ADD_H[0]と第2和ADD_H[1]が等しくない場合)、あるいはステップS4の処理が終了した場合は、記憶部7内に同じ組合せ番号が重複して格納されているか否かを判定する(ステップS5)。
【0036】
ステップS5の判定がNOの場合(記憶部7内に同じ組合せ番号が重複して格納されていない場合)は、ロータが短時間に複数回同じ回転位置を通過することはなかったことを示しており、この場合は、計数値nをゼロクリア(リセット)する(ステップS6)。
【0037】
ステップS5の判定がYESの場合(記憶部7内に同じ組合せ番号が重複して格納されている場合)は、ロータが短時間に複数回同じ回転位置を通過したことを示しており、ハンチング現象が生じた可能性が高い。このため、この場合は、計数値nをゼロクリアせずに、計数値nが所定の基準値N(Nは2以上の整数)に達したか否かを判定する(ステップS7)。なお、ステップS6の処理が終了した場合も、ステップS7の処理を行なう。
【0038】
ステップS7の判定がYES(計数値n=所定の基準値N)の場合は、ロータが短時間にN回同じ回転位置を通過したことを示しており、この場合は、ハンチング現象が生じたと判定して、ハンチング現象が生じたことを示すハンチングフラグをセットする(ステップS8)。ステップS7の判定がNO(計数値n<所定の基準値N)の場合は、ハンチング現象が生じなかったとみなして、ハンチングフラグをリセットする(ステップS9)。
【0039】
図4のフローチャートにおいて、ステップS4〜S6は回数検出部9により行なわれ、ステップS7〜S9はハンチング決定部11により行なわれる。
【0040】
図5は
図4に示した第1のハンチング判定処理の結果を示す図である。なお、本例は、所定の基準値N=5とし、計数値nが5に達したときに、ハンチングフラグをセットする事例を示している。
【0041】
図5(a)はパルス列に対応する組合せ番号が「1212121」の順に変化した例(1単位時間ごとに組合せ番号の増減が起きる例)を示している。この場合、先頭から3番目の組合せ番号「1」が記憶部7に格納された時点で、第1和ADD_H[0]と第2和ADD_H[1]が等しくなる(本例では、数値が3で等しい)ため、回転方向が変化したと判断して、
図4のステップS3の判定がYESになり、計数値nがゼロから1にインクリメントされる。次の組合せ番号「2」が記憶部7に格納されると、再び、
図4のステップS3の判定がYESになり、計数値nは1から2にインクリメントされる。同様にして、それ以降の組合せ番号「1」、「2」、「1」が記憶部7に格納されるたびに、第1和ADD_H[0]と第2和ADD_H[1]が等しくなるため、回転方向が変化したと判断して、
図4のステップS3の判定がYESになり、計数値nは順に1ずつインクリメントされて、最終的にn=5になる。
図4のステップS7の基準値N=5であれば、計数値n=5になった時点で、ステップS7の判定がYESになり、ハンチングフラグがセットされる。
図5(a)の場合は、m=2とm=3のいずれであっても、
図4のステップS5の判定結果は同じであり、計数値nの値も同じになる。
【0042】
これに対して、
図5(b)は、m=2とm=3で、
図4のステップS5の判定結果が異なる例を示している。
【0043】
図5(a)は1単位時間ごとに組合せ番号の増減が起きる例を示すのに対し、
図5(b)は2単位時間ごとに組合せ番号の増減が起きる例を示している。より具体的には、
図5(b)では、組合せ番号が「61656165616」の順に変化する。
【0044】
まずは、m=2の場合の判定処理を説明する。先頭から3番目の組合せ番号「6」が記憶部7に格納された時点で、
図4のステップS3にて、第1和ADD_H[0]と第2和ADD_H[1]とが等しくなる(本例では、数値が7で等しい)ため、回転方向が変化したと判断され判定がYESになり、計数値nがゼロから1にインクリメントされる。次に、ステップS5にて、記憶部7に格納されている過去2回分と最新のパルス列に対応する組合せ番号との中での重複する組み合わせ番号の有無が判定され、組合せ番号「6」が重複しているため、判定はYESとなり、計数値1はクリアされずにステップS7へ進む。次に、ステップS7では、計数値nが基準値N=5であるかどうかが判定され、計数値n=1であるため、判定がNOとなり、この時点では、ハンチングフラグはセットされない。
【0045】
次の組合せ番号「5」が記憶部7に格納された時点では、
図4のステップS3にて、第1和ADD_H[0]と第2和ADD_H[1]が等しくない(本例では、数値が7と11)ため、回転方向は変化していないと判断され判定がNOになり、計数値nは1のままインクリメントされない。次に、ステップS5にて、記憶部7に格納されている過去2回分と最新のパルス列に対応する組合せ番号の重複有無が判定されるが、記憶部7に同じ組合せ番号が重複して格納されていないため、判定がNOになり、ステップS6により、計数値nはゼロクリアされる。
【0046】
次の組合せ番号「6」が記憶部7に格納されると、再びステップS3の判定がYESになり、計数値nがゼロから1にインクリメントされる。次の組合せ番号「1」が記憶部7に格納されると、ステップS3の判定はNOになり、計数値nはインクリメントされない。ただし、ステップS5の判定はNOになり、計数値nはゼロクリアされる。
【0047】
その後、組合せ番号「6」、「5」、「6」、「1」が順に記憶部7に格納されると、以上で説明したように、計数値nは「1」になった後にゼロクリアされる処理が繰り返される。このため、計数値nが基準値Nに達することはなく、ハンチングフラグがセットされることはない。
【0048】
一方、m=3の場合は、組合せ番号「1」が記憶部7に格納された時点で、ステップS5がYESになり、その後、新しい組合せ番号が記憶部7に格納された時点で、ステップS5では、記憶部7に格納されている過去3回分と最新のパルス列に対応する組合せ番号との中に重複する組合せ番号が有るため、判定はYESになり、計数値nはゼロクリアされない。したがって、
図5(b)に示すように、計数値nは徐々に大きくなり、やがて基準値N=5に一致して、この時点でハンチングフラグはセットされる。
【0049】
このように、記憶部7に格納される組合せ番号の個数m+1(過去の組合せ番号m個と最新の組合せ番号1個)と基準値Nの値によって、ハンチングフラグがセットされる条件が変化する。個数m+1が大きいほど、あるいは基準値Nが小さいほど、ハンチングフラグはセットされやすくなる。したがって、個数m+1と基準値Nを調整することで、どういう条件のときにハンチング現象が生じたとみなすかを細かく調整できる。記憶部7に格納する組合せ番号の個数m+1と基準値Nの値は、それぞれのモータに要求されるハンチングの判定基準に応じて適切な数値を設定する。例えば、基準値Nは、数値を小さくすると判定基準が厳しくなりモータの回転状態によっては過剰判定となる場合があるため、モータの回転数などに応じて適切な数値を設定することが望ましい。
【0050】
上述したように、第1のハンチング判定処理では、パルス信号の各単位時間ごとのパルス列を組合せ番号で区別して、記憶部7に格納する。そして、組合せ番号が増加する傾向にあるか、あるいは減少する傾向にあるかを検出するために、最新のパルス列に対応する組合せ番号H[r]とその直前のパルス列に対応する組合せ番号H[r−1]とを足し合わせた第1和ADD_H[0]と、直前のパルス列に対応する組合せ番号H[r−1]とその一つ前のパルス列に対応する組合せ番号H[r−2]とを足し合わせた第2和ADD_H[1]とを比較する。そして、組合せ番号が増加する傾向から減少する傾向に切り替わるか、あるいは減少する傾向から増加する傾向に切り替わる時点で、第1和ADD_H[0]と第2和ADD_H[1]が等しくなることから、ロータの回転方向が変化したと判断して、計数値nをカウントアップする。そして、記憶部7に格納されている組合せ番号の中に重複する組合せ番号が有る場合には、ハンチングの可能性があるとして計数値nはゼロクリアせずに維持され、記憶部7に格納されている組合せ番号の中に重複する組合せ番号が無い場合には、ハンチングではないと判断して計数値をゼロクリアする。そして、計数値nが基準値Nに達した場合には、ハンチング現象が生じたと判断して、ハンチングフラグをセットする。
【0051】
尚、本実施形態では、ハンチング状態にあるかどうかの判定として、記憶部7に格納される最新のパルス列に対応する組合せ番号とそれ以前のパルス列に対応する組合せ番号の中に同じパルス信号が重複して存在するかどうかで判定しているため、判定に用いる組合せ番号の個数が大きくなればなるほど正回転がより長く連続していないとハンチング状態と見なされるため、不連続に発生するハンチング状態をより確実に判定することができる。
【0052】
しかしながら、ハンチング状態にあるかどうかの判定として、最新のパルス列と同じパルス列がそれ以前のパルス列に重複して存在するかどうかで判定する方法でも、個々のモータ設計毎に求められるハンチングの判定条件によっては適用可能であるため、この方法も本発明の適用範囲から除外されるものではない。
【0053】
このような第1のハンチング判定処理を行なうことで、ハンチング現象が生じたか否かを正しく検出できる。従来の手法では、ハンチング状態とロータの逆転状態とを正しく区別できないおそれがあったが、第1のハンチング判定処理では、計数値nが基準値Nに達するまではハンチングフラグをセットしないため、ハンチング状態とロータの逆転状態とを正しく区別できる。すなわち、逆転状態のときは、計数値nが増大することはなく、基準値Nに達することはないことから、逆転状態をハンチング状態と誤ることはない。
【0054】
(第2のハンチング判定処理)
図6は
図2のハンチング検出部6が行なう第2のハンチング判定処理を示すフローチャートである。
図6のフローチャートも、
図3に示す各単位時間ごとに行なわれる。
【0055】
第2のハンチング判定処理は、記憶部7に格納された最新のパルス列に対応する組合せ番号H[r]とそれ以前の計m個の組合せ番号の中に同じ組合せ番号が含まれるか否かを判定する処理と、記憶部7に格納された最新のパルス列に対応する組合せ番号H[r]とそれ以前の計(m+1)個の組合せ番号の中に同じ組合せ番号が含まれるか否かを判定する処理とを行なう。前者の処理に用いられる計数値n0と、後者の処理に用いられる計数値n1とが別個に設けられる。
【0056】
図6のステップS11〜S13は
図4のステップS1〜S3と同様である。ステップS13の判定がYESの場合は、計数値n0とn1がともにカウントアップされる(ステップS14)。
【0057】
ステップS13の判定がNOの場合か、あるいはステップS14の処理が終了した場合は、記憶部7に格納された最新のパルス列に対応する組合せ番号H[r]とそれ以前の計(m+1)個の組合せ番号の中に重複する組み合わせ番号が存在するか否かを判定する(ステップS15)。ステップS15の判定がNOであれば、計数値n0をゼロクリアする(ステップS16)。
【0058】
ステップS15の判定がYESであれば、記憶部7に格納された最新のパルス列に対応する組合せ番号H[r]とそれ以前の計m個の組合せ番号の中に重複する組合せ番号が存在するか否かを判定する(ステップS17)。ステップS16の判定がNOであれば、計数値n1をゼロクリアする(ステップS18)。
【0059】
次に、計数値n0が基準値N0に達したか否かを判定する(ステップS19)。ステップS19の判定がYESであれば、ハンチングフラグ0をセットし(ステップS20)、NOであれば、ハンチングフラグ0をクリアする(ステップS21)。
【0060】
続いて、計数値n1が基準値N1に達したか否かを判定する(ステップS22)。ステップS22の判定がYESであれば、ハンチングフラグ1をセットし(ステップS23)、NOであれば、ハンチングフラグ1をクリアする(ステップS24)。
【0061】
このように、第2のハンチング判定処理では、重複有無を判定する最新のパルス列に対応する組合せ番号H[r]と過去のパルス列に対応する組合せ番号の個数を2通り設ける。これにより、
図5(b)で説明したように、2単位時間ごとに組合せ番号の増減が起きるハンチングが起こった場合でも、mの値を事前に変更しなくても、ハンチングが起きたことを正しく検出できるようになる。すなわち、第1のハンチング判定処理では、予めmの値を適切に設定しておかないと、
図5(b)のm=2の場合のように、2単位時間ごとに組合せ番号の増減が起きるハンチングを検出できないが、第2のハンチング判定処理では、最新のパルス列に対応する組合せ番号H[r]と過去m回のパルス列に対応する組合せ番号とで判定する処理と、過去(m+1)回のパルス列に対応する組合せ番号とで判定する処理とを連続して行なうため、予めmの値を最適化しておかなくても、2単位時間ごとに組合せ番号の増減が起きるハンチングを正しく検出できる。
【0062】
第2のハンチング判定処理は、1単位時間ごとに組合せ番号の増減が起きるハンチングと、2単位時間ごとに組合せ番号の増減が起きるハンチングとの双方を正しく検出できるため、前者のハンチングが検出された場合と、後者のハンチングが検出された場合とで、異なる対策を取ることができる。例えば、前者のハンチングはロータの正逆転の振れ角度が小さいため、ロータの回転を停止させる処理を行ない、後者のハンチングはロータの正逆転の振れ角度が大きいため、ロータがハンチング状態から脱して正常な回転に復帰するような対策を行なってもよい。この対策は、例えば、
図3に示すような駆動信号をインバータ回路2から出力すればよい。
【0063】
図6の変形例として、
図6の判定処理に加えて、最新のパルス列に対応する組合せ番号H[r]と過去(m+n)回(n=2以上の整数)のパルス列に対応する組合せ番号とで判定する処理を設けてもよい。これにより、(n+1)単位時間ごとに組合せ番号の増減が起きるハンチングも検出できるようになる。
【0064】
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【0065】
例えば、本実施形態では、回数検出部9での計数方法として、計数値nの初期値をゼロとし、第1和ADD_H[0]と第2和ADD_H[1]が等しいと判定された場合は、計数値nを1だけインクリメントするようにしているが、必ずしも、この計数方法に限定されるものではなく、計数値nの初期値を適切な数値に設定して、第1和ADD_H[0]と第2和ADD_H[1]が等しいと判定された場合は、計数値nを1だけデクリメントするようにしてもよい。
【0066】
また、記憶部7で記憶するパルス列に対応する組み合わせ番号の個数m+1を電気角で360°分に相当する6種類以内とすれば、この範囲では同じ組合せ番号が存在しないので、本実施形態における組合せ番号の重複判定を容易に行うことができる。しかしながら、これ以上の組合せ番号を記憶するようにしてもデータ処理方法を工夫することにより重複判定をすることは可能であり、したがって、個数m+1は6種類以内に限定するものではない。