Accuracy limit for FOC

Hi, i co-own small dev company in CZ and despite looking for info about BLDC motors and control in all the big places as TI, NXP or Trinamic, this project got me far better information than any other page and support ticket. So first, thank you for this awesome community.
I do have a question on theoretical limit for FOC accuracy. We are developing custom 2 axis gimbal board with very high accuracy and for temperature extended conditions. We do have awesome C developer and i will be making custom PCB.
We do have very little knowledge about driving BLDC motors tho.
We will be using Netzers DS-90 encoder so feedback is not an issue. The MCU is ST32H7 class. If i tune the motor properly (24 pole gimbal motor >10 Ohm), what is the accuracy limit for FOC position control?
Is it only dependent on the feedback hardware or is there something i am missing?
I am greatful for any answers or links to somewhere to dig deeper.

I will be limited about all the details as we do have NDA, but i can share the general idea about the progress and some final parameters.

Hey @JirikP , welcome to SimpleFOC!

Are you planning to use Arduino framework and SimpleFOC or developing your own version? The H7 dual cores can be a bit tricky to use with Arduino, so let me know if you want some pointers with that. I’m based in AT so it wouldn’t be hard to meet up :wink:

In terms of accuracy, the hardware setup you suggest will probably get you great accuracy. Here are some of the main factors which affect the accuracy of your position control:

  • motor cogging
  • Mechanical setup of your gimbal (e.g. stiffness, backlash, friction, etc)
  • PID tuning
  • sensor accuracy
  • Sensor latency
  • Control loop frequency
  • Control loop frequency stability
  • Control loop bandwidth (combination of sensor and control loop speed)
  • PWM resolution
  • power supply stability
  • Current sensing accuracy
  • Current sensing bandwidth
  • Algorithmic mathematical accuracy (e.g. resolution of lookup tables, etc)

There are different ways to look at the problem, and different “kinds” of accuracy you could optimize for.

Thanks for the fast answer. For now we are torn between STM32 Motor Control and SimpleFOC library. We are not on Arduino and we have done other projects on H7 mcu, so it is something we have libraries and devkits for. TBH i will leave the end decision to our programmer as i am a beginner. I am in charge of the whole project so i am trying to make the biggest call, which is if to go stepper with zero backlash gearbox or BLDC. Stepper we can do, but bldc works for us in other ways. I am trying to learn and find potencial roadblocks in the bldc path.
Mechanical stuff is not on us, we are developing the FW and board.

I have a branch, hopefully soon to be merged to the SimpleFOC dev branch, in which the STM32 PWM driver has been updated to remove most of the Arduino dependencies. This may make it easier for you to use SimpleFOC on H7 without needing Arduino framework, if that’s the route you decide to go :slight_smile:

Ok, that sound great. Can you please provide link to this branch so i can have our programmer to take a look at it?

At the moment it is in this fork: GitHub - runger1101001/Arduino-FOC at stm32_hal_pwm