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.

TMS320F28034: How to customize firmware based on HVPM Sensorless project?

Part Number: TMS320F28034
Other Parts Discussed in Thread: CONTROLSUITE

Dear C2000 team,

I'm ready to use F28034 to run PMSM motor based on the HVMotorCtrl+PfcKit_v2.1. And I found the project in the below project:

C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Enhanced_Sensorless_2803x

1. But I don't fully understand what some of parameters mean? Can you please help me understand how to get the below parameters?


// Define the electrical motor parametes (Estun Servomotor)
#define RS 2.35 // Stator resistance (ohm)
#define RR      // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_CURRENT 10 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_TORQUE // Base torque (N.m)
#define BASE_FLUX // Base flux linkage (volt.sec/rad)
#define BASE_FREQ 200 // Base electrical frequency (Hz)

#define BASE_FREQ 200 // Base electrical frequency (Hz)

2. If I would like to make my PMSM motor running, what parameter should I changed? Is there any document which can help me? Thanks...

Regards,

Jack

  • Jack,

    Have you read the "Sensorless FOC of PMSM" document that complements the Enhanced Sensorless lab? Following the instructions laid out in that PDF should allow you to run your motor using this ControlSUITE example

    Sean
  • Hi Sean,

    Yes, I have read this document. Since my motor and boards are different with EVM, and I didn't found anything from this document that mention how to get those parameters as in the first post. Can you please help on this?

    And there is no PWMDAC in my boards, did you still recommend me to do this from LEVEL 1 to 7? Is there any other suggestion?

    Regards,

    Jack

  • The lab requires you to give values of

    #define RS 2.35 // Stator resistance (ohm)
    #define LS 0.0065 // Stator inductance (H)
    #define POLES 8 // Number of poles

    These are based on the motor you are trying to spin. You should be able to find these values on the nameplate or datasheet.

    #define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
    #define BASE_CURRENT 10 // Base peak phase current (amp), Max. measurable peak curr.

    Are based on the EVM. BASE_VOLTAGE here is defined as 300V/sqrt(3). You shouldn't need to change this for the HVKit. BASE_CURRENT is defined as 0.5*max EVM current (20A). You shouldn't need to change this either.

    #define BASE_FREQ 200 // Base electrical frequency (Hz)

    Depends on your specific motor, and it's rated speed. You can figure out this value using the relation: (60*RPM)/(# of pole pairs) = BASE_FREQ. Please notes that POLES is the straight number of poles, while the BASE_FREQ equation I gave depends on pole pairs (which is just POLES/2)

    Sean
  • Hi Sean,

    Thanks for your detail explain. It's very clear, and I have gotten those parameters.

    Now I'm following the Incremental System Build for my target boards, and I think I have built the LEVEL 1 successfully, but in Level 2, I found there is comments as shown in below:
    "During the open loop test, Vq Testing, Speed Ref and DC Bus voltages should be adjusted carefully for PM motors so that the generated Bemf is lower than the average voltage applied to motor winding. This will prevent the motor from stalling or vibrating."

    And can you please help me understand how to calculate Vq Testing, Speed Ref and DC Bus voltages? My motor doesn't spin but it is vibrating in this level.

    Regards,
    Jack
  • Hi Sean,

    For your last comment,

    #define BASE_FREQ 200 // Base electrical frequency (Hz)

    Depends on your specific motor, and it's rated speed. You can figure out this value using the relation: (60*RPM)/(# of pole pairs) = BASE_FREQ. Please notes that POLES is the straight number of poles, while the BASE_FREQ equation I gave depends on pole pairs (which is just POLES/2)

    I think the equation should be as below, isn't it?
    ((# of pole pairs)*RPM)/60= BASE_FREQ.

    Regards,
    Jack
  • Yes you are correct Jack, sorry for my incorrect representation of the relation between mechanical and electrical frequencies

    Sean