TMS320F2800157: Not able to achieve the torque at higher RPM of the motor

Part Number: TMS320F2800157
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Hello Team,

I am currently working on the implementation of the torque control mode using our own custom board.

We are able to run the motor in speed control mode using 48V encoder motor in all BUILD_LEVELS and we can able reach up to its maximum RPM in BUILD_LEVEL_4 (With encoder feedback).

First, I have tested TORQUE CONTROL MODE (Current control mode) in BUILD_LEVEL_3 because, in universal motor code TORQUE CONTROL MODE is implemented only for BUILD_LEVEL_3.

I'm trying to run the motor in torque mode in BL4, by surpassing the speed control loop because in BL4 only we can be able to apply the load and run the lab with complete FOC. I'm directly assigning Idq_set_A to IdqRef_A here same as BL3.

At lower RPM I am able to achieve the expected torque (29Nm) but in higher RPM like 2000 RPM or more than this I am not able to achieve the expected toque.

If I apply minimum load (4Nm) motor is stopping directly and, in this case, I am not getting any errors.

I want to know how much Id and Iq currents I need to inject in this case because in lower RPM it is working fine and in higher RPM only, we are facing this issue.

Apart from injection of Id and Iq currents, whether I need to check anything for this above issue? 

Below I have mentioned the Id and Iq currents injected to achieve maximum torque at lower RPM (500RPM).

  Id = 0 A, Iq = 230A

In this case we are not injecting Id current because has I know in lower RPM it is not required and it is required only to achieve maximum RPM, correct me if I am wrong.

Below I have shared the expected toque demand in different RPMs.

Thank you,

Regards,

