Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SENSORLESS AC MOTOR CONTROLLER
Document Type and Number:
WIPO Patent Application WO/2018/102872
Kind Code:
A1
Abstract:
A controller for an AC electric motor, the controller including: a power converter driving the AC electric motor; a feed forward converter that derives voltage values provided to the power converter; and a load model unit configured to derive an applied rotor speed used for an input to the feed forward converter, wherein the applied rotor speed is derived using a stabilising speed correction value with a substantially zero average value.

Inventors:
HUNTER GREGORY PETER (AU)
Application Number:
PCT/AU2017/051343
Publication Date:
June 14, 2018
Filing Date:
December 07, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV SYDNEY TECHNOLOGY (AU)
International Classes:
H02P21/24; H02P5/00; H02P6/34; H02P21/04; H02P21/18; H02P25/083; H02P25/089; H02P27/08; H02P29/00
Foreign References:
US20130221885A12013-08-29
EP1758240A22007-02-28
Other References:
HUNTER, G., A SENSORLESS PM SYNCHRONOUS MOTOR DRIVE WITH FULL RANGE SPEED AND POSITION CONTROL USING FEED FORWARD TORQUE CONTROL, 16 January 2016 (2016-01-16), Retrieved from the Internet [retrieved on 20160215]
HUNTER, G. P. ET AL.: "A Sensorless PMSM Fundamental Mode Controller with High Dynamic Full Range Speed Control", 37TH ANNUAL CONFERENCE ON IEEE INDUSTRIAL ELECTRONICS SOCIETY , IECON 2011, 7 November 2011 (2011-11-07), Melbourne, VIC, Australia, XP032104741
Attorney, Agent or Firm:
SHELSTON IP PTY LTD (AU)
Download PDF:
Claims:
CLAIMS:

1. A controller for an AC electric motor, the controller comprising:

a power converter driving the AC electric motor;

a feed forward converter that derives voltage values provided to the power converter; and

a load model unit configured to derive an applied rotor speed used for an input to the feed forward converter,

wherein the applied rotor speed is derived using a stabilising speed correction value with a substantially zero average value.

2. The controller of claim 1 , wherein the load model unit is configured to derive the applied rotor speed by adding the stabilising speed correction value.

3. The controller of claim 2, wherein the speed correction value is derived using a stability controller, and is described by Δω =

4. The controller of any one of the preceding claims, wherein the load model unit comprises a load model and a load model compensator.

5. The controller of any one of the preceding claims, wherein the feed forward converter derives the voltage values from a d-axis current value, a q-axis current value, and an angle of rotation value.

6. The controller of claim 5 further comprising an integrator, and wherein the integrator derives the angle of rotation value by integration of the applied rotor speed and provides the angle of rotation to the feed forward converter.

7. A controller for an AC electric motor, the controller comprising:

a power converter driving the AC electric motor;

a feed forward converter that derives voltage values provided to the power converter; and

a load model unit configured to provide an angle of rotation value to the feed forward converter, the load model unit comprising:

a load model; and

a load model compensator comprising:

a proportional plus integral controller; and

a feedback proportional controller, wherein operation of the feedback proportional controller is based on a function of a motor speed.

8. The controller of claim 7, wherein the feedback proportional controller operates to limit a DC gain of the proportional plus integral controller.

9. The controller of claim 7 or 8, wherein the motor speed is an estimated motor speed.

10. The controller of any one of claims 7 to 9:

wherein the load model unit further comprises a stability controller that adds a stabilising speed correction value to the estimated motor speed resulting in a corrected estimated motor speed; and

wherein the controller further comprises an integrator that integrates the corrected estimated motor speed to produce the angle of rotation value used to determine the voltage values.

11. A controller for an AC electric motor, the controller comprising:

a power converter driving the AC electric motor;

a feed forward converter that derives voltage values provided to the power converter; and

a flux weakening unit for operating the AC electric motor above base speed, the flux weakening unit comprising a flux weakening controller that determines and sets a d-axis current value based on a calculated flux linkage reference so that a peak output voltage of the power converter remains below a predetermined value during flux weakening.

12. The controller of claim 11, wherein the d-axis current value, id' , is determined from a relationship with the calculated flux linkage reference, lr , the applied flux linkage, Xdj , and the estimated stator phase inductance, L , as described by

