-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathxenon.fee
More file actions
59 lines (47 loc) · 1.78 KB
/
Copy pathxenon.fee
File metadata and controls
59 lines (47 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
INCLUDE parameters.fee
FUNCTION setpoint(t) DATA {
0 1
1000 1
2000 0.8
5000 0.8
10000 1
20000 1 }
end_time = vecmax(vec_setpoint_t) # tiempo final = último tiempo de setpoint(t)
max_dt = 1 # no dejamos que dt aumente demasiado
# importancia de la barra de control como función de la inserción
FUNCTION rodworth(z) INTERPOLATION akima DATA {
0 2.155529e+01*1e-5*10
0.2 6.337352e+00*1e-5*10
0.4 -3.253021e+01*1e-5*10
0.6 -7.418505e+01*1e-5*10
0.8 -1.103352e+02*1e-5*10
1 -1.285819e+02*1e-5*10
}
# constantes para el xenón
gammaX = 1.4563E10 # xenon-135 direct fission yield
gammaI = 1.629235E11 # iodine-135 direction fission yield
GammaX = -3.724869E-17 # xenon-135 reactivity coefficiente
lambdaX = 2.09607E-05 # xenon-135 decay constant
lambdaI = 2.83097E-05 # iodine-135 decay constant
sigmaX = 2.203206E-04 # microscopic XS of neutron absorption for Xe-134
PHASE_SPACE rho phi c I X
INITIAL_CONDITIONS_MODE FROM_VARIABLES
z_0 = 0.5 # estado estacionario
phi_0 = 1
c_0[i] = phi_0 * beta[i]/(Lambda*lambda[i])
I_0 = gammaI*phi_0/lambdaI
X_0 = (gammaX + gammaI)/(lambdaX + sigmaX*phi_0) * phi_0
rho_bias_0 = -rodworth(z_0) - GammaX*X_0
# --- DAEs ------------------------------
rho = rho_bias + rodworth(z) + GammaX*X
phi_dot = (rho-Beta)/Lambda * phi + vecdot(lambda, c)
c_dot[i] = beta[i]/Lambda * phi - lambda[i]*c[i]
I_dot = gammaI * phi - lambdaI * I
X_dot = gammaX * phi + lambdaI * I - lambdaX * X - sigmaX * phi * X
# --- sistema de control ----------------
# movemos la barra de control si el error excede una banda muerta del 0.3%
vrod = 1/500 # 1/500-avos de núcleo por segundo
band = 3e-3
error = phi - setpoint(t)
z = z_0 + integral_dt(vrod*((error>(+band))-(error<(-band))))
PRINT t phi z setpoint(t)