Thanks for the excellent explanation. I am thinking I should stop worrying about tuning and parameters as it's not as difficult as I'm making it out to be in my head.

Now vector control seems to be quite straight forward and simple to me but it's all a moot point without the rotor field angle isn't it?

The following equations are the most important part of the process and crucial to the working of the whole scheme and are troubling me:

1) im = im + (T/Tr)(id - im)

2) fs = (P/2).n + iq / (Tr.wb.im)

3) Angle = Angle + T.wb.fs

ISSUES:

1)The first issue is the fact that we need angle for id,iq and id,iq for the angle. The classic chicken and egg situation. So does taking initial id,iq as a random value say zero just work. Like do all three converge to the correct value in a few iterations in a closed loop fasion?

2) We have im in the denominator in the second term which will most probably be zero the first time we execute. Won't there be divide by zero problems or does a simple condition like " if im = 0, im = 0.000001" solve this?

BIGGEST ISSUE:

While I understand the above procedure conceptually, i.e. we are simply calculating the rotor field speed and then integrating it over time to get the position, what bothers me is that without knowing the initial position, it doesn't make any sense to me. I mean we will have an angle that will increment every cycle at the right rate but how can it be the actual rotor angle? I mean both equations 1 and 3 use initial values and increment them but we are taking random values/zero the first time this is done?

Do we directly start in vector control mode from zero speed or first give it a little push using a simple V/f rotating field?

This also got me curious as to how it's done in Permanent magnet motors. Do they use a simple incremental encoder, or an absolute encoder and does a magnetic north have to be physically aligned with the encoder???