Disclaimer: A colleague of mine pointed out that some might find the term “dummies” offensive. First and foremost—you're (probably) not a dummy. The reason I titled this “for dummies” is simply because this isn't an academic paper. My goal is to explain everything
in the simplest way possible, without diving into advanced mathematics or unnecessary complications.
In theory, anyone should be able to understand it – even so-called "dummies."
Now that we've got that out of the way – Let’s cut to the chase.
If you’ve made it to this article, you probably already know what Field-Oriented Control (FOC) is and how to use it. However, you may still be wondering why FOC matrices look the way they do. That’s exactly what we’re here to explore.
FOC changes the three-phase system into DC signals, allowing us to work with time invariant equations instead of dealing with complex differential equations. Let’s break it all down.
Clarke transformation
The first step in FOC is applying Clarke transformation, which converts the motor’s three phase (A, B, C) into a two-phase (𝛼,𝛽).
Clarke transformation is defined by the following matrix:
As I mentioned at the beginning of this article, I won’t be using advanced mathematics.
Think of a matrix simply as a structured way to represent a function – it’s just a neat and efficient way to organize calculations.
In functional form, the Clarke transformation can be expressed as:
If this isn’t entirely clear – don’t worry! I’ll always provide both representations: the matrix form and the function-based approach.
To better understand the mathematics behind the Clarke transformation, let’s start by visualizing the motor phases,
as shown in Fig. (a).
To convert each phase into 𝛼𝛽 plane we need to use trigonometric projection (a fancy term for basic trigo). The three-phases signals A, B and C can be represented as vectors, and projecting them onto the 𝛼𝛽 plane simply involves multiplying their magnitudes by cos𝜃
and sin 𝜃.
This concept is illustrated in more detail in Fig. (b).
Now that we understand how to perform trigonometric projection, we can apply it to phases A, B, and C. Since the motor phases are spaced 120°
As we can see, Eq. (1) and (4) are nearly identical – the only difference is the factor of
Now, the question is: where does this factor come from?
To understand this, let’s assume an amplitude of 1 and use sin𝜃 as the input. This leads us to the following derivation:
Applying Eq. (4) to Eq. (5) will result:
We will calculate each Eq. separately, starting with Eq. (6).
To solve Eq. (6), we need to know the following trigonometric identity:
Rewriting Eq. (6) using Eq. (8) will result:
Applying the same process to Eq. (7), and using Eq. (8) again, will result:
From Eq. (9) and (10) we can see that the amplitude of the input increases by a factor of
The shift from sin(𝜃) to cos(𝜃) in 𝛽-axis occurs because 𝛼-axis and 𝛽-axis are orthogonal.
We can observe that the Clarke transformation is amplitude-invariant, meaning the transformation does not alter the signal’s magnitude. I won’t go into detail in this article, but the transformation is not power-invariant (you can verify this on your own), although there is another version of the transformation that is power-invariant.
I must say that there is a third component in Clarke transformation, known as the zero sequence component:
From Eq. (11) we can see that each phase has the same donation to the 𝑧𝑒𝑟𝑜_𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒 component. However, explaining its mathematical origin would require delving into advanced mathematics. Lucky for you, we are talking about balanced system, and in
balanced system the 𝑧𝑒𝑟𝑜_𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒 is zero (𝑧𝑒𝑟𝑜_𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒 =0).
If your system is not balanced, you must use the donation of the 𝑧𝑒𝑟𝑜_𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒.
The full Clarke transformation matrix (also known as 𝛼𝛽0 transformation matrix) is:
Park transformation
Once we understand how to transition from a three-phase system to a two-phase representation, the next step is to align the 𝛼𝛽 frame with the motor’s electrical angle – commonly referred to as the commutation angle.
A motor consists of magnets and coils for each phase. When current flows through these coils, it generates a magnetic field that interacts with the magnets, creating forces of attraction and repulsion. This magnetic interaction is what drives the motor’s rotation.
To control the motor’s movement effectively, we must continuously adjust the current flowing through its phases.
To achieve this, we introduce a new reference frame that moves in sync with the motor’s magnetic field – the 𝑑𝑞-frame. In this frame, the d-axis aligns with the magnetic field of the magnets, while the q-axis corresponds to the rotating field.
For optimal torque generation, the rotating field should be positioned at a 90°
This is why the d-axis is referred to as the “direct” axis, and the q-axis as the “quadrature” axis.
Fig. (c) illustrates the relationship between the 𝛼𝛽-axes and the 𝑑𝑞-axes, using the commutation angle, which determines the direction of the magnetic field.
Just as we used trigonometric projection to derive the Clarke transformation matrix, we will follow the same approach to obtain the Park transformation matrix.
Just like in the Clarke transformation, the Park transformation also includes a third component, known as the zero-sequence component:
The reason why both 𝑧𝑒𝑟𝑜_𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒 are equal is that we simply rotated the reference frame.
𝛼𝛽0-axes are orthogonal, as are 𝑑𝑞0-axes. Consequently the 𝑧𝑒𝑟𝑜_𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒
component in the 𝛼𝛽 frame does not donate to either the d-axis or the q-axis.
Based on Eq. (14), Eq. (15), and the explanation above, the full Park transformation matrix (also known as 𝑑𝑞0 transformation matrix) is:
What’s next?
Next, we will apply a PID controller (or PI or P controller), followed by an inverse Park transformation to retrieve the αβ components after the closed-loop process. Then, we will perform an inverse Clarke transformation to determine the required motor phase commands. Finally, we will use space vector modulation to define “how” to command our bridges.
This article does not delve into PID control or space vector modulation. However, it provided you with the essential tools to independently derive the inverse Clarke and inverse Park transformation matrices.