AN205345 Coordinate Transform in Motor Control.pdf

AN205345
Coordinate Transform in Motor Control
This application note describes the coordinate transform which with the Clarke, Park, Inverse Clarke and Inverse
Park transformation and describes the coordinate transform’s Theory, Block, Function, Flow, Sample and Parameter
in the ARM Inverter Platform.
Contents
1
Introduction.................................................................1
1.1
Purpose...............................................................1
1.2
Document Overview............................................1
2
Technical Background ................................................1
2.1
Overview .............................................................1
3
Clarke transform .........................................................2
3.1
Theory .................................................................2
1
Introduction
1.1
Purpose
3.2
Application .......................................................... 5
Park transform............................................................ 6
4.1
Theory................................................................. 6
4.2
Function Description ........................................... 8
5
Document History....................................................... 11
4
This application note describes the coordinate transform which with the Clarke, Park, Inverse Clarke and Inverse
Park transformation.
This application note describes the coordinate transform’s Theory, Block, Function, Flow, Sample and Parameter in
the ARM Inverter Platform.
1.2
Document Overview
The rest of document is organized as the following:
Chapter 2 explains the technical background.
Chapter 3 explains Clark Transform.
Chapter 4 explains Park Transform.
2
Technical Background
Why need use coordinate transform?
2.1
Overview
In motor control, the motor’s start, stop, and speed and so on, all of them need to change the motor magnetic torque,
the motor torque with armature current is described in the formulae:
DC motor:
AC motor:
Tୣ = C୘ ΦI.
(1)
Tୣ = C୘ ΦI cos φ
(2)
where Te is magnetic torque, CT is torque modulus, I is armature current, Φ is flux, φ is rotor power factor.
www.cypress.com
Document No. 002-05345 Rev. *A
1
Coordinate Transform in Motor Control
As DC motor, indirectly determine and control Φ and I to control motor torque. The flux and the current have direct
proportion with motor torque. Changes the current will change the motor torque. It’s very simply.
But as AC motor, the motor torque control not only need I and Φ, the φ is also important. The φ will change with the
rotor current frequency. The Φ come from stator current and rotor current, it will change along with the motor load
change, so AC motor in dynamic running, it’s controlled more difficult than DC motor.
AC motor should have the parameter relation like the DC motor.
Transvector Control could simulate AC motor into DC motor, and simply the control.
The base theory: Use the 3-phase AC motor rotating magnetic field transform into like DC motor 2-phase rotating
magnetic field, then control the 2-phase current to control the torque.
3
Clarke transform
Clarke transform ‘s theory
3.1
Theory
3.1.1
Clarke transform theory
In motor theory, balanced 3-phase AC motor have 3 fixed windings. Through 3-phase balanced AC current ia,ib,ic will
bring a rotating magnetic field Φ with the speed ω.
Figure 1. 3-phase Balanced AC Current
B
Figure 2. 2-phase Balance AC Current
β
ω
F
ib
ia
ω
iβ
F
iα
Fu
nc
α
v
oi
C
Figure 1 not only balanced 3-phase fixed windings could bring rotating magnetic field, 2-phase symmetry windings
(△phasic=90°) through 2-phase balance AC current iα, iβ, also could bring rotating magnetic field. Figure 2 when
balanced 3-phase fixed windings and 2-phase symmetry windings bring rotating magnetic field Φ value and speed
are equality, the 3-phase windings equivalent with 2-phase windings.
Clarke transform is converts balanced 3-phase (ia,ib,ic) into balanced 2-phase(iα,iβ).Figure3
Figure 3. 3-phase Transfer to 2-phase
a
b
c
Clark
e
α
β
Clarke transform must keep the power fixedness, in Figure 4,
ଵ
ଵ
i஑ = kଵ൫iୟ − iୠcos 60° − iୡcos 60° ൯= kଵ ቀiୟ − iୠ − iୡቁ
ଶ
ଶ
ቐ
√ଷ
√ଷ
iஒ = kଵ൫iୠsin 60° − iୡsin 60° ൯= kଵ ቀ iୠ − iୡቁ
ଶ
ଶ
Where iୟ, iୠ, iୡ is the 3-phase current i஑ , iஒ is 2-phase current, kଵis the balanced coefficient.
www.cypress.com
Document No. 002-05345 Rev. *A
(3)
2
Coordinate Transform in Motor Control
Figure 4. Current with 3-phase Transfer to 2-phase
β
b
Is
a α
Iα
c
Add a zero-axis value: i଴ = kଵk ଶ(iୟ + iୠ + iୡ)
(4)
Change the math formulae into motor application, have the matrix formulae
ଵ
ଵ
i஑
⎡1 − ଶ − ଶ ⎤ iୟ
iୟ
቎iஒ቏= kଵ ⎢0 √ଷ − √ଷ⎥൥iୠ൩= C୘ ൥iୠ൩
⎢
ଶ
ଶ⎥ i
iୡ
i଴
ୡ
⎣k ଶ k ଶ
kଶ ⎦
ଵ
(5)
ଵ
⎡1 − ଶ − ଶ ⎤
C୘ = kଵ ⎢0 √ଷ − √ଷ⎥
⎢
ଶ
ଶ⎥
⎣k ଶ k ଶ
kଶ ⎦
Where:
(6)
If the power fixedness, the formulae transform:
1
0
kଶ
⎡ ଵ
⎤
√ଷ
−
k ଶ⎥
C୘ ିଵ = kଵ ⎢
ଶ
ଶ
⎢
⎥
⎢ ଵ
⎥
√ଷ
−
−
k
ଶ
⎣ ଶ
⎦
ଶ
Then
(7)
1
0
kଶ 1 − ଵ − ଵ
⎡ ଵ
⎤⎡
ଶ
ଶ⎤
1 0
√ଷ
−
k ଶ⎥⎢
⎥= ൥0 1
√ଷ
√ଷ
C୘ ିଵC୘ = kଵଶ ⎢
ଶ
⎢ ଶ
⎥ 0
−
ଶ
ଶ⎥
⎢ ଵ
⎥⎢
√ଷ
0 0
kଶ ⎦
⎣− ଶ − ଶ k ଶ⎦⎣k ଶ k ଶ
kଶ =
Take k ଶ, kଵinto the C୘
ଵ
ଵ
√ଶ
,kଵ = ට
ଶ
0
0൩
1
(8)
ଷ
ଵ
⎡1 − ଶ − ଶ ⎤
⎥
ଶ⎢
C୘ = ට ⎢0 √ଷ − √ଷ⎥
ଷ
ଶ
ଶ
⎢ଵ
ଵ
ଵ ⎥
⎣√ଶ √ଶ
√ଶ ⎦
(9)
This formula is the Clarke transform matrix.
If take k ଶ, kଵinto the C୘ ିଵ
0
⎡1
√ଷ
ଶ⎢ ଵ
C୘ ିଵ = ට ⎢− ଶ
ଶ
ଷ
⎢ ଵ
√ଷ
⎣− ଶ − ଶ
www.cypress.com
ଵ
√ଶ⎤
ଵ⎥
(10)
√ଶ⎥
ଵ⎥
√ଶ⎦
Document No. 002-05345 Rev. *A
3
Coordinate Transform in Motor Control
In motor theory, the balanced 3-phase AC motor current have:
Take k ଶ =
ଵ
√ଶ
݅௔ = ‫ܫ‬sin(߱‫)ݐ‬
ቐ݅௕ = ‫ܫ‬sin(߱‫ݐ‬+ 2ߨ/3)
݅௖ = ‫ܫ‬sin(߱‫ݐ‬− 2ߨ/3)
(11)
ଶ
,kଵ = ට and formula (11) into formula (5)
ଷ
⎡1
⎢
i஑
2⎢
቎iஒ቏= ඨ ⎢0
3
i଴
⎢
⎢1
⎣√2
Here, if define i஑ = iୟ;
1
2
√3
2
1
−
√2
1
⎤
2⎥
‫ܫ‬sin(߱‫)ݐ‬
√3⎥
‫ܫ‬sin(߱‫ݐ‬+
2ߨ/3) ቏
቎
−
2⎥
⎥ ‫ܫ‬sin(߱‫ݐ‬− 2ߨ/3)
1 ⎥
√2 ⎦
−
The formula can transformed to
൝
iஒ =
i஑ = iୟ =
ଶ√ଷ୧ౘ
√ଷ୧౗
+
ଷ
ଷ
‫ܫ‬sin(߱‫)ݐ‬
(12)
= ‫ܫ‬sin(߱‫ݐ‬+ ߨ/2)
This transformation course use wave shown in Figure 5 below:
This formula is the Inverted Clarke transform matrix.
Figure 5. Current Wave with Clark Transformation Course
i
ib
ic
iβ iα
a
b
c
3.1.2
clarke
α
β
I n ve r t e d C l a r k e t r a n s f o r m t h e o r y
In motor theory, when have two current component vectors in the stationary α-β axis, through complementary inverse
transforms to get back to the 3-phase stationary A,B,C axis. This transformation uses the Inverse Clarke
transformation, Figure 6
Figure 6. 2-phase transfer to 3-phase
α
β
www.cypress.com
a
Inverted b
Clarke c
Document No. 002-05345 Rev. *A
4
Coordinate Transform in Motor Control
Through the Inverted Park matrix C୘ିଵ and the Figure 3-4, the Inverted Clarke transform formula:
݅௔ = ݅஑
൞݅௕ = (− ݅஑ + √3݅ஒ)/2
݅௖ = (− ݅஑ − √3݅ஒ)/2
3.2
Application
3.2.1
Function Description
(13)
Function Name: ClarkAmplitude
C file name: ClarkAmplitude.C, ClarkAmplitude.H
3.2.2
Function interface:
void ClarkAmplitude(volatile
_stDataInThreeAxis *stDataInThreeAxis, //Inputs: 3-axis system
volatile
_stDataInFixAxis *stDataInFixAxis //Outputs: fixed 2-axis system )
typedef struct
{
Q15_VAL32 a_Q15;// phase-a variable
Q15_VAL32 b_Q15;// phase-b variable
Q15_VAL32 c_Q15;// phase-c variable
}_stDataInThreeAxis;
_stDataInThreeAxis *stDataInThreeAxis
typedef struct
{
Q15_VAL32 alpha_Q15;// stationary d-axis variable
Q15_VAL32 beta_Q15;// stationary d-axis variable
}_stDataInFixAxis;
_stDataInFixAxis *stDataInFixAxis
Table 1. Input and Output of the Clark Transform Function
Item
Inputs
Name
Description
Format
a
phase-a of balanced 3- phase
Q15_VAL32
b
phase-b of balanced 3- phase
Q15_VAL32
c
phase-c of balanced 3- phase
Q15_VAL32
alpha
alpha - alpha of fixed 2- phase
Q15_VAL32
beta
alpha - beta of fixed 2- phase
Q15_VAL32
Outputs
www.cypress.com
Document No. 002-05345 Rev. *A
5
Coordinate Transform in Motor Control
3.2.3
Module usage
The following code is example for this module.
Main()
{
}
void example_Clarke()
{
stDataInThreeAxis.a_Q15=INa;//input phase-a
stDataInThreeAxis.b_Q15=INb;// input phase-b
ClarkAmplitude(&stDataInThreeAxis, pCurrentInFixAxis);// calculate clarke
OUTa=CurrentInFixAxis. alpha_Q15;//Output alpha
OUTb=CurrentInFixAxis. beta_Q15;//Output beta
}
4
Park transform
Park transform‘s theory
4.1
Theory
4.1.1
Park Transform theory
2-phase symmetry windings (△phasic=90° ) through 2-phase balance AC current iα,iβ, and keep the windings stop,
will bring rotating magnetic EMF F1 with speed ω. Figure 4-1.
2-phase symmetry windings (△phasic=90° ) through 2-phase balance DC current id,iq, and rotate windings at speed
ω, will bring rotating magnetic EMF F2, Figure 4-2.
If EMF F1=F2, stationary system 2-phase through AC current equivalent with rotating system 2-phase through DC
current.
Figure 7. Current with αβaxis
β
Figure 8. Current with d q axis
q
ω
iβ
ω
F
iα
iq
id
α
F
d
The Park transformation convert the stationary 2-phase (iα,iβ) system into rotating 2-phase (id,iq) system. Figure 9
Figure 9. Park Transform
α
β
θ
d
Park
q
Where the iα,iβ come from Clarke transform; and the θ come from the rotor is displaced from the direct axis of the
stator reference frame by the rotor angle θ. Because it can be seen that the angle between the real axis (x) of the
general reference frame and the real axis of the reference frame rotating with the rotor is θ,
www.cypress.com
Document No. 002-05345 Rev. *A
6
Coordinate Transform in Motor Control
Figure 10. Current Transform with Park
As shown in Figure 4-4,
iୢ = i஑ cos θ + iஒsin θ
൜
i୯ = − i஑ sin θ + iஒcos θ
(14)
Where iୢ, i୯ is the rotating 2-phase current, i஑ , iஒ is stationary 2-phase current, θ is the angle between iα and iβ.
Change the math formulae into motor application, have the matrix formulae:
Where:
iୢ
i஑
cos θ sin θ i஑
൤i ൨= ቂ
ቃ൤ ൨= C୔ ൤i ൨
− sin θ cos θ iஒ
୯
ஒ
(15)
cos θ sin θ
C୔ = ቂ
ቃ
− sin θ cos θ
(16)
This matrix convert the stationary 2-phase(α, β) system into rotating 2-phase(d, q) system, it’s called Park transform.
If the power fixedness, the formulae transform:
cos θ − sin θ
C୔ିଵ = ቂ
ቃ
sin θ cos θ
(17)
This matrix convert rotating 2-phase(d, q) system into stationary 2-phase(α, β) system, it’s called Inverted Park
transform. This transform course use wave shown in figure 11 below:
Figure 11. Current Wave with Park Transformation Course
iβ iα
id
α
β
θ
d
Park
q
iq
www.cypress.com
Document No. 002-05345 Rev. *A
7
Coordinate Transform in Motor Control
4.1.2
I n ve r t e d P a r k T r a n s f o r m t h e o r y
In motor theory, these are two current component vectors in the rotating d-q axis, through the complementary inverse
transformation to get back to the 2-phase stationary α-β axis. This transformation uses the Inverse Park Transform,
Figure 11.
Figure 12. Inverted Park Transform
d
q
θ
α
Inverted
Park
β
Through the Inverted Park matrix C୔ିଵ and the Figure 4-2, the Inverted Park formula:
i஑ = iୢcos θ − i୯sin θ
൜
iஒ = iୢsin θ + i୯cos θ
4.2
Function Description
4.2.1
Function Name: Park`
C file name: Park.C,
Function interface:
(20)
Park.H
void Park(_stDataInFixAxis *stDataInFixAxis, //fixed 2-axis system
_stDataInRotAxis *stDataInRotAxis //rotational 2-axis system)
typedef struct
{
Q15_VAL32 alpha_Q15;
Q15_VAL32 beta_Q15;
}_stDataInFixAxis;
_stDataInFixAxis *stDataInFixAxis
typedef struct
{
Q15_VAL32 d_Q15;
Q15_VAL32 q_Q15;
Q15_VAL32 theta_Q15;
}_stDataInRotAxis;
_stDataInRotAxis *stDataInRotAxis
www.cypress.com
Document No. 002-05345 Rev. *A
8
Coordinate Transform in Motor Control
Table 2. Input and Output of the Park Transform Function
Item
Inputs
Name
Description
Format
alpha
phase- alpha of fixed 2- phase
Q15_VAL32
beta
phase- beta of fixed 2- phase
Q15_VAL32
Theta
Phase angle between stationary
and rotating frame
Q15_VAL32
d
alpha - alpha of rotational 2-axis system
Q15_VAL32
q
alpha - beta of rotational 2-axis system
Q15_VAL32
Outputs
4.2.2
Module usage
The following code is example for this module.
Main()
{
}
void example_Park()
{
CurrentInFixAxis. alpha_Q15= INa;//Input alpha
CurrentInFixAxis. beta_Q15= INb;//Input beta
stDataInRotAxis. theta_Q15=Intheta;//input Phase angle
Park(&CurrentInFixAxis, stDataInRotAxis);
OUTa= stDataInRotAxis. d_Q15;
OUTb= stDataInRotAxis. q_Q15;
}
4.2.3
Function Name: ParkInv
C file name: ParkInv.C,
Function interface:
Park.H
void InvPark(_stDataInRotAxis *stDataInRotAxis, // rotating 2- phase system
_stDataInFixAxis *stDataInFixAxis // fixed 2- phase system)
typedef struct
{
Q15_VAL32 d_Q15;
Q15_VAL32 q_Q15;
Q15_VAL32 theta_Q15;
}_stDataInRotAxis;
_ stDataInRotAxis * stDataInRotAxis
typedef struct
{
Q15_VAL32 alpha_Q15;
Q15_VAL32 beta_Q15;
}_stDataInFixAxis;
_stDataInFixAxis *stDataInFixAxis
Table 3. Input and Output of the Inverted Park Transform Function
www.cypress.com
Document No. 002-05345 Rev. *A
9
Coordinate Transform in Motor Control
Item
Inputs
Name
Description
Format
d
alpha - d of rotating 2- phase
Q15_VAL32
q
alpha - q of rotating 2- phase
Q15_VAL32
Phase angle between stationary
θ
and rotating frame
Q15_VAL32
alpha
alpha - alpha of fixed 2- phase
Q15_VAL32
beta
alpha - beta of fixed 2- phase
Q15_VAL32
Outputs
4.2.4
Module usage
The following code is example for this module.
Main()
{
}
void example_ParkInv()
{
stDataInRotAxis.d_Q15=INd;//input phase-d
stDataInRotAxis.q_Q15=INq;// input phase-q
stDataInRotAxis.theta_Q15=Intheta;//input Phase angle
InvPark (&stDataInRotAxis, pCurrentInFixAxis);// calculate Inverte Park
OUTa=CurrentInFixAxis. alpha_Q15;//Output alpha
OUTb=CurrentInFixAxis. beta_Q15;//Output beta
}
www.cypress.com
Document No. 002-05345 Rev. *A
10
Coordinate Transform in Motor Control
5
Document History
Document Title: AN205345 - Coordinate Transform in Motor Control
Document Number: 002-05345
Revision
ECN
Orig. of
Change
Submission
Date
Description of Change
**
-
CCTA
03/24/2011
04/07/2011
06/13/2011
Initial Release
Correct some grammar error
Modified the format
*A
5045216
CCTA
01/06/2016
Migrated Spansion Application Note from MCU-AN-510106-E-12
to Cypress format
www.cypress.com
Document No. 002-05345 Rev. *A
11
Coordinate Transform in Motor Control
Worldwide Sales and Design Support
Cypress maintains a worldwide network of offices, solution centers, manufacturer’s representatives, and distributors. To find
the office closest to you, visit us at Cypress Locations.
PSoC® Solutions
Products
Automotive
cypress.com/go/automotive
psoc.cypress.com/solutions
Clocks & Buffers
cypress.com/go/clocks
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP
Interface
cypress.com/go/interface
Cypress Developer Community
Lighting & Power Control
cypress.com/go/powerpsoc
Memory
cypress.com/go/memory
PSoC
cypress.com/go/psoc
Touch Sensing
cypress.com/go/touch
USB Controllers
cypress.com/go/usb
Wireless/RF
cypress.com/go/wireless
Spansion Products
spansion.com/products
Community | Forums | Blogs | Video | Training
Technical Support
cypress.com/go/support
All other trademarks or registered trademarks referenced herein are the property of their respective owners.
Cypress Semiconductor
198 Champion Court
San Jose, CA 95134-1709
Phone
Fax
Website
: 408-943-2600
: 408-943-4730
: www.cypress.com
© Cypress Semiconductor Corporation, 2011-2016. The information contained herein is subject to change without notice. Cypress Semiconductor
Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any
license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control or
safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as
critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The
inclusion of Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies
Cypress against all charges.
This Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide
patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a
personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative
works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with a Cypress
integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source
Code except as specified above is prohibited without the express written permission of Cypress.
Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the
right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or
use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in life-support systems where a
malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress’ product in a life-support systems
application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges.
Use may be limited by and subject to the applicable Cypress software license agreement.
www.cypress.com
Document No. 002-05345 Rev. *A
12