msre pump transient notebook
This commit is contained in:
parent
7199765d93
commit
cade121c45
11 changed files with 1445 additions and 0 deletions
Binary file not shown.
|
|
@ -0,0 +1,73 @@
|
|||
0.0, 205.26315789473685
|
||||
0.9046563192904662, 206.3397129186603
|
||||
1.9157427937915745, 208.4928229665072
|
||||
2.926829268292683, 186.96172248803828
|
||||
3.884700665188471, 171.88995215311007
|
||||
4.8957871396895785, 144.97607655502395
|
||||
5.906873614190688, 142.82296650717706
|
||||
6.917960088691797, 130.622009569378
|
||||
7.929046563192904, 119.4976076555024
|
||||
8.886917960088692, 104.42583732057417
|
||||
9.951219512195124, 99.04306220095697
|
||||
10.90909090909091, 88.99521531100478
|
||||
11.92017738359202, 86.84210526315792
|
||||
12.931263858093129, 83.61244019138758
|
||||
13.942350332594234, 81.45933014354068
|
||||
15.059866962305989, 79.66507177033495
|
||||
15.964523281596453, 71.77033492822966
|
||||
16.922394678492243, 64.23444976076556
|
||||
17.98669623059867, 66.02870813397129
|
||||
18.944567627494457, 62.08133971291866
|
||||
19.955654101995567, 53.82775119617227
|
||||
20.966740576496676, 60.28708133971293
|
||||
21.924611973392462, 56.3397129186603
|
||||
22.988913525498894, 57.057416267942614
|
||||
23.946784922394677, 59.21052631578948
|
||||
25.01108647450111, 59.9282296650718
|
||||
25.9689578713969, 52.03349282296651
|
||||
26.926829268292682, 41.626794258373224
|
||||
27.937915742793795, 44.85645933014354
|
||||
28.9490022172949, 40.550239234449776
|
||||
29.960088691796006, 40.550239234449776
|
||||
30.97117516629712, 36.961722488038305
|
||||
31.982261640798225, 43.42105263157896
|
||||
33.046563192904664, 35.5263157894737
|
||||
33.95121951219513, 31.57894736842107
|
||||
35.06873614190688, 28.708133971291886
|
||||
35.97339246119735, 28.708133971291886
|
||||
37.03769401330377, 31.937799043062228
|
||||
37.99556541019957, 30.143540669856492
|
||||
39.00665188470067, 32.655502392344516
|
||||
39.85809312638582, 30.143540669856492
|
||||
40.97560975609757, 35.88516746411486
|
||||
41.880266075388036, 30.861244019138752
|
||||
42.99778270509979, 25.837320574162703
|
||||
43.902439024390254, 16.14832535885168
|
||||
45.019955654102, 20.095693779904337
|
||||
45.97782705099779, 20.813397129186626
|
||||
46.988913525498894, 24.401913875598098
|
||||
48.00000000000001, 20.813397129186626
|
||||
48.9578713968958, 24.401913875598098
|
||||
50.07538802660755, 20.454545454545467
|
||||
50.980044345898015, 21.889952153110073
|
||||
51.9379157427938, 16.866028708133967
|
||||
52.89578713968958, 19.01913875598089
|
||||
53.96008869179602, 19.01913875598089
|
||||
54.97117516629712, 18.66028708133973
|
||||
55.92904656319291, 19.37799043062202
|
||||
56.99334811529934, 18.301435406698573
|
||||
57.951219512195124, 21.531100478468915
|
||||
58.90909090909092, 19.37799043062202
|
||||
59.97339246119734, 15.43062200956939
|
||||
60.931263858093125, 6.818181818181841
|
||||
61.94235033259424, 9.330143540669894
|
||||
63.006651884700666, 11.84210526315789
|
||||
63.96452328159645, 7.894736842105289
|
||||
64.97560975609755, 7.177033492823
|
||||
65.98669623059867, 8.612440191387549
|
||||
67.0509977827051, 8.612440191387549
|
||||
67.90243902439025, 8.971291866028707
|
||||
68.96674057649668, 8.253588516746419
|
||||
69.97782705099779, 7.177033492823
|
||||
70.93569844789357, 7.894736842105289
|
||||
72, 8.971291866028707
|
||||
|
48
dynamic_model/pump_transient_benchmark/data/ornl_spinup.csv
Normal file
48
dynamic_model/pump_transient_benchmark/data/ornl_spinup.csv
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
0.0, 0.35928164309859767
|
||||
1.0136592379583034, -2.046391876691928
|
||||
1.99352983465133, 3.3239141576573275
|
||||
2.93961179007908, -6.257502949583625
|
||||
3.9532710280373826, 20.045387470375147
|
||||
4.966930265995687, 42.75976114392245
|
||||
5.98058950395399, 72.05308218589082
|
||||
6.960460100647017, 100.74874707191478
|
||||
8.007907979870597, 129.4435520210237
|
||||
8.987778576563624, 164.1200781510668
|
||||
9.967649173256651, 190.42339853948312
|
||||
10.947519769949677, 225.09992466952622
|
||||
11.961179007907981, 250.20664284068118
|
||||
12.974838245866282, 280.0980500070515
|
||||
13.988497483824586, 278.2908925801203
|
||||
14.96836808051761, 278.8765096192543
|
||||
16.015815959741193, 247.16461600376994
|
||||
17.029475197699497, 219.0416691031546
|
||||
17.975557153127244, 223.8143189815595
|
||||
18.98921639108555, 221.4090754302264
|
||||
19.969086987778574, 216.61191734974324
|
||||
20.9489575844716, 200.4511229056236
|
||||
22.03019410496046, 205.2220529101985
|
||||
22.97627606038821, 201.02341092257473
|
||||
23.989935298346513, 201.0105118688493
|
||||
25.037383177570096, 204.58569959307783
|
||||
26.01725377426312, 200.38662763699654
|
||||
27.030913012221426, 204.56033145408452
|
||||
28.044572250179726, 207.5378630223687
|
||||
28.9568655643422, 203.3396510032024
|
||||
30.00431344356578, 205.1205803542252
|
||||
30.984184040258803, 199.72533614934008
|
||||
31.930265995686554, 215.26353626697946
|
||||
32.97771387491014, 206.8770015031697
|
||||
33.99137311286844, 209.25644694705196
|
||||
34.97124370956146, 211.63632235939173
|
||||
36.018691588785046, 214.01533783481642
|
||||
36.99856218547807, 219.98372999356766
|
||||
38.04601006470165, 214.58762585176748
|
||||
38.92451473759885, 209.79175767665683
|
||||
40.005751258087706, 204.39522356639915
|
||||
40.95183321351546, 209.1678734448041
|
||||
41.96549245147376, 216.93009400830357
|
||||
42.979151689432065, 218.11336720338198
|
||||
44.02659956865565, 207.3344879419646
|
||||
44.97268152408339, 204.3320182031446
|
||||
46.020129403306974, 198.93591406134445
|
||||
46.966211358734725, 203.11047781534745
|
||||
|
29
dynamic_model/pump_transient_benchmark/data/spindown.csv
Normal file
29
dynamic_model/pump_transient_benchmark/data/spindown.csv
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
0.0, 100.00
|
||||
0.44195755537515935, 99.52055134938121
|
||||
0.6700104372028297, 98.59561637481153
|
||||
0.912849356372492, 97.06151322874041
|
||||
1.064420735242955, 95.83655009029007
|
||||
1.2906181143453552, 92.47825582743823
|
||||
1.6068073756233332, 87.13788704627159
|
||||
2.0433723762031772, 79.66170209241065
|
||||
2.4787776875797283, 70.66466758337336
|
||||
2.8983532413313227, 60.90803664617882
|
||||
3.0331671112141945, 57.70679743543015
|
||||
3.5299199814449724, 49.162704395222065
|
||||
3.906645019134871, 43.21068239426117
|
||||
4.389423634465963, 36.340352214178026
|
||||
4.8273802620897595, 30.689186726528717
|
||||
5.7500869766902465, 20.75313530259605
|
||||
6.568943523135799, 14.625006212620733
|
||||
7.00979937376783, 12.775964612912304
|
||||
8.409776179983766, 8.745547621808768
|
||||
9.76562681201438, 6.846805056244918
|
||||
10.847326916386407, 5.419227646990592
|
||||
12.005276585874984, 3.987508490581675
|
||||
12.995941087788474, 3.1732409999834346
|
||||
14.61150411689667, 1.8687563161644078
|
||||
15.404267656268118, 1.5215122347211008
|
||||
16.639278673315548, 1.1502460197809654
|
||||
17.843789864316363, 0.7806365037027234
|
||||
18.956685608256986, 0.2639121286923398
|
||||
20.0, 0.25
|
||||
|
37
dynamic_model/pump_transient_benchmark/data/spinup.csv
Normal file
37
dynamic_model/pump_transient_benchmark/data/spinup.csv
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
0.0, 0.04304757443473761
|
||||
0.2471035766638533, 0.22234516401286442
|
||||
0.5283342688575431, 0.40358110591076013
|
||||
0.9885233389734, 0.7621762850669995
|
||||
1.413967443757496, 7.260179378354252
|
||||
1.6260171301886257, 16.8204560781479
|
||||
1.8210214309078352, 26.380086660501618
|
||||
1.9986714210141616, 38.838846195781656
|
||||
2.2107574515512876, 48.05797288729693
|
||||
2.40581626842949, 57.105878457233075
|
||||
2.618174879761583, 63.76638008666049
|
||||
2.830660695464659, 69.23285668711358
|
||||
3.0262101577738023, 73.67523714529162
|
||||
3.2133096154389755, 77.43499452819293
|
||||
3.4090226262251, 80.34219994911825
|
||||
3.613294673973177, 82.90857842048514
|
||||
3.8176394099332476, 84.79265687529528
|
||||
4.004938760181397, 86.67608921266552
|
||||
4.200778975338504, 88.3892696046165
|
||||
4.41368274826053, 89.93252110986822
|
||||
4.609559307523633, 91.30455149354084
|
||||
4.796895001877778, 92.84683382263268
|
||||
5.018375983814757, 93.87868337418679
|
||||
5.205784366380893, 94.73866568672187
|
||||
5.401733613855988, 95.42839605383773
|
||||
5.623250939898963, 96.11909559711347
|
||||
5.802209317821131, 96.29645483437183
|
||||
5.9982130814552175, 96.47446018907011
|
||||
6.245316658119071, 96.99555390436655
|
||||
6.509483792547842, 97.3467187329637
|
||||
6.765146406173652, 97.5269854987017
|
||||
6.995349973549566, 96.68283306344469
|
||||
7.268003456728303, 97.37547095904019
|
||||
7.498079819733233, 97.72534355275751
|
||||
7.770787819070964, 97.90625643593543
|
||||
7.992341489219934, 98.25580597093278
|
||||
8.239445065883785, 98.77689968622921
|
||||
|
348
dynamic_model/pump_transient_benchmark/model.ipynb
Normal file
348
dynamic_model/pump_transient_benchmark/model.ipynb
Normal file
File diff suppressed because one or more lines are too long
154
dynamic_model/pump_transient_benchmark/parameters_U233.py
Normal file
154
dynamic_model/pump_transient_benchmark/parameters_U233.py
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
import numpy as np
|
||||
|
||||
|
||||
|
||||
# domain
|
||||
t0 = 0.0
|
||||
tf = 1000.00
|
||||
T = np.arange(t0,tf,0.01)
|
||||
|
||||
# REACTIVITY INSERTION
|
||||
inserted = 1.39e-4 # 1MW
|
||||
# inserted = 1.96e-4 # 5MW
|
||||
# inserted = 2.48e-4 # 8MW
|
||||
|
||||
# NEUTRONICS DATA
|
||||
tau_l = 16.73
|
||||
tau_c = 8.46
|
||||
# P = 0.1
|
||||
P = 1
|
||||
# P = 5
|
||||
# P = 8
|
||||
n_frac0 = 1 # initial fractional neutron density n/n0
|
||||
Lam = 4.0E-04
|
||||
lam = np.array([1.260E-02, 3.370E-02, 1.390E-01, 3.250E-01, 1.130E+00, 2.500E+00])
|
||||
beta = np.array([0.00023, 0.00079, 0.00067, 0.00073, 0.00013, 0.00009])
|
||||
beta_t = np.sum(beta) # total delayed neutron fraction MSRE
|
||||
rho_0 = beta_t-sum(np.divide(beta,1+np.divide(1-np.exp(-lam*tau_l),lam*tau_c))) # reactivity change in going from stationary to circulating fuel
|
||||
C0 = beta / Lam * (1.0 / (lam - (np.exp(-lam * tau_l) - 1.0) / tau_c))
|
||||
|
||||
# Feedback coefficients
|
||||
a_f = -11.034E-5
|
||||
a_g = -05.814E-5
|
||||
|
||||
# CORE HEAT TRANSFER PARAMETERS
|
||||
vdot_f = 7.5708E-02
|
||||
rho_f = 2.14647E+03
|
||||
W_f = 1.623879934566580e+02
|
||||
m_f = W_f * tau_c
|
||||
nn_f = 2
|
||||
mn_f = m_f / nn_f
|
||||
scp_f = 1.9665E-3
|
||||
|
||||
# Core Upflow
|
||||
v_g = 1.95386
|
||||
rho_g = 1.860E3
|
||||
m_g = v_g * rho_g
|
||||
scp_g = 1.773E-3
|
||||
mcp_g1 = m_g * scp_g
|
||||
mcp_f1 = mn_f * scp_f
|
||||
mcp_f2 = mn_f * scp_f
|
||||
hA_fg = 0.02 * 9 / 5
|
||||
k_g = 0.07
|
||||
k_1 = 0.5
|
||||
k_2 = 0.5
|
||||
k_f = 0.93
|
||||
k_f1 = k_f / nn_f
|
||||
k_f2 = k_f / nn_f
|
||||
|
||||
# Heat Exchanger
|
||||
d_he = 16
|
||||
h_he = 72
|
||||
od_tube = 0.5
|
||||
id_tube = od_tube - 2 * 0.042
|
||||
n_tube = 159
|
||||
a_tube = 254 * 144
|
||||
l_tube = a_tube / n_tube / (np.pi * od_tube)
|
||||
v_tube = n_tube * np.pi * (od_tube / 2) ** 2 * l_tube
|
||||
v_cool = n_tube * np.pi * (id_tube / 2) ** 2 * l_tube
|
||||
v_he = (d_he / 2) ** 2 * np.pi * h_he
|
||||
v_he_fuel = v_he - v_tube
|
||||
in_m = 1.63871e-5
|
||||
W_p = W_f
|
||||
m_p = v_he_fuel * in_m * rho_f
|
||||
nn_p = 4
|
||||
mn_p = m_p / nn_p
|
||||
cp_p = scp_f
|
||||
vdot_s = 5.36265E-02
|
||||
rho_s = 1.922e3
|
||||
W_s = 1.005793369810108e+02
|
||||
m_s = v_cool * in_m * rho_s
|
||||
nn_s = 4
|
||||
mn_s = m_s / nn_s
|
||||
scp_s = 2.39E-3
|
||||
A_phe = 2.359E+01
|
||||
ha_p = 6.480E-01
|
||||
ha_s = 3.060E-01
|
||||
mcp_pn = mn_p * cp_p
|
||||
hA_pn = ha_p / nn_s
|
||||
nn_t = 2
|
||||
rho_tube = 8.7745E+03
|
||||
m_tn = (v_tube - v_cool) * in_m * rho_tube / nn_t
|
||||
scp_t = 5.778E-04
|
||||
mcp_tn = m_tn * scp_t
|
||||
mcp_sn = mn_s * scp_s
|
||||
hA_sn = ha_s / nn_s
|
||||
|
||||
# Initial conditions
|
||||
Tf_in = 6.3222E+02
|
||||
T0_f2 = 6.5727E+02
|
||||
T0_f1 = Tf_in + (T0_f2 - Tf_in) / 2
|
||||
T0_g1 = T0_f1 + (k_g * P / hA_fg)
|
||||
Tp_in = T0_f2
|
||||
T0_p4 = Tf_in
|
||||
T0_p1 = Tp_in - (Tp_in - T0_p4) / 4
|
||||
T0_p2 = Tp_in - 2 * (Tp_in - T0_p4) / 4
|
||||
T0_p3 = Tp_in - 3 * (Tp_in - T0_p4) / 4
|
||||
Ts_in = 5.4611E+02
|
||||
T0_s4 = 5.7939E+02
|
||||
T0_s1 = Ts_in + (T0_s4 - Ts_in) / nn_s
|
||||
T0_s2 = Ts_in + 2 * (T0_s4 - Ts_in) / nn_s
|
||||
T0_s3 = Ts_in + 3 * (T0_s4 - Ts_in) / nn_s
|
||||
T0_t1 = (T0_p1 * hA_pn + T0_s3 * hA_sn) / (hA_pn + hA_sn)
|
||||
T0_t2 = (T0_p3 * hA_pn + T0_s1 * hA_sn) / (hA_pn + hA_sn)
|
||||
|
||||
# Radiator Parameters
|
||||
Trp_in = T0_s4
|
||||
T0_rp = Ts_in
|
||||
Trs_in = 37.78
|
||||
T0_rs = 148.9
|
||||
od_rad = 0.01905
|
||||
tube_wall_thick = 0.0018288
|
||||
id_rad = od_rad - 2 * tube_wall_thick
|
||||
n_rtubes = 120
|
||||
l_rtube = 9.144
|
||||
v_rp = np.pi * (id_rad / 2) ** 2 * l_rtube * n_rtubes
|
||||
n_tpr = 12
|
||||
n_row = 10
|
||||
tube_space = 0.0381
|
||||
v_rs = (n_row * od_rad + (n_row - 1) * tube_space) * (n_tpr * od_rad + (n_tpr - 1) * tube_space) * l_rtube
|
||||
W_rp = W_s
|
||||
m_rp = v_rp * rho_s
|
||||
nn_rp = 1
|
||||
mn_rp = m_rp / nn_rp
|
||||
cp_rp = scp_s
|
||||
vdot_rs = 94.389
|
||||
rho_rs = 1.1237
|
||||
W_rs = vdot_rs * rho_rs
|
||||
m_rs = v_rs * rho_rs
|
||||
nn_rs = 1
|
||||
mn_rs = m_rs / nn_rs
|
||||
scp_rs = 1.0085E-3
|
||||
A_rad = 6.503E1
|
||||
h_roverall = P / A_rad / ((T0_rp + Trp_in) / 2 - (T0_rs + Trs_in) / 2)
|
||||
mcp_rpn = mn_rp * cp_rp
|
||||
hA_rpn = h_roverall * A_rad / nn_rs
|
||||
mcp_rsn = mn_rs * scp_rs
|
||||
hA_rsn = h_roverall * A_rad / nn_rs
|
||||
|
||||
# Pure time delays between components
|
||||
tau_hx_c = 8.67 #+2.145
|
||||
tau_c_hx = 3.77 #+2.145
|
||||
tau_hx_r = 4.71
|
||||
tau_r_hx = 8.24
|
||||
|
||||
202
dynamic_model/pump_transient_benchmark/parameters_U235.py
Normal file
202
dynamic_model/pump_transient_benchmark/parameters_U235.py
Normal file
|
|
@ -0,0 +1,202 @@
|
|||
import numpy as np
|
||||
import math
|
||||
pi = math.pi
|
||||
|
||||
# domain
|
||||
t0 = 0.0
|
||||
tf = 50000.00
|
||||
T = np.arange(t0,tf,1.0)
|
||||
|
||||
# NEUTRONICS DATA
|
||||
tau_l = 16.73 # ORNL-TM-0728 %16.44; % (s)
|
||||
tau_c = 8.46 # ORNL-TM-0728 %8.460; % (s)
|
||||
# P = 8.0 # Thermal Power in MW ORNL-TM-1070, p.2
|
||||
P = 1.0e-5
|
||||
n_frac0 = 1.0 # initial fractional neutron density n/n0 (n/cm^3/s)
|
||||
Lam = 2.400E-04 # mean generation time ORNL-TM-1070 p.15 U235
|
||||
# Lam = 4.0E-04; # mean generation time ORNL-TM-1070 p.15 U233
|
||||
lam = np.array([1.240E-02, 3.05E-02, 1.11E-01, 3.01E-01, 1.140E+00, 3.014E+00])
|
||||
beta = np.array([0.000223, 0.001457, 0.001307, 0.002628, 0.000766, 0.00023]) # U235
|
||||
# beta = np.array([0.00023, 0.00079, 0.00067, 0.00073, 0.00013, 0.00009]) # U233
|
||||
beta_t = np.sum(beta) # total delayed neutron fraction MSRE
|
||||
rho_0 = beta_t-sum(np.divide(beta,1+np.divide(1-np.exp(-lam*tau_l),lam*tau_c))) # reactivity change in going from stationary to circulating fuel
|
||||
C0 = beta / Lam * (1.0 / (lam - (np.exp(-lam * tau_l) - 1.0) / tau_c))
|
||||
|
||||
# Feedback co-efficients
|
||||
a_f = -8.71E-05 # U235 (drho/°C) fuel salt temperature-reactivity feedback coefficient ORNL-TM-1647 p.3 % -5.904E-05; % ORNL-TM-0728 p. 101 %
|
||||
a_g = -6.66E-05 # U235 (drho/°C) graphite temperature-reactivity feedback coefficient ORNL-TM-1647 p.3 % -6.624E-05; % ORNL-TM-0728 p.101
|
||||
|
||||
# CORE HEAT TRANSFER PARAMETERS
|
||||
# FUEL PARAMETERS - DONE
|
||||
vdot_f = 7.5708E-02 # ORNL-TM-0728 % 7.571e-2; % vol. flow rate (m^3/s) ORNL-TM-1647 p.3, ORNL-TM-0728 p.12
|
||||
rho_f = 2.14647E+03 # (partially enriched U-235)ORNL-TM-0728 p.8 2.243E+03; % (Th-U) density of fuel salt (kg/m^3) ORNL-TM-0728 p.8
|
||||
W_f = 1.623879934566580e+02 # 1.83085e+02;%vdot_f*rho_f; % 182.78; % calcd from m_dot*cp*delT=P; vdot_f*rho_f; % fuel flow rate (kg/s)
|
||||
# tau_f_c = tau_c; % ORNL-TM-0728 % 8.45; % transit time of fuel in core (s) ORNL-TM-1070 p.15, TDAMSRE p.5
|
||||
m_f = W_f * tau_c # fuel mass in core (kg)
|
||||
nn_f = 2 # number of fuel nodes in core model
|
||||
mn_f = m_f / nn_f # fuel mass per node (kg)
|
||||
# cp_f = 4.2*9/5; % (MJ/deg-C) total fuel heat capacity TDAMSRE p.5
|
||||
scp_f = 1.9665E-3 # specific heat capacity of fuel salt (MJ/kg-C) ORNL-TM-0728 p.8
|
||||
|
||||
# Core Upflow - DONE
|
||||
v_g = 1.95386 # graphite volume(m^3) ORNL-TM-0728 p. 101
|
||||
rho_g = 1.860E3 # graphite density (kg/m^3) ORNL-3812 p.77, ORNL-TM-0728 p.87
|
||||
m_g = v_g * rho_g # graphite mass (kg)
|
||||
cp_g = 3.6 * 9 / 5 # TDAMSRE p.5 graphite total heat capacity (MW-s/C) ORNL-TM-1647 p.3
|
||||
scp_g = 1.773E-3 # cp_g/m_g; % graphite specific heat capacity (MW-s/kg-C) ORNL-TM-1647 p.3
|
||||
mcp_g1 = m_g * scp_g # (mass of material x heat capacity of material) of graphite per lump (MW-s/°C)
|
||||
mcp_f1 = mn_f * scp_f # (mass of material x heat capacity of material) of fuel salt per lump (MW-s/°C)
|
||||
mcp_f2 = mn_f * scp_f # (mass of material x heat capacity of material) of fuel salt per lump (MW-s/°C)
|
||||
hA_fg = 0.02 * 9 / 5 # (fuel to graphite heat transfer coeff x heat transfer area) (MW/°C) ORNL-TM-1647 p.3, TDAMSRE p.5
|
||||
k_g = 0.07 # fraction of total power generated in the graphite ORNL-TM-0728 p.9
|
||||
k_1 = 0.5 # fraction of heat transferred from graphite which goes to the first fuel lump
|
||||
k_2 = 0.5 # fraction of heat transferred from graphite which goes to the second fuel lump
|
||||
k_f = 0.93 # fraction of heat generated in fuel - that generated in the external loop ORNL-TM-0728 p.9
|
||||
k_f1 = k_f / nn_f # fraction of total power generated in lump f1
|
||||
k_f2 = k_f / nn_f # fraction of total power generated in lump f2
|
||||
|
||||
# New node for power deposited in fuel outside the core
|
||||
k_out = 1 - (k_g + k_f) # fraction of power generated in fuel in external loop ORNL-TM-0728 p.9
|
||||
m_out = W_f # (kg) Mass of node such that resident time is 1 sec (W_f needs to be defined)
|
||||
|
||||
# Initial conditions - DONE
|
||||
Tf_in = 6.3222E+02 # in °C ORNL-TM-1647 p.2
|
||||
T0_f2 = 6.5727E+02 # 6.5444E+02; % in °C 6.461904761904777e+02; ORNL-TM-1647 p.2
|
||||
T0_f1 = Tf_in + (T0_f2 - Tf_in) / 2 # 6.405952380952389e+02; in °C
|
||||
T0_g1 = T0_f1 + (k_g * P / hA_fg) # 6.589285714285924e+02; in °C
|
||||
# T0_out = k_out * P / m_out / scp_f + T0_f2 # in °C (scp_f needs to be defined)
|
||||
|
||||
|
||||
# Heat Exchanger - DONE
|
||||
# Geometry
|
||||
d_he = 16 # (in) he diameter ORNL-TM-0728 p. 164
|
||||
h_he = 72 # (in) active height % 96; %(in) he height ORNL-TM-0728 p. 164
|
||||
od_tube = 0.5 # (in) coolant tube OD ORNL-TM-0728 p. 164
|
||||
id_tube = od_tube - 2 * 0.042 # (in) coolant tube ID ORNL-TM-0728 p. 164
|
||||
n_tube = 159 # number of coolant tubes ORNL-TM-0728 p. 164
|
||||
a_tube = 254 * 144 # (in^2) total area of tubes ORNL-TM-0728 p. 164
|
||||
l_tube = a_tube / n_tube / (np.pi * od_tube) # (in) tube length
|
||||
v_tube = n_tube * np.pi * (od_tube / 2) ** 2 * l_tube # (in^3) hx shell volume occupied by tubes
|
||||
v_cool = n_tube * np.pi * (id_tube / 2) ** 2 * l_tube # (in^3) hx volume occupied by coolant
|
||||
v_he = (d_he / 2) ** 2 * np.pi * h_he # (in^3) volume of heat exchanger shell
|
||||
v_he_fuel = v_he - v_tube # (in^3) volume available to fuel in shell
|
||||
|
||||
# Unit conversions
|
||||
in_m = 1.63871e-5 # 1 cubic inch = 1.63871e-5 cubic meters
|
||||
|
||||
# PRIMARY FLOW PARAMETERS - DONE
|
||||
W_p = W_f # fuel flow rate (kg/s)
|
||||
|
||||
m_p = v_he_fuel * in_m * rho_f # fuel mass in PHE (kg)
|
||||
nn_p = 4 # number of fuel nodes in PHE
|
||||
mn_p = m_p / nn_p # fuel mass per node (kg)
|
||||
cp_p = scp_f # fuel heat capacity (MJ/(kg-C))
|
||||
|
||||
# SECONDARY FLOW PARAMETERS - DONE
|
||||
vdot_s = 5.36265E-02 # ORNL-TM-0728 p. 164 % 5.236E-02; % coolant volume flow rate (m^3/s) ORNL-TM-1647 p.3
|
||||
rho_s = 1.922e3 # coolant salt density (kg/m^3) ORNL-TM-0728 p.8
|
||||
W_s = 1.005793369810108e+02 # vdot_s*rho_s; % calcd from mdot*cp*delT; vdot_s*rho_s; % coolant flow rate (kg/s) ORNL-TM-1647 p.3
|
||||
|
||||
m_s = v_cool * in_m * rho_s # coolant mass in PHE (kg)
|
||||
nn_s = 4 # number of coolant nodes in PHE
|
||||
mn_s = m_s / nn_s # coolant mass per node (kg)
|
||||
scp_s = 2.39E-3 # cp_s/m_s; % specific heat capacity of coolant (MJ/(kg-C) ORNL-TM-0728 p.8
|
||||
|
||||
A_phe = 2.359E+01 # effective area for heat transfer (primary and secondary, m^2) ORNL-TM-0728 p.164
|
||||
|
||||
ha_p = 6.480E-01 # heat transfer*area coefficient from primary to tubes (MW/C) ORNL-TM-1647 p.3
|
||||
ha_s = 3.060E-01 # heat transfer*area coefficient from tubes to secondary (MW/C) ORNL-TM-1647 p.3
|
||||
|
||||
# Primary Side
|
||||
mcp_pn = mn_p * cp_p # (mass of material x heat capacity of material) of fuel salt per lump in MW-s/°C
|
||||
hA_pn = ha_p / nn_s # 3.030; % (primary to tube heat transfer coeff x heat transfer area) in MW/°C
|
||||
|
||||
# Tubes - DONE
|
||||
nn_t = 2 # number of nodes of tubes in the model
|
||||
rho_tube = 8.7745E+03 # (kg/m^3) density of INOR-8 ORNL-TM-0728 p.20
|
||||
m_tn = (v_tube - v_cool) * in_m * rho_tube / nn_t # mass of tubes (kg)
|
||||
scp_t = 5.778E-04 # specific heat capacity of tubes (MJ/(kg-C)) ORNL-TM-0728 p.20
|
||||
mcp_tn = m_tn * scp_t # mass*(heat capacity) of tubes per lump in MW-s/°C
|
||||
|
||||
# Secondary Side - DONE
|
||||
mcp_sn = mn_s * scp_s # (mass of material x heat capacity of material) of coolant salt per lump in MW-s/°C
|
||||
hA_sn = ha_s / nn_s # (tube to secondary heat transfer coeff x heat transfer area) in MW/°C
|
||||
|
||||
# Initial conditions - DONE
|
||||
# Primary nodes
|
||||
Tp_in = T0_f2 # in °C ORNL-TM-1647 p.2
|
||||
T0_p4 = Tf_in # 6.5444E+02; % in °C 6.461904761904777e+02; ORNL-TM-1647 p.2
|
||||
T0_p1 = Tp_in + (T0_p4 - Tp_in) / 4 # in °C
|
||||
T0_p2 = Tp_in + 2 * (T0_p4 - Tp_in) / 4 # in °C
|
||||
T0_p3 = Tp_in + 3 * (T0_p4 - Tp_in) / 4 # in °C
|
||||
|
||||
# Secondary nodes
|
||||
Ts_in = 5.4611E+02 # in °C ORNL-TM-1647 p.2
|
||||
T0_s4 = 5.7939E+02 # in °C ORNL-TM-1647 p.2
|
||||
T0_s1 = Ts_in + (T0_s4 - Ts_in) / nn_s # in °C
|
||||
T0_s2 = Ts_in + 2 * (T0_s4 - Ts_in) / nn_s # in °C
|
||||
T0_s3 = Ts_in + 3 * (T0_s4 - Ts_in) / nn_s # in °C
|
||||
# Tube nodes
|
||||
T0_t1 = (T0_p1 * hA_pn + T0_s3 * hA_sn) / (hA_pn + hA_sn) # in °C
|
||||
T0_t2 = (T0_p3 * hA_pn + T0_s1 * hA_sn) / (hA_pn + hA_sn) # in °C
|
||||
|
||||
# Radiator Parameters - DONE
|
||||
|
||||
# Initial conditions - DONE
|
||||
# Primary nodes
|
||||
Trp_in = T0_s4 # 5.933E+02; % in °C ORNL-TM-1647 p.2
|
||||
T0_rp = Ts_in # in °C ORNL-TM-1647 p.2
|
||||
|
||||
# Secondary nodes - DONE
|
||||
Trs_in = 37.78 # (C) air inlet temperature ORNL-TM-1647 p.2
|
||||
T0_rs = 148.9 # (C) air exit temperature ORNL-TM-1647 p.2
|
||||
|
||||
# Radiator Geometry
|
||||
od_rad = 0.01905 # (m) outer diameter of tubes in the radiator ORNL-TM-0728 p.296
|
||||
tube_wall_thick = 0.0018288 # (m) thickness of tubes in the radiator ORNL-TM-0728 p.296
|
||||
id_rad = od_rad - 2 * tube_wall_thick
|
||||
n_rtubes = 120 # number of tubes in the radiator (rows times tubes per row) ORNL-TM-0728 p.296
|
||||
l_rtube = 9.144 # (m) length of tubes in the radiator ORNL-TM-0728 p.296
|
||||
v_rp = pi * (id_rad / 2) ** 2 * l_rtube * n_rtubes # volume available to salt in the radiator
|
||||
# v_rtube = pi * (od_rad / 2) ** 2 * l_rtube * n_rtubes - v_rp # volume of metal in radiator tubes *TUBES NOT MODELED
|
||||
|
||||
n_tpr = 12 # number of tubes per row in the radiator matrix
|
||||
n_row = 10 # number rows in the radiator matrix
|
||||
tube_space = 0.0381 # (m) spacing between tubes and rows of matrix
|
||||
v_rs = (n_row * od_rad + (n_row - 1) * tube_space) * (n_tpr * od_rad + (n_tpr - 1) * tube_space) * l_rtube # volume of air inside radiator
|
||||
|
||||
# PRIMARY FLOW PARAMETERS - DONE
|
||||
W_rp = W_s # coolant salt flow rate (kg/s)
|
||||
m_rp = v_rp * rho_s # coolant salt mass in rad (kg)
|
||||
nn_rp = 1 # number of coolant salt nodes in the radiator
|
||||
mn_rp = m_rp / nn_rp # coolant mass per node (kg)
|
||||
cp_rp = scp_s # coolant specific heat capacity (MJ/(kg-C))
|
||||
|
||||
# SECONDARY FLOW PARAMETERS - DONE
|
||||
vdot_rs = 94.389 # ORNL-TM-0728 p. 296; 78.82; % air volume flow rate (m^3/s) ORNL-TM-1647 p.2
|
||||
rho_rs = 1.1237 # air density (kg/m^3) REFPROP (310K and 0.1MPa)
|
||||
W_rs = vdot_rs * rho_rs # air flow rate (kg/s)
|
||||
|
||||
m_rs = v_rs * rho_rs # coolant air mass in rad (kg)
|
||||
nn_rs = 1 # number of coolant nodes in rad
|
||||
mn_rs = m_rs / nn_rs # coolant mass per node (kg)
|
||||
scp_rs = 1.0085E-3 # (MJ/kg-C) specific heat capacity of air at (air_out+air_in)/2 REFPROP
|
||||
|
||||
A_rad = 6.503E1 # (m^2) surface area of the radiator ORNL-TM-0728 p.14
|
||||
h_roverall = P / A_rad / ((T0_rp + Trp_in) / 2 - (T0_rs + Trs_in) / 2) # cald as: P/A_rad/((T0_rp+Trp_in)/2-(T0_rs+Trs_in)/2) 3.168E-4; % (MW/m^2-C) polimi thesis
|
||||
|
||||
# Primary Side
|
||||
mcp_rpn = mn_rp * cp_rp # (mass of material x heat capacity of material) of fuel salt per lump in MW-s/°C
|
||||
hA_rpn = h_roverall * A_rad / nn_rs # 3.030; % (primary to secondary heat transfer coeff x heat transfer area) in MW/°C
|
||||
|
||||
# Secondary Side - DONE
|
||||
mcp_rsn = mn_rs * scp_rs # (mass of material x heat capacity of material) of coolant salt per lump in MW-s/°C
|
||||
hA_rsn = h_roverall * A_rad / nn_rs # (tube to secondary heat transfer coeff x heat transfer area) in MW/°C
|
||||
|
||||
# Pure time delays between components - DONE
|
||||
tau_hx_c = 8.67 # (sec) delay from hx to core TDAMSRE p.6
|
||||
tau_c_hx = 3.77 # (sec) subtracted 1 sec for external loop power generation node resident time; delay from core to fuel hx TDAMSRE p.6
|
||||
tau_hx_r = 4.71 # (sec) fertile hx to core TDAMSRE p.6
|
||||
tau_r_hx = 8.24 # (sec) core to fertile hx TDAMSRE p.6
|
||||
|
||||
first_val = (rho_0 - beta_t) * n_frac0 / Lam + lam[0] * C0[0] + lam[1] * C0[1] + lam[2] * C0[2] + lam[3] * C0[3] + lam[4] * C0[4] + lam[5] * C0[5]
|
||||
|
|
@ -0,0 +1,217 @@
|
|||
import numpy as np
|
||||
import math
|
||||
pi = math.pi
|
||||
|
||||
# domain
|
||||
t0 = 0.0
|
||||
tf = 10000.00
|
||||
T = np.arange(t0,tf,0.01)
|
||||
|
||||
# NEUTRONICS DATA
|
||||
tau_l = 16.73 # ORNL-TM-0728 %16.44; % (s)
|
||||
tau_c = 8.46 # ORNL-TM-0728 %8.460; % (s)
|
||||
# P = 8.0 # Thermal Power in MW ORNL-TM-1070, p.2
|
||||
P = 1.0e-5 # 10 W
|
||||
n_frac0 = 1.0 # initial fractional neutron density n/n0 (n/cm^3/s)
|
||||
Lam = 2.400E-04 # mean generation time ORNL-TM-1070 p.15 U235
|
||||
# Lam = 4.0E-04; # mean generation time ORNL-TM-1070 p.15 U233
|
||||
lam = np.array([1.240E-02, 3.05E-02, 1.11E-01, 3.01E-01, 1.140E+00, 3.014E+00])
|
||||
beta = np.array([0.000223, 0.001457, 0.001307, 0.002628, 0.000766, 0.00023]) # U235
|
||||
# beta = np.array([0.00023, 0.00079, 0.00067, 0.00073, 0.00013, 0.00009]) # U233
|
||||
beta_t = np.sum(beta) # total delayed neutron fraction MSRE
|
||||
rho_0 = beta_t-sum(np.divide(beta,1+np.divide(1-np.exp(-lam*tau_l),lam*tau_c))) # reactivity change in going from stationary to circulating fuel
|
||||
C0 = beta / Lam * (1.0 / (lam - (np.exp(-lam * tau_l) - 1.0) / tau_c))
|
||||
|
||||
# Feedback co-efficients
|
||||
# a_f = -8.71E-05 # U235 (drho/°C) fuel salt temperature-reactivity feedback coefficient ORNL-TM-1647 p.3 % -5.904E-05; % ORNL-TM-0728 p. 101 %
|
||||
# a_g = -6.66E-05 # U235 (drho/°C) graphite temperature-reactivity feedback coefficient ORNL-TM-1647 p.3 % -6.624E-05; % ORNL-TM-0728 p.101
|
||||
|
||||
# low power coefficients
|
||||
a_f = (-4.1e-5)*5/9
|
||||
a_g = (-4.0e-5)*5/9
|
||||
|
||||
# CORE HEAT TRANSFER PARAMETERS
|
||||
# FUEL PARAMETERS - DONE
|
||||
vdot_f = 7.5708E-02 # ORNL-TM-0728 % 7.571e-2; % vol. flow rate (m^3/s) ORNL-TM-1647 p.3, ORNL-TM-0728 p.12
|
||||
rho_f = 2.14647E+03 # (partially enriched U-235)ORNL-TM-0728 p.8 2.243E+03; % (Th-U) density of fuel salt (kg/m^3) ORNL-TM-0728 p.8
|
||||
|
||||
# W_f = 1.623879934566580e+02 # 1.83085e+02;%vdot_f*rho_f; % 182.78; % calcd from m_dot*cp*delT=P; vdot_f*rho_f; % fuel flow rate (kg/s)
|
||||
|
||||
W_f = 1200*(1/264.172)*(1/60)*(rho_f) # gpm -> kg/s
|
||||
|
||||
# tau_f_c = tau_c; % ORNL-TM-0728 % 8.45; % transit time of fuel in core (s) ORNL-TM-1070 p.15, TDAMSRE p.5
|
||||
m_f = W_f * tau_c # fuel mass in core (kg)
|
||||
nn_f = 2 # number of fuel nodes in core model
|
||||
mn_f = m_f / nn_f # fuel mass per node (kg)
|
||||
# cp_f = 4.2*9/5; % (MJ/deg-C) total fuel heat capacity TDAMSRE p.5
|
||||
scp_f = 1.9665E-3 # specific heat capacity of fuel salt (MJ/kg-C) ORNL-TM-0728 p.8
|
||||
|
||||
# Core Upflow - DONE
|
||||
v_g = 1.95386 # graphite volume(m^3) ORNL-TM-0728 p. 101
|
||||
rho_g = 1.860E3 # graphite density (kg/m^3) ORNL-3812 p.77, ORNL-TM-0728 p.87
|
||||
m_g = v_g * rho_g # graphite mass (kg)
|
||||
cp_g = 3.6 * 9 / 5 # TDAMSRE p.5 graphite total heat capacity (MW-s/C) ORNL-TM-1647 p.3
|
||||
scp_g = 1.773E-3 # cp_g/m_g; % graphite specific heat capacity (MW-s/kg-C) ORNL-TM-1647 p.3
|
||||
mcp_g1 = m_g * scp_g # (mass of material x heat capacity of material) of graphite per lump (MW-s/°C)
|
||||
mcp_f1 = mn_f * scp_f # (mass of material x heat capacity of material) of fuel salt per lump (MW-s/°C)
|
||||
mcp_f2 = mn_f * scp_f # (mass of material x heat capacity of material) of fuel salt per lump (MW-s/°C)
|
||||
hA_fg = 0.02 * 9 / 5 # (fuel to graphite heat transfer coeff x heat transfer area) (MW/°C) ORNL-TM-1647 p.3, TDAMSRE p.5
|
||||
k_g = 0.07 # fraction of total power generated in the graphite ORNL-TM-0728 p.9
|
||||
k_1 = 0.5 # fraction of heat transferred from graphite which goes to the first fuel lump
|
||||
k_2 = 0.5 # fraction of heat transferred from graphite which goes to the second fuel lump
|
||||
k_f = 0.93 # fraction of heat generated in fuel - that generated in the external loop ORNL-TM-0728 p.9
|
||||
k_f1 = k_f / nn_f # fraction of total power generated in lump f1
|
||||
k_f2 = k_f / nn_f # fraction of total power generated in lump f2
|
||||
|
||||
# New node for power deposited in fuel outside the core
|
||||
k_out = 1 - (k_g + k_f) # fraction of power generated in fuel in external loop ORNL-TM-0728 p.9
|
||||
m_out = W_f # (kg) Mass of node such that resident time is 1 sec (W_f needs to be defined)
|
||||
|
||||
# Initial conditions - DONE
|
||||
Tf_in = 648.85 # in °C ORNL-TM-1647 p.2
|
||||
T0_f2 = 648.85 # 6.5444E+02; % in °C 6.461904761904777e+02; ORNL-TM-1647 p.2
|
||||
T0_f1 = Tf_in + (T0_f2 - Tf_in) / 2 # 6.405952380952389e+02; in °C
|
||||
T0_g1 = T0_f1 + (k_g * P / hA_fg) # 6.589285714285924e+02; in °C
|
||||
# T0_out = k_out * P / m_out / scp_f + T0_f2 # in °C (scp_f needs to be defined)
|
||||
|
||||
|
||||
# Heat Exchanger - DONE
|
||||
# Geometry
|
||||
d_he = 16 # (in) he diameter ORNL-TM-0728 p. 164
|
||||
h_he = 72 # (in) active height % 96; %(in) he height ORNL-TM-0728 p. 164
|
||||
od_tube = 0.5 # (in) coolant tube OD ORNL-TM-0728 p. 164
|
||||
id_tube = od_tube - 2 * 0.042 # (in) coolant tube ID ORNL-TM-0728 p. 164
|
||||
n_tube = 159 # number of coolant tubes ORNL-TM-0728 p. 164
|
||||
a_tube = 254 * 144 # (in^2) total area of tubes ORNL-TM-0728 p. 164
|
||||
l_tube = a_tube / n_tube / (np.pi * od_tube) # (in) tube length
|
||||
v_tube = n_tube * np.pi * (od_tube / 2) ** 2 * l_tube # (in^3) hx shell volume occupied by tubes
|
||||
v_cool = n_tube * np.pi * (id_tube / 2) ** 2 * l_tube # (in^3) hx volume occupied by coolant
|
||||
v_he = (d_he / 2) ** 2 * np.pi * h_he # (in^3) volume of heat exchanger shell
|
||||
v_he_fuel = v_he - v_tube # (in^3) volume available to fuel in shell
|
||||
|
||||
# Unit conversions
|
||||
in_m = 1.63871e-5 # 1 cubic inch = 1.63871e-5 cubic meters
|
||||
|
||||
# PRIMARY FLOW PARAMETERS - DONE
|
||||
W_p = W_f # fuel flow rate (kg/s)
|
||||
|
||||
m_p = v_he_fuel * in_m * rho_f # fuel mass in PHE (kg)
|
||||
nn_p = 4 # number of fuel nodes in PHE
|
||||
mn_p = m_p / nn_p # fuel mass per node (kg)
|
||||
cp_p = scp_f # fuel heat capacity (MJ/(kg-C))
|
||||
|
||||
# SECONDARY FLOW PARAMETERS - DONE
|
||||
vdot_s = 5.36265E-02 # ORNL-TM-0728 p. 164 % 5.236E-02; % coolant volume flow rate (m^3/s) ORNL-TM-1647 p.3
|
||||
rho_s = 1.922e3 # coolant salt density (kg/m^3) ORNL-TM-0728 p.8
|
||||
W_s = 1.005793369810108e+02 # vdot_s*rho_s; % calcd from mdot*cp*delT; vdot_s*rho_s; % coolant flow rate (kg/s) ORNL-TM-1647 p.3
|
||||
|
||||
m_s = v_cool * in_m * rho_s # coolant mass in PHE (kg)
|
||||
nn_s = 4 # number of coolant nodes in PHE
|
||||
mn_s = m_s / nn_s # coolant mass per node (kg)
|
||||
scp_s = 2.39E-3 # cp_s/m_s; % specific heat capacity of coolant (MJ/(kg-C) ORNL-TM-0728 p.8
|
||||
|
||||
A_phe = 2.359E+01 # effective area for heat transfer (primary and secondary, m^2) ORNL-TM-0728 p.164
|
||||
|
||||
ha_p = 6.480E-01 # heat transfer*area coefficient from primary to tubes (MW/C) ORNL-TM-1647 p.3
|
||||
ha_s = 3.060E-01 # heat transfer*area coefficient from tubes to secondary (MW/C) ORNL-TM-1647 p.3
|
||||
|
||||
# Primary Side
|
||||
mcp_pn = mn_p * cp_p # (mass of material x heat capacity of material) of fuel salt per lump in MW-s/°C
|
||||
hA_pn = ha_p / nn_s # 3.030; % (primary to tube heat transfer coeff x heat transfer area) in MW/°C
|
||||
|
||||
# Tubes - DONE
|
||||
nn_t = 2 # number of nodes of tubes in the model
|
||||
rho_tube = 8.7745E+03 # (kg/m^3) density of INOR-8 ORNL-TM-0728 p.20
|
||||
m_tn = (v_tube - v_cool) * in_m * rho_tube / nn_t # mass of tubes (kg)
|
||||
scp_t = 5.778E-04 # specific heat capacity of tubes (MJ/(kg-C)) ORNL-TM-0728 p.20
|
||||
mcp_tn = m_tn * scp_t # mass*(heat capacity) of tubes per lump in MW-s/°C
|
||||
|
||||
# Secondary Side - DONE
|
||||
mcp_sn = mn_s * scp_s # (mass of material x heat capacity of material) of coolant salt per lump in MW-s/°C
|
||||
hA_sn = ha_s / nn_s # (tube to secondary heat transfer coeff x heat transfer area) in MW/°C
|
||||
|
||||
# Initial conditions - DONE
|
||||
# Primary nodes
|
||||
Tp_in = T0_f2 # in °C ORNL-TM-1647 p.2
|
||||
T0_p4 = Tf_in # 6.5444E+02; % in °C 6.461904761904777e+02; ORNL-TM-1647 p.2
|
||||
T0_p1 = Tp_in + (T0_p4 - Tp_in) / 4 # in °C
|
||||
T0_p2 = Tp_in + 2 * (T0_p4 - Tp_in) / 4 # in °C
|
||||
T0_p3 = Tp_in + 3 * (T0_p4 - Tp_in) / 4 # in °C
|
||||
|
||||
# Secondary nodes
|
||||
hx_f_temp = 648.85-(3e-4)
|
||||
Ts_in = hx_f_temp # in °C ORNL-TM-1647 p.2
|
||||
T0_s4 = hx_f_temp # in °C ORNL-TM-1647 p.2
|
||||
T0_s1 = Ts_in + (T0_s4 - Ts_in) / nn_s # in °C
|
||||
T0_s2 = Ts_in + 2 * (T0_s4 - Ts_in) / nn_s # in °C
|
||||
T0_s3 = Ts_in + 3 * (T0_s4 - Ts_in) / nn_s # in °C
|
||||
# Tube nodes
|
||||
T0_t1 = (T0_p1 * hA_pn + T0_s3 * hA_sn) / (hA_pn + hA_sn) # in °C
|
||||
T0_t2 = (T0_p3 * hA_pn + T0_s1 * hA_sn) / (hA_pn + hA_sn) # in °C
|
||||
|
||||
# Radiator Parameters - DONE
|
||||
|
||||
# Initial conditions - DONE
|
||||
# Primary nodes
|
||||
Trp_in = T0_s4 # 5.933E+02; % in °C ORNL-TM-1647 p.2
|
||||
T0_rp = Ts_in # in °C ORNL-TM-1647 p.2
|
||||
|
||||
# Secondary nodes - DONE
|
||||
Trs_in = 37.78 # (C) air inlet temperature ORNL-TM-1647 p.2
|
||||
T0_rs = 148.9 # (C) air exit temperature ORNL-TM-1647 p.2
|
||||
|
||||
# Radiator Geometry
|
||||
od_rad = 0.01905 # (m) outer diameter of tubes in the radiator ORNL-TM-0728 p.296
|
||||
tube_wall_thick = 0.0018288 # (m) thickness of tubes in the radiator ORNL-TM-0728 p.296
|
||||
id_rad = od_rad - 2 * tube_wall_thick
|
||||
n_rtubes = 120 # number of tubes in the radiator (rows times tubes per row) ORNL-TM-0728 p.296
|
||||
l_rtube = 9.144 # (m) length of tubes in the radiator ORNL-TM-0728 p.296
|
||||
v_rp = pi * (id_rad / 2) ** 2 * l_rtube * n_rtubes # volume available to salt in the radiator
|
||||
# v_rtube = pi * (od_rad / 2) ** 2 * l_rtube * n_rtubes - v_rp # volume of metal in radiator tubes *TUBES NOT MODELED
|
||||
|
||||
n_tpr = 12 # number of tubes per row in the radiator matrix
|
||||
n_row = 10 # number rows in the radiator matrix
|
||||
tube_space = 0.0381 # (m) spacing between tubes and rows of matrix
|
||||
v_rs = (n_row * od_rad + (n_row - 1) * tube_space) * (n_tpr * od_rad + (n_tpr - 1) * tube_space) * l_rtube # volume of air inside radiator
|
||||
|
||||
# PRIMARY FLOW PARAMETERS - DONE
|
||||
W_rp = W_s # coolant salt flow rate (kg/s)
|
||||
m_rp = v_rp * rho_s # coolant salt mass in rad (kg)
|
||||
nn_rp = 1 # number of coolant salt nodes in the radiator
|
||||
mn_rp = m_rp / nn_rp # coolant mass per node (kg)
|
||||
cp_rp = scp_s # coolant specific heat capacity (MJ/(kg-C))
|
||||
|
||||
# SECONDARY FLOW PARAMETERS - DONE
|
||||
# assume only convection airflow
|
||||
# vdot_rs = 94.389 # ORNL-TM-0728 p. 296; 78.82; % air volume flow rate (m^3/s) ORNL-TM-1647 p.2
|
||||
vdot_rs = 1.0
|
||||
rho_rs = 1.1237 # air density (kg/m^3) REFPROP (310K and 0.1MPa)
|
||||
W_rs = vdot_rs * rho_rs # air flow rate (kg/s)
|
||||
|
||||
|
||||
|
||||
m_rs = v_rs * rho_rs # coolant air mass in rad (kg)
|
||||
nn_rs = 1 # number of coolant nodes in rad
|
||||
mn_rs = m_rs / nn_rs # coolant mass per node (kg)
|
||||
scp_rs = 1.0085E-3 # (MJ/kg-C) specific heat capacity of air at (air_out+air_in)/2 REFPROP
|
||||
|
||||
A_rad = 6.503E1 # (m^2) surface area of the radiator ORNL-TM-0728 p.14
|
||||
h_roverall = P / A_rad / ((T0_rp + Trp_in) / 2 - (T0_rs + Trs_in) / 2) # cald as: P/A_rad/((T0_rp+Trp_in)/2-(T0_rs+Trs_in)/2) 3.168E-4; % (MW/m^2-C) polimi thesis
|
||||
# h_roverall = 3.0
|
||||
|
||||
# Primary Side
|
||||
mcp_rpn = mn_rp * cp_rp # (mass of material x heat capacity of material) of fuel salt per lump in MW-s/°C
|
||||
hA_rpn = h_roverall * A_rad / nn_rs # 3.030; % (primary to secondary heat transfer coeff x heat transfer area) in MW/°C
|
||||
|
||||
# Secondary Side - DONE
|
||||
mcp_rsn = mn_rs * scp_rs # (mass of material x heat capacity of material) of coolant salt per lump in MW-s/°C
|
||||
hA_rsn = h_roverall * A_rad / nn_rs # (tube to secondary heat transfer coeff x heat transfer area) in MW/°C
|
||||
|
||||
# Pure time delays between components - DONE
|
||||
tau_hx_c = 8.67 # (sec) delay from hx to core TDAMSRE p.6
|
||||
tau_c_hx = 3.77 # (sec) subtracted 1 sec for external loop power generation node resident time; delay from core to fuel hx TDAMSRE p.6
|
||||
tau_hx_r = 4.71 # (sec) fertile hx to core TDAMSRE p.6
|
||||
tau_r_hx = 8.24 # (sec) core to fertile hx TDAMSRE p.6
|
||||
|
||||
first_val = (rho_0 - beta_t) * n_frac0 / Lam + lam[0] * C0[0] + lam[1] * C0[1] + lam[2] * C0[2] + lam[3] * C0[3] + lam[4] * C0[4] + lam[5] * C0[5]
|
||||
|
||||
315
dynamic_model/pump_transient_benchmark/pump_transients.ipynb
Normal file
315
dynamic_model/pump_transient_benchmark/pump_transients.ipynb
Normal file
File diff suppressed because one or more lines are too long
22
dynamic_model/pump_transient_benchmark/steady_state.ipynb
Normal file
22
dynamic_model/pump_transient_benchmark/steady_state.ipynb
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"vscode": {
|
||||
"languageId": "plaintext"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"language_info": {
|
||||
"name": "python"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue