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.

AM263P4: Speed Calcultion Problem with ENCODER

Part Number: AM263P4
Other Parts Discussed in Thread: LVSERVOMTR

Tool/software:

Hello,

I am using AM263P LP, BOOSTXL 3phGANINV and LVSERVOMTR (Teknic M-2310P-LN-04K) with encoder config.

After running the motor at high speeds and then stopping it, the measured speed takes a long time to reach zero, even though the motor shaft is stopped. During this time, the speed estimation remains high value. If I attempt to restart the motor before the speed reaches zero, the control can become unstable, and the motor may suddenly spin at a very high speed.

When I replace SPDCALC_run with SPDFR_run, this issue disappears completely. As shown first image I attached from the UMC documentation, the code uses SPDCALC_run for encoder.


However, according to the .h file, SPDCALC_run appears to be written for sensorless speed estimation.

Why is SPDCALC_run considered suitable for encoder use?
Is it unreasonable or incorrect to use SPDFR_run instead of SPDCALC_run when working with an encoder?

Regards,
Burak

  • Hello Burak,

    Recently, we came to know about this during one of our implementations. The delay you're noticing with the encoder is due to the integral component of the SPDCALC_run()-PI controller holding residual error even after the motor has stopped. While SPDCALC_run() works reasonably in sensorless contexts (where the angle is noisy and needs smoothing), you can use SPDFR_run() for direct position feedback from encoder which comes with a low-pass filter to smooth high-frequency noise filtering. This is planned to be documented for the next release.

    Best Regards,

    Masoud