Hello InstaSPIN community,
We are using the F2806x ISO controlCARD connected in our own designed board. The motor I am using is 4KW – 28V – 117A – 2530 RPM, my VDC is a battery 48V – 500Ah
We can identify the motor's parameters successfully and the labs work well until lab 5c. In the lab 5c we can identify the motor inertia and to control the motor velocity successfully.
Some user.h parameters :
#define USER_IQ_FULL_SCALE_CURRENT_A (800.0)
#define USER_ADC_FULL_SCALE_CURRENT_A (400.0)
#define USER_MOTOR_TYPE MOTOR_Type_Induction
#define USER_MOTOR_NUM_POLE_PAIRS (2)
#define USER_MOTOR_Rr (0.00603492)
#define USER_MOTOR_Rs (0.01054548)
#define USER_MOTOR_Ls_d (0.0001234099)
#define USER_MOTOR_Ls_q (0.0001234099)
#define USER_MOTOR_RATED_FLUX (0.240211)
#define USER_MOTOR_MAGNETIZING_CURRENT (27.86102)
#define USER_MOTOR_RES_EST_CURRENT (25.0)
#define USER_MOTOR_IND_EST_CURRENT (NULL)
#define USER_MOTOR_MAX_CURRENT (100.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz (5.0)
#define USER_MOTOR_ENCODER_LINES (64.0)
#define USER_MOTOR_MAX_SPEED_KRPM (3.0)
#define USER_SYSTEM_INERTIA (11.11254972)
#define USER_SYSTEM_FRICTION (3.04806453)
When I compile the lab 5d some warnings are generated: #175-D floating-point value does not fit in required integral type proj_lab05d.c
When I run, the motor's velocity is not the same as SpeedRef. It is very slow (about 0.031Krpm) even if I set any value of SpeedRef.
I have tried to change the code:
// set the maximum and minimum values for Iq reference
STVELCTL_setOutputMaximums(stObj->velCtlHandle, _IQmpy(gMotorVars.SpinTAC.VelCtlOutputMax_kA, _IQ(1.0/USER_IQ_FULL_SCALE_CURRENT_A/1000)), _IQmpy(gMotorVars.SpinTAC.VelCtlOutputMin_kA, _IQ(1.0/USER_IQ_FULL_SCALE_CURRENT_A/1000)));
// initialize the watch window with maximum and minimum Iq reference
gMotorVars.SpinTAC.VelCtlOutputMax_kA = _IQmpy(STVELCTL_getOutputMaximum(stObj->velCtlHandle), _IQ(USER_IQ_FULL_SCALE_CURRENT_A/1000));
gMotorVars.SpinTAC.VelCtlOutputMin_kA = _IQmpy(STVELCTL_getOutputMinimum(stObj->velCtlHandle), _IQ(USER_IQ_FULL_SCALE_CURRENT_A/1000));
// get the Iq reference from the speed controller
gMotorVars.IqRef_kA = _IQmpy(STVELCTL_getTorqueReference(stObj->velCtlHandle), _IQ(USER_IQ_FULL_SCALE_CURRENT_A/1000));
There are no warnings anymore, but the motor's velocity is still slow. What can I try to solve the problem ?
Thanks in Advance !