Current-Sensing vs No-Current-Sensing

Hey there,

I’ve been playing around with the library a bit on some gimbal-motors. I’ve even made my own board, which is a first for me. I am now confident enough to where I want to consider actually making a “high power” project with it. So far, I have only used the mode without current sensing. From what I know, FOC originally uses current sensing to estimate the electric field, but because BLDCs have fixed magnets you can just sense the shaft angle and use that. What I am wondering is this: Do I need current sensing/What are the advantages/Am I leaving performance on the table by not using it?

As far as I understand it, DC current control only gives you more accurate torque control?
And FOC current sensing → low side sensing gives you better performance at “high speeds” (whatever high speeds means) as it can “compensate” for inductance/back-emf and all that.

For my next project I was considering using a motor, something like a 5010-360kv. I want to use it at speeds of up to 62.82 rad/s (10 rotation per second) (probably at 12-24V). I wanted to use it in position control mode and I don’t really care about controlling the torque, I just want it to get to a target location as fast as possible. I assume that DC current sensing will not give me any benefits here? How about FOC current sensing? Is there a tangible benefit?

(If there is a tangible benefit, does anyone know which MCU performs better an STM or an ESP?)

Thanks for any feedback in advance.

Hi @MCTheTrash,

I’m not an expert in FOC theory, but for my applications using SimpleFOC, the biggest advantage of having current sensing is that you get “true” torque control. If you use voltage mode in SimpleFOC, you control the torque by varying the average voltage seen by the motor via the PWM signals controller current flow to the MOSFETs. So if you input 1 volt, the maximum current the motor is limited to is 1/R, where R is the line to line resistance of your motor. Since torque is proportional to current, you’ve now limited current (great). However, motor peak speed is also proportional to the applied voltage, so your motor is speed limited to 1 volt * motor KV constant. With current sensing, you can de-couple this current/voltage dependency, allowing you have the motor run at any speed (not really true due to friction losses) while limiting maximum torque to whatever you want.

For position control, you will probably be OK without current sensing, but it really depends on what you want to do.

Thanks for the response. I’m not sure if I am getting this right, but since there is a compensation in the SimpleFOC library for the speed, when configuring the motor with the KV-Rating, I think the speed is already de-coupled from the voltage. When using the library without the KV-Rating, the speed in torque control mode is proportional to the torque. Whereas, if you provide the KV-Rating, the speed is almost at max speed even with a very low torque (voltage) set.
But I guess I am not losing any performance in terms of max power output/better position tracking then, from just using Voltage instead of FOC Torque Control?