This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

InstaSPIN Motion position control accuracy

Hi,

I'm playing with the InstaSPIN Motion library to position my motor. I have an quadrature encoder with 2000 steps mounted on my motor. So the resolution is 8000 steps per revolution.

I think I have set up the position controler in the right way (as in example proj_lab13b). The position converter takes as target mechanical revolution. What I want is stop at a certain coordinate. That's why I calculate the number of revolutions from the current and target coordinate.

After starting the positioning process the motor stops with a coordinate error of maybe 20 to 40. This is not enough for me. I want a low one-digit error. Is there something to tune the position controller to lower the error?

Sebastian

  • Sebastian,

    The position control accuracy of InstaSPIN-MOTION is mostly based on the encoder accuracy.

    I think your approach is correct.  Calculate how many revolutions you need the motor to move in order to reach your target coordinate and provide that number of rotations to Position Move.

    I had a couple of questions:

    1. When you do this calculation are you providing the number of full rotations to gMotorVars.PosStepInt_MRev and the amount of partial rotation to gMotorVars.PosStepFrac_MRev?  In order for us to maintain accuracy we split full rotations and partial rotations into two variables.  

    2. What is the achievable accuracy of your system?  If you were to move the motor 0.045 deg (1/8000 [min encoder resolution] * 360 [degrees]) how much movement would that result in your coordinate terms?  This represents the minimum possible resolution of your system.

    3. Have you tuned the bandwidth of the SpinTAC Controller?  We see higher errors if the bandwidth hasn't been tuned.