I have a (probably basic) question about BLDC motors:

Motor speed is supposedly given by kV * battery voltage. But the ESC determines the motor RPM through pulsing current to the different windings, right?

Is kV*voltage just the max rpm the motor can run at? Or is a motor with too high kV very inefficient at RPM:s much lower than kV*voltage?

I'm confused, grateful for any kind of clarification!

Basically the copper fill is important. For the motor KV does not matter so much, as long as the same amount of copper is in the stator. Higher KV motors put more strain on the ESC since you push more Amps at a given torque output. As long as the ESC is beefy enough, you can use slightly higher KV motors and have less limits in possible RPM.

Great, thanks!

I think I misunderstood Kv as RPM at a given voltage. But it's rather what voltage will the motor generate when driven at a given RPM.

So if I interperet your reply correctly, a higher than optimal Kv motor will generate lower voltage (and higher current) when regeneratively breaking. But will it (given similar copper fill) have a comparable efficiency than a lower Kv motor at the same RPM?

The motor should be as efficient. However, more Amps create more heat in the ESC. You always need to look at the entire system.

Good point, thanks for pointing it out!

Isn't unloaded motor speed the product of applied motor voltage and the motor's KV?

There is no single "most effecient KV" for all cases. Yes, KV rating will affect the speed or torque. The higher the KV, the higher the RPM for a given voltage. The basic formula is RPM = KV x voltage

This gives you a convenient reference as to what motor to choose based on your application. For example, a car would likely benefit from a lower KV motor because you would need lots of torque rather than RPM to start pushing the vehicle from a standstill. Wheel RPM requirements will be relatively low even at 200 mph.

On the other side of the spectrum, you would need a higher KV motor for an airplane because the prop will needs lots of RPMs to create the thrust required. Of course, that will depend on the size of the prop. If you have a larger prop, chances are you would not need as much RPM but will need lots of torque to create the same amount of thrust. In a car, you may still use a higher KV motor but then you would need to use lots of reduction. Ideally, you would need to select KV and gearing in a way that would allow your motor to run the highest efficiency range of RPMs because each motor has its sweetest spot for efficiency.

Here is a simplified example.

Yep - the maximum motor power is only available at 50% efficiency (and half the no-load speed). Is that the power, torque, and current motor manufacturers call "Maximum" "Power", "Torque", and "Current"? Is VESC's reported "Motor current" at that 50% efficiency?

Simply speaking, since a controller is effectively an advanced buck converter, it's efficiency is somewhat an averaged static number assuming a certain pattern or patterns of use. Best designed/tuned controllers can be up to 95% efficient. Of course this is a reference number. Some patterns of use will be more efficient than others. For example, hard acceleration is never efficient and will pull the system efficiency number down. Controller is just one part of the equation though and, most of the time, it's the most efficient part of all. To understand the total efficiency of a drive, you would need to take into account lots of parameters all the way down to charger efficiency, battery phantom drain, self discharge. Best electric drive systems have the total lifecycle efficiency of around 70% with all things considered. This is still 3 times better than fuel cells for example and 5 times better than gas powered drives.

I understand. What I don't understand is what the claimed performance of these motors refers to - particularly with respect to your motor speed, torque, and power curve (which is independent of the controller). Nor do I understand what the VESC is reporting for "Motor current" or resistance ("Motor R") after it does it's auto-detection tests.

Motor current, R, L, etc. is not VESC specific. It's physics/electricity. Grab a book or take a college class if you want to learn about it.

