What is needed to characterize an AC servo motor? Test and Measurement Question.

Thread Starter

mcardoso

Joined May 19, 2020
226
I know that many manufacturers keep this information somewhat closely guarded, but let's say I pick up any old AC servo from eBay. Ignoring the encoder, how would I go about measuring the electrical parameters needed to run it on a generic servo drive 3rd party AC servo drive which allows manual entry of motor data? Some of this info is easy to find, but some very much not so. I've always resorted to begging for this data, and I can usually get it, but I've never considered actually trying to measure it. I've bolded the items I find hard to locate and would be good to know how to measure. This is a 3 phase synchronous permanent magnet AC servo motor with AC sinusoidal or trapezoidal commutation.

From my servo drives, here is the list of required data to run a motor:

  • Rated Power (W) <- Usually advertised
  • Torque Constant (N*m/A_rms)
  • Rated Torque (N*m) <- Usually advertised
  • Peak Torque (N*m) <- Usually advertised
  • Inertia (Kg*m^2)
  • Poles Per Revolution (n)
  • Winding Resistance (Ohms)
  • Winding Inductance (H)
  • Inductive Time Constant (ms)
  • Rated Voltage (Volts) <- Usually advertised
  • Rated Speed (RPM) <- Usually advertised
  • Maximum Speed (RPM) <- Usually advertised
  • Continuous Current (A) <- Sometimes advertised
  • Peak Current (A) <- Sometimes advertised
  • Damping Coefficient (N*m/(Rad/s))
  • Voltage Constant (V_rms/k_RPM)
  • Overload Limit (%) <- 300% seems typical
  • Max Acceleration (Rev/s^2)
  • Thermal Model Parameters: <- I'll usually copy from similarly sized and shaped motors with known values
    • Rth-we (C/W)
    • Cth-we (W*s/C)
    • Rth-wa (C/W)
    • Cth-wa (W*s/C)
  • Flux Saturation Curve (% Nominal Inductance from 1/8 to full speed in 8 steps) <-Small motors are usually 1.0 for all values
  • Commutation Angle (Electrical degrees) <-measure Back EMF with an Oscope while running the motor slowly and following the encoder signals
 
Last edited:

MaxHeadRoom

Joined Jul 18, 2013
28,619
What do y9ou mean by 'Generic servo drive'?
Also is the motor intended for AC or BLDC commutation?
The motors are identical, just the method and means of commutation is different.
The poles/rev is easy, just short the three leads give it a 1 turn spin and count the 'bumps'!
 

Thread Starter

mcardoso

Joined May 19, 2020
226
What do y9ou mean by 'Generic servo drive'?
Also is the motor intended for AC or BLDC commutation?
The motors are identical, just the method and means of commutation is different.
The poles/rev is easy, just short the three leads give it a 1 turn spin and count the 'bumps'!
These would be industrial AC commutation PM servo motors.

Generic servo drive meaning any 3rd party drive which allows you to enter motor data, rather than forcing you to only select from a preprogrammed list of motors supported with the drive. My go-to is the Allen Bradley Ultra 3000. Supports a variety of encoder feedback options as well as motor data entry exposed to the user.

Poles was definitely the easy one. Counting periods of the Back EMF in one revolution would be a good way too. The rest get harder.
 

MaxHeadRoom

Joined Jul 18, 2013
28,619
All the mix-and-matching I did was with BLDC motors and Very simple torque (transconductance) drives, very few parameters to worry about as the loop was closed in the control.
The only feed back to the drive was the commutation tracks on the motor encoder.
 

Thread Starter

mcardoso

Joined May 19, 2020
226
Yeah, what I am usually trying to accomplish is full position control in the drive with commutation tracks or high resolution performance encoders (serial, Hiperface, Hiperface DSL, sin/cos, etc.). The drive requires nothing less than a fully complete motor model and getting that data can be tricky. Some data is in manuals, but I have yet to find a manufacturer that publishes it all by default.
 

LowQCab