13. The controller of claim 12, wherein the applied flux linkage is described as follows: sign(w') Jj¾ - vd' 2 - vR' q

14. The controller of any one of claims 11 to 13, wherein the flux weakening controller comprises:

a comparator that compares an applied d-axis flux linkage value and a threshold d- axis flux linkage; and

an integral controller configured to stabilise the d-axis current value used to generate the d-axis flux linkage value.

15. The controller of claim 14 further comprising a z-domain integrator with an output limiter, and a flux gain operator.

16. The controller of claim 14 or 15, wherein the integral controller causes a feedback loop gain of about 0.5 at a sampling frequency.

17. The controller of any one of claims 11 to 16 further comprising a load model unit configured to derive an applied rotor speed used for an input to the feed forward converter, the load model unit comprising:

a load model; and

a load model compensator.

18. The controller of any one of the preceding claims, wherein the feed forward converter generates the voltage signals based on d and q axis flux linkage values.

19. A controller for an AC electric motor, the controller comprising:

a power converter driving the AC electric motor;

a torque controller that provides control signals to the power converter; and a speed controller that controls a motor torque, the speed controller comprising: a comparator that compares a reference speed with an estimated rotor speed to produce a difference value;

a proportional compensator that modifies the difference value to produce a first torque reference value; and

a summing device that adds the first torque reference value and an estimated load torque to produce a torque command.

20. The controller of claim 19, wherein the estimated rotor speed is fed back so that the first torque reference value is substantially an inertia-only torque reference.

21. The controller of claim 19 or 20, wherein the proportional compensator limits a compensator output based on a maximum acceleration setting.

22. The controller of any one of claims 19 to 21, further comprising a position controller that comprises a proportional gain compensator with a proportional gain that is a function of a position difference signal.

23 The controller of claim 22, wherein the position controller further comprises a comparator that compares a reference position signal with an estimated rotor position signal to produce the position difference signal.

24. The controller of claim 22 or 23, wherein the position controller provides a speed reference signal for use by the speed controller to control a speed of a rotor of the AC motor.

25. The controller of claim 24, wherein the speed controller, after receiving the speed reference signal, does one or both of the following: limit a rotor acceleration, and limit the rotor speed.

26. The controller of any one of claims 19 to 26 further comprising a load model unit configured to derive an applied rotor speed used for an input to the feed forward converter, the load model unit comprising:

a load model; and

a load model compensator.

27. A controller for an AC electric motor, the controller comprising:

a speed controller for controlling a speed of a rotor of the AC motor; and

a position controller provides a speed reference signal for use by the speed controller to control the speed of the rotor, wherein the position controller comprises a proportional gain compensator with a proportional gain that is a function of a position difference signal.

28. The controller of claim 27, wherein the position controller further comprises a comparator that compares a reference position signal with an estimated rotor position signal to produce the position difference signal.

29. The controller of any one of the preceding claims, further comprising a resistive impedance correction that enables low speed damping.

30. A method of controlling an AC motor, the method comprising:

determining an applied rotor speed and an angle of rotation;

providing the angle of rotation to a feed forward converter; and

based on the angle of rotation, deriving and providing voltage values to a power converter for driving the AC motor.

31. The method of claim 30, wherein determining the applied rotor speed comprises adding a stabilising speed correction value with a substantially zero average value.

32. The method of claim 30 or 31 , wherein determining the applied rotor speed comprises using feedback proportional control that is based on a function of an estimated motor speed.

33. The method of any one of claims 30 to 32 further comprising operating the AC motor in flux weakening by setting a d-axis current value based on a calculated flux linkage reference so that a peak output voltage of a power converter of the AC motor remains below a predetermined value during flux weakening.

34. The method of any one of claims 30 to 33 further comprising controlling a motor speed based on the applied rotor speed.

35. The method of claim 34, wherein the controlling comprises:

comparing a reference speed with an estimated rotor speed to produce a difference value;

modifying the difference value to produce a first torque reference value; and adding the first torque reference value and an estimated load torque to produce a torque command.

Description:
"Sensorless AC motor controller"

Technical Field

[1] The present disclosure relates generally to the field of AC motor speed control and in particular to Feed Forward Torque Control (FFTC) for controlling the torque and speed of an electric motor without the use of sensors for measuring the rotor angular position or speed of rotation.

Background

[2] Vector control of AC motors has evolved around a standard control structure for the torque control section that typically relies on a high current loop bandwidth in order to obtain fast torque response. Conventional PI controllers used in the feedback current loops can be difficult to implement due to the non-linear nature of the machine equations and due to delays in the pulse width modulation process especially as the pulse width modulation carrier to output frequency ratio reduces.

[3] A feature of the traditional control structure is the need to measure or estimate the rotor position and in particular the electrical phase angle of the rotor flux direction or rotor angle. For sensorless control of the motor, the rotor position must be estimated from the motor voltages and currents. For permanent magnet synchronous motors (PMSM) this has proved particularly difficult. No universal method which will work with all PMSM types at all speeds has been devised.

[4] For a PMSM with rotor saliency it is possible to determine the rotor angle by directly measuring the spatial inductance variation by injecting high frequency or pulse test currents. For a PMSM without saliency, the motor's back-EMF is used to determine the rotor angle. Many different estimators of this type have been devised, but the back-EMF is difficult to measure at very low motor speeds and does not exist at all at zero speed.

[5] Any discussion of documents, acts, materials, devices, articles or the like which has been included in the present specification is not to be taken as an admission that any or all of these matters form part of the prior art base or were common general knowledge in the field relevant to the present disclosure as it existed before the priority date of each claim of this application.

Summary

[6] Described herein is a sensorless motor controller where fast torque response together with low torque ripple is achieved using low bandwidth current sensing whilst requiring low processor speed. Also described is a speed controller to complement the torque controller, and a position controller that has an inbuilt speed profiler to bring rotor position to its final value, obviating the need for an external movement profiler on the position input. Instead of measuring the rotor position, the position is determined indirectly by providing the conditions to force the rotor to lock into the required rotor position.

[7] In one aspect there is provided a controller for an AC electric motor, the controller comprising: a power converter driving the AC electric motor; a feed forward converter that derives voltage values provided to the power converter; and a load model unit configured to derive an applied rotor speed used for an input to the feed forward converter, wherein the applied rotor speed is derived using a stabilising speed correction value with a substantially zero average value.

[8] The load model unit may be configured to derive the applied rotor speed by adding the stabilising speed correction value. The speed correction value may be derived using a stability controller, and is described by Δω =

[9] The load model unit may comprise a load model and a load model compensator.

[10] The feed forward converter may derive the voltage values from a d-axis current value, a q-axis current value, and an angle of rotation value.

[11] The controller may further comprise an integrator, and the integrator may derive the angle of rotation value by integration of the applied rotor speed and may provide the angle of rotation to the feed forward converter.

[12] In another aspect there is provided a controller for an AC electric motor, the controller comprising: a power converter driving the AC electric motor; a feed forward converter that derives voltage values provided to the power converter; and a load model unit configured to provide an angle of rotation value to the feed forward converter, the load model unit comprising: a load model; and a load model compensator comprising: a

proportional plus integral controller; and a feedback proportional controller, wherein operation of the feedback proportional controller is based on a function of a motor speed.

[13] The feedback proportional controller may operate to limit a DC gain of the proportional plus integral controller.

[14] The motor speed may be an estimated motor speed. [15] The load model unit may further comprise a stability controller that adds a stabilising speed correction value to the estimated motor speed resulting in a corrected estimated motor speed; and the controller may further comprise an integrator that integrates the corrected estimated motor speed to produce the angle of rotation value used to determine the voltage values.

[16] In another aspect there is provided a controller for an AC electric motor, the controller comprising: a power converter driving the AC electric motor; a feed forward converter that derives voltage values provided to the power converter; and a flux weakening unit for operating the AC electric motor above base speed, the flux weakening unit comprising a flux weakening controller that determines and sets a d-axis current value based on a calculated flux linkage reference so that a peak output voltage of the power converter remains below a predetermined value during flux weakening.

[17] The d-axis current value, i d ' , may be determined from a relationship with the calculated flux linkage reference, l r , the applied flux linkage, d j , and the estimated stator phase inductance, L , as described by

[18] The applied flux linkage may be described as follows: sign(w') ¾ - v d ' 2 - v R ' q

[19] The flux weakening controller may comprise: a comparator that compares an applied d-axis flux linkage value and a threshold d-axis flux linkage; and an integral controller configured to stabilise the d-axis current value used to generate the d-axis flux linkage value.

[20] The controller may further comprise a z-domain integrator with an output limiter, and a flux gain operator.

[21] The integral controller may cause a feedback loop gain of about 0.5 at a sampling frequency.

[22] The controller may further comprise a load model unit configured to derive an applied rotor speed used for an input to the feed forward converter, the load model unit comprising: a load model; and a load model compensator.

[23] The feed forward converter may generate the voltage signals based on d and q axis flux linkage values. [24] In another aspect there is provided a controller for an AC electric motor, the controller comprising: a power converter driving the AC electric motor; a torque controller that provides control signals to the power converter; and a speed controller that controls a motor torque, the speed controller comprising: a comparator that compares a reference speed with an estimated rotor speed to produce a difference value; a proportional compensator that modifies the difference value to produce a first torque reference value; and a summing device that adds the first torque reference value and an estimated load torque to produce a torque command.

[25] The estimated rotor speed may be fed back so that the first torque reference value is substantially an inertia-only torque reference.

[26] The proportional compensator limits a compensator output based on a maximum acceleration setting.

[27] The controller may further comprise a position controller that comprises a proportional gain compensator with a proportional gain that is a function of a position difference signal.

[28] The position controller may further comprise a comparator that compares a reference position signal with an estimated rotor position signal to produce the position difference signal.

[29] The position controller may provide a speed reference signal for use by the speed controller to control a speed of a rotor of the AC motor.

[30] The speed controller, after receiving the speed reference signal, may do one or both of the following: limit a rotor acceleration, and limit the rotor speed.

[31] The controller may further comprise a load model unit configured to derive an applied rotor speed used for an input to the feed forward converter, the load model unit comprising: a load model; and a load model compensator.

[32] In another aspect there is provided a controller for an AC electric motor, the controller comprising: a speed controller for controlling a speed of a rotor of the AC motor; and a position controller provides a speed reference signal for use by the speed controller to control the speed of the rotor, wherein the position controller comprises a proportional gain compensator with a proportional gain that is a function of a position difference signal.

[33] The position controller may further comprise a comparator that compares a reference position signal with an estimated rotor position signal to produce the position difference signal.

[34] The controller may further comprise a resistive impedance correction that enables low speed damping.

[35] In another aspect there is provided a method of controlling an AC motor, the method comprising: determining an applied rotor speed and an angle of rotation; providing the angle of rotation to a feed forward converter; and based on the angle of rotation, deriving and providing voltage values to a power converter for driving the AC motor.

[36] Determining the applied rotor speed may comprise adding a stabilising speed correction value with a substantially zero average value.

[37] Determining the applied rotor speed may comprise using feedback proportional control that is based on a function of an estimated motor speed.

[38] The method may further comprise operating the AC motor in flux weakening by setting a d-axis current value based on a calculated flux linkage reference so that a peak output voltage of a power converter of the AC motor remains below a predetermined value during flux weakening.

[39] The method may further comprise controlling a motor speed based on the applied rotor speed.

[40] The controlling may comprise: comparing a reference speed with an estimated rotor speed to produce a difference value; modifying the difference value to produce a first torque reference value; and adding the first torque reference value and an estimated load torque to produce a torque command.

[41] Throughout this specification the word "comprise", or variations such as "comprises" or "comprising", will be understood to imply the inclusion of a stated element, integer or step, or group of elements, integers or steps, but not the exclusion of any other element, integer or step, or group of elements, integers or steps.

Brief Description of Drawings

[42] Embodiments of the disclosure are now described by way of example with reference to the accompanying drawings in which: -

[43] Fig. 1 schematically illustrates an embodiment of a torque controller;

[44] Fig. 2 is a diagrammatic representation of the fixed and rotating axes of a two-phase motor;

[45] Fig. 3 schematically illustrates an embodiment of a feed-forward converter; [46] Fig. 4 schematically illustrates an embodiment of a pulse clipping and lengthening unit;

[47] Fig. 5 schematically illustrates an embodiment of a vector saturation unit;

[48] Fig. 6 is a diagram of an embodiment of a bridge PWM inverter;

[49] Fig. 7 graphically illustrates PWM output signals for the a phase of an embodiment of a motor;

[50] Fig. 8 schematically illustrates an embodiment of a load model with error compensation and damping control;

[51] Fig. 9 schematically illustrates the use of an embodiment of a flux weakening unit;

[52] Fig. 10 is a phasor diagram for a rotor retarded by an angle δ;

[53] Fig. 11 schematically illustrates a high speed quasi-steady-state mechanical equivalent circuit;

[54] Fig. 12 schematically illustrates a high speed equivalent circuit of a controller and a motor with a load torque disturbance;

[55] Fig. 13 schematically illustrates a system equivalent circuit for a compliantly coupled load;

[56] Fig. 14 schematically illustrates a quasi-stationary open circuit q axis equivalent circuit with fixed d axis current;

[57] Fig. 15 schematically illustrates a complete q axis quasi steady state equivalent circuit of the motor at zero speed;

[58] Fig. 16 schematically illustrates a high speed quasi-steady state equivalent circuit;

[59] Fig. 17 schematically illustrates a zero speed equivalent circuit for a torque disturbance;

[60] Fig. 18 graphically illustrates a rotor angle offset response to a step torque disturbance at zero speed;

[61] Fig. 19 schematically illustrates a speed control loop;

[62] Fig. 20 schematically illustrates a position control loop;

[63] Fig. 21 graphically illustrates a speed and position trapezoidal profile; and

[64] Fig. 22 is a block diagram of an embodiment of a motor controller. [65] In the drawings, like reference numerals designate similar parts.

Description of Embodiments

[66] In the following description, a star superscript (*) is used to indicate command values, a tick O is used to indicate applied values and a tilde (~) is used to indicate estimated values.

[67] The following nomenclature is used herein:

T Motor electrical torque

T L Load torque

Θ Rotor angle, anticlockwise between rotor d axis and stationary a winding axis θ' Applied phase angle

X r Rotor flux linkage (amplitude of fundamental component)

λ Γα and λ Γ Flux linkages in the a and β axes

CO Rotor speed in radians per second

R Stator phase resistance

L Stator phase inductance

J Motor plus load inertia

CO n Natural resonant (hunting) frequency of the motor and load at high speed

R N Natural impedance or resistance of the motor and load = ^L IJ

i d d axis component of motor current

Ai d i d —i d : d axis component of motor current error

l d0 d axis component of motor current at zero speed

q axis component of motor current

Ai q i —i q : q axis component of motor current error

v a a phase motor voltage for two phase motor

ν β β phase motor voltage for two phase motor

V M Maximum output voltage during flux weakening

K R a dimensionless tuning constant

I'd applied flux linkage

) *df the required maximum value

ω' applied rotor speed

Δω stabilising speed correction.

[68] Traditional torque controller structures require that the rotor position is observable at all speeds. To this end, the rotor position must be provided, or at least estimated. In reality, to control the motor, the rotor position only needs to be controllable, not observable. A common motor controller where this is made use of is the stepper motor controller. With this controller, a fixed amplitude rotating stator current is applied to rotate the rotor of the motor. This simple method generally has poor performance. There is no electrical damping, so mechanical damping must be relied upon, limiting its application to small, multi-pole, low inertia motors such as the traditional 50 pole hybrid stepper motor. Also, the amplitude of the current generally has to be around twice the amplitude needed to create the expected maximum torque to ensure no pole slipping, resulting in poor efficiency.

[69] Feed Forward Torque Control (FFTC) also makes use of the lack of need for rotor position observability but uses a different mechanism. FFTC uses a load model to replace the rotor position estimator to provide rotor position and speed. A FFTC is described in

International Patent Application No. PCT/AU2010/001452, filed 1 November 2010, the contents of which are incorporated herein by reference in their entirety to the extent that they are consistent with the present disclosure.

[70] The load model calculates the rotor speed and position from the torque command. Another modification to the traditional torque controller is the replacement of the feedback current controllers with feed forward controllers to generate the motor voltages. This frees up the q axis current feedback allowing it to be used to provide corrections to the load model. The q axis current feedback signal is now used first to ensure the speed and position calculated from the load model track the actual values and second to provide rotor damping.

[71] The basic structure of an embodiment of a torque controller 100 is shown in Fig. 1 of the drawings, as applied to a 2-phase motor 102 such as a hybrid stepper motor. It can equally be applied to a 3-phase motor by using a 3-phase output pulse width modulation (PWM) modulator instead of the 2-phase PWM modulator 104 used here, and then converting the three phase current measurements to two phase before further processing.

[72] The q axis current command ι q together with the applied d axis current i'd and the applied rotor angle θ' are the inputs to a feed forward converter 106 which uses the machine equations to generate two phase voltages 108 for the PWM modulator 104. The PWM modulator 104 uses a power inverter 2203 (see Fig. 22) to interface with the motor 102, with the PWM modulator and inverter 2203 forming a power converter 2205 to generate the motor voltages from the two phase voltages 108. Other types of power converters that may be used include a matrix converter, or a cycloconverter (CCV).

[73] The applied d axis current i'd is the command value i d with a correction applied by subtracting, via a difference operator 110, a proportion of the integral of the d axis current error Ai d generated by an integral controller 7 112. This correction operates slowly and is included to reduce the d axis current's sensitivity to errors in the estimated stator resistance and errors in the PWM.

[74] A load model 120 includes additional compensation and stability control (described elsewhere herein). The load model 120 is fed by the input q axis current command signal i * q and generates the applied rotor speed ω' which in turn is integrated at integrator 122 to generate the applied rotor angle θ'. For most applications, only the load inertia needs to be modelled, with q axis current error feedback \i q used to compensate for extra load torque and errors in the estimate for the inertia. This \i q feedback signal is calculated via a difference operator 124, and is also used to dampen any motor instability by modulating the applied rotor speed ω'.

[75] The load model 120 and a following speed integrator 122 for generating the applied rotor angle replace the rotor position estimator required in conventional torque controllers, overcoming the problem of estimating the rotor position at zero speed. Advantageously, the load model 120 and speed integrator 122 provide accurate and immediate values of load torque, speed and position for use in the outer speed and position control loops (described elsewhere herein). Details of an embodiment of a load model with compensator and stability correction are given elsewhere herein.

[76] Because the feedback current \i q is used to correct the load model 120, and only involves mechanical time constants rather than the electrical time constants associated with the conventional feedback torque controller, the required bandwidth of the current feedback signals is greatly reduced.

[77] At or near zero speed, the feedback torque current error \i q does not respond to static rotor position errors and so cannot be used to correct the static applied rotor angle. Static rotor position errors are addressed by locking the rotor position to the correct angle by applying a positive d axis current. This prevents the applied and actual rotor angles drifting apart at zero speed without affecting the dynamics of the controller. This d axis current can be reduced to zero to reduce power consumption at higher speeds where it is not needed.

[78] The d axis current controller 130 and q axis current feedback loop 140 indicated in Fig. 1 are described in more detail elsewhere herein.

Feed Forward Converter

[79] The feed forward converter 106 generates the motor voltages required for the motor currents to track the input dq axes currents: applied i'd and command current q for an applied rotor angle θ'. The outputs of the feed forward converter 106 are the two-phase applied output motor voltages 108, v' a and ν'β, for use by the PWM modulator 104. These output voltages 108 are generated using the motor equations linking v' a and ν'β to i'd and i' q which are derived as described below with reference to Fig. 2 of the drawings.

[80] Fig. 2 of the drawings illustrates fixed or stationary αβ axes 202, and rotating dq axes 204 of a two-phase motor 200 with rotor magnet 206. Using the stationary αβ axes shown in Fig. 2, the motor currents and voltages are related by the equation:

(1)

where R and L are the stator resistance and inductance, λ Γα and λ Γ are the flux linkages in the a and β axes from the rotor magnet 206 and p is a differential operator. It is assumed the motor 200 has no saliency and thus the stator inductances do not vary with the rotor angle Θ.

[81] Converting the stationary αβ frame 202 currents and flux linkages to the rotating dq frame 204 shown in Fig. 2 using the general conversion formula:

and assuming the rotor flux is aligned on the d axis, giving r d = λ Γ , the peak rotor flux linkage, and rq = 0, the following equation is obtained:

cosQ —sinO Lid +

sinO cosQ Li n (3)

[82] This is the equation implemented in the feed forward converter 106.

[83] Note that equation (3) can be expanded further to the following familiar motor voltage equation in the dq frame:

by putting:

followed by expanding the differentials and some algebraic manipulation.

[84] Fig. 3 of the drawings shows a block diagram of an embodiment of a feed-forward converter 106 implementing equation (3) and using estimated values of the motor parameters. The inputs to the feed-forward converter are the applied d axis current i'd, the applied q axis current i' q , and the applied angle θ '. The flux linkages X' d and X' q are obtained using an estimate of the motor inductance L 302, and are provided to a dq to αβ conversion block 304 that outputs the applied a and β axes flux linkages λ' α and λ'ρ. The flux linkages are converted to the applied voltages, v'x a and v¾, by a differentiation block 306. Variables ν'ω, v'« ? , ν'« α and v¾ are the calculated IR voltage drops in the dq and αβ axes, and are added to voltages, v'x a and ν'ΐ , at a summing operators 308, to provide the applied αβ axes voltages v' a and v'p.

[85] As shown in inset 310, in the z domain, the differentiation block 306 subtracts the previous sample value of the flux in the stationary frame from the present sample value and then scales by the inverse of the sample period x s .

[86] For a DSP implementation, the sample period for calculations is normally set to the PWM carrier period. The dq to αβ conversion block 304 is usually implemented using sine and cosine look-up tables.

[87] An advantage of using the direct implementation of equation (3) is that the sine and cosine look-up tables for the dq to αβ conversion block 304 for the flux linkages do not need to be very accurate because an error in one sample value will cause a short term proportional current error only (LAi = AX) which would be considerably less than the carrier induced current ripple anyway. Contrast this to a scheme using equations (4) and (5) where the vector rotation acts on the voltages instead of the flux linkages. The sine and cosine look-up tables would then need to be very accurate because an error in one sample value would cause a permanent step change in current (LAi = J Δν dt).

[88] Also a part of the feed-forward implementation scheme of equation (3) and Fig. 3 is the direct voltage to voltage vector rotation of the estimated motor IR drop voltages. Since these added voltages compensate only for the motor resistance voltage drops, the look-up tables for the dq to αβ conversion block 304 also do not need to be very accurate allowing the use of the sine and cosine values calculated for the flux linkage vector rotation.

[89] Another advantage of using the direct implementation of equation (3) is that because the output voltages v' a and v'p are the changes in the flux linkages over each sample period, these voltages are equal to the average expected voltages over the period (Δλ = Δ J v dt). The resulting PWM pulse widths are thus proportional to the average output voltages over the period. This reduces subharmonic currents when the carrier to output frequency ratio is low allowing much lower ratios to be used.

[90] For large changes between successive sampled values of the applied flux linkages λ' α and λ'β caused, for instance, by a step change in the torque current command, the output sampled value of each differentiation block 306 could be large enough to cause clipping in the PWM output voltage. This would result in the needed change in flux linkage and the corresponding change in current not appearing on the motor. Referring again to Fig. 1 , to prevent this happening, a pulse lengthening unit can be added before the PWM modulator 104. and as part of the Feed Forward Converter 106 in order to limit the peak voltage input without changing the voltage integral.

[91] A simple method that can be used to implement the required pulse lengthening is shown in Fig. 4 of the drawings. This pulse lengthening and clipping unit 400 modifies the applied output stationary axes voltages v' a and ν' by clipping their vector magnitude using a Vector Saturation unit 402 and adding the resultant preceding errors 404 to the inputs at the following sample.

[92] The Vector Saturation unit 402 clips the [v'o, v'p] vector to a fixed magnitude so it is limited to a circle in the space vector plane. An embodiment of a method 500 of implementing clipping to a circle which avoids calculating the vector angle is shown in Fig. 5. The vector components are normalised by dividing by a vector magnitude 502 then rescaled using the clipped value of the magnitude 504. This should be clipped to the maximum voltage output, V max , of the PWM modulator 104.

[93] Another method of solving the clipping problem is to limit the rate of change of the q axis torque command current i q * to keep the peak output voltage to below the clipping level. This has the added advantage of reducing transients in the controller from sudden changes in i q * making for a smoother motor control. The maximum rate of change, di q * /dt, should be set to +V DC /L where L is the estimate of the motor inductance. This method may not always limit the output sufficiently to prevent clipping, therefore in some embodiments the controller also employs the pulse lengthening method.

[94] An example of both methods being used together can be seen in the controller implementation described elsewhere herein with reference to Fig. 22.

Pulse Width Modulator

[95] Referring to Fig. 6 of the drawings, a bridge PWM modulator 600 consisting of half bridge A 602 and half bridge B 604 on each output phase may be used for a two phase motor. For this type of PWM modulator, there are many possible modulation schemes. In some embodiments, double edge modulation of each half bridge 602, 604 using triangular carrier comparison may be used. As illustrated in Fig. 7 for the a phase, a triangular carrier wave 702 of half the PWM frequency is compared with a desired output 704, v' a , to generate the A half bridge output 706. The triangular carrier wave 702 is also compared with minus the desired output 108, -v' a , for a B half bridge output 710. This scheme minimizes switching losses as only one half bridge switches at each change in output state and the switching losses are shared equally amongst the four output transistors.

Load Model and Compensator

[96] A block diagram of an embodiment of a load model unit 800, that includes error compensation and damping control, is shown in Fig. 8. The transfer functions are shown in the Laplace domain. The load model unit 800 includes a load model 802 (modelled as l r / J s, where / is an estimate of the inertia of the load), and a load compensator 820.

[97] The load model unit 800 receives inputs ι q and \i q , and the output of the load model 802 is the speed co'/ which can be considered as a filtered version of the applied output speed ω'. The difference is the stabilising speed correction term Δω on the output of stability controller P 0 804.

[98] Like traditional v/f controllers the motor controller described herein requires a correction term to be added to the speed to stabilize the drive to prevent hunting. The stabilising speed correction value is a proportion of the torque error ΔΓ, which is the q axis current error \i q multiplied by the rotor flux linkage λ Γ , to stabilize the drive to prevent hunting. The required stabilising speed correction value Δω is given by:

where ζ is the damping factor, typically set to 1 for critical damping. The required damping is provided by stability controller Po 804 with gain set by equation (6) with constant Ko set to the damping factor and using estimates of motor inductance L and inertia /.

[99] Before being applied to the transfer function of the load model 802, the command torque current i * q is corrected by subtracting the applied load torque current i' q L at difference operator 806, thereby providing an estimated inertial torque component i * q - i' q L- Ignoring for now block P2 808 which takes effect at low speed, the applied load torque current i' q L is found from a proportional-integral (PI) controller 810 that includes proportion controller block 812, and integral controller block 814, with the torque current error \i q as its input. The generated load torque current i' q L is used to advantage in an embodiment of a speed controller described elsewhere herein. [100] Any change in actual load torque will cause a torque current error Ai q to occur which will then be corrected by the PI controller 810, changing the rate of change of the applied speed ω' until the resulting change in the inertial torque compensates for the actual change in the load torque. In this way, the applied torque λ Γ ' ? tracks the real torque λ Γ ? .

[101] The use of a PI controller is possible because the response of the error current \i q to a change in the applied rotation speed ω' is linear and independent of the motor speed. This characteristic allows the torque controller to operate at all speeds including zero with the same dynamic response. This provides the controller with an advantage over existing torque controllers which must work with non-linear transfer functions.

[102] To choose the controller gains, a dynamic response analysis is required, which is described elsewhere herein. Briefly, it is necessary to recognize that this torque PI controller 810 acts with the stability controller Po 804 to form a second order P+I+I 2 controller. The corresponding normalized gain constants are Ko, K \ and K 2 as shown in Fig. 8. The normalization scaling shown is chosen to make the gain constants machine independent. For the gain constant of the integrator block 814, the scaling includes an estimated value of the natural frequency co„. This is the hunting frequency of the motor when operating under undamped open loop voltage control at high speed and is given by ω η = A r /.J~LJ. Constants Ko, K \ and K 2 may be selected to be between 0 and 1 to achieve the damping and response characteristics required for the specific implementation. In some embodiments, constant Ko in stability control block 804 (the damping factor) may be set to 1.0, while constants K \ and K 2 may be set to 0.25 and 0.5 respectively to achieve desired response characteristics.

[103] To prevent the output of integrator 814 from drifting at zero speed when the load torque cannot be measured, the integrator 814 is turned into a low pass filter by adding a feedback path 816 around it that includes block P 2 808. This path 816 is needed at or near zero speed so its gain is reduced as speed is increased by including the function t o(co'/). This function is set to 1 at zero speed reducing to zero as speed is increased. The input parameter used for this function is the filtered version co'/ of the applied speed obtained before the proportional term is added. In some embodiments, this function is a ramp function staying at 1 until co'/ nears the natural frequency estimate ω η then ramping down to zero at a speed above ω η . This choice of the function is the same as that described in equation (7) for the reduction in the d axis current with speed. An example of such a function is shown in the implementation shown in Fig. 22.

[104] Note that at difference function 801, the output of the P 2 block 808 is subtracted from the torque current error Ai q rather than the integrator input to keep the average value of Δω' zero (the average value of the integrator input is always zero making the average value of Δω zero). This is necessary to ensure there is no offset in the filtered speed co'/ which is used in the outer speed control loop. If the output of the Pi block 808 was subtracted directly from the input of the integrator block 814 as was implemented previously in Feed Forward Torque Control systems then the average value of Δω' when the gain of the P2 block 808 is not zero would be non-zero when the output of the integrator block 814 is not zero (which tends to be the case in practice). This new connection of the P 2 block 808 output is used for correct operation of the new speed controller described later. Removing or limiting the DC component of the signal in this way is an advantage provided by the configuration of the load compensator 820 that forms part of the load model unit 800 presented herein.

[105] The DC gain of the integrator 814 at zero speed is the inverse of the gain constant K3. The choice for K3 depends on the application. When the motor is brought to zero speed, the value stored on the output of the integrator h 814 is the stored load torque from when the motor speed was high enough for the load torque to be measurable, which is when the motor back EMF is high enough to drive a large change in \i q when the motor flux phase angle differs from the applied phase angle θ'. When zero speed is reached, this value slowly returns to zero at a rate depending on the value of K3. At the same time, the rotor angle settles to an offset value from the applied angle depending on the standstill load torque and the level of d axis current i d that has been applied to hold the rotor in position. For a fixed load torque where the speed is changed slowly through zero, a low value for K 3 is preferred, perhaps 0.1 or less. For a position controller where settling time at zero speed should be as fast as possible, a high value for K3 is called for, perhaps as high as 1.0. A compromise value which works well for most applications is 0.5.

[106] In this load model unit 800, the load compensator 820 therefore includes the P 2 block 808, as well as the proportional plus integral controller that includes both the proportional controller block Pi 812 and the integrator block 814.

d Axis Current Control

[107] Referring again to Fig. 1 of the drawings, the d axis current controller 130 uses feed forward control (in the feed forward converter 106) with added feedback compensation 132. The feedback corrects for any steady state errors in the d axis current i d caused by errors in the estimation of parameters in the feed forward converter 106. The feedback compensator uses a simple integral controller 112 where the integral of the current error is added to the reference current at the difference operator 110. The integral gain is set to Κ^ω η to match the effective gain of the integral controller 814 in the q axis load model compensator as shown in Fig8 .

[108] At start up the d axis reference current i d * must be set high enough to provide a holding torque greater than the difference between the load model torque (which for the load model used here only corrects for the inertial torque) and the actual torque. For example, if there is a start up friction torque 7> then the d axis reference current i d * at start up must be set to greater than T F / r . As the motor speed rises and the rising back EMF allows the q axis current feedback loop 140 to react to load torque errors, this reference current i d * can be reduced. In one embodiment, i d * is reduced as speed rises by the simple two stage ramp function d (<u ) of equation (7). Other functions could be used.

F d ^ \ω' \≤Κ 6 ω η

= 0 ^ ω ' > Κ 7 ω η

[109] In one embodiment constants Ke and Κη are set to 0.5 and 1.5 respectively but other values could be better for a given application, and Ke and Κη may fall within a range from about 0.1 to about 2.0.

Flux Weakening

[110] Fig. 9 of the drawings shows the addition of a flux weakening unit 900 (shown in dotted lines) to the FFTC. Flux weakening is used to operate the motor at a speed above base speed.

[I l l] Operation above base speed can be achieved by adding a negative d axis current to suppress the q axis rotor flux induced voltage down to the available supply voltage. One way of doing this is to control the d axis applied current i' d directly to set the maximum motor output voltage to below the available voltage. The output voltage can be set exactly because of the feed forward nature of the controller. When flux weakening operation is required, current i'd should be set so that the d axis applied flux linkage I'd is the value I'df given in equation (12), i.e. i d ' = (A' df - A r )/L

[112] The turning off and on of the d axis current feedback when flux weakening is turned on and off could cause a torque disturbance. To avoid this, a feedback method is used to control the d axis current reference so that it adds the correct amount of negative d axis current for flux weakening. The added feedback used for this is the flux weakening unit 900 shown in Fig. 9. A local feedback loop is added to force the applied flux linkage λ'^ to a threshold d-axis flux linkage, namely the required maximum value *df whenever λ'^ exceeds * < # . This feedback loop 900 effectively negates the effect of the d axis current error integral controller 112 whilst keeping the integral controller 112 operating, thereby ensuring smooth transition into and out of flux weakening. The feedback loop also sets the value of the applied d axis current i' d , thereby avoiding the need to back calculate it.

[113] The feedback compensator of this local feedback loop 900 is a z domain integrator 902 with the output limited to negative values only as shown in Fig. 9. This ensures flux weakening comes in and out of operation smoothly. Following the flux conversion operator 905, at the gain operator 904, the gain Kf may be set to about 0.5 for a fast stable response time. The reference value X* d f is the calculated value of the d axis flux required to keep the output motor voltage below the maximum available voltage. V mm as shown in Fig. 22 at 2242. The output of the z domain integrator 902 is added to the d axis reference current input at summing device 906, now designated i d * l to create the new reference current i d * .

[114] Ignoring transient components (terms Lpi d and Lpi q in equation (4)), the output d and q axis applied voltages are given by:

+ v R ' d (8)

V q = ω'λ' α + v R ' q (9)

[115] If VM is the maximum output voltage during flux weakening, the d flux reference must be chosen so that:

[116] Voltage constant VM should be set slightly lower than the maximum available voltage V max to allow some voltage overhead to handle transient components. Experience has shown that setting VM to about 95% of V mm allows ample headroom. It can be set to 100% , VM = V m a , if slight errors in the applied position angle θ' during transients is acceptable. In some embodiments, the pulse lengthening of Fig. 4 may be disabled during flux weakening.

[117] In some embodiments, voltages may be normalized to the modulation index for exact control of the output voltage headroom as a proportion of the maximum available output voltage.

[118] In equation (9) flux linkage '^ is dependent on v' q which when operating at maximum voltage VM is, from equation (10):

[119] Where sign(co') is +1 or -1 depending on the sign of ω'.

[120] Using equation (9), and using the applied d axis voltage v'd, which is given by equation (8), the flux linkage reference is given by:

- 1 sign(iu') Jj¾ - v d ' 2 - v R ' q (12) x - 1

- |ω'|

[121] An inspection of equation (12) shows that v'd must be kept less than VM- The applied d axis voltage v'd mainly depends on the applied torque so it can be limited in magnitude by controlling the torque current limits, as indicated at 2201 in Fig. 22.

[122] The q axis applied flux linkage and current are calculated by the equation

X q = i q ' L (13) where L is the estimated motor inductance.

[123] Using this relation in equation (8) to find i' q :

^ = - ^ yd' - v R' a) (14) [124] The absolute maximum value of Vd is limited to VDM which must be less then VM to ensure v'd is less than VM- In some embodiments, VDM would typically be set to about 80% of V M - This leaves enough voltage margin for flux weakening to operate.

[125] From equation (8) for positive speed and positive torque, voltage Vd is negative. It must be limited to -V DM - Using the more practical filtered speed ω , the maximum limit of i' q is given by iq' max = (VDM + d for ( ύ' > 0 (15)

[126] For positive speed and negative torque, Vd is positive. This voltage must be limited to V DM thereby restricting the negative limit of i' q to iqmin = ~ ? ~ ϊ ( V DM ~ ^fid) for 0 ) ' > 0 (16)

[127] For negative speed and negative torque, Vd is negative. It must be limited to

-V DM thereby restricting the negative limit of i' q to iq' min = ^ (VDM + d) for ω ' < 0 ( 17 )

[128] Finally, for negative speed and positive torque, Vd is positive. It must be limited to

V DM thereby restricting the positive limit of i' q to iq' max = (VDM ~ d for (ύ ' < 0 (18)

[129] From the above it can be seen that the equations for i' qm ax and i' qm i„ are swapped depending on the motor rotational direction.

[130] In some embodiments, the above four equations can be combined to create the following continuous torque limits: iq' max = (VDM + sign(<u a d ) (19) iq' min = ^ ( " ¾M + Sign(<u')l¾ d ) (20)

[131] These limits can then be applied to the input command i * q , as indicated for the limiting operator 2202 in Fig. 22 of the drawings. In some embodiments, these torque limits are disabled at zero speed to avoid division by zero.

High Speed Dynamic Analysis

[132] To see how the choice of gain constants affects motor response it is necessary to separately analyse the motor response to changes in the applied speed ω' at motor speeds above and below the natural frequency co„. The mechanisms for these two situations are different, but the resulting responses are similar and combine to give a linear response over the entire speed range.

[133] Described here is the response at motor speeds well above the natural frequency. At high speed well above co„, for small perturbations, the q axis torque producing current i q can be assumed to be sensitive to changes in the rotor angle only and can be analysed most simply using phasor diagrams.

[134] Consider the case of a two pole PMSM operating without load at a high fixed stator frequency ω and with the rotor EMF vector, E, equal to the applied voltage vector, V. Now consider the case of a small perturbation of δ radians in the rotor angle due to instability causing a current / to flow. Ignoring motor resistance, which at high speed would normally be much less than the motor reactance coL anyway, the phasor diagram 1000 shown in Fig. 10 applies.

[135] For a small value of δ, with |£ " | = λ τ ω and |/ | = i q , the resulting current is in the q axis and is given by:

[136] The resulting restoring torque AT is given by:

ΔΤ = A r i q

Δ Τ = ΑΪ6 (22)

L

[137] This causes the rotor speed to change to reduce δ, restrained by the inertia /. The equation of motion is:

AT = -J—

[138] For the analysis, a controller ω' driving term can be added to equation (23) as follows:

. d z 6 . da'

ΔΤ = (24)

[139] Replacing δ with AT as the independent variable using equation (22) and rearranging:

[140] Integrating this assuming zero initial conditions: j ! AT dt = - ! + Aa>' (26)

[141] It can be seen from this integration that equation (25) can be represented by the mechanical equivalent electrical circuit 1100 shown in Fig. 11 where L M = L/λγ and C M = ] are the mechanical equivalent inductance and capacitance values (inverse of torsional spring constant and moment of inertia). The resonant frequency of this circuit is the natural frequency co„.

[142] The load compensator 820 of Fig. 8 controls the damping of this circuit via control of Δω'. It should have its gain constants chosen to obtain adequate damping at the highest possible gain. Ignoring for now the second order integral block 814 and its feedback block Pi which have only a secondary effect on the response characteristics, the effect of the load compensator 820 can be incorporated into the high speed equivalent circuit. This will aid in determining suitable values of constants Ko and Ki.

[143] Assuming no change in the command torque input i * q , the transfer function of the load compensator 820 for a change in the applied speed from a change in the q axis current is given by:

[144] When added to the high speed equivalent circuit, the two terms of equation (27) become a mechanical equivalent capacitor 1202 and resistor 1204 (inertia and inverse of friction). These components 1202, 1204 and their values are shown in the expanded equivalent circuit 1200 of Fig. 12. Also included is the effect of a load torque disturbance ATL shown as a current source 1206.

[145] This equivalent circuit 1200 allows easy selection of gain constants Ko and K \ .

Suitable settings for most applications are K 0 = 1 setting Rm for critical damping of the series RiM -LM-CM circuit and Κ = 0.25 making Cm. four times CM which is high enough to not interfere with circuit damping. These values provide a good compromise between compensator gain and damping.

[146] The gain constant K 2 of the second order integral controller 814 in Fig. 8 is set to as high a value as possible without interfering too much with the response characteristic provided by the load compensator 820. A value of about K 2 = 0.5 may be used.

[147] Note that with the feed forward converter 106 properly tuned, a torque command input change causes an instantaneous change in the electrical torque applied to the motor without disturbing the equivalent mechanical circuit. Any parameter mismatch in the controller will result in an effective torque disturbance when a change in the command torque is applied, with the effective torque disturbance amplitude depending on the degree of mismatch resulting in the same damped oscillation response to the error. This makes the controller fairly robust to parameter errors.

[148] A load connected with a high compliance coupling may cause a low frequency mechanical resonance. In a conventional controller the command torque signal must be filtered to avoid exciting this resonance. As shown in Fig. 13 of the drawings, the effect of adding a two-mass coupled load on the controller can be seen by adding the load's equivalent mechanical circuit 1302 to the high speed equivalent circuit. Capacitances CM and CL are the mechanical equivalent of the motor and load inertias and inductance Lc is the equivalent coupling compliance. This circuit 1300 shows that by adjustment of the controller gains it may be possible to provide at least partial damping of the load coupling resonance, which is usually sufficient to stop oscillations.

Low and Zero Speed Dynamic Analysis

[149] At speeds much less than co„ and particularly at standstill, Ai q is no longer sensitive directly to changes in the applied speed Δω' but instead is sensitive to a q axis voltage change which, in the controller described herein, is produced by the applied back EMF generated by the feed forward converter 106 which in turn depends on the applied speed ω'. The feed forward converter 106 is an implementation of equation (3) using estimated parameters but this expands to equation (4) showing that a change in the applied back EMF from a change in ω' results in a change in the applied q axis voltage given by:

Δν' q = Αω'λ τ (28)

[150] At zero speed, the rotor is kept in position by the application of a positive d axis current but the dynamics are determined by the q axis external impedance imposed by the inverter. To optimize this, the q axis equivalent circuit of the motor needs to be derived, for example by using the motor resonances, or by using the motor equations.

[151] When using the motor resonances, consider a two-phase, two-pole PMSM with no external load except the load inertia and with a quasi-stationary rotor with the d and q axes aligned with the two windings. Assume a fixed current h in the winding aligned with the d axis locking the rotor to this axis. Now consider the equivalent electrical LC circuit for the stationary q axis for an undamped oscillating rotor with the q axis winding open circuit. The equivalent LC tuned circuit 1400 is shown in Fig. 14. The equivalent parallel inductance is Lp and the equivalent capacitance is Cp.

[152] Now consider the effect of moving the rotor off the d axis alignment by a small angle δ. The resulting restoring torque is r sin6 or to a first approximation. The resulting equation of motion if the rotor is released is:

[153] For electrical circuit equivalence, this must match the differential equation for the equivalent tuned circuit with circulating current ip which is:

[154] The tuned circuit component values can be found by matching terminal voltage, energy and resonant frequency. The q axis terminal voltage is X r d δ/dt , which in the equivalent circuit is the voltage on the capacitor, giving the energy stored in the capacitor as 0.5Cp (A r d δ/dt) 2 . This is the kinetic energy 0.5/(d δ/dt) 2 , thereby giving:

[155] Matching the inverse square of the resonant frequencies gives L P C P = // ( a^-r) giving a value for the inductor of:

[156] Finally, equating the capacitor voltage r d δ/dt to the inductor voltage L P dip / dt, the rotor deviation angle is found to be:

[157] To complete the q axis equivalent circuit for quasi-stationary rotor oscillations, the winding inductance L and resistance R can be added as shown in the circuit model 1500 in Fig. 15. Also added to this circuit is the q axis excitation voltage 1502 from equation (28). This circuit model 1500 was derived for a stationary motor with no load but it also holds for low speed operation and a fixed torque load with added compensating q axis current.

[158] To compare this to the mechanical high speed equivalent circuit 1100 of Fig. 11, the variables used in Fig. 11 can be changed from a change in torque to the equivalent change in q axis current i q = Δ T / r , and from a change in rotational speed to the equivalent back EMF Δωλτ. The resulting new high speed equivalent circuit 1600 with re-normalised component values is shown in Fig. 16. Note that the capacitance value is the same as that of the low speed q axis equivalent circuit, 7.

A r

[159] Comparing the motor response circuit 1600 of Fig. 16 to the circuit 1500 of Fig. 15, and using equation (28) giving Δν' q = Δω' ' λ γ , the response of q to Δω' is similar, especially the 2nd order high frequency roll-off. The same linear high frequency response of the two circuits allows the use of a linear feedback compensator for the entire speed range (as described elsewhere herein with reference to Fig. 8).

[160] So far in the analysis it has been assumed that the angle of the d axis current vector is fixed in the stationary frame. It can be seen in Fig. 1 and Fig. 8 that transients at zero speed also cause transients in the applied speed and thus also in the applied vector angle used in the feed forward converter 106. This adds an extra degree of damping not considered so far which will now be described.

[161] A special case to be considered for the dynamic response is the effect of a step torque disturbance applied at zero speed. A load torque at zero speed results in a rotor angle offset, the amount of which depends on the torque and the level of d axis holding current. Ideally when the torque is changed, the rotor offset angle should settle to its new value as quickly as possible with minimal overshoot. [162] With a torque disturbance at zero speed, the resulting sudden movement of the rotor produces a back EMF which in turn causes a pulse of current in the q axis, the amplitude of which depends on the combined impedance of the stator and the inverter. The resistance component of this impedance provides damping. Another effect, due to the feed forward converter 106 also controlling the d axis current vector, is that the pulse of q axis current results in a change in the applied speed Δω', which in turn moves the applied angle of the d axis current vector. This dragging of the d axis current vector provides extra damping. The combined effect of these two damping mechanisms are shown in the equivalent electrical circuit 1700 of Fig. 17. It is assumed in this circuit 1700 that only the stability control block Po 804 affects damping, and that the load compensator 820 shown in Fig. 8 is not significant. It is also assumed that the rotor offset angle δ is small enough so that δ ^ sinS.

[163] An added voltage source Vp 1702 shows the effect of the change in applied speed on the feed forward converter 106 due to the change in q axis current. The voltage across Cp is the back EMF generated by the rotor movement from the torque disturbance. The voltage source Vp is the countering applied back EMF generated by the applied speed change Δω' acting on the feed forward converter 106. Because this also rotates the d axis current vector, affecting the resultant torque generated by the rotor offset, it appears inside the LpCp tuned circuit.

Low Speed Damping Implementation

[164] To provide damping, the controller is modified to artificially add a resistive component RE 1704 to the inverter output impedance. This is set to K R R N — R where R is the motor phase resistance and R N = R ^L/] is defined as the natural resistance and KR is a dimensionless tuning constant. The changes to the controller required to create this resistive component on the output can be seen at 2204 in the full controller embodiment illustrated in Fig. 22. This changes the effective motor stator resistance from R to KRR„. The feed forward converter 106 is also modified to use this new value of stator resistance.

[165] Note that if the motor phase resistances are not equal then corrections to the resistive impedance of each phase of the inverter output may be added to avoid low speed torque modulation. An example of how this is done is shown at 2206 in Fig. 22. Each phase is corrected for the differences from the average, (R A — R ) and (ff^— R ) , where R A and ff^ are the measured phase resistances, and R is the average.

[166] Constant KR sets the damping for a zero speed torque disturbance. Simulations show that a suitable value is about 1 for most motor types and about any settings of the d axis holding current. Fig. 18 of the drawings shows the response of the rotor angle offset to a small torque change using the motor parameters L = 5mH, r = 5mVs and /=60E-6 kg.m 2 with An actual circuit response 1802 using the equivalent circuit 1700 of Fig. 17 is shown in solid line, and a simulated response 1804 is shown in dotted lines. The full simulation using the Matlab Simulink program for d axis currents of 0.5 and 1.5 A are shown. The larger error 1806 in the response for I d = 0.5 A is due to the increased error in the approximation of sin δ to δ in radians and the secondary effects of the added load compensator 820 in the simulation.

Speed Control Loop

[167] A block diagram of an embodiment of a speed control loop 1900 is shown in Fig. 19. Advantage is taken of the availability of the applied load torque current i' Q L at 1902 when using a FFTC controller to eliminate the integrator normally used to correct for an offset torque. As well as removing integrator wind-up problems, this results in stable operation without re-tuning for wide changes in inertia. Other types of torque controllers could be used provided they have a load torque current signal available. For example, a torque controller using proportional- integral current controllers could generate the load torque current signal with an observer.

[168] The speed command input co * is compared to the filtered applied speed co'/ at comparator 1904. The error signal passes through a proportional compensator 1906 with a gain Gap to create the command inertial torque current ι q i. This is limited to plus and minus the maximum acceleration setting AM (in radians/s 2 times //l r to convert to the equivalent q axis current) at the limiting operator 1908. The applied load torque current i' Q L at 1902 is then added at summing device 1910 to create the command torque current i * q after clipping to the torque current limit IM at limiting operator 2201 , as shown in Fig. 22 and mentioned earlier The applied load torque current and the command inertial torque current combine to give the q axis reference current at the output of limiting operator 2201 , and as per the equation: iq = iql + iq' L (34)

[169] From inspection of the load model unit 800 and load compensator 820 in Fig. 8, when not in torque limit, i' q i is exactly the same as the input torque current to the load model. Since the load model used is an inertial model with transfer function l r //s, i' q i is exactly the motor acceleration rate times //! r . The limit on i' q i of +A M /! r thus gives precise control of the maximum acceleration. Advantageously, this eliminates the need to apply profiling to the speed command input.

[170] Note that the addition of i' Q L to i * q creates an unwanted positive feedback loop for the q axis current via the P \ block 812, i' q at 2207 and Ai q at 2208, as can be seen in Fig. 22. This may limit the value of the gain constant K \ to less than about 1 to maintain stability. In some embodiments, a practical maximum value for K \ for the positive feedback loop not to affect performance may therefore be around 0.25.

[171] Also, from Fig. 8, it can be seen that the filtered speed used for feedback, ω , comes straight from the output of the inertial load model 802. This places the whole speed control loop effectively within the controller allowing any gain value to be used for Gmp , limited only by the sampling rate of the controller. This simplifies tuning of the speed loop.

[172] For convenience, the speed loop compensator gain can be normalized to:

G OJP = ΚωΟ ω ηϊ/ (35) [173] The normalized gain Κ ω0 then sets the response characteristic independent of the motor and load parameters. A value for Κ ω0 of about 0.4 may be suitable for most situations. In some embodiments, Κ ω0 may be replaced with 2K 4 K 5 .

Position Control Loop

[174] A block diagram of a position control loop 2000 is shown in Fig. 20. At comparator 2002, the command position angle Θ * is compared to the applied position angle θ ' available from the torque controller. The error is amplified by a proportional gain block 2004 of gain

Kgp to produce the speed command signal ω * for the speed control loop. At limiting operator 2006, this signal is limited to plus and minus ω Μ , the chosen maximum speed. As indicated in the diagram at 2004, Κ ΘΡ can be made a non-linear function of the position angle error ΔΘ.

This together with the maximum speed and acceleration settings, ω Μ and A M , allows a desired position trajectory to be made part of the control loops, rather than requiring the trajectory profile to be pre-calculated and applied to θ * , as is typically required for a conventional controller. As an example, the required Kg P (A9) function for a standard trapezoidal speed profile is described below with reference to Fig. 21.

[175] For a position controller where Kg P is a fixed value, the response characteristic is second order and can be analysed as follows:

[176] The transfer function for the dual cascaded loop position controller 2000 as shown in Fig. 20 is given by:

0(s) ΚθρΚωρ-γ

(36) ζ +εΚωρ-^+ΚβρΚωρ [177] The characteristic equation for this system is:

5 2 + 5Κ ωΡ ^ + Κ ΘΡ Κ ωΡ ^ = 0 (37)

[178] Comparing this with the characteristic equation for a second order system with a system resonant frequency of ω 0 and a damping factor ζ: s 2 + Ξ2ζω 0 + ω 0 2 = 0 (38) the two proportional gain settings are:

ΚΘΡ = ζ (39) Κ ωΡ = 2ζω 0 ]/λ τ (40)

[179] Suitable per unit parameter constants for the resonant frequency and damping factor are K 4 = ω 0 η and K 5 = ζ. Using estimated values of machine parameters this gives:

Κ ΘΡ = (41) Κ ωΡ = 2K s K 4 ti n J/l r (42) [180] Typical values are K 4 = 0. 2 and K 5 = 1 for fast settling time without overshoot.

[181] In a conventional controller, a trajectory profile is pre-calculated then applied to Θ * . The most common profile used is a trapezoidal speed profile where the motor accelerates at a constant rate until a maximum speed is reached. The speed is then maintained up to a pre- calculated point when the motor decelerates to standstill which corresponds to the final position. This method has many problems. Changing the trajectory mid-flight is difficult and a temporary speed drop due to overload cannot be accommodated.

[182] For the FFTC controller described herein, instead of using a profiler, the position cascaded control loops can be modified to provide the required tracking profile. To do this, use is made of the available speed and acceleration limits ω Μ and A M and a non-linear gain

Κ ΘΡ (ΔΘ) is implemented.

[183] For example, consider a trapezoidal speed profile where the set point position is reached by accelerating at a fixed rate A M up to the maximum speed ω Μ , then running at maximum speed as long as possible, then decelerating at rate A M , timed so that the set point position is reached at zero velocity.

[184] Graphs of a speed profile 2102 and position profile 2104 for a position change from 0 to Θ * are shown in Fig. 21.

[185] The initial acceleration rate and the maximum speed are controlled by A M and ω Μ . Control of the point when deceleration is started and the deceleration rate is achieved by a suitable choice of the non-linear function Κ ΘΡ (ΔΘ). The required function Κ ΘΡ (ΔΘ) can be derived as follows, with At being the remaining time to reach the set point position:

[186] Assuming a deceleration rate of A M matching the acceleration rate, the required equation of motion is:

ω = A M At

giving for the case of a positive position error ΔΘ:

giving:

jiving the required Κ ΘΡ (ΔΘ) as:

Κ ΘΡ {ΔΘ) = ^^ (46)

[187] In some embodiments, ΔΘΚ ΘΡ (ΔΘ) may be calculated directly rather than calculating Kg P (A9) separately first. Note that Kg P (A9) will increase indefinitely as ΔΘ approaches zero. To maintain stability, the maximum value of Κ ΘΡ may be limited to that given by equation (39).

[188] Imposing this limit will result in a slightly longer settling distance for ΔΘ. To compensate for this, Kg P A9) can be adjusted to:

where 9 S is the extra settling distance.

[189] 9 S is selected so that the maximum value of Κ ΘΡ (ΔΘ) is ω 0 /2ζ, the limit value of

KQ P from equation (39). This maximum value occurs at ΔΘ = 29 s and is given by:

ΜΑΧΚ ΘΡ (ΔΘ) =

[190] Equating this to ω 0 /2ζ gives the required value of 9 S as:

_ 2Α Μ ζ 2

¾ - ..2

or:

where Kg P is ω 0 /2ζ. [191] With θ 5 set to the above value, as ΔΘ drops to zero, from a positive value, Κ ΘΡ (ΔΘ) can be set to its maximum value of ω 0 /2ζ when ΔΘ reaches 29 s , resulting in a smooth transition of the position controller to its linear mode, from where the position error will drop to zero with a response curve depending on the setting of the damping coefficient.

[192] In summary, for a trapezoidal velocity profile, Κ ΘΡ (ΔΘ) may be set as follows:

KgpW = £ME^ m > 2 e s

Κ ΘΡ {ΔΘ) = ζ \ΔΘ \≤ 2 θ 5 (51) where θ 5 = ^f-

[193] In a practical controller, ζ and ω 0 would be replaced with the estimated values K 5 and Κ 4 ω η .

[194] In a practical application, jerk limiting, which is limiting the rate of change of acceleration, is often required. This can be implemented by making the speed proportional gain Κ ωΡ a function of the speed error in the same way that Κ ΘΡ is made a function of ΔΘ for position velocity profile control. A ramp limit on the acceleration would also need to be added to the acceleration clamp, shown as limiting operator 1908 in Figs. 19 and 20.

[195] The position controller 2000 has been described to work with the speed controller 1900 described previously for a Feed Forward Torque Control system, but it can also be used with other types of speed controllers. Other speed controllers, such as a traditional proportional integral controller, do not have the ability to limit acceleration within their control loop, but this can be replaced with a ramp or rate of change limit to the speed command input to the controller instead.

Implementation

[196] One embodiment of a complete controller in block diagram form suitable for practical implementation is shown in Fig. 22. The controller is implemented in software on a

microcontroller (for example on a digital signal processor, DSP). Operations shown in each block are calculated once per sample period except for the blocks in the Position Controller 2000 and the Speed Controller 1900, which may be calculated at a reduced sample rate depending on the response time required to position and speed changes. The breaks between the end of calculations for one sample and the start of calculations for the next sample are indicated by blocks marked z 1 . At these breaks the results of calculations are passed to the next sample. [197] Typical values of the constants used in the calculations, Ko to K and KR, KL and KG are shown in the diagram.

[198] Before undergoing dq to αβ coordinate transformation at conversion blocks 304, the applied stator flux linkages and the applied stator IR voltages are normalized (at 2210) to the modulation index, by dividing by the maximum PWM output voltage before saturation, V mm , which could be updated continuously from a reading of the DC link voltage in an actual system. Variables normalized in this way are indicated in Fig. 22 by a hat ( Λ ) symbol.

[199] Shown is the detailed mechanism for generating the d and q error current values Ai d and Ai q at 2212. Equalising delays 2214, 2216, 2218 are shown added to the d and q reference currents and to the sine and cosine values of the applied rotor angle to compensate for the delay in the PWM modulator 104 and any hardware filters in the current sensors. Noise filters 2220 are shown for the error signals Ai d and Ai q . The nature of these filters will depend on the nature of the noise in the current sensors but typically would be a moving window filter averaging over the previous two sample measurements.

[200] The applied speed value ω' is not used directly in calculations but is passed through a low pass filter 2222 first to remove noise to create an averaged speed co' flV . which is used instead. The low pass filter 2222 is a single pole filter with a roll off frequency set high enough to not affect normal operation of the controller. In this case, the roll off frequency fo is set to four times the estimate of the natural frequency 4<¾.

[201] As can be seen in the diagram at operator 1910, the applied load torque current is first added to the applied q axis current (after a Rate Limit operator 2226) then subtracted from it (at difference operator 2224) after it passes through the current limits 2201 , 2202, and before it is applied to the load model 802. When not in current limit, in some embodiments it may be better to just bypass the current limit blocks 2201 , 2202 and connect the output of the Rate Limit operator 2226 directly to the input of the load model 802. This allows for a much higher resolution of the applied q axis current to be used for the load model 802 when not in current limit, when using fixed point integer variables as used in this implementation. Low resolution is required on the input of Torque Current Limit at 2201 , to allow headroom for possible large overshoots in the value of the applied load torque current i q ' L .

[202] Included in the implementation is a mechanism to measure the rotor flux linkage for tuning purposes. When the motor is spinning fast enough for a large back EMF, but not so fast as to cause flux weakening, and with the d axis current reference i d * at zero, switch 5A 2230 can be closed to force the rotor flux linkage value l re to match the actual rotor flux linkage. When the switch 2230 is closed, the integrator I A 112 adjusts l re until the applied d axis current value i d ' becomes zero, resulting in l re matching the actual rotor flux linkage. After this procedure, the rotor flux linkage estimate l r can be adjusted to the new measured value. The gain of the integrator I A 112 is set to a value low enough to guarantee stability.

[203] Included in the implementation is an Overload Limit 2232 to prevent excessive q axis torque current under severe transient overloads. For amplitudes of the q axis error current Ai q greater than an error limit, the error current is amplified by an amount KG =2 before going to the load compensator 820. The output of the KG gain block 2234 is thus given by:

>-G = ^G ^i-q ~ imit) > imit

= 0 - himit≤ ≤ himit (52) >-G = ^G ^i-q + himit) i q < ~ himit

where ic is the output of the KG block and mit is the error limit.

[204] This extra gain could cause instability when the speed controller is operating, i.e.

when not in current limit. Disabling this extra gain when the output of the integrator block 814 is in opposite polarity to the error current largely prevents this.

[205] The error current \i q is approximately equal to sinA9 X r / L where ΔΘ is the error in the controller applied flux angle θ '. The error limit hmit is set to K L X R /L where the constant KL corresponding to sinA9 is set typically to about 0.4.

[206] The motor controller described herein gives superior motor control performance in many areas compared with standard torque controllers. Features of this new controller include:

1) Same fast dynamic performance at all speeds, including zero.

2) Uses fundamental mode. No high frequency injection. Saliency is not required.

3) Lower bandwidth current sensing requirements then existing methods.

4) Low demands on the digital signal processor.

5) One sample (dead beat) response time to torque commands.

6) Insensitive to stator resistance variation, even at zero speed.

7) Provides damping to mechanical resonances. No need for anti-resonance filters on the torque command signal.

8) Low torque ripple giving smooth speed control and quiet operation.

9) Lower PWM carrier to output frequency ratios possible compared with PI current controllers.

10) Rapid response flux weakening allowing fast dynamic performance in flux weakened regions. 11) Precise, immediate values of speed, position and load torque are made available for the outer feedback loops. This allows the speed and position loops to operate without integrators and with no overshoot.

[207] It will be appreciated by persons skilled in the art that numerous variations and/or modifications may be made to the above-described embodiments, without departing from the broad general scope of the present disclosure. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive.




 
Previous Patent: LEARNING TOOL AND METHOD

Next Patent: A FOOT WASHER