The values of "Motor current, R, L, etc." are motor specific and determine how they should be used and what performance can be expected from them (i.e. put numbers on your performance chart). If you don't know what the manufacturer 's values (specifications) mean, you have no way of knowing how to use and compare their motors. The VESC hardware/software measures and reports some of the key values, but they're not useful either unless they're defined. Does that make sense? I know how to select and use this type of motor (https://www.maxongroup.com/medias/sys_master/root/8841181200414/EN-208.pdf), not those used by folks on this forum.

Reputable motor manufacturers provide specifications and test data for their motors. If you want to be sure the claimed performance is within the specs, you test it on a dyno.

As for the VESC, the code will attempt to use whatever motor you connect to the controller via the detection mechanism. It needs to know motor parameters to run a motor, so these parameters are not only useful but they are vital for getting a motor running well. The purpose of motor detection is not to determine a motor performance if that's what you are looking for.

The performance of a complete system is not determined by the motor only, you need to look at the complete picture. You would need to select your motor and other components based on your target use. Simply put, you would want your system running in the efficient range most of the time doing some useful work. It needs be built to handle peak demand for long term reliability.

"Reputable motor manufacturers provide specifications and test data for their motors. " can you please provide or direct me to examples of that?

"As for the VESC, the code will attempt to use whatever motor you connect to the controller via the detection mechanism. It needs to know motor parameters to run a motor, so these parameters are not only useful but they are vital for getting a motor running well." The "FOC Detection Result" shows values for "Motor current", "Motor R", and "Motor L" could you please provide precise definitions for those values?

Learn to use Google. It's a great research tool. I can't say a Chinese manufacturer QS is reputable or not but their motors are used in ebikes a lot. Here is just a quick on Amazon: https://www.amazon.com/QSMOTOR-Bicycle-Dropout-Brushelss-Permanent/dp/B0... They publish test data on their motors.

Same thing with resistance, inductance. You can find definitions in Wikipedia and sites alike. Motors phases have resistance and inductance. Any single motor out there that's using copper coils. it's electrical characteristics. VESC project did not invent these things. Resistance became a thing at the end of 18th century with the help of Georg Ohm and inductance effect was discovered by Joseph Henry and Michael Faraday a few years later. Those guys are the best authority on providing definitions.

"They publish test data on their motors." Thanks! I sent an email requesting that for the motor you linked to. Do you have test data for any of their motors?

Is VESC's reported "Motor R" motor terminal resistance, motor winding resistance, or 1/3 motor terminal resistance as some measurements suggest (https://www.vesc-project.com/node/736)? Is VESC's reported "Motor L" motor terminal inductance or motor winding inductance? What does the "Motor Current" reported by the VESC at the end of the identification test refer to (I know what current is).

VESC reports back phase resistance and inductance which would be 1/2 of the phase to phase inductance. You can verify you are getting good detection results by measuring the R and L with an LCR meter and dividing those by two and then comparing to the VESC detected values.

The Motor current reported by the detection procedure in VESC is more of a reference/suggestion and it tends to be pretty conservative. Your motor or battery current and many other parameters would need to be manually set taking into account the other aspects of your system such as the battery wiring and also target application, performance, etc. VESC detection cannot guess how what you will be doing with the whole thing.

"VESC reports back phase resistance and inductance which would be 1/2 of the phase to phase inductance. You can verify you are getting good detection results by measuring the R and L with an LCR meter and dividing those by two and then comparing to the VESC detected values. " That would correspond to the winding resistance and inductance for wye windings, are any of these types motors delta? If so, does it matter and/or does VESC compensate for or report any differences? FYI it would likely take either a milli-ohmeter (http://www.extech.com/categories/milliohm-microohm-meters/milliohm) to measure those low terminal resistances or a way to source and measure currents of sufficient magnitude to get accurate terminal voltage readings to enable its calculation via Ohms law (like the VESC does).

"The Motor current reported by the detection procedure in VESC is more of a reference/suggestion and it tends to be pretty conservative" How is it calculated/derived?

An LCR meter used at 100Khz is pretty accurate at measuring phase to phase resistance or inductance. I haven't really run any delta wound motors. It's my understanding that VESC can run them but they are not desirable compared to Wye that have better starting torque anyway. Some people have been rewinding deltas to Wye to run with VESC.

Looks like max current is calculated in this function during detection:

https://github.com/vedderb/bldc/blob/7f4c6f41f0ad946f06bd151533538d798ed...

"Looks like max current is calculated in this function during detection:

https://github.com/vedderb/bldc/blob/7f4c6f41f0ad946f06bd151533538d798ed..."

This video says that "Motor Current" (I) is calculated from the specified maximum motor power loss (P) and "Motor R" (R) as I = SQRT (P / R) + No load current? https://youtu.be/LPjsen0D2mE?t=809

Wouldn't that say that "Motor R" is terminal resistance rather than winding resistance?

Doesn't your linked software say that I = SQRT (P / 3 / R)?

According the link I sent you, it is:

*i_max = sqrtf(max_power_loss / *r);

The software, or rather the firmware, is not mine. It's the VESC firmware written by the owner of this website.

"*i_max = sqrtf(max_power_loss / *r);" So is *r" "Motor R", motor terminal resistance, or motor winding resistance?

It's normally referred to as "phase to phase resistance".

""*i_max = sqrtf(max_power_loss / *r)" and *r is phase to phase resistance, ""Motor Current" (I) is calculated from the specified maximum motor power loss (P) and "Motor R" (R) as I = SQRT (P / R)", and "VESC reports back phase resistance and inductance which would be 1/2 of the phase to phase inductance". So, I_max = "Motor Current" / sqrt (2)?

The answer to your question is exactly in this line of code:

https://github.com/vedderb/bldc/blob/7f4c6f41f0ad946f06bd151533538d798ed...

*i_max = sqrtf(max_power_loss / *r) is the formula there. I don't know why you are mixing inductance here and how you come up with another formula that doesn't make sense.

Resistance and inductance are not the same things.

i_max is a ballpark value that you almost always need to set manually after detection. Not sure why it even matters so much for you.

You said *r is phase to phase resistance, which is twice the phase resistance which you said is the reported "Motor R". So, "*I_max" = "Motor Current" / sqrt (2), right?

"i_max is a ballpark value that you almost always need to set manually after detection. Not sure why it even matters so much for you." I wasn't aware of that - thanks!

Yes, resistance reported by VESC is 1/2 of the phase to phase resistance. That is an average resistance per phase. It's not exactly the same on each phase.

Thank you!