CNCzone.com-The Largest Machinist Community on the net!



Home Page Mark Forums Read Today's Posts My Replies Classifieds Reviews Photo Gallery Web Links Share Files Advertise With Us Ad List
Go Back   CNCzone.com-The Largest Machinist Community on the net! > Electronics > General Electronics Discussion


General Electronics Discussion Discuss basic electronics, power supplies and anything else electronic related here.


This forum is sponsored by:

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 05-16-2007, 06:51 AM
 
Join Date: May 2007
Location: Switzerland
Posts: 3
fabsch is on a distinguished road
Unhappy Stepper motor parameters

Dear Community,

I am trying to identify the motor parameters of a NEMA23 stepping motor.
All I know according to the manufacturer is:

motor: HT23 - High-torque NEMA 23 size stepper motor
coil impedance: 1 ohms
coil inductance: 1.6 mH
coil current: 3 amps
coil voltage: 3 volts
step angle: 1.8 degrees

For my mathematical model, I do need more parameters, as known the basic mathematical equations of a stepper contain:

Km - the motor constant
J - the motor inertia
B - viscous friction

I would like to know if somebody knows how to identify or evaluate these parameters.

So far I measured the step response of the stepper (one step) and
tried to approximate the parameters with least square.
When using the least squares method the algorithm always gets stuck on a parameter set, which approximates the function very bad. It doesn't respect the oscillating after making the step, just approximates the first overshoot and afterwards returns to the average value of the oscillation.

It would be great if somebody would be able to help me.

Thanks a lot in advance.

fabsch
Reply With Quote

  #2   Ban this user!
Old 05-17-2007, 02:10 AM
 
Join Date: Apr 2005
Location: Australia
Posts: 18
erlyrisa is on a distinguished road

I don't know what motor constant means, but the other factors can be 'evaluated' easily....

inertia...

thier are a couple of methods for this, one requires pulling the rotor out and weighing it.
but the easier way...
-lock the motor with X amount volts in either half step or full step.
place a string around the axle and tie a wieght to it.
-when you start adding more wieghts, and finally the motor loses step... you can calculate the holding torque of the motor, from thier it's just a matter of transposing some formulas to get your impulse/inertia equations and values, for the specified current. (of course this changes depending on your power supply.... so some guestimation is involved (higher revs = more power = less torque)

viscous friction...

