Quick Question on 3 Phase BLDC Motor Control
-
I would like to begin creating a circuit and tweaking the firmware to fit the high-end motors I have. They are most likely going to be these: http://www.micromo.com/3056k048bk1838ie3-1024.html
Or those with a gearhead to get sufficient torque as I do not need 35,000 RPM.
If these are the motors I want to use, What should come first the circuit or the firmware? I am leading towards this route: Schematic then firmware then circuit.
Where would you recommend I begin?
Thank you in advance.
-
What are you trying to control them with?
What application necessitates $700 motors?
-
I already have them, I volunteer at my local science center that was founded (and still supported) by the Faulhaber Family, a German motor company. They donated $60,000+ of motors and gearheads. This type is just one of the kind I settled on that is available to me. My intention is to design a circuit board or circuit boards (with a more powerful processor, or several) based off of the duet Wi-Fi/Ethernet to Run a very precise CNC with them. From my current (and rather limited) understanding, these three phase brushless DC motors are actually AC motors with the alternating, or precision varying, current being delivered through PWM. The 3 channel magnetic encoder, simple hall effect sensors, should not be too difficult to program for.
An Electrical/Electronic Engineer that is part of our Makerspace and Maker group turned me into DigiKey for my supplies for this and OSHPark for circuit board manufacturing when I'm ready, and suggested reflow solder and a laser cut silk screen sheet to make applying the reflow solder much easier.
While researching BLDC Control, I discovered this: https://www.digikey.com/en/articles/techzone/2013/mar/an-introduction-to-brushless-dc-motor-control
Which leads me to believe that as long as I keep it simple (as simple as I can without safety or reliability being diminished) it really does not seem terribly difficult to get high precision with these motors. For the first prototype, I'm happy if it works. Dialing in the circuit and firmware will take time, but I'll do all the calculations to try to do this job once.
I went to a Haas Demo day (invite a bunch of people to their local headquarters and try to convince them to buy their stuff day)
And a well known company Renishaw was there with a CMM, or Coordinate Measuring Machine, not too dissimilar from the Delta Parallel Robot design. It got me thinking because they used belts and it was repeatable to 2 microns.
With such high end motors, I don't want to waste them, which is why every part I CNC Mill will have to be held to extremely tight tolerances, with our Haas VF2 CNC Mill (at school) I can consistently make parts to +/-0.0005" without being too obsessive, +/-0.0002" if I want to take a bit longer on setup. I'd expect these parts to be the least precision parts in the entire CNC.
I just found out about a crazy fast DLP printer http://newpro3d.com/ili-technology/
But I'm still deciding whether to do a cnc mill, router, DLP resin printer, CMM, or a try to attack the Stratasys PolyJet. I might just go with an FFF just to make the project a bit easier so it could help push development on BLDC for RepRapfirmware forward a bit quicker.
My original question was where should I begin my efforts, the firmware or schematic? I'm thinking schematic because the programming should be easier if I have an end goal, circuit is last I imagine.
-
As someone that has done BLDC motor controller design, I would recommend purchasing/obtaining an off the shelf controller. They are called servo drives.
To answer your question, the order is schematic -> PCB layout -> PCB fab -> firmware. But if unfamiliar with BLDC control, you have a long road ahead (like hundreds/thousands of hours) if you plan to do it all from scratch. For instance it looks like those motors are sensorless. Sensored motors are easier (but not trivial) to design controllers for - that's what is used in your Digikey link. Without sensors you either have to do Back EMF control or use the encoder.
BLDCs offer little in the way of advantages for 3D printers, relative to the significant increase in control complexity and motor cost. BLDCs excel at power density and efficiency, but these aren't concerns for 3D printers. Quadcopters yes, 3D printers no.
BTW looks like those motors peak at ~2N-cm, whereas a normal NEMA17 is about 40N-cm. So a 20:1 gearbox is needed to achieve typical 3D printer torques. But your motor's encoder is on the motor shaft side, so you'll need to model for the gearbox backlash in addition to all the BLDC control.
-
Thank you!
The gearheads are so precise, that the backlash (I mean this seriously) is not worth compensation for. If I build a cnc precise enough to have to worry about the backlash in these gearheads, then I built a Damn good system. The gear ratios available would give me much more torque than I need, note the rpm without a gearhead, I could go several hundred to one or on several over a thousand to one.
Stepper motors are flawed and limited due to their physical construction. What if I want to stop on a point that falls in between microsteps?
BLDC is anywhere around a 360° circle.
As for the sensorless, I am quite ignorant when it comes to motors and electronics. I thought a 3 stage (3 hall effect sensor) encoder was indeed a sensor. I expect they work nearly identical to
-
With a 12x3 "standard" leadscrew, 200 steps/rev motor and 1/16 microstepping you get 0.9um theoretical resolution. Why would you want to stop between microsteps?
-
Some things to consider:
Regarding backlash:
The gearheads I saw on that site have about 1 deg backlash. That's more than a full step from a 0.9deg/step stepper motor - and with microstepping the stepper would only improve. There's zero backlash gearboxes listed but they seem to top out at 10Ncm of torque.Regarding gear ratio:
Lets assume a fairly standard 12mm pulley. To do 200mm/sec (travel speeds), that's 5.3 r/sec or 318 RPM.The motors you linked to are rated at 8900 RPM at no load. So a 27:1 gear ratio maximum, and keep in mind that there is zero torque available at 8900RPM on that motor, since it is the no-load speed.
Regarding discretization (resolution):
While true that a BLDC motor can attempt to find any position in a 360deg circle, note that available torque is not constant through that circle. It varies with respect to rotor position. -
High speed motor controllers already exist for BLDC such as http://forums.reprap.org/read.php?1,661600
As I see it the reason why DC motors would be more suitable than steppers would be only two cases:
- to use cheap motors to make a very low cost printer, such as modern 2D inkjets with encoder strips.
- to make a very high speed machine, nothing wrong with wanting this, but the more pressing problem is extruding filament at very high speed, not moving the print head. I have 400 steps/rev motors 16t pulleys and can move at 1/16th with interpolation at 333mm/s and (should I chose to use it) 1/256 microstepping if I need very high accuracy/resolution. Do I yearn for more resolution, not really, maybe I would with 0.15mm nozzles?
-
Hmmmm it seems I have not done enough reading about this. I have thought about a PolyJet system that would hopefully benefit from similar motors, the torque available is a factor I hadn't thought too much about simply because of the style motor, I keep thinking that it is the same amount of torque available throughout the entire 360 degrees.
The overheads for that particular motor must not be the same precision as some of the motors we have at the lab which are held to an impressive tolerance.
I had the privilege of taking apart a Stratasys uPrint SE Extruder which used (what appeared to be) a Maxon HEAVILY geared BLDC, which I Googled the part number originally so I know that one is. They do use steppers, but they look like Nema 23 steppers.
So why do high end CNC machines, high precision robotic arms and fanuc delta robots use servos? Continuous Closed loop feedback. The CNC machines also use 3-Phase power….which I expect minimizes the lack of torque in a particular position...or they use more phases in the motor itself.
So would it be easier to simply just stick with stepper and go with higher voltage to reduce the overall power consumption and add the ability to use the motors in a controlled loop?
Also...WHAT ARE THESE MOTORS THAT I HAVE USEFUL FOR?! We have a decent amount of 3 phase BLDC Servos varying in size.
Electrical Engineering, Electronics Engineering, and applying and combining everything confuses me SO MUCH! Sometimes I wonder why I chose this field of study...
Thank you for helping me understand.
-
So why do high end CNC machines, high precision robotic arms and fanuc delta robots use servos? Continuous Closed loop feedback. The CNC machines also use 3-Phase power….which I expect minimizes the lack of torque in a particular position...or they use more phases in the motor itself.
CNC machines and high precision robotic arms use servos because they need more than ~0.1 horsepower, or their the power density (mechanical power/mass or volume) is a critical design parameter.
3 phase AC power is different from a 3 phase BLDC. 3 phase is industrial power. The benefit from 3 phase power is that you need far less copper for the same electrical power transmission. If you look at a utility pole, it'll have 3 (sometimes 4) wires on it. That's 3 phase power, or 3 phase power with a neutral. Things that require more than a couple kilowatts are generally 3 phase because the reduction in copper needed makes up for the complication of using 3 phase.
So would it be easier to simply just stick with stepper and go with higher voltage to reduce the overall power consumption and add the ability to use the motors in a controlled loop?
Why would a higher voltage reduce overall power consumption?
The reason people use higher voltages with steppers is to increase available high speed torque. The higher supply voltage is able to overcome the inductance/back-EMF of the motor.
Also…WHAT ARE THESE MOTORS THAT I HAVE USEFUL FOR?! We have a decent amount of 3 phase BLDC Servos varying in size.
Useful for very high RPM applications (fan, Dremel), also useful for applications where power to weight or power to volume is critical.
-
I didn't mean to say lower the overall power consuption by using higher voltage, I meant lower the amperage in the circuit, sometimes I hear a whine in my motors which drives me nuts, and I have heard that running the motors and heaters at higher voltages is just overall better by cutting down in heating times, thinner gauge wire, a smaller form factor.
I know a little (next to nothing, but I'm learning) about 3 phase power. That is why I said 3 phase power (which is what our Haas CNC machines operate off of) and a 3 phase servo motor.
What confuses me is that I was under the impression that a multi-phase servo motor technically operates off of alternating current (pulses) being delivered through varying voltages or at full voltage in short bursts through PID tuned PWM tuned by rotational error feedback which monitored the back emf.
Which I find confusing because how is that not a sensor? How is it a sensorless motor when it is using Hall Effect [Sensors] to measure. Google defines a sensor as "a device that detects or measures a physical property and records, indicates, or otherwise responds to it."
Is a lot of this counterintuitive or is it just me?
If what you are telling me is true, then this is what I need to be reading: https://www.digikey.com/en/articles/techzone/2013/jun/controlling-sensorless-bldc-motors-via-back-emf
Right?
We also have a few of these:http://www.micromo.com/4490h048bs.html
So what about the spindle motor in a CNC router where the force being applied across the shaft is not actually across the shaft, it is part of a drive system that…still required torque...hmm a $700 computer fan, a $700 motor in a Dremel, $2,800 in motors for a quad copter? I mean...this seems over-engineered for anything I am capable of, I'd like to be able to put some of these motors to good use.
So small robotic arms, or the end servos on the end of the robotic arm?
We have so many high torque, or high rpm two wire motors...it's a little ridiculous. I am learning a lot from trying to learn how to use them, schools near me are theoretical education. I need to learn by application or assosiation, which is why I am struggling with this.
I must sound like an ignorant child in comparison. I spend so much time reading and I still know nothing. I have indirect and at times direct access to the German Faulhaber Motor company, direct access to a Haas VF2 CNC Mill that I can personally get parts to within 0.0002 of an inch from tolerance and a 3 year educational license to Autodesk Inventor HSM Ultimate. Is it too much to ask for a custom built CNC machine? Haha
-
I didn't mean to say lower the overall power consuption by using higher voltage, I meant lower the amperage in the circuit, sometimes I hear a whine in my motors which drives me nuts, and I have heard that running the motors and heaters at higher voltages is just overall better by cutting down in heating times, thinner gauge wire, a smaller form factor.
A stepper motor's torque is proportional to current. Using a higher bus voltage with a stepper motor doesn't let you reduce current, at least not at low speeds. You might be able to reduce current a little at high speeds sicne the higher voltage lets you overcome the inductance of the motor. I can go into this further if needed.
What confuses me is that I was under the impression that a multi-phase servo motor technically operates off of alternating current (pulses) being delivered through varying voltages or at full voltage in short bursts through PID tuned PWM tuned by rotational error feedback which monitored the back emf.
A servo motor does have alternating current running through its windings, even a BLDC. But that current is not alternating at a fixed frequency like 60hz (which is what mains, or wall power is, at least here in the US). The frequency of the electricity running through a servo's windings varies as a function of shaft RPM. It is necessary to properly energize each winding in order to create the magnet force that rotates the shaft. Back EMF is one way of determining when and how to energize each winding. It is one of a few different ways to determine this. Other ways are hall effect sensors and shaft encoders.
Which I find confusing because how is that not a sensor? How is it a sensorless motor when it is using Hall Effect [Sensors] to measure. Google defines a sensor as "a device that detects or measures a physical property and records, indicates, or otherwise responds to it."
A "sensored" motor is one with hall effect sensors. The motor you linked to has an encoder instead of hall effect sensors, at least according to the datasheet. It is relatively simple to convert signals from hall effect sensors into proper winding energization. It is more difficult to convert the signal from a shaft encoder, as you need a lookup table. Back EMF is the most complicated of the 3, it is basically magic. (not really, but it is a little too much for this post).
Is a lot of this counterintuitive or is it just me? We have so many high torque, or high rpm two wire motors…it's a little ridiculous. I am learning a lot from trying to learn how to use them, schools near me are theoretical education. I need to learn by application or assosiation, which is why I am struggling with this.
I must sound like an ignorant child in comparison. I spend so much time reading and I still know nothing.
Counterintuitive? No, I don't think so. Relatively complicated? Yes. And that's why I said what I said in my first reply.
Don't get discouraged. This stuff is difficult for everyone, and takes time to learn and understand. I have a PhD in Mechanical Engineering with a focus in mechatronics. A PhD isn't necessary, but I spent some of my PhD time learning this stuff. The theory is important. Let the professors teach you the theory, then go out and fill in the blanks as needed. It isn't possible for a university to cover every possible topic in detail - it would take decades for a school to teach me everything about Mechanical Engineering to the same level of details that I understand motion control.
So what about the spindle motor in a CNC router where the force being applied across the shaft is not actually across the shaft, it is part of a drive system that…still required torque...hmm a $700 computer fan, a $700 motor in a Dremel, $2,800 in motors for a quad copter? I mean...this seems over-engineered for anything I am capable of, I'd like to be able to put some of these motors to good use.
Hence why I asked why you wanted to use these motors in the first place. It isn't a case of them being over-engineered for anything you're capable of, they're just over-engineered for 99% of applications in general. If they're free and you want to use them on a project, go for it! But as an engineer the proper applications for motors like those are pretty rare.
-
Oh, and I think that your username is a bit incorrect. You certainly do have skills, and I'd say you have the most important skill of all as an engineer - curiosity and the drive to ask questions and learn.
-
Fantastic discussion gentleman. I enjoyed reading this post and the thoughtful responses. I spent 1 year of my college time spent on electronics and computer repair. The information I learned was only the sugar in the cake. Without the remaining ingredients it only left me with basic electronics skills which in many cases is much more than the average person and I was able to take those skills along with automotive computer programming and apply it in years of custom building fuel injected hot rods and diagnosing them. Those years along with self taught fabrication led me to own a machine shop today. It’s hands on and yet I feel so lost in many ways with all these different motor applications. I can look at 4 photos of motors that look identical and everyone of them operates completely differently. How frustrating is that? .,And to further expand with hundreds of hours online studying I feel I barely grasp essential concepts. I too would love to delve into the use of bldc motors and I think that they do have some applications where they would be useful including direct drive spindle motors for various CNC operations. It’s been done, it’s being accomplished and even in 3D printing there are many using it for their x/y axis and yet very few discussions that make me comfortable in delving into experimentation. Almost as though it’s a secret recipe. Perhaps as much it is. I would like to utilize a bldc motor for a quick change mini mill, engraving spindle for a 3D printer project here but I fear I would delay completion of the project delving into learning what circuits, programming, and processes are required to successfully implement it besides I lack all the time necessary to experiment so not having a tried and true plug and play option is very discouraging. I agree that if you have the motors, they are free, and you have the time than why not experiment and see what you accomplish? And if so.., please share with the rest of us.