Randomisation of ramberg osgood equation
Mostrar comentarios más antiguos
I am trying to randomise the ramberg osgood equation to find out different values of strains as a response to random stress values set between a range of 100 MPa to 300MPa. The ramberg osgood equation is; delta(epsilon{strain})/2 = delta(sigma{stress})/2 + ( delta(sigma{stress})/2K' )^n' . The values of K' and n' are constant for materials and need not be randomised for my application. I just want to randomise delta(sigma{stress}) to obtain randomised values of delta(epsilon{strain}) .
Until now I have written the code to generate random numbers in the range -
a = 100;
b = 300;
r = (b-a).*rand(10000,1) + a;
Later I was thinking of using the for loop to put these numbers one by one into the equation and but haven't been able to figure out. Can someone please help me with this. The strain values obtained for the first iteration of strain must be the input for second iteration of stresses
Respuesta aceptada
Más respuestas (2)
Alan Stevens
el 12 de Jul. de 2021
You don't need a loop. Yu can just do
deltaepsilon = r/E + 2*(r/(2*Kp)).^(1/np);
where Kp = K' and np = n'.
Note that you need to use .^ (dot^) not just ^ in order to make it an element by element operation.
6 comentarios
Parth Kulkarni
el 12 de Jul. de 2021
Alan Stevens
el 12 de Jul. de 2021
Your values of r are the random values of deltasigma. There are 10000 of them with values between 100 and 300 (If you need them in Pa rather than MPa just multiply r by 10^6). (You could have used the variable name deltasigma instead of r).
Parth Kulkarni
el 12 de Jul. de 2021
Alan Stevens
el 12 de Jul. de 2021
No, this generates 10000 values of deltaepsilon.
Parth Kulkarni
el 12 de Jul. de 2021
Be careful about ensuring E and kp are in the denominator; also that the power is (1/np).
a = 115;
b = 234;
r = (b-a).*rand(1000,1) + a;
sr=size(r);
sr1=sr(1);
kp=1320;
np=0.177;
E=21e+06;
sg1=r(1);
e1 =( r/(2*E) + (r/(2*kp)).^(1/np) )*2; %%% Make sure E and kp are in the
%%% denominator and the power is
%%% (1/np)!!!
ee = [e1(1); diff(e1)];
histogram(ee,20)
xlabel('ee'), ylabel('frequency')
Parth Kulkarni
el 12 de Jul. de 2021
4 comentarios
Alan Stevens
el 12 de Jul. de 2021
You will need r./(2*kp).^(1./np)
Notice all the dots!
Parth Kulkarni
el 12 de Jul. de 2021
Parth Kulkarni
el 11 de Abr. de 2022
Parth Kulkarni
el 11 de Abr. de 2022
Categorías
Más información sobre Stress and Strain en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
