You are here

Autodetection algorithm

3 posts / 0 new
Last post
Last seen: 4 years 1 month ago
Joined: 2019-01-03 17:44
Posts: 1
Autodetection algorithm

So I'm trying to get a full understanding of BLDC motors and I keep running into how the BLDC tool's autodetection is a bit of a black box. Is it giving me the resistance and inductance of each coil per phase? How does it know how many coils there are per phase? I tried going through the VESC Tool source code, but it looks like it only passes the DetectMotorParam command to the board which does the calculations, so I can't see how it does it. Is there any documentation on what the actual process and algorithm used is? Is it passing current through each line-to-line pair in turn and averages it? Is it detecting phase resistance or line-to-line resistance?

As a specific example, I have a 90 KV motor that autodetects to around 133 mOhms, but when I measure the voltage across two leads as I push current through it (motor is fixed) I get a line-to-line resistance of about 400 mOhms. However, due to the motor being a Delta configuration, a line-to-line resistance of 400 mOhms means a phase resistance of 600 mOhms. The motor is a 12 coil, 3 phase motor, giving 4 coils per phase. If the coils are in series in each phase that means the VESC is saying the phase resistance is 533 mOhms. Now, if we assume that the VESC is off a little, as there is variation every time I autodetect, this lines up somewhat closely. However, it would be nice to confirm how the VESC is getting the resistance and inductance numbers, as well as the flux linkage. Is there anyway to get a hold of Vedder's original algorithm for detection?

Last seen: 2 days 10 hours ago
VESC BronzeVESC GoldVESC OriginalVESC Silver
Joined: 2016-12-27 20:19
Posts: 819

The source code is public, so you can dig into that.

Last seen: 2 years 3 months ago
Joined: 2020-09-16 22:55
Posts: 14

Good question!