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.

TMDSHVMTRPFCKIT - 25Krpm Motor

Other Parts Discussed in Thread: MOTORWARE

Dear all,

I'm testing 4 pole pairs motor up to 25Krpm( ~1667Hz) using INSTASPIN-FOC(MotorWare1.01.00.09).

Currently, stabilized speed is 16Krpm(~1066Hz), if I attempt to increase the rpm, there exist speed fluctuation.

The main parameters are as following.

PWM_Freq = 15KHz, Control loop(Speed, current, field weakening ) = 1.5KHz

==============================

USER_MOTOR_NUM_POLE_PAIRS (4)

USER_MOTOR_Rs (2.762814)
USER_MOTOR_Ls_d/q (0.01335734)

USER_MOTOR_RATED_FLUX (0.4956302)

USER_PWM_FREQ_kHz             (15.0)

USER_MAX_DUTY_CYCLE        (1.15)

USER_MAX_NEGATIVE_ID_REF_CURRENT_A(-4.5A) ~ 17Krpm

Kp_Idq = _IQ(2.0); 

Ki_Idq = _IQ(0.04);

Kp_spd = _IQ(1.0018); 

Ki_spd = _IQ(0.0137);

=================================

Is it possible to run this motor up to 25Krpm without any parameters change and hardware modifications?

Especially, is there any relation between the USER_VOLTAGE_FILTER_POLE_Hz(372.5) and running speed?

Sincerely,

Eui-heon

  • Hi Eui-heon,

    I have moved your thread to the InstaSPIN forum. They will better be able to assist you.

  • a couple issues stand out.

    "PWM_Freq = 15KHz, Control loop(Speed, current, field weakening ) = 1.5KHz"

    You can't run your control and estimator at only 1.5 KHz. You need to be at a minimum of Freq-max / 7, and higher is better. For your 1.7KHz speed that means at least at 12 KHz.  I would suggest running your PWM at 15 KHz and setting the other ticks to (1), except for speed and trajectory can be at (15)

    Second, if you look at your R/L you get a value of only ~200 Hz. The parameters of this machine do not match those of a motor that should be able to go 1700 Hz.  Did you miss a decimal place? Is the Ls actually 0.00133?

    How fast can you go with 0 field weakening and 0 load?

    Third, note that the max duty cycle is defined differently now starting in version _09.  Please update your user.h to

    #define USER_MAX_DUTY_CYCLE        (1.309401076758503)   // 4/SQRT(3)-1 default for 100% duty cycle sinusoidal output

    Fourth, are you sure this is an 8 pole motor?

    Fifth, are you sure you are applying a high enough bus voltage? At 1KHz with 0.495 V/Hz of flux your motor is creating 495 V of Bemf.  Related to this, this variable is going to need to be quite large, probably something liek 1200V.

    #define USER_IQ_FULL_SCALE_VOLTAGE_V (1200)

    Sixth, regarding the PI gains.

    1. Have you changed your Idq gains from the initial values? The initial values are set to the Bandwidth / 4 to keep them soft for initial motor bring-up.  For high speed you need to multiply the Kp of the Idq by x4

    2. At high speed the speed controller needs to be softer, lower the Kp. Also, for initial testing of maximum speed you may want to try Lab 4 and use torque mode. Especially if you can apply a load to the motor so it doesn't accelerated too quickly, and then reduce the load as you get higher in speed.

    3. Have you checked the OUTPUT of the Iq PI controller when you reach your maximum speeds?  Is it saturated? You can also check the Voltage output variables to see if they are saturated. This will at least confirm that you are applying maximum output from your control system.

  • Dear Chris,

    Thank you for your reply.

    The motor parameters are correct if Lab 2a was well done. I'll test again the motor as following your advice.

    I have some questions for your comments. For my test, I mixed Lab09 for field weakening and Lab10x for over-modulation.

    At motorware_1_01_00_08,  I set up the max duty cycle as like "USER_MAX_DUTY_CYCLE(1.15)" for qusi-sinusodial . Is there any difference btw motorware_08 and 09 for this meaning?  

    And one more thing, Are the USER_VOLTAGE_FILTER_POLE_Hz(372.5) value and voltage feedback circuit not dominant factors for high speed running? 

    Sincerely,

    Eui-heon

  • Eui-Heon,

    The parameters of your motor just don't make sense for the speed you want to run.  Please double check.  Do you have access to some sort of datasheet of the motor?

    Yes, MotorWare _08 to _09 introduced a difference in how the MAX_DUTY_CYCLE is calculated.  Please move full to _09, it has several other enhancements as well, including angle compensation for higher speeds.

    Regarding the filter pole (HW & SW), this is from another thread on the topic. You should have flexibility to set this pole to a wide range, but we are seeing some high speed roll off with a filter dependency, so when building your own hardware we recommend a pole of MAX_HZ / 4:

     

    The minimum for the voltage crossover frequency is primarily determined by the expected motor (mechanical) dynamics (acceleration). This is not the maximum electrical frequency of the motor. 200Hz is a sensible minimum for most applications we have seen so far.

    The maximum depends on the desired voltage measurement accuracy:
    Pwm frequency / 10 is a reasonable limit.

    The trade-offs between minimum and maximum:.

    lower gives more accurate voltage measurements and thus better low speed behaviour.
    however, if the motor is run to speeds above the filter crossover frequency - with inaccurate compensation of the hardware filter - the motor will spin but with reduced performance (e.g. max torque, efficiency, minimum DC link voltage and torque estimation are compromised)


    When you want accuracy at high electrical frequencies - but are unwilling to measure the exact capacitance values or don't want to buy low tolerance capacitors - you need to increase the crossover frequency.  With a high crossover frequency, motor speed operation is within the filter pass-band, where accuracy is determined by resistors (which are relatively cheap compared to accurate capacitors). Most high speed applications are less interested in very low speed behaviour, thus they can live with the worse low-speed behaviour which results from the slightly reduced voltage accuracy.