Digital Temperature Compensation of Strain Gauge Network

Thread Starter

ikarimov95

Joined Sep 19, 2017
6
I'm trying to come up with a way to digitally compensate/correct the temperature shift/changes of strain gauge networks to improve accuracy and display it to the user.

I'm planning on using an Arduino Uno and some type of a transducer to read the ambient temperature, and the analog output signal of the strain gauge/bridge network, convert it to digital, predict the temperature shift and correct it.

I just need some opinions and advice on where to start and how to implement it?

Thank you.
 

andrewmm

Joined Feb 25, 2011
1,605
Are not bridges a differential measuring device ?

As such provided all the bridge is at the same temperature, it self cancels,
then what are you aiming to compensate for
 

JohnInTX

Joined Jun 26, 2012
4,496
Are not bridges a differential measuring device ?

As such provided all the bridge is at the same temperature, it self cancels,
then what are you aiming to compensate for
There is more to it than that. See sec. 3.3.4 of Karl Hoffman's 'An Introduction to Measurements using Strain Gages'
https://www.hbm.com/en/0112/reference-book-an-introduction-to-measurements-using-strain-gages/

He says:
There are many factors affecting the temperature response :
- the component material's thermal expansion, C,
- the thermal expansion of the material of the strain gage's measuring grid, M,
- the temperature coefficient of the grid material's electrical resistance, R
- the temperature change as the variable causing the effects.


If you google this:
karl hoffmann an introduction to measurements using strain gages
there are some sites that have the book without registration.

To compensate digitally, you need to know the temperature curves of the load cell and the ambient temperature. Consult with the load cell supplier to see what those curves are and if they offer temperature compensated load cells.

I would expect that Arduino has many temperature reading gadgets that use a sensor that you could attach to the load cell or nearby. Store the compensation curve in some table to the degree of resolution that you need it and use a piece-wise linear interpolation between points.

Are you sure you need temperature compensation? Can you get a temperature-compensated load cell?

Good luck!
 
Last edited:

Thread Starter

ikarimov95

Joined Sep 19, 2017
6
There is more to it than that. See sec. 3.3.4 of Karl Hoffman's 'An Introduction to Measurements using Strain Gages'
https://www.hbm.com/en/0112/reference-book-an-introduction-to-measurements-using-strain-gages/

He says:
There are many factors affecting the temperature response :
- the component material's thermal expansion, C,
- the thermal expansion of the material of the strain gage's measuring grid, M,
- the temperature coefficient of the grid material's electrical resistance, R
- the temperature change as the variable causing the effects.


If you google this:
karl hoffmann an introduction to measurements using strain gages
there are some sites that have the book without registration.

To compensate digitally, you need to know the temperature curves of the load cell and the ambient temperature. Consult with the load cell supplier to see what those curves are and if they offer temperature compensated load cells.

I would expect that Arduino has many temperature reading gadgets that use a sensor that you could attach to the load cell or nearby. Store the compensation curve in some table to the degree of resolution that you need it and use a piece-wise linear interpolation between points.

Are you sure you need temperature compensation? Can you get a temperature-compensated load cell?

Good luck!
Thank you for your response. Very informative and useful.

Yes, there are plenty of temperature-compensated load cells/strain gauges and other methods of compensating physically, etc. But the whole goal of my project is to digitally enhance load cell/strain gauge networks, so that the temperature compensation happens digitally. This is more of an user-friendly interface that will give a very precise reading...
 

andrewmm

Joined Feb 25, 2011
1,605
There is more to it than that. See sec. 3.3.4 of Karl Hoffman's 'An Introduction to Measurements using Strain Gages'
https://www.hbm.com/en/0112/reference-book-an-introduction-to-measurements-using-strain-gages/

He says:
There are many factors affecting the temperature response :
- the component material's thermal expansion, C,
- the thermal expansion of the material of the strain gage's measuring grid, M,
- the temperature coefficient of the grid material's electrical resistance, R
- the temperature change as the variable causing the effects.


If you google this:
karl hoffmann an introduction to measurements using strain gages
there are some sites that have the book without registration.

To compensate digitally, you need to know the temperature curves of the load cell and the ambient temperature. Consult with the load cell supplier to see what those curves are and if they offer temperature compensated load cells.

I would expect that Arduino has many temperature reading gadgets that use a sensor that you could attach to the load cell or nearby. Store the compensation curve in some table to the degree of resolution that you need it and use a piece-wise linear interpolation between points.

Are you sure you need temperature compensation? Can you get a temperature-compensated load cell?

Good luck!

thank you

only had a quick skim through, now on the list for a proper read.
 

andrewmm

Joined Feb 25, 2011
1,605
that will give a very precise reading...
why would digital be more precise ?

to do so you would have to calibrate each strain gauge against temperature and strain.
if you use the manufacturers 'average' curves, then you are no more precise,

How are you going to measure the temperature ?
you need the temperature of the gauge 'wire' , not that of the surroundings.

