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.

TMS320F28069: lab 12b with encoder

Part Number: TMS320F28069

Hello,

We are having an issue with lab 12b on the high voltage TI kit. We have verified the motor parameters with labs 2a and b . 

The problem is the moment we turn on the motor using lab 12b, the input voltage which is coming from a DC power supply drops from 48VDc to almost 6V. However, motor starts spinning up to 80 rpm without noise.

once we disabled force angle , the input voltage does not drop but motor starts making so much noise and does not spin smoothly. Any idea why this is happening? 

  • Did you run lab12a to identify the inertia before you run the lab12b? And ensure that the physical connections of both encoder and more lines are done correctly? All the sensor labs will not work well if the motor or encoder wires are connected in the wrong order, even had over current protection as you saw.
  • Yes, we ran lab12a without load and put the numbers in user.h. We also checked the motor/encoder connections and they all look correct.
    We happened to see same problem here :( e2e.ti.com/.../593501 )

    do you think it's related?
  • Also we were not able to finish lab12a with load because the fan spins for a while with lab12 a but we keep getting error 2004.
  • What hardware board did you use? TI EVM kit? Or your own board. You must do the offset calibration and ensure that the current and voltage sampling signals are good for running the motor.
    The lab02b and lab12a must run without a load and then set the identified parameters in user.h as well.
  • Yes, we are using high voltage kit from TI. Any other suggestions?
    Actually, our motor works fine with sensorless without load. However, we had issues with sensorless when testing with load specially at start up. So we decided to use the encoder.
  • As mentioned, we are using the TI high voltge kit at 48V Dc input which is comming from a DC power supply. We have not made any hardware changes. Also, the only changes in user.h was the motor parameters. Any suggestions ?
  • What rated and maximum current is the motor? I don't think this is a good solution to use the HV-Kit for such low voltage motor, please be noted that the HV-kit just supports 10A rated and 20A peak-peak current. The low voltage motor might trig the over-current protection of HV-kit, that's why the motor can't run under load. You may try the DRV8301-HC-Kit which can support 60V/60A.

  • Thanks for your reply! The motor current rating is 6.5A. Actually we got it working with the HV kit however we cannot go above 300 rpm. We need to go as high as 600 rpm and the motor is rated at 900 rpm. Any idea why speed is not going above 300 rpm?
  • Yaniming, Any other suggestions?
  • Could you please post some current waveforms to show your question if you had? Can the motor run up to the high speed without any load? And you might check the output of Id and Iq current regulator to check if the input is enough. You can increase the input voltage to look what happens and if the maximum speed is increased.
    Btw, is the pole pairs correct? Not poles in user.h
  • The motor continuous torque is 4.2 Nm.The motor can reach maximum of 900 rpm with no load. Increasing the input voltage didn't help. Also the pole pairs is correct. 98 pole pairs). How do we check the output of iq and id? 

  • What USER_MOTOR_MAX_CURRENT did you set? You might increase it in user.h. Please monitor below variables in Watch Expressions Window in CCS if there is not any improvement.

    st_obj.vel.ctl.Out
    ctrlHandle->Vdq_out.value[0]
    ctrlHandle->Vdq_out.value[1]
    st_obj.vel.id.cfg.OutMax
    st_obj.vel.ctl.cfg.OutMax
    st_obj.vel.ctl.cfg.OutMin
    gUserParams.maxVsMag_pu
  • It is set to 8. Increasing that value didn't help. It seems like we are hitting the maximum torque of the motor which 4.2 NM according to CCS. However, our load is not really that much. Our load is no more than 1 NM. Any idea why the controller is putting that much torque command to the motor ? we are pretty sure that we don't need that much torque for our load which is a simple fan.
  • Here is an update : Actually increasing the USER_MOTOR_MAX_CURRENT value from 10 to 20 helped increase the speed from 350 rpm to 450 rpm. However, CCS is showing a very high number for the torque (~ 10 NM ) and motor is getting hot. any idea why this is happening? We would like to know why controller is asking for too much torque when we don't need that for this load !Appreciate your URGENT response.
  • Yanming, Any comments/suggestions? Appreciate your help as we have got stuck...
  • InstaSPIN-FOC estimates the mechanical torque (Te) of the PMSM using the torque equation in the d-q rotor reference frame, the equation is dependent on Flux, Ld, Lq, Id and Iq. The torque is an estimated value, is not precise, but is close to the Tj+Tm (you added).
    It seems like the Iq is not correct during this state, please check below variables under the high-speed state, and post them to help to analyze this question.

    st_obj.vel.ctl.Out
    ctrlHandle->Vdq_out.value[0]
    ctrlHandle->Vdq_out.value[1]
    st_obj.vel.id.cfg.OutMax
    st_obj.vel.ctl.cfg.OutMax
    st_obj.vel.ctl.cfg.OutMin
    gUserParams.maxVsMag_pu

    Please add the following codes in updateGlobalVariables_motor(), and check gMotorVars.Vs also. The rated speed could be not right if gMotorVars.Vs is close to gUserParams.maxVsMag_pu, and you need to implement the field weakening control to get the high speed.

    // read Vd and Vq vectors per units
    gMotorVars.Vd = CTRL_getVd_out_pu(ctrlHandle);
    gMotorVars.Vq = CTRL_getVq_out_pu(ctrlHandle);

    // calculate vector Vs in per units
    gMotorVars.Vs = _IQsqrt(_IQmpy(gMotorVars.Vd, gMotorVars.Vd) + _IQmpy(gMotorVars.Vq, gMotorVars.Vq));