586,052 active members*
3,935 visitors online*
Register for free
Login
Results 1 to 9 of 9
  1. #1
    Join Date
    May 2007
    Posts
    3

    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

  2. #2
    Join Date
    Apr 2005
    Posts
    18
    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.

  3. #3
    Join Date
    Jul 2003
    Posts
    246
    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


  4. #4
    Join Date
    May 2007
    Posts
    3
    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?

  5. #5
    Join Date
    Jul 2003
    Posts
    246
    @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.)

  6. #6
    Join Date
    Jul 2005
    Posts
    668
    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!

  7. #7
    Join Date
    May 2007
    Posts
    3
    hi bunalmis, hi Madclicker,

    thanks for your response.

    @bunalmis:
    This is exactly what I thought and tried. The problem right now is:
    Quote 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?

  8. #8
    Join Date
    Jul 2005
    Posts
    668
    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!

  9. #9
    Join Date
    Jul 2003
    Posts
    246
    @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)

Similar Threads

  1. stepper motor
    By joey1117 in forum Community Club House
    Replies: 4
    Last Post: 02-24-2007, 01:59 PM
  2. servos motor controled by stepper motor driver?
    By mike10 in forum Servo Motors / Drives
    Replies: 1
    Last Post: 01-04-2005, 12:05 AM
  3. Which stepper motor should I buy
    By Graham S in forum FAQ of DIY CNC Machine Building
    Replies: 0
    Last Post: 08-27-2004, 11:58 AM
  4. stepper wiring and parameters
    By Ferenczyg in forum CNC Machine Related Electronics
    Replies: 13
    Last Post: 04-12-2004, 06:14 PM
  5. stepper motor help
    By muzleldr in forum CNC Machine Related Electronics
    Replies: 7
    Last Post: 06-10-2003, 08:15 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •