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

📄 压水堆热工水力设计dlg.cpp

📁 这是一个同学做的压水堆热工水力设计计算源代码,开发环境VC6
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			  }
				 
			  else {
				 A=(qh*shuzu0[k5]-hh[k5]*(ts-tfh[k5]))*miu0[k5]*Cp0[k5]/(1.07*hh[k5]*hh[k5]*(ts-tfh[k5]));
				  arfa0[k5]=4*A/de;
				  x10[k5]=1/(1+((1-arfa0[k5])/arfa0[k5])*(rol0[k5]/rogs));
				  x20[k5]=0.435*(Hfh[k5]-Hd0)/Hfg;
			      x0[k5]=(x10[k5]<=x20[k5])?x20[k5]:x10[k5];
				  }
				  if(x0[k5]<=xe0[k5])
					  x0[k5]=xe0[k5];
			 
		  }




		  //热管密度场的计算
		  double roh[21],qh1[21],frxs[21];
		  for(int k8=0;k8<21;k8++){
			  roh[k8]=1/((1-x0[k8])/rol0[k8]+x0[k8]/rogs);
			  qh1[k8]=qh*shuzu0[k8];
			  frxs[k8]=qh1[k8]/(tcih[k8]-tfh[k8]);
			  
		  }





		  //热管DNB比场的计算
		  double Qdnb[21],Qdnbeu[21],qh0[21],DNBR[21],xglh[21];
		  double Fc=1,Fg,Fs[21],dh=de,Ks=0.066,Ctd=0.061,C,quhe,Fnz=1.55,xglhmax=0,xglhav;
		  
		  for(int k6=0;k6<21;k6++){
			  Qdnbeu[k6]=(3.154e+3)*((2.022-(6.238e-5)*P)+(0.1722-(1.427e-5)*P)*exp((18.177-(5.987e-4)*P)*xe0[k6]))*((0.1484-1.596*xe0[k6]+0.1729*xe0[k6]*fabs(xe0[k6]))*0.2049*(3.6e-3)*Gh+1.037)*(1.157-0.869*xe0[k6])*(0.2664+0.8357*exp(-124.1*dh))*(0.8258+(0.3414e-3)*(Hfs-Hfh[0]));
			  Fg=pow(P/(15.58e+2),0.5)*(1.445-0.122L)*(exp(pow(xe0[k6]+0.2,2))-0.73)+Ks*Gh*pow(Ctd/0.019,0.35)/1354;
			  qh0[k6]=qh*Fnz*sin(Pi*(detz*k6+0.1)/Le);
			  quhe=0;
              //下式有待确定
			  if(k6<=lonb)
				  Fs[k6]=1;
			  else{
				  C=12.64*pow(1-xe0[k6],4.31)/pow(Gh*(3.6e-3),0.478);
				  for(int k7=lonb+1;k7<=k6;k7++){
					  quhe=quhe+qh0[k7]*(exp(C*detz*(k7))-exp(C*detz*(k7-1)));
				  }
				  
			      Fs[k6]=exp(-C*k6*detz)*quhe/(qh0[k6]*(1-exp(-C*(k6*detz-lonb*detz))));
			  }
			  Qdnb[k6]=Qdnbeu[k6]*Fc*Fg/Fs[k6];
			  
			  xglh[k6]=qh1[k6]*Pi*dcs;
			  DNBR[k6]=Qdnb[k6]/qh0[k6];
		  }
		  for(int r3=0;r3<jiedian;r3++){
			 
			  if(xglhmax<=xglh[r3])
				  xglhmax=xglh[r3];
		  }

          xglhav=Nt*Fu*y/(L*ncl*nu);
		  double minDNBR=10;
		  for(int v2=0;v2<jiedian;v2++){
			  if(minDNBR>=DNBR[v2])
				  minDNBR=DNBR[v2];
		  }

		   //WRB-1公式
		 double qdnb[21],PF,A1[21],B4[21],Dcs,dg,gsp,lh,Lgj=L*536.3/3851.4,dnbr[21];
	     double A12=-0.02538,A13=-0.1692, A15=-0.10881,A16=0.09285,mindnbr=100;
	     double A17=-3.8673, A19=-0.08188,A22=-0.1845, B3=0.1216;
	     double B42=1.6114,  B43=0.01450, B44=-0.06844,B45=-0.5183;
		 double Press=P*145.038/1000;
