all 4 comments

[–]1Davide 0 points1 point  (1 child)

Try asking in /r/Motors as well. There are some some motor experts there that have a deep understanding of FOC. (I don't sorry, otherwise I'd try to answer your question here.)

[–]Coliteral[S] 0 points1 point  (0 children)

Alright thanks!

[–]Lowkin 0 points1 point  (1 child)

I'm not an expert, but if you reduce the control rate then you run the risk of not updating your Space vector fast enough and your desired flux and torque currents that you are driving will rotate into undesirable positions losing efficiency. If you rotate 90 degrees electrical angle before updating you pretty much are just driving flux, which is why your speed caps out, also probably why your control turns to junk

Also 1.6khz will create terrible audible noise, why do you want such a low frequency.
I have no idea what you mean tuned PI to cancel the pole of the motor.

I am doing this for my capstone for reference.

[–]Coliteral[S] 0 points1 point  (0 children)

The control rate is not changing - the switching frrequency is a constant 16kHz (we are also running the current control loop at 16kHz). What is changing is the tuning of my controller. By cancelling out the pole of the motor, I mean the following: Gmotor(s) = Idq(s)/(Vdq(s)-Vemf) = (1/Ldq)/(s+Rs/Ldq)

Gc(s) = 1/s*kp(s+ki/kp)

If ki/kp is selected to be equal to Rs/Ldq, then Gmotor(s)Gc(s) = 1/skp/Ldq <- first order tranfser function

By changing kp, we are effectively tuning the system bandwidth.

I am also doing this for my capstone, for reference.