AC Drive China Forum
Forum » General Discussion » Torque ripple information from speed signal for SRM
Topics: Torque ripple information from speed signal for SRM on General Discussion
#1
Start by
Rakesh Mitra
09-13-2013 11:10 AM

Torque ripple information from speed signal for SRM

Hi all. I am trying to develop a controller for switched reluctance motor which minimizes torque ripple. My design is acquiring torque ripple information from speed signal. In simulation a high pass filter for speed gives me good ripple information. But in experiments I am using a 500 PPR optical absolute encoder to get the position and then calculate the speed using microcontroller(dspace) capture module. But the filtered speed signal do not provide much ripple information. Can anyone suggest any method to extract ripple information from low resolution speed signal.
Thanks
09-13-2013 02:04 PM
Top #2
Sean Gong
09-13-2013 02:04 PM
1. In simulation, do you consider motor inertia? Inertia filters out torque ripple's impact on speed, resulting in a smooth speed signal. 2. Generally speaking, a low resolution position sensor produces speed signal of more noise, especially at low speed. I would expect more noise out of your high pass filter.
09-13-2013 04:35 PM
Top #3
john odenthal
09-13-2013 04:35 PM
An encoder generally does not specify an accuracy for the A to A! channel or B to B! channel or it is so broad a spec that it is useless. If you have the ability to trigger a clock on A and B to determinet the period between A and B channels the difference between successive reads will give you a good indication of your ripple.
09-13-2013 06:46 PM
Top #4
Dennis Braun
09-13-2013 06:46 PM
In some cases of motor - encoder installations the mechanical alignment of the encoder to the exact center of motor shaft can cause misalignment noise to occur in the resolved speed signal. In theory the ripple signal could provide useful information however in practice there are too many other influences. Even the shaftless encoder mounting has some of these difficulties.
09-13-2013 08:58 PM
Top #5
Sandro Calligaro
09-13-2013 08:58 PM
As pointed out by Dennis, an absolute encoder is prone to mechanical or electrical offsets, which cause harmonic noise in position and speed.

To extract torque information I'd use an observer for the mechanical part of the system. If the inertia is known, it should be quite simple to implement. There are some papers which use observers in sensorless estimation, i.e. "Sensorless control of interior permanent-magnet machine drives with zero-phase lag position estimation" (Lorenz, Harke, Kim). If the estimation error signal is substituted with the difference between measured position and observed position, you can get a disturbance torque estimation.

For the case of low-resolution incremental encoders (but something could be done for absolute ones, too), there are techniques to improve the speed measurement:
http://web.diegm.uniud.it/petrella/Azionamenti%20Elettrici%20II/Tesine/Petrella%20et%20al.%20-%20Speed%20Measurement%20Algorithms%20for%20Low-Resolution%20Incremental%20Encoder%20Equipped%20Drives_a%20Comparative%20Analysis.pdf
09-13-2013 11:44 PM
Top #6
john odenthal
09-13-2013 11:44 PM
My above coment gave the velocity change per encoder change. Squaring this and dividing by twice the distance returns acceleration over that range. Multiplying by the total inertia (motor+load) gives torque required for that acceleration over that range. Comparing the results successively gives the ripple.
Enjoy!
09-14-2013 02:31 AM
Top #7
Bill Kazlauskas
09-14-2013 02:31 AM
Your comments focus on a dynamic range issue. Ask yourself: What I am looking for? And then: How can I measure it? You'll probably find that you are looking for arc minutes of motion. A 500 line encoder isn't going to have much resolution at all - especially at low speeds.
Anyway - an encoder isn't going to measure torque ripple - it will measure velocity ripple. And if your trying to connect the 2 then you have to understand the dynamic relationship between the two.
09-14-2013 05:00 AM
Top #8
Sandro Calligaro
09-14-2013 05:00 AM
A common problem with direct differentiation is high noise. With an observer the problem is overcome, even if it results in a certain low-pass filtering.

