I know slip in induction motor determine the current and torque but the point I want to ask, when controlling with vector control it is said stator and rotor flux is always kept with 90 degrees apart but if stator and rotor is always kept at 90 degrees their speed should be same and it means no slip there. if no slip no torque exists. So there should be a speed difference between rotor and stator but how is that possible to keep 90 degrees between stator and rotor and in the same time having slip (speed difference between stator and rotor) ?
The slip is the difference between the mechanical speed of the rotor and the speed of the rotor's magnetic field. The speed of the rotor field and the stator field are always the same regardless of the mechanical speed of the rotor. That is true no matter how the motor is powered or controlled.
It is not true that the stator and rotor flux are always 90 degrees apart, the angle does not exceed 90 degrees, but it is less if the operating torque is less.
Rotor field frequency is not the same as rotor mechanical frequency (motor speed). The FOC algorithm has to estimate the position of the rotor's field by using stator currents, stator voltages, speed sensor (could use also encoderless algorithm to estimate speed) and the mathematical model of the induction motor.
Only at this point it can further inject/correct stator current so that torque component q-axis is 90 degrees of excitation component d-axis.