⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hscclt.cpp

📁 是一个结构试验设计的加工曲线的跟踪实现 没有密码。第一次
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				   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 + -