//         int juli; 
		 gsp=Lgj;
		 for(int k0=0;k0<21;k0++){
	      
	      lh=(k0+0.5)*detz;//计算点的位置
          dg=fmod(lh,Lgj);//计算点到最近格架的距离
	      if (dg>Lgj-dg)
		   dg=Lgj-dg;

	       A1[k0]=A12*lh/0.3048+A13*(Press/1000)+A15*tanh(A16*(dg+gsp)/0.0254+A17)+A19*dh/0.0254+A22*de/0.0254;
	       B4[k0]=B42*(Press/1000)+B43*lh/0.3048*(Press/1000)+B44*lh/0.3048+B45*(Press/1000)*(Press/1000);
           Dcs=dcs/0.0254;
	       if(0.422>Dcs&&Dcs>0.40) 
			   PF=1.2820;
	       if(0.4>Dcs&&Dcs>0.360) 
			   PF=1.1753;
	       qdnb[k0]=(PF+A1[k0])*1000000+B3*(Gh*737.37)-B4[k0]*(Gh*737.37)*x0[k0];
           qdnb[k0]=qdnb[k0]*3.1546/1000;
		   qdnb[k0]=qdnb[k0]/Fs[k0];
		   dnbr[k0]=qdnb[k0]/qh0[k0];
		 }
		 
         for(int v3=0;v3<jiedian;v3++){
			 if(mindnbr>=dnbr[v3])
				 mindnbr=dnbr[v3];
		 }

		  	m_edit2.SetSel(0,-1);
	        m_edit2.ReplaceSel("程序正在运行,请耐心等待结果的输出············");


			  





		  //数据输出部分
		 //堆芯总体数据输出
		 CString szItemTexts[]={"——————堆结构参数——————",
		 "热功率",
		 "中子通量分布设定",
		 "燃料元件的排列方案",
         "堆芯活性区高度L(m)",
		 "堆内燃料组件数目",
		 "堆芯当量直径(m)",
		 "堆芯燃料元件总数",
		 "堆芯控制棒导向管总数"};
		 

    for(int a=0;a<9;a++)
	{m_list.InsertItem(a,szItemTexts[a]);}
	CString duixin[9];
	duixin[0]=" ";
	switch(gonglv){
	case 0:
		duixin[1]="100%";
		break;
	case 1:
		duixin[1]="118%";
		break;
	}
	switch(pailie){
	case 0:
		duixin[3]="15x15";
		break;
	case 1:
		duixin[3]="17x17";
		break;
	case 2:
		duixin[3]="18x18";
		break;
	}
	switch(fenbu){
	case 0:
		duixin[2]="截尾余弦";
		break;
	case 1:
		duixin[2]="寿期初";
		break;
	case 2:
		duixin[2]="寿期末";
		break;
	case 3:
		duixin[2]="寿期中";
		break;
	}

	duixin[4].Format("%g",L);
	duixin[5].Format("%d",ncl);
	duixin[6].Format("%g",Def);
	duixin[7].Format("%d",ncl*nu);
	duixin[8].Format("%d",ncl*24);
	for(int s0=0;s0<9;s0++){
		m_list.SetItem(s0,1,LVIF_TEXT,duixin[s0],0,0,0,LPARAM(0));}
	//平均通道结果输出
	CString pingjun[2]={"——————平均通道——————","#####1.轴向各段参数#####"};
	CString pingjun1[7]={"********结点********","冷却剂平均温度(t):","冷却剂平均密度(kg/m^3):","包壳外表面热流密度(kw/m^2):",
		"线功率(kw/m):","通道内压力(kpa):"," "};
		m_list.InsertItem(9,pingjun[0]);
		m_list.InsertItem(10,pingjun[1]);


	for(int o1=0;o1<7;o1++)
	for(int s1=0;s1<jiedian;s1++)
	 {m_list.InsertItem(10+(o1+1)*(s1+1),pingjun1[o1]);}
  	
	
		 
	for(int w1=0;w1<jiedian;w1++){
		CString ping1[7];
		ping1[0].Format("%d",w1);
		m_list.SetItem(11+w1*7,1,LVIF_TEXT,ping1[0],0,0,0,LPARAM(0));
		ping1[1].Format("%g",tfm[w1]);
		m_list.SetItem(12+w1*7,1,LVIF_TEXT,ping1[1],0,0,0,LPARAM(0));
		ping1[2].Format("%g",rom[w1]);
		m_list.SetItem(13+w1*7,1,LVIF_TEXT,ping1[2],0,0,0,LPARAM(0));
		ping1[3].Format("%g",qm[w1]);
		m_list.SetItem(14+w1*7,1,LVIF_TEXT,ping1[3],0,0,0,LPARAM(0));
		ping1[4].Format("%g",xglm[w1]);
		m_list.SetItem(15+w1*7,1,LVIF_TEXT,ping1[4],0,0,0,LPARAM(0));
		ping1[5].Format("%g",pm[w1]);
		m_list.SetItem(16+w1*7,1,LVIF_TEXT,ping1[5],0,0,0,LPARAM(0));
		m_list.SetItem(17+w1*7,1,LVIF_TEXT," ",0,0,0,LPARAM(0));
	}
	     CString pingjun3="#####2.总体参数#####";
	     m_list.InsertItem(jiedian*7+11,pingjun3);
	CString pingjun2[5]={"冷却剂入口温度(t):","冷却剂出口温度(t):","冷却剂平均温度(t):","冷却剂平均质量流量(kg/(m^2*s)):","通道总压降(kpa):"};

      for(int w2=1;w2<6;w2++)
		  m_list.InsertItem(jiedian*7+11+w2,pingjun2[w2-1]);

	  CString ping2[5];
	  ping2[0].Format("%g",tfm[0]);
	  ping2[1].Format("%g",tfm[jiedian-1]);
	  ping2[2].Format("%g",(tfm[0]+tfm[jiedian-1])/2);
	  ping2[3].Format("%g",Gm);
	  ping2[4].Format("%g",Pm);


	  m_list.SetItem(jiedian*7+12,1,LVIF_TEXT,ping2[0],0,0,0,LPARAM(0));
	  m_list.SetItem(jiedian*7+13,1,LVIF_TEXT,ping2[1],0,0,0,LPARAM(0));
	  m_list.SetItem(jiedian*7+14,1,LVIF_TEXT,ping2[2],0,0,0,LPARAM(0));
	  m_list.SetItem(jiedian*7+15,1,LVIF_TEXT,ping2[3],0,0,0,LPARAM(0));
	  m_list.SetItem(jiedian*7+16,1,LVIF_TEXT,ping2[4],0,0,0,LPARAM(0));



	  //热管结果输出
	  //结点数据
	  CString reguan[3]={" ","——————热通道——————","#####1.轴向各段参数#####"};
	  m_list.InsertItem(jiedian*7+17,reguan[0]);
	  m_list.InsertItem(jiedian*7+18,reguan[1]);
	  m_list.InsertItem(jiedian*7+19,reguan[2]);

	  CString reguan1[15]={"********结点********","冷却剂平均温度(t):","冷却剂含汽量(%):",
		  "包壳—水的平均放热系数(kw/(m^2*t)):","冷却剂平均密度(kg/m^3):",
		  "包壳外表面热流密度(kw/m^2):","线功率(kw/m):","通道内压力(kpa):",
		  "包壳外表面温度(t):","包壳内表面温度(t):","芯块外表面温度(t):",
		  "芯块中心温度(t):","烧毁比(用W-3公式):","烧毁比(用WRB-1公式):"," "};
	  	for(int o2=0;o2<15;o2++)
	    for(int s2=0;s2<jiedian;s2++)
	 {m_list.InsertItem(jiedian*7+19+(o2+1)*(s2+1),reguan1[o2]);}
		for(int w3=0;w3<jiedian;w3++){
			CString guan[15];           
			guan[0].Format("%d",w3);
			m_list.SetItem(jiedian*7+20+w3*15,1,LVIF_TEXT,guan[0],0,0,0,LPARAM(0));
			guan[1].Format("%g",tfh[w3]);
			m_list.SetItem(jiedian*7+21+w3*15,1,LVIF_TEXT,guan[1],0,0,0,LPARAM(0));
			guan[2].Format("%g",x0[w3]*100);
			m_list.SetItem(jiedian*7+22+w3*15,1,LVIF_TEXT,guan[2],0,0,0,LPARAM(0));
			guan[3].Format("%g",frxs[w3]);
			m_list.SetItem(jiedian*7+23+w3*15,1,LVIF_TEXT,guan[3],0,0,0,LPARAM(0));
			guan[4].Format("%g",roh[w3]);
			m_list.SetItem(jiedian*7+24+w3*15,1,LVIF_TEXT,guan[4],0,0,0,LPARAM(0));
			guan[5].Format("%g",qh1[w3]);
			m_list.SetItem(jiedian*7+25+w3*15,1,LVIF_TEXT,guan[5],0,0,0,LPARAM(0));
			guan[6].Format("%g",xglh[w3]);
			m_list.SetItem(jiedian*7+26+w3*15,1,LVIF_TEXT,guan[6],0,0,0,LPARAM(0));
			guan[7].Format("%g",ph[w3]);
			m_list.SetItem(jiedian*7+27+w3*15,1,LVIF_TEXT,guan[7],0,0,0,LPARAM(0));
			guan[8].Format("%g",tcsh[w3]);
			m_list.SetItem(jiedian*7+28+w3*15,1,LVIF_TEXT,guan[8],0,0,0,LPARAM(0));
			guan[9].Format("%g",tcih[w3]);
			m_list.SetItem(jiedian*7+29+w3*15,1,LVIF_TEXT,guan[9],0,0,0,LPARAM(0));
			guan[10].Format("%g",tuh[w3]);
			m_list.SetItem(jiedian*7+30+w3*15,1,LVIF_TEXT,guan[10],0,0,0,LPARAM(0));
			guan[11].Format("%g",toh[w3]);
			m_list.SetItem(jiedian*7+31+w3*15,1,LVIF_TEXT,guan[11],0,0,0,LPARAM(0));
			guan[12].Format("%g",DNBR[w3]);
			m_list.SetItem(jiedian*7+32+w3*15,1,LVIF_TEXT,guan[12],0,0,0,LPARAM(0));
			guan[13].Format("%g",dnbr[w3]);
			m_list.SetItem(jiedian*7+33+w3*15,1,LVIF_TEXT,guan[13],0,0,0,LPARAM(0));
			m_list.SetItem(jiedian*7+34+w3*15,1,LVIF_TEXT," ",0,0,0,LPARAM(0));
		}
		//总体数据
		CString reguan0="#####2.总体参数#####";
		m_list.InsertItem(jiedian*22+20,reguan0);
		CString reguan2[10]={"冷却剂入口温度(t):","冷却剂出口温度(t):","冷却剂平均温度(t):",
			"冷却剂出口焓(kj/kg):","冷却剂出口含汽量(%):","冷却剂质量流量(kg/(m^2*s)):",
			"通道总压降(kpa):","最小的DNBR值(W-3):","最小的DNBR值(WRB-1):",
			"燃料芯块中心最高温度(t):"};
		for(int w4=1;w4<11;w4++){
			m_list.InsertItem(jiedian*22+20+w4,reguan2[w4-1]);}

		CString guan1[10];
		guan1[0].Format("%g",tfh[0]);
		guan1[1].Format("%g",tfh[jiedian-1]);
		guan1[2].Format("%g",(tfh[0]+tfh[jiedian-1])/2);
		guan1[3].Format("%g",Hfh[jiedian-1]);
		guan1[4].Format("%g",x0[jiedian-1]*100);
		guan1[5].Format("%g",Gh);
		guan1[6].Format("%g",Phe);
		guan1[7].Format("%g",minDNBR);
		guan1[8].Format("%g",mindnbr);
		guan1[9].Format("%g",tohmax);

	    m_list.SetItem(jiedian*22+21,1,LVIF_TEXT,guan1[0],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+22,1,LVIF_TEXT,guan1[1],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+23,1,LVIF_TEXT,guan1[2],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+24,1,LVIF_TEXT,guan1[3],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+25,1,LVIF_TEXT,guan1[4],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+26,1,LVIF_TEXT,guan1[5],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+27,1,LVIF_TEXT,guan1[6],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+28,1,LVIF_TEXT,guan1[7],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+29,1,LVIF_TEXT,guan1[8],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+30,1,LVIF_TEXT,guan1[9],0,0,0,LPARAM(0));

		//堆芯总体参数
		CString duizong[6]={" ","—————堆芯总体参数—————","全堆平均线功率(kw/m):",
			"最大线功率(kw/m):","活性区平均功率密度(kw/m^3):","堆芯总压降(kpa):"};
		for(int w5=0;w5<6;w5++){
			m_list.InsertItem(jiedian*22+31+w5,duizong[w5]);}
		CString zongti[4];
		zongti[0].Format("%g",xglhav);
		zongti[1].Format("%g",xglhmax);
		zongti[2].Format("%g",4*Nt*y/(Pi*Def*Def*L));
		zongti[3].Format("%g",Pm);
		m_list.SetItem(jiedian*22+33,1,LVIF_TEXT,zongti[0],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+34,1,LVIF_TEXT,zongti[1],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+35,1,LVIF_TEXT,zongti[2],0,0,0,LPARAM(0));
		m_list.SetItem(jiedian*22+36,1,LVIF_TEXT,zongti[3],0,0,0,LPARAM(0));
		  	m_edit2.SetSel(0,-1);
	        m_edit2.ReplaceSel("程序运行完毕,请查看结果。");      

	
}
}
void CMyDlg::OnButton2() 
{
	// TODO: Add your control notification handler code here
		m_list.DeleteAllItems(); 
		m_edit2.SetSel(0,-1);
		m_edit2.ReplaceSel(" ");
	
}

