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.

Questions about using 28069M and HV-kit to control ACIM

Hello, I use the 28069 to control my ACIM. My motor is △,not Y. I have the parameters, so I need not to identify the Motor parameters through lab2a. Now I use lab5b to run my motor. How can I modify the lab? please tell me the things I need to change such as in use.h, ctrl.h or others. Thank you!

  • you should follow labs 1-5b in instaspin_labs.pdf to understand the updates to user.h, even if you aren't using Motor ID (which can be challenging for induction motors anyways).

    you can review SPRUHJ1 section 4.8 to see how to calculate the parameters required for InstaSPIN from your nameplate / datasheet.
  • Thank you. I have seen the 4.8 and calculate the Rs,Rr,Lsd and Lsq parameters(changed to Y), then I calculate the "USER_MOTOR_MAGNETIZING_CURRENT " = 4.2, but the motor can't run.But if I change it to 1.2, it is ok. I do not know if this parameter has some relations about delta or Y. My use.h parameters is like follow:

    #elif (USER_MOTOR == My_Motor1) // Name must match the motor #define /this is 1.5kw motor
    #define USER_MOTOR_TYPE MOTOR_Type_Induction // Motor_Type_Pm (All Synchronous: BLDC, PMSM, SMPM, IPM) or Motor_Type_Induction (Asynchronous ACI)
    #define USER_MOTOR_NUM_POLE_PAIRS (2) // PAIRS, not total poles. Used to calculate user RPM from rotor Hz only
    #define USER_MOTOR_Rr (1.223) // Identified phase to neutral in a Y equivalent circuit (Ohms, float)
    #define USER_MOTOR_Rs (1.192062) // Identified phase to neutral in a Y equivalent circuit (Ohms, float)
    #define USER_MOTOR_Ls_d (0.0136) // For Induction, Identified average stator inductance (Henry, float)
    #define USER_MOTOR_Ls_q USER_MOTOR_Ls_d // For Induction, Identified average stator inductance (Henry, float)
    #define USER_MOTOR_RATED_FLUX (0.8165*220.0/50.0) // sqrt(2/3)* Rated V (line-line) / Rated Freq (Hz)
    #define USER_MOTOR_MAGNETIZING_CURRENT (2.5) // Identified magnetizing current for induction motors, else NULL
    #define USER_MOTOR_RES_EST_CURRENT (1.0) // During Motor ID, maximum current (Amperes, float) used for Rs estimation, 10-20% rated current
    #define USER_MOTOR_IND_EST_CURRENT (NULL ) // not used for induction
    #define USER_MOTOR_MAX_CURRENT (8) // CRITICAL: Used during ID and run-time, sets a limit on the maximum current command output of the provided Speed PI Controller to the Iq controller
    #define USER_MOTOR_FLUX_EST_FREQ_Hz (5.0) // During Motor ID, maximum commanded speed (Hz, float). Should always use 5 Hz for Induction.
    ~~~~~~~~~~~~~~~~~~~you can check the above sets using the following paras from the Motor Guide~~~~~~~~~~~~~~~
    【My motor's parameters is like this(every phase parameters of delta connection)
    Rs:3.59 om
    Xls:7.11 om
    Xlr:7.11 om
    Rr:3.67 om
    Xm:67.2 om】

    Besides, I want to know that:
    1、my motor is delta, how can I modify the svgen.h?
    2、Should I change the Park's input(Ialpha,Ibeta) from the line-current to the phase-current?
    3、Should I change the inputs of FAST? How can I change them? are there some differents between Y and △?

    Thanks a lot!
  • you don't need to make any control changes between Y and Delta. It only matters in calculating FAST motor parameters from the name plate. No, you don't need to change Park inputs.

    1. are you sure your Xls = Xlr?
    2. following the example of 4.8.2 in SPRUHJU I calculated Ls = 0.0425 H
    3. I'm not sure which MAGNETIZING_CURRENT you are actually using. You mention 4.2 and 1.2 but then use 2.5 in your #define. How did you calculate?
  • Thanks a lot!

    1、i am sure my Xls=Xlr. 

    2、According 6.8.1.3, my delta motor's Ls need be divided by 3. (6.8.1.3------For example, if the delta Ls_d (delta) value is known to be

    0.3 mH, the Ls_d (Y) value would be Ls_d (Y) = Ls_d (delta) / 3 = 0.1 mH.)

    3、I am sorry. I do not know the exact value of MAGNETIZING_CURRENT. My motor noload line-current is 5A(RMS), so how to calculate it? 

  • I calculate the MAGNETIZING_CURRENT value is 4.2(from the equivalent circuit), use the idrated=inoload*sqrt(2)/sqrt(3)=4.08 (my inoload line-current is 5A, so I change it to phase-current by 5/sqrt(3)).
  • The value of 1.2 or 2.5 is not the calculated value. I just try some values to run my motor.
  • I am sorry that I asked you so much questions in your midnight. But I need your help. Thanks!
    Now I have reset my changes in svgen.h and park.
    1、 I use the motor parameters as I wrote and set the MAGNETIZING_CURRENT 4.2. I can run my motor to rated speed 1500rpm. But the noload line-current amplitude is only 4.1A. In my motor datesheet, the noload line-current RMS is 5A. The two values is not same. So I think I have something wrong.
    2、Then I changed the MAGNETIZING_CURRENT from 4.2(phase) to 7.2(line), then the motor only can run the max speed of 1180rpm. It can not reach to 1500rpm. I do not know why. Please help me.
  • when you increase your magnetizing current you are reducing the available current used for Iq torque production. You can try adjusting it around 4.2 to see if you can find the ideal current.
  • Ok. thank you. I will try. Have you run a delta motor by using the lab? Are you sure that I do not need to change anything except the use.h?
    Before, I used HVACI_Scalar to run my delta motor(V/F), I need to change the svgen. For example, I want to get the delta motor phase voltage 220V. Because the Vs reference of svgen is the Y-voltage, so I need to change the phase voltage 220V to Y-equivalent 220/sqrt3. And it was running very well and the currents and voltages measured are all same as the datesheet.
  • Yes.

    Yes.

    Hmmmm, I don't think a change to svgen is necessary. I'll see if anyone else has a different opinion.

  • Ok, thanks. Now I have used the lab2a and locked my motor to identify my motor parameters as following: 

    #elif (USER_MOTOR == My_Motor1) // Name must match the motor #define /this is 1.5kw motor
    #define USER_MOTOR_TYPE MOTOR_Type_Induction // Motor_Type_Pm (All Synchronous: BLDC, PMSM, SMPM, IPM) or Motor_Type_Induction (Asynchronous ACI)
    #define USER_MOTOR_NUM_POLE_PAIRS (2) // PAIRS, not total poles. Used to calculate user RPM from rotor Hz only
    #define USER_MOTOR_Rr (0.9243983) // Identified phase to neutral in a Y equivalent circuit (Ohms, float)
    #define USER_MOTOR_Rs (1.259719) // Identified phase to neutral in a Y equivalent circuit (Ohms, float)
    #define USER_MOTOR_Ls_d (0.008874171) // For Induction, Identified average stator inductance (Henry, float)
    #define USER_MOTOR_Ls_q USER_MOTOR_Ls_d // For Induction, Identified average stator inductance (Henry, float)
    #define USER_MOTOR_RATED_FLUX (3.468177) // sqrt(2/3)* Rated V (line-line) / Rated Freq (Hz)
    #define USER_MOTOR_MAGNETIZING_CURRENT (6.22) // Identified magnetizing current for induction motors, else NULL
    #define USER_MOTOR_RES_EST_CURRENT (1.2) // During Motor ID, maximum current (Amperes, float) used for Rs estimation, 10-20% rated current
    #define USER_MOTOR_IND_EST_CURRENT (0) // not used for induction
    #define USER_MOTOR_MAX_CURRENT (8) // CRITICAL: Used during ID and run-time, sets a limit on the maximum current command output of the provided Speed PI Controller to the Iq controller
    #define USER_MOTOR_FLUX_EST_FREQ_Hz (5.0) // During Motor ID, maximum commanded speed (Hz, float). Should always use 5 Hz for Induction.

    Then I find another problem: when the motor is running at one refer-speed(example 1000rpm and noload), the speed estimated is ranging from 0.995-1.05, I think it maybe common and right. But the torque estimated is about ranging from 0.6 to 1.1, I think it is not right, because I use the dynamometer machine to measure the torque is only 0.3 and stable. what do you think and how can I solve the big changes of torque of the FAST estimate?

  • "the speed estimated is ranging from 0.995-1.05"
    you can tune your speed controller for tighter regulation

    "But the torque estimated is about ranging from 0.6 to 1.1,"
    Is this with no load?

    the torque is based on Flux and Iq/Id currents. Which are changing significantly?
    USER_computeTorque_Nm

    my guess is the currents, which means that it's not well regulated under no load (or constant load, whichever you are doing)

    this can be from the speed controller. you can use proj_lab05a in torque mode to see if torque under load is stable w/o speed loop.

    if it's still not stable then it's probably coming from the currents moving. that could be current ripple from PWM rate or the estimator is not giving good feedback (due to wrong motor parameters).
  • Thanks!

    1. Torque from 0.6 to 1.1 is really with no load.

    2. Flux is gMotorVars.Flux_VpHz? Its value is stable at 3.03. Id's value is ranging from 5.9 to 6.05. Iq's value is ranging from 0.37 to 0.8. 

    3.I use lab5a to run the motor and find that the torque with no load is also not stable.

    4. Maybe as you said, the problems are from the currents moving. I do not change the lab but use.h, so I think the Pwm will be right. If the wrong is from the parametes, how can I solve it? Because I use the lab2a to identify it..and write them into use.h.

  • 1. if you apply a constant load do you get more consistent torque measurements? with no load the phase currents are very small. it is much easier for these to be "noisy" resulting in Iq/Id ripple.

    2. Iq should not be changing so much in a constant load (even no load) situation. First try applying a constant load and see how it behaves.
  • I apply a constant load in lab. The torque and iq are also ranging so much.

    Now I am confused, in lab2a, when the gMotorVars.EstState is EST_State_IdRated, I find gMotorVars.Flux_VpHz is changing. when the gMotorVars.EstState is EST_State_RatedFlux, I find gMotorVars.MagnCurr_A is changing. Is this right? But I think EST_State_IdRated should be gMotorVars.MagnCurr_A ; EST_State_RatedFlux should be gMotorVars.Flux_VpHz...What is the relation between the two values? Can you give me some pdfs about how to calculate the MagnCurrent?

    Besides, I set  gMotorVars.Flag_enablePowerWarp=1, then I find that Id_ref(input of Id PI) is only around 1.4. Then I increase the torque to about 3NM, the currents are too large and the kit is protected. 

  • I apply a constant load in lab. The torque and iq are also ranging so much.

    Now I am confused, in lab2a, when the gMotorVars.EstState is EST_State_IdRated, I find gMotorVars.Flux_VpHz is changing. when the gMotorVars.EstState is EST_State_RatedFlux, I find gMotorVars.MagnCurr_A is changing. Is this right? But I think EST_State_IdRated should be gMotorVars.MagnCurr_A ; EST_State_RatedFlux should be gMotorVars.Flux_VpHz...What is the relation between the two values? Can you give me some pdfs about how to calculate the MagnCurrent?

    Besides, I set gMotorVars.Flag_enablePowerWarp=1, then I find that Id_ref(input of Id PI) is only around 1.4. Then I increase the torque to about 3NM, the currents are too large and the kit is protected.
  • "when the gMotorVars.EstState is EST_State_IdRated, I find gMotorVars.Flux_VpHz is changing."
    Correct. During IdRated the Id current is increased in an attempt to get gMotorVars.Flux_VpHz = USER_MOTOR_RATED_FLUX

    "when the gMotorVars.EstState is EST_State_RatedFlux, I find gMotorVars.MagnCurr_A is changing"
    We then use HALF of the IdRated current identified in the previous step and use the flux produced to calculate the actual RatedFlux.

    This is covered in chapter 6.6 of SPRUHJ1
  • I apply a constant load in lab. The torque and iq are also ranging so much.How can I do?It is changing so much and I do not know how to do it.

    My delta motor's no load line-current (RMS) is 5.1A, so I set the MAGNETIZING_CURRENT is 5.1*sqrt(2)=7.2. Is it right?

    Because I want to use my own Efficiency optimization Theory which will calculate the optimal Id (input of ID PI). In order to test my Efficiency optimization Theory is right or not, so I need the original MAGNETIZING_CURRENT (now I set 7.2) to compare my calculated optimal Id in my theory.

    Now the other question is that, the MAGNETIZING_CURRENT is 7.2, I use the lab2a to identify my parameters, and then use lab9a to run my motor. The speed only can reach 1200RPM. My motor's rated speed is 1420RPM.

    Thanks so much!

  • that magentizing current seems high.

    the difference between 1200 and 1420 may be due to the modulation. You can use proj_lab10 to increase the modulation value from 1.0 up to 1.33 which will apply more voltage to the motor.

    you may also be able to enable PowerWarp. This will lower the Id. Run at the rated speed and start applying a load. The Id will rise. Once you have applied the full rated load for the rated speed the Id being used should be your magnetizing current.