Simulink eQEP block for speed calculation with C2000 MCU

39 visualizzazioni (ultimi 30 giorni)
Hi all! ;)
I am working with a C2000 Microcontroller from Texas Instruments. I try to calculate the shaft speed of a DC machine in Simulink using my F28377S-LaunchPad. I already established the high speed measurement using the QPOSCNT signal. My problem/question is about the low speed measurement: I want to use the QCPRD signal to calculate the shaft speed. I already asked for help in the TI E2E forums. You can find the discussion here:
Somebody told me to monitor the QEPST.UPEVNT signal because the timer value is latched into the QCPRD register everytime the QEPST.UPEVNT (unit position event) happens. Does somebody know a way to monitor this signal in Simulink? I cannot find this option in the eQEP block.
Best regards, Armin
  2 Commenti
Canberk Suat Gurel
Canberk Suat Gurel il 22 Mar 2018
Hello Armin,
I have seen your post on e2e.ti.com I was wondering what is inside the subsystems shown by the red arrows below:
Thank you, best regards.
Canberk
Armin Lensker
Armin Lensker il 22 Mar 2018
Hello Canberk!
I attached screenshots of the content of the two subsystems:
These are the regular algorithms (for high speeds and low speeds) that TI suggests in their reference manual for the eQEP modules.
Best regards, Armin

Accedi per commentare.

Risposte (4)

Venkatesh Chilapur
Venkatesh Chilapur il 23 Ago 2017
Hi Armin,
Right now, via our eQEP block, we are not supporting the monitoring of QEPST.UPEVNT signal in Simulink.
However, as a workaround, the "Memory Copy" block can be used and the reference of this signal be provided to be able to read it's state.
Please refer example model "c28035pmsmfoc_cla" shipped with our support package, on how "Memory Copy" can be used. (c28035pmsmfoc_cla -> Hall Sensor C)
You may then design the model to read "QUPRD" around the QEPST.UPEVNT signal and see if it helps.
Regards,
Venkatesh C
  4 Commenti
Armin Lensker
Armin Lensker il 25 Mar 2018
Modificato: Armin Lensker il 25 Mar 2018
Hello Michael!
Look at the comment to my first post, I attached some screenshots of my models there. The algorithm will usually not have its best performance at low speeds because of the nature of the approach. However, the algorithm proposed by TI is not optimal: A better solution is the use of a "two phase type PLL". You can find much literature about it, i.e. on IEEE Xplore. The following blog provides a very good introduction into the topic: Blog Part 1 Blog Part 2 Blog Part 3
Best regards, Armin
SALIL PATWARDHAN
SALIL PATWARDHAN il 21 Gen 2019
Hello all,
I am working on similar problem. I am using F28379D DSP processor and 1024 pulses per revolution encoder to determine the speed. I am using it with Simulink with block eQEP C28x.
Can somebody suggest me a working example as of hpw to configure C28x QEP block for the same .It would be really helpful and grateful !!!
Best Regards
Salil Patwardhan

Accedi per commentare.


Michael Valasek
Michael Valasek il 29 Mar 2018
Modificato: Michael Valasek il 29 Mar 2018
Thank you much Armin,
I checked your suggested links. There not much more information than in sprug05 from TI says. I will try to approximate the position with continuous function such as regression of spline function. Then to derive that approximated function to get the velocity. I hope that it works. I will report then the results. This is interesting: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4510607
Thank you
Michael
  1 Commento
Armin Lensker
Armin Lensker il 30 Mar 2018
Hello Michael! I think you have not read the blog posts entirely until the end because there is indeed much more information than in sprug05 by TI! The blog suggests using a "two phase type PLL" which I think is some kind of state of the art when it comes to encoder measurement filters. Best regards, Armin

Accedi per commentare.


Pradyumna Ranjan Ghosh
Pradyumna Ranjan Ghosh il 22 Mar 2019
Hello,
I am working on estimation of rotor speed and position of an AC machine connected to DC machine via eQEP blocks using DSP F28377s through an encoder. I am observing speed and rotor position through DAC. As per your instructions, speed estimation was good when DC machine is used as motor and AC machine as generator. However, when I am observing the speed while implementing v/f control on the AC machine, the motor was rotating at the speed as given by command, but estimation through encoder was incorrect.
I am attaching the model as per convenience. Do I need to change the switching frequency? Is there any problem of interrupt mismatch for speed calculation?
I would be extremely thankful.
Regards,
Pradyumna Ranjan Ghosh

Bui Tuyen
Bui Tuyen il 17 Set 2022
You can see this video https://youtu.be/cBFmRqlkU1Y

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by