Joined Nov 6, 2012
4,026
Use a Stepper-Motor instead.

This all seems rather strange that You want precise, in-depth, Motor-Specifications,
and then want to use a "Generic-Servo-Drive" to control it.

This ain't "Rocket-Surgery".
Blast the Motor hard, if it starts to over-heat, then back off on the Current.
You'll probably need some form of PID feedback when using a Servo-Motor,
but most of the time it won't be needed with a Stepper-Motor.

A lot depends on exactly what You are trying to accomplish.
.
.
.
 

Thread Starter

mcardoso

Joined May 19, 2020
226
Use a Stepper-Motor instead.

This all seems rather strange that You want precise, in-depth, Motor-Specifications,
and then want to use a "Generic-Servo-Drive" to control it.

This ain't "Rocket-Surgery".
Blast the Motor hard, if it starts to over-heat, then back off on the Current.
You'll probably need some form of PID feedback when using a Servo-Motor,
but most of the time it won't be needed with a Stepper-Motor.

A lot depends on exactly what You are trying to accomplish.
.
.
.
Stepper motors are significantly simpler to use, however their application space doesn't overlap greatly with that of high end AC servos. The speed, flat torque curve, high resolution feedback, and extremely low inertia make AC servos perfect for highly dynamic systems. Steppers just don't function in these applications.

In my hobbies (industrial robotics, CNC machining, motion control, etc.) I often am coming across AC servo motors which I need to control. It is difficult to find matching drives for older equipment, and even if I can find it, a drive/cable/motor set for one axis could cost over $1000. I try to make do with what I have already, which are a number of Allen Bradley drives. Generally you are forced to run a particular servo motor with the matching drive from the same manufacturer, however some servo drives allow you to key in the data for anybody's motor. Getting that data is the hard part, and that was the point of this post. Hoping for a test and measurement perspective of motor characterization. An unfortunately no, with a SVPWM control algorithm, you can't just throw numbers at it and see what works. The motor model is a very precise thing that gives the desired control I am looking for. I could throw steppers on the robot, but then it would not function anywhere near how it was originally designed.

This is relevant to me right now since I bought an industrial robot for $400. If I were to try to run the motors on the original Panasonic drives, I'd need to scour up several thousand dollars of antique drives from eBay and somehow make them talk to my AB PLC. Or... scour up many thousand dollars in new motors designed to work with my drives and rewire the whole robot. Neither is feasible for my hobby uses. I got my last robot working exactly as I described above, Yaskawa motors with AB drives, but only because Yaskawa was kind enough to provide me the data.
 

MaxHeadRoom

Joined Jul 18, 2013
28,619
Incidentally, in robotic applications, the position encoder used on the positioning devices traditionally have always been absolute encoders, rather than the more common quadrature versions.
The principle reason for this has been that the machine does not require initial zeroing, as is normal when a quadrature version is used.
My decision for motor selection sizing has been based on the Torque required and the maximum RPM, with gearing taken into consideration.
Also one other engineering maxim parameter is to keep the motor to load inertia ratio below 10:1.
Incidentally, Kollmorgen used to have a graphical Motor sizing program which was helpful.
 

Thread Starter

mcardoso

Joined May 19, 2020
226
Incidentally, in robotic applications, the position encoder used on the positioning devices traditionally have always been absolute encoders, rather than the more common quadrature versions.
The principle reason for this has been that the machine does not require initial zeroing, as is normal when a quadrature version is used.
My decision for motor selection sizing has been based on the Torque required and the maximum RPM, with gearing taken into consideration.
Also one other engineering maxim parameter is to keep the motor to load inertia ratio below 10:1.
Incidentally, Kollmorgen used to have a graphical Motor sizing program which was helpful.
Yup! My motors have Tamagawa absolute multiturn battery backed serial encoders. I can't use them with my servo drives 1:1, but I think I have a way to get them running.

The robot manual has a nice calibration procedure (CALSET) and the robot has a label with exact angles of all the joints at this calibration position. Zero the encoders there and I'm good to go!