void CMyDlg::OnButton3() 
{
	// TODO: Add your control notification handler code here      
	 CString list,shuzhi;
	char *dizhi1,*dizhi2;
	static char BASED_CODE szFilter[] ="文本文件(*.txt)|*.txt|";                        
                                                                                
  CFileDialog fileDlg(FALSE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,  szFilter);                                                                     
        if(fileDlg.DoModal() == IDOK)                                           
        {       CFile file; 
		        CString mingzi=".txt";
                CString szFilePath = fileDlg.GetPathName();
				
			    szFilePath.operator +=(mingzi);
				if(! file.Open(szFilePath, CFile::modeCreate | CFile::modeWrite , NULL))
                        MessageBox( "write file error" ) ;
				
				for(int g1=0;g1<=m_list.GetItemCount();g1++){
					list=m_list.GetItemText(g1,0);
					shuzhi=m_list.GetItemText(g1,1);
					int changdu1=list.GetLength();
					int changdu2=shuzhi.GetLength();
					dizhi1=list.GetBuffer(changdu1);
					dizhi2=shuzhi.GetBuffer(changdu2);
					
					file.Write(dizhi1,changdu1);
					for(int s1=0;s1<40-changdu1;s1++){
						file.Write("",1); }    
					file.Write(dizhi2,changdu2);
					file.Write("\r\n",2);
					list.ReleaseBuffer(-1);
					shuzhi.ReleaseBuffer(-1);
				}
        }
		
	
}

void CMyDlg::OnButton4() 
{
	// TODO: Add your control notification handler code here
	OnOK();
	
}

⌨️ 快捷键说明

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