I presume this is the amount of friction the motor loses due to rotation (a total aerodynamic amount due to rotor rotation?)
-could be measured by rotating the motor with a drill, and measuring the current being used by the drill to rotate the stepper at high rev (you'll need a descent high rev drill)
-from thier you can calculate your work functions, for TOTAL friction at the specified rev. (if you take multilple readings at different revs, you should be able to calculate the 'Viscisutiy' too)

--hope this helps... -guessing is easier though.

,,must be a hell of an algortihm.... are you getting the algorithm to guess where the stepper will stop? -without feedback/encoding?

--I would love to know how you go, I too am looking to do 'better stepping' via logic and current control , but I have noticed that it has already been done before, just on a smaller scale (cdrom drives for example), and medical instrument motor (Faulhaber for example) already have very complex logic drives to get super accuracy out of otherwise inncaurate mechanical motors, of course the motors are matched to the controller in all those cases.
Reply With Quote

  #3   Ban this user!
Old 05-17-2007, 03:03 AM
bunalmis's Avatar  
Join Date: Jul 2003
Location: Turkey
Posts: 246
bunalmis is on a distinguished road

So far I measured the step response of the stepper (one step) and
tried to approximate the parameters with least square.
When using the least squares method the algorithm always gets stuck on a parameter set, which approximates the function very bad. It doesn't respect the oscillating after making the step, just approximates the first overshoot and afterwards returns to the average value of the oscillation.
Mechanical side of step motor also has K parameter. (Not only J and B)

K is an spring constant. This spring is not a real spring. This is a imaginary magnetic spring between the rotor and stator teeth.

J and K produce second order vibrating sistem. You see this vibration at the following photo


Last edited by bunalmis; 05-17-2007 at 03:23 AM.
Reply With Quote

  #4   Ban this user!
Old 05-17-2007, 04:31 PM
 
Join Date: May 2007
Location: Switzerland
Posts: 3
fabsch is on a distinguished road

Hello erlyrisa and bunalmis,

thank you for your answer:
@erlyrisa: the problem is that the motor is fixed in another mechanical system, and is not that easy to remove. So I thought there might be a way to calculate Km (as in M=Km*i) and afterwards have it easier identifying the other two system dependent parameters.
I might try the torque measurement.

@bunalmis:
This is exactly what I am looking for. I do have the oscillation as shown in your pics. I do have the second order system and want to determine the parameters J and K.

Do you have any clue how to evaluate those. The direct approach over least-squares is not working for me. Has somebody done that already and knows in what aspects I do have to be careful, or what I might have been doing wrong when approaching the oscillation with least squares??? Is there another way of identifying the parameters?
Reply With Quote

  #5   Ban this user!
Old 05-17-2007, 05:34 PM
bunalmis's Avatar  
Join Date: Jul 2003
Location: Turkey
Posts: 246
bunalmis is on a distinguished road

@fabsch

This problem is clasical spring-mass-friction problem.

J, K and B are unknown parameters of our stepper motor.

Response of the second order mechanical systems for the impuls signal is same as my picture

My suggestion here.

-Use high resolution position sensor for the motor shaft.

-Give torque impulse to motor. (Give current pulse)

-(In the real time) Take periodical position samples and store it in the digital
media.

Now you have numerical test results and you can draw the graphics of this data.

Second order system response is M e^(-at)sin(wt+b) for the impuls signal.

(M and b can neglegtable and you can scale)

Now problem is "which a,b and w parameters give same graphics"?

You can solve this problem by computer.

a, b and w parameters are function of the J,K,B. If you know the abw you know the JKB.

(Sory for my English.)
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 05-18-2007, 12:11 AM
 
Join Date: Jul 2005
Location: us
Age: 56
Posts: 668
Madclicker is on a distinguished road

The motor constant, Km, is a modeling number used for servo motors. Steppers are not modelled like servos.

There are 2 separate pole sets to model a stepper. The second order spring-mass resonant pole pair that was mentioned before, and the L/R electrical pole from the electrical characteristics of the motor.

You can emperically derive the resonant pair from scope traces. I don't remember all the equations, and my undergrad books are packed, but I do remember all you need to derive a model is step overshoot and damped natural frequency. You get both from that trace.

I found a link that looks like it has all the equations from mithttp://web.mit.edu/2.151/www/Handout...econdOrder.pdf:
__________________
Steve
DO SOMETHING, EVEN IF IT'S WRONG!
Reply With Quote

  #7   Ban this user!
Old 05-18-2007, 06:40 AM
 
Join Date: May 2007
Location: Switzerland
Posts: 3
fabsch is on a distinguished road

hi bunalmis, hi Madclicker,

thanks for your response.

@bunalmis:
This is exactly what I thought and tried. The problem right now is:
Originally Posted by bunalmis
You can solve this problem by computer.
What algorithm, or what toolbox would you use. I tried the fmincon algorithm implemented in MATLAB.

@Madclicker:
Is it not possible to drive the stepper like a servo, and therefore the Km has to be also somehow included in the steppers properties... but in what way.
I do have three equations
2 electrical - i_a and i_b (on two phases)
1 mechanical - the mechanical equation of motion 2nd order
In those equations, obtained from a few papers (IEEE), Km is used.
Do you remember how you adjusted the parameters to the measured step response?
Reply With Quote

  #8   Ban this user!
Old 05-19-2007, 11:25 PM
 
Join Date: Jul 2005
Location: us
Age: 56
Posts: 668
Madclicker is on a distinguished road

I'm no stepper motor expert by any means, but I have been doing research into the system models.

I am sure that the system model for an armature controlled DC motor is much different than a conventional stepper. For one thing, a DC motor is modelled as a second order system, and a stepper is a 3rd order system.

The second order model for a DC motor includes no resonant pole...in fact one of the poles is a pure integrator at the origin (s-plane) and is the reason a servo has no steady state velocity error to a step input.

From everything I've been able to find, a stepper has a 3rd order transfer function. There is the L/R single electrical pole and a resonant 2nd order mechanical pole pair. The electrical pole is what rolls off torque with speed. The mechanical resonant pair is what causes the MBR problem.

To model a resonant pole pair all you need is 3 parameters:

1. The damping factor
2. The natural frequency
3. The open loop system gain

As I said before I don't have access to my undergrad texts. I have to move again soon, and just can't drag them out. I used to be able to derive these equations in my sleep, but that was a while ago.

I do remember that you can get the damping factor from just the PO (percent overshoot). I got this from wiki:

In control theory, the percentage overshoot is the maximum value minus the step value divided by the step value. In the case of the unit step, the overshoot is just the maximum value of the step response minus one. For a 2nd-order system, step input, the approximate PO=-ln(damping ratio). A better approximation is PO=-0.044-0.33757*ln(damping ratio).

I don't know if it's right or not. They didn't explain squat. I don't trust wiki defs much.

I do know that for a very lightly damped system like a stepper, the damped natural frequency is a good approximation for the undamped natural frequency.

This paper says the damping factor is about .03, which is very low.

Stepper Dynamics

This is a very interesting problem; Wish I had more time to devote.
__________________
Steve
DO SOMETHING, EVEN IF IT'S WRONG!
Reply With Quote

  #9   Ban this user!
Old 05-20-2007, 03:47 AM
bunalmis's Avatar  
Join Date: Jul 2003
Location: Turkey
Posts: 246
bunalmis is on a distinguished road

@fabsch ?
What algorithm, or what toolbox would you use. I tried the fmincon algorithm implemented in MATLAB.?
Stepper motor is a nonlinear systems. Normaly we can't speak from the transfer function. Because L varying by position. Therefore stepper motors time variying systems.

But if we accept stepper motor is linear system and if we neglect the R/L pole

we can thing only J, K and B.

Following program will give an idea for you. (You remember we have experimental test result.)

err=0: old_err=1E6: n=1: m=1

for J=0 to Jmax step .01
for K=0 to Kmax step .01
for B=0 to Bmax step .01

p=math_model() ' impuls responce of mathematical model
y=storaged_data[n] ' (You must select a good windows for experimentel results)
err=err+ abs(p-y) ' Integral of absolute value of error
n=n+1

next B

if err<=old_err then
JJ[m]=J
KK[m]=K
BB[m]=B
m=m+1
old_err=err
endif
err=0
n=0

next K
next J

for i=1 to m
print JJ[m], KK[m], BB[m] ; print best values.
next m

Computer try all posibble JKB values and find the best values.

Suggested method is too bad mathematical method. But it work.

(Program may work few hours or one days for selected Jmax, Kmax, Bmax)
Reply With Quote

Reply




Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
stepper motor joey1117 CNCzone Club House 4 02-24-2007 06:59 AM
servos motor controled by stepper motor driver? mike10 Servo Motors and Drives 1 01-03-2005 05:05 PM
Which stepper motor should I buy Graham S FAQ of CNC Machine building 0 08-27-2004 05:58 AM
stepper wiring and parameters Ferenczyg General Electronics Discussion 13 04-12-2004 12:14 PM
stepper motor help muzleldr General Electronics Discussion 7 06-10-2003 02:15 PM




All times are GMT -5. The time now is 08:50 PM.





Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO
Template-Modifications by TMS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361