EEVblog Electronics Community Forum
Products => Computers => Programming => Topic started by: DiTBho on March 11, 2021, 04:37:44 pm
-
I am working with a load cell and it seems it has considerable hysteresis.
When I move three constant and known mechanical loads on the load-cell, I read different values each time I start a read from the ADC, and these differences seem happening in two directions:
direction-1: values-set-1, when measuring { loadA, loadB, loadC} , in this sequence
direction-2: values-set-2, when measuring { loadC, loadB, loadA }, in this sequence
load-A > load-B
load-B > Load-C
load-C < load-A
Reading the voltage from the ADC connected to a differential amplifier connected to the load-cell bridge shows two different value that depend if the previous load was load-B o load-C.
It seems the system remember something from the previous load applied. Probably some state of surface tension, but I am not sure about this.
My problem here is: how to manage it in software? and ... is it possible?
-
How much error does this correspond to in real numbers?
Particularly with load cells there can be considerable hysteresis coming from the deformation of the metal and adhesive mounting (this can be quite temperature dependant for epoxy like adhesives). You should probably expect a repeatability in the 2-5% ballpark unless you have any particular claims from the manufacturer. The mounting structure will also have some influence to this.
To get an idea of the severity of the error try a single point calibration of 75% max load (just to do it some favours in accuracy) and then using ~10 identical weights (about 1/10th of max load) count up and down (in sequence of 0-1-0, 0-1-2-1-0, 0-1-2-3-2-1-0... etc then 1-2-3-4-5-6-5-4-5-6-7-6-5-4-3-2-1) and calculate the worst case deviation (from a single point cal.) for as many cases as you can muster will power to do! 3 loads isn't really enough to get a good enough idea.
The practical limitations of implementing a calibration that included direction would need you to sample quickly enough that you could capture all slight variations to applied load (imagine someone jittering when placing a mass down or a slight bounce)... and with some "micro calibration" for deviations at a given mass. So you would in effect be differentiating the input signal, multiplying by a micro calibration and reintegrating to give a mass.
-
There is a chance to get some hysteresis if the load cell uses ferromagnetic mateirals - which is not a good design. Also mechanical leverage may have hysteresis.
A good design with solid state joints and the like should be able to avoid tur hysteresis.
There is however a mechincal relaxation effects in springs a little comparable to dielectric absorbtion is capacitors. So a spring does not only react to the actual laod, but also a little more with delay. The delay can reach from short times to relatively long time constants in the minutes or hours. Simple steel is not only bad because of the magentic effects, but also because of mechanical relaxation effects (e.g. from carbon in BCC iron).
With some carefull tests done before one could correct for this effect numerical - the effect is usually at least linear, though with a temperature dependent time constant.
Another possible problem can be poor DMS mounting, e.g. with the glue holding the DMS showing some movement or relaxation, possibly also nonlinear.
What is the approximate size of the effect ? Does it depend on the time the previous load was present ?
-
Wot's this mean???
load-A > load-B
load-B > Load-C
load-C < load-A
If A is bigger then B, and B is bigger then C, then it naturally follows that C is the smallest of the three, and thus smaller then A.
That said.
Both hysteresis and this "memory" effect are part of the specifications of (good) load cells. It's what distinguishes a good load cell from the cheapest-you-can-get from some country far away. It has something to do with the grain structure and foreign inclusions in the materials used. Good quality load cells are made from special alloys (or ultra pure metal?) to reduce these effects but not from the "regular steel" (or aluminium) you buy in bulk at the local market.
Have a look at calibration procedures for load cells. Some of them explicitly note they have to be loaded with a test weight before a calibration measurement is made. Often it's also specified that the calibration weight has to be put on the load cell very gently so the momentum of the weight does not cause a temporary "overshoot" and therefore different stress distribution in the load cell itself.
I have a vague notion it is also related to the root cause of metal fatigue. Why would a piece of metal stay perfectly fine if you load it 10000 times to a certain degree, but break if you do the same thing 100.000 times? Each load cycle must change "something" in the internal structure in the material, and at some point the accumulative results of these changes result in failure, which is called metal fatigue.
In load cells these small internal changes in the material manifest themselves as hysteresis and "memory effect".
-
Ok, said it differently
Load-A, Load-B, and Load-C are three known scale weights, applied to the load-cell.
values-set-1: measures done decreasing the load, with the scale weights sequence A->B->C
values-set-2: measures done increasing the load, with the scale weights sequence C->B->A
I repeated the above 10 times, A->B->C->B->A->B->C->B->A ..., always with the same results, 5-6% of difference on the readings depending on the path.
So, which is the correct measured value of load-A, load-B, load-C?
(load-A.values-set-1 + load.A-values-set-2) /2 ?
(load-B.values-set-1 + load.B-values-set-2) /2 ?
(load-C.values-set-1 + load.C-values-set-2) /2 ?
abs((load-A.values-set-1 / load-A.values-set-2)) <= 6/100
abs((load-B.values-set-1 / load-B.values-set-2)) <= 6/100
abs((load-C.values-set-1 / load-C.values-set-2)) <= 6/100
-
Particularly with load cells there can be considerable hysteresis coming from the deformation of the metal and adhesive mounting (this can be quite temperature dependant for epoxy like adhesives). You should probably expect a repeatability in the 2-5% ballpark unless you have any particular claims from the manufacturer. The mounting structure will also have some influence to this.
I am the software and hardware guy, the dude who manufactured the load-cell may have used a wrong adhesive mounting, and this can justify what's happening now.
We are building the whole system. It's a complex machine. We need to build the load cell since it's integrated with the machine and it's used to measure the deformation of a thin film of metal on which there are two cutters. Long story on the why about this.
Thanks for your procedure, it's very useful information :D
-
What kind of forces are involved and what's the physical scale of the set-up and distance of deflection? I was picturing a relatively sketchy setup involving a cheapo Chinese kitchen-scale kinda load cell... I guess that's not the case here
Depending where the actual hysteresis/memory is coming from you could potentially do a sub-calibration against mechanical deflection (measured with dial indicator or LVDT according to taste)... I'm thinking along the lines of strain gauge output is a function of deflection which is itself a function of force... so it may just uncover a better calibration approach. Another option (although slightly academic) if possible may be to apply a variable force using a linear actuator (voice coil type) to interrogate the dynamics of the non-linearities.. not sure to what end, but it sounds fun
-
A classic approach to systems with hysteresis is to add dither. A simple way would be to use an eccentric weight on a motor (like a phone buzzer), or the voice coil concept mentioned above. Depending on the mechanics of your system the dither may relax the system enough to allow direct reading with your A to D. In many cases you have to sample over the dither period and average. No guarantees, but this does sometimes fix a problem like yours.
-
For a 6% difference I would either suspect a bad quality (or faulty) load cell or some mechanical problem in transferring the load to the loadcell.
-
For a 6% difference I would either suspect a bad quality (or faulty) load cell or some mechanical problem in transferring the load to the loadcell.
I am developing a Laser LIDAR equipment at the moment, I will switch back to this project next week.
I suspect the problem is with the glue under the thin plastic of the built load cell. It may explain the weird behavior, but I cannot say at the moment.
I have already ordered commercial high quality load cells to compare results :D