measuring only two phases gives already the full picture of all three phase currents, remember Kirchhoff nodal point set.
The diagram that you have is not very clear, I think I have a better one:
The idea of FOC is to maintain the current vector (hence the stator's magnetic field) exactly at 90 degrees with respect to the rotor's permanent magnet's magnetic field. This maximizes torque and efficiency.
The d and q values represent exactly this current vector: when d == {commanded current} and q == 0, then we have reached 90 degrees with respect to the rotor.
You see that the {d,q} vector will be rotating with the rotor, and the phase should be kept constant. This is what the two PI regulators (in the picture they are called "filters") are working on. They produce another vector {d_command, q_command} that represents the drive
voltage angle and amplitude that is required to achieve the 90 degrees current at the commanded level. Note that this new vector is also rotating with the rotor.
Now you can see what all these transforms are doing:
- The {a, b} currents have 120 degrees between them, the Clarke transform makes a nice orthogonal vector out of them --> {alpha, beta}
- the Park transform converts the stator referenced {alpha, beta} into the rotating rotor coordinate system. This is a simple vector rotation, having given a shiny name
- similarly, the Inverse Park converts the calculated {d_command, q_command} back from the rotating to the stationary coordinate system. You guess it, this is again a vector rotation, just taking the negative phase as the angle to rotate.
- the SVPWM block takes the {alpha_command, beta_command} and calculates the three phase voltages that correspond to this vector phase and amplitude.
As you see, this algorithm needs to know the rotor phase with respect to the stator. This is normally done using any of these:
- sincos resolver
- absolute encoder
- incremental encoder
- sensorless algorithm taking the stator currents as input and applying these to an electrical model of the motor, in order to predict the rotor phase
The last two require some sort of startup mechanism, because both do not work from standstill (of course the encoder only once until the reference mark is hit). You can do this by adding hall sensors, or by using sort of stepper motor like startup.
Hope I was clear enough, anyway feel free to ask more.