I’m experiencing rather high current noise on my setup, which increases with speed (as I would expect). However, the noise is substantial, even at moderate speeds.
I don’t know why you’re doing all your math in rad/sec, that’s quite confusing lol. Are you talking about electrical radians / sec, or mechanical? All of the values we use (e.g. input_vel and vel_estimate) are in terms of turns/sec, or rev/sec, not radians.
600Hz * 21 pp = 12,600_{rpm} = 210_{rev/sec}
What you’re seeing is the current controller going somewhat unstable. In my experience, the AS5048A isn’t great at high speed. It’s a bit noisy, and some other nonlinearities hurt its performance quite a bit. Maybe you can try reducing or increasing the encoder.config.bandwidth to help?
Há, yeah, sorry about that… I’m a roboticist by nature and I do everything in rad/s where possible These are mechanical rad/s, of the motor rotor. For clarity:
turns2deg = 360 # One turn in deg
deg2rad = math.pi/180 # Degree to rad
turns2rad = turns2deg*deg2rad # Turns to rad
Thanks for the suggestion on encoder bandwidth; I haven’t tried that yet. Given that the iq-setpoint is very stable, I assume the commutation is getting messed up because the position isn’t quite right?
That’s the usual cause. In general, the voltage vector lagging or leading the optimal value will eventually cause it to go unstable. Phase lag due to high speeds, encoder noise, or (usually) fast acceleration becomes a problem.
Thanks again for the input. Yeah, that does make sense. I’ve now tried different values for both encoder.config.bandwidth and motor.config.current_control_bandwidth; decreasing both (to 500) and increasing both (to 3000) in every possible permutation. Although increasing the encoder’s bandwidth does seem to slightly reduce the noise at lower speeds, the instability remains. I don’t suspect there is anything I can do, electrically, to remedy this?
I see the AS5047P mentions high speed capability on its datasheet; do you reckon I’d have a better result with that?
Yep, should work fine… but the AS5047/AS5048 definitely seem to have more noise, and have a lower top speed, than the CUI AMT incremental encoders. I haven’t dug into the reason why yet. It could be propagation delay?