• This forum is the machine-generated translation of www.cad3d.it/forum1 - the Italian design community. Several terms are not translated correctly.

is it possible to find a flex point from experimental data in matlab?

  • Thread starter Thread starter pietroviceconte
  • Start date Start date

pietroviceconte

Guest
hello to all, I designed a graph in matlab, strength-strength of a small punch test (a punching test on circular samples). I would be interested to understand, if it were possible to do so, how to find with matlab the flexo point having available only the data and not the analytical function.
Thank you.
 
with all in the programs that manage curves and equations, in order to determine the flex point it is necessary that the secondary derivative of the function is equal to zero.
more details qui e qui.
In the meantime, have you solved it?
 
I also had lost this discussion.

if you have the values of ascissa and ordered you can trace back to the polynomial that best approximates the trend with the function “polyfit” ... then being a polynomial the secondary derivative you can clearly calculate it also by hand.

the degree of polynomial you have to choose it as input.. I suggest you make some attempts until you find the best fit.

in case you think that your model follows a non-linear law (exponential, sinusoidal etc...) there are other functions like “fitnlm”

but from a certain degree onwards the polynomials still manage, locally, to approximate well also complex trends
 
I designed a graph in matlab, strength-length
... how to find with matlab the flexo point having only the data available
I don't know matlab, but it shouldn't be easy enough.
If I didn't get it wrong you should have a table with the graph points x=sigma and y=epsilon. more precisely:
x1 = sigma(1) - y1 = epsilon(1)
x2 = sigma(2) - y2 = epsilon(2)
x3 = sigma(3) - y3 = epsilon(3)
x4 = sigma(4) - y4 = epsilon(4)
....
we must find the point where the "variation" of epsilon is nothing, that is where the difference between epsilon (n) - epsilo(n-1) = 0
then you just have to get a third column where you have to represent the "pendence", that is:
slope 1 = [Epsilon(2) - Epsilon(1)] / [(Sigma(2) - Sigma(1)]pendenza 2 = [Epsilon(3) - Epsilon(2)] / [(Sigma(3) - Sigma(2)]pendenza 3 = [Epsilon(4) - Epsilon(3)] / [(Sigma(4) - Sigma(3)]....
when the slope value is close to 0 means that we are in the presence of flexo.
How about mechanicalmg: should it work? .
Hi.
 
It's not like that. @betoniera ... what you get is precisely the slope, given by the derivative before, among other things not even well calculated in this way, because if you have dispersion in values, calculate the slope "discreta" (as you do), instead of the infinitesimal one (with the derivatives) can bring substantial errors.

the user looks for the flex point, that is the point of the curve that marks a change of concavity. It is a 2-minute matlab calculation, the user has it, I don't see why looking for more winding streets, which, in this case, are however wrong.
 
I don't think it's more useful to the op, but there are basically two techniques to find the flexo.

first method:
the second derivative is calculated by numerical means. is quite simple because just calculate point by point df/dx, in fact calculating the derived vector for differences from the function vector.
then the same thing with the derived carrier first to get the secondary derived carrier.
If you are sure that the flexo exists, just at this point look for the lower value of this vector.
Alternatively, all the carrier is scrolling by looking for a value whose absolute value is lower than a certain threshold (the mathematically zero in this case may not exist). starts from a "small" threshold (better if dynamic) and increases until you find a point.
Of course, you don't find the flexo, but the sample that comes closer to him. and you have to translate it of the two samples that you lost by calculating its derivatives.

according to method:
is slightly more complex but gives better results, in fact it is not said that the flexo point coincides with one of the samples.
You need to interpolate the samples with an approximate curve. the polyfit command banally makes us pass the best polynomial by optimizing to the minimum squares. I recommend using this function instead of exact interpolants because the noise of the samples would generate the phenomenon of runge.
at this point with polyder you calculate analytically the derived.
 

Forum statistics

Threads
44,997
Messages
339,767
Members
4
Latest member
ibt

Members online

No members online now.
Back
Top