This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

FOC Space Vector K Value

Hi i have a question but i do know not if this is the wright forum.

I have been documenting my foc algorithm based on the DMC libraries.. however  when i see the documentation of TI about the space vector. they do not write 2/3=k in from space current space vector.

is= k [ ia + ib*e() +  ic*e() ]

i have  seen that Ti makes K=1 but in other literature they write k=2/3 as normalization factor. so the question is why ti write 1 instead of 2/3.

regards

David

  • Hi David,

    I have created a new thread in the correct forum with your question.

  • david,

    so we are on the same page, can you please point me to the specific document and equation you are referencing? Thanks

  • Hi Chris,

    the Ti document is called "Sensorless Field Oriented Control of 3-Phase Permanent Magnet Synchronous Motors" by Akin. in page 5, they define the current space vector as 

    Is= [ ia +alfa*ib + alfa^2 *ic ]

    but inm some books as weel as thesis they difine current space vector as

    Is= 2/3 [ ia +alfa*ib + alfa^2 *ic ]

    where K=2/3, which keeps something called like power invariance.

    so the qiestion is why Ti does not take into account this K.

    regards

    David

  • Hi David,

    I agree that this is a confusing issue which trips up many motor control engineers.  The truth is, there are THREE different scale factors that are commonly used when representing the magnitude of the current space vector.  Let's start with the one that TI used in the paper you referenced:

    1.  K=1.  If you continue on to page 6 in the app. note, you will see that he is calculating the magnitude of the final current space vector, which he obtains by directly adding all three individual current space vectors together.  This is nothing more than simple vector addition which you probably learned how to do in high school.  For a steady-state 3-phase system, you find that the magnitude of this rotating space vector is exactly 3/2 larger than the phasor amplitude for each phase current.

    2.  K=2/3.  At the bottom of page 6, you will see that when he does the Clarke Transform, he actually does rescale the alpha and beta variables by 2/3 (although he doesn't say anything about it).  Obviously if the magnitude of the final current space vector is 3/2 larger than the amplitude of each phase current, and you want your d and q currents to have the same scaling as the stationary current waveforms, you need to multiply the entire expression by 2/3.  This is the amplitude invariant form of the dq0 transformation.  I think this is the most popular scaling.  In fact, this is what we use in most of our code.

    3.  K=sqrt(2/3)  This scaling is used for the power invariant form of the dq0 transformation.  It is not as popular, but it does have one advantage:  on the rotating reference frame, the electrical power can be calculated simply as Vd*Id + Vq*Iq.  So if your code calculates electrical input power, you might save a few lines of code by using this scale factor.

    Actually, it turns out that your FOC system will work fine with ANY scale factor, as long as you end up with unity gain when you run through both forward and reverse Clarke Transforms.  Your Id and Iq amplitudes (or any variable amplitudes on the rotating reference frame) may not correlate with anything real, but who cares...because you correct the amplitudes when you run through the reverse Clarke Transform.

    Hope that clears up some of the confusion.

    Dave

     

  • Thanks Dave, now everything  is very clear.

    regards

    David