Electronics > Metrology

Reading a magneto elastic torque sensor with high resolution

(1/5) > >>

Fiorenzo:
Hello everyone,
I am working with a torque sensor based on the magneto elastic principles.

It is made of two coils of the same value (75ohm) with a common center tap put to ground.
The two coils are wounded around a ferromagnetic ring wich, however, is free to rotate independently of the coils.
If you provide a square wave signal on one of the two coils you get an induced similar signal on the secondary coil.

Any twist of the ferromagnetic ring causes a variation in the range of millivolts on the amplitude of the induced signal.
Actually I saw on the oscilloscope that it is possible to reach a variation of some hundreds of mV from zero torque to max torque, sourcing a square wave signal of 10 volt peak to peak on the primary coil ( +5v  -5v pp).

My question is: if i rectify the output signal with a diode, a capacitor + a bleeding resistor I get a variable DC voltage that is dependent on the torque applied on the sensor.
The problem is that this DC voltage is biased of about 5volt and also varies by a few hundreds of mV from zero to maximum torque; for example 5 volt at 0nm and 5,4 volt at 80nm.
How is possible two reference it to zero and amplify it in the way to get a variation from 0v for zero torque and 3v or 5v for maximum torque?

I need to work in this way so I can read the signal with a greater resolution for the ADC of a microcontroller.

Do you have different suggestions based on your past experiences?

Than you very much for your time!!

Kleinstein:
Most µCs have a reasonable speed ADC and it makes sense to read the AC signal with the ADC and not some rectified form. A rectifier is a bit tricky and just simple diodes tend to get temperature dependend.  So the µC would get the AC signal and than calculate the amplitude / phase of the signal numerically.
Sampling the AC signal with quite a few points per period give oversampling of the signal and extra resolution comparead to the bare resolution of the ADC.
Looking at the AC signal also allows to suppress a background from the speed of rotation / drving motor.

The description of the magentic setup is a little confusing. AFAIK magnetoelastic torque sensing usually uses 2 coils on different axis, so that with zero torque there is ideally no signal at the output and only the stress in the material causes the coupling and one kind of needs to use a phases sensitive rectfication (can be numerical) to see torque in both direction as a positive and negative "amplitude". There are different configurations to use the magneto-elestic effect as a torque sensor. A drawing of the configuration and a scope picture / drawing of the waveform may help.

A part that is a bit tricky with magnetoelestic sensors is that they react to temperature and external magnetic fields. Also looking at the waveform at the excitation coil can help.

Fiorenzo:
Thank you both for the useful and interesting replies. As soon as possible I will answer your questions and post the photos you asked for.
Maybe I cannot explain well the situation because English is not my first language so I apologize.

Fiorenzo:
The torque sensor is for an e-bike.
Because I cannot disassemble it, I have attached some photos found on internet, sorry for the low resolution.
The sensor is mounted on the pedals shaft.

As you see is made of two coils of the same value attached in a common point referenced to ground.
The ferromagnetic ring has some splines, I think to "disturb" the induced signal on the output when the torque applied to it twist the ring.

In the afternoon I am going to do some screenshots of the waveforms generated by the original electronic board installed on this e-bike and show you what I get if I supply a waveform from my AWG.

The original signal is a squarewave with a duty of about 50% at 16khz and the amplitude is about 8volt peak to peak.

My project is to make a custom motor controller with a custom display, I am doing it almost because it is an interesting application to let me learn many things about these fields that I am studying.

The display is done and fully working as I wanted, so happy for that....

Now I am going to develope the motor controller.
The MCU i have selected for the motor is the stm32f401cc.

The ADC is capable of maximum 12bit and 2.5MSPS.

What I meant for the bias of the output signal is this: if I rectify the output signal I get a DC voltage biased of some quantity and, if I choice to read the signal in such way, it would be better to have it referenced to ground and amplified about 7 or 8 times... So to have an ample variation of the output voltage from 0nm/0volt to the maximum torque achieveble from the system, maybe 3 or 5 volt (I think it could be around 250nm).

Kleinstein:
So this is a ready made sensor and no good way to modify things there. The configuration is a bit unusual, but seems to work.
In the shown configuration I have a slight problem to see how the sensor can detect the sign of the torque and thus sense forward / reverse.

Using a simple rectification is likely not the best way to look at the sensor signal, as a rectifier in the simple form is quite temperature dependent and the information may very well be more in the waveform than in just the amplitude. The µC and ADC should be fast enough to look at the AC signal - so no external rectification, but taking more samples and than use math to derive the amplitude (maybe seprate for the harmonics) to get the torque. So this would be less analog hardware and more software.