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.

Unstable RsOnline measurements at higher RPMs

Other Parts Discussed in Thread: BOOSTXL-DRV8301

Hello,

I am trying to enable online Rs-recalibration in order to estimate the motor temperature. I am using proj_lab07.  When I set the speed to 1kRPM, the Rs_online variable is nice and stable. However, when I set the speed to 2 kRPM, the RsOnline_Ohm value starts to oscillate. I've logged RsOnline to show this; see the graph below. The first half is taken with 1kRPM; at around sample +90 I've changed the speed to 2kRPM.

Is there anything I can do to stop the oscillating of RsOnline at higher RPMs?

  • What are you using for RsOnlineCurrent_A? What is the value of Rs from motor ID / user.h / RsRecal?
  • RsOnlineCurrent_A is set to 1.5 A. Setting it to 0.5 does not improve the measurements. Setting it to 3 A does improve it a bit; it brings the amplitude of the sine wave down from +-6% to +- 3%. Setting it to 6A further decreases it to about +-1%. We'd rather not set the current as high as 6A if we can help it, as our application is battery powered. Of course we could activate the Rs measurement periodically, but still..

    The Rs from user.h is 0.122 ohm, which is close to what the RsOnline measurement reports when it's stable.
  • I've forwarded this on to an expert. I've never seen this behavior before...pretty surprised actually.

    Is the speed stable at 2 KRPM during these samples or is the motor still accelerating?
  • Thank you. The speed at the beginning of the graph is stable at 1 kRPM. At about sample +90 I changed the speed to 2 kRPM. A stable 2 kRPM was definitely reached before sample +125.

  • I'll have to let the expert respond on this one. Very strange.
    Does it do the same when you decelerate to say 500 RPM?
  • At 500 RPM the measurements are stable.

    Interestingly, I just found out that when I set Flag_enableOffsetcalc to 0 at startup, I get the same instability even at 1 kRPM.
  • can you verify the offsets that are being set into the controller? do these match what you have stored in user.h?

    what does your Flux value look like at 500, 1KRPM, and 2KRPM? Is the control itself still stable? It is just the Rs that is oscillating?
  • Here’s some additional information that might be relevant. We use a launchpadXL-F28027 with a boostXL-DRV8301 and a BLDC motor. We have some minor modifications: we have moved DC-CAL to another pin, and adjusted the resistor dividers to be able to use our bus voltage of 36V.

    The only change to proj_lab07 was to initialize the DC-CAL pin at the pin we moved it to. The only changes to user.h are to USER_PWM_FREQ_kHz, USER_IQ_FULL_SCALE_VOLTAGE_V, USER_ADC_FULL_SCALE_VOLTAGE_V and the USER_MOTOR parameters.

    The measurements in the first post were made with a pwm frequency of 30 kHz. The default pwm frequency is 45 kHz. When we use 45 kHz, the amplitude of the sinewave at 1 kRPM greatly increases: from 0.0002 to 0.003 ohm peak-peak.

    The flux values remain pretty stable. The value is about 0.009 (varying slightly across different speeds) and fluctuates less than 0.0001 peak-peak.

    When using values from user.h, the bias values in gMotorVars are identical to the values set in user.h. We have measured the amplitude of the sine wave we see on RsOnline in three cases, all at 1 kRPM and with a PWM-frequency of 45 kHz:
    • Using the original bias values from user.h: 0.012 Ohm peak-peak
    • Using enableOffsetcalc: 0.003 Ohm peak-peak
    • Copying the values from the enableOffsetcalc offset measurements into user.h and using these values: 0.003 Ohm peak-peak
    Apparently the bias values we had specified in user.h were slightly off (the values were off by less than 0.02), and this somehow caused RsOnline measurement to become less stable when not using enableOffsetcalc.