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.

Compiler/TMS320F28027: tms320f28027

Part Number: TMS320F28027


Tool/software: TI C/C++ Compiler

Sir, 

   Is it possible to run motor to 90000 rpm with lab05. Please give  the maximum possiple speed and that is the limiting factor the speed. Presently i able to increase up to 55000 rpm.

  • This should be a real engineering question, we can't give your clear answer since it's lack of enough information. That depends on the pole pair, the rated speed of the motor, the control algorithm you used, and the running performance you want. You have to do the evaluation by yourself if you want to get a further answer. 

  • Sir,

         I am  working on a motor with 2 pole pair ,rated rpm 95000  and control alogorithm used is speed control using instaspin_foc (PROJ_LAB05b)

    USER.H values i have given is as  follows,

     USER_MOTOR_Rs            (0.29)                          //0.411;//0.880;
     USER_MOTOR_Ls_d         (0.00068)                   // 0.00091;//0.0000156076342961;//0.0017259;
     USER_MOTOR_Ls_q         (0.00068)                   //0.00091;//0.0000156076342961;//0.0017259; USER_MOTOR_RATED_FLUX = 0.006;//0.0276;
    USER_MOTOR_NUM_POLE_PAIRS        ( 2)       //4;
    #define USER_IQ_FULL_SCALE_FREQ_Hz (1386.0) //(1600.0) // (800.0)

    #define USER_IQ_FULL_SCALE_VOLTAGE_V (48.0) // (48.0) // (24.0) // 24.0 Example for boostxldrv8301_revB typical usage and the Anaheim motor

    #define USER_ADC_FULL_SCALE_VOLTAGE_V (71.3)//(52.368) //(26.314) // 26.314 boostxldrv8301_revB voltage scaling

    #define USER_VOLTAGE_SF ((float_t)((USER_ADC_FULL_SCALE_VOLTAGE_V)/(USER_IQ_FULL_SCALE_VOLTAGE_V)))

    #define USER_IQ_FULL_SCALE_CURRENT_A (20.0) // 20.0 Example for boostxldrv8301_revB typical usage

    #define USER_ADC_FULL_SCALE_CURRENT_A (20.625)//(33.0) // 33.0 boostxldrv8301_revB current scaling

    #define USER_CURRENT_SF ((float_t)((USER_ADC_FULL_SCALE_CURRENT_A)/(USER_IQ_FULL_SCALE_CURRENT_A)))

    #define USER_NUM_CURRENT_SENSORS (3) // 3 Preferred setting for best performance across full speed range, allows for 100% duty cycle

    #define USER_NUM_VOLTAGE_SENSORS (3) // 3 Required

    #define I_A_offset (0.5226)// (0.849754870)//(0.839922905)//
    #define I_B_offset (0.5224)// (0.849754870)//(0.848239481)// (0.84156394)//
    #define I_C_offset (0.5214)// (0.849754870)//(0.841061115)//(0.8358885646)//

    #define V_A_offset (0.304292381)//(0.1521461905)//(0.4941458106)//
    #define V_B_offset (0.303311348)//(0.151655674)//(0.4941235185)//
    #define V_C_offset (0.302152455)//(0.151655674)//(0.4918507934)//


    //! \brief CLOCKS & TIMERS
    // **************************************************************************

    #define USER_SYSTEM_FREQ_MHz (60.0)

    #define USER_PWM_FREQ_kHz (60.0)// (60.0)// (45.0) //30.0 

    #define USER_MAX_VS_MAG_PU (1.0) // Set to 1.0 if a current reconstruction technique is not used. Look at the module svgen_current in lab10a-x for more info.

    #define USER_PWM_PERIOD_usec (1000.0/USER_PWM_FREQ_kHz)

    #define USER_ISR_FREQ_Hz ((float_t)USER_PWM_FREQ_kHz * 1000.0 / (float_t)USER_NUM_PWM_TICKS_PER_ISR_TICK)

    #define USER_ISR_PERIOD_usec (USER_PWM_PERIOD_usec * (float_t)USER_NUM_PWM_TICKS_PER_ISR_TICK)

    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (3)

    #define USER_NUM_ISR_TICKS_PER_CTRL_TICK (1) // 2 Example, controller clock rate (CTRL) runs at PWM / 2; ex 30 KHz PWM, 15 KHz control

    #define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK (1) // 1 Typical, Forward FOC current controller (Iq/Id/IPARK/SVPWM) runs at same rate as CTRL.

    #define USER_NUM_CTRL_TICKS_PER_EST_TICK (1) // 1 Typical, FAST estimator runs at same rate as CTRL;

    #define USER_NUM_CTRL_TICKS_PER_SPEED_TICK (15) // 15 Typical to match PWM, ex: 15KHz PWM, controller, and current loop, 1KHz speed loop


    #define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK (15) // 15 Typical to match PWM, ex: 10KHz controller & current loop, 1KHz speed loop, 1 KHz Trajectory

    #define USER_CTRL_FREQ_Hz (uint_least32_t)(USER_ISR_FREQ_Hz/USER_NUM_ISR_TICKS_PER_CTRL_TICK)

    #define USER_EST_FREQ_Hz (uint_least32_t)(USER_CTRL_FREQ_Hz/USER_NUM_CTRL_TICKS_PER_EST_TICK)


    #define USER_TRAJ_FREQ_Hz (uint_least32_t)(USER_CTRL_FREQ_Hz/USER_NUM_CTRL_TICKS_PER_TRAJ_TICK)


    #define USER_CTRL_PERIOD_usec (USER_ISR_PERIOD_usec * USER_NUM_ISR_TICKS_PER_CTRL_TICK)


    #define USER_CTRL_PERIOD_sec ((float_t)USER_CTRL_PERIOD_usec/(float_t)1000000.0)


    //! \brief LIMITS
    // **************************************************************************
    //! \brief Defines the maximum negative current to be applied in Id reference
    //! \brief Used in field weakening only, this is a safety setting (e.g. to protect against demagnetization)
    //! \brief User must also be aware that overall current magnitude [sqrt(Id^2 + Iq^2)] should be kept below any machine design specifications
    #define USER_MAX_NEGATIVE_ID_REF_CURRENT_A (-0.5 * USER_MOTOR_MAX_CURRENT) // -0.5 * USER_MOTOR_MAX_CURRENT Example, adjust to meet safety needs of your motor

    //! \brief Defines the low speed limit for the flux integrator, pu
    //! \brief This is the speed range (CW/CCW) at which the ForceAngle object is active, but only if Enabled
    //! \brief Outside of this speed - or if Disabled - the ForcAngle will NEVER be active and the angle is provided by FAST only
    #define USER_ZEROSPEEDLIMIT (1.0 / USER_IQ_FULL_SCALE_FREQ_Hz) // 0.002 pu, 1-5 Hz typical; Hz = USER_ZEROSPEEDLIMIT * USER_IQ_FULL_SCALE_FREQ_Hz

    //! \brief Defines the force angle frequency, Hz
    //! \brief Frequency of stator vector rotation used by the ForceAngle object
    //! \brief Can be positive or negative
    #define USER_FORCE_ANGLE_FREQ_Hz (USER_ZEROSPEEDLIMIT * USER_IQ_FULL_SCALE_FREQ_Hz) // 1.0 Typical force angle start-up speed

    //! \brief Defines the maximum current slope for Id trajectory during PowerWarp
    //! \brief For Induction motors only, controls how fast Id input can change under PowerWarp control
    #define USER_MAX_CURRENT_SLOPE_POWERWARP (0.3*USER_MOTOR_RES_EST_CURRENT/USER_IQ_FULL_SCALE_CURRENT_A/USER_TRAJ_FREQ_Hz) // 0.3*RES_EST_CURRENT / IQ_FULL_SCALE_CURRENT / TRAJ_FREQ Typical to produce 1-sec rampup/down


    #define USER_MAX_ACCEL_Hzps (20.0) // 20.0 Default

    #define USER_MAX_ACCEL_EST_Hzps (5.0) // 5.0 Default, don't change

    #define USER_MAX_CURRENT_SLOPE (USER_MOTOR_RES_EST_CURRENT/USER_IQ_FULL_SCALE_CURRENT_A/USER_TRAJ_FREQ_Hz) // USER_MOTOR_RES_EST_CURRENT/USER_IQ_FULL_SCALE_CURRENT_A/USER_TRAJ_FREQ_Hz Default, don't change


    #define USER_IDRATED_FRACTION_FOR_RATED_FLUX (1.0) // 1.0 Default, don't change


    #define USER_IDRATED_FRACTION_FOR_L_IDENT (1.0) // 1.0 Default, don't change


    #define USER_IDRATED_DELTA (0.00002)

    /
    #define USER_SPEEDMAX_FRACTION_FOR_L_IDENT (1.0) // 1.0 Default, don't change


    #define USER_FLUX_FRACTION (1.0) // 1.0 Default, don't change


    #define USER_POWERWARP_GAIN (1.0) // 1.0 Default, don't change

    #define USER_R_OVER_L_EST_FREQ_Hz (300) //300 // 300 Default



    #define USER_VOLTAGE_FILTER_POLE_Hz (364.682) // 364.682, value for boostxldrv8301_revB hardware


    #define USER_VOLTAGE_FILTER_POLE_rps (2.0 * MATH_PI * USER_VOLTAGE_FILTER_POLE_Hz)


    #define USER_OFFSET_POLE_rps (20.0) // 20.0 Default, do not change


    #define USER_FLUX_POLE_rps (100.0) // 100.0 Default, do not change

    #define USER_DIRECTION_POLE_rps (6.0) // 6.0 Default, do not change

    #define USER_SPEED_POLE_rps (100.0) //(500.0) // 100.0 Default, do not change

    #define USER_DCBUS_POLE_rps (100.0) // 100.0 Default, do not change

    #define USER_EST_KAPPAQ (1.5) // 1.5 Default, do not change

  • As I have replied to you in another similar thread you posted. Please refer to it and close this one. Thanks.

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/850257