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.

Identified Motor can not run more than half max speed

Other Parts Discussed in Thread: MOTORWARE

Hello again Chris and all,

I am sorry if I bother you all with my problems.

I tested Motorware 12 Project Lab 2b to identify my motor (0.74kW) using TMDSHVMTRINSPIN and F28027F ControlCard (and the compiler is 6.2.3 under CCS 5.5).

I give you the screenshot of my motor below.

We don't know how many poles this motor has, also there is no other parameter besides the ones in the plate. So I assumed this motor has 2 pole pairs.

The result of this motor identifications is below:

Rs = 19.32

Rr = 20

Im = 0.54 (magnetizing current)

Lsd = Lsq = 0.27

Flux = 3.75

with user.h as below:

7144.user.h

I have tried this identification many times and the results are consistent (all results are approximately around these values).

However when I tried to run the motor, it could not run more than 600 RPM (the maximum RPM of the motor is 1220 RPM). Also it could not run lower than 200 RPM. When I put speed reference lower than 200 RPM, the motor started to run in random speed (didn't follow the speed reference anymore). When I tried to increase the speed reference (for example from 100 RPM into 300 RPM), it still didn't follow the speed reference until I increased the speed reference into 600 RPM.

When I changed the motor pole to be 3 pole pairs, the identification results were approximately the same.

Last year we also tried to identify this motor using GUI Composer (Motorware 9) and I saw that the results were totally different with the results from Motorware 12.

I tried the values from this GUI composer to be put in user.h of Motorware 12 and ran Project Lab 3b, the motor ran very noisy and could not follow the speed reference.

I think the problem is in the setting of user.h but I have no idea what to be changed.

I have tried to increase the Rated Flux and/or reduce/increase Current Max, but the problem was not resolved.

Is there any idea or suggestion?


Thank you!

Best regards,

Maria

  • Hello Maria,

    I actually know a bit about this motor, or one quite similar.

    First I would suggest you try to dismount the motor from the turbine.  This turbine (and many fan applications) have quite a bit of inertia that makes it very challenging to keep stability and get good values during motor ID.  It is quite a strange, heavy, and oscillating load, even at low speeds.  Also, many of these motors have very long wires for installation and this can cause an issue.  I recommend shortening the wires for initial evaluation until you get closer to having things well understood.

    Finally, once ID'd and running with no load, only then add back into the turbine/fan system.  Then, you get to have fun with your speed controller :)  If ever in doubt, SpinTAC controller in InstaSPIN-MOTION handles these types of high inertia, variable loading applications like these fans quite well :)

     

  • Another point, it is likely that the motor is set-up as 400Vrms, which means it requires 540Vdc-bus to hit full speed.  Field weakening will be required to hit speeds with a lower bus voltage.

     

  • Hello Chris,

    Thanks for the reply!

    Now my colleague is trying to dismount the motor. Hope he can do it :)

    If it is not possible, what should we do? Because in the future maybe there will be another kind of motor that very difficult to be dismounted from its load.

    Best regards,

    Maria

  • you will need to manipulate the gains that are inserted into the controller during identication.  We are doing this now as our "enhancement" for ACI Motor ID in _12.  You will have to make some educated guess on controlling the stability.

    What is your Vbus?  Even at 350V  you should be fine to ID.

    I presume what during the Lock Rotor state, you are mechanically braking the motor so that it can not spin, and keeping it this way until ID finishes, correct?  I suppose you are, just double checking. Apparently that hasn't been 100% clear to everyone.

     

  • ChrisClearman said:
    Field weakening will be required to hit speeds with a lower bus voltage.

    Do you suggest me to run Project Lab 9? This is after I get the correct ID or I can try with this ID result that I got previously?

    Also do you think Magnetizing Current around 0.5 is low? If it is, how to make it higher?

    And which rated flux is correct: (0.8165*230.0/50.0) or (0.8165*400.0/50.0) to be put in user.h in the beginning?

    Thanks.

    Best regards,

    Maria

  • ChrisClearman said:
    you will need to manipulate the gains that are inserted into the controller during identication.

    How to do this? Can you give me an example?

    ChrisClearman said:
    What is your Vbus?

    My Vbus is around 330V. Is it OK?

    ChrisClearman said:
    during the Lock Rotor state, you are mechanically braking the motor so that it can not spin

    Yes, I did. I can say I am quite good to do this step (already did this many times since last year) ;)

    Best regards,

    Maria

  • If your bus voltage is only 350V you can't run to max speed w/o field weakening. Luckily for you, you are using ACI motor, so no need for lab09. Simply Enable PowerWarp and voila, your motor is always running in "adaptive field control".  It will create the flux needed (from small to rated, won't do field boost automatically) to create the torque required by the FOC controller.  Set your target speed, enable PowerWarp, and off she goes.  BTW - this is another application where SpinTAC shines.  Speed PI controllers require constant re-tuning during FW. With SpinTAC you typically should only have to reduce it once from it's optimal tuning for deep 2x speed field weakning of ACI motors.

    I would use

     (0.8165*400.0/50.0)

    yes, your mag current seems quite small. This should go up once you retest with this rated flux value.

     

  • every lab has an example, see function

    recalcKpKi()

     

  • ChrisClearman said:
    recalcKpKi()

    I see. The gain that you mean is Kp and Ki gain, right?

    I will try them.

    I will also try to enable PowerWarp.

    About the SpinTAC, unfortunately we will use F version (not M). But anyway, I will try F28069M ControlCard to test this motor later when I finish this.

    Also, my colleague already dismounted the motor. I will try it this morning and let you know the result.

    Thanks!

    Best regards,

    Maria

  • Hello Chris and all,

    This is the ID result after the motor is dismounted (we removed the rotating cage of the motor).

    Seems no changing on Rs but Rr is definitely changed. Ls becomes a little bigger. Im and Flux are also bigger.

    I used user.h as below:

    #elif (USER_MOTOR == My_Motor)
    #define USER_MOTOR_TYPE                 MOTOR_Type_Induction
    #define USER_MOTOR_NUM_POLE_PAIRS       (2)
    #define USER_MOTOR_Rr                   (NULL)
    #define USER_MOTOR_Rs                   (NULL)
    #define USER_MOTOR_Ls_d                 (NULL)
    #define USER_MOTOR_Ls_q                 (NULL)
    #define USER_MOTOR_RATED_FLUX           (0.8165*400.0/50.0)
    #define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)
    #define USER_MOTOR_RES_EST_CURRENT      (0.2)
    #define USER_MOTOR_IND_EST_CURRENT      (NULL)
    #define USER_MOTOR_MAX_CURRENT          (2.4)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz     (5.0)


    The motor runs worse than before, it even can not run more than 400 RPM.

    However I tried PowerWarp and it can run until 1100 RPM. But sometimes it makes noise when I change the speed (lower to higher, higher to lower) and also when the noise starts and can't be resolved, the speed can't be controlled anymore so I need to turn off the PWM first (Run_Identify) and turn it on again then the motor runs fine.

    Any idea?

    Best regards,

    Maria

  • Try ID again with the other flux value that matches your AC input.

  • Hello Chris,

    We checked again the motor connection, it was connected to star (400V), our mistake to not double check this connection.

    Then we changed the motor connection into delta (230V). And run Project Lab 2b.

    The result is totally different that you can see below:

    with user.h:

    #elif (USER_MOTOR == My_Motor)
    #define USER_MOTOR_TYPE                 MOTOR_Type_Induction
    #define USER_MOTOR_NUM_POLE_PAIRS       (2)
    #define USER_MOTOR_Rr                   (NULL)
    #define USER_MOTOR_Rs                   (NULL)
    #define USER_MOTOR_Ls_d                 (NULL)
    #define USER_MOTOR_Ls_q                 (NULL)
    #define USER_MOTOR_RATED_FLUX           (0.8165*230.0/50.0)
    #define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)
    #define USER_MOTOR_RES_EST_CURRENT      (0.2)
    #define USER_MOTOR_IND_EST_CURRENT      (NULL)
    #define USER_MOTOR_MAX_CURRENT          (2.4)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz     (5.0)

    Without the rotating cage, the motor can run until 1200 RPM. But the lowest value is only 350 RPM. It can not follow the reference speed below this value.

    Still without the rotating cage, with PowerWarp enable, the motor can run higher than 1700 RPM. But the lowest value is only 250 RPM. It can not follow the reference speed below this value.

    Then I tried Project Lab 3b and put the rotating cage, the motor can run only until 850 RPM. The motor starts to be noisy above this speed and the speed can not reach the speed reference. But with this rotating cage mounted, the lowest speed is 100 RPM.

    Then I enable PowerWarp, the highest speed is 900 RPM (slightly higher), but the lowest speed is 300 RPM.

    My questions are:

    1. Actually, is it possible to connect 400V motor (any) to this kit and identified well and run well with Motorware? Have you tried it before? Because when we connect this motor as star (400V), it easily creates noises and sometimes fail to follow the speed reference.

    2. After we put the rotating cage, the maximum speed is decreased. Is it normal? Or the IDs is not correct? How to increase this speed to be maximum?

    3. And how to make this motor run in lower speed? Actually this is not really important for our application but if it possible, we want to implement it too.

    Thanks for your help!

    Best regards,

    Maria

  • Hello Chris,

    I read again the user guide of InstaSPIN FOC-InstaSPIN Motion. In this document it is explained how to run the motor on low speed and full load. So I think this can answer my question number 3.

    Btw, I tried Project Lab 10a using the ID parameters that I got and the motor can run above 1400 RPM. And for lowest speed, it can run until 100 RPM using RsRecalc and OffsetCalc enable (without PowerWarp enable).

    I think this answers my question number 2.

    The remain is question number 1. But this is currently not urgent so I will wait.

    Thanks for your help.

    Best regards,

    Maria

  • Regarding question 1, yes we have run 400V and 480V with 300V.

    However, it is possible that the rated flux is not reached during magnetizing current identification, just because it needs more voltage to produce a current that produces the specified flux.

    So my suggestion is that if IdRated is still rising, and the identified flux hasn't reached the specified flux, then it needed more voltage. At that point, enter a smaller flux so it can actually reach the magnetizing current  to produce the target flux.

    -Jorge

  • I think the remaining performance gains can be gotten by tuning of the speed loop. This is why I mentioned using MOTION. If you don't have experience with tuning it makes it so much easier AND it gives you premium performance. Just last week at a customer I was only able to tune the PI to achieve 1 Hz (30 rpm) and the torque response was just ok. With MOTION it was rock solid at 1/2 Hz and still stable at 1/4 Hz with load disturbance. 

  • Hello Chris and Jorge,

    Sorry for the late reply, I was off yesterday.

    Jorge Zambada said:
    and the identified flux hasn't reached the specified flux,

    I believe this is what happened while ID-ing the motor with 400V connection. Thanks for the explanation.

    About tuning the speed loop, indeed I have problem with it. But unfortunately I have to face it now because our solution this time is still not using MOTION. But I will recommend this to my manager.

    Thanks for your supports!

    Best regards,

    Maria