MATLAB Answers

Randomisation of ramberg osgood equation

12 ビュー (過去 30 日間)
Parth Kulkarni
Parth Kulkarni 2021 年 7 月 12 日
コメント済み: Parth Kulkarni 2021 年 7 月 12 日
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

採用された回答

Parth Kulkarni
Parth Kulkarni 2021 年 7 月 12 日
Thanks ... this worked

その他の回答 (2 件)

Alan Stevens
Alan Stevens 2021 年 7 月 12 日
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 件のコメント
Alan Stevens
Alan Stevens 2021 年 7 月 12 日
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
Parth Kulkarni 2021 年 7 月 12 日
I am randomising the Kp and np along with stresses now ..... is this code correct?
a = 115;
b = 234;
r = (b-a).*rand(1000,1) + a;
sr=size(r);
sr1=sr(1);
kp=(1500-750).*rand(1000,1) + 1500;
kpr=size(kp);
kp1=kp(1);
np=(1-0).*rand(1000,1) + 1;
npr=size(np);
np=np(1);
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')
  2 件のコメント
Parth Kulkarni
Parth Kulkarni 2021 年 7 月 12 日
Oh yes . I will try

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by