ODrive has been working great for our project and I plan to do some bandwidth analysis of our system in terms of current, velocity, and position. Similar topic to this discussion.
I have a few question about the control frequency of ODrive.
As mentioned in the documentation, the ODrive control architecture is a cascaded structure, (inner->outer loops: current, velocity, and position). From this discussion and this post, it seems the innermost current control loop is running at 8kHz. Although @madcowswe mentioned that all three loops are running at 8kHz, it is little difficult for me to believe outer loops running at the same frequency as the inner loop, as @raggot pointed out in his post. Has anyone tested or can anyone confirm that all three loops running at 8kHz?
A follow-up question. In odrv0,axis0.motor.config.current_control_bandwidth, we can change the current control bandwidth and it has a default value of 1000Hz. If I leave it as default, does that mean all three loops on my controller is running at 1kHz? Similar if I change it to 2000Hz, will all loops running at 2kHz?
Also, there are audible high frequency noise when I increased the current control bandwidth beyond 1000Hz. Has anyone else experienced this issue? Maybe it’s a gain problem, since I changed the current controller gains?
Any comment, suggestion, and opinion are welcome!