核反应堆热工水力课程设计.docx
《核反应堆热工水力课程设计.docx》由会员分享,可在线阅读,更多相关《核反应堆热工水力课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
核反应堆热工水力课程设计
一、设计要求
在设计反应堆冷却系统时,为了保证反应堆运行安全可靠,针对不同的堆型,预先规定了热工设计必须遵守的要求,这些要求通常就称为堆的热工设计准则。
目前压水动力堆设计中所规定的稳态热工设计准则,一般有以下几点:
1.燃料元件芯块内最高应低丁其他相应燃耗下的熔化温度;
2.燃料元件外表面不允许发生沸腾临界;
3.必须保证正常运行工况下燃料元件和堆内构件得到充分冷却;在事故工况下
能提供足够的冷却剂以排除堆芯余热;
4.在稳态额定工况和可预计的瞬态运行工况中,不发生流动不稳定性。
5.在热工设计中,通常是通过平均通道(平均管)可以估算堆芯的总功率,而热通道(热管)则是堆芯中轴向功率最高的通道,通过它确定堆芯功率的上限,热点是堆芯中温度最高的点,代表堆芯热量密度最大的点,通过这个点来确定DNBR
二、设计任务
某压水反应堆的冷却剂和慢化剂都是水,用二氧化铀作燃料,Zr-4作燃料包壳材料。
燃料组件无盒壁,燃料元件为棒状,正方形排列,已知下列参数:
系统压力P15.8MPa
堆芯输出热功率Nt1820MW
冷却剂总流量W32500t/h
反应堆进口温度tfin287C
堆芯高度L3.60m
燃料组件数m121
燃料组件形式n0xn017x17
每个组件燃料棒数n265
燃料包壳外径dcs9.5mm
燃料包壳内径dci8.6mm
燃料包壳厚度ac0.57mm
燃料芯块直径du8.19mm
燃料棒间距(栅距)s12.6mm
两个组件间的水隙a0.8mm
UO犯块密度pUO295%理论密度
旁流系数15%
燃料兀件发热占总发热份额Fa97.4%
径向核热管因子1.33
轴向核热管因子1.520
1.03
热流量核热点因子=2.022
热流量工程热点因子
焰升工程热点因子(未计入交混因子)
1.142
交混因子
水含升核热管因子=
堆芯进口局部阻力系数Kin堆芯出口局部阻力系数Kout
堆芯定位格架阻力系数Kgr
0.95
1.085
0.75
1.0
1.05
若将堆芯自下而上分为3个控制体,其轴向归一化功率分布见下表:
自卜而上控制体号
1
2
3
4
5
6
归一化功率分布
0.4
8
1.02
1.50
1.5
6
0.9
6
0.48
表堆芯归一化功率分布(轴向等分3个控制体)
通过计算,得出:
1.堆芯流体出口温度;
2.燃料棒表面平■均热流密度以及最大热流密度,平■均线功率,最大线功率;
3.热管内的流体温度(或焰)、包壳表面温度、芯块中心温度随轴向的分布;
4.包壳表面最高温度,芯块中心最高温度;
5.DNBR在轴向上的变化;
6.计算堆芯压降
三、设计正文(详细的计算过程、计算结果及分析)
1.计算过程
1.1堆芯流体出口温度(平■均管)
按流体平均温度
以及压力由表中查得。
假设C,查表得
经过输入所查程序不断迭代得
如需更精确的值,可以继续进行迭代计算
1.2燃料表面平■均热流密度
C
C误差小丁0.5C
总
式中总为堆芯燃料棒的总传热面积
代入数据得
燃料棒表面最大热流密度qmax
代入数据得
燃料棒平■均线功率
代入数据得
燃料棒最大线功率
代入数据得
1.3平■均管的情况
平均管的流速V
式中堆芯内总流通面积
为燃料组件内正方形排列时的每一排(列)的燃料元件数
由压力以及流体的平均温度查表得到:
由1.1知C,查表得
1.4为简化计算起见,假定热管内的流体流速M和平均管的V相同同样,热管四根燃料元件组成的单元通道内的流量
代入数据得
1.5热管中的计算(按一个单元通道计算)
(1)热管中的流体温度
△△
其中取平■均温度对应的参数值,需要进行迭代计算,
下面给出第一控制体出口处温度的算法
假设-C,查表得C,带入上式
-——C
与假设误差较大,进行迭代,查表知C
-——C
误差C,可以不再进行迭代,就取-C
同理由程序迭代可求得
第二控制体出口处流体温度一C
第三控制体出口处流体温度一C
第四控制体出口处流体温度一C
第五控制体出口处流体温度一C
第六控制体出口处流体温度C
(2)第一个控制体出口处的包壳外壁温度
△
式中:
h(z)为单相水强迫对流换热系数C
£
所以
式中
流体的入、和Pr数根据流体的压力和温度由表查得。
如果流体已经达到过冷沸腾,用Jens-Lottes公式:
△
其中为气体的饱和温度,p的单位为MPa
当△△时,用前面的式子
当△△时,用△替换掉△
可以利用以下公式来求
时,C
代入数据得
C4-
C
C
C
C4一
第一控制体出口处
-C,查表可得入
△-
△-
故
--A
其余同理由程序计算得出结果如下第二控制体出口处
-C,查表可得入
△—C
故
一一△一C
第三控制体出口处
11
△C
△C
故
一△C
第四控制体出口处
-C,查表可得入C4
[1
△C
△C
故
一△C
第五控制体出口处
—°C,查表可得入°C4
[1
△C
△C
故
—AC
第六控制体出口处
C,查表可得入C4
[1
△C
△C
故
△c
(3)包壳内壁温度
式中Zr-4的
代入数据得:
由丁与平均温度有关,由程序迭代计算结果如下
第一控制体出口处一C
第—控制体出口处一C
第三控制体出口处一C
第四控制体出口处一C
第五控制体出口处一C
第六控制体出口处C
(4)燃料芯块外表面温度
式中?
是包壳与芯块间的气隙等效传热系数,这里取?
C
代入数据得
第一个控制体出口处
第二个控制体出口处
一C
第三个控制体出口处
—C
第四个控制体出口处
—C
第五个控制体出口处
—C
第六个控制体出口处
C
(5)燃料芯块中心温度用积分热导求解的方法,即
其中
代入数据得
令
由丁函数递增,可以通过二分法求解f(x)的根得出二氧化铀中心温度
通过编程可求得结果如下
第一控制体出口处
第二控制体出口处
-C
第三控制体出口处
-C
第四控制体出口处
-C
第五控制体出口处
-C
第六控制体出口处
C
1.6热管中的
用w-3公式计算,同样对3个控制体都算
式中:
p为冷却剂工作压力(Pa),G为冷却剂质量流密度?
,为冷
却剂通道的当量直径(,?
为冷却剂的饱和比焰(J/kg),?
为控制体进
口处冷却剂的比焰(J/kg),为计算点z处的平衡含气量,为其绝对值。
平衡含气量的计算式为
其中?
为汽化潜热(J/kg)
通过程序计算得出结果如下
第一控制体出口处
第二控制体出口处
第三控制体出口处
第四控制体出口处
第五控制体出口处
第六控制体出口处
1.7DNBR勺计算
第一控制体出口处
同理可求其余段DNBR结果如下:
第二控制体出口处
第三控制体出口处
第四控制体出口处
第五控制体出口处
第六控制体出口处
1.8计算热管中的压降
单相流体的摩擦压降
式中:
使用公式编程分别计算六段控制体的摩擦压降单相流体加速压降:
同样使用公式编程分别计算六段控制体的加速压降
单相流体提升压降
△
同上
局部压降,出口:
代入数据得
局部压降,进口:
代入数据得
局部压降,定位格架出口压降
代入数据得
以上所使用的比热容和动力粘度都通过软件查询后输入代码中进行计算。
通过程序计算结果如下
分段压降变化
控制体
1
2
3
4
5
6
提升压降
/pa
4.397
4.316
4.173
3.984
3.813
3.708
摩擦压降
/pa
1.003
0.935
0.450
0.445
0.439
0.435
加速压降
//pa
0.117
0.269
0.453
0.565
0.412
0.228
总压降为
温度汇总表
控制段
控制体外流体出口温度
/C
包壳外表面温度C
包壳内表面温度
芯块表面温度
芯块中心温度
1
291.69
303.51
313.13
384.03
568.79
2
301.3
326.15
346.26
492.83
974.83
3
314.86
348.41
377.54
593.09
1383.57
4
327.70
348.43
378.72
602.89
1430.38
5
334.89
348.19
366.89
504.84
958.77
6
338.22
347.90
357.27
426.25
619.90
临界热流密度和烧毁比汇总
控制体
1
2
3
4
5
6
临界热流密度
5.244
4.731
3.897
3.109
2.624
2.388
烧毁比
15.07
6.40
3.585
2.750
3.722
6.864
7
单从表内数据看,DNBFW大丁1,芯块中心温度小丁二氧化铀的熔点2878C,所以理论上能够保证安全性。
四、课程设计感想
通过这次反应堆热工分析的课程设计,我加深了对反应堆内部传热的了解,同时我发发现了自己的很多不足之处。
拿到课程设计题目后,我首先根据题目中的问题去复习热工分析的知识,去
了解每个问题该怎么算。
然后将计算思路和公式写出来,为下一步的编程做准备。
由丁大部分的求解都是非线性的方程,所以采用了迭代和二分法求解方程。
当把整个问题的求解思路理活和确定计算过程中使用算法后,整个问题就在
水和水蒸气热物性如何导入上了。
在最开始,我使用通过一定的数据去拟合用到的热物性在定压下与温度的关系。
但在拟合之后,通过得出的结果与接用水和水蒸气热物性查询软件得出的结果有一点差距,所以就放弃了。
然后,我想将网上通过水和蒸汽热力性质公式IAPWS_IF9m算的源码做成接口,在计算过程中直接用它计算热物性。
后来,发现太难,i(码有很多地方看不懂,不知道如何接入。
丁是最终也放弃了。
后来就采用了最原始的方法,就是在计算的过程中,通过水和水蒸气热物性查询软件查出结果,一步一步输进去。
最后使用程序计算时,在输入参数时耗时太久,我深深的感受到书到用处方恨少,如果原来,把编程多学一点,将整个数据导入直接通过动态链接库完成,就省事太多。
这次课设让我把原来学的编程与实际问题结合起来,给我很大感触,原来敲
着书上的例子,感觉漫无目的。
通过这次自己去思考如何解决一个问题,让我理解了拿到一个问题后,该如何处理。
同时通过这次课设,我意识到反应堆热工分析是个复杂而连续的过程,每个参数都受到大量的常数参数的影响也具有很多的修正因子。
我们不应该根据自己的常识来判断数据的变化情况,相反地我们应该
随时坚持以数据计算为引导,以实验作为验证。
仔细客观认真地分析堆内数据的变化,并且对堆内数据进行全程监控,防止堆内数据随时变化,对反应堆的危害性。
附录(设计流程图、程序)
1、程序说明
共7个程序由c语言编写,分别为计算流体出口温度,控制体出口流体温度,
燃料包壳外壁温度,燃料包壳内壁温度,二氧化铀中心温度,qDNB压降。
使
用了迭代和二分法求解部分非线性方程。
(1)堆芯出口温度计算:
此段根据任务书给出的基本参数和热量与流量之间关系,运用迭代的算
法,求出堆芯的出口温度。
(2)第一至第六控制体的各量计算:
因为六个控制体的计算过程类似,这里只说明第一个控制体的计算过程。
在现有的参数下,根据热流量与流量的关系和迭代算法,求出该控制体的出口温度。
通过流通截面积与湿周的关系求出栅元的当量直径。
再根据上面的温度,
查出对应的热物性参数由雷诺数与努尔数的关系,解出控制体出口处的对流换热系数。
因为不知该处的流体状态,分别用单相强迫对流放热公式和詹斯-洛特斯传热方程算出各自的膜温压,取较小的值加上出口处的流体温度即是包壳的外表面温度。
由包壳的外表面的温度再根据圆管的传热方程运用迭代算法解出包壳内表面的温度。
芯块与包壳内表面之间的导热问题,根据间隙导热模型,即可解出芯块表面的温度,根据内热源的导热模型,依据积分热导率与温度的对应关系列出方程用二分法解出芯块中心的温度。
接下来依据冷却剂的温度,得出的控制体出口处的含汽量。
进而依据W-3公式求出该出的临界热流量qDNB最后得出该出的烧毁比DNBR
(3)热管的压降计算:
热管的压降包括摩擦压降、提升压降、进出口局部压降、定位搁架出口压降。
摩擦压降可由计算单相流的达西(Darcy)公式算得。
提升压降可由根据位置的变化算得,其中参数都取平■均值。
其余的压降根据形阻压降的基本公式再乘以相应的系数求得。
最后各项相加得出热管的总压降。
2、流程图
2、程序
//3.1.cpp:
定义控制台应用程序的入口点
//流体出口温度迭代计算
#include"stdafx.h"
#include
#includeusingnamespacestd;
doubletfout(doublecp,doubleatfout){
doubletfin=287,Fa=0.974,Nt=1820,W=32500,plxs=0.05,tfout;
tfout=tfin+3600*Fa*Nt/(W*cp*(1-plxs));returntfout;
}
intmain(){
doubleatfout,tfin=287,tav,cp,tfoutc=0;
intpanding=1;
printf("请输入假设出口温度\n");
cin>>atfout;|
while(panding>=1){
tav=(atfout+tfin)/2;
printf("请输入%讣的Cp\n",tav);
cin>>cp;
tfoutc=tfout(cp,atfout);
if(fabs(tfoutc-atfout)<=0.5)
panding=0;
atfout=tfoutc;
}
printf("出口温度为%f\n",tfoutc);
while(true)
{}
}
//3.3.1热管内流体温度计算
#include"stdafx.h"
#include
#include
usingnamespacestd;
doubleffout(doubletfin,doubleatfout){
doubleqav,fnr=1.33,feh=1.03,fehm=0.95,dcs=9.5,gyh,cp,wh,l=3.60,tfout;
boolpanding=true;
cout<<"请输入平均热流密度(W/m*m"<cin>>qav;
cout<<"请输入归一化参数”<cin>>gyh;
cout<<"请输入热管单元通道流量Wh(t/h)"<cin>>wh;
while(panding){
doubletav=(atfout+tfin)/2;
cout<<"请输入"<cin>>cp;
tfout=tfin+3.6*(qav*fnr*feh*fehm*3.14*dcs*gyh*l/6)/(wh*cp*1000);
if(fabs(tfout-atfout)<=0.5)
panding=false;
atfout=tfout;
)
returntfout;
)
intmain()(
doubletfin,atfout,tfout;
cout<<"请输入流体进口温度”<cin>>tfin;
cout<<"请输入流体假设流体出口温度"<cin>>atfout;
tfout=ffout(tfin,atfout);
cout<while(true)
(
)
//3.3.02.cpp:
定义控制台应用程序的入口点
//计算包壳外壁温度
#include"stdafx.h"
#include"cmath"
#include"iostream"
usingnamespacestd;
intmain()(
doubletfout[6]=(291.69,301.38,314.86,327.70,334.89,338.22),gyhcs[6]=
{0.48,1.02,1.50,1.56,0.96,0.48};
doublepr[6],drxs[6],dlnd[6],f1[6],f2[6],f[6];
inti;
for(i=0;i<6;i++)
{
cout<<"请输入"<cin>>pr[i];
cout<<"请输入"<C))"<cin>>drxs[i];
cout<<”请输入"<s)"<cin>>dlnd[i];
f1[i]=2.25*pow(10,4)*gyhcs[i]*pow(dlnd[i],0.8)/(drxs[i]*pow(pr[i],0.4));
f2[i]=346.38+1.83*pow(gyhcs[i],0.25)-tfout[i];
if(f1[i]>f2[i])
f[i]=f2[i];
else
f[i]=f1[i];
cout<<"ef1="<)
while(true)
()
)
//3.3.2.cpp:
定义控制台应用程序的入口点
//计算内壁温度
#include"stdafx.h"
#include
"iostream"
#include
"math.h"
usingnamespacestd;
doubleftci(doubletcs,doubleatci)(
doublefrn=1.33,feq=1.03,gyhcs,dcs=9.5,dci=8.6,kc,tav,q,tci;
boolpanding=true;
cout<<"请输入归一化参数"<cin>>gyhcs;
cout<<"请输入平均线功率,单位w/m"<cin>>q;
while(panding)
(
tav=(tcs+atci)/2;
kc=0.00547*(1.8*tav+32)+13.8;
tci=tcs+log(dcs/dci)*(q*frn*feq*gyhcs)/(2*3.14*kc);
if(tci-atci<=0.5)
panding=false;
atci=tci;
}
returntci;
}
intmain()(
doubletcs,tci,atci;
cout<<"请输入夕卜壁温度°C"<cin>>tcs;
cout<<"请输入内壁假设温度C"<cin>>atci;
tci=ftci(tcs,atci);
cout<while(true)
(
}
//3.3.3.cpp:
定义控制台应用程序的入口点
//计算二氧化优中心温度
#include"stdafx.h"
#include"iostream"
#include"math.h"
#include
usingnamespacestd;
doublef1(doublet){
doublefout;
fout=38.24*log((t+402.55)/402.55)+4.788*pow(10,-13)*(pow((t+273.15),4)-pow(273.15,4));
returnfout;
}
doublef2(doubletci,doubleatu)
{
doubletu,fnr=1.33,feq=1.03,gyhcs,q,tmid,jieguo;
boolpanding=true;
cout<<"请输入归一化参数"<cin>>gyhcs;
cout<<"请输入线热流密度/w"<cin>>q;
if((f1(atu)-f1(tci)-(q*fnr*feq*gyhcs)/(4*314))>0){
tu=tci;
panding=false;
}
while(panding)
{
if((f1(atu)-f1(tci)-(q*fnr*feq*gyhcs)/(4*314))>0)
{
panding=false;
tu=atu-100;
}
else
atu=atu+100;
while(atu-tu>0.0000001){
tmid=(atu+tu)/2;
jieguo=f1(tmid)-f1(tci)-(q*fnr*feq*gyhcs)/(4*314);if(jieguo==0)
tu=tmid;
else
if(jieguo>0)
atu=tmid;
else
tu=tmid;
returntu;
intmain()
doubletci,atu,tu;
cout<<"请输入燃料芯块外壁温度/C"<cin>>tci;
cout<<"请输入假设二氧化铀中心温度/C"<cin>>atu;
tu=