If the magnitude of a certain harmonic is needed, you can calculate Fourier series on a certain window, and resolution improves as you increase the number of periods considered. In the harmonic case, derivating is straightforward.
09-14-2013 07:27 AM
Top #9
Rams Pinyol Josep M.
09-14-2013 07:27 AM
If you want to minimize torque ripple, why don't use an acceleration loop over current loop. This loop has the problem of the calculation of real acceleration (You will have the same problem as for read speed ripple), for that you can use a Luemberger observer.

See "Control System Design Guide" book from George Ellis. Explains how implements this loop.
09-14-2013 10:22 AM
Top #10
Bill Kazlauskas
09-14-2013 10:22 AM
Like Sandro says - noise from differentiation will be problematic - double differentiate for acceleration data from such a poor feedback device is not advisable.
09-14-2013 12:40 PM
Top #11
john odenthal
09-14-2013 12:40 PM
If you write the differential equation the only effect on the output is the quality of the capture of the position and time events. Done digitally these can be kept reasonably repeatable. Your result will only be the sum of torque required over the pulse period as Bill states this is not what is considered torque ripple which becomes evident at low speeds. At encoder speeds that provide an encoder pulse frequency an order of magnitude greater than the current pulse frequency of interest you should get a good approximaiton.
09-14-2013 03:16 PM
Top #12
Dr.Paramasivam Shanmugam
09-14-2013 03:16 PM
500 ppr will not give you required resolution @ low speeds..you have to look at what is the speed at which you update the inner loop. You have to use controllers such as TMS320F1812 for accurate control.. Refer the application notes from Texas instruments
09-14-2013 05:42 PM
Top #13
Neil Tice
09-14-2013 05:42 PM
Hi Rakesh,

You'll have to move up to at least a 1024 line encoder, and make sure that your sampling period is at least 2X (preferably 4X) faster than the torque ripple frequency at the maximum speed you intend to spin the motor.

You can use a PLL on position to generate your speed estimate, and you can add observed mechanical states to improve the response, as in the Lorenz, Harke paper that Sandro referenced.

It won't help much at low speeds, but once the motor is started the PLL/observer should give you pretty good position information. If your torque ripple maps directly to position, you can then use a lookup table to feed forward compensating torque commands. Just don't over-compensate, or you'll make things worse.
09-14-2013 08:04 PM
Top #14
Jonathan Hoagland
09-14-2013 08:04 PM
I agree with rams. The better approach is to monitor the current rise to derive the torque ripple rather than trying to obtain this from the feedback device.
09-14-2013 10:25 PM
Top #15
Jan Bosteels
09-14-2013 10:25 PM
In summary, there are 2 components that contribute to velocity ripple: ripple due to the encoder channel A and B phase variation and ripple due to actual motor velocity variation. Depending on the speed, these may be at quite different frequency. The encoder variation should be cyclical and there are 1/T techniques that could improvide raw position change/time change. That works fine if every line on the encoder has same phase relationship. If that varies as well, it requires more filtering and will affect bandwidth and response. It would be usefull to know what the speed range is for this application (min-max) and what the target speed measurement accuracy should be. Also what kind of bandwidth is required from the speed measurement?
09-15-2013 01:19 AM
Top #16
Charlie Elliott
09-15-2013 01:19 AM
Rakesh - I have worked on SR for many years and have seen people try to use speed ripple to infer torque ripple. That is a very hard thing to do and I really would not advise it!! Any speed ripple observed may not be genuine (as pointed out by others) and could also be due to the load, mechanical misalignment etc. Conventionally low torque ripple for SR has been achieved by profiling the current vs position in a feedforward manner but this requires either a very good motor model or good measured data. In my personal opinion if you are just trying to get rid of the worst of the torque ripple at low speed then this is feasible without significant comprises to motor or drive. If you are looking for very low torque ripple or perhaps reducing torque ripple at higher speeds then you are looking at the wrong motor type!!
Reply to Thread