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

📄 hscclt.cpp

📁 是一个结构试验设计的加工曲线的跟踪实现 没有密码。第一次
💻 CPP
📖 第 1 页 / 共 5 页
字号:
   double fthdivt;
   double ftrdivt;
   double fcrdivt;    
   double xxyytemp1,xxyytemp2;

   if(isub==1)   //按过镇海建议
   {
	    ccstress=fc/(1.0+18.0*pow(T/1000,5.1));   //混凝土高温受压峰值应力;
        ctstress=0.0-ccstress*0.1;    //混凝土的高温受拉峰值应力;
        cpt=cp*(1.0+5.0*pow(T/1000,1.7));   //混凝土高温峰值应力所对应的应变;
        E0tt=ccstress/cpt*2.2;     //过镇海的书,p25式(2-9);
        ceptt=ctstress/E0tt;         //混凝土的受拉峰值应变;

		if(Estrain<=ceutt)   //混凝土拉裂;
			N=0.0;
        if(Estrain>=ceutt && Estrain<=ceptt) 			
		{
			if(T<=650.0)
			{
			   N=-ctstress/(ceutt-ceptt)*56.0*T/1000.0/1000.0/1000.0;
			   N=N+ctstress/(ceutt-ceptt)/(ceutt-ceptt)*((-1.0)*Estrain/cpt*cp*5.0*1.7*pow(T/1000.0,0.7)/1000.0*(ceutt-ceptt)-1.0*(ceutt-Estrain)*(-1.0)*(-0.1)/2.2*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7));
			   N=N+(-0.1)*(ceutt-Estrain)/(ceutt-ceptt)*fc*(-5.1*18.0*pow(T/1000.0,4.1)/1000.0)/(1.0+18.0*pow(T/1000.0,5.1))/(1.0+18.0*pow(T/1000.0,5.1));
			}
			if(T>650.0)     
			{
                N=ctstress/(ceutt-ceptt)/(ceutt-ceptt)*((-1.0)*Estrain/cpt*cp*5.0*1.7*pow(T/1000.0,0.7)/1000.0*(ceutt-ceptt)-1.0*(ceutt-Estrain)*(-1.0)*(-0.1)/2.2*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7));
			    N=N+(-0.1)*(ceutt-Estrain)/(ceutt-ceptt)*fc*(-5.1*18.0*pow(T/1000.0,4.1)/1000.0)/(1.0+18.0*pow(T/1000.0,5.1))/(1.0+18.0*pow(T/1000.0,5.1));
			}
			if(fabs(ceutt-ceptt)<0.00003)
				N=0.0;
		}	    
        if(Estrain>=ceptt && Estrain<=0.0)
		{
			N=2.2*Estrain/cpt/cpt*(-fc*18.0*5.1/1000.0*pow(T/1000.0,4.1)/(1.0+18.0*pow(T/1000.0,5.1))/(1.0+18.0*pow(T/1000.0,5.1))*cpt-ccstress*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7));
			N=N+E0tt*Estrain/cpt*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7);
			if(T<=650.0)
			{
			    N=N+E0tt*56.0*T/1000.0/1000.0/1000.0;
			}
		}
	    if(Estrain<=ceutt)   //混凝土拉裂;
		{
			N=0;
		}
        if(Estrain>=0 && Estrain<=cpt)    //混凝土受压
		{
			fsdives=ccstress*(2.2/cpt-2.8*Estrain/cpt/cpt+0.6*Estrain*Estrain/cpt/cpt/cpt);
			
			Hstress=1.0/(1.0+fsdives*((72.0*T*T/1000/1000.0-T/1000.0)/1000.0/fc+60.0*sqrt(time0/60.0/120.0)*(exp(6.0*T/1000.0)-1.0)/ccstress/1000000.0));
		
			fsdivt=fc/(1.0+18.0*pow(T/1000.0,5.1))/(1.0+18.0*pow(T/1000.0,5.1))*(0.0-18.0*5.1/1000.0*pow(T/1000.0,4.1))*(2.2*Estrain/cpt-1.4*Estrain*Estrain/cpt/cpt+0.2*Estrain*Estrain*Estrain/cpt/cpt/cpt);
            fsdivt=fsdivt+ccstress*(-2.2*Estrain/cpt/cpt-1.4*Estrain*Estrain*(-2.0)/cpt/cpt/cpt-0.6*Estrain*Estrain*Estrain/cpt/cpt/cpt/cpt)*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7);

			if(T<=650.0)
			{
              fthdivt=56.0*T/1000.0/1000.0/1000.0;
			}
            if(T>=650.0)
			{
              fthdivt=0.0;
			}

			//混凝土瞬态热应变对温度的导数;
            ftrdivt=Estress/fc*(72.0*2.0*T/1000.0/1000.0-1.0/1000.0)/1000.0;
			
            //混凝土高温蠕变对温度的导数;
            fcrdivt=18.0*5.1*pow(T/1000.0,4.1)/1000.0/fc*Estress*sqrt(time0/60.0/120.0)*(exp(6.0*T/1000.0)-1.0)*60.0/1000000.0;
		    fcrdivt=fcrdivt+Estress/ccstress*sqrt(time0/60.0/120.0)*exp(6.0*T/1000.0)*6.0/1000.0*60.0/1000000.0;
		
			N=(fsdivt+fsdives*(fthdivt-ftrdivt-fcrdivt))*Hstress;	
		}
        if(Estrain>=cpt)   
		{
			fsdives=ccstress*((0.8*(Estrain/cpt-1.0)*(Estrain/cpt-1.0)+Estrain/cpt)/cpt-Estrain/cpt*(1.6*(Estrain/cpt-1.0)/cpt+1.0/cpt))/((0.8*(Estrain/cpt-1.0)*(Estrain/cpt-1.0)+Estrain/cpt)*(0.8*(Estrain/cpt-1.0)*(Estrain/cpt-1.0)+Estrain/cpt));
			Hstress=1.0/(1.0+fsdives*((72.0*T*T/1000/1000.0-T/1000.0)/1000.0/fc+60.0*sqrt(time0/60.0/120.0)*(exp(6.0*T/1000.0)-1.0)/ccstress/1000000.0));
			fsdivt=fc*(-18.0)*5.1*pow(T/1000.0,4.1)/1000.0/(1.0+18.0*pow(T/1000.0,5.1))/(1.0+18.0*pow(T/1000.0,5.1))*Estrain*cpt/(0.8*(Estrain-cpt)*(Estrain-cpt)+Estrain*cpt);
            fsdivt=fsdivt+ccstress*(Estrain*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7)*(0.8*(Estrain-cpt)*(Estrain-cpt)+Estrain*cpt)-Estrain*cpt*(0.8*2.0*(Estrain-cpt)*(-1.0)*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7)+Estrain*cp*5.0*1.7/1000.0*pow(T/1000.0,0.7)))/(0.8*(Estrain-cpt)*(Estrain-cpt)+Estrain*cpt)/(0.8*(Estrain-cpt)*(Estrain-cpt)+Estrain*cpt);
            
			if(T<=650.0) //(2-1)
			{
              fthdivt=56.0*T/1000.0/1000.0/1000.0;
			}
            if(T>=650.0)
			{
              fthdivt=0.0;
			}

			//混凝土瞬态热应变对温度的导数;
            ftrdivt=Estress/fc*(72.0*2.0*T/1000.0/1000.0-1.0/1000.0)/1000.0;
		
            //混凝土高温蠕变对温度的导数;
            fcrdivt=18.0*5.1*pow(T/1000.0,4.1)/1000.0/fc*Estress*sqrt(time0/60.0/120.0)*(exp(6.0*T/1000.0)-1.0)*60.0/1000000.0;
		    fcrdivt=fcrdivt+Estress/ccstress*sqrt(time0/60.0/120.0)*exp(6.0*T/1000.0)*6.0/1000.0*60.0/1000000.0;

			N=(fsdivt+fsdives*(fthdivt-ftrdivt-fcrdivt))*Hstress;
		}
   }

   if(isub==2)   //按Lie建议公式
   {
	    if(T<=450.0)
		{
	       ccstress=fc;
		}
        if(T>=450.0  && T<=874.0)
		{
           ccstress=fc*(2.011-2.353*(T-20.0)/1000.0);
		}
        if(T>=874.0)
		{
           ccstress=0.0;
		}

        ctstress=0.0-ccstress*0.1;    //混凝土的高温受拉峰值应力;
        cpt=0.0025+(6.0*T+0.04*T*T)/1000000.0;   //混凝土高温峰值应力所对应的应变;
        E0tt=ccstress/cpt*2.0;     //过镇海的书,p25式(2-9),原点切线模量;
		if(T<874.0)
		{
		   ceptt=-0.1/2.0*cpt;  //混凝土的受拉峰值应变;
		   if(Estrain<=ceutt)   //混凝土拉裂;
		   {
			  N=0.0;
		   }
           if(Estrain>=ceutt && Estrain<=ceptt)
		   {
			  if(T<=450.0)
			  {
			     N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
                 N=N+ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(-1.0)*(ceutt-Estrain)*(-1.0)*(-0.1)/2.0*(6.0+0.08*T)/1000000.0;
			  }
			  if(T>450.0  && T<=650.0)   
			  {
                  N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
                  N=N+ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(-1.0)*(ceutt-Estrain)*(-1.0)*(-0.1)/2.0*(6.0+0.08*T)/1000000.0;
			      N=N-fc*0.1*(-2.353/1000.0)*(ceutt-Estrain)/(ceutt-ceptt);
			  }
			  if(T>650.0  && T<=874.0)   
			  {
                 N=ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(-1.0)*(ceutt-Estrain)*(-1.0)*(-0.1)/2.0*(6.0+0.08*T)/1000000.0;
			     N=N-0.1*fc*(-2.353/1000.0)*(ceutt-Estrain)/(ceutt-ceptt);
			  }
              if(fabs(ceutt-ceptt)<0.00003)
			  {
				   N=0.0;
			  }
			 
		   }
          if(Estrain>=ceptt && Estrain<=0.0)
		  {
            if(T<=450.0)
			{
		       N=E0tt*(0.008*2.0*T+6.0)/1000000.0+2.0*Estrain*fc/cpt/cpt*(-1.0)*(6.0+0.04*2.0*T)/1000000.0;            
			}
		    if(T>450.0  && T<=650.0)
			{
			   N=E0tt*(0.008*2.0*T+6.0)/1000000.0;
		       N=N+2.0*Estrain/cpt/cpt*(fc*(-2.353/1000.0)*cpt-ccstress*(6.0+0.04*2.0*T)/1000000.0);			   
			}
            if(T>650.0  && T<=874.0)
			{
			    N=2.0*Estrain/cpt/cpt*(fc*(-2.353/1000.0)*cpt-ccstress*(6.0+0.04*2.0*T)/1000000.0);
			}
            if(T>=874.0)
			{
			  N=0.0;
			}			 
		  }
        if(Estrain>=0 && Estrain<=cpt)    //混凝土受压
		{
			Hstress=1.0;
			if(T<=650.0)
			{
			   N=-ccstress*2.0*(cpt-Estrain)/cpt*(-1.0)/cpt*(0.008*2.0*T+6.0)/1000000.0;  //fdives*fthdivT
			}
            if(T>650.0)
			{
			   N=0.0;  //fdives*fthdivT
			}
		    xxyytemp2=N;
			if(T<=450.0)//应力对温度求导;
			{
			   N=xxyytemp2-ccstress/cpt/cpt/cpt/cpt*(cpt*cpt*2.0*(cpt-Estrain)*(6.0+0.04*2.0*T)/1000000.0-(cpt-Estrain)*(cpt-Estrain)*2.0*cpt*(6.0+0.04*2.0*T)/1000000.0);//fdivT
			}
            if(T>450.0  &&  T<=874.0)
			{
               N=xxyytemp2-ccstress/cpt/cpt/cpt/cpt*(cpt*cpt*2.0*(cpt-Estrain)*(6.0+0.04*2.0*T)/1000000.0-(cpt-Estrain)*(cpt-Estrain)*2.0*cpt*(6.0+0.04*2.0*T)/1000000.0);//fdivT
		       N=xxyytemp2+(1.0-(cpt-Estrain)*(cpt-Estrain)/cpt/cpt)*fc*(-2.353/1000.0);// fdivT
			}
            if(T>=874.0)
			{
				N=0.0;
			}
		}	
        if(Estrain>=cpt)   
		{
			Hstress=1.0;
			if(T<=650.0)
			{
			   N=-ccstress*2.0/9.0/cpt/cpt*(Estrain-cpt)*Hstress*(0.008*2.0*T+6.0)/1000000.0;
			}
			if(T>650.0)
			{
				N=0.0;
			}
		    xxyytemp2=N;
			if(T<=450.0)
			{
				N=xxyytemp2-ccstress/3.0/3.0/3.0/3.0/cpt/cpt/cpt/cpt*(2.0*(Estrain-cpt)*(-1.0)*3.0*3.0*cpt*cpt*(6.0+0.04*2.0*T)/1000000.0-(Estrain-cpt)*(Estrain-cpt)*2.0*3.0*cpt*3.0*(6.0+0.04*2.0*T)/1000000.0);
			}
		    if(T>450.0  &&  T<=874.0)
			{
				N=xxyytemp2-ccstress/3.0/3.0/3.0/3.0/cpt/cpt/cpt/cpt*(2.0*(Estrain-cpt)*(-1.0)*3.0*3.0*cpt*cpt*(6.0+0.04*2.0*T)/1000000.0-(Estrain-cpt)*(Estrain-cpt)*2.0*3.0*cpt*3.0*(6.0+0.04*2.0*T)/1000000.0);
			    N=N+fc*(-2.353/1000.0)*(1.0-(Estrain-cpt)*(Estrain-cpt)/3.0/3.0/cpt/cpt);
			}
			if(T>=874.0)
			{
				N=0.0;
			}
		}
	  }
	  if(T>=874.0)
	  {
		  N=0.0;
	  }
   } 
   if(isub==3)   //按Kodur建议HSC公式
   {
	   if(T<20.0)
		   ccstress=fc;
	   else if(T>=20.0 && T<100.0)
		   ccstress=fc*(1.0-0.003125*(T-20.0));
		else if(T>=100.0 && T<400.0) 
			ccstress=0.75*fc;
		else if(T>=400 && T<=917.24)
			ccstress=fc*(1.33-0.00145*T);
		else
			ccstress=0.0;

		if(T<917.24)
		{
			ctstress=0.0-ccstress*0.1;    //混凝土的高温受拉峰值应力
			//混凝土高温峰值应力所对应的应变
			cpt=0.0018+(6.7*fc/1E6+6*T+0.03*T*T)/1000000.0;
			//过镇海的书,p25式(2-9),原点切线模量
			E0tt=ccstress/cpt*(2.28-0.012*fc/1000000.0); 		
			ceptt=ctstress/E0tt;        //混凝土的受拉峰值应变
			
			xxyytemp1=2.28-0.012*fc/1000000.0;
			ceptt=(-0.1)*cpt/xxyytemp1;    //混凝土的受拉峰值应变

			if(Estrain<=ceutt)   //混凝土拉裂
			{
				N=0.0;
			}
			if(Estrain>ceutt && Estrain<=ceptt)
			{
				if(T<20.0)   
				{
					N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
					N=N-ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(-1.0)*(ceutt-Estrain)*(-0.1)/xxyytemp1*(6.0+0.03*2*T)/1000000.0;
				}
				if(T>=20.0 && T<100.0)
				{
					N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
					N=N-ctstress*(-1.0)/(ceutt-ceptt)/(ceutt-ceptt)*(ceutt-Estrain)*(-0.1)/xxyytemp1*(6.0+0.03*2*T)/1000000.0;
			    	N=N+fc*(-0.1)*(-0.003125)*(ceutt-Estrain)/(ceutt-ceptt);
				}
				if(T>=100.0  && T<400.0)   
				{
					N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
					N=N-ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(-1.0)*(ceutt-Estrain)*(-0.1)/xxyytemp1*(6.0+0.03*2*T)/1000000.0;
				}
				if(T>=400.0  && T<650.0)   
				{
					N=-ctstress/(ceutt-ceptt)*(0.008*2.0*T+6.0)/1000000.0;
					N=N-ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(ceutt-Estrain)*(-0.1)/xxyytemp1*(6.0+0.06*T)/1000000.0;
					N=N+fc*(-0.1)*(-0.00145)*(ceutt-Estrain)/(ceutt-ceptt);
				}
				if(T>=650.0  && T<=917.24)   
				{
					N=N-ctstress/(ceutt-ceptt)/(ceutt-ceptt)*(ceutt-Estrain)*(-0.1)/xxyytemp1*(6.0+0.06*T)/1000000.0;
					N=N+fc*(-0.1)*(-0.00145)*(ceutt-Estrain)/(ceutt-ceptt);
				}
				if(fabs(ceutt-ceptt)<0.00003)
				{
					N=0.0;
				}			 
			}
			if(Estrain>=ceptt && Estrain<=0.0)
			{
				if(T<20.0)
				{
					N=E0tt*(0.008*2.0*T+6.0)/1000000.0;
					N=N+Estrain*xxyytemp1*(-ccstress*(6.0+0.03*2*T)/1000000.0)/cpt/cpt;
				}
				if(T>=20.0 && T<100.0)
				{
					N=E0tt*(0.008*2.0*T+6.0)/1000000.0;
					N=N+Estrain*xxyytemp1*(fc*(-0.003125)*cpt-ccstress*(6.0+0.03*2*T)/1000000.0)/cpt/cpt;
				}
				if(T>=100.0 && T<400.0)
				{
					N=E0tt*(0.008*2.0*T+6.0)/1000000.0;
					N=Estrain*xxyytemp1*ccstress*(-1.0)*(6.0+0.03*2.0*T)/1000000.0/cpt/cpt;					
				}
				if(T>=400.0  && T<650.0)
				{
					N=E0tt*(0.008*2.0*T+6.0)/1000000.0;
					N=N+Estrain*xxyytemp1/cpt/cpt*(fc*(-0.00145)*cpt-ccstress*(6.0+0.03*2.0*T)/1000000.0);			   
				}
				if(T>=650.0  && T<=917.24)
				{
					N=Estrain*xxyytemp1/cpt/cpt*(fc*(-0.00145)*cpt-ccstress*(6.0+0.03*2.0*T)/1000000.0);
				}
				if(T>=917.24)
				{
					N=0.0;
				}			 
			}
			if(Estrain>=0 && Estrain<=cpt)    //混凝土受压
			{
				Hstress=1.0;
				if(T<=650.0)
				{       //fdives*fthdivT
					N=-ccstress*xxyytemp1*pow((cpt-Estrain)/cpt,xxyytemp1-1.0)*(-1.0)/cpt*(0.008*2.0*T+6.0)/1000000.0;  
				}
				if(T>650.0)
				{
					N=0.0; //fdives*fthdivT 
				}
				xxyytemp2=N;
				if(T<20.0)//应力对温度求导
				{     //fdivT
					N=xxyytemp2+ccstress*(-1.0)*xxyytemp1*pow((cpt-Estrain)/cpt,xxyytemp1-1.0)/cpt/cpt*(cpt*(6.0+0.03*2.0*T)/1000000.0-(cpt-Estrain)*(6.0+0.03*2.0*T)/1000000.0);
				}
				if(T>=20.0 && T<100.0) //应力对温度求导
				{     //fdivT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -