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.

Tuning InstaSPIN-MOTION Speed Controller



I am having some difficulty working with the Insta-SPIN lab 5e.  I am unable to increase the bandwidth high enough to hold the shaft when I try to turn it by hand without it becoming unstable.  I've tried both with the parameters identified by InstaSPIN and with the parameters I was given by the motor manufacturer and gotten the same result.  I have also tried this with Forced Angle turned off (as instructed in the lab) and turned off and gotten similar results.

Any suggestions on what I should look at?

I have also noticed that when I am turning the motor shaft by hand the current from my power supply is not nearly the rated current of the motor.  (only around 20%). 

  • Sean Hanley said:
     I am unable to increase the bandwidth high enough to hold the shaft when I try to turn it by hand without it becoming unstable

    If your hand disturbance causes it to become unstable it is TOO STIFF, reduce the bandwidth. If you are at the minimum, you can reduce the scale (hopefully you aren't already at 1.0) in user.h

    #define USER_SYSTEM_BANDWIDTH_SCALE    (1.0)

    Sean Hanley said:
     I have also tried this with Forced Angle turned off (as instructed in the lab) and turned off and gotten similar results.

    Always do zero speed testing with ForceAngle DISABLED.  Only use ForceAngle to start-up (and even then you don't HAVE to) and always turn if off for normal operation.

     

  • I started out with the bandwidth scale set to 1.0 and I was able to easily turn the motor shaft.  I then increased the bandwidth scale as the lab instructed.  As I increased the scale the shaft became more difficult to turn, as expected, but before it reached the point that I couldn't turn it the motor became unstable and jumpy.  

    I guess my question is: Is there something else I can adjust in InstaSPIN or is this likely just a limitation of this motor?

  • gMotorVars.SpinTAC.VelCtlBwScale

    takes in integer (coarse) + decimal (fine adjustment)

    to create a scaling value that ultimately sets gMotorVars.SpinTAC.VelCtlBw_radps as the actual bandwidth.

    You should be able to find a reasonable value that is not too soft yet not overly stiff where it becomes unstable.

    If you have found both ends of the spectrum, you can find a middle ground.

     

    Remember, you aren't really going to run at zero speed, you are just using this as a way to get a good first pass tuning.  You need to run your system over actual velocity, acceleration, and load testing to do final testing of the control tuning.

    So go ahead and take a good guess, then run the motor to some different speeds to test how it's behaving.

     

  • Sean,

    What you described is what I would expect for sensorless velocity control.  We recommend tuning at zero speed but checking at maximum speed to ensure that your system is stable across the entire operating range.  Chris' suggestion is the best path forward.