jc法matlab程序,科学网-利用matlab编程实现jc法来求解可靠性-杜宝雷的博文

这个应该算是课堂作业了,利用当量正态法来求解以下问题,求管道的可靠性指标,管材承载能力R服从对数正态分布,环向应力服从正态分布,地面载荷服从极值I型分布。

Contents

JC METHOD

AUTHOR:DUBAOLEI@GMAIL.COMDATE:2014-04-02

functionexer()

%EXER Summary of this function goes here

%   Detailedexplanation goes here

[original]

%Done

clc;

Rmu=309.2;CVr=0.17;Rdelta=52.6;

N1mu=53;CVn1=0.07;N1delta=3.7;

N2mu=70;CVn2=0.29;N2delta=20.3;

%the iteration number

i=1

%first step

i =

1

[the itertation]

while(i<6)

ifi==1

rstar=Rmu;

rmu2=Rmu;

n1star=N1mu;

n1mu2=N1mu;

n1delta2=N1delta;

n2star=N2mu;

n2mu2=N2mu;

n2delta2=N2delta;

Cvr=0.17

end

%R loop

rmu2=getRmu2(rstar,rmu2,Cvr)

rdelta2=getRdelta2(rstar,Cvr)

Cvr=rdelta2/rmu2

%N2 loop

[Fn2,fn2,n2mu2,n2delta2]=getN2(n2mu2,n2delta2,n2star)

%get the direction cos

[cosr cosn1cosn2]=gettheta(rdelta2,n1delta2,n2delta2)

%get the loop results

beta=getloopbeta(rmu2,n1mu2,n2mu2,rdelta2,n1delta2,n2delta2)

rstar=getloopRstar(rmu2,rdelta2,beta,cosr)

n1star=getloopN1star(n1mu2,n1delta2,beta,cosn1)

n2star=getloopN2star(n2mu2,n2delta2,beta,cosn2)

%show the result

disp('__________________________________________________________n')

%increse the loop variables

i=i+1

end

Cvr =

0.1700

end

[R tranfer] transfer R to gauss distribution

%DONE

functionRm=getRmu2(Rst,Rm,Cvr)

%H1 this function get the average number

Rm=Rst*(1+log(Rm/(sqrt(1+Cvr^2)))-log(Rst));

end

functionRdel=getRdelta2(Rst,Cvr)

%H1 this function get the delta

Rdel=Rst*(sqrt(log(1+Cvr^2)));

end

rmu2 =

304.7954

rdelta2 =

52.1901

Cvr =

0.1712

rmu2 =

249.0042

rdelta2 =

24.2745

Cvr =

0.0975

rmu2 =

239.8020

rdelta2 =

18.2344

Cvr =

0.0760

rmu2 =

238.4973

rdelta2 =

16.8698

Cvr =

0.0707

rmu2 =

237.8386

rdelta2 =

16.4174

Cvr =

0.0690

[N2 transfer] transfer N2 to gauss distribution

%DONE

function[Fn2,fn2,N2m,N2del]=getN2(N2m,N2del,N2st)

delta=0.78*N2del;

mu=N2m-0.577*delta;

Fn2=exp(-exp(-(N2st-mu)/delta));

fn2=1/delta*exp(-(N2st-mu)/delta)*Fn2;

z=norminv(Fn2,0,1);

z1=normpdf(z,0,1);

N2del=z1/fn2;

N2m=N2st-z*N2del;

end

Fn2 =

0.5703

fn2 =

0.0202

n2mu2 =

66.5603

n2delta2 =

19.4162

Fn2 =

0.8801

fn2 =

0.0074

n2mu2 =

57.3282

n2delta2 =

26.9336

Fn2 =

0.9848

fn2 =

7.1587e-04

n2mu2 =

17.4598

n2delta2 =

53.3693

Fn2 =

0.9852

fn2 =

3.5342e-04

n2mu2 =

-62.2161

n2delta2 =

106.0635

Fn2 =

0.9701

fn2 =

3.5625e-04

n2mu2 =

-179.5856

n2delta2 =

190.5970

[getcos]

function[cosRtheta cosN1theta cosN2theta]=gettheta(Rdel,N1del,N2del)

%H1 this function get the direction cos

%first normalized

% syms R N1 N2;

% f=sym('R-N1-N2');

%subs(f,{'R','N1','N2'},{'(R-Rmu)/Rdelta','(N1-N1mu)/Rdelta','(N2-N2mu)/N2delta'});

pd1=1;

pd2=-1;

pd3=-1;

sum1=((pd1*Rdel)^2+(pd2*N1del)^2+(pd3*N2del)^2)^0.5;

%then get the cos

cosRtheta=(-pd1*Rdel)/sum1;

cosN1theta=(-pd2*N1del)/sum1;

cosN2theta=(-pd3*N2del)/sum1;

end

cosr =

-0.9352

cosn1 =

0.0663

cosn2 =

0.3479

cosr =

-0.6660

cosn1 =

0.1015

cosn2 =

0.7390

cosr =

-0.3226

cosn1 =

0.0655

cosn2 =

0.9443

cosr =

-0.1570

cosn1 =

0.0344

cosn2 =

0.9870

cosr =

-0.0858

cosn1 =

0.0193

cosn2 =

0.9961

[loop] get loop variables

%DONE

functionbeta=getloopbeta(Rm,N1m,N2m,Rdel,N1del,N2del)

beta=(Rm-N1m-N2m)/(sqrt(Rdel^2+N1del^2+N2del^2));

end

functionRstar=getloopRstar(Rm,Rdel,Beta,costhetaR)

Rstar=Rm+Rdel*Beta*costhetaR;

end

functionN1star=getloopN1star(N1m,N1del,Beta,costhetaN1)

N1star=N1m+N1del*Beta*costhetaN1;

end

functionN2star=getloopN2star(N2m,N2del,Beta,costhetaN2)

N2star=N2m+N2del*Beta*costhetaN2;

end

beta =

3.3192

rstar =

142.7962

n1star =

53.8142

n2star =

88.9819

__________________________________________________________n

i =

2

beta =

3.8049

rstar =

187.4883

n1star =

54.4292

n2star =

133.0591

__________________________________________________________n

i =

3

beta =

2.9962

rstar =

222.1762

n1star =

53.7257

n2star =

168.4505

__________________________________________________________n

i =

4

beta =

2.3052

rstar =

232.3925

n1star =

53.2937

n2star =

179.0989

__________________________________________________________n

i =

5

beta =

1.9046

rstar =

235.1556

n1star =

53.1363

n2star =

182.0194

__________________________________________________________n

i =

6

转载本文请联系原作者获取授权,同时请注明本文来自杜宝雷科学网博客。

收藏

分享

分享到:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值