Part Number: DRV8312-69M-KIT
Other Parts Discussed in Thread: DRV8312, MOTORWARE
So, im currently trying to setup an motor for the DRV8312 EVM kit.
The motor im using is an Premotec BL21EE (datasheet here )
When I try to run the motorware lab02b or lab02c - I either get a very high or very low USER_MOTOR_Ls_d
I depends on the current used to identify the motor
if I use something like
#define USER_MOTOR_RES_EST_CURRENT (0.1)
#define USER_MOTOR_IND_EST_CURRENT (-0.1)
I will get the following values:
Or if I use a higher current like 0.25 - I will get way higher Lsq_H like this:
Both values will trigger either the error
USER_ErrorCode_ctrlFreq_Hz_Low
or
USER_ErrorCode_ctrlFreq_Hz_High
What do I do wrong since it ends on the diffrent ends of the scale?
The motor is running during identification, and it is drawing around 0.34-0.4A from my 12V PSU.
Is there some previous values that I should have set?
This is my motor defenition:
//! \brief USER MOTOR & ID SETTINGS // ************************************************************************** //! \brief Define each motor with a unique name and ID number // BLDC & SMPM motors #define Estun_EMJ_04APB22 101 #define Anaheim_BLY172S 102 #define teknic_2310P 108 #define My_Motor 103 // IPM motors // If user provides separate Ls-d, Ls-q // else treat as SPM with user or identified average Ls #define Belt_Drive_Washer_IPM 201 // ACIM motors #define Marathon_5K33GN2A 301 //! \brief Uncomment the motor which should be included at compile //! \brief These motor ID settings and motor parameters are then available to be used by the control system //! \brief Once your ideal settings and parameters are identified update the motor section here so it is available in the binary code //#define USER_MOTOR Estun_EMJ_04APB22 //#define USER_MOTOR Anaheim_BLY172S #define USER_MOTOR My_Motor //#define USER_MOTOR Belt_Drive_Washer_IPM //#define USER_MOTOR Marathon_5K33GN2A //#define USER_MOTOR teknic_2310P #if (USER_MOTOR == Estun_EMJ_04APB22) // Name must match the motor #define #define USER_MOTOR_TYPE MOTOR_Type_Pm // Motor_Type_Pm (All Synchronous: BLDC, PMSM, SMPM, IPM) or Motor_Type_Induction (Asynchronous ACI) #define USER_MOTOR_NUM_POLE_PAIRS (4) // PAIRS, not total poles. Used to calculate user RPM from rotor Hz only #define USER_MOTOR_Rr (NULL) // Induction motors only, else NULL #define USER_MOTOR_Rs (2.303403) // Identified phase to neutral resistance in a Y equivalent circuit (Ohms, float) #define USER_MOTOR_Ls_d (0.008464367) // For PM, Identified average stator inductance (Henry, float) #define USER_MOTOR_Ls_q (0.008464367) // For PM, Identified average stator inductance (Henry, float) #define USER_MOTOR_RATED_FLUX (0.38) // Identified TOTAL flux linkage between the rotor and the stator (V/Hz) #define USER_MOTOR_MAGNETIZING_CURRENT (NULL) // Induction motors only, 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 (-1.0) // During Motor ID, maximum current (negative Amperes, float) used for Ls estimation, use just enough to enable rotation #define USER_MOTOR_MAX_CURRENT (3.82) // 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 (20.0) // During Motor ID, maximum commanded speed (Hz, float), ~10% rated #elif (USER_MOTOR == Anaheim_BLY172S) #define USER_MOTOR_TYPE MOTOR_Type_Pm #define USER_MOTOR_NUM_POLE_PAIRS (4) #define USER_MOTOR_Rr (NULL) #define USER_MOTOR_Rs (0.4051206) #define USER_MOTOR_Ls_d (0.0006398709) #define USER_MOTOR_Ls_q (0.0006398709) #define USER_MOTOR_RATED_FLUX (0.03416464) #define USER_MOTOR_MAGNETIZING_CURRENT (NULL) #define USER_MOTOR_RES_EST_CURRENT (1.0) #define USER_MOTOR_IND_EST_CURRENT (-1.0) #define USER_MOTOR_MAX_CURRENT (5.0) #define USER_MOTOR_FLUX_EST_FREQ_Hz (20.0) #define USER_MOTOR_FREQ_LOW (10.0) // Hz - suggested to set to 10% of rated motor frequency #define USER_MOTOR_FREQ_HIGH (100.0) // Hz - suggested to set to 100% of rated motor frequency #define USER_MOTOR_FREQ_MAX (120.0) // Hz - suggested to set to 120% of rated motor frequency #define USER_MOTOR_VOLT_MIN (3.0) // Volt - suggested to set to 15% of rated motor voltage #define USER_MOTOR_VOLT_MAX (18.0) // Volt - suggested to set to 100% of rated motor voltage #elif (USER_MOTOR == My_Motor) #define USER_MOTOR_TYPE MOTOR_Type_Pm #define USER_MOTOR_NUM_POLE_PAIRS (6) #define USER_MOTOR_Rr (NULL) #define USER_MOTOR_Rs (30.2) #define USER_MOTOR_Ls_d (NULL) #define USER_MOTOR_Ls_q (NULL) #define USER_MOTOR_RATED_FLUX (NULL) #define USER_MOTOR_MAGNETIZING_CURRENT (NULL) #define USER_MOTOR_RES_EST_CURRENT (0.1) #define USER_MOTOR_IND_EST_CURRENT (-0.1) #define USER_MOTOR_MAX_CURRENT (0.3) #define USER_MOTOR_FLUX_EST_FREQ_Hz (40.0) #define USER_MOTOR_FREQ_LOW (10.0) // Hz - suggested to set to 10% of rated motor frequency #define USER_MOTOR_FREQ_HIGH (500.0) // Hz - suggested to set to 100% of rated motor frequency #define USER_MOTOR_FREQ_MAX (600.0) // Hz - suggested to set to 120% of rated motor frequency #define USER_MOTOR_VOLT_MIN (3.0) // Volt - suggested to set to 15% of rated motor voltage #define USER_MOTOR_VOLT_MAX (12.0) // Volt - suggested to set to 100% of rated motor voltage


