Jiaxin,
I only can get model number TYI5008-400Kv and MX3508-500Kv. Their information I can found already posted on the first thread.
I try to run increment build level 4 to perform motor id first. After identified motor, motor can run FAST sensorless FOC control without issue.
#elif (USER_MOTOR1 == MX3508_580Kv_24V)
// the motor type
#define USER_MOTOR1_TYPE MOTOR_TYPE_PM
// the number of pole pairs of the motor
#define USER_MOTOR1_NUM_POLE_PAIRS (7)
// the rotor resistance value of the motor, in Ohm
#define USER_MOTOR1_Rr_Ohm (NULL)
// the stator resistance value of the motor, in Ohm
#define USER_MOTOR1_Rs_Ohm (0.0349204764f)
// the stator inductance value of the motor in the direct direction, in H
#define USER_MOTOR1_Ls_d_H (1.97002482e-05f)
// the stator inductance value of the motor in the quadrature direction, in H
#define USER_MOTOR1_Ls_q_H (1.97002482e-05f)
// the rated flux value of the motor, in V/Hz
#define USER_MOTOR1_RATED_FLUX_VpHz (0.00938564725f)
// the Id rated current value of the motor, in A. Induction motors only
#define USER_MOTOR1_MAGNETIZING_CURRENT_A (NULL)
// the maximum current value for stator resistance (R_s) identification, in A
#define USER_MOTOR1_RES_EST_CURRENT_A (1.5f)
// the maximum current value to use for stator inductance identification, in A
#define USER_MOTOR1_IND_EST_CURRENT_A (-1.0f)
// the maximum current value of the motor, in A
#define USER_MOTOR1_MAX_CURRENT_A (15.0f)
// the R/L excitation frequency for motor parameters identification, in Hz
#define USER_MOTOR1_FLUX_EXC_FREQ_Hz (60.0f)
// the inertia that describes the amount of mass, in Kg.m2
#define USER_MOTOR1_INERTIA_Kgm2 (7.06154e-06)
// the rated voltage of the motor, V
#define USER_MOTOR1_RATED_VOLTAGE_V (24.0f) // V
// the minimum rotation frequency if the motor (Hz)
#define USER_MOTOR1_FREQ_MIN_Hz (9.0f) // Hz
// the maximum/base rotation frequency of the motor (Hz)
#define USER_MOTOR1_FREQ_MAX_Hz (1600.0f) // Hz
// V/f Profile Parameters for open-loop in build level 2
// the low frequency f_low of V/f profile, in Hz,
// set to 10% of rated motor frequency
#define USER_MOTOR1_FREQ_LOW_Hz (10.0f) // Hz
// the high frequency f_high of V/f profile, in Hz,
// set to 100% of rated motor frequency
#define USER_MOTOR1_FREQ_HIGH_Hz (600.0f) // Hz
// the minimum voltage V_min of V/f profile,
// the value is suggested to set to 15% of rated motor voltage, in Volt.
#define USER_MOTOR1_VOLT_MIN_V (2.0f) // Volt
// the maximum voltage, V_max of V/f profile,
// the value is suggested to set to 100% of rated motor voltage, in Volt
#define USER_MOTOR1_VOLT_MAX_V (24.0f) // Volt
// the current increasing delta value for running the motor with force open-loop , in A
#define USER_MOTOR1_FORCE_DELTA_A (0.05f) // A
// the current increasing delta value for motor rotor alignment, in A
#define USER_MOTOR1_ALIGN_DELTA_A (0.01f) // A
// the current for running the motor with force open-loop or startup, in A
#define USER_MOTOR1_FLUX_CURRENT_A (0.5f) // A
// the current for motor rotor alignment, in A
#define USER_MOTOR1_ALIGN_CURRENT_A (3.0f) // A
// the current for start to run motor with closed-loop when the speed is
// lower than the startup setting speed, in A
#define USER_MOTOR1_STARTUP_CURRENT_A (3.0f) // A
// the current for running the motor with torque control mode when start the motor, in A.
#define USER_MOTOR1_TORQUE_CURRENT_A (4.0f) // A
// the over-current threshold for the motor, in A.
// The value can be set to 50%~300% of the rated current of the motor
#define USER_MOTOR1_OVER_CURRENT_A (10.0f) // A
// the speed threshold for start the motor, in Hz
#define USER_MOTOR1_SPEED_START_Hz (35.0f) // Hz
// the speed threshold for running the motor with force open-loop, in Hz
#define USER_MOTOR1_SPEED_FORCE_Hz (30.0f) // Hz
// the acceleration for start the motor, in Hz/s.
#define USER_MOTOR1_ACCEL_START_Hzps (10.0f) // Hz/s
// the maximum acceleration for running the motor, in Hz/s
#define USER_MOTOR1_ACCEL_MAX_Hzps (20.0f) // Hz/s
// the speed threshold for running the motor with flying start mode, in Hz
#define USER_MOTOR1_SPEED_FS_Hz (3.0f) // Hz
// the current for motor brake, in A.
#define USER_MOTOR1_BRAKE_CURRENT_A (1.0f) // A
// the duration time for motor brake, in 5ms time base
#define USER_MOTOR1_BRAKE_TIME_DELAY (12000U) // 60s/5ms
#if defined(MOTOR1_FAST)
// the slope coefficient for Ld compensation, (0.0f~0.5f)
#define USER_MOTOR1_Ls_d_COMP_COEF (0.15f) // 0.0f~0.5f
// the slope coefficient for Lq compensation, (0.0f~0.5f)
#define USER_MOTOR1_Ls_q_COMP_COEF (0.35f) // 0.0f~0.5f
// the minimum inductance coefficient for inductance compensation, (0.0f~0.5f)
#define USER_MOTOR1_Ls_MIN_NUM_COEF (0.55f) // 0.5f~1.0f
// the near zero speed limit for electrical frequency estimation, Hz.
// The flux integrator uses this limit to regulate flux integration
#define USER_MOTOR1_FREQ_NEARZEROLIMIT_Hz (5.0f) // Hz
// the waiting time without enabling the Rs online clibrartion, in 5ms
#define USER_MOTOR1_RSONLINE_WAIT_TIME (60000U) // 5min/300s at 5ms base
// the the duration time with enabling the Rs online clibrartion, in 5ms
#define USER_MOTOR1_RSONLINE_WORK_TIME (24000U) //2min/120s at 5ms base
#endif // MOTOR1_FAST
#if defined(MOTOR1_ESMO)
// Only for eSMO
// PLL (phase-locked loop)
// PID proportional, integral, derivative
// the sliding mode control maximum gain that equals to Ke*fmax/vscale/sqrt(2)*factor(max),
// tune the factor(0.1~10) based the test status
#define USER_MOTOR1_KSLIDE_MAX (0.50f)
// the sliding mode control minimum gain that equals to Ke*fmin/vscale/sqrt(2)*factor(min),
// tune the factor(0.1~10) based the test status
#define USER_MOTOR1_KSLIDE_MIN (0.10f)
// the PLL control maximum gain that equals to 2*(Damping factor)*(Natural frequency)*factor(max),
// tune the factor(0.1~10) based the test status
#define USER_MOTOR1_PLL_KP_MAX (10.0f)
// the PLL control minimum gain that equals to 2*(Damping factor)*(Natural frequency)*factor(min),
// tune the factor(0.1~5) based the test status
#define USER_MOTOR1_PLL_KP_MIN (1.50f)
// the PLL control gain adjusting coefficient that
// equals to (Kpll_max-Kpll_min)/fscale/fmax
#define USER_MOTOR1_PLL_KP_SF (5.0f)
// the phase-locked loop control integration gain that
// equals to (Natural frequency)*(Natural frequency)*Ts
#define USER_MOTOR1_PLL_KI (2.8125E-06f) // Not used, reserve
// the threshold of the estimated current error for sliding mode control that
// equals to (motor maximum BEMF voltage / rated voltage), (0.3~0.5 )
#define USER_MOTOR1_BEMF_THRESHOLD (0.5f)
// the parameters of the low-pass filter for the estimated back EMF,
// Kslf equal to (fc*2*PI()*Ts), (0.5~2.5)
#define USER_MOTOR1_BEMF_KSLF_FC_SF (2.0f)
// the offset coefficient to compensate the error by using
// the low-pass filter that equals to 1.0, or [0.5~1.5]
#define USER_MOTOR1_THETA_OFFSET_SF (1.0f)
// the cut-off frequency of the low-pass filter to calculate the estimated speed, (100~400)
#define USER_MOTOR1_SPEED_LPF_FC_Hz (200.0f)
#endif // MOTOR1_ESMO
// Current and Speed PI Regulators Tuning Coefficient
// the low speed threshold for adjusting the Kp and Ki of the speed PI regulator
#define USER_MOTOR1_GAIN_SPEED_LOW_Hz (60.0f) // 10%~50% of the rated speed
// the high speed threshold for adjusting the Kp and Ki of the speed PI regulator
#define USER_MOTOR1_GAIN_SPEED_HIGH_Hz (150.0f) // 50%~100% of the rated speed
// the gain coefficient to adjust the Kp of the speed PI regulator for startup
#define USER_MOTOR1_KP_SPD_START_SF (1.5f) // 0.1~100.0
// the gain coefficient to adjust the Ki of the speed PI regulator for startup
#define USER_MOTOR1_KI_SPD_START_SF (1.5f) // 0.1~10.0
// the low gain coefficient to adjust the Kp of the speed PI regulator
#define USER_MOTOR1_KP_SPD_LOW_SF (2.0f) // 0.1~100.0
// the low gain coefficient to adjust the Ki of the speed PI regulator
#define USER_MOTOR1_KI_SPD_LOW_SF (2.0f) // 0.1~10.0
// the high gain coefficient to adjust the Kp of the speed PI regulator
#define USER_MOTOR1_KP_SPD_HIGH_SF (1.0f) // 0.1~100.0
// the high gain coefficient to adjust the Ki of the speed PI regulator
#define USER_MOTOR1_KI_SPD_HIGH_SF (1.0f) // 0.1~10.0
// the low current threshold to adjust the Kp and Ki of the q-axis current PI regulator
#define USER_MOTOR1_GAIN_IQ_LOW_A (2.0f) // 10%~50% of the rated current
// the high current threshold to adjust the Kp and Ki of the q-axis current PI regulator
#define USER_MOTOR1_GAIN_IQ_HIGH_A (6.0f) // 50%~100% of the rated current
// the gain coefficient to adjust the Kp of the q-axis current PI regulator for startup
#define USER_MOTOR1_KP_IQ_START_SF (1.5f) // 0.1~10.0
// the gain coefficient to adjust the Ki of the q-axis current PI regulator for startup
#define USER_MOTOR1_KI_IQ_START_SF (1.5f) // 0.1~10.0
// the low gain coefficient to adjust the Kp of the q-axis current PI regulator
#define USER_MOTOR1_KP_IQ_LOW_SF (2.0f) // 0.1~10.0
// the low gain coefficient to adjust the Ki of the q-axis current PI regulator
#define USER_MOTOR1_KI_IQ_LOW_SF (2.0f) // 0.1~10.0
// the high gain coefficient to adjust the Kp of the d-axis current PI regulator
#define USER_MOTOR1_KP_IQ_HIGH_SF (1.0f) // 0.1~10.0
// the high gain coefficient to adjust the Ki of the d-axis current PI regulator
#define USER_MOTOR1_KI_IQ_HIGH_SF (1.0f) // 0.1~10.0
// the gain coefficient to adjust the Kp of the q-axis current PI regulator
#define USER_MOTOR1_KP_ID_SF (1.0f) // 0.1~10.0
// the gain coefficient to adjust the Ki of the q-axis current PI regulator
#define USER_MOTOR1_KI_ID_SF (1.0f) // 0.1~10.0
However, I used identified parameter and retest incremental build level2. I got OCP event. the current waveform as
The same happened on TYI5008-400Kv motor. Incremental build level4 can run successfully but faild with level 2.
Here is the identified parameters and current capture.
#elif (USER_MOTOR1 == TYI5008_400Kv_24V)
// the motor type
#define USER_MOTOR1_TYPE MOTOR_TYPE_PM
// the number of pole pairs of the motor
#define USER_MOTOR1_NUM_POLE_PAIRS (7)
// the rotor resistance value of the motor, in Ohm
#define USER_MOTOR1_Rr_Ohm (NULL)
// the stator resistance value of the motor, in Ohm
#define USER_MOTOR1_Rs_Ohm (0.0134197949f)
// the stator inductance value of the motor in the direct direction, in H
#define USER_MOTOR1_Ls_d_H (1.07000251e-05f)
// the stator inductance value of the motor in the quadrature direction, in H
#define USER_MOTOR1_Ls_q_H (1.07000251e-05f)
// the rated flux value of the motor, in V/Hz
#define USER_MOTOR1_RATED_FLUX_VpHz (0.0131569766f)
// the Id rated current value of the motor, in A. Induction motors only
#define USER_MOTOR1_MAGNETIZING_CURRENT_A (NULL)
// the maximum current value for stator resistance (R_s) identification, in A
#define USER_MOTOR1_RES_EST_CURRENT_A (1.5f)
// the maximum current value to use for stator inductance identification, in A
#define USER_MOTOR1_IND_EST_CURRENT_A (-1.0f)
// the maximum current value of the motor, in A
#define USER_MOTOR1_MAX_CURRENT_A (15.0f)
// the R/L excitation frequency for motor parameters identification, in Hz
#define USER_MOTOR1_FLUX_EXC_FREQ_Hz (60.0f)
// the inertia that describes the amount of mass, in Kg.m2
#define USER_MOTOR1_INERTIA_Kgm2 (7.06154e-06)
// the rated voltage of the motor, V
#define USER_MOTOR1_RATED_VOLTAGE_V (24.0f) // V
// the minimum rotation frequency if the motor (Hz)
#define USER_MOTOR1_FREQ_MIN_Hz (9.0f) // Hz
// the maximum/base rotation frequency of the motor (Hz)
#define USER_MOTOR1_FREQ_MAX_Hz (1120.0f) // Hz
// V/f Profile Parameters for open-loop in build level 2
// the low frequency f_low of V/f profile, in Hz,
// set to 10% of rated motor frequency
#define USER_MOTOR1_FREQ_LOW_Hz (10.0f) // Hz
// the high frequency f_high of V/f profile, in Hz,
// set to 100% of rated motor frequency
#define USER_MOTOR1_FREQ_HIGH_Hz (350.0f) // Hz
// the minimum voltage V_min of V/f profile,
// the value is suggested to set to 15% of rated motor voltage, in Volt.
#define USER_MOTOR1_VOLT_MIN_V (2.0f) // Volt
// the maximum voltage, V_max of V/f profile,
// the value is suggested to set to 100% of rated motor voltage, in Volt
#define USER_MOTOR1_VOLT_MAX_V (24.0f) // Volt
// the current increasing delta value for running the motor with force open-loop , in A
#define USER_MOTOR1_FORCE_DELTA_A (0.05f) // A
// the current increasing delta value for motor rotor alignment, in A
#define USER_MOTOR1_ALIGN_DELTA_A (0.01f) // A
// the current for running the motor with force open-loop or startup, in A
#define USER_MOTOR1_FLUX_CURRENT_A (0.5f) // A
// the current for motor rotor alignment, in A
#define USER_MOTOR1_ALIGN_CURRENT_A (3.0f) // A
// the current for start to run motor with closed-loop when the speed is
// lower than the startup setting speed, in A
#define USER_MOTOR1_STARTUP_CURRENT_A (3.0f) // A
// the current for running the motor with torque control mode when start the motor, in A.
#define USER_MOTOR1_TORQUE_CURRENT_A (4.0f) // A
// the over-current threshold for the motor, in A.
// The value can be set to 50%~300% of the rated current of the motor
#define USER_MOTOR1_OVER_CURRENT_A (10.0f) // A
// the speed threshold for start the motor, in Hz
#define USER_MOTOR1_SPEED_START_Hz (35.0f) // Hz
// the speed threshold for running the motor with force open-loop, in Hz
#define USER_MOTOR1_SPEED_FORCE_Hz (30.0f) // Hz
// the acceleration for start the motor, in Hz/s.
#define USER_MOTOR1_ACCEL_START_Hzps (10.0f) // Hz/s
// the maximum acceleration for running the motor, in Hz/s
#define USER_MOTOR1_ACCEL_MAX_Hzps (20.0f) // Hz/s
// the speed threshold for running the motor with flying start mode, in Hz
#define USER_MOTOR1_SPEED_FS_Hz (3.0f) // Hz
// the current for motor brake, in A.
#define USER_MOTOR1_BRAKE_CURRENT_A (1.0f) // A
// the duration time for motor brake, in 5ms time base
#define USER_MOTOR1_BRAKE_TIME_DELAY (12000U) // 60s/5ms
#if defined(MOTOR1_FAST)
// the slope coefficient for Ld compensation, (0.0f~0.5f)
#define USER_MOTOR1_Ls_d_COMP_COEF (0.15f) // 0.0f~0.5f
// the slope coefficient for Lq compensation, (0.0f~0.5f)
#define USER_MOTOR1_Ls_q_COMP_COEF (0.35f) // 0.0f~0.5f
// the minimum inductance coefficient for inductance compensation, (0.0f~0.5f)
#define USER_MOTOR1_Ls_MIN_NUM_COEF (0.55f) // 0.5f~1.0f
// the near zero speed limit for electrical frequency estimation, Hz.
// The flux integrator uses this limit to regulate flux integration
#define USER_MOTOR1_FREQ_NEARZEROLIMIT_Hz (5.0f) // Hz
// the waiting time without enabling the Rs online clibrartion, in 5ms
#define USER_MOTOR1_RSONLINE_WAIT_TIME (60000U) // 5min/300s at 5ms base
// the the duration time with enabling the Rs online clibrartion, in 5ms
#define USER_MOTOR1_RSONLINE_WORK_TIME (24000U) //2min/120s at 5ms base
#endif // MOTOR1_FAST
#if defined(MOTOR1_ESMO)
// Only for eSMO
// PLL (phase-locked loop)
// PID proportional, integral, derivative
// the sliding mode control maximum gain that equals to Ke*fmax/vscale/sqrt(2)*factor(max),
// tune the factor(0.1~10) based the test status
#define USER_MOTOR1_KSLIDE_MAX (0.50f)
// the sliding mode control minimum gain that equals to Ke*fmin/vscale/sqrt(2)*factor(min),
// tune the factor(0.1~10) based the test status
#define USER_MOTOR1_KSLIDE_MIN (0.10f)
// the PLL control maximum gain that equals to 2*(Damping factor)*(Natural frequency)*factor(max),
// tune the factor(0.1~10) based the test status
#define USER_MOTOR1_PLL_KP_MAX (10.0f)
// the PLL control minimum gain that equals to 2*(Damping factor)*(Natural frequency)*factor(min),
// tune the factor(0.1~5) based the test status
#define USER_MOTOR1_PLL_KP_MIN (1.50f)
// the PLL control gain adjusting coefficient that
// equals to (Kpll_max-Kpll_min)/fscale/fmax
#define USER_MOTOR1_PLL_KP_SF (5.0f)
// the phase-locked loop control integration gain that
// equals to (Natural frequency)*(Natural frequency)*Ts
#define USER_MOTOR1_PLL_KI (2.8125E-06f) // Not used, reserve
// the threshold of the estimated current error for sliding mode control that
// equals to (motor maximum BEMF voltage / rated voltage), (0.3~0.5 )
#define USER_MOTOR1_BEMF_THRESHOLD (0.5f)
// the parameters of the low-pass filter for the estimated back EMF,
// Kslf equal to (fc*2*PI()*Ts), (0.5~2.5)
#define USER_MOTOR1_BEMF_KSLF_FC_SF (2.0f)
// the offset coefficient to compensate the error by using
// the low-pass filter that equals to 1.0, or [0.5~1.5]
#define USER_MOTOR1_THETA_OFFSET_SF (1.0f)
// the cut-off frequency of the low-pass filter to calculate the estimated speed, (100~400)
#define USER_MOTOR1_SPEED_LPF_FC_Hz (200.0f)
#endif // MOTOR1_ESMO
// Current and Speed PI Regulators Tuning Coefficient
// the low speed threshold for adjusting the Kp and Ki of the speed PI regulator
#define USER_MOTOR1_GAIN_SPEED_LOW_Hz (60.0f) // 10%~50% of the rated speed
// the high speed threshold for adjusting the Kp and Ki of the speed PI regulator
#define USER_MOTOR1_GAIN_SPEED_HIGH_Hz (150.0f) // 50%~100% of the rated speed
// the gain coefficient to adjust the Kp of the speed PI regulator for startup
#define USER_MOTOR1_KP_SPD_START_SF (1.5f) // 0.1~100.0
// the gain coefficient to adjust the Ki of the speed PI regulator for startup
#define USER_MOTOR1_KI_SPD_START_SF (1.5f) // 0.1~10.0
// the low gain coefficient to adjust the Kp of the speed PI regulator
#define USER_MOTOR1_KP_SPD_LOW_SF (2.0f) // 0.1~100.0
// the low gain coefficient to adjust the Ki of the speed PI regulator
#define USER_MOTOR1_KI_SPD_LOW_SF (2.0f) // 0.1~10.0
// the high gain coefficient to adjust the Kp of the speed PI regulator
#define USER_MOTOR1_KP_SPD_HIGH_SF (1.0f) // 0.1~100.0
// the high gain coefficient to adjust the Ki of the speed PI regulator
#define USER_MOTOR1_KI_SPD_HIGH_SF (1.0f) // 0.1~10.0
// the low current threshold to adjust the Kp and Ki of the q-axis current PI regulator
#define USER_MOTOR1_GAIN_IQ_LOW_A (2.0f) // 10%~50% of the rated current
// the high current threshold to adjust the Kp and Ki of the q-axis current PI regulator
#define USER_MOTOR1_GAIN_IQ_HIGH_A (6.0f) // 50%~100% of the rated current
// the gain coefficient to adjust the Kp of the q-axis current PI regulator for startup
#define USER_MOTOR1_KP_IQ_START_SF (1.5f) // 0.1~10.0
// the gain coefficient to adjust the Ki of the q-axis current PI regulator for startup
#define USER_MOTOR1_KI_IQ_START_SF (1.5f) // 0.1~10.0
// the low gain coefficient to adjust the Kp of the q-axis current PI regulator
#define USER_MOTOR1_KP_IQ_LOW_SF (2.0f) // 0.1~10.0
// the low gain coefficient to adjust the Ki of the q-axis current PI regulator
#define USER_MOTOR1_KI_IQ_LOW_SF (2.0f) // 0.1~10.0
// the high gain coefficient to adjust the Kp of the d-axis current PI regulator
#define USER_MOTOR1_KP_IQ_HIGH_SF (1.0f) // 0.1~10.0
// the high gain coefficient to adjust the Ki of the d-axis current PI regulator
#define USER_MOTOR1_KI_IQ_HIGH_SF (1.0f) // 0.1~10.0
// the gain coefficient to adjust the Kp of the q-axis current PI regulator
#define USER_MOTOR1_KP_ID_SF (1.0f) // 0.1~10.0
// the gain coefficient to adjust the Ki of the q-axis current PI regulator
#define USER_MOTOR1_KI_ID_SF (1.0f) // 0.1~10.0
Both of these two case can not be solved by just change over current limitation.
Any parameter can be used to decrease the inrush current in V/F open loop control?
Regards
Andre