Kirana H P

  • Hi Kirana,

    Which solution specifically are you using? (Ex. TIDM 2010, TIDA 010265 etc.) This information will help me route your thread to the correct expert from the team.

    Best Regards,

    Delaney

  • Hi Delaney Woodward,

    I am using UMC SDK (C2000Ware_Motor-control_SDK_5_02_00_00).

    In our custom board we are using F2800157 micro-controller, and our controller power rating is 3KW rated and 5KW peak.

    As I mentioned above, we can be able to achieve the maximum RPM in speed control mode.

    In lower RPM able to achieve expected torque (Torque control mode) but in higher RPM (2000 and above) only we are unable to achieve expected torque, and, in this condition, motor is stopping suddenly and not getting any errors.

    Above mentioned activities, we are doing in BUILD_LEVEL_4 in TORQUE_CONTROL_MODE by using 48V encoder motor.

    Please suggest the way to achieve expected torque at higher RPM as mentioned in above graph.

    Thank you,

    Regards,

    Kirana H P

  • Hi Kirana,

    Alright, thank you for providing that information. I have looped in the relevant expert, and they should have a response back to you in the next couple days.

    Best Regards,

    Delaney

  • First, I have tested TORQUE CONTROL MODE (Current control mode) in BUILD_LEVEL_3 because, in universal motor code TORQUE CONTROL MODE is implemented only for BUILD_LEVEL_3.

    Torque control mode can be implemented in Build level as well. Build level 3 is not a real torque control mode, it's an open loop control, just has current closed-loop.

    In lower RPM able to achieve expected torque (Torque control mode) but in higher RPM (2000 and above) only we are unable to achieve expected torque, and, in this condition, motor is stopping suddenly and not getting any errors.

    You need to check what's the rated frequency of the motor with its manufacturer. Generally, the motor can't output the same torque at low speed (<rated speed at constant torque region) and high speed(>rated speed at constant power region).

  • Hello Yanming Luo,

    Thank you for your reply.

    As you mentioned above, build level 3 is open loop and current closed loop because of this only I am trying to implement above mentioned logic in build level 4 (Closed loop) by surpassing speed loop.

    Can you please, mention, how to implement Torque control mode in build level 4 because as you mentioned above build level 3 is not a real torque control mode.

    As we know, build level 3 is open loop and here we are assigning obj->angleGen_rad (generated angle based on back emf of the motor) to obj->angleFOC_rad and based on this we are running the motor as mentioned below.

    But when I am implementing the same thing in build level 4 and istead of assigning obj->angleGen_rad to obj->angleFOC_rad, if I assign obj->angleENC_rad (Encoder angle) motor is not running. Here I replaced build level 3 with 4.

    Instead of obj->angleENC_rad if I assign obj->angleGen_rad to obj->angleFOC_rad motor is running but as I know in vehicle condition we should run our motor with encoder feedback.

    Please mention the proper way to implement the torque control mode in build level 4.

    Thank you,

    Regards,

    Kirana H P

  • Can you please, mention, how to implement Torque control mode in build level 4 because as you mentioned above build level 3 is not a real torque control mode.

    As you mentioned above to disable the speed loop that has been described in the lab user's guide as well. Please take a look at the lab user's guide as below.

    Universal Project and Lab User’s Guide: https://www.ti.com/lit/spruj26

  • Hello Yanming Luo,

    Thank you for your support.

    I have read the above document but here I am unable to find out the exact information related to how to disable the speed control mode or how to enable the torque control mode. 

    Please specify, which module I need to refer here regarding above issue.

    Here, it mentioned about the Flying start feature for enable or disable the speed closed loop, you are mentioning the same thing or apart from this anything we need to check?

    As I mentioned above, if I assign angleENC_rad to FOC_rad motor is not running and it is only running if I assign angleGen_rad. As I know this angleGen_rad is generated based on the back emf of the motor.

    I need to run my motor with encoder feedback in build level 4 in Torque control mode.

    Please suggest me the way to resolve this issue.

    Thank you,

    Regards,

    Kirana H P

  • You can refer to the lab that can support encoder and you can enable torque control loop by disabling the speed close loop.

  • Hello Yanming Luo,

    Please, specify how to enable torque control loop.

    As I mentioned above we are disabling speed close loop but unable to run the motor with actual encoder feedback.

    We are unable to find out the exact issue here, so, please support for this activity. 

    We want detailed information regarding this, because in above document we are not able to find out the exact information.

    Thank you,

    Regards,

    Kirana H P

  • Hello Yanming Luo,

    We can currently reach the necessary torque at all motor RPMs.

    However, the only problem is that, as I indicated previously, we are unable to operate the motor with real encoder feedback. The motor will continue to operate even if I remove the encoder feedback while it is operating.

    Could you help explain the process for turning off the speed closed loop? Speed closed loop, as I understand it, refers to operating our motor by providing a speed instruction based on sensor feedback.

    Above, you instructed me to turn off the speed close loop. How can I operate my motor with feedback in torque control mode if I turn off this closed loop?

    My specifications are that my motor must be operated in torque control mode and have encoder feedback.

    Please advise how to carry out the requirements mentioned above. Please explain in detail how to activate torque control mode.

    Thank you,

    Regards,

    Kirana H P

  • However, the only problem is that, as I indicated previously, we are unable to operate the motor with real encoder feedback. The motor will continue to operate even if I remove the encoder feedback while it is operating.

    Make sure that the project build configuration is for encoder based sensoed-FOC. Please take a look the lab user's guide and follow the operation instruction to select the right definition symbols.

    Above, you instructed me to turn off the speed close loop. How can I operate my motor with feedback in torque control mode if I turn off this closed loop?

    What do you mean this feedback?

  • Hello Yanming Luo,

    1. Currently, motor is running in encoder based-FOC but here, once the motor crossed CTRL_RUN again, we are assigning below obj->angleGen_rad value to obj->angleFOC_rad in torque control mode. Is this proper?

    2. Whether you are asking me to disable speed closed loop by disabling encoder sensor feedback?

    Can you please elaborate this one.

    3. You mentioned that BUILD_LEVEL_3 is not a proper torque control mode, and it is only current closed loop, so please mention according to you what is meant by torque control mode.

    4. Here, I commented this PI_run_series function in order to disable speed control loop, whether it is a proper way, or I need to enable this one.

    If it is not a proper method, then please specify how to disable speed closed loop?

    Thank you,

    Regards,

    Kirana H P

  • 1. Currently, motor is running in encoder based-FOC but here, once the motor crossed CTRL_RUN again, we are assigning below obj->angleGen_rad value to obj->angleFOC_rad in torque control mode. Is this proper?

    Not correct. Please refer to the Universal Motor Control Lab that can support encoder as well.

    2. Whether you are asking me to disable speed closed loop by disabling encoder sensor feedback?

    Not right. You need to use the position feedback from encoder always. As mentioned above, the Universal Motor Control Lab includes all the functions you want, you can refer to it directly.

    3. You mentioned that BUILD_LEVEL_3 is not a proper torque control mode, and it is only current closed loop, so please mention according to you what is meant by torque control mode.

    No. It's not real torque control mode. It's position open loop control with current closed-loop that is only for hardware validation

    4. Here, I commented this PI_run_series function in order to disable speed control loop, whether it is a proper way, or I need to enable this one.

    If it is not a proper method, then please specify how to disable speed closed loop?

    Just need to set the "flagEnableSpeedCtrl" to "0" in the Universal Motor Control Lab.