Thursday, 6 March 2014

How to estimate the settling time of the rotor of a stepper motor?


I'm trying to estimate how long I need my stepper's pulses to be to ensure I don't miss steps and assess how big the vibrations will be because of the ringing (i.e. how fast it can be, considering a fixed end-of-step precision requirement).


I've tried to start from: τ=Jd²θdt²

Where J is the total inertia (with load).


However, I think that for one step, the torque is τ=cos(θ)

And I don't know how to solve that... I can't take the small angles approximation, otherwise it never stabilizes.



Then how? I've looked everywhere for the equation of the time history of the position of the rotor for a single step, but never managed to find it. That's kind of the fundamentals though, right?



Answer



τ=Jd²Θdt²+FdΘdt+τL

ττL=JdΩdt+FΩ
˙Ω+FJΩ=τLτJ


Solve the differential equation, $\Omega\propto pulses/s$


edit: d²Θdt²+FJdΘdt+τLτnsin(Θel)J=0

$\Theta_{el}=\dfrac{4\Theta}{fullsetps}$ ; you can substitute $\Theta$


Inital condition: ${\tau_L-\tau_nsin(\Theta_{el_{initial}})}=0$ , in absence of load torque, the electic angle $\Theta_{el_{initial}}$ is zero, since no output torque is produced. This also means that rotor flux is alligned with stator flux.


At time t=0, the stator winding is switched so that $\Theta_{el}=\Theta_{el_{initial}} + \dfrac{\pi}{2}$, the stator flux is at 90deg in relation with rotor flux (if we ommit the static load torque, that brings the rotor at initial position different than 0deg )


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...