📄 hscclt.cpp
字号:
Hstress=1.0/(1.0+(1.0e6)*(50.0-0.04*T)*6.9*(-exp((-30.0+0.03*T)*sqrt(Estrain-seyt+0.001))))*(-30.0+0.03*T)/2.0/sqrt((Estrain-seyt+0.001)*xxyytemp1);
}
N=(1.0e6)*(50.0-0.04*T)*6.9*(-exp((-30.0+0.03*T)*sqrt(Estrain-seyt+0.001)))*(-30.0+0.03*T)/2.0/sqrt(Estrain-seyt+0.001)*Hstress;
}
}
if(T>=995.0)
{
N=0.0;
}
}
return(N);
}
//钢筋的温度切线模量;
double Estempt(int isub,double Estress,double Estrain,double T,double time0,double fy,double ey)
//钢筋的温度切线模量的值,见过镇海的书P204页,式(12-3),isub表示采用的建议公式类别,Estress表示有效应力,Estrain表示有效应变,T表示温度;
{
double N;
double Hstress; //临时变量,见过镇海书p204,式12-5
double xxyytemp1;
double Esttl; //钢筋的原点切线模量
double xxyytemp2;
double seut;
double sfut;
double fsdives;
double fsdivt; //应力对温度的导数
if(isub==1) //按过镇海建议
{
seyt=2295.0/1000000.0;
sfyt=fy/(1.0+24.0*pow(T/1000.0,4.5)); //钢筋的高温屈服强度
sfut=sfu/(1.0+36.0*pow(T/1000.0,6.2));//钢筋的高温极限抗拉强度
Esttl=sfyt/seyt;
if(T<=608.0)
{
seut=0.16-0.23*T/1000.0;
}
if(T>=608.0)
{
seut=0.02;
}
if(Estrain<=-seyt)
{
//先求Hstress
if(sgaowenx==0)
{
Hstress=1.0;
}
if(sgaowenx==1)
{
xxyytemp1=0.0;
if(Estress>=-103.42*(1.0e6) && Estress<0.0)
{
xxyytemp1=0.00346*1.75/103.42/1.0e6*pow(-Estress/(103.42*1.0e6),0.75)+1.103*(1.0e18)*4.7/103.42/1.0e6*pow(-Estress/(103.42*1.0e6),3.7)*Wendubu;
}
if(Estress<=-103.42*(1.0e6) && Estress>=-310.26*(1.0e6))
{
xxyytemp1=0.00346*1.75/103.42/1.0e6*pow(-Estress/(103.42*1.0e6),0.75)+1.23*(1.0e16)*exp(-4.5*Estress/(103.42*1.0e6))*4.5/103.42/1.0e6*Wendubu;
}
if( Estress<=-310.26*(1.0e6))
{
xxyytemp1=0.0;
}
fsdives=-(sfut-sfyt)*0.62*pow(1.5*(-(Estrain-seyt))/(seut-seyt)-0.5*pow((-(Estrain-seyt))/(seut-seyt),3.0),0.62-1.0)*(-1.5/(seut-seyt)-0.5*3.0*pow((-(Estrain-seyt))/(seut-seyt),2.0)*(-1.0)/(seut-seyt));
Hstress=1.0/(1.0+fsdives*xxyytemp1);
}
//先考虑应力对温度的导数
fsdivt=-fy*(0.0-24.0*4.5/1000.0*pow(T/1000.0,3.5))/(1.0+24.0*pow(T/1000.0,4.5))/(1.0+24.0*pow(T/1000.0,4.5));
fsdivt=fsdivt-(-sfu*36.0/1000.0*6.2*pow(T/1000.0,5.2)/(1.0+36.0*pow(T/1000.0,6.2))/(1.0+36.0*pow(T/1000.0,6.2))-(-fy*24.0*4.5/1000.0*pow(T/1000.0,3.5)/(1.0+24.0*pow(T/1000.0,4.5))/(1.0+24.0*pow(T/1000.0,4.5))))*pow(1.5*(-(Estrain-seyt))/(seut-seyt)-0.5*pow((-(Estrain-seyt))/(seut-seyt),3.0),0.62);
if(T<=608.0)
{
fsdivt=fsdivt-(sfut-sfyt)*0.62*pow(1.5*(-(Estrain-seyt))/(seut-seyt)-0.5*pow((-(Estrain-seyt))/(seut-seyt),3.0),0.62-1.0)*(1.5/(seut-seyt)/(seut-seyt)*(-(-(Estrain-seyt))*(-0.23)/1000.0)-0.5*3.0*pow((-(Estrain-seyt))/(seut-seyt),2.0)*1.0/(seut-seyt)/(seut-seyt)*(-(-(Estrain-seyt))*(-0.23)/1000.0));
}
N=Hstress*fsdivt;
xxyytemp2=N;
//考虑热膨胀应变切线分量
fsdives=-(sfut-sfyt)*0.62*pow(1.5*(-(Estrain-seyt))/(seut-seyt)-0.5*pow((-(Estrain-seyt))/(seut-seyt),3.0),0.62-1.0)*(-1.5/(seut-seyt)-0.5*3.0*pow((-(Estrain-seyt))/(seut-seyt),2.0)*(-1.0)/(seut-seyt));
N=xxyytemp2+Hstress*fsdives*(16.0*1.5/1000.0*pow(T/1000.0,0.5)/1000.0);
xxyytemp2=N;
//考虑高温瞬时蠕变分量
if(sgaowenx==1)
{
if(Estress>=-103.42*(1.0e6) && Estress<0.0)
{
//xxyytemp1:高温瞬时蠕变对温度的导数
xxyytemp1=-1.103e18*pow(-Estress/103.42e6,4.7)*WendubuDT;
N=xxyytemp2+(-1.0)*Hstress*xxyytemp1*fsdives;
}
if(Estress<=-103.42*(1.0e6)&& Estress>=-310.26*(1.0e6))
{
//xxyytemp1:高温瞬时蠕变对温度的导数
xxyytemp1=(-1.23e16)*exp(-4.5*Estress/(103.42e6))*WendubuDT;
N=xxyytemp2+(-1.0)*Hstress*xxyytemp1*fsdives;
}
}
}
if(Estrain>=-seyt && Estrain<=seyt)
{
//先求Hstress
if(sgaowenx==0) //不考虑高温徐变
{
Hstress=1.0;
}
if(sgaowenx==1) //考虑高温徐变
{
if(Estress>=-103.42*(1.0e6) && Estress<=0.0)
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(-Estress/(103.42*1.0e6),0.75)+1.103e18/103.42/1.0e6*4.7*pow(-Estress/(103.42*1.0e6),3.7)*Wendubu;
}
if(Estress<=-103.42*(1.0e6) && Estress>=-310.26*(1.0e6))
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(-Estress/(103.42*1.0e6),0.75)+(1.23e16)*exp(-4.5*Estress/(103.42*1.0e6))*4.5/103.42/1.0e6*Wendubu;
}
if(Estress<=-310.26*(1.0e6))
{
xxyytemp1=0.0;
}
if(Estress<=103.42e6 && Estress>=0.0 )
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(Estress/(103.42*1.0e6),0.75)+1.103*(1.0e18)/103.42/1.0e6*4.7*pow(Estress/(103.42*1.0e6),3.7)*Wendubu;
}
if(Estress>=103.42e6 && Estress<=310.26*(1.0e6))
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(Estress/(103.42*1.0e6),0.75)+1.23*(1.0e16)*exp(4.5*Estress/(103.42*1.0e6))*4.5/103.42/1.0e6*Wendubu;
}
if(Estress>=310.26*(1.0e6))
{
xxyytemp1=0.0;
}
Hstress=1.0/(1.0+xxyytemp1*Esttl);
}
//计算N
//先考虑应力对温度的切线模量
N=Estrain*Hstress*(-fy*24.0*4.5/1000.0*pow(T/1000.0,3.5)/(1.0+24.0*pow(T/1000.0,4.5))/(1.0+24.0*pow(T/1000.0,4.5)))/seyt;
xxyytemp2=N;
//考虑钢筋的热膨胀的切线模量;
N=xxyytemp2+Hstress*Esttl*(16.0*1.5/1000.0*pow(T/1000.0,0.5)/1000.0);
xxyytemp2=N;
//考虑钢筋高温瞬时蠕变模型
if(sgaowenx==1)
{
if(Estress<=-103.42*(1.0e6) && Estress>=-310.26*(1.0e6))
{
//xxyytemp1:高温瞬时蠕变对温度的导数;
xxyytemp1=(-1.23e16)*exp(-4.5*Estress/(103.42e6))*WendubuDT;
N=xxyytemp2+(-1.0)*Hstress*Esttl*xxyytemp1;
}
if(Estress>=-103.42*(1.0e6) && Estress<=0.0)
{
//xxyytemp1:高温瞬时蠕变对温度的导数;
xxyytemp1=-1.103e18*pow(-Estress/103.42e6,4.7)*WendubuDT;
N=xxyytemp2+(-1.0)*Hstress*Esttl*xxyytemp1;
}
if(Estress<=103.42*(1.0e6) && Estress>=0.0)
{
//xxyytemp1:高温瞬时蠕变对温度的导数;
xxyytemp1=1.103e18*pow(Estress/103.42e6,4.7)*WendubuDT;
N=xxyytemp2+(-1.0)*Hstress*Esttl*xxyytemp1;
}
if(Estress>=103.42*(1.0e6) && Estress<=310.26*(1.0e6))
{
//xxyytemp1:高温瞬时蠕变对温度的导数;
xxyytemp1=(1.23e16)*exp(4.5*Estress/(103.42e6))*WendubuDT;
N=xxyytemp2+(-1.0)*Hstress*Esttl*xxyytemp1;
}
}
}
if(Estrain>=seyt)
{
//先求Hstress;
if(sgaowenx==0)
{
Hstress=1.0;
}
if(sgaowenx==1)
{
if(Estress<=103.42*(1.0e6))
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(Estress/(103.42*1.0e6),0.75)+1.103*(1.0e18)/103.42/1.0e6*4.7*pow(Estress/(103.42*1.0e6),3.7)*Wendubu;
}
if(Estress>103.42*(1.0e6) && Estress<=310.26*(1.0e6))
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(Estress/(103.42*1.0e6),0.75)+1.23*(1.0e16)*exp(4.5*Estress/(103.42*1.0e6))*4.5/103.42/1.0e6*Wendubu;
}
if(Estress>=310.26*(1.0e6))
{
xxyytemp1=0.0;
}
fsdives=(sfut-sfyt)*0.62*pow(1.5*(Estrain-seyt)/(seut-seyt)-0.5*pow((Estrain-seyt)/(seut-seyt),3.0),0.62-1.0)*(1.5/(seut-seyt)-0.5*3.0*pow((Estrain-seyt)/(seut-seyt),2.0)/(seut-seyt));
Hstress=1.0/(1.0+fsdives*xxyytemp1);
}
//先考虑应力对温度的导数
fsdivt=fy*(0.0-24.0*4.5/1000.0*pow(T/1000.0,3.5))/(1.0+24.0*pow(T/1000.0,4.5))/(1.0+24.0*pow(T/1000.0,4.5));
fsdivt=fsdivt+(-sfu*36.0/1000.0*6.2*pow(T/1000.0,5.2)/(1.0+36.0*pow(T/1000.0,6.2))/(1.0+36.0*pow(T/1000.0,6.2))-(-fy*24.0*4.5/1000.0*pow(T/1000.0,3.5)/(1.0+24.0*pow(T/1000.0,4.5))/(1.0+24.0*pow(T/1000.0,4.5))))*pow(1.5*(Estrain-seyt)/(seut-seyt)-0.5*pow((Estrain-seyt)/(seut-seyt),3.0),0.62);
if(T<=608.0)
{
fsdivt=fsdivt+(sfut-sfyt)*0.62*pow(1.5*(Estrain-seyt)/(seut-seyt)-0.5*pow((Estrain-seyt)/(seut-seyt),3.0),0.62-1.0)*(1.5/(seut-seyt)/(seut-seyt)*(-(Estrain-seyt)*(-0.23)/1000.0)-0.5*3.0*pow((Estrain-seyt)/(seut-seyt),2.0)*1.0/(seut-seyt)/(seut-seyt)*(-(Estrain-seyt)*(-0.23)/1000.0));
}
N=Hstress*fsdivt;
xxyytemp2=N;
//考虑热膨胀应变切线分量
fsdives=(sfut-sfyt)*0.62*pow(1.5*(Estrain-seyt)/(seut-seyt)-0.5*pow((Estrain-seyt)/(seut-seyt),3.0),0.62-1.0)*(1.5/(seut-seyt)-0.5*3.0*pow((Estrain-seyt)/(seut-seyt),2.0)/(seut-seyt));
N=xxyytemp2+Hstress*fsdives*(16.0*1.5/1000.0*pow(T/1000.0,0.5)/1000.0);
xxyytemp2=N;
//考虑高温瞬时蠕变分量
if(sgaowenx==1)
{
if(Estress<=103.42*(1.0e6))
{
//xxyytemp1:高温瞬时蠕变对温度的导数
xxyytemp1=1.103e18*pow(Estress/103.42e6,4.7)*WendubuDT;
N=xxyytemp2+(-1.0)*Hstress*xxyytemp1*fsdives;
}
if(Estress>=103.42*(1.0e6) && Estress<=310.26*(1.0e6))
{
//xxyytemp1:高温瞬时蠕变对温度的导数;
xxyytemp1=1.23e16*exp(4.5*Estress/(103.42e6))*WendubuDT;
N=xxyytemp2+(-1.0)*Hstress*xxyytemp1*fsdives;
}
}
}
}
if(isub==2) //按Lie建议公式
{
if(T<=995.0)
{
seyt=4.0*(1.0e-6)*fy*(1.0e-6);
//钢筋的高温屈服强度;
sfyt=1.0e3*(50.0-0.04*T)*(1.0-exp(sqrt(0.001)*(-30.0+0.03*T)))*6.9*seyt*1.0e6;
Esttl=1.0e6*(1.0e3)*(50.0-0.04*T)*(1.0-exp((-30.0+0.03*T)*sqrt(0.001)))*6.9;
if(Estrain<=-seyt)
{
//先求Hstress;
if(sgaowenx==0)
{
Hstress=1.0;
}
if(sgaowenx==1)
{
if(Estress>=-103.42*(1.0e6) && Estress<0.0)
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(-Estress/(103.42*1.0e6),0.75)+1.103*(1.0e18)/103.42/1.0e6*4.7*pow(-Estress/(103.42*1.0e6),3.7)*Wendubu;
}
if(Estress<=-103.42*(1.0e6) && Estress>=-310.26*(1.0e6))
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(-Estress/(103.42*1.0e6),0.75)+1.23*(1.0e16)*exp(-4.5*Estress/(103.42*1.0e6))*4.5/103.42/1.0e6*Wendubu;
}
if(Estress<=-310.26*(1.0e6))
{
xxyytemp1=0.0;
}
Hstress=1.0/(1.0-(1.0e6)*(50.0-0.04*T)*6.9*(-exp((-30.0+0.03*T)*sqrt(-(Estrain-seyt+0.001))))*(-30.0+0.03*T)/2.0/sqrt(-(Estrain-seyt+0.001))*(-1.0)*xxyytemp1);
}
//先考虑应力对温度的导数
N=(-1.0)*(1.0e6)*(-0.04*(1.0-exp((-30.0+0.03*T)*sqrt(-(Estrain-seyt+0.001))))*6.9+(50.0-0.04*T)*(-exp((-30.0+0.03*T)*sqrt(-(Estrain-seyt+0.001))))*6.9*sqrt(-(Estrain-seyt+0.001)*0.03))*Hstress;
N=N-Hstress*1.0e6*(1.0e3*seyt-1.0)*(-0.04*(1.0-exp((-30.0+0.03*T)*sqrt(0.001)))*6.9+(50.0-0.04*T)*(-exp((-30.0+0.03*T)*sqrt(0.001))*6.9*sqrt(0.001)*0.03));
xxyytemp2=N;
//考虑热膨胀应变切线分量;
if(T<=1000.0)
{
N=xxyytemp2+Hstress*(1.0e-6)*(12.0+0.004*2.0*T)*(-(1.0e6)*(50.0-0.04*T)*6.9*(-exp((-30.0+0.03*T)*sqrt(-(Estrain-seyt+0.001))))*(-30.0+0.03*T)/2.0/sqrt(-(Estrain-seyt+0.001))*(-1.0));
}
if(T>1000.0)
{
N=xxyytemp2+Hstress*(1.0e-6)*16.0*(-(1.0e6)*(50.0-0.04*T)*6.9*(-exp((-30.0+0.03*T)*sqrt(-(Estrain-seyt+0.001))))*(-30.0+0.03*T)/2.0/sqrt(-(Estrain-seyt+0.001))*(-1.0));
}
xxyytemp2=N;
//考虑高温瞬时蠕变分量;
if(sgaowenx==1)
{
if(Estress>=-103.42*(1.0e6))
{
//xxyytemp1:高温瞬时蠕变对温度的导数;
xxyytemp1=-1.103e18*pow(-Estress/103.42e6,4.7)*WendubuDT;
N=xxyytemp2+(-1.0)*Hstress*(-(1.0e6)*(50.0-0.04*T)*6.9*(-exp((-30.0+0.03*T)*sqrt(-(Estrain-seyt+0.001))))*(-30.0+0.03*T)/2.0/sqrt(-(Estrain-seyt+0.001))*(-1.0))*xxyytemp1;
}
if(Estress<=-103.42*(1.0e6) && Estress>=-310.26*(1.0e6))
{
//xxyytemp1:高温瞬时蠕变对温度的导数;
xxyytemp1=(-1.23e16)*exp(-4.5*Estress/(103.42e6))*WendubuDT;
N=xxyytemp2+(-1.0)*Hstress*(-(1.0e6)*(50.0-0.04*T)*6.9*(-exp((-30.0+0.03*T)*sqrt(-(Estrain-seyt+0.001))))*(-30.0+0.03*T)/2.0/sqrt(-(Estrain-seyt+0.001))*(-1.0))*xxyytemp1;
}
}
}
if(Estrain>=-seyt && Estrain<=seyt)
{
//先求Hstress;
if(sgaowenx==0) //不考虑高温徐变;
{
Hstress=1.0;
}
if(sgaowenx==1) //考虑高温徐变;
{
if(Estress>=-103.42*(1.0e6) && Estress<=0.0)
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(-Estress/(103.42*1.0e6),0.75)+1.103e18/103.42/1.0e6*4.7*pow(-Estress/(103.42*1.0e6),3.7)*Wendubu;
}
if(Estress<=-103.42*(1.0e6) && Estress>=-310.26*(1.0e6))
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(-Estress/(103.42*1.0e6),0.75)+(1.23e16)*exp(-4.5*Estress/(103.42*1.0e6))*4.5/103.42/1.0e6*Wendubu;
}
if( Estress<=-310.26*(1.0e6))
{
xxyytemp1=0.0;
}
if(Estress<=103.42e6 && Estress>=0.0 )
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(Estress/(103.42*1.0e6),0.75)+1.103*(1.0e18)/103.42/1.0e6*4.7*pow(Estress/(103.42*1.0e6),3.7)*Wendubu;
}
if(Estress>=103.42e6 && Estress<=310.26*(1.0e6))
{
xxyytemp1=0.00346/103.42/1.0e6*1.75*pow(Estress/(103.42*1.0e6),0.75)+1.23*(1.0e16)*exp(4.5*Estress/(103.42*1.0e6))*4.5/103.42/1.0e6*Wendubu;
}
if( Estress>=310.26*(1.0e6))
{
xxyytemp1=0.0;
}
Hstress=1.0/(1.0+xxyytemp1*Esttl);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -