ODesc 4.2 with 1.5kw BLDC motor, 1) can I use Studio, 2) my calcs are (in)correct..?

Hi Peeps,

starting a new thread as so much has changed since SimpleFOC using LC86H2160 stepper with DM860H on STM32F103C8T6, for open-source injection machine that it is no longer aplicable, IMHO…

after seeing/finding out that the stepper option lost too much torque at the higher speeds obliged by higher ratio reduction gearboxes (to inject fast enough so as not to go cold), worked out that the following items should give enough power, and an even torque at all rpm:
ODesc 4.2 56v, using with 48v 1.5kw PSU
(removed link as max 2 links, is easy to google!)

110BLF1.5-L, 1500rpm/25rps , 48v, 1.5kw
(removed link as max 2 links, from Robotdigg, again easy to google!)

and these going thru a 1:100 reduction gearbox to up the torque for plastic injection…

so, after a few days (with the no-load motor strapped to the desktop at home) have managed to get the odrivetool to run a calibration setup, and can move at low speeds (up to about 6rps) however going faster, or using position mode, gives me DC_BUS_OVER_CURRENT error, and cannot find much more reason from the v3.6 odrive docs, so trying to look outside this tool to find other ways of achieving this setup to work…

so came back here (as many searches of BLDC motors do!), and have noted a few things after re-reading some docs/forum posts:

  1. Can I use SimpleFOCStudio to fine tune what I have had to do 1 by 1 with ODrivetool…? My issue with ODrivetool is although I keep track of what I change, as I change stuff, every time have to go back thru FULL_CALIB, etc, and after doing this several hundred times thru CL I appreciate a GUI ever more! ref Getting started with SimpleFOC and ODriveBoard

  2. from your motor/driver docs pages; I_max = V_dc/R refers to exactly what current measured…? I thought I was making the correct calculations when I see this 1.5kw motor, at 48V = 31.25A, using a PSU of 48v 1.5kw should match perfectly, and the ODesc 4.2 56v is capable of 70A cont, 120A max, so maybe doesn’t even need active cooling… (although this is contemplated in its final mounting place)

however, after doing the odrivetool calibration (which supposedly measures the phase resistance and inductance), it came up with 0.056ohms of resistance, which as per the formula above = 857A!!!:scream: I then measured with a multimeter the phase resistance and got 0.3ohms, so /2 (wye motor) = 0.15ohms, still this is 320A!!:person_facepalming:

am using at the moment the on-board hall encoders, and as the motor only has 4 pole pairs, 24CPR, I also read somewhere that very low resolution encoder data can make the motor lose position at higher speeds, and then it can do strange stuff, like over compensate and give these types of errors (also was getting a regen error, but that no longer appears)…

so, in an intention that this post doesn’t go on as long as my last thread, will the use of Studio (better) tuning software help, or are my calcs so out of whack (and if so why!) that this setup will never get to 25rps (and full torque!), or will changing to a better encoder fix these issues…? in the case of second and third questions, any ideas for such a power hungry setup, and ATM have a 11mm axle “stub” on the back end of the 19mm axle, where 8 pole ring magnet is placed now, I can take this off and put a thru-bore encoder instead, or even attach an external shaft encoder, but what type of minimum precision CPR do I need…? for my use-case, I have calculated that this setup would inject about 1cm3 of plastic with (just about) 1 complete rotation of the motor, so having cpr of 24, I do not need to inject down to 0.04cm3 of plastic (injecting min 5g, max 50g at once), that is why I did not think the encoder would be a problem for me (at least for injection positioning!), but if this IS an encoder issue, to reach 1500rpm/ 25rps, what res do I need min?

Again, last time appreciated all comments, I KNOW I do not resume at all, and hope some of you may be able to sift the nuggets from the crap and help me detail the important info so this may at a later date also be useful to others!!

thanks!
Andy
:slight_smile:

1 Like

When dealing with BLDC motors, Ohm’s Law (I = V/R) doesn’t tell the whole story. The motor isn’t just a resistor, it also acts as a generator when spinning, producing a back EMF (E) proportional to its angular velocity (ω). So the actual voltage across the winding becomes:

V = E + IR + L dI/dt

Where:

  • V = voltage applied by the driver
  • E = kω (back-EMF proportional to angular velocity)
  • R = phase resistance
  • L = phase inductance
  • dI/dt = rate of change of current

This equation shows that current depends not just on applied voltage and resistance, but also on angular velocity (via E) and how quickly current is changing (via L di/dt). So at low speeds, E is small, and more of V goes into pushing current and thus torque (T=kI). At high speeds, E increases and limits how much current and torque you can get for the same voltage.

In real operation:

  • At low speeds, the driver applies just enough voltage (V - E) to get the required current, it’s not dumping the full 48 V.
  • That V - E difference is what drives current, which in turn produces torque.
  • As speed increases, E increases, and the controller has to increase V to maintain the same torque (current).

If the controller dumps the whole 48V across the winding, the PSU would be basically short out so it would probably shut down and lots off heat would be generated in the motor, Depending on the reaction time of the PSU, the motor windings would burn out.

Hopefully, this is part of the answer to your questions.

Stijn

Hi Stijn,

Really appreciate the quick reply, I will need some time to take on board your comments as unfortunately understand about a 1/4 of the terminology, so need to learn up a bit to understand exactly what those numbers mean to my use case/motor/driver, and how I can introduce them in the formula provided to get some meaningful answer to my issue! Please be patient as am already pretty busy, although if you could point me to some particular sector of learning/web that would help me advance, all advice is gratefully accepted!

I think I need to do at least a minimal course on the internal workings of FOC and why the voltage and current (maximums?) stated on motor and PSU are not really the same as the voltage and current that go thru the windings…? Somewhere else also saw that can have 50A going thru windings whilst pulling 5A from the PSU, so that made no sense to me (ATM), although it is clear that if what goes thru the windings comes from the controller and the controller can’t put thru 320A (as max is 120A), then it is clear this is an issue that will give an error, but I don’t yet understand why (or the “whole story” about integrating back EMF (28.2V/kRPM for this motor), or why the measured resistance is 0.15ohms, but odrivetool says 0.056ohms, and have no idea how to check the inductance (yet), so if odrive says 0.000127 (what units go here.?), & as I have seen that resistance calc’d is 3x off measured, how can I be sure what real value is, or which value, my measurement or odrivetool, is more valid :person_shrugging::person_facepalming:

But I am self taught in all areas, so have confidence that given time will learn the necessary :wink:
Will get back in a few (:crossed_fingers:) days!

Cheers!
Andy
:slight_smile: