JP5634330B2 - Motor drive control program, drive control method, and drive control apparatus - Google Patents
Motor drive control program, drive control method, and drive control apparatus Download PDFInfo
- Publication number
- JP5634330B2 JP5634330B2 JP2011127073A JP2011127073A JP5634330B2 JP 5634330 B2 JP5634330 B2 JP 5634330B2 JP 2011127073 A JP2011127073 A JP 2011127073A JP 2011127073 A JP2011127073 A JP 2011127073A JP 5634330 B2 JP5634330 B2 JP 5634330B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- pwm
- motor
- drive control
- pwm signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Control Of Electric Motors In General (AREA)
- Control Of Motors That Do Not Use Commutators (AREA)
Description
本発明はモータの駆動制御プログラム、駆動制御方法及び駆動制御装置に関し、特にホール素子等の位置検出素子によらず位置検出を行うブラシレスDCモータの駆動制御プログラム、駆動制御方法及び駆動制御装置に関する。 The present invention relates to a motor drive control program, a drive control method, and a drive control apparatus, and more particularly to a drive control program, a drive control method, and a drive control apparatus for a brushless DC motor that performs position detection regardless of position detection elements such as Hall elements.
モータを回転させる場合、ロータの回転位置を検出して、ロータの回転位置に合わせて駆動信号の状態を遷移させる必要がある。そこで、一般的なモータでは、ホール素子等の位置検出手段を備えることでモータの回転位置を検出し、駆動信号の状態を遷移させる。しかし、ホール素子は、高温環境下(例えば、125℃以上の環境温度)では正確な位置検出が行えない問題がある。そこで、近年、例えば、HDD(Hard Disk Drive)、送風機、ポンプなどの高速高トルク回転が必要になる用途において、センサレスブラシレス直流モータが多く利用されている。センサレスブラシレス直流モータでは、ホール素子等の位置検出手段を用いることなくモータの回転位置を検出し、当該検出結果に基づき回転制御が可能である。センサレスブラシレス直流モータを用い場合、高温環境下における耐久性の面で多くのメリットを有する。 When rotating the motor, it is necessary to detect the rotational position of the rotor and change the state of the drive signal in accordance with the rotational position of the rotor. In view of this, a general motor includes position detection means such as a Hall element to detect the rotational position of the motor and to change the state of the drive signal. However, the Hall element has a problem that accurate position detection cannot be performed under a high temperature environment (for example, an environmental temperature of 125 ° C. or more). Thus, in recent years, sensorless brushless DC motors are often used in applications that require high-speed and high-torque rotation, such as HDDs (Hard Disk Drives), blowers, and pumps. In a sensorless brushless DC motor, the rotational position of the motor can be detected without using position detecting means such as a Hall element, and the rotation can be controlled based on the detection result. When a sensorless brushless DC motor is used, it has many advantages in terms of durability in a high temperature environment.
このセンサレスブラシレス直流モータでは、非通電相に生じる誘起電圧を利用してモータの回転位置を検出し、当該検出のタイミングに応じて通電させる電機子巻線電流の通電を切り換えることができる。このようなセンサレスブラシレス直流モータの一例が特許文献1、2に開示されている。
In this sensorless brushless DC motor, the rotational position of the motor can be detected using the induced voltage generated in the non-energized phase, and the energization of the armature winding current to be energized can be switched according to the detection timing. An example of such a sensorless brushless DC motor is disclosed in
特許文献1に示される例では、センサレスブラシレス直流モータを3相の駆動信号(U相、V相、W相)を用いて駆動する。そして、特許文献1の図1、図2に示す例では、U相の駆動信号の電圧(端子Rに生じる電圧)と基準電圧Vdc/2とをコンパレータで比較して端子Rの電圧が基準電圧Vdc/2と交わるゼロクロス検出点を検出する。そして、ゼロクロス検出点が検出されたタイミングに応じて、マイクロコンピュータにてモータを駆動するためのPWM信号の状態を次状態に遷移させる。
In the example shown in
また、特許文献2では、非通電相の駆動信号の電圧レベルとセンタータップ電圧とをコンパレータで比較し、当該比較結果に応じてアップダウンカウンタを動作させ、アップダウンカウンタの値に応じて真のゼロクロス点を算出する方法が開示されている。そして、特許文献2では、算出されたゼロクロス点から駆動信号のステートを遷移させるタイミングを算出する。
Further, in
しかしながら、一般的に、センサレスブラシレス直流モータにおいて駆動信号と基準電圧とを比較する場合、非通電相の駆動信号を入力段分圧抵抗等で信号振幅を減衰させた後にコンパレータ等で非通電相の駆動信号の大きさを判定する。このとき、入力段分圧抵抗は分圧比誤差を持つ。また、非通電相の駆動信号の大きさを判定するコンパレータは、入力オフセット電圧や入力ノイズ電圧等誤差要因を持つ。さらに、モータが低い回転速度で回転する起動時等では大きな誘起電圧を望めないため、電機子巻線の電圧と基準電圧との比較電位差が微小になる。このようなことから、特許文献1に記載の技術では、モータの低回転領域において誘起電圧とノイズ電圧との間に十分なSN比を確保できなくなり比較結果が不安定となる。結果として、特許文献1に記載の技術では、誘起電圧が基準電圧と交差する時に位置検出信号が不確定に複数回発生し、低回転速度領域における位置検出の間隔を正確に計時することが困難である。
However, in general, when a drive signal and a reference voltage are compared in a sensorless brushless DC motor, the non-energized phase drive signal is attenuated by an input stage voltage dividing resistor or the like after the non-energized phase drive signal is attenuated by a comparator or the like. The magnitude of the drive signal is determined. At this time, the input stage voltage dividing resistor has a voltage dividing ratio error. The comparator that determines the magnitude of the non-energized phase drive signal has an error factor such as an input offset voltage and an input noise voltage. Furthermore, since a large induced voltage cannot be expected at the time of starting the motor rotating at a low rotation speed, the comparison potential difference between the voltage of the armature winding and the reference voltage becomes small. For this reason, in the technique described in
また、特許文献2の図3、図4では、コンパレータへの入力ノイズにより生じる誤差の問題が明らかであるが、特許文献2では、このノイズをマスクすることで、ゼロクロス点の計算結果にこの誤差の影響が反映されないようにしている。しかしながら、特許文献2では、図3、図4、図8及びそれに関連する記載からも明らかなように、駆動信号のステートを遷移させる周期が予め決められていなければゼロクロス点の算出ができない問題がある。つまり、特許文献2は、モータの回転速度の変化に対応できない問題がある。例えば、PWM信号のデューティ比を可変することでモータの回転速度を制御する場合などモータの回転速度が変化するような用途では、特許文献2の技術は利用できない。また、モータは、回転速度がゼロの状態から回転を開始しなければならないが、回転速度が最大回転数に達する前の段階では特許文献2の技術は利用できない。このようなことから、特許文献2では、特にモータが最大回転速度以外の回転速度で回転している場合におけるモータの制御性が悪化する問題がある。
In FIGS. 3 and 4 of
また、特許文献1では、ゼロクロス検出点が検出されたタイミングに応じてPWM信号の状態を次状態へと遷移させるタイミングを切り換える。そのため、特許文献1では、ゼロクロス検出点がずれた場合、モータの制御性が悪化する問題がある。また、上記問題を回避する為にコンパレータにヒステリシス持たせる事が一般的であるが、コンパレータにヒステリシスによる不感帯を持たせることにより比較結果を安定化させた場合、端子Rの電圧が基準電圧Vdc/2と交わるゼロクロス検出点が実際のゼロクロス検出点とずれモータの制御性が悪化する問題がある。誘起電圧がヒステリシス範囲以内である場合、ゼロクロス検出する事が出来ないため、低回転速度に限界が発生する。つまり、特許文献1に記載の技術では、センサレスブラシレス直流モータを低回転速度で制御する場合に制御性が悪化する問題を解決できない。
Moreover, in
本発明にかかるモータの駆動制御プログラムの一態様は、モータの回転位置に応じて生成するPWM信号の状態を遷移させる演算コアと、ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した比較対象検出信号と前記3相の駆動信号の中点電圧を示すセンタータップ電圧とを比較するコンパレータと、を有するプロセッサにおいて前記演算コアで実行されるモータの駆動制御プログラムであって、前記コンパレータの出力信号の値に基づきコンパレータ積分値を増減し、前記コンパレータ積分値がカウント初期値に達したことに応じて前記モータの回転位置が遷移したことを検出し、当該検出結果に応じて、前記PWM信号の状態を次状態に遷移させる。 One aspect of a motor drive control program according to the present invention includes an arithmetic core that changes the state of a PWM signal generated according to the rotational position of the motor, and an output interface that outputs the PWM signal to the motor via a driver circuit. A comparator that compares a comparison target detection signal selected from the three-phase drive signal generated by the driver circuit based on the PWM signal with a center tap voltage indicating a midpoint voltage of the three-phase drive signal. The motor drive control program executed by the arithmetic core in the above-described embodiment, the comparator integral value is increased or decreased based on the value of the output signal of the comparator, and the motor is activated in response to the comparator integral value reaching the initial count value. The rotational position of the PWM signal is detected and the state of the PWM signal is determined according to the detection result. To transition to the next state.
本発明にかかるモータの駆動制御方法の一態様は、モータの回転位置に応じて生成するPWM信号の状態を遷移させるPWM信号生成回路と、ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、前記ドライバが前記PWM信号に基づき生成した3相の駆動信号から選択した1相の駆動信号と前記3相の駆動信号の中点電圧を示すセンタータップ電圧とを比較するコンパレータと、を有するモータ駆動装置を用いたモータの駆動制御方法であって、前記コンパレータの出力信号の値に基づきコンパレータ積分値を増減し、前記コンパレータ積分値がカウント初期値に達したことに応じて前記モータの回転位置が遷移したことを検出し、当該検出結果に応じて、前記PWM信号の状態を次状態に遷移させる。 One aspect of a motor drive control method according to the present invention includes a PWM signal generation circuit that changes the state of a PWM signal generated according to the rotational position of the motor, and an output that outputs the PWM signal to the motor via a driver circuit. An interface and a comparator for comparing a one-phase drive signal selected from the three-phase drive signal generated by the driver based on the PWM signal and a center tap voltage indicating a midpoint voltage of the three-phase drive signal; A motor drive control method using a motor drive device having a comparator integrated value is increased or decreased based on a value of an output signal of the comparator, and the motor is controlled in response to the comparator integrated value reaching a count initial value. It detects that the rotational position has changed, and changes the state of the PWM signal to the next state according to the detection result.
本発明にかかるモータの駆動制御装置の一態様は、モータの回転位置に応じて生成するPWM信号の状態を遷移させるPWM信号生成回路と、ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、前記ドライバが前記PWM信号に基づき生成した3相の駆動信号から選択した1相の駆動信号と前記3相の駆動信号の中点電圧を示すセンタータップ電圧とを比較するコンパレータと、を有し、前記PWM信号生成回路は、前記コンパレータの出力信号の値に基づきコンパレータ積分値を増減し、前記コンパレータ積分値がカウント初期値に達したことに応じて前記モータの回転位置が遷移したことを検出し、当該検出結果に応じて、前記PWM信号の状態を次状態に遷移させる。 One aspect of a motor drive control device according to the present invention includes a PWM signal generation circuit that transitions the state of a PWM signal generated according to the rotational position of the motor, and an output that outputs the PWM signal to the motor via a driver circuit. An interface and a comparator for comparing a one-phase drive signal selected from the three-phase drive signal generated by the driver based on the PWM signal and a center tap voltage indicating a midpoint voltage of the three-phase drive signal; The PWM signal generation circuit increases or decreases the comparator integral value based on the value of the output signal of the comparator, and the rotational position of the motor has changed in response to the comparator integral value reaching the initial count value. And the state of the PWM signal is changed to the next state according to the detection result.
本発明にかかるモータの駆動制御プログラム、駆動制御方法及び駆動制御装置では、比較対象検出信号とセンタータップ電圧とが入力されるコンパレータの出力結果を積分したコンパレータ積分値に基づきモータの回転位置を検出する。これにより、コンパレータが入力オフセットを有する場合、或いは、ノイズに対する対策(例えば、ヒステリシス特性を有するコンパレータの利用)を行ってない場合であっても、これらのコンパレータの特性がモータの回転検出タイミングに与える影響を抑制することができる。 In the motor drive control program, the drive control method, and the drive control device according to the present invention, the rotational position of the motor is detected based on the comparator integrated value obtained by integrating the output result of the comparator to which the comparison target detection signal and the center tap voltage are input. To do. As a result, even when the comparator has an input offset, or even when measures against noise (for example, use of a comparator having hysteresis characteristics) are not taken, the characteristics of these comparators are given to the rotation detection timing of the motor. The influence can be suppressed.
本発明にかかるモータの駆動制御プログラム、駆動制御方法及び駆動制御装置によれば、モータを低回転速度でモータの制御した場合の制御性を向上させることができる。 According to the motor drive control program, the drive control method, and the drive control apparatus according to the present invention, the controllability when the motor is controlled at a low rotational speed can be improved.
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。まず、図1に実施の形態1にかかるモータ駆動制御装置1のブロック図を示す。図1に示すように、モータ駆動制御装置1はマイクロコンピュータである。つまり、実施の形態1にかかるモータ駆動制御装置1は、マイクロコンピュータ上で実行されるモータ駆動制御プログラムによりモータの駆動動作を実現する。
Embodiments of the present invention will be described below with reference to the drawings. First, FIG. 1 shows a block diagram of a motor
なお、図1に示すブロック図では、プリドライバ回路2、ドライバ回路3、及び、モータ4を示した。プリドライバ回路2は、モータ駆動制御装置1が生成するPWM信号のレベル変換を行う。ドライバ回路3は、プリドライバ回路2を介して入力されるPWM信号に応じて3相(例えば、U相、V相、W相)の駆動信号を生成し、当該駆動信号によりモータ4を駆動する。モータ4は、制御対象であって、3相の駆動信号の中点電圧(センタータップ電圧CT)を出力する。なお、このセンタータップ電圧は、モータにセンタータップ電圧の取り出し端子から取り出しても良く、また、3相の駆動信号が入力される抵抗網を用いて人工的に合成されたアーティフィシャルセンタータップ電圧(Artificial center tap voltage)であっても良い。以下の説明で用いられるセンタータップ電圧は、生成方法に関わらず3相の駆動信号の中点電圧を示すものとする。
In the block diagram shown in FIG. 1, the
図1に示すように、モータ駆動制御装置1は、ハードウェアとして、演算コア10、プログラムメモリ11、RAM(Random Access Memory)12、GPIO(General Purpose Input/Output)13、セレクタ14、コンパレータ15、アナログデジタル変換器16、タイマ17を有する。モータ駆動制御装置1では、これらのブロックがバスを介して互いに接続される。
As shown in FIG. 1, the motor
プログラムメモリ11には、モータ駆動制御プログラムが格納される。このプログラムメモリ11は、ROM(Read Only Memory)、フラッシュメモリ等により構成される。演算コア10は、プログラムメモリ11からモータ駆動制御プログラムを読み出して実行する。そして、演算コア10は、モータ駆動制御プログラムに従って、PWM信号を生成する。また、演算コア10は、コンパレータ15の出力に基づきモータの回転を検出して、モータの検出結果に応じてPWM信号の状態を遷移させる。演算コア10の動作についての詳細は後述する。RAM12は、演算コア10がモータ駆動制御プログラムの実行する際に用いるデータを格納する記憶装置である。
The
GPIO13は、汎用入出力装置である。モータ駆動制御装置1は、GPIOを介して図示しない他の回路から速度制御信号、PWMデューティ制御信号を受信する。温度制御信号は、モータ駆動制御装置1が組み込まれる装置の温度に応じて生成される。PWMデューティ制御信号は、例えば、モータがファンの回転を制御するものである場合、当該ファンの回転速度を示す回転速度指示値をモータ駆動制御装置1に指示する。温度制御信号及びPWMデューティ制御信号により示される値は、GPIO13を介して演算コア10に与えられる。また、GPIO13は、図示しない他の回路にモータ4の回転速度と比例した周波数の通知信号(以下、回転速度通知信号と称す)を出力する。回転速度通知信号は、例えば、演算コア10が生成し、GPIO13を介して出力されるものである。さらに、モータ駆動制御装置1では、演算コア10において生成されたPWM信号は、GPIO13を介してプリドライバ回路2に出力される。
The
セレクタ14は、演算コア10からの指示に基づき、3相信号から選択した非駆動相を比較対象検出信号SPとして出力する。より具体的には、モータ4としてセンサレスブラシレス直流モータを利用する場合、セレクタ14は、非通電相を比較対象検出信号SPとして選択する。
The
コンパレータ15は、比較対象検出信号SPと、センタータップ電圧とを比較して、出力信号をハイレベルとローレベルとのいずれかの論理レベルとする。本実施の形態では、コンパレータ15は、比較対象検出信号SPよりもセンタータップ電圧CTの方が高い場合は出力信号をハイレベルとし、比較対象検出信号SPよりもセンタータップ電圧CTの方が低い場合は出力信号をローレベルとする。
The
図1に示す例では、ドライバ回路3のソース側に電流検出抵抗Ri及びローパスフィルタが設けられる。電流検出抵抗Riは、ドライバ回路3を介して流れるモータ4の駆動電流を電圧に変換する。アナログデジタル変換器16は、アナログ値をデジタル値に変換する回路である。実施の形態1にかかるモータ駆動制御装置1では、アナログデジタル変換器16によって、電流検出抵抗Riにより生成された電圧値をデジタル値に変換し、駆動電流の大きさに応じたデジタル値を得る。なお、ローパスフィルタは、電流検出抵抗R1により生成された電圧値の高周波ノイズを除去するものであるが、図面を簡略化するために図示を省略した。
In the example shown in FIG. 1, a current detection resistor Ri and a low-pass filter are provided on the source side of the
タイマ17は、モータ駆動制御装置1として動作するマイクロコンピュータの動作クロックをカウントして、当該カウント値に応じて割り込み要求を出力する。割り込み要求は、演算コア10に与えられる。演算コア10は、入力された割り込み要求の種類に応じて、予め規定された動作を行う。実施の形態1にかかるモータ駆動制御装置1では、タイマ17には、第1の設定値と第2の設定値が設定される。そして、タイマ17は、カウント値が第1の設定値に達したことに応じて第1の割り込み信号を出力し、カウント値が第2の設定値に達したことに応じて第2の割り込み信号を出力する。より具体的には、モータ駆動制御装置1では、第1の設定値として、PWM信号のオンタイム(PWM信号がハイレベルとなる期間)よりも小さな値が設定され、第2の設定値として、PWM信号の1周期の期間に相当する値が設定される。なお、第1の設定値は、PWM信号をオンステートからオフステートに切り換えるタイミングを指定するものであり、PWM信号のオンタイムより若干小さな値に設定されるものとする。また、以下の説明では、第1の割り込み要求をBEMF(バックEMF)タイマ割り込みと称し、第2の割り込み要求を周期タイマ割り込みと称す。
The
実施の形態1にかかるモータ駆動制御装置1では、演算コア10がモータ駆動制御プログラムを実行することでモータの駆動を制御するPWM信号のデューディ制御及び状態制御を行う。そこで、演算コア10がモータ駆動制御プログラムを実行することにより実現される機能を演算コア10の機能ブロックとした場合のモータ駆動制御装置1のブロック図を図2に示す。なお、図1のブロック図に示したブロックと同じ構成要素については、図1と同じ符号を付して説明を省略する。
In the motor
図2に示すように、モータ駆動制御プログラムを実行することで、演算コア10には、PWMデモジュレータ21、PWMモジュレータ22、定電流駆動制御部23、ロータ位置検出部24、回転制御部25、回転速度制御部26、PWMデューティ制御部27が機能ブロックとして実現される。なお、図2に示したモータ駆動制御装置1では、設定値及び変数の初期化処理等の一般的な処理を行うブロックについては記載を省略した。また、モータ駆動制御装置1は、PWMパルスのカウント処理を行い、PWMパルスのカウント値に基づき様々な処理を行うが、PWMパルスのカウント値をカウントするブロックについては、図2では記載を省略した。このように記載を省略したブロックの機能は、マイクロコンピュータの一般的な演算処理にて実現されるものとする。
As shown in FIG. 2, by executing the motor drive control program, the
PWMデモジュレータ21は、PWM信号のデモジュレーション処理を行う。より具体的には、PWMデモジュレータ21は、BEMFタイマ割り込みが入力されたことに応じてコンパレータ15の出力信号CMP_OUT及びモータを駆動する駆動電流をサンプリングする。なお、駆動電流の値は、PWMデモジュレータ21が定電流駆動制御部23にサンプリング指示を与えることに基づいて定電流駆動制御部23においてサンプリングされる。また、PWMデモジュレータ21は、周期タイマ割り込みが入力されたことに応じて、タイマ17の第1の設定値の値を更新する。そして、PWMデモジュレータ21は、出モジュレーション処理が終了したことに応じてPWMモジュレータ22に処理の開始を指示する。
The
PWMモジュレータ22は、PWMデモジュレータ21からの処理開始指示に基づきPWM信号の論理レベルを切り換える。このとき、PWMモジュレータ22は、回転制御部25の指示値に基づき、複数のPWM信号をハイレベルとするか、ローレベルとするかを決定する。PWMモジュレータ22が出力するPWM信号は、GPIO13を介してプリドライバ回路2に出力される。
The
定電流駆動制御部23は、定電流駆動制御処理を行う。定電流駆動制御処理では、モータ4を定電流駆動するための帰還制御値を生成する。
The constant current
ロータ位置検出部24は、コンパレータ積分値を有する。そして、ロータ位置検出部24は、コンパレータ積分値算出処理、フライバックフィルタ処理、フライバック適応フィルタ更新処理、ロータ位置検出処理、ステートテーブル更新処理を行う。コンパレータ積分値算出処理では、PWMデモジュレータ21でサンプリングされたコンパレータ15の出力信号CMP_OUTに基づきコンパレータ15の出力値の積算を行う。フライバックフィルタ処理では、非通電相の駆動信号に発生するフライバックパルスをフィルタする。このフライバックフィルタを適用している期間中は、コンパレータ15の出力信号CMP_OUTによらず、コンパレータ積分値を単純増加又は単純減少させる。フライバック適応フィルタ更新処理では、フライバックフィルタの条件を更新する。ロータ位置検出処理では、ロータの位置検出処理を行い、PWM信号の状態の遷移タイミングを指示する。ステートテーブル更新処理では、PWM信号の状態を決定するオフステートテーブルとオンステートテーブルの更新処理を行う。
The rotor
回転制御部25は、ステート制御処理を行う。より詳細には、ステート制御処理では、回転速度検出処理、スタッキング検出処理、ステート更新処理が行われる。回転速度検出処理では、モータ4の回転速度の検出処理が行われる。スタッキング検出処理では、モータ4のロータのスタックを検出する。ステート更新処理では、PWM信号の状態の次状態を決定と、PWM信号を次状態に遷移させるか否かを決定する。
The
回転速度制御部26は、定回転制御処理を行う。定回転制御処理では、モータ4の現在の回転速度と外部から与えられた回転速度指示値との誤差を算出し、モータ4を回転速度指示値に沿った回転速度に制御するための帰還制御値を生成する。なお、回転速度指示値としては、PWMデューティ制御信号に起因するものの他に、温度制御に由来する速度制御信号に基づくものも含むものとする。
The rotation
PWMデューティ制御部は、レギュレーションループ調停処理と、PWMプリモジュレーション処理とを行う。レギュレーションループ調停処理では、PWM信号の次周期のデューティ比を決定する帰還制御値として、定電流駆動制御部23が生成した帰還制御値と、回転速度制御部26が生成した帰還制御値と、のいずれを用いるかの調停処理を行う。PWMプリモジュレーション処理は、レギュレーションループ調停処理にて決定された帰還制御値に基づきPWM信号の次周期のオンタイムの値を決定する。また、PWMプリモジュレーション処理では、PWMデモジュレータ21に決定したオンタイムの値を与える。
The PWM duty control unit performs a regulation loop arbitration process and a PWM premodulation process. In the regulation loop arbitration process, a feedback control value generated by the constant current
続いて、モータ駆動制御プログラムにより実現される機能を用いたモータの駆動制御についてさらに詳細に説明する。そこで、図3〜図15にモータ駆動制御装置1の動作手順を示すフローチャートを示す。そして、この図3〜図15を参照して、モータ駆動制御装置1の動作についてさらに詳細に説明する。
Next, motor drive control using functions realized by the motor drive control program will be described in more detail. 3 to 15 are flowcharts showing the operation procedure of the motor
図3では、モータ駆動制御装置1の動作の全体を示すフローチャートを示した。図3に示すように、モータ駆動制御プログラムは、メインルーチンがスタートすると、まず、変数初期化処理を行う(ステップS1)。続いて、モータ駆動制御プログラムは、アナログデジタル変換器16を利用して、マイクロコンピュータ1に供給されている電源電圧の電圧値をサンプリングする(ステップS2)。続いて、モータ駆動制御プログラムは、サンプリングした電源電圧の電圧値が最低起動電圧よりも大きいか否かを判断する(ステップS3)。ステップS3において、電源電圧が最低起動電圧以下であると判断された場合、ステップS1の変数初期化処理に戻る。一方、電源電圧が最低起動電圧よりも大きいと判断された場合、演算コア10へのタイマ割り込みを許可する(ステップS4)。なお、起動を許可するか否かを判断する電源電圧としては、ドライバ回路3に与えられる電源電圧とマイクロコンピュータ1に与えられる電源電圧とのうち高い電圧値を有する電源電圧を用いる。本実施の形態では、ドライバ回路3の電源からマイクロコンピュータ1の電源を作るため、ドライバ回路3の電源電圧を監視することが好ましい。この場合、アナログデジタル変換器16によりドライバ回路3の電源電圧を測定する。
In FIG. 3, the flowchart which shows the whole operation | movement of the motor
そして、モータ駆動制御プログラムは、タイマ割り込みの発生を待ち、タイマ割り込みが発生したことに起因してモータ駆動動作処理を行う(ステップS5、S6)。また、モータ駆動制御プログラムは、モータ駆動動作処理が完了した時点で、ロータのスタック状態を示すスタックロータ検出フラグSTC_DETがTRUEであるか否かを判断する(ステップS7)。ステップS7においてスタックロータ検出フラグSTC_DETがFALSEであると判断された場合、つまり、モータが回転していると判断された場合、再びタイマ割り込みの発生を待つ。一方、ステップS7においてスタックロータ検出フラグSTC_DETがTRUEで有ると判断された場合、つまり、モータが回転していないと判断された場合、ステップS1の変数初期化処理に戻る。 Then, the motor drive control program waits for the occurrence of a timer interrupt, and performs motor drive operation processing due to the occurrence of the timer interrupt (steps S5 and S6). The motor drive control program determines whether or not the stack rotor detection flag STC_DET indicating the stack state of the rotor is TRUE at the time when the motor drive operation process is completed (step S7). If it is determined in step S7 that the stack rotor detection flag STC_DET is FALSE, that is, if it is determined that the motor is rotating, the generation of a timer interrupt is awaited again. On the other hand, if it is determined in step S7 that the stack rotor detection flag STC_DET is TRUE, that is, if it is determined that the motor is not rotating, the process returns to the variable initialization process in step S1.
続いて、ステップS1の変数初期化処理について詳細に説明する。変数初期化処理の詳細な動作手順を示すフローチャートを図4に示す。図4に示すように、変数初期化処理では、まず、タイマの初期化処理を行う(ステップS10)。より具体的には、ステップS10では、タイマ17のレジスタにPWM信号のオンタイム期間に基づき第1の設定値と、PWM信号の1周期の長さを指定する第2の設定値を格納する。
Next, the variable initialization process in step S1 will be described in detail. FIG. 4 is a flowchart showing a detailed operation procedure of the variable initialization process. As shown in FIG. 4, in the variable initialization process, first, a timer initialization process is performed (step S10). More specifically, in step S10, a first set value and a second set value for designating the length of one cycle of the PWM signal are stored in the register of the
次いで、移動平均ステートPWMパルス数ST_PWM_PLS_AVEと、PWMパルス数PWM_PLS[0]〜PWM_LPLS[5]と、を最大パルスカウント数とする。移動平均ステートPWMパルス数ST_PWM_PLS_AVEは、モータを一回転させるために、6つの状態を利用する場合は、この6状態に含まれる各状態の平均PWMパルス数を示すものである。PWMパルス数PWM_PLS[0]〜PWM_LPLS[5]は、状態0〜状態5の各状態の期間の長さを規定するPWM信号のパルス数である。最大パルスカウント数は、例えば、モータ4を最低回転速度で動作させた場合における一状態の間のPWM信号のパルス数であって、予め設定される値である。
Next, the moving average state PWM pulse number ST_PWM_PLS_AVE and the PWM pulse number PWM_PLS [0] to PWM_LPLS [5] are set as the maximum pulse count number. The moving average state PWM pulse number ST_PWM_PLS_AVE indicates the average PWM pulse number of each state included in the six states when six states are used to rotate the motor once. The PWM pulse numbers PWM_PLS [0] to PWM_LPLS [5] are the number of pulses of the PWM signal that define the length of each period of the
次いで、起動時のフライバックパルス継続PWMパルス数FB_MASKの値を設定する(ステップS12)。ステップS12では、フライバックパルス継続PWMパルス数FB_MASKにモータ4の最大回転速度に相当する6ステートPWMパルス数の6分の1の値を設定する。モータ4が無負荷状態で回転を開始した場合、回転速度が高い状態で回転を開始する場合があるが、起動時のフライバックパルス継続PWMパルス数FB_MASKをこのような値に設定することで、無負荷状態でモータ4が回転を開始したとしても、ロータの回転位置と駆動信号の状態とがずれて意図した回転方向と逆の回転方向でモータ4が回転することを防止することができる。
Next, the value of the number FB_MASK of flyback pulse continuation PWM pulses at start-up is set (step S12). In step S12, a value of 1/6 of the number of 6-state PWM pulses corresponding to the maximum rotation speed of the
次いで、定電流制御指示値CNST_CRNT_SETを最大電流値MAX_CRNTの3分の1の値に設定する(ステップS13)。この最大電流値MAX_CRNTは、ドライバ回路3を構成するトランジスタに許容される所定時間当りの最大電流に相当する値である。通常、3相の駆動信号を生成する場合、ドライバ回路3は3組の駆動段回路を有する。そのため、モータを一回転させるために、3組の駆動段回路が導通状態となる期間はモータを一回転させる時間の3分の1の時間である。しかし、回転開始時は、モータが停止状態にあり、駆動段回路が導通状態となる時間がモータの回転時よりも長くなる。そのため、回転開始時に、定電流制御指示値CNST_CRNT_SETを最大電流値MAX_CRNTした場合、駆動段回路のそれぞれに流れる電流が最大電流を超えるおそれがある。そこで、定電流制御指示値CNST_CRNT_SETを最大電流値MAX_CRNTの3分の1の値に設定する。これにより、PWM信号の一状態の長さが長くなったとしても、駆動段回路を構成するトランジスタには、最大電流以上の電流が流れることを防止することができる。
Next, the constant current control instruction value CNST_CRNT_SET is set to a value one third of the maximum current value MAX_CRNT (step S13). The maximum current value MAX_CRNT is a value corresponding to the maximum current per predetermined time allowed for the transistors constituting the
次いで、スタックロータ検出フラグをFALSEに設定する(ステップS14)。モータの回転開始前は、モータは停止状態であるため、その状態を確定させるためである。 Next, the stack rotor detection flag is set to FALSE (step S14). This is because the motor is in a stopped state before the motor starts rotating, so that the state is determined.
次いで、回転速度誤差積分値ROT_ERR_INTGと、電流誤差積分値CRNT_ERR_INTGをカウント初期値(例えば、ゼロ)に初期化する(ステップS15)。回転速度誤差積分値ROT_ERR_INTG及び電流誤差積分値CRNT_ERR_INTGは、初期化を行わない場合、値が不定であり、初期化前の値を用いた場合、モータ駆動制御装置1が正常に動作しない可能性がある。そこで、この初期化処理により値をゼロとすることで、モータ駆動制御装置1の動作開始時の回転速度誤差積分値ROT_ERR_INTG及び電流誤差積分値CRNT_ERR_INTGの値を確定させる。
Next, the rotational speed error integrated value ROT_ERR_INTG and the current error integrated value CRNT_ERR_INTG are initialized to a count initial value (for example, zero) (step S15). The rotation speed error integrated value ROT_ERR_INTG and the current error integrated value CRNT_ERR_INTG are undefined when initialization is not performed, and the motor
続いて、図3のステップS6で示したモータ駆動動作処理の詳細について説明する。そこで、モータ駆動動作処理の動作手順を示すフローチャートを図5に示す。図5に示すように、モータ駆動動作処理は、PWMデモジュレーション処理(ステップS20)及びPWMモジュレーション処理(ステップS30)、及び、PWM信号設定処理(ステップS40)により構成される。 Next, details of the motor drive operation process shown in step S6 of FIG. 3 will be described. FIG. 5 is a flowchart showing the operation procedure of the motor drive operation process. As shown in FIG. 5, the motor drive operation process includes a PWM demodulation process (step S20), a PWM modulation process (step S30), and a PWM signal setting process (step S40).
PWMデモジュレーション処理は、図2のPWMデモジュレータ21にて実行される処理である。また、PWMモジュレーション処理は、図2のPWMモジュレータ22で実行される処理である。
The PWM demodulation process is a process executed by the
PWMデモジュレーション処理では、まず、入力された割り込みがBEMFタイマ割り込みであるであるか否かを判断する(ステップS21)。そして、割り込みがBEMFタイマ割り込みであると判断された場合、BEMFタイマ割り込みをクリアする(ステップS22)。次いで、コンパレータ15の出力信号CMP_OUTの出力値をサンプリングする。次いで、アナログデジタル変換器16からモータの駆動電流の電流値をサンプリングする。なお、駆動電流の電流値は、定電流駆動制御部23にて利用される。次いで、PWMデモジュレーション処理の終了を受けて、PWMモジュレーション処理が開始される。
In the PWM demodulation process, first, it is determined whether or not the input interrupt is a BEMF timer interrupt (step S21). If it is determined that the interrupt is a BEMF timer interrupt, the BEMF timer interrupt is cleared (step S22). Next, the output value of the output signal CMP_OUT of the
割り込みがBEMFタイマ割り込みに応じて開始されるPWMモジュレーション処理では、まず、PWM信号のオンタイムPWM_ONがPWM信号の周期PWM_TRMよりも小さいか否かを判断する(ステップS31)。そして、PWM信号のオンタイムPWM_ONがPWM信号の周期PWM_TRMよりも小さいと判断された場合、オフステートのPWM信号をGPIO13に出力する(ステップS32)。なお、モータ駆動制御プログラムでは、モータ4が3相駆動方式である場合6つのPWM信号を生成するが、6つのPWM信号のいずれのPWM信号をオフステートとするか、又は、オンステートとするかをステートテーブルの記述に従って決定する。ステートテーブルには、PWM信号の状態毎にオンステートとオフステートとを切り換えるPWM信号の指定、及びオフステートとしてハイサイドオフの状態とするかローサイドオフの状態とするかの指定が規定される。
In the PWM modulation process in which the interrupt is started in response to the BEMF timer interrupt, first, it is determined whether or not the on-time PWM_ON of the PWM signal is smaller than the cycle PWM_TRM of the PWM signal (step S31). If it is determined that the on-time PWM_ON of the PWM signal is smaller than the period PWM_TRM of the PWM signal, an off-state PWM signal is output to the GPIO 13 (step S32). In the motor drive control program, six PWM signals are generated when the
その後、PWM信号のオフステートサイドを反転する(ステップS33)。このステップS33では、PWM信号の信号パターンを指示するステートテーブルのオフステートのパターンをハイサイドオフの状態とするかローサイドオフの状態とするかを切り換える処理である。例えば、PWM信号の現周期でステートテーブルのオフステートがハイサイドオフを指示している場合、PWM信号の次周期ではステートテーブルのオフステートがローサイドオフを指示するように更新する。このステップS33は、実施の形態1にかかるモータ駆動制御装置1が、PWM信号の周期毎にPWM信号のオフステート期間としてハイサイドオフステートとローサイドオフステートとを交互に切り換えるオルタネートPWM方式の動作のために行われる処理である。一方、ステップS31において、PWM信号のオンタイムPWM_ONがPWM信号の周期PWM_TRM以上と判断された場合、PWM信号をオンステートで維持する(ステップS34)。
Thereafter, the off-state side of the PWM signal is inverted (step S33). In step S33, the state table indicating the signal pattern of the PWM signal is switched between a high-side off state and a low-side off state. For example, when the off-state of the state table indicates high-side off in the current cycle of the PWM signal, the state table is updated so that the off-state of the state table indicates low-side off in the next cycle of the PWM signal. This step S33 is an operation of the alternate PWM method in which the motor
つまり、モータ駆動制御装置1は、PWM信号のオンタイムPWM_ONがPWM信号の一周期よりも小さい場合、BEMFタイマ割り込みが発生をトリガとして、コンパレータ15の出力信号CMP_OUTのサンプリングと、PWM信号のオンステートからオフステートへの切り換えを行う。また、モータ駆動制御装置1は、オンタイムPWM_ONがPWM信号の一周期以上である場合、BEMFタイマ割り込みが発生をトリガとして、コンパレータ15の出力信号CMP_OUTのサンプリングを行うが、PWM信号のオンステートからオフステートへの切り換えは行わない。
That is, when the PWM signal on-time PWM_ON is smaller than one cycle of the PWM signal, the motor
そして、ステップS33又はステップS34の処理が完了すると、モータ駆動制御プログラムは、モータ駆動制御処理を終了させる。 When the process of step S33 or step S34 is completed, the motor drive control program ends the motor drive control process.
一方、ステップS21において割り込みがBEMFタイマ割り込みではない判断された場合、つまり、割り込みが周期タイマ割り込みである場合、周期タイマ割り込みをクリアする(ステップS25)。次いで、PWM信号の現周期において算出されたPWM信号のオンタイムPWM_ONの値で次周期のPWM信号のオンタイムPWM_ONを更新する。次いで、PWMデモジュレーション処理の処理結果を受けて、PWMモジュレーション処理が開始される。 On the other hand, if it is determined in step S21 that the interrupt is not a BEMF timer interrupt, that is, if the interrupt is a periodic timer interrupt, the periodic timer interrupt is cleared (step S25). Next, the on-time PWM_ON of the PWM signal in the next cycle is updated with the value of the on-time PWM_ON of the PWM signal calculated in the current cycle of the PWM signal. Next, in response to the processing result of the PWM demodulation process, the PWM modulation process is started.
割り込みがBEMFタイマ割り込みに応じて開始されるPWMモジュレーション処理では、まず、PWM信号のオンタイムPWM_ONがゼロよりも大きいか否かを判断する(ステップS35)。つまり、ステップS35では、生成するPWM信号にオン期間があるか否かを判断する。そして、ステップS35において、PWM信号のオンタイムPWM_ONがゼロよりも大きいと判断された場合、オンステートのPWM信号をGPIO13に出力する(ステップS36)。次いで、BEMFタイマ割り込みを許可する(ステップS37)。一方、ステップS35において、PWM信号のオンタイムPWM_ONがゼロ以下であると判断された場合、オフステートを維持したPWM信号をGPIO13に出力する(ステップS38)。その後、ステップS33と同様にPWM信号のオフステートの反転を行う(ステップS39)。このオフステートの反転処理は、実施の形態1にかかるモータ駆動制御装置1が、PWM信号の周期毎にPWM信号のオフステート期間としてハイサイドオフステートとローサイドオフステートとを交互に切り換えるオルタネートPWM方式の動作のために行われる処理である。
In the PWM modulation process in which the interrupt is started in response to the BEMF timer interrupt, it is first determined whether or not the on-time PWM_ON of the PWM signal is greater than zero (step S35). That is, in step S35, it is determined whether or not the PWM signal to be generated has an on period. If it is determined in step S35 that the on-time PWM_ON of the PWM signal is greater than zero, the on-state PWM signal is output to the GPIO 13 (step S36). Next, the BEMF timer interrupt is permitted (step S37). On the other hand, if it is determined in step S35 that the on-time PWM_ON of the PWM signal is equal to or less than zero, the PWM signal maintaining the off state is output to the GPIO 13 (step S38). Thereafter, the off-state inversion of the PWM signal is performed similarly to step S33 (step S39). This off-state inversion processing is an alternate PWM method in which the motor
そして、ステップS37又はステップS39の処理が完了すると、モータ駆動制御プログラムは、PWM信号設定処理を行う(ステップS40)。PWM信号設定処理が完了した場合は、モータ駆動制御処理を終了する。 When the process of step S37 or step S39 is completed, the motor drive control program performs a PWM signal setting process (step S40). When the PWM signal setting process is completed, the motor drive control process ends.
続いて、ステップS40のPWM信号設定処理について説明する。PWM信号設定処理では、次周期のPWM信号のオンタイムPWM_ONの算出処理及びPWM信号のステートの更新処理を行う。これらの処理を行うための、PWM信号設定処理の詳細なフローチャートを図6に示す。 Next, the PWM signal setting process in step S40 will be described. In the PWM signal setting process, a process for calculating the on-time PWM_ON of the PWM signal in the next cycle and a process for updating the state of the PWM signal are performed. FIG. 6 shows a detailed flowchart of the PWM signal setting process for performing these processes.
図6に示すように、PWM信号設定処理では、まず、ステートPWMパルス数ST_PWM_PLSのカウントアップ処理を行う(ステップS41)。このステートPWMパルス数ST_PWM_PLSは、PWM信号が現状態に遷移した後の経過時間を示す値である。実施の形態1にかかるモータ駆動制御プログラムでは、各状態の経過時間をPWM信号のパルス数をカウントすることで算出する。なお、ステートPWMパルス数ST_PWM_PLSのカウントアップ処理は、図2のロータ位置検出部24にて行われる処理である。
As shown in FIG. 6, in the PWM signal setting process, first, the count-up process of the number of state PWM pulses ST_PWM_PLS is performed (step S41). This state PWM pulse number ST_PWM_PLS is a value indicating an elapsed time after the PWM signal transits to the current state. In the motor drive control program according to the first embodiment, the elapsed time of each state is calculated by counting the number of pulses of the PWM signal. The count-up process of the number of state PWM pulses ST_PWM_PLS is a process performed by the rotor
次いで、モータ駆動制御プログラムは、回転速度指示値ROT_SETの値を更新する(ステップS42)。回転速度指示値ROT_SETは、例えば、モータ駆動制御装置1の外部から与えられるPWMデューティ制御信号によって与えられる。なお、回転速度指示値ROT_SETの更新処理は、図2の回転速度制御部26で行われる処理である。
Next, the motor drive control program updates the value of the rotation speed instruction value ROT_SET (step S42). The rotation speed instruction value ROT_SET is given by, for example, a PWM duty control signal given from the outside of the motor
次いで、モータ駆動制御プログラムは、定電流制御処理を行う(ステップS43)。この定電流制御処理は、モータ4を定電流駆動する場合の帰還制御値を生成する処理である。定電流制御処理の詳細については後述する。なお、定電流制御処理は、図2の定電流駆動制御部23で行われる処理である。
Next, the motor drive control program performs a constant current control process (step S43). This constant current control process is a process for generating a feedback control value when the
次いで、モータ駆動制御プログラムは、ステートPWMパルス数PWM_PLSとフライバックパルス継続PWMパルス数FB_MASKとを比較する(ステップS44)。そして、ステートPWMパルス数PWM_PLSがフライバックパルス継続PWMパルス数FB_MASKよりも小さい場合、フライバックパルスフィルタ処理を行う(ステップS45)。一方、ステートPWMパルス数PWM_PLSがフライバックパルス継続PWMパルス数FB_MASK以上であった場合、ロータ位置検出処理(ステップS49)を行う。なお、ロータ位置検出処理の中でステート制御処理も行われる。ステップS44、S45の処理は、図2のロータ位置検出部24にて行われ、ステップS49の処理は、ロータ位置検出部24、回転制御部25及び回転速度制御部26にて行われる。フライバックフィルタ処理と、ロータ位置検出処理の詳細については、後述する。
Next, the motor drive control program compares the number of state PWM pulses PWM_PLS with the number of flyback pulse continued PWM pulses FB_MASK (step S44). When the state PWM pulse number PWM_PLS is smaller than the flyback pulse continuation PWM pulse number FB_MASK, the flyback pulse filter process is performed (step S45). On the other hand, when the state PWM pulse number PWM_PLS is equal to or greater than the flyback pulse continuous PWM pulse number FB_MASK, the rotor position detection process (step S49) is performed. Note that state control processing is also performed in the rotor position detection processing. The processing of steps S44 and S45 is performed by the rotor
3相駆動のモータでは、非通電相の駆動信号に、PWM信号の状態遷移の直後にフライバックパルスが生じる。このフラバックパルスが生じている期間は、センタータップ電圧CTと比較対象検出信号SP(非通電相の駆動信号)の電圧関係がロータの位置がPWM信号の状態を次状態へ切り替えるタイミングに達した場合の比較対象検出信号SPとセンタータップ電圧CTとの関係と同じになる。そこで、実施の形態1にかかるモータ駆動制御プログラムでは、PWM信号の状態が遷移した後の所定の期間はコンパレータの出力信号CMP_OUTの値によらずコンパレータ積分値CMP_INTGをカウントアップ又はカウントダウンする。実施の形態1では、この所定の期間をPWM信号の状態が維持される一期間の所定の割合の期間として予め設定する。図6に示す例では、この所定の期間を規定する変数として、フライバックパルス継続PWMパルス数FB_MASKとの変数を設けた。そして、このフライバックパルス継続PWMパルス数FB_MASKとして、モータ4の起動時は最大回転速度に相当する6ステートPWMパルス数の6分の1の値を設定し、モータ4が回転を開始した後は移動平均ステートPWMパルス数ST_PWM_PLS_AVEの4分の1を設定する。
In a three-phase drive motor, a flyback pulse is generated in the non-energized phase drive signal immediately after the state transition of the PWM signal. During the period in which the fluff back pulse is generated, the voltage relationship between the center tap voltage CT and the comparison target detection signal SP (non-energized phase drive signal) has reached the timing when the rotor position switches the PWM signal state to the next state. In this case, the relationship between the comparison target detection signal SP and the center tap voltage CT is the same. Therefore, in the motor drive control program according to the first embodiment, the comparator integral value CMP_INTG is counted up or down regardless of the value of the output signal CMP_OUT of the comparator for a predetermined period after the state of the PWM signal transitions. In the first embodiment, this predetermined period is set in advance as a period of a predetermined ratio of one period during which the state of the PWM signal is maintained. In the example illustrated in FIG. 6, a variable of the number FB_MASK of flyback pulse continuous PWM pulses is provided as a variable that defines the predetermined period. Then, as the flyback pulse continuous PWM pulse number FB_MASK, a value of 1/6 of the 6-state PWM pulse number corresponding to the maximum rotation speed is set when the
次いで、ステップS45又はステップS49の処理が完了すると、モータ駆動制御プログラムは、レギュレーションループ調停処理が行われる(ステップS46)。レギュレーションループ調停処理では、定電流制御処理(ステップS43)で算出された制御帰還値と、ステップS49内のステート制御処理でモータ4の回転速度に基づき生成される制御帰還値と、のいずれの値に基づき次周期のPWM信号のデューティ比を設定するかの調停処理が行われる。なお、レギュレーションループ調停処理は、図2のPWMデューティ制御部にて行われる。また、レギュレーションループ調停処理の詳細については、後述する。
Next, when the process of step S45 or step S49 is completed, the motor drive control program performs a regulation loop arbitration process (step S46). In the regulation loop arbitration process, any one of the control feedback value calculated in the constant current control process (step S43) and the control feedback value generated based on the rotation speed of the
次いで、モータ駆動制御プログラムは、PWMプリモジュレーション処理を行う(ステップS47)。PWMプリモジュレーション処理では、レギュレーションループ調停処理において決定された制御帰還値に基づき次周期のPWM信号のデューティ比が決定され、当該デューティ比に基づきPWM信号のオンタイムPWM_ONが決定される。このPWMプリモジュレーション処理は、図2のPWMデューティ制御部にて行われる。また、PWMプリモジュレーション処理の詳細については、後述する。 Next, the motor drive control program performs PWM pre-modulation processing (step S47). In the PWM pre-modulation process, the duty ratio of the PWM signal of the next period is determined based on the control feedback value determined in the regulation loop arbitration process, and the on-time PWM_ON of the PWM signal is determined based on the duty ratio. This PWM pre-modulation process is performed by the PWM duty control unit in FIG. Details of the PWM pre-modulation process will be described later.
次いで、モータ駆動制御プログラムは、次周期のPWM信号のオンステートとオフステートとを設定する(ステップS48)。このステップS48の処理は、6ステートテーブルのうちPWM信号の次周期のステートカウント値ST_CNTに応じたステートテーブルのPWM信号パターンを読み込む処理である。PWM信号のパターンは、例えば、更新後の状態において導通相とする駆動信号を生成するドライバ回路3の駆動段回路にPWM信号を与え、非導通相とする相の駆動信号を生成するドライバ回路3の駆動段回路にはPWM信号の供給を停止するPWM信号のパターンを指示するものである。また、ステップS48において設定されるオフステートは、ステップS33、S39で選択されたサイドのオフステートが設定される。
Next, the motor drive control program sets an on state and an off state of the PWM signal in the next cycle (step S48). The process of step S48 is a process of reading the PWM signal pattern of the state table corresponding to the state count value ST_CNT of the next cycle of the PWM signal among the 6 state tables. The pattern of the PWM signal is, for example, a
ここで、ステップS43の定電流制御処理についてさらに詳細に説明する。そこで、定電流制御処理の詳細な動作手順を示すフローチャートを図7に示す。図7に示すように、定電流制御処理では、まず、定電流制御指示値CNST_CRNT_SETと、図5のステップS24でサンプリングしたモータの駆動電流MIと、の電流誤差CRNT_ERRを算出する(ステップS50)。次いで、ステップS50で算出した電流誤差CRNT_ERRと電流誤差積分値CRNT_ERR_INTGとを加算して、電流誤差積分値CRNT_ERR_INTGの値を更新する(ステップS51)。次いで、ステップS51で算出した電流誤差積分値CRNT_ERR_INTGのクランプ処理を行う(ステップS52)。実施の形態1にかかるモータ駆動制御プログラムでは、予めCRNT_ERR_INTGの最大値と最小値が規定されている。そして、ステップS52のクランプ処理では、回転速度誤差積分値ROT_ERR_INTGの値が予め規定された最大値と最小値との間の値であって、所定のビット幅で表せる値に変換する。電流誤差積分値CRNT_ERR_INTGは、定電流駆動制御部23で生成される制御帰還値に相当する値である。
Here, the constant current control process in step S43 will be described in more detail. FIG. 7 is a flowchart showing the detailed operation procedure of the constant current control process. As shown in FIG. 7, in the constant current control process, first, a current error CRNT_ERR between the constant current control instruction value CNST_CRNT_SET and the motor drive current MI sampled in step S24 of FIG. 5 is calculated (step S50). Next, the current error integrated value CRNT_ERR_INTG is added by updating the current error CRNT_ERR calculated in step S50 and the current error integrated value CRNT_ERR_INTG (step S51). Next, the current error integrated value CRNT_ERR_INTG calculated in step S51 is clamped (step S52). In the motor drive control program according to the first embodiment, the maximum value and the minimum value of CRNT_ERR_INTG are defined in advance. In the clamping process in step S52, the value of the rotational speed error integrated value ROT_ERR_INTG is a value between a predetermined maximum value and a minimum value, and is converted to a value that can be expressed by a predetermined bit width. The current error integrated value CRNT_ERR_INTG is a value corresponding to the control feedback value generated by the constant current
続いて、ステップS45のフライバックフィルタ処理の詳細について説明する。そこで、フライバックフィルタ処理の詳細な動作手順を示すフローチャートを図8に示す。図8に示すように、フライバックフィルタ処理では、まず、モータ駆動制御プログラムは、回転方向指示フラグFWDがTRUEであるか否かを判断する(ステップS60)。回転方向指示フラグFWDは、モータ4を正回転方向で制御するか、逆回転方向で制御するかを指示する値であって、外部入力信号により設定される値である。回転方向指示フラグFWADがTRUEである場合、モータ駆動制御装置1はモータ4を正回転方向で制御し、回転方向指示フラグFWADがFALSEである場合、モータ駆動制御装置1はモータ4を逆回転方向で制御する。ステップS60において、回転方向指示フラグFWDがモータ4を正回転方向で制御することを指示していると判断された場合、モータ駆動制御プログラムは、ステートカウント値ST_CNTを参照し、値が奇数であるか偶数であるかを判定する(ステップS61)。このステートカウント値ST_CNTは、PWM信号の状態がいずれの制御状態であるかを示す値である。
Next, details of the flyback filter process in step S45 will be described. FIG. 8 is a flowchart showing the detailed operation procedure of the flyback filter process. As shown in FIG. 8, in the flyback filter process, first, the motor drive control program determines whether or not the rotation direction instruction flag FWD is TRUE (step S60). The rotation direction instruction flag FWD is a value for instructing whether to control the
実施の形態1にかかるモータ駆動制御装置1では、ステートカウント値ST_CNTが奇数である場合、比較対象検出信号となる非通電相の電圧がセンタータップ電圧CTに対して小さな状態から大きな状態に遷移する。また、実施の形態1にかかるモータ駆動制御装置1では、ステートカウント値ST_CNTが偶数である場合、比較対象検出信号となる非通電相の電圧がセンタータップ電圧CTに対して大きな状態から小さな状態に遷移する。つまり、フライバックパルスがないとすると、ステートカウント値ST_CNTが奇数である期間中にコンパレータ15の出力信号CMP_OUTは、0から1に遷移する。また、フライバックパルスがないとすると、ステートカウント値ST_CNTが偶数である期間中にコンパレータ15の出力信号CMP_OUTは、1から0に遷移する。そのため、モータ駆動制御プログラムは、ステップS61においてステートカウント値ST_CNTが奇数であると判断された場合は、コンパレータ積分値CMP_INTGから1を減算する(ステップS62)。また、モータ駆動制御プログラムは、ステップS61においてステートカウント値ST_CNTが偶数であると判断された場合は、コンパレータ積分値CMP_INTGに1を加算する(ステップS63)。そして、ステップS62又はステップS63の処理が終了するとフライバックフィルタ処理を終了する。
In the motor
一方、ステップS60において、回転方向指示フラグFWDがモータ4を逆回転方向で制御することを指示していると判断された場合も、モータ駆動制御プログラムは、ステートカウント値ST_CNTを参照し、値が奇数であるか偶数であるかを判定する(ステップS64)。ここで、回転方向指示フラグFWDがモータ4を正回転方向で制御することを指示していると判断された場合、モータ4のロータに流れる駆動電流は正回転している場合の逆となる。そのため、ステートカウント値ST_CNTが奇数である場合のコンパレータ15の出力信号の遷移方向は、モータ4が正回転方向で回転している場合の逆になる。
On the other hand, when it is determined in step S60 that the rotation direction instruction flag FWD instructs to control the
そのため、モータ駆動制御プログラムは、ステップS64においてステートカウント値ST_CNTが奇数であると判断された場合は、コンパレータ積分値CMP_INTGに1を加算する(ステップS65)。また、モータ駆動制御プログラムは、ステップS64においてステートカウント値ST_CNTが偶数であると判断された場合は、コンパレータ積分値CMP_INTGから1を減算する(ステップS66)。そして、ステップS65又はステップS66の処理が終了するとフライバックフィルタ処理を終了する。 Therefore, when it is determined in step S64 that the state count value ST_CNT is an odd number, the motor drive control program adds 1 to the comparator integral value CMP_INTG (step S65). If it is determined in step S64 that the state count value ST_CNT is an even number, the motor drive control program subtracts 1 from the comparator integral value CMP_INTG (step S66). Then, when the process of step S65 or step S66 ends, the flyback filter process ends.
続いて、ステップS49のロータ位置検出処理の詳細について説明する。そこで、ロータ位置検出処理の詳細な動作手順を示すフローチャートを図9に示す。図9に示すように、モータ駆動制御プログラムは、まず、図5のステップS23でサンプリングされたコンパレータ15の出力信号CMP_OUTの値が1であるか否かを判断する(ステップS70)。ステップS70において、コンパレータ15の出力信号CMP_OUTが1であった場合、コンパレータ積分値CMP_INTGをカウントアップする。一方、コンパレータ15の出力信号CMP_OUTが1であった場合、コンパレータ積分値CMP_INTGをカウントダウンする。つまり、モータ駆動制御プログラムは、コンパレータ15の出力信号CMP_OUTの値をサンプリングした時点で、比較対象検出信号(非通電相の駆動信号)の電圧値がセンタータップ電圧CTよりも大きいと判断された場合は、コンパレータ積分値を増加させ、比較対象検出信号の電圧値がセンタータップ電圧CTよりも小さいと判断された場合は、コンパレータ積分値を減少させる。
Next, details of the rotor position detection process in step S49 will be described. FIG. 9 is a flowchart showing the detailed operation procedure of the rotor position detection process. As shown in FIG. 9, the motor drive control program first determines whether or not the value of the output signal CMP_OUT of the
次いで、モータ駆動制御プログラムは、ステートPWMパルス数ST_PWM_PLSが最大パルスカウント数MAXCNTよりも大きいか否かを判断する(ステップS73)。このステップS73において、ステートPWMパルス数ST_PWM_PLSが最大パルスカウント数よりも大きい場合、ステート制御処理(ステップS74)を行った後に有効スタートアップフラグSTUPをFALSEとし(ステップS75)、ゼロクロスカウント値ZC_CNTにゼロを設定する(ステップS76)。そして、ステップS76の処理が完了したことに伴い、ロータ位置検出処理を終了する。モータ駆動制御プログラムの最大パルスカウント数は、モータ4が最低回転速度で回転している場合の1状態のステートPWMパルス数を規定するものである。つまり、ステップS73において、ステートPWMパルス数ST_PWM_PLSが最大パルスカウント数よりも大きい場合、モータ4は、最低回転速度以下の回転速度で回転しているか、停止しているかのいずれかである。そのため、この場合は、有効スタートアップフラグSTUPをFALSEとし、ゼロクロスが生じた回数をカウントするゼロクロスカウント値ZC_CNTをゼロにリセットする。
Next, the motor drive control program determines whether or not the state PWM pulse number ST_PWM_PLS is larger than the maximum pulse count number MAXCNT (step S73). In this step S73, when the state PWM pulse number ST_PWM_PLS is larger than the maximum pulse count number, after performing the state control process (step S74), the effective startup flag STUP is set to FALSE (step S75), and zero is set to the zero cross count value ZC_CNT. Setting is made (step S76). Then, the rotor position detection process is terminated when the process of step S76 is completed. The maximum pulse count number of the motor drive control program defines the number of state PWM pulses in one state when the
一方、ステップS73において、ステートPWMパルス数ST_PWM_PLSが最大パルスカウント数以下である場合、モータ駆動制御プログラムは、コンパレータ積分値CMP_INTGがゼロであるか否かを判断する(ステップS77)。ステップS77において、モータ駆動制御プログラムは、コンパレータ積分値CMP_INTGがゼロであると判断された場合、ステート制御処理を行う(ステップS78)。そして、ゼロクロスカウント値ZC_CNTに1を加算する(ステップS79)。次いで、モータ駆動制御プログラムは、ゼロクロスカウント値が5よりも大きいか否かを判断する(ステップS80)。ステップS80においてゼロクロスカウント値ZC_CNTが5よりも大きいと判断された場合、ゼロクロスカウント値ZC_CNTを5よりも大きな値(例えば、6)に設定する(ステップS81)。また、有効スタートアップフラグSTUPをTRUEとする(ステップS82)。 On the other hand, when the state PWM pulse number ST_PWM_PLS is equal to or smaller than the maximum pulse count number in step S73, the motor drive control program determines whether or not the comparator integral value CMP_INTG is zero (step S77). If it is determined in step S77 that the comparator integral value CMP_INTG is zero, the motor drive control program performs state control processing (step S78). Then, 1 is added to the zero cross count value ZC_CNT (step S79). Next, the motor drive control program determines whether the zero cross count value is greater than 5 (step S80). When it is determined in step S80 that the zero cross count value ZC_CNT is larger than 5, the zero cross count value ZC_CNT is set to a value larger than 5 (for example, 6) (step S81). Further, the effective startup flag STUP is set to TRUE (step S82).
実施の形態1にかかるモータ駆動制御プログラムでは、PWM信号の各状態の開始直後の所定の期間においてフライバックフィルタ処理(ステップS45)が行われ、ステップS77の判断処理が最初に行われる時点では、コンパレータ積分値CMP_INTGは、正の値と負の値のいずれかの値となっている。そのため、コンパレータ積分値CMP_INTGがゼロとなると言うことは、比較対象検出信号SPとセンタータップ電圧CTとの電圧関係が逆転するゼロクロスが発生したことを意味する。そのため、上記説明のように、モータ駆動制御プログラムは、この場合は、ゼロクロスカウント値ZC_CNTを加算する。そして、ゼロクロスカウント値ZC_CNTが5以上の値となったことに応じて、モータ4が電気角で一回転以上したと判断して有効スタートアップフラグSTUPをTRUEとする。
In the motor drive control program according to the first embodiment, flyback filter processing (step S45) is performed in a predetermined period immediately after the start of each state of the PWM signal, and when the determination processing in step S77 is first performed, The comparator integral value CMP_INTG is a positive value or a negative value. Therefore, the fact that the comparator integral value CMP_INTG becomes zero means that a zero cross in which the voltage relationship between the comparison target detection signal SP and the center tap voltage CT is reversed has occurred. Therefore, as described above, the motor drive control program adds the zero cross count value ZC_CNT in this case. Then, in response to the zero cross count value ZC_CNT becoming a value of 5 or more, it is determined that the
一方、ステップS77においてコンパレータ積分値CMP_INTGがゼロに達していないと判断された場合、モータ駆動制御プログラムは、有効スタートアップフラグSTUPがTRUEであるか否かを判断する(ステップS83)。このステップS83において有効スタートアップフラグSTUPがFALSEであると判断された場合、モータ駆動制御プログラムは、ロータの位置検出ができないと判断してロータ位置検出処理を終了する。 On the other hand, when it is determined in step S77 that the comparator integral value CMP_INTG has not reached zero, the motor drive control program determines whether or not the effective startup flag STUP is TRUE (step S83). If it is determined in step S83 that the effective startup flag STUP is FALSE, the motor drive control program determines that the rotor position cannot be detected, and ends the rotor position detection process.
一方、ステップS83において有効スタートアップフラグSTUPがTRUEであると判断された場合、ステートPWMパルス数ST_PWM_PLSが移動平均ステートPWMパルス数ST_PWM_PLS_AVEよりも大きいか否かを判断する(ステップS84)。ステップS84においてステートPWMパルス数ST_PWM_PLSが移動平均ステートPWMパルス数ST_PWM_PLS_AVE以下の値であると判断された場合、モータ駆動制御プログラムは、PWM信号の一状態が維持される最大許容期間を未だに経過していないと判断してロータ位置検出処理を終了する。一方、ステップS84においてステートPWMパルス数ST_PWM_PLSが移動平均ステートPWMパルス数ST_PWM_PLS_AVEより大きな値であると判断された場合、モータ駆動制御プログラムは、ステート制御処理(ステップS85)を行った後にロータ位置検出処理を終了する。 On the other hand, when it is determined in step S83 that the effective startup flag STUP is TRUE, it is determined whether or not the state PWM pulse number ST_PWM_PLS is larger than the moving average state PWM pulse number ST_PWM_PLS_AVE (step S84). If it is determined in step S84 that the state PWM pulse number ST_PWM_PLS is equal to or less than the moving average state PWM pulse number ST_PWM_PLS_AVE, the motor drive control program has yet passed the maximum allowable period during which one state of the PWM signal is maintained. It is determined that there is no rotor position detection process. On the other hand, when it is determined in step S84 that the state PWM pulse number ST_PWM_PLS is larger than the moving average state PWM pulse number ST_PWM_PLS_AVE, the motor drive control program performs the rotor position detection process after performing the state control process (step S85). Exit.
ロータ位置検出処理において行われるステート制御処理(ステップS74、S78、S85)は、同じ処理ルーチンである。このステート制御処理では、PWM信号を次状態に遷移させるための処理である。つまり、実施の形態1にかかるモータ駆動制御プログラムは、モータ4の回転速度が最低回転速度以下である場合(ステップS73のYESの枝)、コンパレータ積分値CMP_INTGがゼロとなることに応じてロータの位置が検出された場合(ステップS77のYESの枝)、及び、モータ4が回転している状態でロータの位置検出が行われないもののPWM信号の現状態の継続期間が移動平均ステートPWMパルス数ST_PWM_PLS_AVEで示される長さに達してしまった場合(ステップS84のYESの枝)に、PWM信号の状態を次状態に遷移させる。なお、ステート制御処理では、PWM信号の周期毎に更新する必要はないが、所定の頻度では更新が必要な変数の算出処理が行われる。
The state control processing (steps S74, S78, S85) performed in the rotor position detection processing is the same processing routine. This state control process is a process for transitioning the PWM signal to the next state. That is, in the motor drive control program according to the first embodiment, when the rotational speed of the
続いて、ステップS74、S78、S85のステート制御処理の詳細について説明する。そこで、ステート制御処理の詳細な動作手順を示すフローチャートを図10に示す。図10に示すように、ステート制御処理では、モータ駆動制御プログラムは、回転速度検出処理(ステップS90)を行う。この回転速度検出処理では、モータ駆動制御プログラムは、PWM信号が現状態を維持した期間の長さを示すPWMパルス数PWM_PLS[ST_CNT]に図6のステップS41で更新されたステートPWMパルス数ST_PWM_PLSを代入する(ステップS90a)。そして、6つの状態のそれぞれで算出されたPWMパルス数PWM_PLS[0]〜PWM_PLS[6]を加算して6ステート合計PWMパルス数TTL_ST_PWM_PLSを算出する(ステップS90b)。次いで、6ステート合計PWMパルス数TTL_ST_PWM_PLSを状態の数である6で除算して移動平均ステートPWMパルス数ST_PWM_PLS_AVEを算出する(ステップS90c)。ここで、6ステート合計PWMパルス数TTL_ST_PWM_PLSは、モータ4が電気角で一回転する間に生成されたPWM信号のパルスの合計値であって、モータ4が電気角で一回転する時間を示す。つまり、6ステート合計PWMパルス数TTL_ST_PWM_PLSによりモータ4の回転速度を知ることができる。なお、ステップS90の回転速度検出処理は、図2の回転制御部25で行われる。
Subsequently, the details of the state control processing in steps S74, S78, and S85 will be described. FIG. 10 is a flowchart showing the detailed operation procedure of the state control process. As shown in FIG. 10, in the state control process, the motor drive control program performs a rotation speed detection process (step S90). In this rotational speed detection process, the motor drive control program sets the number of state PWM pulses ST_PWM_PLS updated in step S41 of FIG. 6 to the number of PWM pulses PWM_PLS [ST_CNT] indicating the length of the period during which the PWM signal has maintained the current state. Substitute (step S90a). Then, the PWM pulse numbers PWM_PLS [0] to PWM_PLS [6] calculated in each of the six states are added to calculate the 6-state total PWM pulse number TTL_ST_PWM_PLS (step S90b). Next, the moving average state PWM pulse number ST_PWM_PLS_AVE is calculated by dividing the 6-state total PWM pulse number TTL_ST_PWM_PLS by 6 which is the number of states (step S90c). Here, the 6-state total PWM pulse number TTL_ST_PWM_PLS is a total value of PWM signal pulses generated while the
次いで、モータ駆動制御プログラムは、スタッキング検出処理を行う(ステップS91)。スタッキング検出処理は、6ステート合計PWMパルス数TTL_ST_PWM_PLSがスタックロータ検出設定値STC_DET_SETよりも小さいか否かを判断する(ステップS91a)。スタックロータ検出設定値STC_DET_SETは、モータ4の最大回転速度よりも十分に高い回転速度に相当する値であり、予め設定される値である。ここで、最大回転速度よりも十分に高い回転速度とは、モータの機械的な構造から決まる限界速度以上ではあるが電気的には可能な回転速度である。例えば、モータ4の機械的な構造から決まる限界速度が7000rpmであった場合、8000〜10000rpmの回転速度に相当する値がスタックロータ検出設定値STC_DET_SETとして設定される。モータ4がスタック状態である場合、PWM信号を与えてもモータ4が機械的に回転していない状態であり、コンパレータ積分値CMP_INTGが極端に短い時間でゼロに達してしまう。そのため、モータ4がスタック状態である場合、ロータは機械的には回転していないが、ステータの回転磁界は、ロータの回転速度を超えて電気的に回転している状態となる。このため、PWM信号の一状態が継続する期間が短くなり、6ステート合計PWMパルス数TTL_ST_PWM_PLSがスタックロータ検出設定値STC_DET_SETよりも小さくなる。このようなことから、6ステート合計PWMパルス数TTL_ST_PWM_PLSがスタックロータ検出設定値STC_DET_SETよりも小さいことを検出することでモータ4のスタック状態を検出することができる。なお、6ステート合計PWMパルス数TTL_ST_PWM_PLSは、モータ4が回転している状態においては、無損失かつ無負荷の状態で駆動される、或いは、外部動力によってモータが駆動されない限り、スタックロータ検出設定値STC_DET_SETよりも小さい状態とはならない。
Next, the motor drive control program performs stacking detection processing (step S91). In the stacking detection process, it is determined whether or not the 6-state total PWM pulse number TTL_ST_PWM_PLS is smaller than the stack rotor detection set value STC_DET_SET (step S91a). The stack rotor detection set value STC_DET_SET is a value corresponding to a rotational speed sufficiently higher than the maximum rotational speed of the
そして、モータ駆動制御プログラムは、ステップS91aにおいて、モータ4がスタック状態であると判断された場合、スタックロータ検出フラグSTC_DETをTRUEとする(ステップS91b)。また、モータ駆動制御プログラムは、ステップS91aにおいて、モータ4がスタック状態ではないと判断された場合、スタックロータ検出フラグSTC_DETをFALSEとする(ステップS91c)。なお、ステップS91のスタッキング検出処理は、図2の回転制御部25で行われる。
When the motor drive control program determines in step S91a that the
そして、スタッキング検出処理(ステップS91)が完了したことに応じて、モータ駆動制御プログラムは、定回転速度制御処理(ステップS92)、ステート更新処理(ステップS93)、フライバックパルス適応フィルタ更新処理(ステップS94)を行う。また、フライバックパルス適応フィルタ更新処理(ステップS94)の処理の後に、モータ駆動制御プログラムは、コンパレータ積分値CMP_INTG及びステートPWMパルス数ST_PWM_PLSのリセット処理を行う(ステップS95)。また、PWM信号の状態が更新されたことに応じて次状態のステートカウント値ST_CNTに基づきセレクタ14が選択する検出信号相を切り換える。
Then, in response to the completion of the stacking detection process (step S91), the motor drive control program executes the constant rotation speed control process (step S92), the state update process (step S93), the flyback pulse adaptive filter update process (step S94) is performed. Further, after the flyback pulse adaptive filter update process (step S94), the motor drive control program performs a reset process of the comparator integral value CMP_INTG and the number of state PWM pulses ST_PWM_PLS (step S95). Further, the detection signal phase selected by the
ここで、定回転速度制御処理(ステップS92)、ステート更新処理(ステップS93)、フライバックパルス適応フィルタ更新処理(ステップS94)についてより詳細に説明する。なお、定回転速度制御処理(ステップS92)は、回転速度制御部26で行われる処理であり、ステート更新処理(ステップS93)及びフライバックパルス適応フィルタ更新処理は、ロータ位置検出部24にて行われる処理である。
Here, the constant rotation speed control process (step S92), the state update process (step S93), and the flyback pulse adaptive filter update process (step S94) will be described in more detail. The constant rotation speed control process (step S92) is a process performed by the rotation
まず、ステップS92の定回転速度制御処理の詳細な動作手順を示すフローチャートを図11に示す。図11示すように、定回転速度制御処理では、モータ駆動制御プログラムは、6ステート合計PWMパルス数TTL_ST_PWM_PLSから回転速度指示値ROT_SETを減じて回転速度誤差ROT_ERRを算出する(ステップS100)。次いで、モータ駆動制御プログラムは、回転速度誤差ROT_ERRを用いてスタッキング防止加減速制限処理を行う(ステップS101)。 First, FIG. 11 is a flowchart showing a detailed operation procedure of the constant rotation speed control process in step S92. As shown in FIG. 11, in the constant rotation speed control process, the motor drive control program calculates a rotation speed error ROT_ERR by subtracting the rotation speed instruction value ROT_SET from the 6-state total PWM pulse number TTL_ST_PWM_PLS (step S100). Next, the motor drive control program performs stacking prevention acceleration / deceleration limiting processing using the rotation speed error ROT_ERR (step S101).
スタッキング防止加減速制限処理では、まず、移動平均ステートPWMパルス数ST_PWM_PLS_AVEと加速係数aとを乗算して最大許容加速度MAX_ALW_ACLを算出する(ステップS101a)。次いで、移動平均ステートPWMパルス数ST_PWM_PLS_AVEと減速係数bとを乗算して最大許容減速度MAX_ALW_DCLを算出する(ステップS101b)。 In the stacking prevention acceleration / deceleration limiting process, first, the maximum allowable acceleration MAX_ALW_ACL is calculated by multiplying the moving average state PWM pulse number ST_PWM_PLS_AVE and the acceleration coefficient a (step S101a). Next, the maximum allowable deceleration MAX_ALW_DCL is calculated by multiplying the moving average state PWM pulse number ST_PWM_PLS_AVE and the deceleration coefficient b (step S101b).
次いで、モータ駆動制御プログラムは、回転速度誤差ROT_ERRと最大許容加速度MAX_ALW_ACLとの比較処理を行う(ステップS101c)。そして、ステップS101cにおいて、回転速度誤差ROT_ERRが最大許容加速度MAX_ALW_ACLよりも大きい場合は、回転速度誤差ROT_ERRを最大許容加速度MAX_ALW_ACLで更新する(ステップS101d)。一方、ステップS101cにおいて、回転速度誤差ROT_ERRが最大許容加速度MAX_ALW_ACL以下である場合は、回転速度誤差ROT_ERRの更新は行わない。 Next, the motor drive control program performs a comparison process between the rotation speed error ROT_ERR and the maximum allowable acceleration MAX_ALW_ACL (step S101c). If the rotational speed error ROT_ERR is larger than the maximum allowable acceleration MAX_ALW_ACL in step S101c, the rotational speed error ROT_ERR is updated with the maximum allowable acceleration MAX_ALW_ACL (step S101d). On the other hand, if the rotational speed error ROT_ERR is equal to or smaller than the maximum allowable acceleration MAX_ALW_ACL in step S101c, the rotational speed error ROT_ERR is not updated.
次いで、モータ駆動制御プログラムは、回転速度誤差ROT_ERRと最大許容減速度MAX_ALW_DCLとの比較処理を行う(ステップS101e)。そして、ステップS101eにおいて、回転速度誤差ROT_ERRが最大許容減速度MAX_ALW_DCLよりも小さい場合は、回転速度誤差ROT_ERRを最大許容減速度MAX_ALW_DCLで更新する(ステップS101f)。一方、ステップS101eにおいて、回転速度誤差ROT_ERRが最大許容減速度MAX_ALW_DCL以上である場合は、回転速度誤差ROT_ERRの更新は行わない。 Next, the motor drive control program performs a comparison process between the rotation speed error ROT_ERR and the maximum allowable deceleration MAX_ALW_DCL (step S101e). If the rotational speed error ROT_ERR is smaller than the maximum allowable deceleration MAX_ALW_DCL in step S101e, the rotational speed error ROT_ERR is updated with the maximum allowable deceleration MAX_ALW_DCL (step S101f). On the other hand, if the rotational speed error ROT_ERR is greater than or equal to the maximum allowable deceleration MAX_ALW_DCL in step S101e, the rotational speed error ROT_ERR is not updated.
次いで、モータ駆動制御プログラムは、回転速度誤差積分値ROT_ERR_INTGに回転速度誤差ROT_ERRを加算して、回転速度誤差積分値ROT_ERR_INTGを更新する(ステップS102)。その後、モータ駆動制御プログラムは、更新後の回転速度誤差積分値ROT_ERR_INTGのクランプ処理を行う(ステップS103)。このクランプ処理では、回転速度誤差積分値ROT_ERR_INTGの値が予め規定された最大値と最小値との間の値であって、所定のビット幅で表せる値に変換する。回転速度誤差積分値ROT_ERR_INTGは、回転速度制御部26で生成される制御帰還値に相当する値である。
Next, the motor drive control program adds the rotational speed error ROT_ERR to the rotational speed error integrated value ROT_ERR_INTG to update the rotational speed error integrated value ROT_ERR_INTG (step S102). Thereafter, the motor drive control program performs a clamp process of the updated rotational speed error integrated value ROT_ERR_INTG (step S103). In this clamping process, the rotation speed error integrated value ROT_ERR_INTG is converted to a value between a predetermined maximum value and a minimum value, which can be expressed by a predetermined bit width. The rotational speed error integrated value ROT_ERR_INTG is a value corresponding to a control feedback value generated by the rotational
続いて、ステップS93のステート更新処理について詳細に説明する。そこで、ステート更新処理の詳細な動作手順を示すフローチャートを図12に示す。図12に示すように、ステート更新処理では、まず、回転方向指示フラグFWDを参照して、モータ4の回転方向を判断する(ステップS110)。ステップS110において、回転方向指示フラグFWDがTRUEであった場合、ステートカウント値ST_CNTに1を加算する(ステップS111)。その後、更新後のステートカウント値ST_CNTが5より大きいか否かを判断する(ステップS112)。そして、ステップS112において、ステートカウント値ST_CNTが5よりも大きいと判断された場合は、ステートカウント値ST_CNTをゼロにリセットして、ステート更新処理を終了する(ステップS113)。
Next, the state update process in step S93 will be described in detail. FIG. 12 is a flowchart showing a detailed operation procedure of the state update process. As shown in FIG. 12, in the state update process, first, the rotation direction of the
一方、ステップS110において、回転方向指示フラグFWDがFALSEであった場合、ステートカウント値ST_CNTから1を減算する(ステップS114)。その後、更新後のステートカウント値ST_CNTが0より小さい否かを判断する(ステップS115)。そして、ステップS115において、ステートカウント値ST_CNTが0よりも小さいと判断された場合は、ステートカウント値ST_CNTを5にリセットして、ステート更新処理を終了する(ステップS116)。 On the other hand, if the rotation direction instruction flag FWD is FALSE in step S110, 1 is subtracted from the state count value ST_CNT (step S114). Thereafter, it is determined whether or not the updated state count value ST_CNT is smaller than 0 (step S115). If it is determined in step S115 that the state count value ST_CNT is smaller than 0, the state count value ST_CNT is reset to 5 and the state update process is terminated (step S116).
続いて、ステップS94のフライバックパルス適応フィルタ更新処理について詳細に説明する。そこで、フライバックパルス適応フィルタ更新処理の詳細な動作手順を示すフローチャートを図13に示す。図13に示すように、フライバックパルス適応フィルタ更新処理では、モータ駆動制御プログラムは、有効スタートアップフラグSTUPがTRUEであるか否かを判断する(ステップS120)。そして、ステップS120において、有効スタートアップフラグSTUPがFALSEであると判断された場合、モータ4が有効に回転していないと判断し、フライバックパルス適応フィルタの更新は行わずに処理を終了する。
Next, the flyback pulse adaptive filter update process in step S94 will be described in detail. FIG. 13 is a flowchart showing a detailed operation procedure of the flyback pulse adaptive filter update process. As shown in FIG. 13, in the flyback pulse adaptive filter update process, the motor drive control program determines whether or not the effective startup flag STUP is TRUE (step S120). If it is determined in step S120 that the effective startup flag STUP is FALSE, it is determined that the
一方、ステップS120において、有効スタートアップフラグSTUPがTRUEであると判断された場合、定電流制御指示値CNST_CRNTを最大電流値MAX_CRNTとする(ステップS121)。次いで、モータ駆動制御プログラムは、フライバックパルス継続パルス数FB_MASKを移動平均ステートPWMパルス数ST_PWM_PLS_AVEの4分の1に設定する(ステップS122)。その後、モータ駆動制御プログラムは、更新後のフライバックパルス継続パルス数FB_MASKがフライバックパルス継続パルス数の最低値MIN_FB_MASKとの比較処理を行う(ステップS123)。そして、フライバックパルス継続パルス数FB_MASKがフライバックパルス継続パルス数の最低値MIN_FB_MASK以上の値であれば、そのまま処理を終了する。一方、フライバックパルス継続パルス数FB_MASKがフライバックパルス継続パルス数の最低値MIN_FB_MASKよりも小さい場合、フライバックパルス継続パルス数FB_MASKをフライバックパルス継続パルス数の最低値MIN_FB_MASKに設定した後に処理を終了する(ステップS124)。 On the other hand, if it is determined in step S120 that the effective startup flag STUP is TRUE, the constant current control instruction value CNST_CRNT is set to the maximum current value MAX_CRNT (step S121). Next, the motor drive control program sets the flyback pulse continuation pulse number FB_MASK to a quarter of the moving average state PWM pulse number ST_PWM_PLS_AVE (step S122). Thereafter, the motor drive control program compares the updated flyback pulse continuation pulse number FB_MASK with the minimum value MIN_FB_MASK of the flyback pulse continuation pulse number (step S123). If the number of flyback pulse continuation pulses FB_MASK is equal to or greater than the minimum value MIN_FB_MASK of the number of flyback pulse continuation pulses, the process ends. On the other hand, when the flyback pulse duration pulse number FB_MASK is smaller than the minimum flyback pulse duration pulse value MIN_FB_MASK, the flyback pulse duration pulse number FB_MASK is set to the minimum flyback pulse duration pulse value MIN_FB_MASK, and the processing ends. (Step S124).
続いて、図6のステップS46のレギュレーションループ調停処理について詳細に説明する。そこで、図14にレギュレーションループ調停処理の詳細な動作手順を示すフローチャートを示す。このレギュレーションループ調停処理は、図2のPWMデューティ制御部27により行われる。
Next, the regulation loop arbitration process in step S46 of FIG. 6 will be described in detail. FIG. 14 is a flowchart showing a detailed operation procedure of the regulation loop arbitration process. This regulation loop arbitration process is performed by the PWM
図14に示すように、レギュレーションループ調停処理では、モータ駆動制御プログラムは、回転速度誤差積分値ROT_ERR_INTGと電流誤差積分値CRNT_ERR_INTGとの比較処理を行う(ステップS130)。 As shown in FIG. 14, in the regulation loop arbitration process, the motor drive control program performs a comparison process between the rotational speed error integrated value ROT_ERR_INTG and the current error integrated value CRNT_ERR_INTG (step S130).
そして、ステップS130において、回転速度誤差積分値ROT_ERR_INTGが電流誤差積分値CRNT_ERR_INTGよりも小さいと判断された場合、電流誤差積分値CRNT_ERR_INTGの値を回転速度誤差積分値ROT_ERR_INTGの値で更新する(ステップS131)。その後、モータ駆動制御プログラムは、回転速度誤差積分値ROT_ERR_INTGをPWM信号のオンタイムPWM_ONとした後にレギュレーションループ調停処理を終了する(ステップS132)。 If it is determined in step S130 that the rotational speed error integrated value ROT_ERR_INTG is smaller than the current error integrated value CRNT_ERR_INTG, the current error integrated value CRNT_ERR_INTG is updated with the rotational speed error integrated value ROT_ERR_INTG (step S131). . Thereafter, the motor drive control program sets the rotation speed error integrated value ROT_ERR_INTG to the on-time PWM_ON of the PWM signal, and then ends the regulation loop arbitration process (step S132).
一方、ステップS130において、回転速度誤差積分値ROT_ERR_INTGが電流誤差積分値CRNT_ERR_INTG以上であると判断された場合、回転速度誤差積分値ROT_ERR_INTGの値を電流誤差積分値CRNT_ERR_INTGの値で更新する(ステップS133)。その後、モータ駆動制御プログラムは、電流誤差積分値CRNT_ERR_INTGをPWM信号のオンタイムPWM_ONとした後にレギュレーションループ調停処理を終了する(ステップS134)。 On the other hand, when it is determined in step S130 that the rotational speed error integrated value ROT_ERR_INTG is equal to or greater than the current error integrated value CRNT_ERR_INTG, the value of the rotational speed error integrated value ROT_ERR_INTG is updated with the value of the current error integrated value CRNT_ERR_INTG (step S133). . Thereafter, the motor drive control program sets the current error integrated value CRNT_ERR_INTG to the on-time PWM_ON of the PWM signal, and then ends the regulation loop arbitration process (step S134).
このようなレギュレーションループ調停処理を行うことで、制御ループを定電流制御系と定回転制御系との間で切り換えた場合において、その切り換え時に切り換え後に利用される制御ループが飽和状態から制御を開始することを防止することができる。そして、切り換え直後の制御ループが飽和状態から制御を開始しないことで、制御ループの切り換えをスムーズに行うことができる。 By performing such regulation loop arbitration processing, when the control loop is switched between the constant current control system and the constant rotation control system, the control loop used after switching at the time of switching starts control from the saturated state. Can be prevented. And since the control loop immediately after switching does not start control from a saturated state, switching of a control loop can be performed smoothly.
続いて、図6のステップS47のPWMプリモジュレーション処理について詳細に説明する。そこで、図15にPWMプリモジュレーション処理の詳細な動作手順を示すフローチャートを示す。PWMプリモジュレーション処理は、図2のPWMデューティ制御部27により行われる。
Next, the PWM premodulation process in step S47 of FIG. 6 will be described in detail. FIG. 15 is a flowchart showing the detailed operation procedure of the PWM premodulation process. The PWM pre-modulation process is performed by the PWM
図15に示すように、PWMプリモジュレーション処理では、モータ駆動制御プログラムは、まず、ステップS46のレギュレーションループ調停処理にて決定されたPWM信号のオンタイムPWM_ONに繰越PWMオンタイムCRY_PWM_ONを加算する(ステップS140)。このとき、加算される繰越PWMオンタイムCRY_PWM_ONは、現周期のPWM信号のオンタイムを決定する際に算出された値である。次いで、モータ駆動制御プログラムは、ステップS140で算出されたPWM信号のオンタイムPWM_ONと最大デューティ設定値MAX_DUTYとの比較処理を行う(ステップS141)。この最大デューティ設定値MAX_DUTYは、モータ駆動制御装置1が生成可能なパルス幅の制限に基づき設定される。
As shown in FIG. 15, in the PWM pre-modulation process, the motor drive control program first adds the carry-over PWM on-time CRY_PWM_ON to the on-time PWM_ON of the PWM signal determined in the regulation loop arbitration process in step S46 (step S46). S140). At this time, the carry-over PWM on-time CRY_PWM_ON to be added is a value calculated when determining the on-time of the PWM signal in the current cycle. Next, the motor drive control program performs a comparison process between the on-time PWM_ON of the PWM signal calculated in step S140 and the maximum duty set value MAX_DUTY (step S141). The maximum duty setting value MAX_DUTY is set based on a restriction on the pulse width that can be generated by the motor
ステップS141において、PWM信号のオンタイムPWM_ONが最大デューティ設定値MAX_DUTYよりも大きいと判断された場合、繰越PWMオンタイムCRY_PWM_ONにPWM信号のオンタイムPWM_ONからPWM周期PWM_TRMを減じた値を設定する(ステップS142)。その後、PWM信号のオンタイムPWM_ONとしてPWM周期PWM_TRMを設定する(ステップS143)。つまり、ステップS142の処理によりPWM信号のオンタイムPWM_ONが生成された場合、次周期のPWM信号はオフステートにはならない。 If it is determined in step S141 that the on-time PWM_ON of the PWM signal is larger than the maximum duty set value MAX_DUTY, a value obtained by subtracting the PWM cycle PWM_TRM from the on-time PWM_ON of the PWM signal is set to the carry-over PWM on-time CRY_PWM_ON (step S141). S142). Thereafter, the PWM cycle PWM_TRM is set as the on-time PWM_ON of the PWM signal (step S143). That is, when the on-time PWM_ON of the PWM signal is generated by the process of step S142, the PWM signal of the next cycle is not in the off state.
一方、ステップS141において、PWM信号のオンタイムPWM_ONが最大デューティ設定値MAX_DUTYよりも小さいと判断された場合、PWM信号のオンタイムPWM_ONと最小デューティ設定値MIN_DUTYとの比較処理を行う(ステップS144)。ステップS144において、PWM信号のオンタイムPWM_ONが最小デューティ設定値MIN_DUTYよりも小さいと判断された場合、繰越PWMオンタイムCRY_PWM_ONとしてPWM信号のオンタイムPWM_ONを設定する(ステップS145)。その後、PWM信号のオンタイムPWM_ONをゼロに設定する(ステップS146)。つまり、ステップS146の処理によりPWM信号のオンタイムPWM_ONが生成された場合、次周期のPWM信号はオンステートにはならない。 On the other hand, when it is determined in step S141 that the on-time PWM_ON of the PWM signal is smaller than the maximum duty set value MAX_DUTY, a comparison process between the on-time PWM_ON of the PWM signal and the minimum duty set value MIN_DUTY is performed (step S144). If it is determined in step S144 that the on-time PWM_ON of the PWM signal is smaller than the minimum duty set value MIN_DUTY, the on-time PWM_ON of the PWM signal is set as the carry-over PWM on-time CRY_PWM_ON (step S145). Thereafter, the on-time PWM_ON of the PWM signal is set to zero (step S146). That is, when the on-time PWM_ON of the PWM signal is generated by the process of step S146, the PWM signal of the next period is not in the on state.
一方、ステップS144において、PWM信号のオンタイムPWM_ONが最小デューティ設定値MIN_DUTY以上であると判断された場合、繰越PWMオンタイムCRY_PWM_ONとしてゼロを設定する(ステップS147)。つまり、ステップS147の処理によりPWM信号のオンタイムPWM_ONが生成された場合、次周期のPWM信号はPWM信号のオンタイムPWM_ONの値に応じた長さのオンステートを有する。 On the other hand, if it is determined in step S144 that the on-time PWM_ON of the PWM signal is greater than or equal to the minimum duty set value MIN_DUTY, zero is set as the carry-over PWM on-time CRY_PWM_ON (step S147). That is, when the on-time PWM_ON of the PWM signal is generated by the process of step S147, the PWM signal of the next period has an on-state having a length corresponding to the value of the on-time PWM_ON of the PWM signal.
上記説明では、モータ駆動制御装置1、つまり、モータ駆動制御プログラムによる動作について説明した。以下では、具体的な波形を示してモータ駆動制御装置1の動作について説明する。
In the above description, the operation by the motor
まず、図16に、モータ駆動制御装置1がモータ4を停止状態から回転状態とするモータ駆動制御の初期の挙動を説明するタイミングチャートを示す。図16に示すタイミングチャートでは、PWM信号の状態が遷移する毎にハイレベルとローレベルが切り替わる信号としてステート信号で示した。このステート信号がハイレベルである期間は、ステータの駆動相が奇数番目、つまり、PWM信号が奇数番目の状態であることを示し、ローレベルであるき間は、ステータの駆動相が偶数番目、つまり、PWM信号が偶数番目の状態であることを示す。また、PWM信号が6状態を経る毎にハイレベルとローレベルが切り替わる信号として6ステート信号を示した。また、図16では、ロータの回転状態を示すために有効スタートアップフラグSTUPを示した。なお、図16に示すタイミングチャートは、回転開始の動作を示す一例として、ロータが状態0に対応する位置で静止している状態から回転を開始する例について示すものである。
First, FIG. 16 shows a timing chart for explaining the initial behavior of motor drive control in which the motor
まず、実施の形態1にかかるモータ駆動装置1は、変数初期化処理(ステップS1)において、電流誤差積分値CRNT_ERR_INTG及び回転速度誤差積分値ROT_REE_INTGをゼロにリセットした状態でモータの制御を開始する。そのため、実施の形態1にかかるモータ駆動装置1は、モータを制御するPWM信号の状態を状態0としてモータ制御を開始するが、この制御開始時点での駆動電流はゼロである。このようなことから、図16に示すように、駆動制御が開始された直後の状態0では、モータ4のロータに回転トルクが生じず停止したままの状態となる。また、ロータが回転していないことから、非通電相の駆動信号とセンタータップ電圧CTとの間でゼロクロスが生じない。また、図16に示す例では、ロータの位置が駆動対象のステータ(以下、励磁ステータと称す)の位置とよりも位相が遅れた状態であり、かつ、ゼロクロスが発生しないため、コンパレータ積分値CMP_INTGがゼロに達することはない。そして、最初の状態0においては、コンパレータ積分値CMP_INTGが最大パルスカウント値MAXCNTに達したことに応じて、モータ駆動制御装置1は、PWM信号の状態を状態0から状態1に遷移させる(図9のステップS74以降の処理)。このようにコンパレータ積分値CMP_INTGが最大パルスカウント値MAXCNTに達する状態を、以下では、タイムアウト検出と称す。そして、モータ駆動制御装置1は、PWM信号の状態を遷移させる毎に駆動電流を増加させながら、モータ4の起動処理を継続する。
First, the
ここで、モータ4の起動時における駆動電流の増加手順について説明する。まず、最初の状態0では、回転速度指示値ROT_SETはゼロを維持するのに対して、駆動電流MIがゼロであるため駆動電流MIと定電流制御設定値CONST_CRNT_SETとの誤差は最大駆動電流の大きさに一致する。そのため、最初の状態0では、レギュレーションループ調停処理(ステップS46、及び、図14の処理)により電流誤差積分値CRNT_ERR_INTGはゼロに維持される。
Here, a procedure for increasing the drive current when the
続いて、タイムアウト検出によりPWM信号の状態が状態0から状態1に遷移すると、モータ駆動制御装置1では、ステップS92及び図11の処理が行われ、回転速度誤差値ROT_INTGの値として、回転速度指示値ROT_SETを最大許容加速度MAX_ALW_ACLで制限した値を設定する。これに対して、状態1では、駆動電流MIに対する電流誤差積分値CRNT_INTGとして、駆動電流MIと定電流制御設定値CONST_CRNT_SETとの誤差値が算出される。このとき、最初の状態1では駆動電流MIは、当初ゼロであり、電流誤差積分値CRNT_INTGは最大駆動電流の大きさに一致する。そのため、回転モータ駆動制御装置1では、レギュレーションループ調停処理(ステップS46、及び、図14の処理)により、電流誤差積分値CRNT_INTGに回転速度誤差積分値ROT_INTGの値を代入する。つまり、PWM信号の状態が遷移した場合に増加する駆動電流の増加量は、最大許容加速度ROT_ALW_ACLで制限された値になる。
Subsequently, when the state of the PWM signal transits from the
このように、PWM信号の状態が遷移させた場合の駆動電流の増加量は、最大許容加速度ROT_ALW_ACLで制限された値になるため、モータ4の始動制御においては、回転速度誤差積分値ROT_ERR_INTGが電流誤差積分値CRNT_ERR_INTGよりも小さい状態が続く。つまり、モータ4の回転が開始されるまでの期間は、PWM信号の状態が遷移する度に増加させる駆動電流は、最大許容加速度ROT_ALW_ACLにより制限され、駆動電流は、徐々に大きくなる。
As described above, the increase amount of the drive current when the state of the PWM signal is changed becomes a value limited by the maximum allowable acceleration ROT_ALW_ACL. A state smaller than the error integral value CRNT_ERR_INTG continues. That is, during the period until the rotation of the
このように、モータ駆動制御装置1は、ロータに印加する駆動トルクを徐々に大きくする。そして、ロータに印加される駆動トルクがロータの静止トルクを上回るとロータの回転が開始される。しかし、ロータが回転しても、ロータの回転周波数及び回転位相と、励磁ステータの駆動周波数及び駆動位相と、が一致しなければ、モータの回転は持続しない。
Thus, the motor
例えば、駆動トルクが不十分である場合、ロータが回転しない状態が発生する。また、駆動トルクが十分であって、ロータが回転する状態であっても、励磁ステータの駆動位相とロータの回転位相とが不一致であった場合、ロータに印加する駆動トルクが不適切な状態となり、ロータが逆回転又は次状態の励磁ステータの駆動対象位置を通過する位置まで回転してしまい、モータの回転が持続しない状態となる。さらに、励磁ステータの駆動周波数とロータの回転周波数とが不一致である場合、連続して適切な駆動トルクをロータに印加できないため、モータの回転は持続しない。 For example, when the driving torque is insufficient, a state where the rotor does not rotate occurs. Even if the drive torque is sufficient and the rotor rotates, the drive torque applied to the rotor will be in an inappropriate state if the excitation stator drive phase and the rotor rotation phase do not match. The rotor rotates in the reverse direction or the position passing through the drive target position of the excited stator in the next state, and the motor does not continue to rotate. In addition, when the drive frequency of the excitation stator and the rotational frequency of the rotor do not coincide with each other, an appropriate drive torque cannot be continuously applied to the rotor, so that the rotation of the motor does not continue.
このように、モータ4の回転を持続させるためには、十分な駆動トルクと、励磁ステータの駆動周波数及び駆動位相とロータの回転周波数及び回転位相とを一致させることと、が必要になる。そこで、実施の形態1にかかるモータ駆動制御装置1では、駆動電流をPWM信号の状態を遷移させる毎に徐々に増加させると共に、PWM信号の状態を遷移させて励磁ステータの駆動周波数及び駆動位相がロータの回転周波数及び回転位相と一致する状態を探る。より具体的には、実施の形態1にかかるモータ駆動制御装置1は、フライバックパルスフィルタ処理と、コンパレータ積分値CMP_INTGと、最大パルスカウント数MAXCNTと、を用いて、励磁ステータの駆動周波数及び駆動位相とロータの回転周波数及び回転位相とが一致する状態を探る。
As described above, in order to keep the rotation of the
まず、モータ駆動制御装置1は、PWM信号の状態を遷移させた直後は、フライバックパルスフィルタ処理(図6のステップS44、S45及び図8の処理)により、コンパレータ積分値CMP_INTGを増加、又は、減少させる。そして、フライバックパルスフィルタ処理の終了後に、駆動トルクが静止トルク以上、かつ、励磁ステータの駆動位相に対するロータの回転位相差が±30°未満の位置である場合は、ロータが回転してゼロクロスが検出できる可能性がある。そこで、タイムアウト検出期間経過前(ステートPWMパルス数ST_PWM_PLSが最大パルスカウント値MAXCNT以下である期間)にコンパレータ積分値CMP_INTGがゼロに達したことを検出できれば、モータ駆動制御装置1は、ゼロクロスが生じたと判定して、PWM信号を次状態に遷移させる。
First, immediately after the state of the PWM signal is changed, the motor
しかし、フライバックパルスフィルタ処理終了後の状態が、励磁ステータの駆動位相に対してロータの回転位相が30°以上進んでいた状態である場合は、フライバックパルスフィルタ処理が終了した時点でコンパレータの出力が期待する論理レベルとは逆の論理レベルとなっているため、タイムアウト検出期間経過前にコンパレータ積分値CMP_INTGがゼロに達する。つまり、このような場合は、モータ駆動制御装置1は、フライバックパルスフィルタ処理が終了する前にゼロクロスが発生したと判断し、タイムアウト検出期間の経過を待たずにPWM信号の状態を状態に遷移させる。このような動作に相当する状態は、例えば、図16において「コンパレータ積分値に基づく状態遷移」で示される状態である。なお、モータ駆動制御装置1では、変数初期化処理(図3のステップS1、及び図4の処理)において、有効スタートアップフラグSTUPがFALSEからTRUEに切り替るまでのフライバックパルス継続PWMパルス数FB_MASKを小さく(例えば、最大回転速度に相当する6ステートPWMパルス数の6分の1)に設定しているため、フラバックパルスフィルタ処理終了前にゼロクロスが発生したと判断される状態の期間は後述するタイムアウト検出に基づく状態遷移が行われる場合に比べて極端に短くなる。
However, if the state after the completion of the flyback pulse filter processing is a state in which the rotational phase of the rotor has advanced by 30 ° or more with respect to the drive phase of the excitation stator, the comparator Since the output has a logic level opposite to the expected logic level, the comparator integral value CMP_INTG reaches zero before the timeout detection period elapses. That is, in such a case, the motor
また、フライバックパルスフィルタ処理終了後の状態が、励磁ステータの駆動位相に対してロータの回転位相が30°以上遅れた状態である場合は、フライバックパルスフィルタ処理が終了した時点でコンパレータの出力が期待する論理レベルとなっているため、コンパレータ積分値CMP_INTGの絶対値が増加する。しかし、励磁ステータの駆動位相に対してロータの回転位相が30°以上遅れた状態である場合、ロータに適切な負荷トルクを印加することができないため、ロータが回転しない。そのため、タイムアウト検出期間が経過してもコンパレータの出力が反転せずコンパレータ積分値CMP_INTGの絶対値が減少に転じることがない。つまり、このような場合は、モータ駆動制御装置1は、タイムアウト検出がなされるまでゼロクロスの発生を待ち、タイムアウト検出期間が経過した時点でPWM信号の状態を状態に遷移させる。このような動作に相当する状態は、例えば、図16において「タイムアウト検出に基づく状態遷移」で示される状態である。
In addition, if the state after the flyback pulse filter processing is a state where the rotor rotation phase is delayed by 30 ° or more with respect to the drive phase of the excitation stator, the output of the comparator is output when the flyback pulse filter processing is completed. Therefore, the absolute value of the comparator integral value CMP_INTG increases. However, when the rotation phase of the rotor is delayed by 30 ° or more with respect to the drive phase of the excitation stator, an appropriate load torque cannot be applied to the rotor, so the rotor does not rotate. Therefore, even if the timeout detection period elapses, the output of the comparator is not inverted, and the absolute value of the comparator integral value CMP_INTG does not start to decrease. That is, in such a case, the motor
なお、フライバックパルスフィルタ処理終了後に、実際にはゼロクロスが生じている場合であっても、コンパレータ積分値CMP_INTGがゼロに達する前にロータがさらに回転してロータの回転位相が現状態に対応する回転位相とは異なる状態に対応する回転位相の位置まで到達した場合にはコンパレータ積分値CMPCMP_INTGがゼロに達する前にタイムアウト検出期間が経過してしまうことがある。そのため、このような場合においてもモータ駆動制御装置1は、タイムアウト検出に基づきPWM信号の状態を遷移させる。
Even after the flyback pulse filter processing is finished, even if zero crossing actually occurs, the rotor further rotates before the comparator integral value CMP_INTG reaches zero, and the rotational phase of the rotor corresponds to the current state. When the position of the rotational phase corresponding to a state different from the rotational phase is reached, the timeout detection period may elapse before the comparator integral value CMPCMP_INTG reaches zero. Therefore, even in such a case, the motor
このように、モータ駆動制御装置1では、ゼロクロスの発生が既に発生したと判断した場合には、即座にPWM信号を次状態に移行させる。また、モータ駆動制御装置1は、ゼロクロスの発生の可能性がある場合には、タイムアウト検出期間の間コンパレータ積分値CMP_INTGがゼロに達することを待つ。そして、タイムアウト検出期間中に、コンパレータ積分値CMP_INTGがゼロに達しない場合、モータ駆動制御装置1は、ロータの回転周波数がタイムアウト検出期間を一周期とする駆動周波数よりも遅いと判断し、タイムアウト検出期間の経過に応じてPWM信号を次状態に移行させる。また、モータ駆動制御装置1は、タイムアウト検出期間中にコンパレータ積分値CMP_INTGがゼロに達したことを検出できた場合、ロータの回転周波数がタイムアウト検出期間を一周期とする駆動周波数よりも速いと判断して、コンパレータ積分値CMP_INTGがゼロに達したことに応じてPWM信号の状態を次状態に遷移させる。
Thus, in the motor
そして、コンパレータ積分値CMP_INTGがゼロに達したことに応じた状態遷移(図9のステップS78)が6回連続して発生したことに応じて、モータ駆動制御装置1は、有効スタートアップフラグSTUPをFALSEからTRUEに切り換える(ステップS82)。このように、コンパレータ積分値CMP_INTGがゼロに達したことに応じた状態遷移が6回連続して発生したことは、即ち、ロータの回転周波数及び回転位相と、励磁ステータの駆動周波数及び駆動位相と、が一致したことを意味する。なお、有効スタートアップフラグSTUPがTRUEとなる直前の期間(図16のゼロクロス検出アンバランス回転)では、モータは加速状態であって、ステートPWMパル数ST_PWM_PLSが移動平均ステートPWMパルス数ST_PWM_PLS_AVEに達する前に、コンパレータ積分値CMP_INTGがゼロに達する状態が継続する。そのため、有効スタートアップフラグSTUPがTRUEとなる直前の期間では、各状態の一期間が徐々に短くなる。また、このゼロクロス検出アンバランス回転の状態は、ステート間の長さは不均一であるが、ロータと励磁ステータとは周波数及び位相が一致した安定した回転状態であると判定できる。
Then, when the state transition (step S78 in FIG. 9) corresponding to the fact that the comparator integral value CMP_INTG has reached zero has occurred six times in succession, the motor
そして、有効スタートアップフラグSTUPがTRUEに切り替った後は、モータ駆動制御装置1は、定電流制御指示値CNST_CRNT_SETを最大電流値MAX_CRNTの3分の1から最大電流値MAX_CRNTに増加させる(図14のステップS120、S121)と共に、フライバックパルス継続PWMパルス数FB_MASKを移動平均ステートPWMパルス数ST_PWM_PLS_AVEの4分の1に設定する。そして、モータ駆動制御装置1は、定電流制御によりモータ4の回転速度を回転速度指示値ROT_SETまで上昇させる。
After the effective startup flag STUP is switched to TRUE, the motor
実施の形態1にかかるモータ駆動制御装置1では、上記処理によりモータ4を起動することでモータ4が逆回転状態を継続することを防止することができる。
In the motor
まず、モータ駆動制御装置1では、モータ4を駆動する駆動電流をゼロとして起動制御を開始する。そして、モータ駆動制御装置1は、駆動電流を徐々に増加させながら状態遷移を進める。これにより、ロータの静止トルクよりも遙かに大きな駆動トルクが急に印加されることを防止する。このように、駆動電流を徐々に大きくすることで、ロータと励磁ステータとの位相関係がロータを逆回転(意図しない回転方向)させる関係である場合であっても、ロータが逆回転方向に過剰に回転することを防止する。
First, the motor
また、モータ駆動制御装置1では、コンパレータ15の出力状態から、フライバックパルスフィルタ処理が終了する前にゼロクロスが発生したと判断される場合には、タイムアウト検出期間の経過を待たずに即座にPWM信号の状態を次状態に遷移させる。このとき、有効スタートアップフラグSTUPがFALSEである期間において、モータ駆動制御装置1では、フライバックパルス継続PWMパルス数FB_MASKの値を小さく設定することで逆回転方向の駆動トルクがロータに印加される期間を短くする。一方、モータ駆動制御装置1は、フライバックパルスフィルタ処理が終了した後にゼロクロスの発生が期待できる場合には、タイムアウト検出期間が経過するまでコンパレータ積分値CMP_INTGがゼロ達することを待つ。つまり、モータ駆動制御装置1では、ロータに正回転(意図した回転方向)の駆動トルクが印加される状態ではロータの回転位相が次状態の回転位置に達することをできる限り待ち、ロータに逆回転の駆動トルクが印加される状態ではロータに駆動トルクが印加される期間を短くする。
Further, in the motor
また、モータ駆動制御装置1は、コンパレータ積分値CMP_INTGがゼロに達したことに応じたPWM信号の状態遷移が6回連続して発生したことに応じてモータ4が正常な回転状態となったと判断する(有効スタートアップフラグSTUPをTRUEとする)。例えば、コンパレータ積分値CMP_INTGがゼロに達したことに応じたPWM信号の状態遷移が6回連続して発生しない場合、いずれかの駆動相において、ロータの回転周波数及び回転位相と、励磁ステータの駆動周波数及び駆動位相とが不一致となっている。このような状態で、駆動電流を最大電流値まで増加させた場合、不一致な駆動位相において意図した駆動トルクがロータに印加されず、回転が停止又は逆回転する可能性がある。一方、コンパレータ積分値CMP_INTGがゼロに達したことに応じたPWM信号の状態遷移が6回連続して発生している状態は、ロータの回転周波数及び回転位相と、励磁ステータの駆動周波数及び駆動位相とが一致していることを意味する。従って、コンパレータ積分値CMP_INTGがゼロに達したことに応じたPWM信号の状態遷移が6回連続して発生したことに応じて、モータ4が有効な回転状態となったことを判断することで、モータ4に逆回転方向の過剰な駆動トルクが印加されることを防止し、モータ4が逆回転する状態が継続することを防止することができる。
In addition, the motor
続いて、モータ4が回転状態になった後のモータ駆動制御プログラムの動作について説明する。実施の形態1にかかるモータ駆動制御プログラムは、PWM信号の周期毎にオフステートとしてハイサイドオフステートとローサイドオフステートとを切り換えるオルタネートPWM方式でモータ4を制御する。そこで、まず、モータ駆動制御プログラムが行うオルタネートPWM方式について説明する。モータ駆動制御プログラムは、デューティ比によりPWM信号のオンステートとオフステートとの比を決定する。そして、モータ駆動制御プログラムは、PWM信号のオンステート時に電源からモータ4に駆動電流を与える。また、モータ駆動制御プログラムは、PWM信号のオフステート時は、モータ4のコイルに流れる電流をドライバ回路3内のトランジスタ及びコイルの寄生抵抗により消費する。
Next, the operation of the motor drive control program after the
このオフステートにおいて、ハイサイドオフステートとローサイドオフステートとのいずれか一方のみを採用した場合、センタータップ電圧CT及び非通電相の駆動信号の電圧レベルが電源電圧側又は接地電圧側のいずれか一方に偏る。そして、この電圧レベルの偏りに起因してセンタータップ電圧CTと非通電相の駆動信号との電圧関係が逆転するゼロクロス点が時間的に前又は後ろにずれる問題が生じる。一方、実施の形態1にかかるモータ駆動制御プログラムは、オルタネートPWM方式を採用することで、センタータップ電圧CT及び非通電相の駆動信号の電圧レベルが電源電圧側又は接地電圧側のいずれか一方に偏ることを防止する。具体的には、実施の形態1にかかるモータ駆動制御プログラムでは、センタータップ電圧CT及び非通電相の駆動信号の電圧レベルが電源電圧側に偏る周期と接地電圧側に偏る周期がPWM信号の周期毎に繰り返され、一方に偏ることが防止される。さらに、入力されるセンタータップ電圧CTと比較対象検出信号SP(非通電相の駆動信号)との電圧レベルがPWM信号の周期毎に上下の偏りを持たせることで、モータ駆動制御装置1のコンパレータ15が入力オフセットを有していても、入力オフセットによる誤差は、コンパレータ積分値CMP_INTGを算出する段階で相殺される。つまり、実施の形態1にかかるモータ駆動制御プログラムは、オルタネートPWM方式を採用することでコンパレータ積分値CMP_INTGに基づくPWM信号の状態遷移タイミングの精度を向上させることができる。
In this off state, when only one of the high side off state and the low side off state is adopted, the voltage level of the center tap voltage CT and the drive signal of the non-conduction phase is either the power supply voltage side or the ground voltage side. Biased toward A problem arises in that the zero cross point at which the voltage relationship between the center tap voltage CT and the drive signal of the non-energized phase is reversed due to this voltage level deviation shifts forward or backward in time. On the other hand, the motor drive control program according to the first embodiment adopts the alternate PWM method, so that the voltage level of the center tap voltage CT and the drive signal of the non-conduction phase is set to either the power supply voltage side or the ground voltage side. Prevents bias. Specifically, in the motor drive control program according to the first embodiment, the cycle in which the voltage level of the center tap voltage CT and the drive signal of the non-energized phase is biased toward the power supply voltage side and the cycle in which the voltage level is biased toward the ground voltage side are PWM signal cycles. It is repeated every time and it is prevented from being biased to one side. Further, the voltage level of the input center tap voltage CT and the comparison target detection signal SP (non-energized phase drive signal) has a vertical deviation for each period of the PWM signal, so that the comparator of the motor
モータ4は、3相駆動のモータであり、6状態のPWM信号により制御される。そして、オルタネートPWM方式による動作を行う場合、回転動作を行うために、ドライバ回路3を構成するトランジスタのいずれをオンさせるかが状態毎に異なる。そこで、図17〜図22に状態0〜状態5の各状態のオンステートとオフステートの制御状態を説明するドライバ回路3の回路図を示す。
The
ここで、オンステートとオフステートのドライバ回路の制御状態を説明する前に、図17〜図22を参照してドライバ回路3の回路について説明する。図17〜図22に示すように、ドライバ回路3は、U相、V相、W相の3つの駆動信号を生成するために、3組の駆動段回路を有する。図17〜図22に示す例では、3組の駆動段回路は、PMOSトランジスタによりハイサイドトランジスタが形成され、NMOSトランジスタによりローサイドトランジスタが形成される。
Here, before describing the control states of the on-state and off-state driver circuits, the circuit of the
そして、図17〜図22に示すように、U相の駆動信号を生成する駆動段回路は、ハイサイドトランジスタPUとローサイドトランジスタNUとが電源配線と接地配線との間に直列に接続される。また、ハイサイドトランジスタPUのゲートにはPWM信号UHが入力され、ローサイドトランジスタNUのゲートにはPWM信号ULが入力される。V相の駆動信号を生成する駆動段回路は、ハイサイドトランジスタPVとローサイドトランジスタNVとが電源配線と接地配線との間に直列に接続される。また、ハイサイドトランジスタPVのゲートにはPWM信号VHが入力され、ローサイドトランジスタNVのゲートにはPWM信号VLが入力される。W相の駆動信号を生成する駆動段回路は、ハイサイドトランジスタPWとローサイドトランジスタNWとが電源配線と接地配線との間に直列に接続される。また、ハイサイドトランジスタPWのゲートにはPWM信号WHが入力され、ローサイドトランジスタNWのゲートにはPWM信号WLが入力される。 As shown in FIGS. 17 to 22, in the driving stage circuit that generates the U-phase driving signal, the high-side transistor PU and the low-side transistor NU are connected in series between the power supply wiring and the ground wiring. The PWM signal UH is input to the gate of the high side transistor PU, and the PWM signal UL is input to the gate of the low side transistor NU. In a drive stage circuit that generates a V-phase drive signal, a high side transistor PV and a low side transistor NV are connected in series between a power supply line and a ground line. The PWM signal VH is input to the gate of the high side transistor PV, and the PWM signal VL is input to the gate of the low side transistor NV. In a drive stage circuit that generates a W-phase drive signal, a high-side transistor PW and a low-side transistor NW are connected in series between a power supply line and a ground line. The PWM signal WH is input to the gate of the high side transistor PW, and the PWM signal WL is input to the gate of the low side transistor NW.
続いて、オンステートとオフステートのドライバ回路の制御状態を説明する。図17は、状態0におけるオンステートとオフステートのドライバ回路3の制御状態を示す回路図である。図17に示すように、状態0のオンステートでは、ハイサイドトランジスタPUとローサイドトランジスタNVがオン状態となる。そして、モータ4のU相のコイルLUからV相のコイルLVに駆動電流が流れる。また、ハイサイドオフステートでは、ハイサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPUが属する駆動段回路のローサイドトランジスタNUと、オンステートにおいてオン状態であったローサイドトランジスタNVと、がオン状態となる。そして、コイルLU、LVに流れていたフライバック電流はローサイドトランジスタNU、NVにより消費される。また、ローサイドオフステートでは、ローサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPUと、オンステートにおいてオン状態であったローサイドトランジスタNVが属する駆動段回路のハイサイドトランジスタPVと、がオン状態となる。そして、コイルLU、LVに流れていたフライバック電流はハイサイドトランジスタPU、PVにより消費される。
Next, the control state of the on-state and off-state driver circuits will be described. FIG. 17 is a circuit diagram showing the control state of the on-state and off-
図18は、状態1におけるオンステートとオフステートのドライバ回路3の制御状態を示す回路図である。図18に示すように、状態1のオンステートでは、ハイサイドトランジスタPUとローサイドトランジスタNWがオン状態となる。そして、モータ4のU相のコイルLUからW相のコイルLWに駆動電流が流れる。また、ハイサイドオフステートでは、ハイサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPUが属する駆動段回路のローサイドトランジスタNUと、オンステートにおいてオン状態であったローサイドトランジスタNWと、がオン状態となる。そして、コイルLU、LWに流れていたフライバック電流はローサイドトランジスタNU、NWにより消費される。また、ローサイドオフステートでは、ローサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPUと、オンステートにおいてオン状態であったローサイドトランジスタNWが属する駆動段回路のハイサイドトランジスタPWと、がオン状態となる。そして、コイルLU、LWに流れていたフライバック電流はハイサイドトランジスタPU、PWにより消費される。
FIG. 18 is a circuit diagram showing the control state of the on-state and off-
図19は、状態2におけるオンステートとオフステートのドライバ回路3の制御状態を示す回路図である。図19に示すように、状態2のオンステートでは、ハイサイドトランジスタPVとローサイドトランジスタNWがオン状態となる。そして、モータ4のV相のコイルLVからW相のコイルLWに駆動電流が流れる。また、ハイサイドオフステートでは、ハイサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPVが属する駆動段回路のローサイドトランジスタNVと、オンステートにおいてオン状態であったローサイドトランジスタNWと、がオン状態となる。そして、コイルLV、LWに流れていたフライバック電流はローサイドトランジスタNV、NWにより消費される。また、ローサイドオフステートでは、ローサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPVと、オンステートにおいてオン状態であったローサイドトランジスタNWが属する駆動段回路のハイサイドトランジスタPWと、がオン状態となる。そして、コイルLV、LWに流れていたフライバック電流はハイサイドトランジスタPV、PWにより消費される。
FIG. 19 is a circuit diagram illustrating a control state of the on-state and off-
図20は、状態3におけるオンステートとオフステートのドライバ回路3の制御状態を示す回路図である。図20に示すように、状態3のオンステートでは、ハイサイドトランジスタPVとローサイドトランジスタNUがオン状態となる。そして、モータ4のV相のコイルLVからU相のコイルLUに駆動電流が流れる。また、ハイサイドオフステートでは、ハイサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPVが属する駆動段回路のローサイドトランジスタNVと、オンステートにおいてオン状態であったローサイドトランジスタNUと、がオン状態となる。そして、コイルLV、LUに流れていたフライバック電流はローサイドトランジスタNV、NUにより消費される。また、ローサイドオフステートでは、ローサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPVと、オンステートにおいてオン状態であったローサイドトランジスタNUが属する駆動段回路のハイサイドトランジスタPUと、がオン状態となる。そして、コイルLU、LVに流れていたフライバック電流はハイサイドトランジスタPU、PVにより消費される。
FIG. 20 is a circuit diagram showing the control state of the on-state and off-
図21は、状態4におけるオンステートとオフステートのドライバ回路3の制御状態を示す回路図である。図21に示すように、状態4のオンステートでは、ハイサイドトランジスタPWとローサイドトランジスタNUがオン状態となる。そして、モータ4のW相のコイルLWからU相のコイルLUに駆動電流が流れる。また、ハイサイドオフステートでは、ハイサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPWが属する駆動段回路のローサイドトランジスタNWと、オンステートにおいてオン状態であったローサイドトランジスタNUと、がオン状態となる。そして、コイルLU、LWに流れていたフライバック電流はローサイドトランジスタNU、NWにより消費される。また、ローサイドオフステートでは、ローサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPWと、オンステートにおいてオン状態であったローサイドトランジスタNUが属する駆動段回路のハイサイドトランジスタPUと、がオン状態となる。そして、コイルLU、LWに流れていたフライバック電流はハイサイドトランジスタPU、PWにより消費される。
FIG. 21 is a circuit diagram showing the control state of the on-state and off-
図22は、状態5におけるオンステートとオフステートのドライバ回路3の制御状態を示す回路図である。図22に示すように、状態5のオンステートでは、ハイサイドトランジスタPWとローサイドトランジスタNVがオン状態となる。そして、モータ4のW相のコイルLWからV相のコイルLVに駆動電流が流れる。また、ハイサイドオフステートでは、ハイサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPWが属する駆動段回路のローサイドトランジスタNWと、オンステートにおいてオン状態であったローサイドトランジスタNVと、がオン状態となる。そして、コイルLV、LWに流れていたフライバック電流はローサイドトランジスタNV、NWにより消費される。また、ローサイドオフステートでは、ローサイドトランジスタをすべてオフ状態とし、オンステートにおいてオン状態であったハイサイドトランジスタPWと、オンステートにおいてオン状態であったローサイドトランジスタNVが属する駆動段回路のハイサイドトランジスタPVと、がオン状態となる。そして、コイルLV、LWに流れていたフライバック電流はハイサイドトランジスタPV、PWにより消費される。
FIG. 22 is a circuit diagram showing the control state of the on-state and off-
なお、オフステートにおいて、オフされたトランジスタと対になる反対側のトランジスタをオンする動作は、同期整流動作と呼ばれる。つまり、実施の形態1にかかるモータ駆動制御プログラムにおけるオルタネートPWM方式の動作は、同期整流動作を含む。このような同期整流動作を行うことで、従来は、オフ状態のトランジスタのボディダイオードで消費されたフライバック電流を、オン状態のトランジスタにおいて消費することが可能になり電力効率を向上させることができる。そこで、同期整流動作の有無による入出力特性を比較するグラフを図23に示す。図23に示すように、同期整流動作を行った場合、入力される電力が小さい場合の出力(回転速度×トルク)が同期整流動作を行わない場合に比べて低くなっていることがわかる。また、入力電力の範囲が同じである場合、出力の範囲が同期整流動作を行った場合の方が広くなっていることがわかる。 Note that the operation of turning on the opposite transistor paired with the turned off transistor in the off state is called a synchronous rectification operation. That is, the operation of the alternate PWM method in the motor drive control program according to the first embodiment includes a synchronous rectification operation. By performing such synchronous rectification operation, conventionally, the flyback current consumed by the body diode of the off-state transistor can be consumed by the on-state transistor, and the power efficiency can be improved. . Therefore, FIG. 23 shows a graph comparing input / output characteristics with and without the synchronous rectification operation. As shown in FIG. 23, it is understood that when the synchronous rectification operation is performed, the output (rotation speed × torque) when the input power is small is lower than when the synchronous rectification operation is not performed. It can also be seen that when the input power range is the same, the output range is wider when the synchronous rectification operation is performed.
上記説明より、実施の形態1にかかるモータ駆動制御プログラムでは、オルタネートPWM方式によりPWM信号のオフステートの状態を制御する。オフステートの制御としては、オルタネートPWM方式の他に、ハイサイドオフステートとローサイドオフステートとのいずれか一方の状態のみの制御を行うことも考えられる。しかし、オフステートとしてハイサイドオフステートとローサイドオフステートとのいずれか一方しか行わない場合、センタータップ電圧CT及び非通電相の駆動信号の電圧レベルが電源電圧側又は接地電圧側のいずれか一方に偏る。また、モータ4の回転速度が低い場合、ハイインピーダンス状態となる非通電相の電位変化の傾きが緩やかになる。そのため、オフステートとしてハイサイドオフステートとローサイドオフステートとのいずれか一方しか行わない場合、モータ4の回転速度が低い状態で、センタータップ電圧CT及び非通電相の駆動信号の電圧関係が逆転するゼロクロスタイミングのずれが顕著になりゼロクロス点のずれが顕著になる問題がある。
From the above description, the motor drive control program according to the first embodiment controls the off-state state of the PWM signal by the alternate PWM method. As the off-state control, in addition to the alternate PWM method, it is conceivable to control only one of the high-side off state and the low-side off state. However, when only one of the high side off state and the low side off state is performed as the off state, the voltage level of the center tap voltage CT and the drive signal of the non-conducting phase is set to either the power supply voltage side or the ground voltage side. Biased. Further, when the rotation speed of the
しかし、実施の形態1にかかるモータ駆動制御プログラムでは、オルタネートPWM方式を採用することで、センタータップ電圧CT及び非通電相の駆動信号の電圧レベルのずれ方向がPWM信号の周期毎に上下する。これにより、コンパレータ15が入力オフセットを有する場合であっても、入力オフセットに起因するコンパレータ積分値CMP_INTGのずれが、センタータップ電圧CT及び非通電相の駆動信号の電圧レベルのずれ方向の変動により相殺される。また、コンパレータ15は、入力ノイズの影響により誤判定を生じることがあるが、オルタネートPWM方式を採用することでセンタータップ電圧CT及び非通電相の駆動信号の電圧レベルの上下方向の変動が入力ノイズを相殺する。そのため、実施の形態1にかかるモータ駆動制御プログラムを用いた場合、コンパレータ15にヒステリシス特性を持たせる必要がない。これにより、実施の形態1にかかるモータ駆動制御プログラムでは、モータ4の回転速度が遅くセンタータップ電圧CTと非通電相の駆動信号との傾きが緩やかな状態であっても、コンパレータ15の入力オフセット及びヒステリシス特性に起因するゼロクロス検出タイミングのずれの影響を受けることない。そして、実施の形態1にかかるモータ駆動制御プログラムでは、コンパレータ積分値CMP_INTGにより精度の高いタイミングでPWM信号の状態を遷移させることができる。即ち、実施の形態1にかかるモータ駆動制御プログラムは、低回転速度領域におけるモータの制御性を高めることができる。また、実施の形態1にかかるモータ駆動制御プログラムは、低回転速度側の制御性が高めることで、広い回転速度範囲でモータの制御性を高めることができる。
However, in the motor drive control program according to the first embodiment, by adopting the alternate PWM method, the shift direction of the voltage level of the center tap voltage CT and the drive signal of the non-energized phase is increased or decreased for each period of the PWM signal. Thereby, even when the
このようなオルタネートPWM方式による動作は、PWM信号のデューティ比が100%未満の状態で行われる。そこで、オルタネートPWM方式による動作が行われるPWM信号のデューティ比が50%である状態を例にモータ駆動制御プログラムの動作について説明する。なお、以下の説明では、モータ駆動制御プログラムの動作に基づき生成されるPWM信号は、モータ駆動制御装置1から出力されるものであるため、モータ駆動制御プログラムの動作としてモータ駆動制御装置1の動作を説明する。
Such an operation by the alternate PWM method is performed in a state where the duty ratio of the PWM signal is less than 100%. Thus, the operation of the motor drive control program will be described by taking as an example a state where the duty ratio of the PWM signal in which the operation by the alternate PWM method is performed is 50%. In the following description, since the PWM signal generated based on the operation of the motor drive control program is output from the motor
ここでは、PWM信号の波形と、モータ4を駆動する駆動信号の波形及び駆動信号に応じたモータ駆動制御装置1の動作をより詳細に説明するために、状態0の動作状態を例に、モータ駆動制御装置1の動作について説明する。
Here, in order to explain in more detail the waveform of the PWM signal, the waveform of the drive signal that drives the
まず、図24に、モータ駆動制御装置1が生成するPWM信号、当該PWM信号に応じて生成されるモータ4の駆動信号及びモータ4のセンタータップ電圧CTのタイミングチャートを示す。図24に示すように、モータ駆動制御装置1では、デューティ比が50%となる基準PWM信号を生成する。そして、モータ駆動制御装置1は、基準PWM信号に基づき3相の駆動信号を生成するための6つのPWM信号UH、UL、VH、VL、WH、WLを生成する。
First, FIG. 24 shows a timing chart of the PWM signal generated by the motor
状態0は、U相からV相に向かって駆動電流を流す状態である。また、状態0では、W相の駆動信号はハイインピーダンス状態(Zステート)となる。そこで、状態0では、モータ駆動制御装置1は、基準PWM信号のオンステート(ハイレベルの期間)においてPWM信号UH、ULをローレベルとする。また、状態0では、モータ駆動制御装置1は、基準PWM信号のオンステートにおいてPWM信号VH、VLをハイレベルとする。さらに、状態0では、モータ駆動制御装置1は、基準PWM信号のオンステートにおいてPWM信号WHをハイレベル、PWM信号WLをローレベルとする。これにより、基準PWM信号のオンタイムにおいて、U相の駆動信号はハイレベルとなり、V相の駆動信号はローレベルとなる。そして、U相からV相に対して駆動電流が流れる。また、W相の駆動信号はハイインピーダンス状態であるため、U相の駆動信号とV相の駆動信号との間の電圧値になる。このW相の駆動信号の電圧値は、ロータの回転位置に従って電圧値が徐々に低下する。
また、実施の形態1では、オルタネートPWM方式による動作を行うため、基準PWM信号のオフステートとしてハイサイドオフステートと、ローサイドオフステートと、を有する。そして、図24に示すように、実施の形態1にかかるモータ駆動制御装置1は、ハイサイドオフステートとローサイドオフステートとをPWM信号の周期毎に切り換える。
Further, in the first embodiment, in order to perform the operation by the alternate PWM method, the reference PWM signal has the high side off state and the low side off state as the off state. As shown in FIG. 24, the motor
そこで、まず、状態0におけるハイサイドオフステート時のPWM信号UH、UL、VH、VL、WH、WLについて説明する。状態0では、U相からV相に向かって駆動電流を流し、W相の駆動信号はハイインピーダンス状態となる。そこで、状態0のハイサイドオフステートでは、モータ駆動制御装置1は、基準PWM信号のオフステート(ローレベルの期間)においてPWM信号UH、ULをハイレベルとする。また、状態0のハイサイドオフステートでは、モータ駆動制御装置1は、基準PWM信号のオフステートにおいてPWM信号VH、VLをハイレベルとする。さらに、状態0のハイサイドオフステートでは、モータ駆動制御装置1は、基準PWM信号のオフステートにおいてPWM信号WHをハイレベル、PWM信号WLをローレベルとする。これにより、基準PWM信号のオフタイムにおいて、U相の駆動信号、V相の駆動信号及びW相の駆動信号はローレベルとなる。そして、U相とV相との間において電流が流れる。
Therefore, first, PWM signals UH, UL, VH, VL, WH, WL in the high-side off state in
続いて、状態0におけるローサイドオフステート時のPWM信号UH、UL、VH、VL、WH、WLについて説明する。状態0では、U相からV相に向かって駆動電流を流し、W相の駆動信号はハイインピーダンス状態となる。そこで、状態0のローサイドオフステートでは、モータ駆動制御装置1は、基準PWM信号のオフステート(ローレベルの期間)においてPWM信号UH、ULをローレベルとする。また、状態0のローサイドオフステートでは、モータ駆動制御装置1は、基準PWM信号のオフステートにおいてPWM信号VH、VLをローレベルとする。さらに、状態0のローサイドオフステートでは、モータ駆動制御装置1は、基準PWM信号のオフステートにおいてPWM信号WHをハイレベル、PWM信号WLをローレベルとする。これにより、基準PWM信号のオフタイムにおいて、U相の駆動信号、V相の駆動信号及びW相の駆動信号はハイレベルとなる。そして、U相とV相との間において電流が流れる。
Next, PWM signals UH, UL, VH, VL, WH, and WL during the low-side off state in
上記説明のように、モータ駆動制御装置1は、PWM信号の周期毎にオンステートとオフステートとを切り替える。さらに、モータ駆動制御装置1は、オフステートの制御状態を、PWM信号の周期毎にハイサイドオフステートとローサイドオフステートとに切り換える。このような制御を行うことで、モータ駆動制御装置1は、オンステートにおいてU相からV相に駆動電流を流す。そして、ハイインピーダンス状態となる非通電相(状態0ではW相の駆動信号)の電圧は、ハイレベルからローレベルに向かって変化する。この非通電相の電圧変化は、ロータの回転位置に応じて変化する。なお、PWM信号の状態が変化した直後は、非通電相にフライバックパルスが生じる。センタータップ電圧CTは、U相、V相、W相の駆動信号の電圧値に基づき生成される。このとき、オンステートにおいてU相の駆動信号はハイレベルであり、V相の駆動信号はローレベルであるため、センタータップ電圧CTは、非通電相のW相の駆動信号の電圧に応じた変動を示す。
As described above, the motor
続いて、状態0におけるモータ駆動制御装置1のPWM信号制御処理について説明する。図25に、デューティ比が50%のPWM信号を生成した場合の状態0のモータ駆動制御装置1の動作を説明するタイミングチャートを示す。図25に示すように、PWM信号のデューティ比が50%である場合、モータ駆動制御装置1は、BEMFタイマ割り込みが生じたことに応じて、PWM信号をオンステートからオフステートに切り換える。この動作は、図5のステップS32の動作に相当するものである。また、モータ駆動制御装置1は、PWM周期割り込みに応じて、PWM信号をオフステートからオンステートに切り換える。この動作は、図5のステップS36の動作に相当するものである。なお、モータ駆動制御装置1は、一状態の中でPWM信号のデューティ比をPWM信号の周期毎に更新するが、図25では、説明を簡単にするために全期間に亘りPWM信号のデューティ比を50%とした。
Next, the PWM signal control process of the motor
状態0では、非通電相はW相の駆動信号である。そのため、モータ駆動制御装置1は、W相の駆動信号を比較対象検出信号SPとして選択する。つまり、モータ駆動制御装置1のコンパレータ15には、W相の駆動信号を比較対象検出信号SPとセンタータップ電圧CTとが入力される。そして、コンパレータ15は、比較対象検出信号SPがセンタータップ電圧CTよりも高い場合、出力信号CMP_OUTをハイレベルとし、比較対象検出信号SPがセンタータップ電圧CTよりも低い場合、出力信号CMP_OUTをローレベルとする。
In
そして、モータ駆動制御装置1は、BEMF割り込みが発生するとコンパレータ15の出力信号CMP_OUTの値をサンプリングする。この動作は、図5のステップS23の動作に相当するものである。図25に示す例では、コンパレータ15の出力信号CMP_OUTとして、PWMデモジュレータ21によりサンプリングされた出力信号CMP_OUTを示した。
The motor
なお、図25に示す例では、コンパレータ15の出力信号CMP_OUTが比較対象検出信号SPとセンタータップ電圧CTとの電圧関係を誤判定する期間(例えば、コンパレータ15の出力信号がパルス状の波形となる期間)が存在する。この現象は、コンパレータ15に入力されるノイズ、或いは、オルタネートPWM方式の動作に起因して生じるものである。
In the example shown in FIG. 25, the output signal CMP_OUT of the
また、モータ駆動制御装置1は、サンプリングされたコンパレータ15の出力信号CMP_OUTの値に基づきコンパレータ積分値を増減させる。より具体的には、モータ駆動制御装置1は、フライバックパルスフィルタ処理がなされる期間(例えば、フライバックパルス継続PWMパルス数FB_MASKで示す期間)においては、比較対象検出信号SPとセンタータップ電圧CTとの電圧関係に関わらずコンパレータ積分値CMP_INTGを増加させる。この動作は、図6のステップS44及び図8のステップS63の動作に相当するものである。また、モータ駆動制御装置1は、フライバックパルスフィルタ処理がなされる期間が終了すると、コンパレータ15の出力信号CMP_OUTがハイレベルである場合コンパレータ積分値CMP_INTGを増加させ、コンパレータ15の出力信号CMP_OUTがローレベルである場合コンパレータ積分値CMP_INTGを減少させる。この動作は、図9のステップS70〜S72の動作に相当するものである。
Further, the motor
また、モータ駆動制御装置1は、PWM周期タイマ割り込みが発生する毎にステートPWMパルス数ST_PWM_PLSを増加させる。この動作は、図6のステップS41の動作に相当するものである。モータ駆動制御装置1は、第1の条件と第2の条件のいずれか一方を満たした場合、PWM信号の状態を次状態に遷移させる。ここで、第1の条件とは、現状態(例えば、状態0)のステートPWMパルス数ST_PWM_PLS[0]が移動平均ステートPWMパルス数ST_PWM_PLS_AVEに達したことである。なお、また、移動平均ステートPWMパルス数ST_PWM_PLS_AVEは、前状態(例えば、状態0)のステートPWMパルス数ST_PWM_PLS[0]と、前状態よりも前の5つの状態のステートPWMパルス数ST_PWM_PLS[5]〜ST_PWM_PLS[1]との合計値を状態数である6で除算して得られる値である。また、第2の条件は、コンパレータ積分値CMP_INTGがカウント初期値(例えば、ゼロ)に達したことである。第1の条件に応じて生じる状態の遷移は、図9のステップS84及びステップS85の動作に相当するものである。第2の条件に応じて生じる条件の遷移は、図9のステップS77及びステップS78の動作に相当するものである。図25に示す例では、コンパレータ積分値CMP_INTGがゼロに達したこと、つまり、第2の条件を満たしたことに応じてPWM信号の状態遷移が行われた例を示した。
Further, the motor
続いて、モータ駆動制御装置1がモータ4を一回転させる期間の動作について説明する。モータ駆動制御装置1は、モータ4を一回転させる間にPWM信号を6回状態遷移させる。そこで、図26に、モータ駆動制御装置1においてデューティ比が50%のPWM信号を生成した場合の状態0〜状態5の駆動信号及びセンタータップ電圧を説明するタイミングチャートを示す。なお、PWM信号UH、UL、VH、VL、WH、WLの信号波形は、図24で説明した状態0の信号波形と同等の波形が状態の遷移に対応したものであるあるため、ここでは信号波形についての詳細な説明は省略する。
Next, an operation during a period in which the motor
図26に示すように、モータ駆動制御装置1は、状態0において、PWM信号WHをハイレベル、PWM信号WLをローレベルとすることでW相の駆動信号を非通電相とする。一方、モータ駆動制御装置1は、PWM信号UH、UL、VH、VLを制御してオンステートにおいてU相からV相に向かって駆動電流を流し、オフステートにおいてU相とV相の駆動信号をハイサイドオフステート状態又はローサイドオフステート状態とする。これにより、センタータップ電圧CTは、W相の駆動信号の電圧変動に対応した電圧変動を生じる。
As shown in FIG. 26, in the
また、モータ駆動制御装置1は、状態1において、PWM信号VHをハイレベル、PWM信号VLをローレベルとすることでV相の駆動信号を非通電相とする。一方、モータ駆動制御装置1は、PWM信号UH、UL、WH、WLを制御してオンステートにおいてU相からW相に向かって駆動電流を流し、オフステートにおいてU相とW相の駆動信号をハイサイドオフステート状態又はローサイドオフステート状態とする。これにより、センタータップ電圧CTは、V相の駆動信号の電圧変動に対応した電圧変動を生じる。
Further, in the
また、モータ駆動制御装置1は、状態2において、PWM信号UHをハイレベル、PWM信号ULをローレベルとすることでU相の駆動信号を非通電相とする。一方、モータ駆動制御装置1は、PWM信号VH、VL、WH、WLを制御してオンステートにおいてV相からW相に向かって駆動電流を流し、オフステートにおいてV相とW相の駆動信号をハイサイドオフステート状態又はローサイドオフステート状態とする。これにより、センタータップ電圧CTは、U相の駆動信号の電圧変動に対応した電圧変動を生じる。
Further, in the
また、モータ駆動制御装置1は、状態3において、PWM信号WHをハイレベル、PWM信号WLをローレベルとすることでW相の駆動信号を非通電相とする。一方、モータ駆動制御装置1は、PWM信号UH、UL、VH、VLを制御してオンステートにおいてV相からU相に向かって駆動電流を流し、オフステートにおいてV相とU相の駆動信号をハイサイドオフステート状態又はローサイドオフステート状態とする。これにより、センタータップ電圧CTは、W相の駆動信号の電圧変動に対応した電圧変動を生じる。
Further, in the
また、モータ駆動制御装置1は、状態4において、PWM信号VHをハイレベル、PWM信号VLをローレベルとすることでV相の駆動信号を非通電相とする。一方、モータ駆動制御装置1は、PWM信号UH、UL、WH、WLを制御してオンステートにおいてW相からU相に向かって駆動電流を流し、オフステートにおいてW相とU相の駆動信号をハイサイドオフステート状態又はローサイドオフステート状態とする。これにより、センタータップ電圧CTは、V相の駆動信号の電圧変動に対応した電圧変動を生じる。
Further, in the
また、モータ駆動制御装置1は、状態5において、PWM信号UHをハイレベル、PWM信号ULをローレベルとすることでU相の駆動信号を非通電相とする。一方、モータ駆動制御装置1は、PWM信号VH、VL、WH、WLを制御してオンステートにおいてW相からV相に向かって駆動電流を流し、オフステートにおいてW相とV相の駆動信号をハイサイドオフステート状態又はローサイドオフステート状態とする。これにより、センタータップ電圧CTは、U相の駆動信号の電圧変動に対応した電圧変動を生じる。
Further, in the
続いて、図27に、モータ駆動制御装置1においてデューティ比が50%のPWM信号を生成した場合の状態0〜状態5のモータ駆動制御装置1の動作を説明するタイミングチャートを示す。なお、フライバックパルスフィルタ、コンパレータ積分値CMP_INTG、ステートPWMパルス数ST_PWM_PLSに関する動作は、図25で説明した状態0の動作と同等の動作であるため、ここでは、これらの動作に関する詳細な説明は省略する。
Subsequently, FIG. 27 shows a timing chart for explaining the operation of the motor
図27に示すように、モータ駆動制御装置1は、状態0において比較対象検出信号SPとしてW相の駆動信号を選択し、状態1において比較対象検出信号SPとしてV相の駆動信号を選択し、状態2において比較対象検出信号SPとしてU相の駆動信号を選択し、状態3において比較対象検出信号SPとしてW相の駆動信号を選択し、状態4において比較対象検出信号SPとしてV相の駆動信号を選択し、状態5において比較対象検出信号SPとしてU相の駆動信号を選択する。そして、各状態において、コンパレータ15により、比較対象検出信号SPとセンタータップ電圧CTとを比較する。
As shown in FIG. 27, the motor
そして、コンパレータ15の出力信号CMP_OUTの値に基づきコンパレータ積分値CMP_INTGを算出する。このとき、コンパレータ積分値CMP_INTGは、偶数番目の状態では増加後に減少する変動を示し、奇数番目の状態では減少後に増加する変動を示す。なお、図27に示す例では、いずれの状態においても、コンパレータ15が2つの入力信号間の電圧関係を誤判定する状態が生じている。しかし、モータ駆動制御装置1では、コンパレータ積分値CMP_INTGがゼロになったことにより比較対象検出信号SPとセンタータップ電圧CTとの間のゼロクロスを検出して、ロータの位置検出を行うことができる。
Then, a comparator integral value CMP_INTG is calculated based on the value of the output signal CMP_OUT of the
また、モータ駆動制御装置1は、現状態と現状態より以前の5つの状態のステートPWMパルス数ST_PWM_PLSの合計値から次状態で利用される移動平均ステートPWMパルス数ST_PWM_PLS_AVEを算出する。そして、モータ駆動制御装置1は、ステートPWMパルス数ST_PWM_PLSが移動平均ステートPWMパルス数ST_PWM_PLS_AVEに達したこと、又は、コンパレータ積分値CMP_INTGがゼロに達したことのいずれか一方の条件が満たされたことに応じてPWM信号の状態を遷移させる。
Further, the motor
続いて、PWM信号のデューティ比を100%とした場合のモータ駆動制御装置1の動作について説明する。図28に、デューティ比が100%のPWM信号を生成した場合の状態0〜状態5の駆動信号及びセンタータップ電圧を説明するタイミングチャートを示す。図28に示すように、状態0では、モータ駆動制御装置1は、駆動電流の経路となるハイサイドトランジスタPU及びローサイドトランジスタNVを導通状態とする。そのため、モータ駆動制御装置1は、PWM信号UH及びPWM信号VLのみをオンステートとし、その他のPWM信号はオフステートとする。これにより、非通電相となるW相の駆動信号にロータ位置に従った電位変動が生じる。
Next, the operation of the motor
状態1では、モータ駆動制御装置1は、駆動電流の経路となるハイサイドトランジスタPU及びローサイドトランジスタNWを導通状態とする。そのため、モータ駆動制御装置1は、PWM信号UH及びPWM信号WLのみをオンステートとし、その他のPWM信号はオフステートとする。これにより、非通電相となるV相の駆動信号にロータ位置に従った電位変動が生じる。
In the
状態2では、モータ駆動制御装置1は、駆動電流の経路となるハイサイドトランジスタPV及びローサイドトランジスタNWを導通状態とする。そのため、モータ駆動制御装置1は、PWM信号VH及びPWM信号WLのみをオンステートとし、その他のPWM信号はオフステートとする。これにより、非通電相となるU相の駆動信号にロータ位置に従った電位変動が生じる。
In the
状態3では、モータ駆動制御装置1は、駆動電流の経路となるハイサイドトランジスタPV及びローサイドトランジスタNUを導通状態とする。そのため、モータ駆動制御装置1は、PWM信号VH及びPWM信号ULのみをオンステートとし、その他のPWM信号はオフステートとする。これにより、非通電相となるW相の駆動信号にロータ位置に従った電位変動が生じる。
In the
状態4では、モータ駆動制御装置1は、駆動電流の経路となるハイサイドトランジスタPW及びローサイドトランジスタNUを導通状態とする。そのため、モータ駆動制御装置1は、PWM信号WH及びPWM信号ULのみをオンステートとし、その他のPWM信号はオフステートとする。これにより、非通電相となるV相の駆動信号にロータ位置に従った電位変動が生じる。
In
状態5では、モータ駆動制御装置1は、駆動電流の経路となるハイサイドトランジスタPW及びローサイドトランジスタNVを導通状態とする。そのため、モータ駆動制御装置1は、PWM信号WH及びPWM信号VLのみをオンステートとし、その他のPWM信号はオフステートとする。これにより、非通電相となるU相の駆動信号にロータ位置に従った電位変動が生じる。
In the
続いて、図29に、モータ駆動制御装置1においてデューティ比が100%のPWM信号を生成した場合の状態0〜状態5のモータ駆動制御装置1の動作を説明するタイミングチャートを示す。なお、フライバックパルスフィルタ、コンパレータ積分値CMP_INTG、ステートPWMパルス数ST_PWM_PLSに関する動作は、図25で説明した状態0の動作と同等の動作であるため、ここでは、これらの動作に関する詳細な説明は省略する。
Subsequently, FIG. 29 shows a timing chart for explaining the operation of the motor
図29に示すように、モータ駆動制御装置1は、状態0において比較対象検出信号SPとしてW相の駆動信号を選択し、状態1において比較対象検出信号SPとしてV相の駆動信号を選択し、状態2において比較対象検出信号SPとしてU相の駆動信号を選択し、状態3において比較対象検出信号SPとしてW相の駆動信号を選択し、状態4において比較対象検出信号SPとしてV相の駆動信号を選択し、状態5において比較対象検出信号SPとしてU相の駆動信号を選択する。そして、各状態において、コンパレータ15により、比較対象検出信号SPとセンタータップ電圧CTとを比較する。
As shown in FIG. 29, the motor
そして、コンパレータ15の出力信号CMP_OUTの値に基づきコンパレータ積分値CMP_INTGを算出する。このとき、コンパレータ積分値CMP_INTGは、偶数番目の状態では増加後に減少する変動を示し、奇数番目の状態では減少後に増加する変動を示す。なお、図29に示す例では、いずれの状態においても、コンパレータ15は2つの入力信号間の電圧関係について誤判定を生じることなく正しく判定している。これは、モータ4の回転速度が高く、一状態の時間が短い(すなわちステートPWMパルス数ST_PWMPLSが小さい)ため、非通電相の電位変化の傾きが大きい。そのため、コンパレータ15に入力される2つの信号の電位差が小さな期間が小さい。このようなことから、モータ4の回転速度が高い場合、コンパレータ15が入力信号の電圧関係を誤判定確率が小さくなる。また、非通電相の電位変化の傾きが大きいため、コンパレータ15の入力オフセットがコンパレータ積分値CMP_INTGに与える影響も少なくなる。なお、モータ駆動制御装置1では、コンパレータ積分値CMP_INTGがゼロになったことにより比較対象検出信号SPとセンタータップ電圧CTとの間のゼロクロスを検出するため、モータ4の回転速度によらず、ロータの位置検出精度を保つことができる。
Then, a comparator integral value CMP_INTG is calculated based on the value of the output signal CMP_OUT of the
また、モータ駆動制御装置1は、現状態と現状態より以前の5つの状態のステートPWMパルス数ST_PWM_PLSの合計値から次状態で利用される移動平均ステートPWMパルス数ST_PWM_PLS_AVEを算出する。そして、モータ駆動制御装置1は、ステートPWMパルス数ST_PWM_PLSが移動平均ステートPWMパルス数ST_PWM_PLS_AVEに達したこと、又は、コンパレータ積分値CMP_INTGがゼロに達したことのいずれか一方の条件が満たされたことに応じてPWM信号の状態を遷移させる。
Further, the motor
続いて、実施の形態1にかかるモータ駆動制御装置1におけるPWM信号の生成方法について具体的な波形を示して説明する。つまり、実施の形態1にかかるモータ駆動制御装置1における図15で示したPWMプリモジュレーション処理についてここで説明する。モータ駆動制御装置1は、図14のレギュレーションループ調停処理において決定されたPWM信号のオンタイムPWM_ONに基づきPWM信号のデューティ比を決定する。
Next, a method for generating a PWM signal in the motor
まず、レギュレーションループ調停処理において決定されたPWM信号のデューティ比が最大デューティ設定値よりも大きな場合のPWM信号のオンタイムPWMの決定手順を示すタイミングチャートを図30に示す。図30に示すように、この場合、レギュレーションループ調停処理により決定されたPWM信号のデューティ比に基づき生成されるオリジナルPWM信号は、PWM信号のオンタイムPWM_ONが最大デューティ設定値MAX_DUTYよりも長くなる。そのため、PWM信号のオンタイムPWM_ONからPWM信号の周期PWM_TRMを引いた値を繰越オンタイムCRY_PWM_ONとして算出する。そして、周期TRM1のPWM信号のオンタイムPWM_ONとしてPWM信号の周期PWM_TRMと同じ値を設定する。この場合、モータ駆動制御装置1は、周期TRM1のBEMFタイマ割り込みを周期タイマ割り込みの少し前に発生させることになる。そして、周期TRM1の次の周期TRM2において、PWM信号のオンタイムPWM_ONに周期TRM1で算出された繰越オンタイムCRY_PWM_ONを加算して周期TRM2のPWM信号のオンタイムPWM_ONを算出する。
First, FIG. 30 shows a timing chart showing the procedure for determining the on-time PWM of the PWM signal when the duty ratio of the PWM signal determined in the regulation loop arbitration process is larger than the maximum duty set value. As shown in FIG. 30, in this case, in the original PWM signal generated based on the duty ratio of the PWM signal determined by the regulation loop arbitration process, the on-time PWM_ON of the PWM signal becomes longer than the maximum duty set value MAX_DUTY. Therefore, a value obtained by subtracting the PWM signal cycle PWM_TRM from the PWM signal on-time PWM_ON is calculated as a carry-on on-time CRY_PWM_ON. Then, the same value as the PWM signal period PWM_TRM is set as the on-time PWM_ON of the PWM signal having the period TRM1. In this case, the motor
図30で示したようにPWM信号のオンタイムPWM_ONを決定することで、ハードウェアの限界により決定される最大デューティ比よりも大きなデューディ比のPWM信号を生成することができる。なお、この処理は、図15のステップS140〜S142の処理に該当するものである。 By determining the on-time PWM_ON of the PWM signal as shown in FIG. 30, it is possible to generate a PWM signal having a duty ratio larger than the maximum duty ratio determined by the limit of the hardware. This process corresponds to the process of steps S140 to S142 in FIG.
続いて、レギュレーションループ調停処理において決定されたPWM信号のデューティ比が最小デューティ設定値よりも小さな場合のPWM信号のオンタイムPWMの決定手順を示すタイミングチャートを図31に示す。図31に示すように、この場合、レギュレーションループ調停処理により決定されたPWM信号のデューティ比に基づき生成されるオリジナルPWM信号は、PWM信号のオンタイムPWM_ONが最小デューティ設定値MIN_DUTYよりも短くなる。そのため、PWM信号のオンタイムPWM_ONを繰越オンタイムCRY_PWM_ONとして算出する。そして、周期TRM2のPWM信号のオンタイムPWM_ONとしてゼロを設定する。この場合、モータ駆動制御装置1は、周期TRM2においてオンタイムがないためBEMFタイマ割り込みを発生させない。そして、周期TRM2の次の周期TRM3において、PWM信号のオンタイムPWM_ONに周期TRM2で算出された繰越オンタイムCRY_PWM_ONを加算して周期TRM2のPWM信号のオンタイムPWM_ONを算出する。
Next, FIG. 31 shows a timing chart showing the procedure for determining the on-time PWM of the PWM signal when the duty ratio of the PWM signal determined in the regulation loop arbitration process is smaller than the minimum duty set value. As shown in FIG. 31, in this case, in the original PWM signal generated based on the duty ratio of the PWM signal determined by the regulation loop arbitration process, the on-time PWM_ON of the PWM signal becomes shorter than the minimum duty set value MIN_DUTY. Therefore, the on-time PWM_ON of the PWM signal is calculated as the carry-on on-time CRY_PWM_ON. Then, zero is set as the on-time PWM_ON of the PWM signal of the cycle TRM2. In this case, the motor
図31で示したようにPWM信号のオンタイムPWM_ONを決定することで、ハードウェアの限界により決定される最小デューティ比よりも小さなデューディ比のPWM信号を生成することができる。なお、この処理は、図15のステップS143〜S145の処理に該当するものである。 By determining the on-time PWM_ON of the PWM signal as shown in FIG. 31, it is possible to generate a PWM signal having a duty ratio smaller than the minimum duty ratio determined by the hardware limit. This process corresponds to the processes in steps S143 to S145 in FIG.
続いて、レギュレーションループ調停処理において決定されたPWM信号のデューティ比が最小デューティ設定値以上、且つ、最大デューティ設定値以下の場合のPWM信号のオンタイムPWMの決定手順を示すタイミングチャートを図32に示す。図32に示すように、この場合、レギュレーションループ調停処理により決定されたPWM信号のデューティ比に基づき生成されるオリジナルPWM信号は、PWM信号のオンタイムPWM_ONが最小デューティ設定値MIN_DUTYよりも長く、かつ、最大デューティ設定値よりも短くなる。そのため、モータ駆動制御装置1は、繰越オンタイムCRY_PWM_ONにゼロを設定し、オリジナルPWM信号と同じオンタイムのPWM信号を生成する。なお、この処理は、図15のステップS146の処理に該当するものである。
Subsequently, FIG. 32 is a timing chart showing the procedure for determining the on-time PWM of the PWM signal when the duty ratio of the PWM signal determined in the regulation loop arbitration process is not less than the minimum duty set value and not more than the maximum duty set value. Show. As shown in FIG. 32, in this case, the original PWM signal generated based on the duty ratio of the PWM signal determined by the regulation loop arbitration process has an on-time PWM_ON of the PWM signal longer than the minimum duty set value MIN_DUTY, and , Becomes shorter than the maximum duty set value. Therefore, the motor
上記説明より、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、コンパレータ積分値CMP_INTGに基づきロータの位置検出を行う。そして、ロータの位置検出結果に基づきPWM信号の状態を遷移させる。ここで、コンパレータ15は、一般的に、入力オフセット及び入力ノイズ等の誤判定要因を有する。しかし、コンパレータ積分値CMP_INTGでは、コンパレータ15において誤判定が生じたとしても、PWM信号がオルタネートPWM方式で生成されることによって交流化された複数の誤判定の成分により誤判定の成分が互いに相殺される。そのため、コンパレータ積分値CMP_INTGに基づきロータの位置を検出することで、コンパレータ15の誤判定要因によらず精度の高いロータの位置検出を行うことができる。特に、モータ4が低速で回転している場合、非通電相の電圧変化が緩やかであり、誤判定が生じる頻度が多くなる。しかし、コンパレータ積分値CMP_INTGに基づきロータの位置を検出することで、モータ4の回転速度が低い場合であっても、ロータの位置検出精度を低下させることがない。このようなことから、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1は、モータ4の回転速度によらず、精度の高いロータ位置検出を行うことが可能であり、モータ4に対する制御性を向上させることができる。
From the above description, in the motor drive control program and the motor
また、従来のモータ駆動方法では、モータを一回転させる間に利用される複数の状態間の時間差を解消することが難しい問題があった。例えば、従来のモータ駆動方法では、コンパレータを用いてセンタータップ電圧CTと駆動信号とのゼロクロス、又は、基準電圧と駆動信号とのゼロクロスを検出し、当該検出結果に基づきPWM信号の状態遷移タイミングを算出していた。例えば、コンパレータを用いてセンタータップ電圧CTと駆動信号とのゼロクロスを検出した場合、コンパレータの入力オフセット電圧等に起因して奇数番目の状態と偶数番目の状態とでゼロクロスの検出タイミングがずれて、状態間に時間差が生じる。また、コンパレータを用いて基準電圧と駆動信号とのゼロクロスを検出した場合、ステート毎に動的に基準電圧を変化させることでゼロクロスの検出タイミングのずれを解消できるが、この基準電圧の調整には再帰的な挙動を伴うため安定した状態に収束させることが難しい問題がある。状態間の時間差がある場合、相対的に長い状態では平均電力が大きくなり、相対的に短い状態では平均電力が小さくなるという現象が生じる。そして、このような現象が発生すると、モータが一回転する間の回転トルク及び回転速度が不安定になり、ビートが発生する問題が発生する問題が生じる。また、状態間の時間差がある場合、最大回転トルク又は最大回転速度が相対的に長い状態で発生するが、相対的に短い状態においては最大回転トルク又は最大回転速度を発生できない。つまり、一回転を通じて最大回転トルク又は最大回転速度を発生できず、一回転を通じて発生される平均最大トルク又は最大回転速度が低下する問題が生じる。 Further, in the conventional motor driving method, there is a problem that it is difficult to eliminate the time difference between a plurality of states used while the motor is rotated once. For example, in a conventional motor driving method, a zero cross between the center tap voltage CT and the drive signal or a zero cross between the reference voltage and the drive signal is detected using a comparator, and the state transition timing of the PWM signal is determined based on the detection result. It was calculated. For example, when the zero cross between the center tap voltage CT and the drive signal is detected using a comparator, the detection timing of the zero cross is shifted between the odd-numbered state and the even-numbered state due to the input offset voltage of the comparator, There is a time difference between the states. In addition, when a zero cross between the reference voltage and the drive signal is detected using a comparator, the deviation in the detection timing of the zero cross can be eliminated by dynamically changing the reference voltage for each state. There is a problem that it is difficult to converge to a stable state due to recursive behavior. When there is a time difference between states, the average power increases in a relatively long state, and the average power decreases in a relatively short state. When such a phenomenon occurs, the rotational torque and rotational speed during one rotation of the motor become unstable, causing a problem that a beat is generated. Further, when there is a time difference between the states, the maximum rotational torque or the maximum rotational speed is generated in a relatively long state, but in the relatively short state, the maximum rotational torque or the maximum rotational speed cannot be generated. That is, there is a problem that the maximum rotation torque or maximum rotation speed cannot be generated through one rotation, and the average maximum torque or maximum rotation speed generated through one rotation decreases.
しかし、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、現状態を含む6状態の合計値から次状態で利用される移動平均ステートPWMパルス数ST_PWM_PLS_AVEを算出する。そして、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1は、ステートPWMパルス数ST_PWM_PLSが移動平均ステートPWMパルス数ST_PWM_PLS_AVEに達した場合、コンパレータ積分値CMP_INTGがゼロに達していなくてもPWM信号を次状態に遷移させる。このように強制的にPWM信号の状態を遷移させることで、コンパレータ積分値CMP_INTGがゼロに達するまでの時間がそれ以前の6状態の平均値よりも長い場合にも、PWM信号の状態を遷移させ、状態間の時間差を解消することができる。つまり、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、コンパレータ積分値CMP_INTGに基づく制御だけでは相対的に長くなる状態の期間を強制的に短くし、それに伴って、コンパレータ積分値CMP_INTGに基づく制御だけでは相対的に短くなる状態の期間を長くする。このように、状態間の時間差を解消することで、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1は、モータをより低速まで安定して駆動することが可能になる。また、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、一回転を通じて一定の回転トルク又は回転速度を維持できるため、ビートの発生を防止することができる。さらに、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、状態間の時間差を解消できるため、一回転を通じて最大回転トルク又は最大回転速度を発揮することができ、モータの回転効率を向上させることができる。
However, in the motor drive control program and the motor
また、オルタネートPWM方式による動作を行うことで、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1は、コンパレータ15の入力オフセット及び入力ノイズがコンパレータ積分値CMP_INTGに及ぼす影響を低減することができる。これにより、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1は、モータ4が低速で回転している場合におけるPWM信号の状態遷移タイミングの精度をさらに向上させることが可能である。なお、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1のオルタネートPWM方式の動作は、同期整流動作を含み、電力効率を向上させる効果がある。
Further, by performing the operation by the alternate PWM method, the motor drive control program and the motor
また、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、PWM信号のデューティ比がハードウェア上の最大デューティ比又は最小デューティ比を超えたものであったとしても、複数の周期のPWM信号を利用して一つのパルスを生成する。これにより、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、ハードウェア上の最大デューティ比又は最小デューティ比の制限を超えたデューティ比のPWM信号を生成することができる。また、PWM信号のデューティ比の設定範囲が広いことから、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1は従来の一般的なモータ制御装置よりもモータ4の制御範囲を拡大することができる。
Further, in the motor drive control program and the motor
また、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、ロータのスタッキングを防止することができる。スタッキングは、ロータの加速量が高すぎると、ロータの回転速度が速度制御を超えてオーバーシュートしロータ回転とステータ回転磁界の位相差が180°となる状態で発生する。180°位相差を持つ信号が利得1以上で負帰還すると異常発振(ロータスタック)の原因となる。減速時も同様である。しかし、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、図11のステップS101で示したように、現在の回転速度に係数を乗じて得られた最大許容加速度又は最大許容減速度に応じて速度誤差の負帰還量を制限する。つまり、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、加速度又は減速度を一定に制限する。つまり、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、加速度/減速度を制限することで、負帰還量を制限し、制御速度から回転速度のオーバーシュート/アンダーシュートを防ぐことができる。つまり、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、ロータがスタックする原因を除去し、ロータのスタッキングを防止することができる。
In the motor drive control program and the motor
さらに、また、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、ロータのスタッキングに伴うモータの唸りを防止することができる。スタッキング発生後の唸り音防止は、速度制御ループによって実施される。スタッキング発生中は、本来の回転速度範囲を超えて回転磁界が発生する(ステートが短時間で高速に変化する)。この時、速度制御ループは、PWMデューティを低下させる事で回転速度を低下させようとし(ロータが無損失で回転している事と等価なので、実際にはスタッキング中の回転磁界の回転速度は低下しない)、結果としてPWMデューティが限りなくゼロに近づき、駆動電力が低下し唸り音が低下する結果となる。
Furthermore, in the motor drive control program and the motor
また、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、スタックロータ検出設定値よりも6ステート合計PWMパルス数TTL_ST_PWM_PLSが小さくなったことに応じて、スタッキングが発生したことを検出する。そして、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、モータ4のスタッキングが検出された場合は、再度初期状態から制御を再開することができる(図3のステップS7)。これにより、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、モータ4をスタッキング状態から脱出させることができる。
Further, in the motor drive control program and the motor
また、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、タイマ割り込みのみ(上記説明では、BEMFタイマ割り込みと周期タイマ割り込み)でPWM信号のオンステートとオフステート切り換え及びPWM信号の周期の切り換えを行う。より具体的には、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、PWM信号の周期を次周期に移行させる周期タイマ割り込みの発生に応じて、次周期のPWM信号のデューティ比の決定と、状態を遷移させるか否かについて判断する。また、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、BEMFタイマ割り込みに応じて、コンパレータ15の出力信号CMP_OUTの値のサンプリング及びPWM信号のオンステートからオフステートへの切り換えを行う。このように、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、割り込み要因をタイマ割り込みだけとすることで、演算コア10に要求される演算能力の小さくすることができる。つまり、演算能力の高い演算コアを必要としないため、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1は、より多くのマイクロコンピュータにおいて実行又は実現することができる。
Further, in the motor drive control program and the motor
さらに、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、BEMFタイマ割り込みに応じてコンパレータ15の出力信号CMP_OUTをサンプリングする。つまり、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、常に、PWM信号のオンステートに最も近い時点においてコンパレータ15の出力信号CMP_OUTをサンプリングすることができる。一般的に、PWM信号のオンステートの終期が最もセンタータップ電圧CT及び比較対象検出信号SPの値が安定する時点であり、このタイミングでコンパレータ15の出力信号CMP_OUTをサンプリングすることで、より精度の高いゼロクロス検出を行うことが可能である。
Further, in the motor drive control program and the motor
ここで、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、BEMFタイマ割り込みに応じてコンパレータ15の出力信号CMP_OUTをサンプリングするが、これは、PWMデモジュレーション処理の動作に相当する。このように、PWMデモジュレーション処理によりコンパレータ15の出力信号CMP_OUTをサンプリングことで、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、PWM信号のパルスをデジタルサンプリングによるバンドノッチフィルタリングしているのでアナログフィルタを必要としない。これは、BEMFタイマ割り込みが発生するタイミングは、PWM信号のオンステートの終期の直前であるため、PWM信号のオフステートで生成されるパルスの影響がサンプリングする値に影響を与えないためである。このようなことから、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1によれば、PWM信号のパルスをフィルタリングするアナログフィルタ等を設ける必要がないため、回路設計の容易化、実装面積の小面積化を実現することができる。
Here, in the motor drive control program and the motor
また、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、セレクタ14により3つの駆動信号のうち非通電相となる駆動信号を比較対象駆動信号SPとして選択し、1つのコンパレータにより比較対象駆動信号SPとセンタータップ電圧CTとの比較処理を行う。つまり、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、3相の駆動信号に対する比較動作においてチャンネル間誤差が生じない。このようなことから、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1によれば、比較対象駆動信号SPとセンタータップ電圧CTとの比較精度を高めることができる。
In the motor drive control program and the motor
また、従来のモータの制御方法では、PWM信号のオンステートからオフステートへの切り換えは、駆動電流のモニタ結果に応じて行われる。例えば、従来のモータの制御方法では、駆動電流が基準電流値を超えたことに応じてPWM信号をオンステートからオフステートに移行させる。このとき、一般的な制御ループでは、駆動電流をモニタした後、そのモニタ結果が出力に反映されるまでの間に所定の遅延時間が発生する。そして、PWM生成を行う場合、この遅延時間により、PWM信号の最小デューティ比が決定される。 In the conventional motor control method, the PWM signal is switched from the on state to the off state in accordance with the monitoring result of the drive current. For example, in the conventional motor control method, the PWM signal is shifted from the on state to the off state in response to the drive current exceeding the reference current value. At this time, in a general control loop, a predetermined delay time is generated after the drive current is monitored and the monitoring result is reflected in the output. When PWM generation is performed, the minimum duty ratio of the PWM signal is determined by this delay time.
ここで、定電流駆動制御を行う場合は、負荷トルクが重くなった場合パルス入力電流を一定に維持しながら平均入力電流を減少させます。このとき、平均出力駆動電流は一定であるためロータの永久磁石が減磁される可能性を防止できます。また、負荷の静止トルクが一定の駆動電流で賄える駆動トルクよりも重い場合、モータ4を回転始動させることは出来ません。また、ロータが機械的に拘束された場合、最小デューティ比よりも短いパルス幅の電流を作ることが出来ない場合、電流制限が機能しなくなる問題が生じます。電流制限が機能しない場合、パワーMOSFETが焼損する原因となります。また、この状態が継続された場合、ロータの温度上昇により永久磁石が減磁される問題があります。
Here, when performing constant current drive control, the average input current is reduced while keeping the pulse input current constant when the load torque increases. At this time, since the average output drive current is constant, it is possible to prevent the rotor permanent magnet from being demagnetized. In addition, if the static torque of the load is heavier than the driving torque that can be covered with a constant driving current, the
また、駆動電流のモニタ結果に基づきPWM信号をオフステートとする場合、電流制限によるパワーMOSFETのターンオフタイミングがいつ発生するかが負荷状態により変化する。そのため、非通電相の駆動信号の電圧値をいつのタイミングでサンプリングするのかが不確定となるもう一つ問題点が生じる。結果として定電流駆動制御がアクティブとなったとたん、センサレス回転制御を継続させることが出来なくなり、モータ4の回転が検出できなかった場合、一旦駆動を停止させて時間を置いて再起動させるシーケンスが必要となります。
Further, when the PWM signal is turned off based on the monitoring result of the drive current, when the turn-off timing of the power MOSFET due to current limitation occurs depends on the load state. For this reason, another problem arises in which it is uncertain at what timing the voltage value of the drive signal of the non-energized phase is sampled. As a result, as soon as the constant current drive control becomes active, it becomes impossible to continue the sensorless rotation control, and if the rotation of the
一方、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1における定電流駆動制御では、負荷トルクが重くなった時にパルス入力電流が増加しますが平均入力電流を一定に維持することが可能です。そして、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1は、平均出力駆動電流を増加させて定電力でモータ4を回転させる。これにより、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1では、重い静止トルクが負荷となった場合であってもロータを回転させることが可能になる。
On the other hand, in the motor drive control program and the constant current drive control in the motor
また、モータ4が機械的に拘束され最小デューティ比よりも短いパルス幅の電流が要求された時、実施の形態1にかかるモータ駆動制御プログラム及びモータ駆動制御装置1は、PWMプリモジュレータが0%デューティのスキップパルスを挿入することにより、結果として平均入力電流が一定に保持される様に制御を行う。これにより、パワーMOSFETが焼損される可能性を防ぐことができる。
Further, when the
また、PWMデモジュレータ21がPWMモジュレータ22を駆動する設計では、パワーMOSFETを何時ターンオフさせるかが確定的である為、定電流駆動制御がアクティブとなった状態においても非通電相の駆動信号の電圧を適切なタイミングでサンプリングさせることが可能であり、回転を継続させることが出来ます。
Further, in the design in which the
実施の形態2
実施の形態2では、実施の形態1で説明したオルタネートPWM方式の動作の変形例について説明する。そこで、実施の形態2にかかるモータ駆動制御プログラムが生成するPWM信号に基づくオルタネートPWM方式の動作を説明するための図を図33〜図38に示す。なお、図33〜図38は、図17〜図22の回路図に対応するものであり、図33〜図38において図17〜図22に対応するものについては同じ符号を付して説明を省略する。
In the second embodiment, a modified example of the operation of the alternate PWM method described in the first embodiment will be described. FIG. 33 to FIG. 38 are diagrams for explaining the operation of the alternate PWM method based on the PWM signal generated by the motor drive control program according to the second embodiment. 33 to 38 correspond to the circuit diagrams of FIGS. 17 to 22. In FIGS. 33 to 38, components corresponding to FIGS. 17 to 22 are denoted by the same reference numerals and description thereof is omitted. To do.
図33は、実施の形態2にかかるモータ駆動制御装置の状態0におけるオルタネートPWM方式の動作を説明するためのドライバ回路のブロック図である。図33に示すように、実施の形態2では、状態0のハイサイドオフステートにおいてローサイドトランジスタNU、NVに加えてローサイドトランジスタNWをオンさせる。また、実施の形態2では、状態0のローサイドオフステートにおいてハイサイドトランジスタPU、PVに加えてハイサイドトランジスタPWをオンさせる。
FIG. 33 is a block diagram of a driver circuit for explaining the operation of the alternate PWM method in the
図34は、実施の形態2にかかるモータ駆動制御装置の状態1におけるオルタネートPWM方式の動作を説明するためのドライバ回路のブロック図である。図34に示すように、実施の形態2では、状態1のハイサイドオフステートにおいてローサイドトランジスタNU、NWに加えてローサイドトランジスタNVをオンさせる。また、実施の形態2では、状態1のローサイドオフステートにおいてハイサイドトランジスタPU、PWに加えてハイサイドトランジスタPVをオンさせる。
FIG. 34 is a block diagram of a driver circuit for explaining the operation of the alternate PWM method in the
図35は、実施の形態2にかかるモータ駆動制御装置の状態2におけるオルタネートPWM方式の動作を説明するためのドライバ回路のブロック図である。図35に示すように、実施の形態2では、状態2のハイサイドオフステートにおいてローサイドトランジスタNV、NWに加えてローサイドトランジスタNUをオンさせる。また、実施の形態2では、状態2のローサイドオフステートにおいてハイサイドトランジスタPV、PWに加えてハイサイドトランジスタPUをオンさせる。
FIG. 35 is a block diagram of a driver circuit for explaining the operation of the alternate PWM method in the
図36は、実施の形態2にかかるモータ駆動制御装置の状態3におけるオルタネートPWM方式の動作を説明するためのドライバ回路のブロック図である。図36に示すように、実施の形態2では、状態3のハイサイドオフステートにおいてローサイドトランジスタNV、NUに加えてローサイドトランジスタNWをオンさせる。また、実施の形態2では、状態3のローサイドオフステートにおいてハイサイドトランジスタPV、PUに加えてハイサイドトランジスタPWをオンさせる。
FIG. 36 is a block diagram of a driver circuit for explaining the operation of the alternate PWM method in the
図37は、実施の形態2にかかるモータ駆動制御装置の状態4におけるオルタネートPWM方式の動作を説明するためのドライバ回路のブロック図である。図37に示すように、実施の形態2では、状態4のハイサイドオフステートにおいてローサイドトランジスタNW、NUに加えてローサイドトランジスタNVをオンさせる。また、実施の形態2では、状態4のローサイドオフステートにおいてハイサイドトランジスタPW、PUに加えてハイサイドトランジスタPVをオンさせる。
FIG. 37 is a block diagram of a driver circuit for explaining the operation of the alternate PWM method in the
図38は、実施の形態2にかかるモータ駆動制御装置の状態5におけるオルタネートPWM方式の動作を説明するためのドライバ回路のブロック図である。図37に示すように、実施の形態2では、状態5のハイサイドオフステートにおいてローサイドトランジスタNV、NWに加えてローサイドトランジスタNUをオンさせる。また、実施の形態2では、状態5のローサイドオフステートにおいてハイサイドトランジスタPV、PWに加えてハイサイドトランジスタPUをオンさせる。
FIG. 38 is a block diagram of the driver circuit for explaining the operation of the alternate PWM method in the
このようなオルタネートPWM方式の動作を行うことで、実施の形態1では、オフ状態であった非通電相に対応した駆動段回路のトランジスタのボディダイオードで消費されたフライバック電流を、オン状態のトランジスタにおいて消費することが可能になる。このような動作は、ロータに対する回生ブレーキとして機能する。そこで、回生ブレーキ動作の有無による入出力特性を比較するグラフを図39に示す。図39に示すように、回生ブレーキ動作を行った場合、入力される電力が小さい場合の回転速度が回生ブレーキ動作を行わない場合に比べて低くなっていることがわかる。また、入力電力の範囲が同じである場合、モータ4の回転速度の制御範囲が回生ブレーキ動作を行った場合の方が広くなっていることがわかる。
By performing such an operation of the alternate PWM method, in the first embodiment, the flyback current consumed by the body diode of the transistor of the drive stage circuit corresponding to the non-energized phase that is in the OFF state is changed to the ON state. It can be consumed in the transistor. Such an operation functions as a regenerative brake for the rotor. Therefore, FIG. 39 shows a graph comparing the input / output characteristics with and without the regenerative braking operation. As shown in FIG. 39, it can be seen that when the regenerative braking operation is performed, the rotation speed when the input power is small is lower than when the regenerative braking operation is not performed. In addition, when the range of the input power is the same, it can be seen that the rotation speed range of the
ここで、回生ブレーキ動作を伴うオルタネートPWM方式の動作を行った場合のPWM信号について説明する。そこで、実施の形態2にかかるモータ駆動制御装置においてデューティ比が50%のPWM信号を生成した場合の状態0の駆動信号及びセンタータップ電圧を説明するタイミングチャートを図40に示す。図40に示すように、回生ブレーキ動作を行う場合、状態0において非通電相となるW相の駆動信号に対応するPWM信号WH、WLにもパルスを与える。より具体的には、PWM信号WHは、ローサイドオフステートの期間においてローレベルとなり、その他の期間はハイレベルを維持する。また、PWM信号WLは、ハイサイドオフステートの期間においてハイレベルとなり、その他の期間はローレベルを維持する。これにより、ハイサイドオフステート期間とローサイドオフステート期間において回生ブレーキ動作が行われる。
Here, a description will be given of a PWM signal when an alternate PWM system operation involving a regenerative braking operation is performed. FIG. 40 is a timing chart for explaining the
続いて、実施の形態2にかかるモータ駆動制御装置においてデューティ比が50%のPWM信号を生成した場合の状態0〜状態5の駆動信号及びセンタータップ電圧の動作を説明するタイミングチャートを図41に示す。図41に示すように、状態1〜状態5においても状態0と同様に非通電相となる駆動信号に対応するPWM信号に回生ブレーキ動作のためのパルスが与えられる。
Subsequently, FIG. 41 is a timing chart for explaining the operation of the drive signal and the center tap voltage in the
上記説明より、実施の形態2にかかるモータ駆動制御プログラムによれば、ハイサイドオフステート期間においてローサイドトランジスタをすべてオンさせ、ローサイドオフステート期間においてハイサイドトランジスタをすべてオンさせる。これにより、実施の形態2にかかるモータ駆動制御プログラムは、ハイサイドオフステート期間とローサイドオフステート期間において回生ブレーキ動作を行う。そして、この回生ブレーキ動作により、モータ4の回転速度が抑制されるため、同じ入力電力に対してより低い回転速度でモータ4を回転させることができる。このとき、回生ブレーキの効力は、PWM信号のデューティ比が小さいほど大きくなる。つまり、回生ブレーキ動作を行うことで、モータ4の回転速度は、低速側においてより低回転になり、高速側では回生ブレーキ動作がない場合と同等となる。従って、実施の形態2にかかるモータ駆動制御プログラムによれば、同じ入力電力の範囲に対して、モータ4の回転速度の制御範囲を広げることができる。
From the above description, according to the motor drive control program according to the second embodiment, all the low-side transistors are turned on in the high-side off-state period, and all the high-side transistors are turned on in the low-side off-state period. Thereby, the motor drive control program according to the second embodiment performs the regenerative braking operation in the high side off-state period and the low side off-state period. Since the regenerative braking operation suppresses the rotation speed of the
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本願発明は、別の観点から以下の発明を含む。 Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention. For example, the present invention includes the following inventions from another viewpoint.
(付記1)
モータの回転位置に応じて生成するPWM信号の状態を遷移させる演算コアと、
ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した比較対象検出信号と前記モータのセンタータップ電圧とを比較するコンパレータと、を有するプロセッサにおいて前記演算コアで実行されるモータの駆動制御プログラムであって、
前記PWM信号の現状態の前記PWM信号のパルス数をカウントしたPWM信号カウント数が、前記モータを一回転させる間に遷移した各状態における前記PWM信号の平均パルス数を示す平均PWM信号パルス数に達したことに応じて前記モータの回転位置が遷移したことを検出し、
当該検出結果に応じて、前記PWM信号の状態を次状態に遷移させるモータの駆動制御プログラム。
(Appendix 1)
An arithmetic core that transitions the state of the PWM signal generated according to the rotational position of the motor;
An output interface for outputting the PWM signal to the motor via a driver circuit;
A comparator that compares a comparison target detection signal selected from the three-phase drive signal generated by the driver circuit based on the PWM signal with a center tap voltage of the motor, and the motor that is executed by the arithmetic core in the processor. A drive control program comprising:
The PWM signal count number obtained by counting the number of pulses of the PWM signal in the current state of the PWM signal is an average PWM signal pulse number indicating the average number of pulses of the PWM signal in each state that has been changed during one rotation of the motor. Detecting that the rotational position of the motor has transitioned in response to reaching,
A motor drive control program for changing the state of the PWM signal to the next state according to the detection result.
(付記2)
前記コンパレータの出力が前記比較対象検出信号よりも前記センタータップ電圧の方が低いことを示す場合はコンパレータ積分値をカウントアップし、前記コンパレータの出力が前記比較対象検出信号よりも前記センタータップ電圧の方が高いことを示す場合はコンパレータ積分値をカウントダウンし、
前記PWM信号の現状態の前記PWM信号のパルス数をカウントしたPWM信号カウント数が、前記平均PWM信号パルス数に達する前に、前記コンパレータ積分値がカウント初期値に達した場合、前記コンパレータ積分値に基づき前記モータの回転位置が遷移したことを検出し、
当該検出結果に応じて、前記PWM信号の状態を次状態に遷移させる付記1に記載のモータの駆動制御プログラム。
(Appendix 2)
When the output of the comparator indicates that the center tap voltage is lower than the comparison target detection signal, the comparator integral value is counted up, and the output of the comparator is higher than the comparison target detection signal. Count down the comparator integral,
When the PWM signal count number obtained by counting the number of pulses of the PWM signal in the current state of the PWM signal reaches the initial count value before the average PWM signal pulse number, the comparator integral value Detecting that the rotational position of the motor has changed based on
The motor drive control program according to
(付記3)
モータの回転位置に応じて生成するPWM信号の状態を遷移させる演算コアと、
ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した比較対象検出信号と前記モータのセンタータップ電圧とを比較するコンパレータと、を有するプロセッサにおいて前記演算コアで実行されるモータの駆動制御プログラムであって、
前記ドライバに流れる駆動電流と電流指示値との間の誤差を示す電流誤差又は前記モータの回転速度と回転速度指示値との間の誤差を示す回転誤差から前記PWM信号のデューティ比を算出し、
前記デューティ比から計算される前記PWM信号のパルス幅が最小パルス幅を下回った場合、複数の周期の前記PWM信号のオン期間を合算して1つのオンパルスを生成し、最大パルス幅を超えた場合、複数の周期の前記PWM信号のオフ期間を合算して1つのオフパルスを生成するモータの駆動制御プログラム。
(Appendix 3)
An arithmetic core that transitions the state of the PWM signal generated according to the rotational position of the motor;
An output interface for outputting the PWM signal to the motor via a driver circuit;
A comparator that compares a comparison target detection signal selected from the three-phase drive signal generated by the driver circuit based on the PWM signal with a center tap voltage of the motor, and the motor that is executed by the arithmetic core in the processor. A drive control program comprising:
A duty ratio of the PWM signal is calculated from a current error indicating an error between a drive current flowing through the driver and a current instruction value or a rotation error indicating an error between the rotation speed of the motor and the rotation speed instruction value;
When the pulse width of the PWM signal calculated from the duty ratio is less than the minimum pulse width, one ON pulse is generated by adding the ON periods of the PWM signals having a plurality of cycles, and exceeds the maximum pulse width A motor drive control program for generating one off pulse by adding off periods of the PWM signals having a plurality of cycles.
(付記4)
モータの回転位置に応じて生成するPWM信号の状態を遷移させる演算コアと、
ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した比較対象検出信号と前記モータのセンタータップ電圧とを比較するコンパレータと、を有するプロセッサにおいて前記演算コアで実行されるモータの駆動制御プログラムであって、
前記モータの回転速度と回転速度指示値との間の誤差を示す回転誤差が予め設定される最大許容加速度を超えた場合、前記回転誤差として前記最大許容加速度とし、
前記回転誤差が予め設定される最大許容減速度よりも小さくなった場合、前記回転誤差として前記最大許容減速度とし、
前記回転誤差に基づき前記PWM信号のデューティ比を算出し、
当該デューティ比を有する前記PWM信号を生成するモータの駆動制御プログラム。
(Appendix 4)
An arithmetic core that transitions the state of the PWM signal generated according to the rotational position of the motor;
An output interface for outputting the PWM signal to the motor via a driver circuit;
A comparator that compares a comparison target detection signal selected from the three-phase drive signal generated by the driver circuit based on the PWM signal with a center tap voltage of the motor, and the motor that is executed by the arithmetic core in the processor. A drive control program comprising:
When a rotation error indicating an error between the rotation speed of the motor and a rotation speed instruction value exceeds a preset maximum allowable acceleration, the rotation error is the maximum allowable acceleration,
When the rotation error is smaller than a preset maximum allowable deceleration, the rotation error is the maximum allowable deceleration,
Calculate the duty ratio of the PWM signal based on the rotation error,
A motor drive control program for generating the PWM signal having the duty ratio.
(付記5)
モータの回転位置に応じて生成するPWM信号の状態を遷移させる演算コアと、
ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した比較対象検出信号と前記モータのセンタータップ電圧とを比較するコンパレータと、を有するプロセッサにおいて前記演算コアで実行されるモータの駆動制御プログラムであって、
前記モータを一回転させる期間に用いられる複数の状態の前記PWM信号のパルス数を示す合計PWM信号パルス数が予め設定されたロータスタック検出値よりも小さくなったことに応じて前記モータの停止状態を検出するモータの駆動制御プログラム。
(Appendix 5)
An arithmetic core that transitions the state of the PWM signal generated according to the rotational position of the motor;
An output interface for outputting the PWM signal to the motor via a driver circuit;
A comparator that compares a comparison target detection signal selected from the three-phase drive signal generated by the driver circuit based on the PWM signal with a center tap voltage of the motor, and the motor that is executed by the arithmetic core in the processor. A drive control program comprising:
The stop state of the motor in response to the total number of PWM signal pulses indicating the number of pulses of the PWM signal in a plurality of states used during a period of one rotation of the motor being smaller than a preset rotor stack detection value Drive control program for detecting motor.
(付記6)
前記ロータスタック検出値は、前記モータに対して規定される最高回転速度で前記モータが一回転する期間に生成される前記PWM信号のパルス数が設定される付記5に記載のモータ駆動制御プログラム。
(Appendix 6)
The motor drive control program according to
(付記7)
電源配線と接地配線との間にハイサイドトランジスタとローサイドトランジスタとが直列に接続される3組の駆動段回路を有し、選択された2組の前記駆動段回路の前記ハイサイドトランジスタと前記ローサイドトランジスタとが排他的に導通状態に制御されるドライバ回路に対してPWM信号を出力し、モータの回転位置に応じて前記PWM信号の状態を遷移させる演算コアと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号のうち非選択の前記駆動段回路が出力する比較対象検出信号と前記モータのセンタータップ電圧とを比較するコンパレータと、を有するプロセッサにおいて前記演算コアで実行されるモータの駆動制御プログラムであって、
前記PWM信号により、
前記3組の駆動段回路のうちの1組の駆動段回路のハイサイドトランジスタを導通状態とし、前記3組の駆動段回路の他の1組の駆動段回路のローサイドトランジスタを導通状態とするオンステートと、
前記オンステートにおいてハイサイドトランジスタが導通状態される駆動段回路のローサイドトランジスタを導通状態とし、前記他の1組の駆動段回路のローサイドトランジスタを導通状態とするハイサイドオフステートと、
前記1組の駆動段回路のハイサイドトランジスタを導通状態とし、前記オンステートにおいてローサイドトランジスタが導通状態される駆動段回路のローサイドトランジスタを導通状態とするローサイドオフステートと、に制御し、
前記ハイサイドオフステートと前記ローサイドオフステートとを前記PWM信号の生成サイクル毎に切り換えるモータの駆動制御プログラム。
(Appendix 7)
There are three sets of drive stage circuits in which a high side transistor and a low side transistor are connected in series between a power supply line and a ground line, and the high side transistor and the low side of the two selected sets of drive stage circuits A calculation core that outputs a PWM signal to a driver circuit that is controlled to be in a conductive state exclusively with a transistor, and changes the state of the PWM signal according to the rotational position of the motor;
A processor having a comparator for comparing a comparison target detection signal output from the non-selected drive stage circuit among the three-phase drive signals generated by the driver circuit based on the PWM signal and a center tap voltage of the motor; A motor drive control program executed by the arithmetic core,
By the PWM signal,
An on state in which a high-side transistor of one set of driving stage circuits among the three sets of driving stage circuits is turned on and a low-side transistor of another set of driving stage circuits is turned on. State and
A high-side off-state in which the low-side transistor of the driving stage circuit in which the high-side transistor is conductive in the on-state is in a conductive state and the low-side transistor in the other set of driving stage circuits is in a conductive state;
Controlling the high-side transistor of the set of driving stage circuits to a conductive state, and the low-side off state of bringing the low-side transistor of the driving stage circuit to a conductive state in the on-state into a conductive state;
A motor drive control program that switches between the high-side off state and the low-side off state for each generation cycle of the PWM signal.
(付記8)
前記PWM信号を、
前記ハイサイドオフステート駆動において、前記オンステートにおいてハイサイドトランジスタとローサイドトランジスタとがいずれもオフ状態とされる駆動段回路のローサイドトランジスタを導通状態とし、
前記ローサイドオフステート駆動において、前記オンステートにおいてハイサイドトランジスタとローサイドトランジスタとがいずれもオフ状態とされる駆動段回路のハイサイドトランジスタを導通状態とするように生成する付記7のモータの駆動制御プログラム。
(Appendix 8)
The PWM signal is
In the high-side off-state drive, the low-side transistor of the driving stage circuit in which both the high-side transistor and the low-side transistor are turned off in the on-state is made conductive.
The motor drive control program according to appendix 7, wherein the low-side off-state drive generates the high-side transistor of the drive stage circuit in which both the high-side transistor and the low-side transistor are turned off in the on-state. .
(付記9)
前記電源配線と前記接地配線との間にハイサイドトランジスタとローサイドトランジスタとが直列に接続され、ハイサイドトランジスタとローサイドトランジスタとが排他的に導通状態に制御される3組の駆動段回路を有するドライバ回路にPWM信号を出力し、モータの回転位置に応じて前記PWM信号の状態を遷移させる演算コアと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した1相の駆動信号と前記モータのセンタータップ電圧とを比較するコンパレータと、を有するプロセッサにおいて前記演算コアで実行されるモータの駆動制御プログラムであって、
前記PWM信号により、ドライバ回路を、前記モータに電流が供給されるオンステートと、前記モータへの前記電流の供給を停止するオフステートと、に制御し、
前記PWM信号は、前記オフステートにおいて接地配線を介して前記モータに流れる電流を循環させるハイサイドオフステート駆動と、電源配線を介して前記モータに流れる電流を循環させるローサイドオフステート駆動と、を前記PWM信号の生成サイクル毎に切り換えるモータの駆動制御プログラム。
(Appendix 9)
A driver having three sets of driving stage circuits in which a high-side transistor and a low-side transistor are connected in series between the power supply wiring and the ground wiring, and the high-side transistor and the low-side transistor are exclusively controlled to be conductive. An arithmetic core that outputs a PWM signal to the circuit and changes the state of the PWM signal according to the rotational position of the motor;
A motor executed by the arithmetic core in a processor having a comparator that compares a one-phase drive signal selected from three-phase drive signals generated by the driver circuit based on the PWM signal with a center tap voltage of the motor A drive control program for
By the PWM signal, the driver circuit is controlled to an on state in which a current is supplied to the motor and an off state in which the supply of the current to the motor is stopped,
The PWM signal includes a high-side off-state drive that circulates a current that flows to the motor via a ground wiring in the off-state, and a low-side off-state drive that circulates a current that flows to the motor via a power supply wiring. A motor drive control program that is switched every PWM signal generation cycle.
(付記10)
モータの回転位置に応じて生成するPWM信号の状態を遷移させる演算コアと、
ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した比較対象検出信号と前記モータのセンタータップ電圧とを比較するコンパレータと、
第1、第2の設定値に応じて第1、第2のタイマ割り込み要求を前記演算コアに出力するタイマと、を有するプロセッサにおいて前記演算コアで実行されるモータの駆動制御プログラムであって、
前記モータの回転状態に応じて算出される前記PWM信号のオンタイム期間に対応する値により、前記第1の設定値を更新し、
前記第1の設定値に基づき生成された第1のタイマ割り込み要求に応じて前記PWM信号を前記モータへの駆動電流の供給を指示するオンステートから前記モータへの駆動電流の停止を指示するオフステートに移行させ、
前記第2の設定値に応じて前記PWM信号を前記オフステートから前記オンステートに移行させるモータの駆動制御プログラム。
(Appendix 10)
An arithmetic core that transitions the state of the PWM signal generated according to the rotational position of the motor;
An output interface for outputting the PWM signal to the motor via a driver circuit;
A comparator for comparing the comparison target detection signal selected from the three-phase drive signal generated by the driver circuit based on the PWM signal and the center tap voltage of the motor;
A motor drive control program executed by the arithmetic core in a processor having a timer that outputs first and second timer interrupt requests to the arithmetic core according to first and second set values,
Update the first set value with a value corresponding to the on-time period of the PWM signal calculated according to the rotation state of the motor,
In response to a first timer interrupt request generated based on the first set value, the PWM signal is turned off to instruct to stop the drive current from the on state to instruct the supply of the drive current to the motor. Transition to the state,
A motor drive control program for shifting the PWM signal from the off state to the on state in accordance with the second set value.
(付記11)
前記PWM信号のオンタイム期間が前記PWM信号の一周期の時間よりも長い場合、前記演算コアは、前記PWM信号をオンステートに維持する付記10に記載のモータの駆動制御プログラム。
(Appendix 11)
The motor drive control program according to
(付記12)
モータの回転位置に応じて生成するPWM信号の状態を遷移させる演算コアと、
ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した比較対象検出信号と前記3相の駆動信号の中点電圧を示すセンタータップ電圧とを比較するコンパレータと、を有するプロセッサにおいて前記演算コアで実行されるモータの駆動制御プログラムであって、
前記コンパレータの出力信号の値に応じてコンパレータ積分値を増減し、
前記PWM信号の一状態が継続する最大期間を規定するタイムアウト検出期間中に前記コンパレータ積分値がカウント初期値に達した場合は、前記コンパレータ積分値がカウント初期値に達したことに応じて前記PWM信号の状態を次状態に遷移させ、前記タイムアウト検出期間中に前記コンパレータ積分値がカウント初期値に達しなかった場合は、前記タイムアウト検出期間の経過に応じて前記PWM信号の状態を次状態に遷移させ、
前記モータを駆動する駆動電流の初期値をゼロとし、
前記PWM信号の状態を遷移させる毎に前記駆動電流を徐々に増加させ、
前記コンパレータ積分値がカウント初期値に達したことに応じた前記PWM信号の状態の遷移が6回連続して生じたこと応じて前記モータが有効な回転状態となったと判定するモータ駆動制御プログラム。
(Appendix 12)
An arithmetic core that transitions the state of the PWM signal generated according to the rotational position of the motor;
An output interface for outputting the PWM signal to the motor via a driver circuit;
In a processor comprising: a comparison target detection signal selected from a three-phase drive signal generated by the driver circuit based on the PWM signal; and a comparator that compares a center tap voltage indicating a midpoint voltage of the three-phase drive signal. A motor drive control program executed by the arithmetic core,
Increase or decrease the comparator integral value according to the value of the output signal of the comparator,
When the comparator integral value reaches the initial count value during a timeout detection period that defines the maximum period during which one state of the PWM signal continues, the PWM integral value reaches the initial count value in response to the fact that the comparator integral value has reached the initial count value. When the signal state is changed to the next state and the comparator integration value does not reach the initial count value during the timeout detection period, the PWM signal state is changed to the next state as the timeout detection period elapses. Let
The initial value of the drive current for driving the motor is zero,
The drive current is gradually increased every time the state of the PWM signal is changed,
A motor drive control program for determining that the motor has entered an effective rotational state in response to six consecutive transitions of the state of the PWM signal in response to the comparator integrated value reaching the initial count value.
(付記13)
前記モータ駆動制御プログラムは、さらに、
状態遷移後に生成される前記PWM信号のパルス数が前記フライバックパルスフィルタ継続パルス数に達するまでの期間に前記コンパレータの出力信号の値によらず、前記コンパレータ積分値を単調増加又は単調減少させるフライバックパルスフィルタ処理を行い。
前記モータが有効な回転状態となる前の前記フラバックパルスフィルタ継続パルス数を、前記モータが有効な回転状態となった後よりも小さく設定する付記12に記載のモータ駆動制御プログラム。
(Appendix 13)
The motor drive control program further includes:
A fly that monotonously increases or decreases the integrated value of the comparator monotonically regardless of the value of the output signal of the comparator during the period until the number of pulses of the PWM signal generated after the state transition reaches the number of continuous pulses of the flyback pulse filter. Perform back pulse filter processing.
13. The motor drive control program according to
NU、NV、VW:ローサイドトランジスタ、PU、PV、PW:ハイサイドトランジスタ、Ri:電流検出抵抗、SP:比較対象検出信号、1:モータ駆動制御装置、2:プリドライバ回路、3:ドライバ回路、4:モータ、10:演算コア、10:演算コア、11:プログラムメモリ、12:RAM、13:出力インタフェース、14:セレクタ、15:コンパレータ、16:アナログデジタル変換器、17:タイマ、21:PWMデモジュレータ、22:PWMモジュレータ、23:定電流駆動制御部、24:ロータ位置検出部、25:回転制御部、26:回転速度制御部、27:PWMデューティ制御部 NU, NV, VW: Low side transistor, PU, PV, PW: High side transistor, Ri: Current detection resistor, SP: Comparison target detection signal, 1: Motor drive control device, 2: Pre-driver circuit, 3: Driver circuit, 4: motor, 10: arithmetic core, 10: arithmetic core, 11: program memory, 12: RAM, 13: output interface, 14: selector, 15: comparator, 16: analog-digital converter, 17: timer, 21: PWM Demodulator 22: PWM modulator 23: Constant current drive controller 24: Rotor position detector 25: Rotation controller 26: Rotational speed controller 27: PWM duty controller
Claims (7)
ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した比較対象検出信号と前記3相の駆動信号の中点電圧を示すセンタータップ電圧、又は、各相巻き線端子から接地電位に接続された分圧抵抗網により合成されたアーティフィシャルセンタータップ電圧とを比較するコンパレータと、を有するプロセッサにおいて前記演算コアで実行されるモータの駆動制御プログラムであって、
前記コンパレータの出力信号の値に基づきコンパレータ積分値を増減し、
前記コンパレータ積分値がカウント初期値に達したことに応じて前記モータの回転位置が遷移したことを検出し、
当該検出結果に応じて、前記PWM信号の状態を次状態に遷移させるモータの駆動制御プログラム。 An arithmetic core that transitions the state of the PWM signal generated according to the rotational position of the motor;
An output interface for outputting the PWM signal to the motor via a driver circuit;
A comparison target detection signal selected from the three-phase drive signal generated by the driver circuit based on the PWM signal and a center tap voltage indicating a midpoint voltage of the three-phase drive signal, or a ground potential from each phase winding terminal A comparator for comparing an artifical center tap voltage synthesized by a voltage dividing resistor network connected to a motor drive control program executed by the arithmetic core in a processor,
Increase or decrease the comparator integral value based on the value of the output signal of the comparator,
Detecting that the rotational position of the motor has transitioned in response to the comparator integral value reaching the initial count value,
A motor drive control program for changing the state of the PWM signal to the next state according to the detection result.
前記比較対象検出信号は、前記3組の駆動段回路のうち非選択の駆動段回路の出力ノードに生成される駆動信号である請求項1乃至4のいずれか1項に記載のモータの駆動制御プログラム。 The driver circuit has three sets of drive stage circuits in which a high side transistor and a low side transistor are connected in series between a power supply line and a ground line, and two sets of the drive stages selected by the PWM signal. The high-side transistor and the low-side transistor of the circuit are controlled to be exclusively conductive;
5. The motor drive control according to claim 1, wherein the comparison target detection signal is a drive signal generated at an output node of a non-selected drive stage circuit among the three sets of drive stage circuits. 6. program.
ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した1相の駆動信号と前記3相の駆動信号の中点電圧を示すセンタータップ電圧、又は、各相巻き線端子から接地電位に接続された分圧抵抗網により合成されたアーティフィシャルセンタータップ電圧とを比較するコンパレータと、を有するモータ駆動装置を用いたモータの駆動制御方法であって、
前記コンパレータの出力信号の値に基づきコンパレータ積分値を増減し、
前記コンパレータ積分値がカウント初期値に達したことに応じて前記モータの回転位置が遷移したことを検出し、
当該検出結果に応じて、前記PWM信号の状態を次状態に遷移させるモータの駆動制御方法。 A PWM signal generation circuit that transitions the state of the PWM signal generated according to the rotational position of the motor;
An output interface for outputting the PWM signal to the motor via a driver circuit;
One-phase drive signal selected from the three-phase drive signal generated by the driver circuit based on the PWM signal and the center tap voltage indicating the midpoint voltage of the three-phase drive signal, or grounded from each phase winding terminal A motor driving control method using a motor driving device comprising: a comparator for comparing an artificial center tap voltage synthesized by a voltage dividing resistor network connected to a potential;
Increase or decrease the comparator integral value based on the value of the output signal of the comparator,
Detecting that the rotational position of the motor has transitioned in response to the comparator integral value reaching the initial count value,
A motor drive control method for changing the state of the PWM signal to the next state according to the detection result.
ドライバ回路を介して前記PWM信号をモータに出力する出力インタフェースと、
前記ドライバ回路が前記PWM信号に基づき生成した3相の駆動信号から選択した1相の駆動信号と前記3相の駆動信号の中点電圧を示すセンタータップ電圧、又は、各相巻き線端子から接地電位に接続された分圧抵抗網により合成されたアーティフィシャルセンタータップ電圧とを比較するコンパレータと、を有し、
前記PWM信号生成回路は、
前記コンパレータの出力信号の値に基づきコンパレータ積分値を増減し、
前記コンパレータ積分値がカウント初期値に達したことに応じて前記モータの回転位置が遷移したことを検出し、
当該検出結果に応じて、前記PWM信号の状態を次状態に遷移させるモータの駆動制御装置。 A PWM signal generation circuit that transitions the state of the PWM signal generated according to the rotational position of the motor;
An output interface for outputting the PWM signal to the motor via a driver circuit;
One-phase drive signal selected from the three-phase drive signal generated by the driver circuit based on the PWM signal and the center tap voltage indicating the midpoint voltage of the three-phase drive signal, or grounded from each phase winding terminal A comparator for comparing the artifical center tap voltage synthesized by the voltage dividing resistor network connected to the potential;
The PWM signal generation circuit includes:
Increase or decrease the comparator integral value based on the value of the output signal of the comparator,
Detecting that the rotational position of the motor has transitioned in response to the comparator integral value reaching the initial count value,
A motor drive control device that changes the state of the PWM signal to the next state in accordance with the detection result.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011127073A JP5634330B2 (en) | 2011-06-07 | 2011-06-07 | Motor drive control program, drive control method, and drive control apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011127073A JP5634330B2 (en) | 2011-06-07 | 2011-06-07 | Motor drive control program, drive control method, and drive control apparatus |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012253991A JP2012253991A (en) | 2012-12-20 |
JP2012253991A5 JP2012253991A5 (en) | 2013-09-26 |
JP5634330B2 true JP5634330B2 (en) | 2014-12-03 |
Family
ID=47526229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011127073A Expired - Fee Related JP5634330B2 (en) | 2011-06-07 | 2011-06-07 | Motor drive control program, drive control method, and drive control apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5634330B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6429453B2 (en) | 2013-11-26 | 2018-11-28 | キヤノン株式会社 | Motor control apparatus and image forming apparatus |
CN109475266B (en) * | 2016-07-11 | 2021-08-10 | 奥林巴斯株式会社 | Endoscope device |
WO2020059111A1 (en) * | 2018-09-21 | 2020-03-26 | 新電元工業株式会社 | Vehicle motor drive control device and control method of vehicle motor drive control device |
JP7555764B2 (en) * | 2020-09-09 | 2024-09-25 | 川崎重工業株式会社 | Current limiting device, robot system, and current limiting method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3965395B2 (en) * | 2004-05-18 | 2007-08-29 | 松下電器産業株式会社 | Motor drive device |
JP2008005632A (en) * | 2006-06-22 | 2008-01-10 | Matsushita Electric Ind Co Ltd | Motor drive device, motor drive method and disk drive device |
JP2008113506A (en) * | 2006-10-31 | 2008-05-15 | Renesas Technology Corp | Motor drive controller and motor start-up method |
-
2011
- 2011-06-07 JP JP2011127073A patent/JP5634330B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012253991A (en) | 2012-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5670258B2 (en) | Brushless motor drive device | |
US5294877A (en) | Circuit and method for detecting deceleration rates of a polyphase DC motor | |
JP5016674B2 (en) | Motor control circuit, motor system, motor control method | |
US5317243A (en) | Method and apparatus for detecting velocity profiles of a spinning rotor of a polyphase DC motor | |
JP6130329B2 (en) | Brushless motor controller | |
JP5253828B2 (en) | Motor driving device and semiconductor integrated circuit device | |
US7633251B2 (en) | Single-sensor based commutation of multi-phase motor | |
JP7016762B2 (en) | Semiconductor devices, motor drive systems, and motor control programs | |
JP5552701B2 (en) | Brushless motor drive device | |
JP2007236062A (en) | Motor driving device, motor driving method, and disk driving device | |
JP6081734B2 (en) | Semiconductor device, electronic device, and control signal generation method | |
JP5634330B2 (en) | Motor drive control program, drive control method, and drive control apparatus | |
JP4243567B2 (en) | Sensorless motor driving apparatus and driving method thereof | |
JP2009100567A (en) | Method of controlling inverter, and control circuit | |
JP2004364381A (en) | Motor drive device | |
JP5326948B2 (en) | Inverter control device, electric compressor and electrical equipment | |
JP6451361B2 (en) | Control device for three-phase rotating electric machine | |
JP4056749B2 (en) | Driving method of brushless DC motor | |
JP6159852B2 (en) | Brushless motor drive device | |
JP4085818B2 (en) | DC motor driving method and DC motor driving apparatus | |
JP5960783B2 (en) | Brushless motor drive device | |
JP3600583B2 (en) | Operation control method of switched reluctance motor | |
JP2003259678A (en) | Controller of dc brushless motor | |
JP2011155810A (en) | Micro-step drive method of two phase stepping motor | |
JP2017070208A (en) | Semiconductor device, electronic equipment, and control signal generation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130813 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130813 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140610 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140613 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140930 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141014 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5634330 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |