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 rotating direction

Other Parts Discussed in Thread: DRV8301, MOTORWARE

I am using an boostxl- drv8301 kit with a motor identified with instaspin with 8 pairs of poles, Rs 2.3 ohms, Ld, Lq = 0.220 mH, 24 V and works fine in one rotation direction  , but  not  in the reverse direction. If the  ​​SPEEDREF is negative, the motor stops. It can be due to incorrect motor parameters , speed pid values?

Thanks in advance
  • Does it do this when you start from 0 and command a negative speed?

    Or only when going positive to negative?

    What is acceleration setting?

    What do you mean Motor Stops? Is there a fault? Do you gave to reset anything or does the motor start working again?

    What power supply / current capability are you providing?

  • Thanks for your fast response. When Speed_ref_rpm takes a negative value, from cero or from a positive value, the motor stops running (cero speed). There is no error and entering a new positive value (to Speed_ref_rpm),the motor start to run. Max_Accel_rpm is set to 200 

    The power supply is a laboratory PSU 24 V 4 Amp.

    8015.ccsErr.tiff

  • your current gain values look completely strange.

    Please Options -- Attach your user.h file so I can inspect.

    Which proj_lab## are you running?

     

    We will solve it.....there is absolutely no issue with running +/- speeds with InstaSPIN-FOC.  It is one of its strengths!

  • Ignacio,

    How did you decide to set these values?  Many curious decisions...Let me go through the problem areas.
    As you do this please follow this post and spreadsheet as well

    #define USER_IQ_FULL_SCALE_FREQ_Hz        (100.0)

    This is very low, especially for a PM motor. Your active motor you show 8 pole pairs, that means when you set (100.0) you are saying your maximum speed will be < 100.0 * 120 / (8 * 2) < 750 RPM.

    Please correct this to 1.1 * MAX_RPM * 16 / 120.

    Your Rs / Ls suggests this is a much higher speed motor....

     

    #define USER_NUM_CTRL_TICKS_PER_SPEED_TICK  (15)
    #define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK   (15)

    the clock feeding these are at 10 kHz, so please set both of these to (10)

    #define USER_ZEROSPEEDLIMIT   (0.005)

    this is ok typically. What you may want to do is change it to

    #define USER_ZEROSPEEDLIMIT   (2.0 / USER_IQ_FULL_SCALE_FREQ_Hz)

    This way, even if you change USER_IQ_FULL_SCALE_FREQ_Hz, the limit will stay fixed to 2.0 (change this to what you need, but 1-3 Hz is typical).

     

    #define USER_MOTOR_Rs                   (1,47)

    This needs to be (1.47)....no commas allowed

     

    Something is a bit off on your ID values...please try again with the IQ_FREQ change I suggest....

     

    What can you tell me about your motor (Vbus, max RPM, full load current)?

  • Chris, 1.4 Ohms, that explains why I had to use RsRcalc ;). I entered the suggested changes and the motor stops with negative speed values.  I do not know the values ​​of the motor, except the number of pole pairs (8) and the voltage( 24V).

  • what did you set

    #define USER_IQ_FULL_SCALE_FREQ_Hz        ()

    what are the parameters now identified?

    attach your latest user.h and I'll try running on my side.

     

  • Chris:

    #define USER_IQ_FULL_SCALE_FREC_Hz  (800)

    I included the values ​​obtained and user.h.

    3157.ccsErr2.tiff2548.user.h

  • Try re-identifying with this one.

    Your Rs value was coming up as 1.5 ohm...but I noticed that your FULLSCALE V / I was less than 1.  Let's get thsi set to over 2 so Rs is less than full scale V / I.

    I changed your V to (34.0) and your I to (17.0) so this requirement is met.

    Not many low voltage / low current motors have an Rs this large.  Are you sure this is a 24V 8 pole motor?

     

    2548.user.h
  • Cris, thanks a lot for your support. I include in the file the results obtained with the re-identification, but still the motor stops with negative speeds. Find attached the identified values.

    If I vary the supply voltage from 24V  to 20V  and to 15V , the maximum frequency of rotation reached are respectively 470 rpm and 354 rpm. For 24 V the maximum frequency is 579 rpm. See the attached files.

    5707.ccsErr7.tiff6014.ccsErr6.tiff3755.ccsErr5.tiff4774.ccsErr4.tiff7360.ccsErr3.tiff

  • Ignacio,

    Are you sure this is a low voltage motor? 

    My guess is that it is high voltage.  And your Rs is probably even higher than the 1.4 or 2.5 you originally identified....and I'm guessing the Voltage scaling is so off that the Flux isn't getting ID'd correctly and is actually much higher (you will notice that your Isc is essentially 0, meaning your flux is much too low or your Ls is much too large).

    If this is the case you could potentially run the motor, but you will notice that you are being limited to about 47 Hz with 15V...Well, if your flux was actually 0.32 V/Hz that is exactly where you would be limited by your Bemf with a 15V bus. And you will notice as you change your bus voltage you see the same effect, 77.2 Hz @ 24V = 0.31 V/Hz

    This would explain it not handling speed reversal...though I don't understand why it won't just start-up to a negative -300 RPM....

     

  • I just hooked up a 160V BLDC with 18V on the BOOSTXL and saw some similar things....

    Speed limited to 323 RPM with 18V bus

    but it ID'd what I would call correctly and operates fine between +/- 323 RPM.

  • Chris,I agree that the motor voltage is not 24 v, but can't understand why does not work with negative speeds. With the identified parameters, the motor moves smoothly throughout the allowed range of positive speeds. Any suggestions on the impossibility of running negative speeds?

    Best regards

  • It doesn't make any sense.

    The only reason it would have trouble moving from + to - is if

    a) the torque/current demand is much higher thatn you power supply / stage

    b) the motor parameters are off or the feedback signals are poor/incorrect, causing mis-estimation from FAST

    Well, a) may be an issue, but you said you can't start from 0 and just command a negative speed either....so that doesn't seem to be the root problem.

    And if b) was an issue you wouldn't get decent performance in the + direction.

    I'm stumped....we've never seen this happen.  Is this motor free to turn in the negative direction?  It isn't geared or anything which would cause a higher torque requirement?

     

  • Yes, I checked. Changing two phases, the motor rotates in the reverse direction as smooth as in the other direction. But look to the attached file. Running Lab5a, the motor runs in booth directions changing Iq_Ref_A to + and - values. For Iq_Ref_a = -0.5, the speed is -139 ¡¡

    ?????

    Best regards.

    7870.ccsErr8.tiff

  • Ok, so the motor can certainly spin in both directions, and the issue is NOT seen in torque mode....

    but when you move to proj_lab5b and add the Speed PI loop, if you set SpeedRef to -150 RPM with ForceAngle Enabled it just stays at 0?

    Is your USER_MOTOR_RES_EST_CURRENT  at least the (0.5) that you proved starts up the motor in Torque Mode?

    That is very strange...It seems like it must be a speed loop tuning issue, but why would it only effect one direction?

     

     

  • Chris, the motor is rotating in both directions perfectly ¡¡. Proj_lab versions was using during all this test were motorware_1_01_00_11. The proj_lab05a discussed above corresponds to motorware_1_01_00_12. I loaded proj_lab05b of motorware_1_01_00_12, updated user.h with the estimated parameters and works in both directions.

    Thanks a lot for your suggestions and help.

    Best regards

  • Glad you figured it out.

    I need to stop assuming that people are using the latest version. Good lesson learned to check this first!