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.

Current signal not sinusodial and speed saturating with load

Other Parts Discussed in Thread: MOTORWARE

Hi,

I’m using HV kit with a Kollmorgen VLM33J Servo Motor.    I’m presently running Lab 12b with an encoder although the problem I’m seeing is the same sensorless.    At high speeds, under load, the current signal becomes non-sinusoidal and the motor never reaches set point speed.

For example:

No load, 1800 RPM set point, speed is 1800, current is sinusoidal.  All is OK!

No load, 1900 RPM set point, speed is 1878, current is not sinusoidal.

1 Nm load, 1800 RPM set point, speed is 1800, current is not sinusoidal.

1 Nm load, 1900 RPM set point, speed is 1820, current is not sinusoidal.

At the bus voltage I’m using (160 VDC) the motor is rated 4 Nm and 2500 RPM.  So these tests are well below the motor’s ratings.  I have USER_MOTOR_MAX_SPEED_KRPM set for 2.5.  I have a second encoder to verify the speed measurements.   SpeedQEP_krpm always matches the second encoder.

Below is the OK (somewhat sinusoidal) current signal at 1800 RPM set point, No Load:

Below is the odd shaped current signal at 1900 RPM set point, 1 Nm load.   The motor runs at 1820 RPM:

Below 1800 RPM the currents look OK and the speed is spot on.  Why would the current go from sinusoidal to almost a saw tooth at higher speeds and as a function of load?

I’ve attached my User.h file plus below a CCS screen shot at the 1900 RPM set point.  You can see Speed QEP_krpm is indicating 1.813 in this example.

Thanks for the help.

 8461.user.h 

  • Thanks for providing great information about the issue you are seeing. One thing that jumped out at me was that when you are running at 1800 rpm under no load the phase current was about 2A. These seems pretty high for a motor rated 10A. I'm thinking that it might not be running very efficiently. Is the motor doing Rs recalibration at startup?

    During Rs recalibration, we align the motor and the encoder so that the encoder will report and electrical angle of zero when the motor is at an angle of zero. Additionally, with the friction of this motor being relatively high, I would recommend that you increase USER_MOTOR_RES_EST_CURRENT. In order to get a good alignment between the motor and the encoder, we need to motor to physically move during Rs recalibration. Sometimes you need additional current applied to the motor in order to do this.
  • Recently, I also face a motor current with a lot of distorsion.

    I don't know if it is the same problem, but the motor I was using was having a very distorded voltage (in generator mode).

    I could improve the current by increasing Kp current (Iq and Id), by 5.

    Perhaps you can try.

    Regards.

    Emmanuel 

  • Adam, Emmanuel. Thanks for your ideas.

    Emmanuel. I previous verified that he BEFM was sinusoidal by spinning the motor as a generator. The BEMF looked perfectly sinusoidal and this also helped me verify Ke.

    Adam. I verified the motor moves during Rs recalibration. Also per your suggestion increased the ..EST_CURRENT from 2A to 3A and retested at high speed. The current signal was still distorted and same speed errors.

    After that I tried changing from 160 VDC to 320 VDC bus. This cleaned up the current signal and speed errors! With 320 VDC bus I tested up to 2000 RPM and the current was sinusoidal and the speed exact. I was not setup to test at above 2000 RPM.

    So the problem is related to not enough bus voltage. The motor is rated at 2250 RPM with 160 VDC bus, but I am having problems above 1800 RPM. In my tests the indicate bus voltage was 150 VDC under load. I wouldn’t expect being 10V below the rated voltage (160VDC -> 150 VDC) to cause such a current/speed problem.

    The PI current loop seems tuned OK based on the current signal looking OK below 1800 RPM.

    Any ideas why the current signal and speed fall apart above 1800 RPM when rating is 2250 RPM for the 160VDC bus voltage?

    Thanks again.
  • those ratings are usually for a full trapezoidal modulation of the bus voltage. When using a sinewave (1.0 modulation in our software) you are limiting yourself by about 25% of the available voltage. (2250-1850)/2250 = 20%

    you can try using proj_lab10c to try over-modulation to recover some of this bus voltage. This puts different sampling requirements on you that we take care of in the software. This over-modulation technique works for most motors but we have seen a handful of cases where the current samples are too poor still to keep stability. We have an updated over-modulation technique that helps which should release in the next MotorWare revision.
  • Hi, I also face a current distorsion  when the modulation index was near 1.

    Perhaps this is the same problem (the modulation index is reduced when you supply with higher voltage).

    You can have a look at this :

    e2e.ti.com/.../308720

    The root cause was not very clear but I reduce the PWM frequency to solve it.

    Regards

  • there are definitely "sweet spots" for the PWM frequency and the effect of modulation. And we set the default PWM to 45 KHz on the low voltage projects primarily because so many people are using these low inductance hobby motors. But 45 KHz is too high for most "standard" low voltage motors and really shouldn't be used.
  • I experimented with Lab 10c and over-modulation and was able to run faster with a better looking current signal.

    Thanks for pointing me in the right direction.