Running motors at > 600 Hz Electrical

I’ve been doing testing with a T-motor U8 Lite 150Kv and running the motor at 5760 rpm (= 150Kv * 48V * 0.8 max modulation). I recently realized this reaches an electrical frequency of 2016 Hz (= 5760rpm / 60s * 21 pole pairs), which is much greater than the 600 Hz limit, I’ve read about in other posts. Looking at the logs, there doesn’t appear to be any instability in the current controller.

Is the behavior expected? Am I unknowingly sacrificing performance somewhere? From my understanding, the 600Hz limit is hardware-associated and is not to be fixed until Odrive v4.

@Wetmelon do you have any insight into this?


I am working on a system with my Odrive, an encoder and a 1000 kv 6 pole pairs motor. I wanted to reach 200 rps (12000 rpm) but I am limited by the 600 Hz Odrive limit : the motor can’t reach over 120-130 rps which is logic since the 600 Hz limit is exceeded at 100 rps (6000 rpm).

Do you have an idea how to run at > 600 Hz ?

According to Sensorless and motor errors - #5 by Feygrove , there is something to do around bandwidth.

for my situation I was running under a constant known non changing load and tuned the controller to get as much as could out of it. where I was getting a reported error which was the current controller so I worked with those setting to find my balance. when going outside the specified setting on any controller you need to know what you are giving up. I damped the default current controller at the PI controller level after finding the best bandwidth setting I could find. This will get the PI setting as close to what the auto calculated values can do. for me Reducing the I value in the current reduced over shoot of the current and creating an under damped system which for me this was good. This over shoot was most likely the issue for me when getting to the upper limit. if you are needing a Dynamic system some over shoot in the current controller is good to reduce settling time or making the system more responsive.

In my post with wetmelon at the time the limit was about 600 Hz this is not a hard limit they left some room for safety margin and other design principals like picking a level of reactivity of the controller. this is why my damping of the current controller worked for me. it sound like they might be updating the controller to handle a higher switching frequency but I do not know what the new limit will be.

Recommendation Check what speed your encoder is rated for. I used sensorless because it can be better than an encoder in velocity application at high speeds. encoders have switching limit too and not all encoder are made equal.