"ブラシレスモータのためのコントローラであって、プロセッサと、第1のタイマと、第2のタイマと、比較レジスタと、比較器と、入力部と、1つ又はそれよりも多くの出力部と、を含み、前記プロセッサは、前記入力部の信号に応答して前記第1のタイマを開始し、前記第1のタイマは、第1の期間後に割り込みを生成し、前記プロセッサは、前記割り込みに応答して前記出力部に第1の制御信号を生成し、前記プロセッサは、前記入力信号及び前記割り込みの一方に応答して前記比較レジスタに読み込ませ、かつ前記第2のタイマを開始し、前記比較器は、前記第2のタイマ及び前記比較レジスタを比較し、かつ該第2のタイマ及び該比較レジスタが一致する時に前記出力部に第2の制御信号を生成する、ことを特徴とするコントローラ。前記制御信号の一方は、前記ブラシレスモータの巻線を励起するのに使用され、該制御信号の他方は、該巻線をフリーホイールさせるのに使用されることを特徴とする請求項1に記載のコントローラ。前記プロセッサは、前記入力信号のエッジに応答して前記第1のタイマを開始し、前記第1の期間は、該入力信号の連続的なエッジ間の間隔よりも短いことを特徴とする請求項1又は請求項2に記載のコントローラ。前記第1の期間と、前記割り込みに対処して前記第1の制御信号を生成するために前記プロセッサにより必要とされる時間との合計が、前記間隔よりも短いことを特徴とする請求項3に記載のコントローラ。前記プロセッサは、前記入力信号のエッジに応答して前記第1のタイマを開始し、前記第2のタイマ及び前記比較レジスタは、該第1のタイマが計数しているときに一致していることを特徴とする請求項1から請求項4のいずれか1項に記載のコントローラ。前記第2のタイマ及び前記比較レジスタは、第2の期間後に一致し、該第2の期間は、前記第1の期間よりも短いことを特徴とする請求項1から請求項5のいずれか1項に記載のコントローラ。前記第2のタイマ及び前記比較レジスタは、第2の期間後に一致し、前記第1の期間及び該第2の期間の少なくとも一方は、時間と共に変化することを特徴とする請求項1から請求項6のいずれか1項に記載のコントローラ。前記プロセッサは、時間と共に変わる値を前記比較レジスタに読み込ませることを特徴とする請求項1から請求項7のいずれか1項に記載のコントローラ。前記入力信号は、更に別の割り込みを生成し、前記プロセッサは、該更に別の割り込みに応答して前記第1のタイマを開始することを特徴とする請求項1から請求項8のいずれか1項に記載のコントローラ。PWMモジュールを含み、前記比較器は、前記PWMモジュールの一部を形成し、前記比較レジスタは、該PWMモジュールのデューティサイクルレジスタである、ことを特徴とする請求項1から請求項9のいずれか1項に記載のコントローラ。ブラシレスモータと、請求項1から請求項10のいずれか1項に記載のコントローラと、を含み、前記ブラシレスモータは、巻線を含み、制御信号が、該巻線を励起及びフリーホイールさせるのに使用される、ことを特徴とするモータシステム。前記モータの回転子の位置を感知する位置センサを含み、前記位置センサは、前記コントローラの入力部に結合され、かつ位置センサ信号を出力する、ことを特徴とする請求項11に記載のモータシステム。各割り込みでは、実行するために特定の期間を使用する必要があり、その間、コントローラは他の割り込みに使用することができない。従って、割り込みが衝突する可能性がある。2つの割り込みが衝突した時、割り込みの一方の使用が遅延される。この遅延は、モータシステムの性能に悪影響を与える場合がある。第1の態様では、本発明は、プロセッサと、第1のタイマと、第2のタイマと、比較レジスタと、比較器と、入力部と、1つ又はそれよりも多くの出力部とを含むブラシレスモータのためのコントローラを提供し、プロセッサは、入力部での信号に応答して第1のタイマを開始し、第1のタイマは、第1の期間後に割り込みを生成し、プロセッサは、割り込みに応答して出力部に第1の制御信号を生成し、プロセッサは、入力信号及び割り込みの一方に応答して比較レジスタに読み込ませ、第2のタイマを開始し、比較器は、第2のタイマ及び比較レジスタを比較し、第2のタイマ及び比較レジスタが一致する時に出力部に第2の制御信号を生成する。制御信号の一方は、ブラシレスモータの巻線を励起又は整流するのに使用することができ、制御信号の他方は、巻線をフリーホイールさせるのに使用することができる。より具体的には、第1の制御信号は、巻線を励起又は整流するのに使用することができ、第2の制御信号は、巻線をフリーホイールさせるのに使用することができる。第2の制御信号が割り込みを必要とせずに生成されるので、割り込み衝突の見込みは低減される。実際に、割り込み衝突は、全体的に回避することができる。第1のタイマを開始することへの言及は、タイマにより使用されるレジスタ例えば、プリスケーラ及びタイマレジスタに、第1の期間が経過した後に割り込みが生成されることを保証する値が読み込まれることを意味することを理解すべきである。割り込みは、オーバフロー、アンダフロー、又は出力比較作動に応答して生成することができる。同様に、第2のタイマを開始することへの言及は、タイマにより使用されるレジスタに、第2の期間が経過した後に比較器が第2の制御信号を生成することを保証する値が読み込まれることを意味することを理解すべきである。一般的に、第2のタイマはリセットされ、第2の期間は、比較レジスタ内に読み込まれた値により決定される。入力信号又は第1のタイマによって発生された割り込みに応答して、比較レジスタは、読み込むことができ、第2のタイマは、開始することができる。前者においては、第1のタイマ及び第2のタイマは、共に入力信号に応答して同時に開始される。プロセッサは、入力信号の各エッジに応答して両方のタイマを開始することができる。その結果、制御信号が、巻線を励起及びフリーホイールさせるのに使用される時、励起及びフリーホイールは、入力信号の次のエッジの前に行われるべきである。後者においては、第1のタイマは、入力信号に応答して開始される。しかし、第2のタイマは、第1のタイマによって発生された割り込みに応答して開始される。従って、第1の制御信号は、入力信号の次のエッジの前に生成されるが、第2の制御信号は、入力信号の次のエッジの前、後、又入力信号の次のエッジと同時に生成することができる。入力信号は、モータの回転子の角度位置の尺度又は測定値を供給する位置センサ信号とすることができる。制御信号は、次に、回転子の角度位置によって定められた時間に生成される。従って、回転子位置との励起及びフリーホイールの正確な同期をもたらすことができる。第1の期間は、入力信号の連続的なエッジ間の間隔よりも短いものとすることができる。従って、第1の制御信号がモータの巻線を励起又は整流するのに使用される時、巻線は、入力信号の各エッジに先行して励起される。仮に入力信号の各エッジが、整列していない回転子位置に一致する場合、巻線は、整列していない回転子位置に先行して励起される。その結果、より多くの電力を各電気半サイクルにわたって巻線に駆動することができる。第1の期間と、割り込みに対処して第1の制御信号を生成するプロセッサにより必要とされる時間との合計は、入力信号の連続的なエッジ間の間隔よりも短いものとすることができる。その結果、プロセッサは、入力信号の次のエッジの前に割り込みに対処する。プロセッサは、従って、入力信号の次のエッジに直ちに応答することができ、すなわち、割り込みに対処することと入力信号のエッジとの間には潜在的衝突がない。プロセッサは、入力信号の各エッジに応答して第1のタイマを開始することができる。第2のタイマ及び比較レジスタは、次に、第1のタイマが計数している時間では対応していることができ、すなわち、第2の制御信号は、第1のタイマが第1の期間を計数している間に生成される。第2のタイマが入力信号のエッジに応答して開始された時、第1のタイマ及び第2のタイマの両方が、同じエッジに応答して開始される。比較レジスタには、次に、第2の期間が第1の期間よりも短いことを保証する値が読み込まれる。その結果、第2の制御信号は、第1のタイマがまだ第1の期間を計数している間に生成される。第2のタイマが割り込みに応答して開始された時、第1のタイマは、既に計数を停止しており、かつ割り込みを生成済みである。比較レジスタには、次に、第2のタイマ及び比較レジスタが入力信号の次のエッジ後の時間に一致することを保証する値が読み込まれる。従って、第1のタイマは、入力信号の次のエッジに応答して再始動され、第2のタイマ及び比較レジスタが一致する時には計数中である。第2のタイマが入力信号又は割り込みに応答して開始されるか否かに関わらず、第2の制御信号は、第1のタイマが第1の期間を計数している間に生成される。その結果、第1の制御信号が巻線を整流するのに使用され、第2の制御信号が巻線をフリーホイールさせるのに使用される時、巻線は、整流前にフリーホイールされる。第1の制御信号は、巻線を整流するのに使用することができ、第2の制御信号は、巻線をフリーホイールさせるのに使用することができる。第2の期間は、こうして理想的には第1の期間よりも短い。その結果、両方のタイマが入力信号に応答して開始された時、巻線は、整流前にフリーホイールされる。第1の期間及び第2の期間の1つ又はそれよりも多くは、時間と共に変わってもよい。例えば、入力信号の第1のエッジに応答して、プロセッサは、特定の期間後に割り込みを生成するようにタイマを設定することができる。入力信号の第2のエッジに応答して、プロセッサは、次に、異なる期間後に割り込みを生成するようにタイマを設定することができる。従って、制御信号は、時間と共に変わる間隔により、入力信号のエッジに対して又は関連して生成することができる。このレベルの制御は、次に、モータに対して特定の性能例えば、電力又は効率をもたらし、電源から引き出される電流の波形を形成し、又はモータの磁束密度のエンベロープを形成するために使用することができる。プロセッサは、時間と共に変わる値を比較レジスタに読み込ませることができる。すなわち、プロセッサは、時間に依存する値を選択する。値が比較レジスタ内に読み込まれると、値は、時間と共に変わらない。第2の制御信号は、時間と共に変わる間隔により、割り込み又は入力信号のエッジに対して生成することができる。ここでもまた、このレベルの制御は、モータに対して特定の性能をもたらし、電源から引き出される電流の波形を形成し、又はモータの磁束密度のエンベロープを形成するために使用することができる。入力信号は、コントローラがその後に定期的にポーリングするレジスタ又はフラグをコントローラ内に設定することができる。代替的に、入力信号は、更に別の割り込みを生成することができる。更に別の割り込みに応答して、プロセッサは、次に、第1のタイマ、及び必要に応じて第2のタイマ及び比較レジスタを設定する。更に別の割り込みを使用することにより、プロセッサは、入力信号に対して迅速に作用する。比較器は、コントローラ内の専用比較器モジュールの一部を形成することができる。第2のタイマは、比較器に結合されており、効率的に出力比較モードで作動する。代替的に、コントローラは、PWMモジュールを含むことができ、比較器は、PWMモジュールの一部を形成する。PWMモジュールのデューティサイクルレジスタは、比較レジスタとして使用される。従って、コントローラが、タイマに結合された比較器モジュールを有していないか、又はコントローラが第2の制御信号を生成するために比較器モジュールを利用することができない場合、PWMモジュールは、代替的に、第2の制御信号を生成する新規な方式で使用することができる。第2の態様では、本発明は、ブラシレスモータと、前出段落のいずれか1つに説明したような制御システムとを含むモータシステムを提供し、ブラシレスモータは、巻線を含み、制御信号が、巻線を励起及びフリーホイールさせるのに使用される。モータシステムは、コントローラの入力部に結合された位置センサを含むことができる。位置センサは、ブラシレスモータの回転子の位置を感知して位置センサ信号を出力する。従って、回転子位置との励起及びフリーホイールの正確な同期をもたらすことができる。本発明をより容易に理解することができるように、ここで、本発明の実施形態を一例として以下に添付図面を参照して説明する。図1~図3のモータシステム1は、ブラシレスモータ2と制御システム3とを含む。モータシステム1への電力は、AC電源4によって供給される。AC電源4は、交流電圧を供給することができる他の電源が等しく使用されることがあり得るが、家庭用幹線電源であるように意図している。モータ2は、固定子6に対して回転する4極永久磁石回転子5を含む。固定子6は、4つの固定子極を形成する1対のc字形コアを含む。導線は、固定子6に巻かれ、かつ単相巻線7を成すために互いに結合される。制御システム3は、整流器8と、DCリンクフィルタ9と、インバータ10と、ゲートドライバモジュール11と、電流センサ12と、位置センサ13と、ゼロ交差検出器14と、温度センサ15と、コントローラ16とを含む。整流器8は、AC電源4の出力を整流してDC電圧を供給する全波ブリッジD1~D4である。DCリンクフィルタ9は、リンクコンデンサC1とリンク誘導子L1とを含む。リンクコンデンサC1は、インバータスイッチングから生じる比較的高周波のリップルを平滑化するように作用する。以下でより詳細に説明するように、リンクコンデンサC1は、基本周波数で整流DC電圧を平滑化するのに必要とされるものではない。その結果、比較的低いキャパシタンスのリンクコンデンサを使用することができる。リンク誘導子L1は、インバータスイッチングから生じるあらゆる残留電流リップルを平滑化するように作用する。また、リンク誘導子L1がインバータ10のスイッチング周波数でリップルを低減することを目的とするので、比較的低いインダクタンスの誘導子を使用することができる。飽和が回避されるように、リンク誘導子L1は、モータシステム1の通常の作動中にAC電源4から引き出されるピーク電流を超える飽和点を有する。インバータ10は、相巻線7にDCリンク電圧を結合する4つのパワースイッチQ1~Q4のフルブリッジを含む。各パワースイッチQ1~Q4は、一般的に殆どの幹線電源の電圧レベルで作動させることができるIGBTである。代替的に、パワースイッチの定格及びAC電源4の電圧に基づいて、BJT又はMOSFETのような他の形式のパワースイッチを使用することができる。スイッチQ1~Q4の各々は、インバータスイッチング中に生じる電圧スパイクに対してスイッチを保護するフライバックダイオードを含む。ゲートドライバモジュール11は、コントローラ16から受信した制御信号に応答してインバータ10のスイッチQ1~Q4の開成及び閉成を駆動する。電流センサ12は、1対の分流抵抗器R1、R2を含み、各抵抗器は、インバータ10の下部アーム上に位置する。各抵抗器R1、R2の抵抗は、モータシステム1の通常の作動中に消散限界を超えることなく理想的にできるだけ高いものである。各分流抵抗器R1,R2にわたる電圧は、電流感知信号、ISENSE1及びISENSE2としてコントローラ16に出力される。第1の電流感知信号ISENSE1は、インバータ10が右から左に駆動される時に相巻線7内の電流の尺度又は測定値になるより詳細に以下に説明するように。第2の電流感知信号ISENSE2は、インバータ10が左から右に駆動される時、相巻線7内の電流の尺度又は測定値を提供する。インバータ10の下部アーム上に分流抵抗器R1、R2の位置を識別する際に、相巻線7内の電流は、フリーホイール中に感知され続けるここでもまた、以下でより詳細に説明するように。位置センサ13は、デジタル信号HALLを出力するホール効果センサであり、デジタル信号HALLは、センサ13を通る磁束の方向に基づいて論理的に高いか又は低い。回転子5の近くに位置センサ13の位置を識別することにより、HALL信号は、回転子5の角位置の尺度又は測定値を提供する。より具体的には、HALL信号の各エッジは、回転子5の極性の変化を示している。回転する時、永久磁石回転子は、相巻線7内に逆起電力を誘導する。その結果、HALL信号の各エッジは、相巻線7内の逆起電力の極性の変化を表している。ゼロ交差検出器14は、AC電源4の電圧が正の時、論理的に高く、AC電源4の電圧が負の時、論理的に低いデジタル信号ZCROSSを出力する1対のクランピングダイオードD5、D6、を含む。ZCROSS信号の各エッジは、従って、AC電源4の電圧がゼロと交差する時点を表している。温度センサ15は、モータシステム1内の温度の尺度又は測定値になるアナログ信号TEMPを出力するサーミスタR7を含む。コントローラ16は、プロセッサ17と、記憶装置18と、複数の周辺機器19例えば、ADC、比較器、タイマなどと、複数の入力ピン20と、複数の出力ピン21とを有するマイクロコントローラとを含む。記憶装置18は、プロセッサ17による実行のソフトウエア命令を格納する。記憶装置18は、複数のルックアップテーブルを格納し、複数のルックアップテーブルは、モータシステム1の作動中にプロセッサ17により索引が付される。コントローラ16は、モータシステム1の作動を制御することを担うものである。入力ピン20の信号に応答して、コントローラ16は、出力ピン21で制御信号を生成する。出力ピン21はゲートドライブモジュール11に結合されており、ゲートドライブモジュール11は、制御信号に応答してインバータ10のスイッチQ1~Q4の開成及び閉成を制御する。7つの信号、ISENSE1、ISENSE2、HALL、ZCROSS、TEMP、DCLINK、及びDCSMOOTHは、コントローラ16の入力ピン20で受信される。ISENSE1及びISENSE2は、電流センサ12により出力される信号である。HALLは、位置センサ13により出力される信号である。ZCROSSは、ゼロ交差検出器14により出力される信号である。TEMPは、温度センサ15により出力される信号である。DCLINKは、DCリンク電圧の縮小された尺度又は測定値であり、DCリンク電圧は、DCリンクライン及び0ボルトのラインの間に位置する分圧器R3、R4によって得られる。DCSMOOTHは、分圧器R5,R6及び平滑コンデンサC2によって得られるDCリンク電圧の平滑化された尺度又は測定値である。入力部で受信した信号に応答して、コントローラ16は、4つの制御信号、TRIP、DIR1、DIR2、及びFREEWHEELを生成及び出力する。TRIPは、フェイルセーフ制御信号である。TRIPが論理的低に引かれる時、ゲートドライバモジュール11は、インバータ10の全てのスイッチQ1~Q4を開成する。以下でより詳細に説明するように、コントローラ16は、相巻線7を通る電流がフェイルセーフ閾値を超える場合に、論理的低にTRIPIを引く。DIR1及びDIR2は、インバータ10を通り、従って、相巻線7を通る電流の方向を制御する。DIR1が論理的高に引かれ、DIR2が論理的低に引かれた時、ゲートドライバモジュール11は、スイッチQ1及びQ4を閉成してスイッチQ2及びQ3を開成し、従って、電流が左から右に相巻線7を通じて駆動される。逆に、DIR2が論理的高に引かれ、DIR1が論理的低に引かれた時、ゲートドライバモジュール11は、スイッチQ2及びQ3を閉成してスイッチQ1及びQ4を開成し、従って、電流が右から左に相巻線7を通じて駆動される。相巻線7内の流れは、従って、DIR1及びDIR2を逆にすることによって整流される。DIR1及びDIR2が論理的低に引かれた場合、ゲートドライブモジュール11は、全てのスイッチQ1~Q4を開成する。FREEWHEELは、相巻線7をDCリンク電圧から切り離して、相巻線7内の電流がインバータ10の低側ループの周囲を再循環又はフリーホイールさせることを可能にする。従って、論理的低に引かれるFREEWHEEL信号に応答して、ゲートドライバモジュール11は、両方の高側Q1,Q2スイッチを開成させる。電流は、次に、DIR1及びDIR2によって定められた方向にインバータ10の低側ループの周囲をフリーホイールする。図4は、コントローラ16の制御信号に応答するスイッチQ1~Q4の許容された状態を要約するものである。以下、設定するセットする、クリアするという用語は、信号がそれぞれ論理的高に及び低に引かれたことを示すために使用する。特定の制御信号が変わった時、制御信号が変化することとパワースイッチの物理的に開成又は閉成することの間には短い遅延がある。更に別の制御信号がこの遅延期間中に変わった場合、インバータの特定のアーム部上の両方のスイッチすなわち、Q1、Q3、又はQ2、Q4が同時に閉成される可能性がある。この短絡、つまりシュートスルーこのように称されることが多いがは、インバータ10のその特定のアーム部上のスイッチを損傷するおそれがある。従って、シュートスルーを防止するために、コントローラ16は、2つの制御信号を変えることの間に不感時間又はむだ時間TDTを使用する。従って、例えば、相巻線7を整流する時、第1のコントローラ16は、DIR1をクリアして、不感時間TDTを待って、次に、DIR2を設定する。不感時間は、ゲートドライバモジュール11及びパワースイッチQ1~Q4が応答するのに十分な時間を有することを保証しながら性能を最適化するように理想的にはできるだけ短く保たれる。整流コントローラ16は、HALL信号のエッジに応答して相巻線7を整流する。整流は、相巻線7を通る電流の方向を逆にするようにDIR1及びDIR2を逆にすることを伴っているすなわち、DIR1をクリアしてDIR2を設定するか、又はDIR2をクリアしてDIR1を設定する。相巻線7は、整流の時点でフリーホイールさせることができる。従って、DIR1及びDIR2を逆にすることに加えて、コントローラ16は、FREEHWEELを設定する。同期整流所定の速度閾値SPEEDADVよりも小さいと、コントローラ16は、HALL信号のエッジと同期して相巻線7を整流する。HALL信号の各エッジは、相巻線7内の逆起電力の極性の変化を表している。その結果、SPEEDADV未満の速度で、コントローラ16は逆EMFのゼロ交差と同期して相巻線7を整流する。回転子5が加速する時に、各電気半サイクルの期間は減少し、従って、相巻線7のインダクタンスに関連の時定数L/Rは益々重要になる。更に、相巻線7内の逆起電力のマグニチュードが増加し、これは、次に、電流が相巻線7内で上がる速度に影響を与える。その結果、コントローラ16がHALL信号のエッジと同期して相巻線7を整流し続けた場合、各電気半サイクルにわたって相巻線7に更に別の電流を駆動することがもはや可能でないと思われる速度に到達する。従って、SPEEDADVに到達すると、コントローラ16は、同期整流から進み整流に切り換わる。HALL信号のエッジに先立って相巻線7を整流することにより、相巻線7を励起するのに使用される電圧は、逆起電力により増大される。従って、相巻線7を通る電流の方向は、より迅速に逆にすることができる。更に、相電流に逆起電力を導かせることができ、これは、次に、電流上昇率の減速化を補償するのを補助する。これが、次に、負トルクの短い期間を生成するが、これは、通常、正トルクのその後の利得により十二分に補正される。進み整流AdvancedCommutation速度閾値SPEEDADVでの又はそれを超える速度で、コントローラ16は、進み期間advanceperiodTADVによりHALL信号の各エッジの前に相巻線7を整流する。電気半サイクル期間は減少し、逆起電力は回転子速度と共に増加するので、整流がHALL信号のエッジの前に起こる電気角度は、理想的に回転子速度と共に増加する。特定の進み期間TADVに対して、対応する進み角度advanceangleAADVは、以下のように定めることができる。AADVelec.deg=TADVsec{ωrpm/60}360mech.degn/2ここで、AADVは電気角度での進み角であり、TADVは、秒単位の進み期間であり、ωはrpm単位の回転子速度であり、nは回転子極の個数である。この方程式から、進み角が直接に回転子速度に比例していることが見出される。その結果、固定進み期間に対してさえも、進み角は、回転子速度と共に増加する。しかし、加速、電力及び効率の制御の有効化は、異なる回転子速度で異なる進み期間を使用することによって達成することができる。コントローラ16は、従って、複数の回転子速度の各々に対して進み期間を格納する進みルックアップテーブルを含む。ZCROSS信号のエッジに応答して、コントローラ16は回転子5の速度に対応する進み期間TADVを進みルックアップテーブルから選択する。回転子5の速度は、HALL信号の2つの連続的エッジの間に、間隔THALLから決定される。この間隔は、以下、ホール期間と呼ばれる。回転子5の速度は、次に、以下によって定められる。ωrpm=60/{nTHALLsec}ここで、ωはrpm単位の回転子の速度であり、THALLは秒単位のホール期間であり、nは回転子の極の個数である。コントローラ16は、選択された進み期間を使用してHALL信号のエッジより前に相巻線7を整流する。同じ進み期間TADVは、次に、ZCROSS信号の更に別のエッジのような時間が検出されるまでコントローラ16によって使用される。ZCROSS信号の更に別のエッジに応答して、コントローラ16は、回転子5の速度に対応する新たな進み期間を進みルックアップテーブルから選択する。進み期間は、従って、AC電源4の電圧がゼロと交差する時に限り更新され、AC電源4の各半サイクルにわたって一定である。HALL信号の特定のエッジに先立って相巻線7を整流するために、コントローラ16は、HALL信号の前回のエッジに応答して作用する。HALL信号のエッジに応答して、コントローラ16は、整流期間TCOMを得るために、進み期間TADVをホール期間THALLから減算する。TCOM=THALL-TADVコントローラ16は、次に、HALL信号のエッジの後に時間TCOMで相巻線7を整流する。従って、相巻線7は、進み期間TADVによりHALL信号のその後のエッジの前に整流される。上述のように、進み期間TADVは、AC電源4の各半サイクルにわたって一定のままである。しかし、回転子5の速度は、DCリンク電圧の正弦波的増加又は低減のためにAC電源4の各半サイクルにわたって変化する。ホール期間THALLは、従って、AC電源4の各半サイクルにわたって変化する。その結果、進み期間と対照的に、コントローラ16は、HALL信号の各エッジに対して整流期間TCOMを計算する。電流制御コントローラ16のいくつかの周辺機器19は、電流レギュレータ22を形成するように構成されている。電流レギュレータ22は、相巻線7内の電流をモニタ及び調整する。電流レギュレータ22は、2つの機能を実行する。第1に、相巻線7内の電流がフェイルセーフ閾値を上回った場合、電流レギュレータ22は、TRIPをクリアする。第2に、相巻線7内の電流が過電流閾値を上回った場合、電流レギュレータ22は、過電流信号を生成する。図5に示すように、電流レギュレータ22は、フェイルセーフモジュール23と過電流モジュール24とを含む。フェイルセーフモジュール23は、マルチプレクサ25と、比較器26と、NOTゲート27と、SRラッチ28とを含む。マルチプレクサ25は、2つの電流感知信号ISENSE1及びISENSE2の一方を選択する2つの入力部を有する。マルチプレクサ25により行われた選択は、相巻線7を通る電流の方向に応答してプロセッサ17により制御される。特に、DIR1が設定された時、マルチプレクサ25にISENSE1を選択させ、DIR2が設定された時、マルチプレクサにISENSE2を選択させる。マルチプレクサ25の出力は比較器26に送出され、比較器26は、所定のフェイルセーフ電圧TRIPREFと選択された電流感知信号の電圧を比較する。TRIPREFは、選択された分流抵抗器R1,R2を通る電流が所定のフェイルセーフ閾値IMAXを超える時に比較器26の出力が論理的に高く引かれるように設定されている。TRIPREFは、従って、IMAX及び分流抵抗器R1,R2の抵抗によって定められる。比較器26の出力はNOTゲート27に送出され、その出力は、SRラッチ28のS入力部に送出される。SRラッチ28のQ出力は、TRIP信号として電流レギュレータ22により出力される。その結果、電流感知信号ISENSE1又はISENSE2の電圧がTRIPREFを上回った時、TRIPはクリアされる。上述のように、ゲートドライバモジュール11は、クリアされたTRIP信号に応答してインバータ10の全てのスイッチQ1~Q4を開成する。電流レギュレータ22のフェイルセーフモジュール23は、従って、相巻線7内の電流がフェイルセーフ閾値IMAXを超えるのを防止し、フェイルセーフ閾値IMAXを超えると、スイッチQ1~Q4は損傷する恐れがあり、及び/又は回転子5は消磁される場合がある。TRIP信号をクリアするためにハードウエアを使用することにより、相巻線7内の電流がフェイルセーフ閾値を上回った時、電流レギュレータ22は、比較的迅速に応答する。プロセッサ17によって実行されるソフトウエアがその代わりにTRIP信号をクリアするために使用された場合、遅延が、フェイルセーフ閾値を超える電流とTRIP信号をクリアすることとの間に起こる可能性があり、この時間中、電流は、スイッチQ1~Q4を損傷するか、又は回転子5を消磁するレベルまで上がる場合がある。プロセッサ17は、HALL信号の各エッジに応答してTRIP信号をポーリングする。TRIP信号が5つの連続的HALLエッジのために明確である場合、プロセッサ17は記憶装置18にフェイルセーフ超過エラーを書き込んで故障モードに入るが、これをより詳細に以下に説明する。このようにTRIP信号をモニタすることにより、確実に、コントローラ16はTRIP信号内の過渡期ノイズのために故障モードに不注意に入らないようになる。過電流モジュール24は、マルチプレクサ29と比較器30とを含む。マルチプレクサ29は、フェイルセーフモジュール23のそれと同様に、2つの電流感知信号ISENSE1及びISENSE2の一方を選択する2つの入力部を有する。ここでもまた、マルチプレクサ29により行われた選択は、相巻線7を通る電流の方向に応答してプロセッサ17により制御される。その結果、DIR1が設定された時、マルチプレクサ29はISENSE1を選択し、DIR2が設定された時、マルチプレクサ29はISENSE2を選択する。マルチプレクサ29の出力は比較器30に送出され、比較器30は、DCLINK信号の電圧と電流感知信号の電圧を比較する。電流感知信号ISENSE1又はISENSE2がDCLINKを上回った時、比較器30の出力は、論理的低に引かれる。過電流モジュール24は、従って、相巻線7内の電流がDCリンク電圧に比例する過電流閾値を上回った時、論理的低に引かれる過電流信号を出力する。過電流モジュール24の出力は、プロセッサ17に結合され、プロセッサ17は、低い過電流信号に応答して過電流ルーチンを実行する。過電流閾値がDCリンク電圧に比例しているので、過電流閾値は、AC電源4の各サイクルにわたって整流シヌソイドとして変化し、この利点に対して以下でより詳細に説明する。分圧器R3、R4の抵抗は、DCLINK信号のピーク電圧がTRIPREFを上回らないように選択される。その結果、電流レギュレータ22は、相巻線7内の電流がフェイルセーフ閾値を超える前に過電流イベントを起動させる。過電流モジュール24及びプロセッサ17は、従って、相巻線7内の電流を調整するように意図されている。フェイルセーフモジュール23は、プロセッサ17内の故障例えば、ソフトウエア故障という思いもよらない場合にのみ、又はプロセッサ17が過電流イベントに応答することができる前に相巻線7内の電流がフェイルセーフ閾値IMAXに到達するような速度で上った場合にTRIPをクリアするように意図されている。過電流イベントに応答して、コントローラ16は、回転子5の速度に基づいて、異なる一連のアクションを実行する。所定の閾値SPEEDSINGLEよりも小さい速度になると、コントローラ16は、マルチスイッチモードで作動する。所定の閾値での又はそれを超える速度になると、コントローラ16は、シングルスイッチモードで作動する。マルチスイッチモードマルチスイッチモード内の過電流イベントに応答して、コントローラ16は、FREEHWEELをクリアすることによって相巻線7をフリーホイールさせる。フリーホイールは、フリーホイール期間TFWにわたって続き、その間に、相巻線7内の電流は、過電流閾値よりも小さいレベルに減衰するように意図されている。相巻線7内の電流が過電流閾値よりも大きい状態を続ける場合、コントローラ16は、フリーホイール期間TFWにわたって再び相巻線7をフリーホイールさせる。一方、相巻線7内の電流が過電流閾値未満に落ちた場合、コントローラ16は、FREEWHEELを設定することによって相巻線7の励起を再開する。特定のフリーホイール期間TFWに対して、対応する電気角度AFWは、以下のように定めることができる。AFWelec.deg=TFWsec{ωrpm/60}360mech.degn/2ここで、AFWは電気角度でのフリーホイール角度であり、TFWは秒単位でのフリーホイール期間であり、ωはrpmでの回転子速度であり、nは回転子極の個数である。その結果、一定のフリーホイール期間が得られるように、対応するフリーホイール角度は、回転子速度と共に増加する。しかし、フリーホイール角度が増加すると、電流及び従って電力が相巻線7に駆動される残りの期間は減少する。コントローラ16は、従って、回転子5が加速する時に対応するフリーホイール角度AFWが過度に増大しないように、増加する回転子速度と共に減少するフリーホイール期間TFWを使用している。コントローラ16は、複数の回転子速度の各々に対してフリーホイール期間を格納するフリーホイールルックアップテーブルを含む。ZCROSS信号のエッジに応答して、コントローラ16は、回転子5の速度に対応するフリーホイール期間TFWをフリーホイールルックアップテーブルから選択する。コントローラ16は、次に、選択されたフリーホイール期間を使用して、過電流イベントに応答して相巻線7をフリーホイールさせる。同じフリーホイール期間TFWは、ZCROSS信号の更に別のエッジのような時間が検出されるまでコントローラ16によって使用される。ZCROSS信号の更に別のエッジに応答して、コントローラ16は、回転子5の速度に対応する新たなフリーホイール期間をフリーホイールルックアップテーブルから選択する。その結果、進み期間の場合と同様に、フリーホイール期間は、AC電源4の電圧がゼロと交差する時に限り更新され、AC電源4の各半サイクルにわたって一定である。コントローラ16は、回転子5が静止からSPEEDSINGLEまで加速する間のみ、マルチスイッチモードで作動する。従って、マルチスイッチモード内のコントローラ16により費やされる時間の長さは、比較的短い。比較的粗い速度分解能は、従って、モータシステム1の電力又は効率に悪影響を与えることなく、フリーホイールルックアップテーブルに使用することができる。明らかに、回転子5がSPEEDSINGLEに接近する時に対応するフリーホイール角度が過度に増大しない限り、一定のフリーホイール期間を恐らく使用すると考えられる。比較的低回転子速度では、回転子5により相巻線7内で誘導される逆起電力は、比較的小さい。その結果、相巻線7内の電流は、比較的迅速に過電流閾値まで上がる。電流が過電流閾値に到達するのに掛かる期間が比較的短いために、コントローラ16は、一般的にモータ2の各電気半サイクル中に複数回、励起とフリーホイールとの間で相巻線7を切り換える。こういう理由から、コントローラ16は、SPEEDSINGLEよりも小さい速度ではマルチスイッチモードで作動すると呼ばれる。回転子速度が増加すると、ホール期間は、本来減少する。更に、逆起電力は増加し、従って、相巻線7内の電流が過電流閾値に到達するために掛かる時間は増加する。その結果、コントローラ16が励起とフリーホイールとの間で相巻線7を切り換える頻度は、回転子5が加速するほど多くなくなる。最終的には、回転子5の速度は、コントローラ16がモータ2の各電気半サイクル中に励起とフリーホイールとの間で一度だけ相巻線7を切り換えるレベルに上がる。シングルスイッチモードシングルスイッチモード内の過電流イベントに応答して、コントローラ16は、相巻線7を直ちにはフリーホイールさせない。代替的に、コントローラ16は、オーバーラン期間TOVRにわたって相巻線7を励起し続ける。オーバーラン期間が経過した後、コントローラ16は、FREEHWEELをクリアすることによって相巻線7をフリーホイールさせる。フリーホイールは、次に、コントローラ16が相巻線7を整流するような時間まで無期限に続く。コントローラ16は、従って、モータ2の各電気半サイクル中に一度だけ励起からフリーホイールに相巻線7を切り換える。図6をここで参照すると、オーバーラン期間TOVRは、以下の方程式によって定められる。TOVR=TOVROFFSETTOVRAMPabs{sinθ}ここで、TOVROFFSETはオフセット値であり、TOVRAMPabs{sinθ}はTOVRAMPによって定められる振幅を有する整流正弦波であり、θはAC電源4の電圧周期内での角度である。角度θは、AC電源4の電圧のゼロ交差からの時間間隔として表すことができる。θdeg=tsecfHz360degここで、tは、AC電源4内のゼロ交差以来の秒単位の経過した時間であり、fは、AC電源4のヘルツでの周波数である。オーバーラン期間は、次に、以下のように定めることができる。TOVR=TOVROFFSETTOVRAMPabs{sintf360deg}より簡単には、オーバーラン期間TOVRは、2つの成分の合計と見なすことができる。TOVR=TOVROFFSETTOVRSINEここで、TOVROFFSETは時間とは独立しているオーバーランオフセット値であり、TOVRSINEは時間に依存するオーバーラン正弦値である。TOVRSINEは、オーバーラン正弦ルックアップテーブルとしてコントローラ16により格納される。オーバーラン正弦ルックアップテーブルは、複数の時間の各々に対してオーバーラン正弦値TOVRSINEを含む。HALL信号のエッジに応答して、コントローラ16は、ZCROSS信号の最終エッジ以来経過した期間tを決定又は測定する。コントローラ16は、次に、経過した期間に対応するオーバーラン正弦値TOVRSINEをオーバーラン正弦ルックアップテーブルから選択する。コントローラ16は、次に、オーバーランオフセット値TOVROFFSET及びオーバーラン正弦値TOVRSINEを合計してオーバーラン期間TOVRを得る。以下でより詳細に説明するように、進み期間TADV、オーバーランオフセットTOVROFFSET、及びオーバーラン振幅TOVRAMPに対して適切な値を選択することにより、モータシステム1の効率は、特定の平均入力電力又は平均出力電力が得られるように最適化することができる。更に、適切な値は、AC電源4から引き出される電流の波形が管理機関により設定された高調波規格に適合するように選択することができる。タイムアウト回転子速度に関わらず、過電流イベントは、モータ2の各電気半サイクル中に少なくとも一回起こる。過電流イベントが起こらなかった場合、コントローラ16は相巻線7を励起し続け、従って、相巻線7内の電流は、上がり続ける。比較的高い回転子速度では、相巻線7内の逆起電力のマグニチュードは、比較的大きい。従って、相巻線7内の電流は、過電流イベントがない場合でさえ過大レベルに到達する可能性は低い。しかし、比較的低回転子速度では、相巻線7内で誘導される逆起電力は、比較的小さい。従って、相巻線7内の電流は、過電流イベントがない場合、過大なレベルに上がる場合がある。実際、電流は、フェイルセーフ閾値IMAXまで上がる恐れがあり、それによって、次に、コントローラ16は、故障モードに入る。その結果、マルチスイッチモードで作動する時、コントローラ16は、相巻線7がタイムアウト期間TTOにわたって絶えず同じ方向に励起された後に自動的に過電流ルーチンを実行する。タイムアウト期間は、従って、確実に相巻線7を励起することができる最大期間が制限されるようにすることにより、フェイルセーフ機構として作用する。回転子5の速度が増加すると、相巻線7内で誘導される逆起電力のマグニチュードも増加する。その結果、電流が相巻線7内で上がる速度は、増加する回転子速度と共に減少する。別の言い方をすれば、相巻線7内の電流が過電流閾値まで上がる電気角度は、回転子速度と共に増加する。コントローラ16は、従って、回転子速度と共に増加するタイムアウト角度ATOを使用する。特定のタイムアウト期間TTOに対して、対応するタイムアウト角度ATOは、以下のように定めることができる。ATOdec.deg=TTOsec{ωrpm/60}360mech.degn/2ここで、ATOは電気角度でのタイムアウト角度であり、TTOは秒単位のタイムアウト期間であり、ωはrpmでの回転子速度であり、nは回転子極の個数である。その結果、一定のタイムアウト期間にわたって、対応するタイムアウト角度は、回転子速度と共に線形に増加する。コントローラ16は、従って、一定のタイムアウト期間TTOを使用することができる。しかし、コントローラ16が異なる回転子速度に対して異なるタイムアウト期間を使用する場合、より良好な制御をもたらすことができる。コントローラ16は、従って、複数の回転子速度の各々に対してタイムアウト期間TTOを格納するタイムアウトルックアップテーブルを含む。ZCROSS信号のエッジに応答して、コントローラ16は、回転子5の速度に対応するタイムアウト期間TTOをタイムアウトルックアップテーブルから選択する。同じタイムアウト期間は、次に、ZCROSS信号の更に別のエッジのような時間が検出されるまでコントローラ16によって使用される。ZCROSS信号の更に別のエッジに応答して、コントローラ16は、回転子5の速度に対応する新たなタイムアウト期間をタイムアウトルックアップテーブルから選択する。従って、進み期間及びフリーホイール期間の場合と同様に、タイムアウト期間は、AC電源4の電圧がゼロと交差する時に限り更新され、かつAC電源4の各半サイクルにわたって一定のままである。一定の電力コントローラ16は、主として進み整流シングルスイッチモードで作動する。このモードで、回転子5の速度は、回転子5が異なる負荷を受ける時に変化する。回転子速度が変わるように、相巻線7内で誘導される逆起電力のマグニチュードも変化する。コントローラ16が仮に固定進み期間及びオーバーラン期間を使用した場合、システム1の平均入力電力及び平均出力電力は、回転子速度と共に変化する。しかし、特定の速度範囲にわたって一定の平均入力又は出力電力を維持するモータシステム1を有することが望ましい用途があると考えられる。モータシステム1の平均入力及び出力電力は、AC電源4のRMS電圧にも依存する。しかし、RMS電圧は、規則的なものではない場合がある。ここでもまた、AC電源4の電圧の変化に関わらず一定の平均入力又は出力電力を維持するモータシステム1を有することが望ましい用途があると考えられる。更に、2つの異なる国における幹線電源は、RMS電圧は異なるが周波数は異なるものではない場合がある。同じ達成機能が両国内でモータシステム1によって達成される場合には、従って、有利であると考えられる。その結果、特定の速度範囲及び/又は電圧範囲にわたって一定の平均電力入力又は出力を維持するために、コントローラ16は、AC電源4の回転子速度及び/又はRMS電圧の変化に応答して進み期間及びオーバーラン期間を調整する。進みルックアップテーブルは、従って、複数の回転子速度及び複数の電圧の各々に対して進み期間TADVを格納する。コントローラ16は、複数の回転子速度及び複数の電圧の各々に対してオーバーランオフセット値TOVROFFSETを格納するオーバーランオフセットルックアップテーブルも含む。各ルックアップテーブルは、従って、2次元であり、かつ回転子速度及び電圧により索引が付される。以下でより詳細に説明するように、コントローラ16は、AC電源4のRMS電圧の尺度又は測定値を取得するためにDCSMOOTH信号をサンプリングし、AC電源4のRMS電圧の尺度又は測定値は、次に、コントローラ16によりルックアップテーブルの各々に索引を付けるのに用いられる。進み期間の場合と同様に、コントローラ16は、ZCROSS信号のエッジに応答してオーバーランオフセット値を更新する。特に、コントローラ16は、AC電源4の回転子速度及びRMS電圧に対応するオーバーランオフセット値TOVROFFSETをオーバーランオフセットルックアップテーブルから選択する。オーバーランオフセットは、従って、AC電源4の電圧と交差する時に限り更新され、AC電源4の各半サイクルにわたって一定である。HALL信号の各エッジに応答して、コントローラ16は、AC電源4内の前のゼロ交差以来経過した期間tに対応するオーバーラン正弦値TOVRSINEをオーバーラン正弦ルックアップテーブルから選択する。コントローラ16は、次に、オーバーランオフセット値TOVROFFSET及びオーバーラン正弦値TOVRSINEを合計してオーバーラン期間TOVRを得る。進み期間TADV及びオーバーラン期間TOVRは、以下のように定めることができる。TADV=TADVTABLE[速度、電圧]TOVR=TOFFSETTABLE[速度、電圧]TOVRSINETABLE[t]進み期間及びオーバーラン期間は、従って、確実に一定の平均電力入力又は出力がもたらされるようにするために回転子速度及びAC電源4のRMS電圧の変化に応答して調節される。回転子速度及び/又はRMS電圧の変化に応答してオーバーラン振幅TOVRAMPを調節することもあり得る。例えば、コントローラ16は、複数の回転子速度及び/又は電圧の各々に対してオーバーラン振幅値TOVRAMPを格納するオーバーラン振幅ルックアップテーブルを格納することがあり得る。コントローラ16は、次に、ZCROSS信号の各エッジに応答してオーバーラン振幅値を更新するであろう。オーバーラン正弦値TOVRSINEは、次に、正弦ルックアップテーブルから得られた値でオーバーラン振幅値TOVRAMPを乗算することによって得られるであろう。しかし、2つの数字の掛け算により、コントローラ16によって実行された命令の回数が増加する。更に、より高いビット分解能を有するコントローラ16は、掛け算を処理するのに必要であろう。従って、比較的簡単かつ廉価なマイクロコントローラをコントローラ16に使用することができるように、オーバーラン振幅は調節されない。それにも関わらず、必要又は望ましいことであると判明した場合には、オーバーラン振幅が調節されることもあり得る。一定の平均電力は、SPEEDCPMIN及びSPEEDCPMAXにより境界が示された速度範囲にわたって、及びVCPMIN及びVCPMAXにより境界が示された電圧範囲にわたって維持される。これらの範囲を超えると、コントローラ16は、一定の平均電力を維持しようとしない。この理由は、モータシステム1の詳細によって変わる場合がある。例えば、VCPMINよりも小さい電圧では、一定の平均電力を維持するためにモータの各電気半サイクルにわたって相巻線7へ十分な電流を駆動することが不可能である場合がある。代替的に、モータシステム1の効率は、VCPMINよりも小さい電圧では、大幅に落ちる場合があるか、又は一定の平均電力をこの電圧未満に維持することは、過大な電流高調波が発生する場合がある。一定の平均電力が特定の速度範囲及び電圧範囲にわたって維持される間、モータシステム1は、それにも関わらず、これらの範囲を超えた速度及び電圧で有効に作動させることができる。モータシステム1は、従って、SPEEDMIN及びSPEEDMAXによって定められる作動速度範囲及びVMIN及びVMAXによって定められる運転電圧範囲を有する。進みルックアップテーブル及びオーバーランオフセットルックアップテーブルは、モータシステム1の全作動速度及び電圧範囲を対象とする値を格納する。しかし、一定の平均電力は、SPEEDCPMINとSPEEDCPMAXの間の速度でのみ、かつVCPMINとVCPMAXの間の電圧で達成される。電圧及び温度測定コントローラ16の周辺機器19には、複数のチャンネルを有するアナログ/デジタル変換器ADCがある。ADCの第1のチャンネルはDCSMOOTH信号の入力ピンに結合され、ADCの第2のチャンネルは、TEMP信号の入力ピンに結合されている。AC電源4のRMS電圧を測定するために、プロセッサ17はADCの第1のチャンネルを選択して、ADCを使用してDCSMOOTH信号をサンプリングする。R6、C2回路の時定数は、十分に長く、DCSMOOTH信号がAC電源4の各半サイクルにわたって比較的一定に見える。DCSMOOTH信号は、従って、AC電源4のピーク電圧の尺度又は測定値を提供する。ピーク電圧がRMS電圧に正比例しているので、DCSMOOTHも、RMS電圧の尺度又は測定値を提供する。DCSMOOTH信号がAC電源4の各半サイクルにわたって比較的一定であるが、信号はそれにも関わらず、インバータ10のスイッチングから生じる小さい程度の高周波リップルを有する。従って、このリップルを補償するために、プロセッサ17は、AC電源4の各サイクルにわたって何回もDCSMOOTH信号をサンプリングする。プロセッサ17は、次に、AC電源4のRMS電圧の尺度又は測定値を得るために、サンプルの平均値を取る。温度を測定するために、プロセッサ17は、ADCの第2のチャンネルを選択して、ADCを使用してTEMP信号をサンプリングする。ここでもまた、プロセッサ17は、何回もTEMP信号をサンプリングして、温度の尺度又は測定値を得るために平均値を決定する。多くのサンプルの平均値を取ることにより、コントローラ16は、モータシステム1内のTEMP信号内の偽ノイズ又は過渡期温度変化に不注意に反応しない。比較的高い回転子速度で作動する時、チャンネルを選択して関連の入力信号をサンプリングするためにADCにより必要とされる時間は、他のルーチンの実行を遅らせる場合がある。以下でより詳細に説明するように、あらゆる遅延は、モータシステム1の性能に悪影響を与える可能性がある。従って、DCSMOOTH又はTEMPをサンプリングする時、サンプリング処理は、3つの異なる段階に分けられ、これらの段階の各々は、HALL信号のエッジに応答して順番に実行される。HALL信号の第1のエッジに応答して、プロセッサ17は、ADCの適切なチャンネルを選択する。第2のエッジに応答して、プロセッサ17は、ADCを開始又は起動する。第3のエッジに応答して、プロセッサ17は、ADCの出力レジスタを読み取る。従って、プロセッサ17により読み取られた出力は、選択された入力信号、すなわち、DCSMOOTH又はTEMPの単一のサンプルを表している。プロセッサ17により読み取されたサンプルは、次に、記憶装置18に格納される。この3段階の処理は、次に、入力信号の更に別のサンプルを得るために繰り返され、入力信号の更に別のサンプルは、次に、記憶装置18内に格納された値に追加される。記憶装置18内に格納された値は、従って、プロセッサ17により読み取された個々のサンプルの合計に対応する。3段階の処理は、所定の数の回数繰り返される。プロセッサ17は、次に、入力信号の平均的尺度又は測定値を得るために、上記所定の数によって記憶装置18内に格納された値を割算する。サンプリング処理を3つの異なる段階に分割することにより、入力信号をサンプリングするのに必要な時間は、モータ2の3つの電気半サイクルにわたって広がる。その結果、モータ2の各電気半サイクル中に入力信号をサンプリングする際にコントローラ16により費やされる時間は、大幅に低減され、従って、イベント衝突の可能性が低減される。コントローラ16は、同時にDCSMOOTH及びTEMP信号をサンプリングする。図7に示すように、コントローラ16は、AC電源4のRMS電圧の単一のサンプルを得るために信号DCSMOOTHで3段階処理を実行する。コントローラ16は、次に、温度の単一のサンプルを得るために信号TEMPで3段階処理を実行する。交互にDCSMOOTH及びTEMPをサンプリングするこの処理は、次に、所定の回数繰り返される。記憶装置18は、従って、AC電源4のRMS電圧のサンプルの合計に対応する第1の値、及び温度のサンプルの合計に対応する第2の値を格納する。同時にDCSMOOTH及びTEMP信号をサンプリングするのではなく、コントローラ16は、その代わりに順番に2つの入力信号をサンプリングすることができる。特に、コントローラ16は、先に、所定の回数でDCSMOOTH信号をサンプリングし、次に、所定の回数でTEMP信号をサンプリングすることができる。同時にではなく順番に2つの入力信号をサンプリングすることにより、ADCのチャンネルは、各組のサンプルに対して一度だけ切り換えられる。従って、チャンネルを選択する段階は、第1のサンプル以外の全てから省略することができる。2段階処理すなわち、ADCを開始して、ADCを読み取るは、次に、サンプルの第1のもの以外の全てをサンプリングするのに使用することができる。従って、より多くのサンプルを特定の期間にわたって収集することができる。しかし、順番に2つの入力信号をサンプリングすることに関する欠点は、各信号に対して、信号が測定されていない期間があることである。コントローラ16は、1つのADCのみを有し、これは、2つの入力信号すなわち、DCSMOOTH及びTEMPをサンプリングするのに必要とされる。このような理由から、サンプリング処理は、ADCチャンネルを選択する段階を含む。温度センサ15が制御システム3から省略された場合、AC電源4のRMS電圧は、チャンネル選択を必要とせずにサンプリングすることができる。代替的に、コントローラ16の周辺機器19が更に別のADCを含む場合、各入力信号は、専用ADCによりサンプリングすることができ、従って、チャンネルを選択する段階は、同じく省略することができる。それにも関わらず、両方の例においては、サンプリング処理は、入力信号をサンプリングするのに必要な時間がモータ2の2つの電気半サイクルにわたって広がるように2つの段階に分割され続ける。図7に示す特定的な実施形態では、サンプリング処理の各段階は、HALL信号の連続的エッジに応答して実行される。これは、次に、各サンプルは、比較的迅速に、すなわち、HALL信号の3つのエッジの後に得られるという利点を有する。それにも関わらず、各段階がHALL信号の連続的エッジに応答して実行されることは、不可欠なものではない。例えば、サンプリング処理の各段階は、HALL信号の第2又は第3のエッジ毎に応答して実行することができる。これには、次に、各サンプルを取得するより長い期間が必要であるが、コントローラ16は、他のルーチンを実行するようにADCをアドレス指定していない時、この時間を使用することができる。入力信号の尺度又は測定値として様々なサンプルの平均を使用するのではなく、コントローラ16は、代替的に、サンプルの合計を使用することができる。代替的に、コントローラ16は、入力信号の尺度又は測定値としてサンプルのピーク値を使用することができる。例えば、ADCの出力レジスタからサンプルを読み取った後に、プロセッサ17は、サンプルを記憶装置18内に格納された値と比較することができる。サンプルが記憶装置18内に格納された値を超える場合、プロセッサ17は、サンプルの値でこの値に上書きする。比較する段階及び上書きする段階は、次に、所定の個数のサンプルの各々に対して繰り返される。全てのサンプルが収集された後、記憶装置18内に格納された値は、サンプルのピーク値を表している。ピーク値を測定する時、サンプルがAC電源4の少なくとも1つの半サイクルに及ぶ限り、AC電源4の電圧を表す入力信号が滑らかであることは不可欠なものではない。その結果、平滑コンデンサC2は省略することができ、又はキャパシタンスは、制御システム3のサイズ及び/又は経費を低減するために大幅に低減することができる。高速で作動する時にAC電源4の電圧及び温度を測定することに加えて、コントローラ16は、初期電源投入中に電圧及び温度も測定する。この初期検査は、確実にAC電源4のRMS電圧及びモータシステム1内の温度が安全な運転限界内にあるようにするために行われる。この初期段階中に、入力信号をサンプリングする際にコントローラ16により費やされる時間は、極めて重要なものというわけではない。その結果、初期電源投入中に、コントローラ16は、処理を3つの段階に分割することなく、電圧及び温度をサンプリングする。ルックアップテーブルコントローラ16の記憶装置18は、いくつかのルックアップテーブルを格納し、各々は、特定の速度及び/又は電圧分解能を有する。各ルックアップテーブルの分解能は、他のルックアップテーブルと同じである必要がなく、かつルックアップテーブルにわたって変わる場合がある。例えば、進みルックアップテーブルは、比較的低速度では10krpm毎に進み期間を格納することができ、これは、徐々に、比較的高い速度では1krpmに増加する。進み整流は、マルチスイッチモード及びシングルスイッチモードに使用される。シングルスイッチモードでは、進み期間は、一定の平均電力を維持するためにAC電源4の回転子速度及びRMS電圧の変化に応答して調節される。マルチスイッチモードでは、電圧の変化に応答して進み期間を調節することは不要である。従って、進みルックアップテーブルを格納するのに必要とされるメモリの量を最小にするために、記憶装置18は、2つの進みルックアップテーブル、すなわち、SPEEDSINGLE未満の速度で作動する時、回転子速度により索引が付される1次元のルックアップテーブル、及びSPEEDSINGLEでの又はそれを超える速度で回転子速度及び電圧により索引が付される2次元ルックアップテーブルを格納する。絶対値を格納するのではなく、各ルックアップテーブルは、その代わりに差分値を格納することができる。コントローラ16は、次に、差分値が適用される基準値を格納する。その結果、特定のパラメータを更新する時、コントローラ16は、関連のルックアップテーブルに索引を付して差分値を選択し、基準値に差分値を適用してパラメータを取得する。従って、例えば、コントローラ16は、回転子速度85krpm、90krpm、及び95krpmに対して47μs、50μs、及び52μsの進み期間を使用することができる。コントローラ16は、次に、基準値として50μsを格納することができる。進みルックアップテーブルは、次に、3つの速度の各々に対して-2μs、0μs、及び1μsを格納する。差分値を格納するのに必要なメモリは、一般的に絶対値より少なくて済む。従って、ルックアップテーブルをより効率的に格納することができる。次に、メモリの特定の量が得られるようにルックアップテーブルの高分解能化をもたらすことができる。代替的に又は追加的に、より小さいメモリ機能を有するより廉価なコントローラを使用することができる。より一般的な意味では、従って、各ルックアップテーブルは、関連のパラメータ、例えば、進み期間、オーバーランオフセットなどを決定するためにコントローラ16によって使用される制御値例えば、絶対値又は差分値を格納するということができる。コントローラ16によって実行される命令の数を低減するために、コントローラ16は、関連の作動モードに必要とされるパラメータを更新するだけである。例えば、同期の整流モードで作動する時、コントローラ16は、進み期間を選択又は更新する必要はない。同様に、シングルスイッチモードで作動する時、コントローラ16は、フリーホイール期間を選択又は更新する必要はない。特定の作動モードに必要とされるそれらのパラメータだけを更新した結果として、コントローラ16は、回転子がSPEEDSINGLEに到達した時にマルチスイッチモードからシングルスイッチモードに直ちには変わらない。コントローラ16が仮にマルチスイッチからシングルスイッチモードに直ちに変わらなかった場合、コントローラ16は、どのような期間がAC電源4の電圧の前のゼロ交差以来経過したかが分らない。従って、コントローラ16は、どのようなオーバーラン期間を使用すべきかが分らない。従って、回転子速度がSPEEDSINGLEに到達した時、コントローラ16は、マルチスイッチモードからシングルスイッチモードに変わる前にZCROSS信号の次のエッジまで待つ。モータ2が静止から加速する時に、ホール期間の長さは減少する。その結果、パラメータ例えば、フリーホイール期間がHALL信号のn番目毎のエッジで更新された場合、各更新の間隔は、徐々に減少する。各パラメータが更新される頻度は、次に、低速では少なくなり、高速では多くなる。AC電源4の電圧のゼロ交差に応答して各パラメータを更新することにより、各パラメータは、速度に関わらず周期的に更新される。シングルスイッチモードで作動する間にパラメータがHALL信号のn番目毎のエッジで更新された場合、パラメータは、AC電源4の周期内の異なる点で更新される。これは、次に、AC電源4から引き出される電流波形の高調波コンテンツを潜在的に増大させる可能性があるであろう。更に、モータシステム1が一定の平均速度で作動している時、回転子5の瞬間速度は、それにも関わらずDCリンク電圧の正弦波増加又は低減のためにAC電源4の各半サイクルにわたって変化する。パラメータがHALL信号のn番目毎のエッジで更新された場合、モータシステム1の平均速度が変わらなかったという事実にも関わらずパラメータの異なる値を選択することができる。ここでもまた、それによって、従って、AC電源4から引き出される電流波形内の高調波の増大が発生する場合がある。AC電源4のゼロ交差に応答して各パラメータを更新することにより、AC電源4の周期内の同じ基準点が使用される。その結果、電流波形の安定化がもたらされる。更に、AC電源4の半サイクル毎に一度だけパラメータを更新することにより、コントローラ16によって実行される命令は、比較的簡単に保たれ、従って、より簡単かつより廉価なマイクロコントローラを使用することができる。勿論、必要に応じて、様々なパラメータを更新することができる頻度は、ZCROSS信号のn番目毎のエッジで更新することによって少なくなる。モータ作動静止から運転速度まで加速する時のモータシステムの作動をここで説明する。図8から分るように、コントローラ16は、6つの作動モード、すなわち、初期化、静止、低速加速、高速加速、運転、及び故障を有する。様々な作動モードで、コントローラ16は、以下の4つのパラメータ、すなわち、フリーホイール期間、進み期間、オーバーラン期間、及びタイムアウト期間の1つ又はそれよりも多くを使用してモータ2を制御する。初期化モード電源投入で、コントローラ16は、周辺機器19を有効にし、モータシステム1内のAC電源4及び温度のRMS電圧の尺度又は測定値を得るためにDCSMOOTH信号及びTEMP信号をサンプリングする。RMS電圧が不足電圧閾値VMINよりも小さいか、又は過電圧閾値VMAXを超える場合、コントローラ16は、記憶装置18に不足電圧又は過電圧エラーを書き込んで故障モードに入る。同様に、温度が不足温度閾値TEMPMINよりも小さいか、又は過温度閾値TEMPMAXを超える場合、コントローラ16は、記憶装置18に不足温度又は過温度エラーを書き込んで故障モードに入る。RMS電圧及び温度が運転閾値内にある場合、コントローラ16は、回転子5の速度が静止閾値SPEEDSTATIONARYを超えるか否かを判断する。上述のように、回転子5の速度は、HALL信号、すなわち、ホール期間の2つの連続的エッジ間の間隔から得られる。コントローラ16がSPEEDSTATIONARYに対応する期間内にHALL信号の2つのエッジを検出しなかった場合、コントローラ16は、静止モードに入る。そうでなければ、コントローラ16は、低速加速モードに入る。静止モードω<SPEEDSTATIONARYコントローラ16は、所定の逆駆動時間TRDにわたって逆にモータ2を駆動する。この説明上、モータ2は、HALL信号が論理的に低い時に左から右に、HALL信号が論理的に高い時に右から左に相巻線7を駆動することに応答して前方へ駆動されると仮定されている。モータ2は、従って、図9に詳細に示すように、HALL信号が論理的に低い時に右から左に、HALL信号が論理的に高い時に左から右に相巻線7を駆動することに応答して逆に駆動される。逆にモータ2を瞬間的に駆動することにより、回転子5は、正転に回転するか、又は固定子6に対して特定の角度位置を採用すべきである。回転子5が正転に回転するか、又は固定子6に対して整列するかは、回転子5の開始位置に依存することになる。回転子5は、従って、正転に移動中であるか、又は正転の加速の準備ができている位置にある。逆にモータ2を瞬間的に駆動した後に、コントローラ16は、正転にモータ2を駆動するように相巻線7を整流する。正転の駆動により、回転子5は、正転に回転すべきである。回転子5が予想通りに回転している場合、HALL信号のエッジは、所定時間TFD内に生じるはずである。エッジが所定の時間TFD内で検出されない場合、コントローラは、記憶装置18に始動失敗エラーを書き込んで故障モードに入る。そうでなければ、コントローラ16は、正転にモータ2を駆動し続けるようにHALL信号のエッジに応答して相巻線7を整流する。HALL信号の第2のエッジは、次に、SPEEDSTATIONARYに対応する期間内に生じるはずである。第2のエッジが所定の時間内に検出された場合、コントローラ16は、低速加速モードに入る。そうでなければ、コントローラは、記憶装置18に始動失敗エラーを書き込んで故障モードに入る。低速加速モードSPEEDSTATIONARY≦ω<SPEEDADV低速加速モードで作動する時、コントローラ16は、同期整流マルチスイッチモードでモータ2を駆動する。図10は、いくつかのホール期間にわたるHALL信号、制御信号、及び相電流の波形を示している。HALL信号の各エッジに応答して、コントローラ16は、直ちに相巻線7を整流するすなわち、DIR1及びDIR2を逆転することにより、及びFREEWHEELを設定することにより。コントローラ16は、次に、ホール期間THALLに基づいて回転子5の速度を決定又は測定する。コントローラ16は、次に、ゼロ交差フラグをポーリングし、ゼロ交差フラグは、ZCROSS信号のエッジに応答して設定される。ゼロ交差フラグが設定されて回転子5の速度がSPEEDADV以上である場合、コントローラ16は、高速加速モードに入る。一方、ゼロ交差フラグは設定されるが回転子速度がSPEEDADVよりも小さい場合、コントローラ16は、フリーホイール期間TFW及びタイムアウト期間TTOを更新して、ゼロ交差フラグをクリアする。フリーホイール期間及びタイムアウト期間は、回転子速度を使用してフリーホイール及びタイムアウトルックアップテーブルに索引を付けることによって更新される。ゼロ交差フラグをポーリングして、必要であればフリーホイール期間及びタイムアウト期間を更新した後に、コントローラ16は、DCSMOOTH信号及びTEMP信号をサンプリングするのに使用される3つの段階の1つを実行する。所定の個数のサンプルが回収された場合、コントローラ16は、モータシステム1内のAC電源4のRMS電圧又は温度の尺度又は測定値を得るためにサンプルの平均を決定する。RMS電圧がVMINよりも小さいか、又はVMAXを超える場合、又は温度がTEMPMINよりも小さいか、又はTEMPMAXを超える場合、コントローラ16は、記憶装置18に対応するエラーを書き込んで故障モードに入る。整流の後、コントローラ16は、過電流イベントが起こるか、又はタイムアウト期間TTOが満了するまで相巻線7を励起し続ける。これらの2つのイベントのいずれかに応答して、コントローラ16はフリーホイール期間TFWにわたって相巻線7をフリーホイールさせるすなわち、FREEWHEELをクリアすることにより。フリーホイール期間の終了時に相巻線7内の電流が過電流閾値を超える場合、コントローラ16は、フリーホイール期間TFWにわたって再び相巻線7をフリーホイールさせる。そうでなければ、フリーホイール期間の終了時に、コントローラ16は、相巻線7の励起を再開するすなわち、FREEWHEELを設定することにより。コントローラ16は、従って、HALL信号のエッジと同期して相巻線7を整流し、ZCROSS信号のエッジに応答してフリーホイール期間及びタイムアウト期間を更新する。コントローラ16は、回転子5の速度がSPEEDADVに到達するような時間まで同期整流マルチスイッチモードでモータ2を駆動し続ける。SPEEDADVに到達すると、コントローラ16は、ZCROSS信号の次のエッジに応答して高速加速モードに入る。高速加速モードSPEEDADV≦ω<SPEEDSINGLE高速加速モードで作動する時、コントローラ16は、進み整流マルチスイッチモードでモータ2を駆動する。図11は、いくつかのホール期間にわたるHALL信号、制御信号、及び相電流の波形を示している。HALL信号の各エッジに応答して、コントローラ16は、ホール期間THALLに基づいて回転子5の速度を決定又は測定する。コントローラ16は、次に、ZCROSS信号のエッジに応答して設定されているゼロ交差フラグをポーリングする。ゼロ交差フラグが設定されて回転子5の速度がSPEEDSINGLE以上である場合、コントローラ16は、運転モードに入る。一方、ゼロ交差フラグが設定され、回転子速度がSPEEDSINGLEよりも小さい場合、コントローラ16は、進み期間TADV、フリーホイール期間TFW、及びタイムアウト期間TTOを更新して、ゼロ交差フラグをクリアする。進み期間、フリーホイール期間、及びタイムアウト期間は、回転子速度を使用して対応するルックアップテーブルに索引を付けることによって更新される。ゼロ交差フラグをポーリングして、必要であれば進み期間、フリーホイール期間、及びタイムアウト期間を更新した後に、コントローラ16は、進み期間TADVをホール期間THALLから減算することによって整流期間TCOMを計算する。コントローラ16は、次に、整流期間TCOMをタイマに取り込む。整流期間を計算した後に、コントローラ16は、DCSMOOTH信号及びTEMP信号をサンプリングするのに使用される3つの段階の1つを実行する。所定の個数のサンプルが回収された場合、コントローラ16は、モータシステム1内のAC電源4のRMS電圧又は温度の尺度又は測定値を得るためにサンプルの平均を決定する。RMS電圧がVMINよりも小さいか、又はVMAXを超える場合、又は温度がTEMPMINよりも小さいか、又はTEMPMAXを超える場合、コントローラ16は、記憶装置18に対応するエラーを書き込んで故障モードに入る。コントローラ16は、次に、タイマが整流期間TCOMにわたって計数した後、相巻線7を整流するすなわち、DIR1及びDIR2を逆転することにより、及びFREEWHEELを設定することにより。従って、コントローラ16は、HALL信号の次のエッジより進み期間TADVだけ先行して相巻線7を整流する。整流の後、コントローラ16は、過電流イベントが起こるか、又はタイムアウト期間TTOが満了するまで相巻線7を励起する。これらの2つのイベントのいずれかに応答して、コントローラ16は、フリーホイール期間TFWにわたって相巻線7をフリーホイールさせるすなわち、FREEWHEELをクリアすることにより。フリーホイール期間の終了時に相巻線7内の電流が過電流閾値を超える場合、コントローラ16は、フリーホイール期間TFWにわたって再び相巻線7をフリーホイールさせる。そうでなければ、フリーホイール期間の終了時に、コントローラ16は、相巻線7の励起を再開するすなわち、FREEWHEELを設定することにより。コントローラ16は、従って、HALL信号のエッジの前に相巻線7を整流し、ZCROSS信号のエッジに応答して進み期間、フリーホイール期間、及びタイムアウト期間を更新する。コントローラ16は、回転子5の速度がSPEEDSINGLEに到達するような時間まで進み整流マルチスイッチモードでモータ2を駆動し続ける。SPEEDS1NGLEに到達すると、コントローラ16は、ZCROSS信号の次のエッジに応答して運転モードに入る。運転モードSPEEDS1NGLE≦ω運転モードで作動する時、コントローラ16は、進み整流シングルスイッチモードでモータ2を駆動する。図12は、いくつかのホール期間にわたるHALL信号、制御信号、及び相電流の波形を示している。HALL信号の各エッジに応答して、コントローラ16は、ホール期間THALLに基づいて回転子5の速度を決定又は測定する。回転子5の速度は、SPEEDMIN及びSPEEDMAXにより境界が示された速度範囲のままであると予想されている。しかし、コントローラ16は、この範囲外の過渡期速度を許容する。従って、回転子5の速度がTUSより長い期間、SPEEDMINより下方に落ちた場合、コントローラ16は、記憶装置18に不足速度エラーを書き込んで故障モードに入る。同様に、回転子5の速度がTOSより長い期間、SPEEDMAXを上回った場合、コントローラ16は、記憶装置18に過速度エラーを書き込んで故障モードに入る。しかし、回転子Sの速度がSPEEDTRIPを上回った場合、コントローラ16は、直ちに記憶装置18に速度トリップエラーを書き込んで故障モードに入る。SPEEDTRIPを超える速度になると、機械及び/又は電気不良の見込みが大幅に増加する。コントローラ16は、次に、ZCROSS信号のエッジに応答して設定されているゼロ交差フラグをポーリングする。ゼロ交差フラグが設定された場合、コントローラ16は、進み期間TADV及びオーバーランオフセット値TOVROFFSETを更新する。各値は、回転子速度及びAC電源4の測定されたRMS電圧を使用して関連のルックアップテーブルに索引を付けることによって更新される。進み期間及びオーバーランオフセット値を更新した後に、コントローラ16は、ゼロ交差フラグをクリアしてゼロ交差タイマを開始する。ゼロ交差フラグをポーリングして、必要であれば進み期間及びオーバーランオフセット値を更新した後に、コントローラ16は、進み期間TADVをホール期間THALLから減算することによって整流期間TCOMを計算する。コントローラ16は、次に、整流期間TCOMをタイマに読み込む。整流期間を決定した後に、コントローラ16は、オーバーラン正弦値TOVRSINEを選択するために、ゼロ交差タイマtにより格納された時間を使用してオーバーラン正弦ルックアップテーブルに索引を付ける。コントローラ16は、次に、オーバーランオフセット値TOVROFFSET及びオーバーラン正弦値TOVRSINEを合計してオーバーラン期間TOVRを取得する。整流及びオーバーラン期間を決定した後に、コントローラ16は、DCSMOOTH信号及びTEMP信号をサンプリングするのに使用される3つの段階の1つを実行する。所定の個数のサンプルが回収された場合、コントローラ16は、モータシステム1内のAC電源4のRMS電圧又は温度の尺度又は測定値を得るためにサンプルの平均を決定する。RMS電圧がVMINよりも小さいか、又はVMAXを超える場合、又は温度がTEMPMINよりも小さいか、又はTEMPMAXを超える場合に、コントローラ16は、記憶装置18に対応するエラーを書き込んで故障モードに入る。コントローラ16は、次に、タイマが整流期間TCOMにわたって計数した後、相巻線7を整流するすなわち、DIR1及びDIR2を逆転することにより、及びFREEWHEELを設定することにより。従って、コントローラ16は、HALL信号の次のエッジより進み期間TADVだけ先行して相巻線7を整流する。整流の後、過電流イベントが起こるまで、コントローラ16は相巻線7を励起する。過電流イベントに応答して、コントローラ16は、オーバーラン期間TOVRにわたって相巻線7を励起し続ける。オーバーラン期間が経過した後、コントローラ16は、相巻線7をフリーホイールさせるすなわち、FREEHWEELをクリアすることにより。フリーホイールは、次に、コントローラ16が次に相巻線7を整流するような時間まで無期限に続く。コントローラ16は、従って、HALL信号の各エッジの前に相巻線7を整流し、HALL信号の各エッジに応答してオーバーラン期間を更新し、ZCROSS信号の各エッジに応答して進み期間及びオーバーランオフセット値を更新する。運転モードで作動する時、回転子5により相巻線7内で誘導される逆起電力のマグニチュードは、十分なマグニチュードなので、相巻線7内の電流は、過電流イベントがない場合でさえ過大レベルに到達する可能性はない。従って、タイムアウト期間は、運転モードで作動する時にコントローラ16により使用されはしない。それによって、次に、コントローラ16によって実行される命令の個数が低減する。コントローラ16は、SPEEDMIN及びSPEEDMAXにより境界が示された作動速度範囲にわたってモータ2を駆動し、速度は、負荷の変化に応答して変化する。この速度範囲で、コントローラ16は、確実に一定の平均電力がSPEEDCPMINとSPEEDCPMAXの間に達成されるようにする制御値を選択する。その結果、一定の平均電力が異なるローディングのために達成される。また、コントローラ16は、VMIN及びVMAXにより境界が示された電圧範囲にわたってモータ2を駆動する。この速度範囲で、コントローラ16は、確実に一定の平均電力がVDCPMINとVCPMAXの間に達成されるようにする制御値を選択する。その結果、同じ電力及び性能は、AC電源4の電圧の変動に関わらず達成される。故障モードコントローラ16は、モータシステム1の損傷を防止又は制限するためにエラーに応答して故障モードに入る。コントローラ16は、従って、故障モードに入るとDIR1及びDIR2をクリアすることによってモータ2を無効にする。コントローラ16では、モータシステム1を再利用することができる前に、モータシステム1に至る電源を切断することが必要である場合がある。代替的に、コントローラ16は、モータシステム1の更に別の使用を妨げる恐れがあり、これは、起こった故障の種類に依存する場合がある。恩典AC電源により駆動される従来の永久磁石モータに対して、相巻線内の誘導される逆起電力により、AC電源から引き出される電流の量を正確に制御することが困難になる。従って、AC電源から引き出される電流の波形は、一般的に高い高調波コンテンツを有し、従って、力率不良になる。この問題に対処するために、従来の永久磁石モータは、一般的に能動力率補正PFC回路を含む。能動PFC回路は、AC電源から引き出される電流が実質的に正弦波であることを保証しながら相巻線を励起する際に使用される規則的なDC電圧を出力する。従って、比較的高い力率をもたらすことができる。しかし、能動PFC回路の介在により、モータシステムの経費が増大する。更に、PFC回路には、PFC回路によりサンプリングされるDCリンク電圧が安定であるために高いキャパシタンスDCリンクコンデンサが必要である。安定したDCリンク電圧がなければ、PFC回路は、誤った電流要求レベルを推定し、電流高調波不良になる。しかし、高キャパシタンスDCリンクコンデンサは、物理的に大きくかつ高価である。本発明のモータシステム1に対して、コントローラ16は、DCリンク電圧に正比例である過電流閾値及びAC電源4の各半サイクルにわたって変わるオーバーラン期間を使用する。最終結果として、コントローラ16は、AC電源4の各半サイクルにまたがって変わる導通期間にわたって、モータ2の各電気半サイクル中に相巻線7を励起する。特に、導通期間の長さは、AC電源4の各半サイクルにまたがって半シヌソイドとして実質的に変化する。従って、AC電源4から引き出される電流の波形は、シヌソイドの波形に近づく。比較的高い力率及び低い高調波コンテンツは、従って、PFC回路又は高いキャパシタンスリンクコンデンサを必要とせずに達成される。図13は、本発明のモータシステム1で達成可能である電流波形を示している。電流波形は、比較の目的のために完全なシヌソイドで重畳されている。AC電源4の各半サイクルにわたって変わる導通期間を使用することにより、電流波形をもたらすことができ、その間、低次高調波の振幅は、比較的小さい。図13の電流波形で見ることができる高周波リップルは、インバータスイッチングから生じる。1の力率は、高調波コンテンツを持たない電流波形に対して達成される。高調波コンテンツが増加すると、力率は減少する。本発明のモータシステム1は、従って、比較的高い力率をもたらすことができる。実際、本発明のモータシステム1で、少なくとも0.95の力率が達成可能である。従って、モータシステム1は特定のピーク電流に対して比較的高い平均入力電力をもたらすことができる。これとは対照的に、比較的大きな低次高調波を有するモータシステムには、力率不良が発生する。従って、低平均入力電力化が、同じピーク電流に対して達成される。これを修復するために、ピーク電流のレベルを増大させることができる。しかし、ピーク電流が増加すると、システムの効率は、電力損失増大のために減少する。更に、過大なピーク電流は、インバータのスイッチを損傷し、及び/又は回転子を消磁する場合がある。多くの国には、幹線電源から引き出することができる電流高調波のマグニチュードに厳しい限界を課す規制、例えば、IEC61000-3-2がある。進み期間、オーバーランオフセット、及びオーバーラン振幅に対して適切な値を使用することにより、モータシステム1は、モータシステム1の全作動速度及び電圧範囲にわたって高調波規格に適合することができる。実際、図13の電流波形は、完全に正弦波ではないが、IEC6IOOO-3-2に定められた高調波規格に適合するものである。従来のモータシステムと対照的に、本発明のモータシステム1は、能動PFC回路又は高キャパシタンスリンクコンデンサを必要とせずに比較的小さい低次高調波を有する電流波形をもたらす。制御システム3のリンクコンデンサC1は、インバータスイッチングから生じる比較的高周波のリップルを平滑化するためだけに使用される。リンクコンデンサC1は、基本周波数でDCリンク電圧を平滑化するのに必要とされるのではない。従って、結果的に基本周波数、すなわち、Yr=Vmax-Vmin/Vmax≧0.5で、50又はそれよりも大きいDCリンク電圧のリップルが発生するリンクコンデンサを使用することができる。コントローラ16は、それにも関わらず、このレベルのリップルででさえも、低次高調波が比較的小さく保つことを保証し、従って、比較的高い平均入力電力で良好な力率をもたらすことができる。実際、図13の電流波形は、100の電圧リップルで達成される。リンクコンデンサC1は高周波スイッチングリップルをフィルタリングするためだけに必要とされるので、比較的低いキャパシタンスリンクコンデンサを使用することができ、従って、モータシステム1の経費及びサイズが大幅に低減される。モータシステム1で達成可能である比較的高い力率のために、DCリンク電圧内のリップルにも関わらず比較的高い平均入力電力をもたらすことができる。達成可能な平均入力電力は、当然ながら、AC電源4のRMS電圧に依存する。しかし、100VのRMS電圧に対して、1000Wを超える一定の平均入力電力は、DCリンク電圧内のリップルに関わらず達成可能である。その結果、幹線電源と共に使用される時、モータシステム1は、少なくとも1000Wの一定の平均入力電力をもたらすことができる。進み期間TADV、オーバーランオフセットTOVROFFSET、及びオーバーラン振幅TOVRAMPに対して適切な値を選択することにより、望ましい平均入力又は出力電力をモータシステム1に対して達成することができる。更に、各作動点すなわち、速度及び電圧でのモータシステム1の効率が望ましい入力又は出力電力が得られるように最適化されるように、適切な値を選択することができる。すなわち、TADV、TOVROFFSET、及びTOVRAMPの様々な組の値により、同じ望ましい平均入力又は出力電力を得ることができる。しかし、これらの様々な組の値から、最も良好な効率をもたらす単一の組を選択することができる。進み期間、オーバーランオフセット、及びオーバーラン振幅の1つ又はそれよりも多くは、平均入力又は出力電力の特定のプロフィールが速度範囲及び/又は電圧範囲にわたって達成されるようにAC電源4の回転子速度及び/又はRMS電圧の変化に応答して調節することができる。特に、回転子速度及び/又はRMS電圧の変化に応答して少なくとも進み期間及びオーバーランオフセットを調節することにより、同じ平均入力又は出力電力をもたらすことができる。単一のモータシステムに対して、平均電力入力又は出力の変動が、少なくとも10krpmに及ぶ速度範囲、及び/又は少なくとも10Vに及ぶ電圧範囲にわたって、±1を超えないように、適切な値を選択することができる。しかし、同じ値が複数の大量生産されたモータシステムに使用される場合、各モータシステムの平均電力の変動は、構成要素及び製造公差のために増加する。それにも関わらず、平均電力の変動が上述の速度及び電圧範囲にわたって大量生産されたモータシステムに対して±5を超えないように、適切な値を選択することができる。一定の平均電力すなわち、±5以内を比較的高い速度で達成することができる。特に、一定の平均電力は、60kpmを超える最小値及び80krpmを超える最大値を有する速度範囲にわたって達成することができる。実際、一定の平均電力は、100krpmを超える速度で達成することができる。速度及び/又は電圧範囲にわたって一定の平均電力をもたらすことに加えて、少なくとも80の効率が速度及び/又は電圧範囲にわたって維持されるように適切な値を選択することができる。本発明は、従って、能動PFC回路又は高いキャパシタンスリンクコンデンサを必要とせずに既存の高調波規格に適合することができる強力なモータシステム1を提供する。更に、モータシステム1は、回転子速度及びRMS電圧の範囲にわたって比較的高い効率すなわち、少なくとも80、並びに一定の平均電力すなわち、±5以内をもたらすことができる。イベント衝突コントローラ16は、異なるイベントに応答して異なるソフトウエアルーチンを実行する。例えば、コントローラ16は、HALL信号のエッジに応答して特定のルーチンを実行する。コントローラ16は、過電流イベントなどに応答して異なるルーチンを実行する。比較的簡単なマイクロコントローラは、一般的にシングルスレッド型プロセッサを含む。その結果、プロセッサが特定のイベントに応答してルーチンを実行する時、プロセッサは、ルーチンを実行し終えた時のような時間まで他のイベントに応答することができない。従って、2つのイベントが衝突する時、イベントルーチンの一方の実行は遅れる。比較的低い回転子速度で作動する時、特定のルーチンの実行に対するあらゆる遅延は、全体的なホール期間との比較において比較的小さい。その結果、遅延は、モータシステム1の性能に悪影響を与える可能性はない。更に、SPEEDSINGLEよりも小さい速度で費やされる時間は比較的短いと予想され、従って、イベント衝突がモータシステム1の性能に及ぼす場合がある影響は、これらの速度では極めて重要であるとは見なされていない。しかし、SPEEDSINGLEでの又はそれを超える速度になると、ルーチンの実行におけるあらゆる遅延は、モータシステム1の性能に悪影響を与える場合がある。特に、遅延は、入力電力、出力電力、効率、及び電流高調波の1つ又はそれよりも多くに影響を与える場合がある。例えば、シングルスイッチモードで作動する時、コントローラ16は、HALL信号の各エッジに応答して整流期間TCOM及びオーバーラン期間TOVRを計算する。この時間中に過電流イベントが発生した場合、過電流ルーチンは、コントローラ16がホールルーチンを実行し終えた時のような時間まで実行されない。従って、理想的に所望されるよりも多くの電流が、相巻線7に駆動される。代替的に、コントローラ16が過電流ルーチンを実行している間にHALL信号のエッジが発生した場合、ホールルーチンの実行は遅れる。ホールルーチンが相巻線7が整流される時間を計算するのに使用されるので、ホールルーチンの実行におけるあらゆる遅延は、進み期間を低減する効果を有する。これらの例の各々においては、小さい過電流閾値のために、衝突が、AC電源4の電圧のゼロ交差周辺で起こる可能性がある。その結果、相巻線7に駆動される電流の量が十分に制御されないという事実にも関わらず、電力及び効率に対する正味影響は、重大である可能性は低い。しかし、電流高調波に対する正味の影響は、重大である可能性がある。イベント衝突の危険を最小にするために様々な手段を取ることができる。特に、衝突の危険は、各ルーチンを実行するのに必要とされる時間が比較的短く保たれるように各ルーチンの命令を簡素化することによって低減することができる。こういう理由から、コントローラ16は、期間の形態で制御値を格納するルックアップテーブルを使用する。期間を格納するルックアップテーブルを使用することにより、コントローラ16により行われる数学的な計算は、比較的簡単に保つことができる。特に、数学的な計算は、簡単な足し算例えば、オーバーラン期間を計算する時及び引き算例えば、整流期間を計算する時に限定することができる。それにも関わらず、これらの手段にも関わらず、イベント衝突は、比較的高い速度になると比較的簡単なプロセッサで起こる場合がある。イベント衝突は、より高速の又はマルチコアプロセッサを有することによって解決することができる。しかし、両方の選択肢によりコントローラ16の経費が増大する。従って、シングルスイッチモードでモータ2を駆動する2つの代替方式をここで説明する。両方の方式は、モータ2の各電気半サイクル中に発生するイベントの個数を低減し、従って、イベント衝突の可能性を低減する。2つの代替方式を説明する前に、上述の方式に対してモータ2の各電気半サイクル中に発生するイベントの考察を先に行う。明瞭さを期すために、シングルスイッチモードに対して上述の制御方式は、以下過電流シングルスイッチモードというものとする。シングルスイッチモードの2つの代替制御方式は、無制限フリーホイールシングルスイッチモード及び制限フリーホイールシングルスイッチモードと呼ぶこととする。過電流シングルスイッチモードイベント処理の一般的な方法は、割り込みを使用するものである。割り込みに応答して、コントローラ16は、メインコードの実行を中断し、割り込みサービスルーチンISRを実行することによって割り込みに供される。過電流シングルスイッチモードで作動する時、コントローラ16は以下の4つの割り込み、すなわち、ホール、過電流、フリーホイール、整流を使用する。図14は、HALL信号、制御信号、及び相電流の波形、並びに過電流シングルスイッチモードで作動する時にコントローラ16により使用される割り込みを示している。ホール割り込みは、HALL信号のエッジに応答して生成される。ホール割り込みに供される際に、第1のコントローラ16は、ZCROSS信号のエッジに応答して設定されているゼロ交差フラグをポーリングする。ゼロ交差フラグが設定されている場合、コントローラ16は進み期間及びオーバーランオフセット値を更新してゼロ交差フラグをクリアする。ZCROSS信号は、従って、割り込みを生成するのではなくフラグを設定するのに使用される。これは、次に、割り込みの総数、従って、割り込み衝突の可能性を最小にするものである。ゼロ交差フラグをポーリングした後に、コントローラ16は、整流期間TCOM及びオーバーラン期間TOVRを計算する。コントローラ16は、次に、整流期間を第1のタイマ、タイマ1に取り込む。最後に、コントローラ16は、DCSMOOTH信号及びTEMP信号をサンプリングするのに使用される3つの段階の1つを実行する。過電流割り込みは、電流レギュレータ22により出力された論理的に低い過電流信号に応答して生成される。過電流割り込みに供される際に、コントローラ16は、オーバーラン期間TOVRを第2のタイマ、タイマ2に取り込む。フリーホイール割り込みは、オーバーラン期間が経過した時に第2のタイマによって発生される。フリーホイール割り込みに供される際に、コントローラ16は、相巻線7をフリーホイールさせる。整流割り込みは、整流期間が経過した時に第1のタイマによって発生される。整流割り込みに供される際に、コントローラ16は、相巻線7を整流する。過電流ISRがオーバーラン期間を第2のタイマに取り込むことを担うものであるので、過電流割り込み及びフリーホイール割り込みが衝突することは不可能である。更にその上、確実に進み期間が整流ISRを実行するのに必要とされる時間より長いようにすることにより、ホール割り込み及び整流割り込みの衝突は、回避することができる。それにも関わらず、4つの可能な割り込み、すなわち、ホール及び過電流、ホール及びフリーホイール、整流及び過電流、及び整流及びフリーホイールの衝突は、まだ可能性がある。無制限フリーホイールシングルスイッチモード無制限フリーホイールシングルスイッチモードで作動する時、過電流割り込みは無効にされ、すなわち、コントローラ16は、電流レギュレータ22により出力された過電流信号を無視する。HALL信号のエッジに応答して、コントローラ16は整流期間TCOMに加えて導通期間TCDを計算する。HALL信号のエッジの後、コントローラ16は時間TCOMで相巻線7を整流する。整流後、コントローラ16は、導通期間TCDにわたって相巻線7を励起し、次に、コントローラ16は、相巻線7をフリーホイールさせる。導通期間は、過電流シングルスイッチモードに使用されたオーバーラン期間に似ている。特に、導通期間は、オフセット値及び正弦値を含む。しかし、オーバーラン期間とは異なり、導通期間の波形は、AC電源4の電圧周期に対する位相シフトを含む。過電流シングルスイッチモードでは、コントローラ16は、最初に、相巻線7内の電流が過電流閾値に到達するまで相巻線7を励起する。次に、コントローラ16は、オーバーラン期間TOVRにわたって相巻線7を励起する。相巻線7が励起される総導通期間は、従って、初期励起期間及びオーバーラン期間の合計である。相巻線7内の電流は、分流抵抗器R1,R2の各々にわたって電圧をモニタすることによって感知される。より具体的には、各分流抵抗器R1,R2にわたる電圧は、電流感知信号ISENSE1及びISENSE2としてコントローラ16に出力される。図2に示すように、各電流感知信号は、高周波ノイズを除去するように働くRCフィルタR8、C3及びR9、C4によりフィルタリングされる。RCフィルタの時定数は、相巻線7内の測定された電流と実際の電流の間の時間遅延を導入する。最終結果として、導通期間の波形は、AC電源4のサイクルに対して位相シフトされる。この位相シフトは、低次電流高調波のマグニチュードを低減しやすくする。無制限フリーホイールシングルスイッチモードでは、過電流割り込みは無効にされる。RCフィルタR8、C3及びR9、C4は、従って、導通期間の波形に影響を及ぼさない。従って、過電流シングルスイッチモードに存在する位相シフトを再現するために、導通期間の波形は、AC電源4のサイクルに対する位相シフトを含む。導通期間TCDは、従って、方程式によって定められる。TCD=TCDOFFSETTCDAMPabs{sinθACDPHASE}ここで、TCDOFFSETはオフセット値であり、TCDAMPabs{sinθACDPHASE}は、TCDAMPによって定められた振幅を有する整流正弦波である。θはAC電源4の電圧サイクル内の角度であり、ACDPHASEは位相角である。角度θ及び導通位相角度ACDPHASEは、時間間隔として表すことができる。θdeg=tsecfHz360degACDPHASEdeg=TCDPHASEsecfHz360degその結果、導通期間は、以下のように定めることができる。TCD=TCDOFFSETTCDAMPabs{sin{tTCDPHASEf360deg}より簡単には、導通期間TCDは、以下と考えることができる。TCD=TCDOFFSETTCDSINEここで、TCDOFFSETは、時間とは独立している導通オフセット値であり、TCDSINEは、時間に依存する導通正弦値である。TCDSINEは、複数の時間の各々に対して導通正弦値TCDSINEを含む導通正弦ルックアップテーブルとしてコントローラ16により格納される。過電流シングルスイッチモードでは、コントローラ16は、一定の平均電力を維持するように、AC電源4の回転子速度及び電圧の変化に応答して進み期間及びオーバーランオフセット値を調節する。同様に、無制限フリーホイールシングルスイッチモードでは、コントローラ16は、一定の平均電力を維持するために、進み期間TADV及び回転子速度及び電圧の変化に応答して導通オフセット値TCDOFFSETを調節する。コントローラ16は、従って、進みルックアップテーブル及び導通オフセットルックアップテーブルを格納し、ルックアップテーブルの各々は、回転子速度及び電圧により索引が付される。TADV=TADVTABLE[速度、電圧]TCDOFFSET=TCDOFFSETTABLE[速度、電圧]過電流シングルスイッチモードでは、コントローラ16は、最初に、相巻線7内の電流が過電流閾値に到達するまで相巻線7を励起する。過電流閾値は、DCリンク電圧に比例しており、従って、この初期励起期間の長さは、AC電源4の電圧の変化に影響を受けやすい。初期励起期間の長さも、回転子5により相巻線7によって誘導された逆起電力のマグニチュードの変化に影響を受けやすい。その結果、初期励起期間は、回転子速度及びAC電源4の電圧の変化に影響を受けやすい。電流感知信号の各々で作動するRCフィルタのために、この初期励起期間は、導通期間の波形の位相遅延を導入し、これは、低次電流高調波のマグニチュードを低減しやすくするものである。無制限フリーホイールシングルスイッチモードでは、位相遅延は、AC電源4の電圧波形に対して導通期間の波形を位相シフトすることによって再現される。位相遅延がAC電源4の回転子速度及び電圧の変化に影響を受けやすいので、コントローラ16は、回転子速度及び電圧の変化に応答して導通期間波形の位相を調節する。複数の回転子速度の各々及び複数の電圧に対して、コントローラ16は、従って、位相シフト値TCDPHASESHIFTを格納する導通位相シフトルックアップテーブルを含む。その結果、導通期間は、従って、以下のように定めることができる。TCD=TCDOFFSETTABLE[速度、電圧]TCDSINETABLE[tTCDPHASESHIFT[速度、電圧]]進み期間TADV、導通オフセット値TCDOFFSET、及び導通位相シフト値TCDPHASESHIFTの各々は、ZCROSS信号のエッジに応答して更新される。値は、従って、AC電源4の電圧がゼロと交差する時に限り更新され、かつAC電源4の各半サイクルにわたって一定である。HALL信号のエッジに応答して、コントローラ16は、ZCROSS信号の最終エッジ以来経過した時間tの期間を決定又は測定する。コントローラ16は、次に、導通正弦値TCDSINEを選択するために、経過時間t及び導通位相シフト値TCDPHASESHIFTの合計を使用して導通正弦ルックアップテーブルに索引を付ける。コントローラ16は、次に、導通オフセット値TCDOFFSET及び導通正弦値TCDSINEを合計して導通期間TCDを取得する。コントローラ16は、無制限フリーホイールシングルスイッチモードで作動する時に3つの割り込み、すなわち、ホール、フリーホイール、及び整流を使用する。図15は、HALL信号、制御信号、及び相電流の波形、並びに無制限フリーホイールシングルスイッチモードで作動する時コントローラ16により使用される割り込みを示している。ホール割り込みは、HALL信号のエッジに応答して生成される。ホール割り込みに供される際に、コントローラ16は、ZCROSS信号のエッジに応答して設定されているゼロ交差フラグをポーリングする。ゼロ交差フラグが設定されている場合、コントローラ16は、進み期間、導通オフセット値、及び導通位相シフト値を更新してゼロ交差フラグをクリアする。ゼロ交差フラグをポーリングした後に、コントローラ16は、整流期間TCOM及び導通期間TCDを計算する。コントローラ16は、次に、整流期間を第1のタイマ、タイマ1に取り込む。最後に、コントローラ16は、DCSMOOTH信号及びTEMP信号をサンプリングするのに使用される3つの段階の1つを実行する。整流割り込みは、整流期間が経過した時に第1のタイマによって発生される。整流割り込みに供される際に、コントローラ16は、相巻線7を整流して導通期間を第2のタイマ、タイマ2に取り込む。フリーホイール割り込みは、オーバーラン期間が経過した時に第2のタイマによって発生される。フリーホイール割り込みに供される際に、コントローラ16は、相巻線7をフリーホイールさせる。過電流シングルスイッチモードと比較すると、コントローラ16は、1つのより少ない割り込みを使用する。更に、整流ISRが導通期間を第2のタイマに取り込むことを担うものであるので、整流割り込み及びフリーホイール割り込みが衝突することは不可能である。その結果、割り込み衝突の危険は、大幅に低減される。進み期間が、整流割り込みTCOMISRに供されるのに必要とされる時間よりも大きく、かつホール期間からホール割り込みTHALLISRに供されるのに必要とされる時間を引いた時間よりも小さくなるように保証することにより、ホール割り込み及び整流割り込みの衝突を回避することができ、すなわち、以下の通りである。TCOMISR<TADV<THALL-THALLISRそれにも関わらず、フリーホイール割り込みがホール割り込みと衝突することはまだ可能である。しかし、ここで説明するように、コントローラ16は、割り込みを生成する必要性なしで導通期間の終了時にフリーホイールが開始されるように構成することができる。出力比較モードで作動させることができるタイマを有するマイクロコントローラは公知である。出力比較モードでは、比較器は、出力比較レジスタとタイマのカウンタレジスタを比較する。2つのレジスタの値が対応する時、比較器は、割り込みを生成するか、又はマイクロコントローラの出力ピンを設定/クリア/切り換える。比較器により着手される特定のアクションは、一般的にレジスタビットによって設定される。一実施形態では、出力比較モードは、割り込みを生成することなくFREEWHEEL信号をクリアするためにコントローラ16により利用される。図16に示すように、コントローラ16の周辺機器19は、2つのタイマ30、31と比較器モジュール32とを含む。記憶装置18は、タイマ30、31の各々に関するタイマレジスタ33、34と比較レジスタ35とを含む。第1のタイマ30は、整流期間TCOMを計時するのに使用され、第2のタイマ31は、導通期間TCDを計時するのに使用される。第2のタイマ31は、出力比較モードで作動するように構成される。その結果、第1のタイマ30によって生成された整流割り込みに供される時、コントローラ16は、相巻線7を整流し、導通期間を比較レジスタ35に取り込み、かつ第2のタイマ31をリセットする。比較器モジュール32は、次に、第2のタイマレジスタ34及び比較レジスタ35を比較する。2つの比較レジスタ34,35が一致する時導通期間が経過した時に発生する、比較器モジュール32は、SRラッチ36をリセットし、SRラッチ36は、コントローラ16の出力ピン21をクリアする。この出力ピン21は、次に、FREEWHEEL信号に対してコントローラ16によって使用される。従って、導通期間が経過した時、FREEWHEELは、割り込みが生成されることなくクリアされる。出力ピンがラッチ状態にされるので、FREEWHEELは、整流割り込みに供される時にコントローラ16がラッチ36をセットするような時間までクリアし続けられる。コントローラ16は、従って、2つの割り込み、すなわち、ホール及び整流のみを使用して無制限フリーホイールシングルスイッチモードで作動させることができる。しかし、上述のように、ホール割り込み及び整流割り込みの衝突は、確実に進み期間が特定の限界内に保たれるようにすることによって回避することができる。その結果、割り込み衝突は、全体的に回避することができる。コントローラ16に使用されるマイクロコントローラの形式によっては、出力比較モードを使用して導通期間を計時し、FREEWHEELに使用される出力ピンをクリアすることが不可能である場合がある。例えば、マイクロコントローラは、出力比較モードで作動させることができるいずれのタイマも持たない場合がある。代替的に、マイクロコントローラは、8ビットタイマ及び16ビットタイマを有することができ、16ビットタイマのみが、出力比較モードで作動させることができる。しかし、整流期間が一般的に導通期間より長いので、整流期間にわたって16ビットタイマを使用することが必要であると考えられる。出力比較モードがFREEWHEELをクリアすることに利用できない場合には、PWMモジュールを代替的にここで説明するように、割り込みに頼ることなくFREEWHEELをクリアするのに使用することができる。図17は、コントローラ16の周辺機器19が2つのタイマ30、31とPWMモジュール37とを含む代替的な実施形態を示している。記憶装置18は、タイマ30、31の各々に関するタイマレジスタ33、34と、デューティサイクルレジスタ38と、期間レジスタ39とを含む。第1のタイマ30は、ここでもまた、整流期間TCOMを計時するのに使用される。しかし、第2のタイマ31は、PWMモジュール37のためのクロック信号として使用される。PWMモジュール37は、1対の比較器40,41とSRラッチ42とを含む。第1の比較器40は、第2のタイマレジスタ34及びデューティサイクルレジスタ38を比較する。2つのレジスタ34,38の値が一致する時、第1の比較器40は、SRラッチ42をリセットし、それによってコントローラ16の出力ピン21がクリアされる。第2の比較器41は、第2のタイマレジスタ34及び期間レジスタ39を比較する。これらの2つのレジスタ34,39の値が一致する時、2つのことが起こる。第1に、第2の比較器41は、SRラッチ42を設定し、それによって出力ピン21がセットされる。第2に、第2のタイマ31がリセットされる。コントローラ16の出力ピン21は、従って、第2のタイマレジスタ34及びデューティサイクルレジスタ38が一致する時にクリアされ、第2のタイマレジスタ34及び期間レジスタ39が一致する時にセットされる。PWMモジュール37により切り換えられる出力ピン21は、FREEHWEEL信号に対してコントローラ16によって使用される。整流割り込みに供される時、コントローラ16は、相巻線7を整流し、導通期間をデューティサイクルレジスタ38に取り込んで、期間レジスタ39の値と同じ値を第2のタイマレジスタ34に取り込む。これに応答して、PWMモジュール37は、FREEWHEELをセットし、第2のタイマレジスタ34がリセットされる。第2のタイマ31は、次に、第2のタイマレジスタ34及びデューティサイクルレジスタ38が一致するような時間まで第2のタイマレジスタ34を増加又はインクリメントさせる。2つ比較レジスタ34,38が一致する時導通期間が経過した時に発生する、PWMモジュール37は、FREEWHEELをクリアする。相巻線7は、従って、割り込みを必要とせずにフリーホイールされる。期間レジスタ39の設定が低すぎる場合、第2のタイマレジスタ34及び期間レジスタ39は、フリーホイール期間中に一致する。それによって、次に、FREEWHEEL信号が早期にセットされる。従って、フリーホイールが整流の前に終了されないように、期間レジスタ39は、最大可能値を格納する例えば、8ビット期間レジスタは、0xFFを格納する。上述の実施形態の各々においては、比較器は、比較レジスタ内に格納された値と第2のタイマレジスタの値を比較する。第2のタイマレジスタ及び比較レジスタが一致する時、比較器は、FREEWHEELに使用された出力ピンをクリアする。第1の実施形態では、比較器は比較器モジュール32の一部を成し、一方、第2の実施形態では、比較器はPWMモジュール37の一部を成す。しかし、コントローラ16のいずれの比較器も、比較器がタイマレジスタ及び比較レジスタの比較に応答してコントローラ16の出力ピンを制御する直接に又は関連のハードウエアを通じてことができる限り、使用することができる。制限フリーホイールシングルスイッチモード無制限フリーホイールシングルスイッチモードの場合と同様に、過電流割り込みは、制限フリーホイールシングルスイッチモードで作動する時に無効にされる。HALL信号のエッジに応答して、コントローラ16は、整流期間TCOMに加えて、ドライブオフ期間TDOFFを計算する。コントローラ16は、次に、ドライブオフ期間TDOFFにわたって相巻線7を励起し続け、次に、コントローラ16は、相巻線7をフリーホイールさせる。フリーホイールは、次に、コントローラ16が相巻線7を整流するまで続く。ドライブオフ期間は、無制限フリーホイールシングルスイッチモードに使用された導通期間に似ている。特に、ドライブオフ期間TDOFFは、方程式によって定められる。TDOFF=TDOFFOFFSETTDOFFAMPabs{sinθADOFFPHASE}ここで、TDOFFOFFSETは、オフセット値であり、TDOFFAMPabs{sinθADOFFPHASE}は、TDOFFAMPによって定められた振幅を有する整流正弦波である。θは、AC電源4の電圧サイクル内の角度であり、ADOFFPHASEは位相角である。角度θ及びドライブオフ位相角度ADOFFPHASEは、時間間隔として表すことができる。θdeg=tsecfHz360degADOFFPHASEdeg=TDOFFPHASEsecfHz360degその結果、ドライブオフ期間は、以下のように定めることができる。TDOFF=TDOFFOFFSETTDOFFAMPabs{sintTOVRPHASEf360deg}より簡単には、ドライブオフ期間TDOFFは、以下と見なすことができる。TDOFF=TDOFFOFFSETTDOFFSINEここで、TDOFFOFFSETは、時間とは独立したドライブオフオフセット値であり、TDOFFSINEは、時間に依存するドライブオフ正弦値である。ドライブオフ期間TDOFFは、導通期間TCDに対して上述したものと同様にコントローラ16により格納及び更新される。特に、コントローラ16は、時間により索引が付されるドライブオフ正弦ルックアップテーブル、及び回転子速度及びAC電源4の電圧により各々が索引が付されたドライブオフオフセットルックアップテーブルとドライブオフ位相シフトルックアップテーブルを格納する。その結果、ドライブオフ期間は、以下のように定めることができる。TDOFF=TDOFFOFFSETTABLE[速度、電圧]TDOFFSINETABLE[tTDOFFPHASESHIFT[速度、電圧]]コントローラ16は、制限フリーホイールシングルスイッチモードで作動する時に3つの割り込み、すなわち、ホール、フリーホイール、及び整流を使用する。図18は、HALL信号、制御信号、及び相電流の波形、並びに制限フリーホイールシングルスイッチモードで作動する時コントローラ16により使用される割り込みを示している。ホール割り込みは、HALL信号のエッジに応答して生成される。ホール割り込みに供される際に、コントローラ16は、ZCROSS信号のエッジに応答して設定されているゼロ交差フラグをポーリングする。ゼロ交差フラグが設定されている場合、コントローラ16は、進み期間、ドライブオフオフセット値及びドライブオフ位相シフト値を更新してゼロ交差フラグをクリアする。ゼロ交差フラグをポーリングした後に、コントローラ16は、整流期間TCOM及びドライブオフ期間TDOFFを計算する。コントローラ16は、次に、整流期間を第1のタイマ、タイマ1に、ドライブオフ期間を第2のタイマ、タイマ2に取り込む。最後に、コントローラ16は、DCSMOOTH信号及びTEMP信号をサンプリングするのに使用される3つの段階の1つを実行する。フリーホイール割り込みは、ドライブオフ期間が経過した時に第2のタイマによって発生される。フリーホイール割り込みに供される際に、コントローラ16は、相巻線7をフリーホイールさせる。整流割り込みは、整流期間が経過した時に第1のタイマによって発生される。整流割り込みに供される際に、コントローラ16は、相巻線7を整流する。その結果、無制限フリーホイールシングルスイッチモードの場合と同様に、コントローラ16は、3つの割り込みのみを使用する。これは、過電流シングルスイッチモードに使用される4つの割り込みと対照的である。更に、確実に進み期間が整流割り込みに供される所要の時間を超えるようにすることによって、ホール割り込み及び整流割り込みの衝突を回避することができる。無制限フリーホイールシングルスイッチモードに関して上述したように、コントローラ16は、割り込みを生成する必要なしにドライブオフ期間の終了時にフリーホイールが開始されるように構成することができる。例えば、第2のタイマは、ドライブオフ期間が経過した時にFREEWHEELに使用された出力ピンがクリアされるように、出力比較モードで作動するように構成することができる。代替的に、コントローラ16は、FREEWHEELのために出力ピンを切り換えるのに使用されるPWMモジュールを含むことができる。例えば、ホール割り込みに供される時、コントローラ16は、整流期間を第1のタイマに取り込み、ドライブオフ期間をデューティサイクルレジスタに取り込み、かつ第2のタイマをリセットすることができる。その後整流割り込みに供される時、コントローラ16は、次に、相巻線7を整流して、期間レジスタの値を第2のタイマのカウンタレジスタに取り込む。コントローラ16は、従って、2つの割り込み、すなわち、ホール及び整流のみを使用して制限フリーホイールシングルスイッチモードで作動するように構成することができる。しかし、上述のように、これらの2つの割り込みの衝突は、確実に進み期間が整流割り込みに供されるのに必要とされる時間を超えるようにすることによって回避することができる。従って、割り込み衝突は、全体的に回避することができる。制限フリーホイールシングルスイッチモードでは、ドライブオフ期間は、HALL信号のエッジに対して参照される。従って、相巻線7のフリーホイールは、HALL信号のエッジの後まで開始することができない。無制限フリーホイールシングルスイッチモードでは、導通期間は、整流に対して参照される。整流がHALL信号のエッジの前に行われるので、相巻線7のフリーホイールは、HALL信号のエッジの前に、HALL信号のエッジ上で、又はHALL信号のエッジ後に開始することができる。こういう理由から、2つの方式は、制限フリーホイール及び無制限フリーホイールと呼ばれる。過電流シングルスイッチモードと比較すると、無制限フリーホイール及び制限フリーホイールのシングルスイッチモードは、使用する割り込み数が少なくなっており、従って、割り込み衝突の危険が低減される。実際、コントローラ16は、割り込み衝突が全体的に回避されるように構成することができる。しかし、割り込み衝突の可能性にも関わらず、過電流シングルスイッチモードは、モータシステム1内の許容値及び制限を自己補償するという利点を有する。例えば、コントローラ16は、AC供給電圧4のゼロ交差以来経過した時間をモニタするゼロ交差タイマを使用する。しかし、ゼロ交差タイマは、ホールルーチンの一部としてのみ開始される。従って、正弦ルックアップテーブルに索引を付けるために使用される時間の変動がある。更に別の例においては、HALL信号のデューティサイクルの均衡の許容値があるとすることができる。デューティサイクルの不均衡があれば、ホール期間にエラーがもたらされる。モータシステム1内の許容値及び制限により、従って、特定のイベント例えば、整流、フリーホイールなどのタイミングのエラーは小さいものになる。過電流シングルスイッチモードでは、コントローラ16は、最初に、相巻線7内の電流が過電流閾値に到達するまで相巻線7を励起する。この初期励起期間の長さは、コントローラ16により計時されるものではない。従って、初期励起期間は、特定のタイミングエラーを補償するように働く。その結果、過電流シングルスイッチモードで作動する時に、より安定した電流波形を達成することができる。モータシステム1内の許容値及び制限を自己補償することに加えて、初期励起期間は、低次電流高調波を減衰させるように働く位相遅延を導入する。制限及び無制限のフリーホイールシングルスイッチモードでは、この位相遅延は位相シフトルックアップテーブルを使用して再現され、それによって貴重なメモリリソースが消費される。より少ないメモリを有するより廉価なマイクロコントローラは、従って、過電流シングルスイッチモードで作動する時にコントローラ16に使用することができる。代替的に、そうでなければ位相シフトルックアップテーブルに使用されるメモリは、他のルックアップテーブル、例えば、進みルックアップテーブル、オーバーランオフセットルックアップテーブル、又はオーバーラン正弦ルックアップテーブルの分解能を改善するのに使用することができる。導通期間上述の3つの方式の各々においては、コントローラ16は、モータ2の各電気半サイクルにわたって導通期間TCDにわたって相巻線7を励起する。過電流シングルスイッチモードでは、その結果、導通期間TCDは、以下のように定めることができる。TCD=TOCTOVRここで、TOCは、相巻線7内の電流が過電流閾値に到達するために掛かる時間であり、TOVRは、オーバーラン期間である。その結果、導通期間TCDは、以下のように定めることができる。TCD=TOCTOVROFFSETTOVRSINE過電流閾値は、DCリンク電圧に正比例であり、従って、整流されたシヌソイドとして変化する。相巻線7内の電流は、DCリンク電圧のレベルに関わらず実質的に同じ速度で上がるが、この挙動の理由は、本明細書の範囲の域を超えるものである。その結果、相巻線7内の電流が過電流閾値TOCに到達するのに掛かる時間は、AC電源4の各半サイクルにわたって実質的に半シヌソイドとして変化する。しかし、電流感知信号の各々に作用するRCフィルタの時定数のために、TOC波形は、AC電源4の電圧波形に対して位相シフトされる。オーバーラン正弦値TOVRSINEは、AC電源4の各半サイクルにわたって半シヌソイドとして変化し、一方、オーバーランオフセットTOVROFFSETは一定である。更に、オーバーラン正弦値の波形は、AC電源4の電圧波形と同相である。オーバーランオフセットがAC電源4の各半サイクルにわたって一定であるので、導通期間の変動は、2つの半正弦成分TOC及びTOVRSINEの合計によって定められる。RCフィルタから生じる2つの成分の間の位相差は、比較的小さい。更に、TOCの振幅は、TOVRSINEを超える。その結果、位相差にも関わらず、2つの成分の合計は、AC電源4の電圧波形に対する位相シフトを有する整流シヌソイドに似ている。導通期間TCDの長さは、従って、周期的な波形として変化する。波形は、2つの成分、すなわち、波形の各サイクルにわたって一定である第1の成分TOVROFFSET及び波形の各サイクルにわたって変わる第2の成分TOCTOVRSlNEの合計として定めることができる。波形の各サイクルは、AC電源4の各半サイクルで繰り返す。導通期間の波形は、AC電源4の電圧波形に対して位相シフトされる。無制限フリーホイールシングルスイッチモードでは、導通期間TCDは、以下によって定められる。TCD=TCDOFFSETTCDSINE導通正弦値TCDSINEは、AC電源4の各半サイクルにわたって半シヌソイドとして変化し、一方、導通オフセット値TCDOFFSETは一定である。更に、導通期間の波形は、AC電源4の電圧波形に対して位相シフトされる。実際、位相シフトは、過電流シングルスイッチモードでRCフィルタから生じる位相シフトを再現することを意図している。その結果、過電流シングルスイッチモードの場合と同様に、導通期間の長さは、周期的な波形として変化する。波形は、ここでもまた、2つの成分、すなわち、波形の各サイクルにわたって一定である第1の成分TCDOFFSET及び波形の各サイクルにわたって変わる第2の成分TCDSINEの合計として定めることができる。波形の各サイクルは、AC電源4の各半サイクルで繰返し、波形は、AC電源4の電圧波形に対して位相シフトされる。制限フリーホイールシングルスイッチモードでは、導通期間TCDは、以下のように定めることができる。TCD=TADVTDOFFここで、TADVは進み期間であり、TDOFFはドライブオフ期間である。その結果、導通期間TCDは、以下のように定めることができる。TCD=TADVTDOFFOFFSETTDOFFSINE進み期間TADV及びドライブオフオフセットTDOFFOFFSETは、一定であり、一方、ドライブオフ正弦値TDOFFSINEは、AC電源4の各半サイクルにわたって半シヌソイドとして変化する。ここでもまた、過電流シングルスイッチモードでRCフィルタから生じる位相シフトを反映するために、ドライブオフ正弦値の波形は、AC電源4の電圧波形に対して位相シフトされる。その結果、他の2つのシングルスイッチモードの場合と同様に、導通期間の長さは、周期的な波形として変化する。波形は、2つの成分、すなわち、波形の各サイクルにわたって一定である第1の成分TADVADOFFOFFSET及び波形の各サイクルにわたって変わる第2の成分TDOFFSINEの合計として定めることができる。ここでもまた、波形の各サイクルは、AC電源4の各半サイクルで繰返し、導通期間の波形は、AC電源4の電圧波形に対して位相シフトされる。3つの方式の各々においては、導通期間の長さは、AC電源4の各半サイクルで繰り返す周期的な波形によって定められる。より具体的には、波形は、波形の各サイクルにわたって実質的に半シヌソイドとして変化する。その結果、過電流シングルスイッチモードに関連して上述した利点は、無制限シングルスイッチモード及び制限シングルスイッチモードに等しく適用される。各方式では、導通期間の波形は、特定の性能をもたらすように、回転子5の速度及び/又はAC電源4のRMS電圧の変化に応答して調節される。例えば、波形のオフセットは、主として、一定の平均電力又は平均電力に関する特定のプロフィールが様々な速度及び/又は電圧の範囲にわたって達成されるように調節される。波形の位相は、主として、電流波形内の低次高調波のマグニチュードが所定の閾値未満に保たれるように調節される。導通期間の長さは、2つの成分、すなわち、波形の各サイクルにわたって一定である第1の成分及び波形の各サイクルにわたって変わる第2の成分の合計として表すことができる。回転子速度及び/又はRMS電圧の変化に応答して、第1の成分は、一定の平均電力を維持するように調節され、第2の成分は、比較的小さい低次高調波を維持するように調節される。シングルスイッチモードの3つの異なる方式を説明したが、コントローラ16は、シングルスイッチモードで作動する時にこれらの方式の1つだけに必ずしも限定されるわけではない。代替的に、コントローラ16は、シングルスイッチモードで作動する時に3つの方式の1つ又はそれよりも多くを使用することができる。例えば、回転子速度がSPEEDSINGLEに到達した時、コントローラ16は、過電流シングルスイッチモードを最初に使用することができる。上述のように、過電流シングルスイッチモードは、何らかの自己補償を行うという利点を有する。しかし、回転子5が加速する時に、ホール期間は短くなり、従って、割り込み衝突の危険性は増加する。その結果、回転子速度が所定の閾値に到達した時、コントローラ16は、過電流シングルスイッチモードから無制限フリーホイールシングルスイッチモードに切り換わることができる。3つのシングルスイッチ方式の各々に対して、進み期間、オフセット、振幅、及び位相シフトの値は、シミュレーションから得られる。シミュレーションは、望ましい平均入力又は出力電力で最も良好な性能例えば、最も良好な効率及び/又は低次高調波を取得するように各作動点例えば、速度及び電圧に対して様々な値を精緻化する。特定の例モータシステム1の特定的な実施形態を一例としてのみここで説明する。モータシステム1の様々なハードウエア構成要素の値は、図19に詳細に示されており、一方、図20は、コントローラ16により使用される様々な定数及び閾値を示している。図21及び22は、リンク誘導子L1及びモータ2の磁束鎖交特性を詳細に示している。図23に示すように、モータシステム1は、7つの作動モード、すなわち、故障、初期化、静止、低速加速、中速加速、高速加速、及び運転を有する。従って、上述して図8に示すものと比較すると、モータシステム1は、1つの更に別の作動モードを有する。故障、初期化、静止、低速加速のモードは、上述したものと変わりはない。中速加速モードは、上述の高速加速モードに対応する。その結果、中速加速モードで作動する時、コントローラ16は、進み整流マルチスイッチモードでモータ2を駆動する。高速加速モードで作動する時、コントローラ16は、進み整流過電流シングルスイッチモードでモータ2を駆動する。高速加速モードでモータシステム1により費やされる時間の長さは、比較的短い。従って、メモリを保存するために、コントローラ16はオーバーランオフセットルックアップテーブル及びオーバーラン正弦ルックアップテーブルを格納しない。代替的に、コントローラ16は、複数の回転子速度の各々に対するオーバーラン期間TOVRを含むシングルオーバーランルックアップテーブルを格納する。コントローラ16は、次に、ZCROSS信号のエッジに応答して、進み期間と共にオーバーラン期間を更新する。その結果、コントローラ16により使用されるオーバーラン期間は、AC電源4の各半サイクルにわたって一定である。しかし、一定のオーバーラン期間の使用は、2つの理由でモータシステム1の性能には悪影響を与えない。第1に、高速加速モードに使用される時間の長さは、比較的短い。第2に、コントローラ16は、最初に、相巻線7内の電流がDCリンク電圧に比例している閾値を超えるまで相巻線7を励起する。その結果、AC電源4の各半サイクルにわたって一定のオーバーラン期間を使用することにも関わらず、電流波形は、シヌソイドの波形に近づき続ける。進み期間及びオーバーラン期間は、回転子速度の変化だけに応答して更新され、AC電源4のRMS電圧の変化に応答して更新されはしない。それによって、次に、ルックアップテーブルのサイズが低減され、従って、運転モードに使用されるより重要なテーブルに対して、より多くのメモリを自由にすることができる。コントローラ16は、回転子5の速度がSPEEDUFWに到達するような時間まで進み整流過電流シングルスイッチモードでモータ2を駆動し続ける。SPEEDUFWに到達すると、コントローラ16は、ZCROSS信号の次のエッジに応答して運転モードに入る。運転モードは、上述したものに対応するが例外が1つある。コントローラ16は、過電流シングルスイッチモードを使用するのではなく、その代わりに無制限フリーホイールシングルスイッチモードを使用する。その結果、進み期間及びオフセット値を更新することに加えて、コントローラ16は、ZCROSS信号の各エッジに応答して位相シフト値も更新する。そうでなければ、コントローラ16の作動は、上述したものと本質的に変わりはない。特に、コントローラ16は、SPEEDMIN及びSPEEDMAXにより境界が示された作動速度範囲にわたってモータ2を駆動する。この速度範囲で、コントローラ16は、確実に一定の平均電力がSPEEDCPMINとSPEEDCPMAXの間に達成されるようにする制御値を選択する。また、コントローラ16は、VMIN及びVMAXにより境界が示された電圧範囲にわたってモータ2を駆動する。この電圧範囲で、コントローラ16は、確実に一定の平均電力がVCPMINとVCPMAXの間に達成されるようにする制御値を選択する。コントローラ16は、3つの進みルックアップテーブルを格納する。第1のルックアップテーブルは、マルチスイッチモードで作動する時に回転子速度により索引が付される1次元の表である。第2のルックアップテーブルは、過電流シングルスイッチモードで作動する時に回転子速度により索引が付される1次元の表である。第3のルックアップテーブルは、無制限フリーホイールシングルスイッチモードで作動する時に回転子速度及び電圧により索引が付される2次元の表である。マルチスイッチモードに使用されるフリーホイールルックアップテーブル、タイムアウトルックアップテーブル、及び進みルックアップテーブルは、単一のマルチスイッチマップとしてコントローラ16により集合的に格納される。図24は、コントローラ16により使用されるマルチスイッチマップを詳細に示している。複数の速度の各々に対して、マップは、フリーホイール期間TFW、タイムアウト期間TTO、及び進み期間TADVを格納する。様々な期間に対応する電気角度も記載されている。しかし、角度はコントローラ16により格納されるマップの一部を成さず、単に回転子速度での角度の挙動を示すために設けられる。例えば、一定のタイムアウト期間TTO70μsが、中速加速を通して使用されることが見出される。しかし、対応するタイムアウト角度ATOは、10krpm時の8.4度から55krpm時の42.0度まで増加する。過電流シングルスイッチモードに使用される進み及びオーバーランルックアップテーブルは、単一のマップとして同様に格納される。マップの一部は、図25に詳細に示されている。ここでもまた、対応する電気角度は、例示を目的として設けられている。無制限フリーホイールシングルスイッチモードに使用される進み、導通オフセット、及び導通位相シフトルックアップテーブルは、単一のマップとしても格納される。すなわち、同じ速度及び電圧分解能が、3つのルックアップテーブルの各々に使用される。その結果、マップの各要素は、進み期間、導通オフセット値、及び導通位相シフト値を格納する。しかし、明瞭さを期すために、各ルックアップテーブルの一部は、図26~図28に示すが、全ての3つのルックアップテーブルの単位は、μsである。絶対値を格納するのではなく、進みルックアップテーブル及び導通オフセットルックアップテーブルは、差分値を格納する。コントローラ16は、次に、94krpmの速度及び230VのRMS電圧に対応する56.2μsの基準進み期間及び48.8μsの基準導通オフセット値を格納する。図29は、無制限フリーホイールシングルスイッチモードでコントローラ16により格納及び使用される導通正弦ルックアップテーブルの区分を詳細に示している。AC電源の周波数が50Hzであるので、ルックアップテーブルは、0~0.01秒に及び、これは、AC電源4の半サイクルに対応する。ルックアップテーブルの分解能は、51.2μsecであり、導通振幅TCDAMP及び導通位相角TCDPHASEは、それぞれ83.2μs及び320μsである。導通位相角TCDPHASEは、実際上94krpmの速度及び230Vの電圧に関する基準位相シフトである。モータシステム1は、81krpm~106krpmの作動速度範囲及び200V~260Vの作動電圧範囲を有する。これらの範囲で、1600W±25Wの平均入力電力は、85krpmと106krpmの間の速度で、かつ219V~256V間の電圧で維持される。更に、約85の効率は、定電力速度及び電圧範囲にわたって達成される。コントローラ16は、MicrochipTechnologyInc.により製造されるPIC16F690マイクロコントローラである。これは、20MHzのクロック速度と、単一のADCと、2つの比較器と、3台のタイマと、4096語のプログラムメモリと、512バイトのデータメモリとを有する比較的簡単な8ビットマイクロコントローラである。しかし、この比較的簡単なマイクロコントローラでさえも、コントローラ16は、100krpmを超える速度で、約1600Wの平均入力電力でモータ2を駆動することができる。波形の各サイクルにわたって従って、AC電源4の各半サイクルにわたって半シヌソイドとして変化する波形を有する導通期間をここまで参照してきた。しかし、他の形式の周期的な波形を導通期間にわたって使用することもできる。特に、導通期間が波形の各サイクルにわたって三角形又は台形として変化する波形は、両方とも、比較的良好な力率を取得する際に十分に機能することが判明している。図30は、導通期間にわたる3つの上述の波形、a半シヌソイド、b三角形、及びc台形と共にAC電源4の電圧波形を示している。これらの波形の各々に対して、導通期間は、波形の各サイクルの第1の半分にわたって増大し、各サイクルの第2の半分にわたって減少する。これらの3つの波形のうちの半シヌソイドは、低次高調波に関して最も良好な結果が得られることが判明している。それにも関わらず、異なる特性を有するモータシステムに対して、異なる波形を使用して性能改善を得ることができる可能性が高い。上述の実施形態では、進み期間は、AC電源4の各半サイクルにわたって一定である。それによって、次に、コントローラ16によって実行される命令の個数が低減する。しかし、AC電源4の各半サイクルにわたって変わる進み期間を使用することによって性能改善をもたらすことができる。HALL信号のエッジの前に相巻線7を整流することにより、相巻線7を励起するのに使用されるDCリンク電圧は、逆起電力により増大される。従って、相巻線7を通る電流の方向は、より迅速に逆にすることができる。更に、より多くの電流を正トルクの期間中に相巻線7に駆動することができるように、相巻線7内の電流に逆EMFをもたらすようにすることができる。DCリンク電圧が増加すると、相電流の方向を逆にするのに必要とされる時間が減少し、相電流が上がる速度は増加する。従って、より短い進み期間を使用することができ、相電流量のあらゆる不足は、導通期間を増大させることによって埋め合わせることができる。重要なことに、進み期間を低減することによって負トルクの期間は減少し、従って、モータシステム1の効率化をもたらすことができる。コントローラ16は、従って、AC電源4の各半サイクルにわたって変わる進み期間を使用することができる。この目的のために、進み期間の長さは、周期的な波形によって形成することができ、波形の各サイクルは、AC電源4の各半サイクルで繰り返す。進み期間の長さは、AC電源4の電圧のゼロ交差を中心とした領域において長く、ピーク電圧を中心とした領域において短い。進み期間の適切な波形には、逆半シヌソイド、逆三角形及び逆台形がある。図31は、進み期間にわたる3つの可能な波形、すなわち、a逆半シヌソイド、b、逆三角形、及びc逆台形と共にAC電源4の電圧波形を示している。進み期間は、導通期間に対して上述したものとほぼ同様に、コントローラ16により定義、格納及び更新される。例えば、逆半シヌソイドとして変化する進み期間TADVは、以下のように定めることができる。TADV=TADVOFFSET-TADVAMPabs{sin{tf360deg}コントローラ16は、次に、AC電源4の電圧のゼロ交差以来経過した時間を使用して、モータ2の各電気半サイクルに対して進み期間を決定又は測定する。コントローラ16は、更に、回転子速度の変化及び/又はAC電源4のRMS電圧の変化に応答して進み期間の波形を更新することができる。例えば、コントローラ16は、回転子速度及び/又は電圧の変化に応答して波形のオフセット、振幅、及び位相の1つ又はそれよりも多くを調節することができる。ここでもまた、導通期間の場合と同様に、進み期間は、2つの成分、すなわち、一定である第1の成分及び進み期間波形の各サイクルにわたって変わる第2の成分の合計として定めることができる。コントローラ16は、次に、回転子速度及び/又はRMS電圧の変化に応答して一方又は両方の成分を調節する。コントローラ16により使用されるパラメータ例えば、進み期間、導通オフセットなどは、運転モードで作動する時に限りAC電源4のRMS電圧の変化に応答して調節される。それによって、次に、加速中にコントローラ16によって使用されるルックアップテーブルのサイズが低減される。従って、運転モード中に使用される、より重要なルックアップテーブルに対して、より多くのメモリが使用可能となる。しかし、AC電源4のRMS電圧の変化に応答して加速中に1つ又はそれよりも多くのパラメータを調節することが望ましい事例がある場合がある。例えば、制御値を調節することなく、モータシステム1は、AC電源4のRMS電圧が候補に挙げられた電圧よりも高いか又はより低い場合、より高い電力又はより低い電力でスタートすることができる。加速中にパラメータを調節することにより、電力の制御の改善をもたらすことができる。コントローラ16は、従って、加速、例えば、フリーホイール期間、タイムアウト期間、進み期間、及びオーバーラン期間中に使用されるパラメータの1つ又はそれよりも多くに対して電圧補正テーブルを格納することができる。電圧補正テーブルは、複数の電圧の各々に対して補正値を格納する。特定のパラメータを更新する時、コントローラ16は、回転子速度を使用して関連のルックアップテーブルに索引を付して制御値を選択する。更に、コントローラ16は、AC電源4のRMS電圧を使用して関連の電圧補正テーブルに索引を付して補正値を選択する。コントローラ16は、次に、制御値及び電圧補正値を合計してパラメータの値を取得する。この特定の例では、電圧補正テーブルは、1次元である。しかし、あらゆる電圧補正は、理想的にはAC電源4のRMS電圧だけでなく、回転子5の速度にも依存する。従って、各パラメータに対して2つの1次元ルックアップテーブルを格納するのではなく、コントローラ16は、代替的に、運転モード例えば、図26~図28に使用されるパラメータに対して行われるように、各パラメータに対して完全な2次元ルックアップテーブルを格納することができる。しかし、完全な2次元のテーブルには、2つの1次元のテーブルよりもかなり多くのメモリが必要である。上述の実施形態では、モータ2は、4極回転子5と4極固定子6とを含む。しかし、回転子5及び固定子6では、極数を加減することができる。極の個数が増加すると、機械的サイクル当たりの電気サイクル数は増加する。その結果、所与の回転子速度に対して、各ホール期間は短くなっている。より速いコントローラ16が、従って、各ホール期間中に必要な命令を実行するのに必要であろう。更に、インバータ10のスイッチの高速化が必要であると考えられる。従って、許容極の数は、モータ2及び/又は制御システム3の成分の作動速度により限定される可能性がある。上述の図5に示す電流コントローラ22は、PIC16F690マイクロコントローラの内蔵周辺機器を使用する。コントローラ16に使用される特定のマイクロコントローラに基づいて、電流コントローラ22の代替構成が可能である。更に、電流レギュレータ22がコントローラ16の一部を成すことは不可欠なことではない。代替的に、電流レギュレータ22は、コントローラ16とは別々に構成することができる。従って、コントローラ16は、過電流信号を受信する電流レギュレータ22に結合された入力ピン20を含む。モータシステム1により使用される位置センサ13は、ホール効果センサである。しかし、回転子5の位置を示す信号を出力することができる代替位置センサ、例えば、光センサを等しく使用することができる。同様に、1対のクランピングダイオードを使用するのではなく、他の構成、例えば、シュミットトリガをゼロ交差検出器12に使用することができる。コントローラ16は、インバータ10の高側スイッチQ1、Q2を開成することによって相巻線7をフリーホイールさせる。それによって相巻線7内の電流は、インバータ10の低側ループの周りを再循環することができる。一部の場合には、フリーホイールは、代替的に、低側スイッチQ3、Q4を開成し、電流がインバータ10の高側ループの周りを再循環することを可能にすることによって行うことができる。しかし、電流センサ12の分流抵抗器R1、R2は、次に、電流をフリーホイール中に感知し続けることができるようにインバータ10の上側アームに位置するように要求してもよい。それによって分流抵抗器R1、R2が励起中により高い電圧を受けるので、より高い電力損失が発生する。更に、分流抵抗器R1、R2にわたる電圧は、ニュートラルを基準とするのではなく浮動電圧であり、従って、相巻線7内の電流を測定することが困難であろう。上述の実施形態では、モータシステム1は、永久磁石モータ2を駆動する制御システム3を含む。しかし、制御システム3の多くの態様は、等しく、他の形式のブラシレスモータを駆動するのに使用することができる。時間で周期的に変わる導通期間及び/又は進み期間の使用は、他の形式のブラシレスモータ、例えば、リラクタンスモータの相巻線を励起するのに使用することができる。リラクタンスモータに対して、回転子は、モータの相巻線内で逆起電力を誘発するものではない。従って、可変的な導通期間又は進み期間を必要とせずに実質的に正弦波電流波形を得ることができる。しかし、AC電源4の各半サイクルにわたって変わる導通期間及び/又は進み期間は、モータ内の磁束密度に対して特定のエンベロープをもたらすのに使用することができる。DCリンク電圧内のリップルのために、リラクタンスモータの巻線は、AC電源4の各半サイクルにわたって変わる電圧で励起される。一定の導通期間がAC電源4の各半サイクルにわたって使用された場合、モータ内の磁束密度のエンベロープは、DCリンク電圧のエンベロープを反映する。コントローラ16は、従って、磁束密度のエンベロープを形づくるようにAC電源4の各半サイクルにわたって変わる導通期間を使用することができる。特に、コントローラ16はピーク磁束密度を低減する導通期間を使用することができる。ピーク磁束密度を低減することにより、モータの効率化及び/又は小型化をもたらすことができる。ピーク磁束密度を低減するために、コントローラ16は、AC電源4の電圧のゼロ交差を中心とした領域において長く、ピーク電圧を中心とした領域において短い導通期間を使用する。導通期間の適切な波形には、逆半シヌソイド、逆三角形、及び逆台形がある。導通期間の長さの変動を補償するために、コントローラ16は、時間と共に周期的に変わる進み期間を更に使用することができる。特に、導通期間が減少する時に、コントローラ16はより短い導通期間を補償するようにより長い進み期間を使用することができる。従って、導通期間と対照的に、コントローラ16は、AC電源4の電圧のゼロ交差を中心とした領域において短く、ピーク電圧を中心とした領域においてより長い進み期間を使用する。進み期間の適切な波形に、半シヌソイド、三角形、及び台形を含む。永久磁石モータ2に対して、コントローラ16は、例えば、位置センサ13により出力される信号から決定されるように、相巻線7内の逆起電力のゼロ交差の前に相巻線7を励起する。リラクタンスモータに対して、コントローラ16は、上昇中のインダクタンスの前に巻線を励起し、これは、同じく位置センサにより決定することができる。両方の例においては、コントローラ16は、回転子の所定の位置に先行して相巻線を励起する。より具体的には、コントローラ16は、整列されていない回転子位置に先行して相巻線を励起する。時間と共に周期的に変わる導通期間及び/又は進み期間は、異なる形式のブラシレスモータと共に使用することができるが、可変的な導通及び/又は進み期間は、永久磁石モータを駆動するのに使用される時に特に有用である。上述のように、永久磁石回転子5により相巻線7内に誘導される逆起電力により、AC電源4から引き出される電流の量を正確に制御することが困難になる。時間に周期的に変わる導通期間を使用することにより、シヌソイドの波形に近づく波形は、能動PFC又は高いキャパシタンスリンクコンデンサを必要とすることなく、AC電源から引き出される電流に対して達成することができる。AC電源の電圧のゼロ交差に応答して制御パラメータ例えば、進み期間、導通期間、フリーホイール期間、及びタイムアウト期間を更新することは、他の形式のブラシレスモータと共に使用することができる。上述のように、AC電源内のゼロ交差に応答して制御パラメータを更新することにより、制御パラメータは、モータ速度に関わらず周期的に更新される。更に、制御パラメータは、専用タイマを必要とせずに周期的に更新される。制御パラメータはまた、AC電源のサイクルと同期して更新される。従って、AC電源4から引き出される電流の波形は、一般的により安定したものである。割り込み衝突は、多くの形式のブラシレスモータに対して潜在的な問題である。その結果、ソフトウエアよりもむしろハードウエア内の制御信号を発生するタイマ及び比較器例えば、専用比較器モジュールの一部を成すか、又はPWMモジュールの一部としての使用は、割り込みの総数を低減するように他の形式のブラシレスモータと共に使用することができる。更に、コントローラがアナログ信号をサンプリングすることを必要とする時、割り込み衝突は、いくつかの段階にサンプリング処理を分割することによって更に低減することができ、各段階は、位置センサ信号の異なるエッジに応答して実行される。その結果、サンプリング処理は、モータのいくつかの電気半サイクルにわたって広げられ、それによって各電気半サイクル中にコントローラが他のルーチンを実行するための解放される時間が多くなる。"