Please keep us in the loop as this sounds interesting
 

Thread Starter

ikarimov95

Joined Sep 19, 2017
6
why would digital be more precise ?

to do so you would have to calibrate each strain gauge against temperature and strain.
if you use the manufacturers 'average' curves, then you are no more precise,

How are you going to measure the temperature ?
you need the temperature of the gauge 'wire' , not that of the surroundings.

Please keep us in the loop as this sounds interesting
I didn't mean that digital reading of the signal and temperature compensation through temperature curves would give the most precise readings. I juts figured it would be more convenient to have something that would display the results easily. So it's the matter of user friendliness and all that.

I'm going to measure the temperature of the surface that goes under stress, assuming that strain-gauge and the surface are in thermal equilibrium... Currently, I'm trying to come up with the best way of measuring that temperature.. looking for a certain transducer...

And yes, I'll definitely keep you all updated. Thanks!
 

OBW0549

Joined Mar 2, 2015
3,566
I'm going to measure the temperature of the surface that goes under stress, assuming that strain-gauge and the surface are in thermal equilibrium... Currently, I'm trying to come up with the best way of measuring that temperature.. looking for a certain transducer...
A small platinum RTD, such as this one or this one, might be most convenient, as it can be bonded to the surface adjacent to the strain gauge. I've used the ones from Heraeus, for this same purpose.
 

Thread Starter

ikarimov95

Joined Sep 19, 2017
6
A small platinum RTD, such as this one or this one, might be most convenient, as it can be bonded to the surface adjacent to the strain gauge. I've used the ones from Heraeus, for this same purpose.
Great!
One question: where do the pins connect to on these RTDs? I've never worked with ones like these before... Would it be possible to get the analog value of temperature onto Arduino using these?

Thanks.
 

OBW0549

Joined Mar 2, 2015
3,566
One question: where do the pins connect to on these RTDs? I've never worked with ones like these before... Would it be possible to get the analog value of temperature onto Arduino using these?
Not directly, since the change in resistance is rather small; you'll need an RTD signal conditioning circuit to interface between the RTD and an analog input on the Arduino.

EDIT: For a simple RTD signal conditioner I've used the following circuit. R14 sets the lower temperature limit, and the ratio R15/R14 sets the sensitivity. Vref is 5 volts, and the op amp is powered from 5 volts and ground.

RTD Circuit.png
 
Last edited:

Thread Starter

ikarimov95

Joined Sep 19, 2017
6
Not directly, since the change in resistance is rather small; you'll need an RTD signal conditioning circuit to interface between the RTD and an analog input on the Arduino.

EDIT: For a simple RTD signal conditioner I've used the following circuit. R14 sets the lower temperature limit, and the ratio R15/R14 sets the sensitivity. Vref is 5 volts, and the op amp is powered from 5 volts and ground.

View attachment 136132
Hello there!

I'm back! I've been working on my project, mainly doing research and setting up equipment. I've just recently purchased the RTD sensor you've recommended. I'm trying to follow the signal conditioning circuit you've provided me with, which was very generous of you! I know that to obtain the readings off the RTD, we need a current source in the conditioning circuit, is that correct? If so, could you please describe it a bit more? I've never made a current source before.

Thanks.
 

OBW0549

Joined Mar 2, 2015
3,566
I know that to obtain the readings off the RTD, we need a current source in the conditioning circuit, is that correct? If so, could you please describe it a bit more? I've never made a current source before.
For this very basic circuit, the current source for the RTD is simply resistor R12 and +5 volt reference Vref.
 

Al Capern

Joined Feb 25, 2019
1
Hello there!

I'm back! I've been working on my project, mainly doing research and setting up equipment. I've just recently purchased the RTD sensor you've recommended. I'm trying to follow the signal conditioning circuit you've provided me with, which was very generous of you! I know that to obtain the readings off the RTD, we need a current source in the conditioning circuit, is that correct? If so, could you please describe it a bit more? I've never made a current source before.

Thanks.
Hi ,
Why don't you try a DS18B20 temp sensor. Heaps of info for the aduino and much much simpler than using an RTD. It's a 3 wire device, supply, ground and data. I have used it for a similar project and logged temp versus measured load for the unloaded cell during the course of 3 or 4 days. My code zeroed (tared) at midnight each night. After, you can plot recorded load vs temp change from temp at zeroing. The relationship should be linear ie you end up with N/degC of error due to temp change.
 
Last edited by a moderator:

danadak

Joined Mar 10, 2018
4,057
One method used in advanced instrumentation is to generate compensation curves
at production test.

upload_2019-2-26_12-53-49.png

So at production test a method of heating strain gauge under command of production
stim generator, and internal cal routine of DUT will yield a dataset to be stored in EEPROM
or Flash. Then using least squares or a power curve fit future in application measurements
are corrected with the curve chosen.

This can take out a lot of instrument non linearity as well as the sensors.


Regards, Dana.
 
Top