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.

TMS320F280041C: C2000Ware MotorControl SDK 5_03 Lab04 problem

Part Number: TMS320F280041C


Tool/software:

Greetings! I am using this MotorControl SDK for a very first time. I reached lab 4. On the previous labs everything works fine. I manage to write down the offset values. The readings from all sensor are correct - > the current adc channels return around half of the adc range which is correct for bidirectional sensor. In pure V/Hz control(lab03) everything works fine. But in lab04 my motor doesn`t turn at all. My first suspition is the value  USER_ADC_FULL_SCALE_CURRENT_A. My sensor is MLX91221KDC-ABR-020-SP which is 20A bidirectional currect sensor. But in the datasheet it`s written that the sensitivity of this sensor is 62.5mV per A(page 4 table 1). So If my calculations are correct the full scale current should be 52.8A. Am I correct here? I am using 3 current and 4 voltage sensors. My line voltage is 550V and the USER_ADC_FULL_SCALE_VOLTAGE_V is set to 1600. The read BusV is 520 which I assume as a correct value and when I apply half duty cycle on the bridge the other 3 sensors read half of this value.

I made a few tests with this value and in the beginning I used 20A as full scale voltage. But the calculated offset values were around 5.0 which is not 0.5*USER_ADC_FULL_SCALE_CURRENT_A. Is there a possiblity my initial setup to be incorrect?

The other which concerns me are the motor settings:

#define USER_MOTOR_TYPE                   MOTOR_TYPE_INDUCTION
#define USER_MOTOR_NUM_POLE_PAIRS         (2)
#define USER_MOTOR_Rr_Ohm                 (NULL)
#define USER_MOTOR_Rs_Ohm                 (NULL)
#define USER_MOTOR_Ls_d_H                 (NULL)
#define USER_MOTOR_Ls_q_H                 (NULL)
#define USER_MOTOR_RATED_FLUX_VpHz        (0.8165*230.0/60.0)
#define USER_MOTOR_MAGNETIZING_CURRENT_A  (NULL)
#define USER_MOTOR_RES_EST_CURRENT_A      (0.5)
#define USER_MOTOR_IND_EST_CURRENT_A      (NULL)
#define USER_MOTOR_MAX_CURRENT_A          (5.0)
#define USER_MOTOR_FLUX_EXC_FREQ_Hz       (5.0)

// Number of lines on the motor's quadrature encoder
#define USER_MOTOR_NUM_ENC_SLOTS          (1000)

#define USER_MOTOR_FREQ_MIN_HZ             (5.0)           // Hz
#define USER_MOTOR_FREQ_MAX_HZ            (60.0)         // Hz

#define USER_MOTOR_FREQ_LOW_HZ            (10.0)          // Hz
#define USER_MOTOR_FREQ_HIGH_HZ           (60.0)         // Hz
#define USER_MOTOR_VOLT_MIN_V             (50.0)           // Volt
#define USER_MOTOR_VOLT_MAX_V             (380.0)          // Volt

I can`t remove #define USER_MOTOR_NUM_ENC_SLOTS          (1000) and I am not using encoder. Do you see anything wrong here?

Thanks!

  • Are you using your own board? Or the supported TI EVM kit?

    Please check if the current sensing configuration is correct if you are using own board.

  • I had a probem with the current measurement, but now everything is fine. But again no turning. I monitored the adc variable and my output voltages and currents are quite low -> 0.05A and 1--2-3 volts. It seems some viriable is not correct and in the interrupt it multiplies with wrong value and the result curve is too low. Any ideas what it should be?  I tried to increas the Flux_VpHz => no change. According to my settings the motor should have 5.0A max current but it reaches only 0.05A. which is far away... I tried different VOLT_MIN and VOLT_MAX values => no luck.

    I am using my own board!

    Thanks!

  • USER_ADC_FULL_SCALE_VOLTAGE_V is set to 1600

    Hi Pavlin,

    Recommended ADC overhead for vBus voltage divider (+20%) of actual bus voltage, same rule applies 3 Clarke EMF voltage inputs. Seemingly setting full scale 1600V may produce odd runtime results. One must also adjust filter pole value (user.h) to match proper voltage dividers. Recommend review TI Literature: SPRUHJ1I JANUARY 2013 – REVISED OCTOBER 2021 (TI-InstaSpin-FOC_Motion UserGuide.pdf)

  • motor should have 5.0A max current but it reaches only 0.05A.

    #define USER_MOTOR_RES_EST_CURRENT_A      (0.5)

    The motor only requires 500mA? Perhaps the maximum current scale factor is not correct for bidirectional current sensor output V/A. Sensor idle state output (+1.65v). Check the ADC offset sign matches the polarity of current sensor output, pages 239-240.

  • Lab04 doesn't use any motor parameters. As mentioned above, you need to check if the current and voltage are measured correctly on your board with lab03 and lab04.

  • I decreised the USER_ADC_FULL_SCALE_VOLTAGE_V. My initial value was incorrect. Now it is 850V. I tested a few things including high RES_EST_CURRENT -> no effect. I am positive that the measurement is correct. But the output current stays low and the motor doesn`t turn. Like the amplitude of the duty cycle doesn`t go high enough. I continued to Labs 06 and 07 and the motor is running properly there. 

  • Asm mentioned above, lab04 doesn't use these motor parameters, it is only related to the hardware board parameters like scale voltage and current, current sensing direction..

    If you can't run lab04 and lab05 correctly, the lab06 and lab07 can't work correctly as well.