EDIT: Interestingly, my other robot, a large SCARA, has incremental encoders and optical homing switches. Always thought that was a bit funny.

image015.jpg

Image145.JPG
 

Thread Starter

mcardoso

Joined May 19, 2020
226
Voltage Constant: Reading some more into this, I found a paper that described backdriving the motor at an exact known speed (1000rpm) for instance and measuring the rms phase to phase voltage on the motor. Do this for all 3 and take an average. If the motor is wye wound and the drive requires single winding voltage constant, then you need to divide this measurement by sqrt(3).

This would be pretty easy to check on a known motor to verify the setup and then measure the motors I need.
 

Attachments

Thread Starter

mcardoso

Joined May 19, 2020
226
Motor Resistance: This is another easy one. Measure phase to phase for a delta motor, or divide that by sqrt(3) if a wye wound motor and the drive needs to know winding resistance.

Get fancy and you can do a 4-wire Kelvin resistance measurement.
 

Thread Starter

mcardoso

Joined May 19, 2020
226
Torque Constant: Again, this one was in the paper above. This one I'm dubious of, but it is easy to check. Supposedly using ideal physical equations for conversion of electrical to mechanical energy and a known voltage constant, you can calculate the torque constant using this formula.

1644501776025.png

Where Kt is the torque constant and Ke is the voltage constant.

Not sure if there needs to be any consideration given this is an AC motor, but likely if both Volts and Amps are ACrms, then it would be correct.

Using my last robotics project as an example, I got characteristics for a 400W servo motor. The voltage constant was documented as 32.21 V_rms/kRPM or 0.03221 V_rms/RPM. Using the above formula, I calculate a torque constant of 2.723 lb-in/A_rms. Convert the units and I get 0.308 N*m/A_rms. Published value was 0.533 N*m/A_rms.

This definitely got within the ballpark, but not within let's say 10% of the real answer. Not impressed yet.
 

Thread Starter

mcardoso

Joined May 19, 2020
226
Motor Inductance: Someone recommended to me on reddit a method of injecting a low voltage square wave to the motor windings. My understanding is that capacitance would tend to increase the voltage rise time, and inductance would tend to increase the voltage rise time. Insert a shunt resistor to the circuit and scope across that, you'd end up with a voltage measurement on the scope equivalent to the current passing through the windings. The driving circuitry should have a very sharp unloaded rise time.

Does this method make sense? What kind of signal generator would be appropriate? My understanding is that arbitrary waveform generators will automatically compensate for the increased inductance and won't show the increased current waveform rise time I am looking for.
 

Thread Starter

mcardoso

Joined May 19, 2020
226
Motor Inductive Time Constant: Can't remember for sure if you need this for the drives I have, but it can be calculated from the winding resistance (measured with a meter) and motor inductance (measured with a meter). Time Constant = L/R
 

Thread Starter

mcardoso

Joined May 19, 2020
226
Damping Coefficient: This is included in the motor model, but all 2500 motors I have to compare against have a entry of 0 in this column of the database. Guess it was unused.
 

Thread Starter

mcardoso

Joined May 19, 2020
226
Overload Limit: Looking into the database more, this seems to be the steady state limit, not the peak limit. 100% is used for all motors without forced cooling
 

Thread Starter

mcardoso

Joined May 19, 2020
226
For voltage constant, the constant value is NOT the rated RPM divided by the rated voltage.

For example, one motor has a rated speed of 5000rpm and a rated voltage of 230V, which might compute a voltage constant of (230/5000)*1000 = 46Vrms/kRPM, however the actual entry in the database for that motor's voltage constant is 19.07 Vrms/kRPM.

Similarly, that same motor has a rated torque of 0.29Nm and a rated current of 1.18A, so you'd figure it would be (0.29/1.18) = 0.246 Nm/Arms, however the actual database entry is 0.316 Nm/Arms.

So there is a bit more going on here.
 
Top