System and method for optimally driving a DC motor
First Claim
1. A method for driving a DC-motor comprising a permanent magnet rotor, an inverter and a position detection mechanism capable of generating rotation dependent logical position signals, the method comprising the steps of:
- a) performing optimization based upon the logical position signals from the position detecting mechanism whereby the commutation points derived from said position signals are each individually displaced by a commutation control unit according to a certain scheme;
b) detecting the input current level when controlling the commutation for minimum power dissipation in the permanent magnet motor to optimize motor performance by reducing motor vibrations, maximizing motor acceleration, and providing efficient operation at given velocity and load;
c) applying a digital technique to displace the commutation points individually to a given angle based upon the logical signals, the technique comprising the steps of;
1)supplying the logical position signals to a pulse detector which creates a first LOAD-signal at each transition of said position signal detected, and a second signal POSITION-- RESET from one of said position signals each first and second signals consist of pulses one clock period long;
2) resetting a time counter for each LOAD-pulse;
3) storing the encountered value in a time register the time counter value being an integer proportional to the distance between two position signal transitions;
4) using said value in the calculation of commutation position, relative to position signal transitions;
5) transferring said value in a time register holding data for a multiplication algorithm;
6) storing signal constants in an input memory;
7) carrying out the following multiplication program;
space="preserve" listing-type="tabular">______________________________________ POSITION 0;
SIGNAL.sub.-- REG1 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 1;
SIGNAL.sub.-- REG2 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 2;
BEMF.sub.-- REG1 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 1;
BEMF.sub.-- REG2 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 2;
OUT.sub.-- PUT.sub.-- MEMORY[0] ;
= TIME.sub.-- REGISTER ;
POSITION 1;
SIGNAL.sub.-- REG3 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 3;
SIGNAL.sub.-- REG4 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 4;
BEMF.sub.-- REG3 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 3;
BEMF.sub.-- REG4 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 4;
OUT.sub.-- PUT.sub.-- MEMORY[1] ;
= TIME.sub.-- REGISTER ;
POSITION 2;
SIGNAL.sub.-- REG1 ;
= TIME.sub.-- REGISTER * SIGNAL.sub. -- CONSTANT.sub.-- 5;
SIGNAL.sub.-- REG2 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 6;
BEMF.sub.-- REG1 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 5;
BEMF.sub.-- REG2 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 6;
OUT.sub.-- PUT.sub.-- MEMORY[2] ;
= TIME.sub.-- REGISTER ;
POSITION 3;
SIGNAL.sub.-- REG3 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 7;
SIGNAL.sub.-- REG4 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 8;
BEMF.sub.-- REG3 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 7;
BEMF.sub.-- REG4 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 8;
OUT.sub.-- PUT.sub.-- MEMORY[3] ;
= TIME.sub.-- REGISTER ;
POSITION 4;
SIGNAL.sub.-- REG1 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 9;
SIGNAL.sub.-- REG2 ;
= TIME.sub.-- REGISTER * SIGNAL.sub. -- CONSTANT.sub.-- 10;
BEMF.sub.-- REG1 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 9;
BEMF.sub.-- REG2 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 10;
OUT.sub.-- PUT.sub.-- MEMORY[4] ;
= TIME.sub.-- REGISTER ;
POSITION 5;
SIGNAL.sub.-- REG3 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 11;
SIGNAL.sub.-- REG4 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 12;
BEMF.sub.-- REG3 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 11;
BEMF.sub.-- REG3 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 12;
OUT.sub.-- PUT.sub.-- MEMORY[5] ;
= TIME.sub.-- REGISTER ______________________________________ 8) loading signal down counters and bemf down counters with an allocated new value when receiving the LOAD-pulse;
9) counting down said down counters and at zero value a pulse is generated respectively;
10) said pulse sets or resets signal and bemf flip-flops whereby respective count down value represents the time at which a phase signal transition should occur.
2 Assignments
0 Petitions
Accused Products
Abstract
Method and a device in a drive system for a DC-motor including an inverter and a multiple phase synchronous motor with a permanent magnet rotor, and provided with a rotor position detection means in order to generate a rotation dependent logical position signal or signals. An optimization is carried out, which is based on the rotation dependent logical signals (POS1, POS2, POS3) from said rotor position detection means whereby the commutation points each are displaced such, that at said optimization minimum input current is detected to eliminate poor operation caused by unsymmetries in the motor iron or windings as well as unsymmetries of the rotor magnet and thereby optimize motor performance with respect to e.g. efficiency at present velocity and load, maximum acceleration and motor vibrations.
60 Citations
3 Claims
-
1. A method for driving a DC-motor comprising a permanent magnet rotor, an inverter and a position detection mechanism capable of generating rotation dependent logical position signals, the method comprising the steps of:
-
a) performing optimization based upon the logical position signals from the position detecting mechanism whereby the commutation points derived from said position signals are each individually displaced by a commutation control unit according to a certain scheme; b) detecting the input current level when controlling the commutation for minimum power dissipation in the permanent magnet motor to optimize motor performance by reducing motor vibrations, maximizing motor acceleration, and providing efficient operation at given velocity and load; c) applying a digital technique to displace the commutation points individually to a given angle based upon the logical signals, the technique comprising the steps of; 1)supplying the logical position signals to a pulse detector which creates a first LOAD-signal at each transition of said position signal detected, and a second signal POSITION-- RESET from one of said position signals each first and second signals consist of pulses one clock period long; 2) resetting a time counter for each LOAD-pulse; 3) storing the encountered value in a time register the time counter value being an integer proportional to the distance between two position signal transitions; 4) using said value in the calculation of commutation position, relative to position signal transitions; 5) transferring said value in a time register holding data for a multiplication algorithm; 6) storing signal constants in an input memory; 7) carrying out the following multiplication program;
space="preserve" listing-type="tabular">______________________________________ POSITION 0;
SIGNAL.sub.-- REG1 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 1;
SIGNAL.sub.-- REG2 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 2;
BEMF.sub.-- REG1 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 1;
BEMF.sub.-- REG2 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 2;
OUT.sub.-- PUT.sub.-- MEMORY[0] ;
= TIME.sub.-- REGISTER ;
POSITION 1;
SIGNAL.sub.-- REG3 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 3;
SIGNAL.sub.-- REG4 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 4;
BEMF.sub.-- REG3 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 3;
BEMF.sub.-- REG4 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 4;
OUT.sub.-- PUT.sub.-- MEMORY[1] ;
= TIME.sub.-- REGISTER ;
POSITION 2;
SIGNAL.sub.-- REG1 ;
= TIME.sub.-- REGISTER * SIGNAL.sub. -- CONSTANT.sub.-- 5;
SIGNAL.sub.-- REG2 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 6;
BEMF.sub.-- REG1 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 5;
BEMF.sub.-- REG2 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 6;
OUT.sub.-- PUT.sub.-- MEMORY[2] ;
= TIME.sub.-- REGISTER ;
POSITION 3;
SIGNAL.sub.-- REG3 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 7;
SIGNAL.sub.-- REG4 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 8;
BEMF.sub.-- REG3 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 7;
BEMF.sub.-- REG4 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 8;
OUT.sub.-- PUT.sub.-- MEMORY[3] ;
= TIME.sub.-- REGISTER ;
POSITION 4;
SIGNAL.sub.-- REG1 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 9;
SIGNAL.sub.-- REG2 ;
= TIME.sub.-- REGISTER * SIGNAL.sub. -- CONSTANT.sub.-- 10;
BEMF.sub.-- REG1 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 9;
BEMF.sub.-- REG2 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 10;
OUT.sub.-- PUT.sub.-- MEMORY[4] ;
= TIME.sub.-- REGISTER ;
POSITION 5;
SIGNAL.sub.-- REG3 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 11;
SIGNAL.sub.-- REG4 ;
= TIME.sub.-- REGISTER * SIGNAL.sub.-- CONSTANT.sub.-- 12;
BEMF.sub.-- REG3 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 11;
BEMF.sub.-- REG3 ;
= TIME.sub.-- REGISTER * BEMF.sub.-- CONSTANT.sub.-- 12;
OUT.sub.-- PUT.sub.-- MEMORY[5] ;
= TIME.sub.-- REGISTER ______________________________________8) loading signal down counters and bemf down counters with an allocated new value when receiving the LOAD-pulse; 9) counting down said down counters and at zero value a pulse is generated respectively; 10) said pulse sets or resets signal and bemf flip-flops whereby respective count down value represents the time at which a phase signal transition should occur. - View Dependent Claims (2)
-
-
3. A motor drive system for driving a DC motor, the motor comprising stator windings, a permanent magnet rotor, and an inverter, the drive system comprising:
-
a) stator means of the motor comprising two sets of phase windings driven by the inverter, the inverter emitting first, second, and third phase voltage square waves with a 180°
commutating angle and a phase displacement of 60°
between the first and second sets of voltage waves in order to suppress the fifth and seventh harmonics in the stator of the motor;b) control unit means to control the inverter the output of the inverter comprising three phase square waves with a 180°
commutating angle which drive the motor;c) supervise unit means for monitoring the inverter; d) voltage source means for supplying a pulse width modulated constant voltage, connected to the motor; e) inverter means for inverting current, the inverter means being supplied from the voltage source means; f) back-EMF detection circuit means for detecting a back-EMF voltage induced by the rotor in the stator windings during a time given by the control unit means in response to output signals from the back-EMF detection circuit means the back-EMF detect circuit means connected between the voltage source means and the control unit means; g) detection means for detecting the speed and position of the rotor in order to emit information signals to the supervise unit means at a start of the rotor rotation in response to a start impulse and a direction command sent from the supervising unit to a timing logic in the commutation control unit; and h) commutation control unit means for displacing the commutation times, the commutation control unit comprising a time counter means which counts clock pulses from a reference oscillator between time intervals obtained from a pulse detect circuit means, the time intervals corresponding to successive zero crossings detected by the back-EMF detect circuit means, whereby after a multiplication with a signal constant in an input memory the result is counted down with the clock frequency reference oscillator means in a down counter means, the down counter means giving modified time for activation of flip-flop means for creation of modified control signals.
-
Specification