Compare commits
30 commits
update_not
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b0f73669b7 | ||
|
|
f938f50e60 | ||
|
|
691d8f30aa | ||
|
|
cade121c45 | ||
|
|
7199765d93 | ||
|
|
69ae83b16f | ||
|
|
1d5bb6b138 | ||
|
|
29468c39fc | ||
|
|
aa6630546f | ||
|
|
8d9dc76154 | ||
|
|
d0357e0cf6 | ||
|
|
869647345f | ||
|
|
4f6c3641dc | ||
|
|
3b027582df | ||
|
|
1f0555bb71 | ||
|
|
964d350dcb | ||
|
|
5b01326119 | ||
|
|
62cb7f91e3 | ||
|
|
b3c3471787 | ||
|
|
61cbf5cd6b | ||
|
|
ae944e2e86 | ||
|
|
9cb08fb100 | ||
|
|
bb6d3d41a1 | ||
|
|
37644202c7 | ||
|
|
53e9d2f2ee | ||
|
|
1a4eff508e | ||
|
|
4bf2f3d52b | ||
|
|
d97fce65c1 | ||
|
|
ca3cb023a4 | ||
|
|
5930aeceec |
57 changed files with 9013 additions and 1371 deletions
67
README.md
67
README.md
|
|
@ -1,73 +1,36 @@
|
|||
# msre
|
||||
[](https://www.gnu.org/licenses/gpl-3.0)
|
||||
|
||||
detailed cad model of the [msre](https://en.wikipedia.org/wiki/Molten-Salt_Reactor_Experiment) (molten salt reactor experiment), operated by oak ridge national laboratory 1965-69.
|
||||
detailed cad model and openmc benchmarks of the [msre](https://en.wikipedia.org/wiki/Molten-Salt_Reactor_Experiment) (molten salt reactor experiment), operated by oak ridge national laboratory 1965-69.
|
||||
|
||||
## msre core
|
||||

|
||||
[onshape cad model v17](https://cad.onshape.com/documents/4f04f63bfd4138a61a54b3f8/v/b8c29a0cedda86dfc6948111/)
|
||||
cad model includes crude drawings of the insulation, thermal shield, and the reactor pit, but not detailes such as components or piping.
|
||||
all part names' begining correspond to it's material, e.g. graphite, salt, or inor-8 (hasteloy n).
|
||||
all core parts are thermally expanded to the operating temperature (currently to the temperature of the zero power experiments during commisioning). note that graphite thermal expansion coefficients are only given for room temperature and thus likely underpredicted and the control rod assembly temperature is unknow and like much higher than currently assigned.
|
||||
|
||||
[core/msrecore.pdf](core/docs/msrecore.pdf) lists reference of the msre core design, documented in the old msre reports and located [here](https://github.com/openmsr/msr-archive/blob/master/README.md).
|
||||
|
||||
## msre step files
|
||||
individual parts or assemblies can be exported directly from onshape. step files of entire msre assembly and one control rod assembly can be found in [](step_files/).
|
||||
|
||||
[step files](step_files/) of entire msre assembly and control rod.
|
||||
this work and the cad models are under the GNU General Public License v3.0
|
||||
|
||||
## h5m
|
||||
[h5m](h5m/) surface mesh of the previous step files for OpenMC simulation.
|
||||

|
||||
|
||||
**Note:** the h5m files are generated with `Coreform Cubit` with a surface tolerance of 1e-2 cm.
|
||||

|
||||
|
||||
## docker msre
|
||||
[msre docker](msre_docker/) conatiner which includes not only support for OpenMC with DAGMC/MOAB, embree, and double_down libraries, but also a Jupyter notebook server.
|
||||
|
||||
## openmc notebooks
|
||||
[openmc notebooks](openmc_notebooks/) of the msre in form of jupyter notebooks.
|
||||
|
||||
Examples include:
|
||||
# openmc benchmark
|
||||
openmc benchmark include:
|
||||
- msre cad with settable control rods
|
||||
- msre isothermal temperature coefficient calculation
|
||||
- msre depletion analysis with fission products removal
|
||||
|
||||
## prerequisites
|
||||
### openmc
|
||||
[openmc](https://docs.openmc.org/en/stable/) automated source installation scripts for linux can be found [here](https://github.com/openmsr/openmc_install_scripts)
|
||||
### CAD_to_openMC
|
||||
[CAD_to_openMC](https://github.com/openmsr/CAD_to_openMC) is an open-source package to convert CAD geometry (in the form of '.step' files) into an openmc-readable h5m file
|
||||
prerequisites
|
||||
- [openmc](https://docs.openmc.org/en/stable/) automated source installation scripts for linux can be found [here](https://github.com/openmsr/openmc_install_scripts)
|
||||
- [CAD_to_openMC](https://github.com/openmsr/CAD_to_openMC) is an open-source package to convert CAD geometry (in the form of '.step' files) into an openmc-readable h5m file
|
||||
|
||||
|
||||
## msre heat exchangers
|
||||
|
||||
# msre heat exchangers thermohydralics
|
||||
open-access [master's thesis](https://ltu.diva-portal.org/smash/get/diva2:1546993/FULLTEXT01.pdf) produced by Malcolm Akner about simulations of the heat exchangers of the msre, titled:
|
||||
|
||||
Validating results from the Molten Salt Reactor Experiment by use of turbulent CFD simulations
|
||||
- A study of a modified U-tube shell-and-tube primary heat exchanger and radiator with molten salts
|
||||
|
||||
### msre primary heat exchanger
|
||||

|
||||
|
||||
[onshape primary heat exchanger cad model](https://cad.onshape.com/documents/03be2f510296a2e264886390/w/8cfbca3b7b9682dd4e53a998/e/54728fd981a1b4f5594c73d6), open to copy and use freely. chapter 4.1 in the [thesis](https://ltu.diva-portal.org/smash/get/diva2:1546993/FULLTEXT01.pdf) mentioned above covers the cad construction details extensively with references to original msre reports.
|
||||
|
||||

|
||||
|
||||
[simscale primary heat exchanger simulation model](https://www.simscale.com/projects/MalcolmAkner/phex_-_final_version/). simulation results for primary heat exchanger can be viewed in chapter 6.2.2.1 of the [thesis](https://ltu.diva-portal.org/smash/get/diva2:1546993/FULLTEXT01.pdf), with comparisons to msre data in chapter 7.1.1.
|
||||
|
||||

|
||||
|
||||
primary heat exchanger produced and installed in the msre.
|
||||
|
||||
|
||||
### msre radiator
|
||||

|
||||
|
||||
[onshape radiator cad model](https://cad.onshape.com/documents/bf944323ed6a82e05924078c/w/2a25d73c5a3a66824d2d5fbd/e/a83d5535602a053216fedff4) open to copy and use freely. chapter 4.2 of the [thesis](https://ltu.diva-portal.org/smash/get/diva2:1546993/FULLTEXT01.pdf) covers the cad construction details with origianl references to msre reports.
|
||||
|
||||

|
||||
|
||||
radiator produced and installed in the msre.
|
||||
|
||||
---
|
||||
|
||||
please contact [me](https://github.com/aslakstubsgaard) if you want to contribute.
|
||||
note that this work and the cad models are under the GNU General Public License v3.0
|
||||
|
||||
---
|
||||
|
|
|
|||
BIN
core/docs/msre-pit.png
Normal file
BIN
core/docs/msre-pit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 153 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 221 KiB |
78
dynamic_model/README.md
Normal file
78
dynamic_model/README.md
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# Model
|
||||
Non-linear dynamic model of the MSRE based on [Singh et al.](https://www.sciencedirect.com/science/article/pii/S030645491730381X). The model uses a "nodalized" approach, in which the reactor system is composed of coupled subsystems, each of which contain multiple nodes to represent the various dynamics contributing to neutron density (reactor power) and heat transfer. This model is a replication of the one-region nodal model implemented in Singh et al. A schematic of the nodes is shown below
|
||||
|
||||

|
||||
|
||||
## Kinetics
|
||||
The neutron kinetics are expressed in terms of fractional power. As described in Singh et al., "The premise is that reactor power is proportional to neutron density, with all other parameters held fixed." In the model herien, kinetics are described by the following set of equations
|
||||
|
||||
```math
|
||||
\begin{equation}
|
||||
\frac{{dn(t)}}{{dt}} = \frac{{(\rho(t) - \beta)}}{\Lambda} n(t) + \sum_{{i=1}}^6 \lambda_i C_i(t) + S(t)
|
||||
\end{equation}
|
||||
```
|
||||
|
||||
where $S(t)$ is an external source term, and $C_i(t)$ is the concentration of the $i^{th}$ precursor group (six total for this model) with
|
||||
|
||||
```math
|
||||
\frac{dC_i(t)}{dt} = \frac{\beta_i}{\Lambda}n(t)-\lambda_i C_i(t) - \frac{C_i(t)}{\tau_C} + \frac{C_i(t - \tau_L) e^{-\lambda_i \tau_L}}{\tau_C}
|
||||
```
|
||||
|
||||
where $\rho(t)$ is the total reactivity such that
|
||||
|
||||
```math
|
||||
\rho(t)=\rho_0+\rho_{fb}(t)+\rho_{ext}
|
||||
```
|
||||
|
||||
where $\rho_0$ is the reactivity necessary for steady state operation, found by solving the above two equations in the steady state, which yields
|
||||
|
||||
```math
|
||||
\rho_0 = \beta - \sum_{i=1}^6 \frac{\beta_i}{1+\frac{1}{\lambda_i \tau_C}(1-e^{-\lambda_i \tau_L})}
|
||||
```
|
||||
|
||||
and $\rho_{ext}$ is external reactivity, e.g. from a reactivity insertion, and $\rho_{fb}$ is the feedback reactivity due to temperature differences in the core nodes, expressed as
|
||||
|
||||
```math
|
||||
\rho_{fb}(t) = \alpha_f \sum_{i=1}^{n} I_{fi} (T_{f_i,0} - T_{f_i}(t)) + \alpha_g \sum_{i=1}^{n} I_{gi} (T_{g,0} - T_{g_i}(t)), \quad \text{where} \sum_{\text{regions}} I_{fi} = \sum_{\text{regions}} I_{gi} = 1.0
|
||||
```
|
||||
|
||||
where $\alpha_f$ and $\alpha_g$ are the fuel and graphite temperature-reactivity coefficients respectively, and $I$ represents the weighted nuclear importance factor of each region.
|
||||
|
||||
The kinetics are coupled to the heat exchanger node via the feedback reactivity, $\rho_{fb}(t)$, which depends on the temperature of the fuel and graphite nodes, which ultimately depend on the fuel inlet temperature. Note, the differential equation govenring neutron density, $\frac{dn(t)}{dt}$, is nonlinear due to the fact that $n(t)$ is multiplied with $\rho(t)$.
|
||||
|
||||
## Heat Transfer
|
||||
|
||||
The equations governing heat transfer contain three terms; a source term and a sink term, occuring from either mass transfer (1D flow) or conduction via wetted interface, as well as a fractional power generation term, which is zero at all nodes outside of the core. The equations governing the two core fuel nodes are, for example
|
||||
|
||||
```math
|
||||
\frac{dT_{f1}}{dt} = \frac{W_f}{m_{f1}}(T_{f_{in}}-T_{f1}) + \frac{K_1 P_0 (\frac{n}{n_0})}{m_{f1} C_{pf}} + \left( \frac{K_{g1}}{K_{g1}+K_{g2}} \right) \frac{hA_{fg}}{m_{f1}C_{pf}}(T_g - T_{f1})
|
||||
```
|
||||
```math
|
||||
\frac{dT_{f2}}{dt} = \frac{W_f}{m_{f2}}(T_{f1}-T_{f2}) + \frac{K_2 P_0 (\frac{n}{n_0})}{m_{f2} C_{pf}} + \left( \frac{K_{g2}}{K_{g1}+K_{g2}} \right) \frac{hA_{fg}}{m_{f2}C_{pf}}(T_g - T_{f1})
|
||||
```
|
||||
"Here, $W_f$ is the mass flow rate of fuel salt, $m_{f1}$ and $m_{f2}$ represent the mass of fuel nodes 1 and 2 respectively, $C_{pf}$ represents the fuel salt specific heat capacity, $K_1$ and $K_2$ are the fraction of total power generated in fuel nodes 1 and 2, $K_{g1}$ and $K_{g2}$ represent the fraction of power generated in the graphite transferred to each fuel node, $hA_{fg}$ is the product of area and heat transfer coefficient for the fuel-graphite interface, $P_0$ is the nominal power which multiplied with fractional neutron density n/no gives the instantaneous power, and the $T$s represent the temperatures of the various nodes. Note that the direction of heat transfer depends on the instantaneous temperature of the various nodes." (Singh et. al).
|
||||
|
||||
# Method
|
||||
The model herein uses [JiTCDDE](https://jitcdde.readthedocs.io/en/stable/), a numerical solver for delay-differential equations. Sample implementation is shown below:
|
||||
|
||||
```python
|
||||
# instantiate jitcdde object
|
||||
DDE = jitcdde([T_out_rc,T_out_air,T_hf1,T_hf2,T_hf3,T_hf4,T_ht1,T_ht2,T_hc1,
|
||||
T_hc2,T_hc3,T_hc4,n,C1,C2,C3,C4,C5,C6,T_cg,T_cf1,T_cf2,rho])
|
||||
|
||||
# set initial conditions
|
||||
DDE.constant_past([T0_rp, T0_rs, T0_p1,T0_p2, T0_p3, T0_p4, T0_t1, T0_t2, T0_s1, T0_s2,
|
||||
T0_s3, T0_s4, n_frac0, C0[0], C0[1], C0[2], C0[3], C0[4], C0[5],
|
||||
T0_g1, T0_f1, T0_f2,rho_initial])
|
||||
|
||||
# jitcdde solver parameters
|
||||
t0 = 0.0
|
||||
tf = 1000.00
|
||||
T = np.arange(t0,tf,0.01)
|
||||
|
||||
sol_jit = []
|
||||
for t_x in T:
|
||||
sol_jit.append(DDE.integrate(t_x))
|
||||
```
|
||||
|
||||
The [scipyODE_implementation](./scipyODE_implementation/) contains a manual implementation using the `dopri5` method of SciPy's ODE library. However, since SciPy's ODE library does not support delay differential equations, the delay terms are stored and handled manually. Since the 'dopri5' method uses adaptive time-stepping, linear interpolation is used for approximating the value of the delay terms near the closest timestep to the delay.
|
||||
BIN
dynamic_model/figures/msre_one_region_diagram.png
Normal file
BIN
dynamic_model/figures/msre_one_region_diagram.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 129 KiB |
234
dynamic_model/jitcdde_implementation/parameters.py
Normal file
234
dynamic_model/jitcdde_implementation/parameters.py
Normal file
|
|
@ -0,0 +1,234 @@
|
|||
import numpy as np
|
||||
import pandas as pd
|
||||
import math
|
||||
pi = math.pi
|
||||
|
||||
# Perturbations
|
||||
# SOURCE INSERTION
|
||||
# No source insertion
|
||||
sourcedata = np.array([0, 0, 0])
|
||||
sourcetime = np.array([0, 50, 100])
|
||||
# % 1 (n/no)/s for 10 seconds
|
||||
# sourcedata = np.array([0, 10, 0])
|
||||
# sourcetime = np.array([0, 10, 20])
|
||||
source = pd.Series(sourcedata, index=sourcetime)
|
||||
|
||||
# REACTIVITY INSERTION
|
||||
# No reactivity insertion
|
||||
simtime = 10
|
||||
reactdata = np.array([0, 5E-4])
|
||||
reacttime = np.array([0, 2500])
|
||||
# Periodic 60 PCM for 50 seconds
|
||||
# simtime = 500
|
||||
# periodic = np.array([[0, 0], [50, 6e-4], [100, 0], [150, -6e-4], [200, 0], [250, 6e-4], [300, 0], [350, -6e-4], [400, 0]])
|
||||
# reactdata = periodic[:, 1]
|
||||
# reacttime = periodic[:, 0]
|
||||
# Step up 60 pcm
|
||||
# simtime = 1000
|
||||
# reactdata = np.array([0, 6e-3])
|
||||
# reacttime = np.array([0, 300])
|
||||
# # Step down -60 pcm for 10 sec
|
||||
# simtime = 100
|
||||
# reactdata = np.array([0, -6e-4])
|
||||
# reacttime = np.array([0, 50])
|
||||
# # Pulse 600 pcm for 0.1 sec
|
||||
# simtime = 30
|
||||
# reactdata = np.array([0, 6e-3, 0])
|
||||
# reacttime = np.array([0, 10, 10.1])
|
||||
|
||||
react = pd.Series(reactdata, index=reacttime)
|
||||
|
||||
ts_max = 1e-1 # maximum timestep (s)
|
||||
|
||||
# NEUTRONICS DATA
|
||||
tau_l = 16.73 # ORNL-TM-0728 %16.44; % (s)
|
||||
tau_c = 8.46 # ORNL-TM-0728 %8.460; % (s)
|
||||
P = 8 # Thermal Power in MW ORNL-TM-1070, p.2
|
||||
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]
|
||||
913
dynamic_model/jitcdde_implementation/simulation_study.ipynb
Normal file
913
dynamic_model/jitcdde_implementation/simulation_study.ipynb
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -0,0 +1,130 @@
|
|||
5.513260943315429, 0.0
|
||||
5.733260943315429, 0.5438805479720131
|
||||
5.773917286277523, 0.5261459151940191
|
||||
5.8262010269349815, 0.4390448869628994
|
||||
5.713147466252472, 0.421784962376141
|
||||
5.669982588510621, 0.5182739070610018
|
||||
6.603394820412582, 0.4686584790291754
|
||||
5.520826466470723, 0.45791539634218953
|
||||
9.5174357001424, 0.597847487486479
|
||||
10.451227279324435, 0.5728047826277907
|
||||
13.510016661923082, 0.6140534014032215
|
||||
18.179651072711856, 0.6234193169865465
|
||||
21.49589912519245, 0.5979183796909477
|
||||
24.6216577575442, 0.5637065228431685
|
||||
25.06280205475214, 0.5883818670783858
|
||||
30.91771254525402, 0.5218523850150154
|
||||
37.33545748901405, 0.5121487472201802
|
||||
40.253221768691176, 0.4963292076800383
|
||||
44.45031065907256, 0.4854062004884305
|
||||
45.255405310479716, 0.41235400785247217
|
||||
45.666422707633714, 0.46472271602306603
|
||||
45.62913367712375, 0.44963308834336296
|
||||
45.591844646613765, 0.4345434606636599
|
||||
50.91942206171106, 0.36828798302397536
|
||||
51.059619130966084, 0.400601849742047
|
||||
50.970956793270844, 0.38914237106183347
|
||||
54.52759582301843, 0.3412655007619942
|
||||
54.710094149611734, 0.3638361409117705
|
||||
56.55478888382886, 0.3213941585637657
|
||||
59.95562886809431, 0.3038271412817262
|
||||
60.3367182896928, 0.3331276557405594
|
||||
64.53263819856217, 0.29324251772765536
|
||||
68.84436982367656, 0.2872729377206494
|
||||
72.64755303434828, 0.2723444301549607
|
||||
75.01240006504776, 0.24169765230436402
|
||||
79.06171005234437, 0.23554870372849834
|
||||
81.40357211094089, 0.2259890290009643
|
||||
84.55950301337911, 0.22108033389650394
|
||||
86.41346122078802, 0.2021101816533165
|
||||
89.56665708069916, 0.19609470600623324
|
||||
90.85502568012517, 0.17177902031329506
|
||||
92.96572170727659, 0.16137325124099466
|
||||
96.85808784925133, 0.15533997855662263
|
||||
102.28928136910001, 0.1310144846396707
|
||||
106.90621805908545, 0.11905538920457215
|
||||
111.57552228365365, 0.12828768943063884
|
||||
116.19602498482125, 0.11777163985392991
|
||||
119.89606858614523, 0.09943673654923757
|
||||
124.58349900697685, 0.09321283782101597
|
||||
129.21439597036806, 0.08690299969079807
|
||||
133.80345320338267, 0.07790655881955799
|
||||
138.47847038331395, 0.07520616016449289
|
||||
142.54957271008482, 0.08167438935846649
|
||||
146.1255876542533, 0.09291865510593478
|
||||
148.61104021595577, 0.07309147150862971
|
||||
148.57375118544576, 0.0580018438289267
|
||||
150.21582449263047, 0.03875618420329363
|
||||
148.85952075562676, 0.08817601432053601
|
||||
153.31976339228078, 0.02990150841898276
|
||||
155.66134809445202, 0.020229596791351723
|
||||
160.30786946980072, 0.020242437366596144
|
||||
164.95516127966408, 0.02056704710877666
|
||||
169.60137448120696, 0.020455180017246666
|
||||
174.2346443829033, 0.01510559092119168
|
||||
179.03435184544554, 0.011363697158993213
|
||||
182.64577793538137, 0.01721446194043086
|
||||
186.0929567110229, 0.02760337416894676
|
||||
188.2237100271376, -0.0014530939536102627
|
||||
190.19320919809076, -0.022506097563526173
|
||||
188.8209317854829, 0.02044971849257593
|
||||
194.8469374380138, -0.019576879123857416
|
||||
199.49810123162376, -0.017685406625561284
|
||||
204.14825905788172, -0.016201015582378964
|
||||
208.74101437656674, -0.023700964452326168
|
||||
213.7475662412897, -0.02518938118569658
|
||||
218.08944109640868, -0.01550777860607988
|
||||
222.73642473246616, -0.01530787653067367
|
||||
227.3792480221444, -0.016791527956722008
|
||||
231.93232932162823, -0.015144348841725552
|
||||
235.86265655006662, -0.0025288333227636572
|
||||
240.66617658164978, -0.00003190479247350275
|
||||
250.7053856489688, 0.021121451785532375
|
||||
255.36669936699911, 0.02712026036594839
|
||||
258.0834132569698, 0.015409578699529636
|
||||
277.73604977874646, 0.01972234270689366
|
||||
292.3163534732621, 0.022645063081741634
|
||||
294.25906573676093, 0.039590718869582986
|
||||
304.3974908717142, 0.03984547588243359
|
||||
310.15398495669154, 0.018957403958429486
|
||||
313.692040249907, 0.040480838959375154
|
||||
318.32210856817574, 0.03383567576960844
|
||||
322.9826903734172, 0.03953830364143507
|
||||
327.62686192349616, 0.03860024825752473
|
||||
331.69072216582913, 0.042137847282299745
|
||||
334.05735523494127, 0.055422262146337054
|
||||
338.23713197261327, 0.058860416052073705
|
||||
342.9016815156052, 0.06616865513362091
|
||||
347.54342619696297, 0.06424852687386218
|
||||
351.3479208583863, 0.06539021951384416
|
||||
354.7536762807045, 0.07610993121250054
|
||||
358.8182097279011, 0.057128687429884084
|
||||
363.58673880876404, 0.0609314467521056
|
||||
367.8335653616269, 0.04571639967088614
|
||||
372.8264674910463, 0.03938270155062251
|
||||
377.4888598173972, 0.045817986964748814
|
||||
382.1296799773374, 0.04352373570466683
|
||||
386.13178295940895, 0.0391636798586773
|
||||
396.8868908451113, 0.03256764328306527
|
||||
401.32100342476576, 0.03209297344234774
|
||||
404.43748808005296, 0.011221696990763363
|
||||
408.96545242416937, 0.020236624866202146
|
||||
413.7590985425543, 0.022807778851239746
|
||||
417.8236876159381, 0.022366949062521457
|
||||
2.6220604547792306, 0.407815914760956
|
||||
6.30638301247938, 0.4987384431102891
|
||||
6.135354926907169, 0.5695290778153992
|
||||
25.422103291127186, 0.5342332492030986
|
||||
242.4295348686549, 0.009907227576031352
|
||||
246.58640580564713, 0.012054333412219287
|
||||
262.84573494084214, 0.011662856787776343
|
||||
267.9960125177327, -0.004191483763834047
|
||||
271.109501075536, -0.004266447372769933
|
||||
273.60884332605724, 0.027134050004825827
|
||||
282.5867072466143, 0.02017631652359253
|
||||
285.04440304772675, 0.034723884040419706
|
||||
288.12457444600295, 0.021166576542868798
|
||||
298.17636147531545, 0.028789727737989823
|
||||
300.6007401169008, 0.029854951366201976
|
||||
307.859993891854, 0.027432978963915833
|
||||
311.67925094563867, 0.032959000062139254
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
0.00980428507854753, 1369.9142732450082
|
||||
0.019264978230174264, 2067.22782846775
|
||||
0.029303876215883918, 2039.5184019150697
|
||||
0.03793102111856011, 4804.630822893436
|
||||
0.048656339277885, 1625.352831522533
|
||||
0.058064034305344944, 1464.0854333815262
|
||||
0.06700127243550391, 1962.5843927648207
|
||||
0.07676600298554201, 2030.2817878395847
|
||||
0.09821029814291593, 1378.7319196167134
|
||||
0.0861795362532176, 1187.7342971366759
|
||||
0.11403203831462982, 1968.9782142642396
|
||||
0.10868014610040465, 1656.9407197593462
|
||||
0.12381217221653132, 1794.9618696891603
|
||||
0.13447077269937455, 1743.3347906268377
|
||||
0.14528786104271663, 1966.7314385889015
|
||||
0.15238934805451554, 2168.5313273257234
|
||||
0.17652706561196443, 1876.453368765888
|
||||
0.19989960500528878, 1986.5249977018766
|
||||
0.16337974987468623, 1653.7600268864312
|
||||
0.18172706054308724, 1681.7361855640502
|
||||
0.19854626334658287, 1642.7533742058556
|
||||
0.22611191846340442, 1651.2290656889418
|
||||
0.253075725336803, 1799.25569424391
|
||||
0.27802499119962776, 1612.055335062175
|
||||
0.21540731701972232, 1267.2345820061425
|
||||
0.23264150413579868, 1311.311691363264
|
||||
0.24522841744773802, 1181.8943954112917
|
||||
0.2824812815023956, 1089.6175671969104
|
||||
0.298028349639094, 1187.628461293744
|
||||
0.3088821449262897, 1272.3901834035314
|
||||
0.30176502198196464, 1363.5810654975674
|
||||
0.3239799137600242, 1402.9459839580222
|
||||
0.33585987532248646, 1583.0326438996349
|
||||
0.3457255573804927, 1394.462674479849
|
||||
0.3644698988321336, 1286.1266165612894
|
||||
0.3453271503113954, 1088.58639717065
|
||||
0.38178275978757703, 1069.4346156819972
|
||||
0.4097234451991418, 1009.250282914756
|
||||
0.43710699837741074, 947.0100615337634
|
||||
0.37246617256261483, 849.496690479939
|
||||
0.4802761039149642, 878.3099260611559
|
||||
0.5128010862199553, 985.2245352292032
|
||||
0.5283599560478416, 1061.666340626439
|
||||
0.5470150787841613, 903.414048632808
|
||||
0.5904636023512895, 833.1348401164653
|
||||
0.5467071333490047, 800.5074091159121
|
||||
0.5764409096989879, 764.2726639025842
|
||||
0.6151153279684792, 755.2891518695895
|
||||
0.6563492789655797, 737.86365993635
|
||||
0.708805079780283, 750.4503592681009
|
||||
0.7388927048738548, 785.6796358568238
|
||||
0.5215796029757551, 838.4367225027305
|
||||
0.44704439299380355, 739.2004568605148
|
||||
0.46879478132069613, 778.3495571358321
|
||||
0.5760855025459335, 669.4602513541843
|
||||
0.6364921327930934, 572.7849224061011
|
||||
0.7560761476991416, 684.1834552996089
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
0.001012546482414755, 134.2060286910005
|
||||
0.0011132426617324936, 143.82080354092912
|
||||
0.0012171849571675746, 155.65671283474325
|
||||
0.0013308697110987289, 169.43504439572365
|
||||
0.0014560427829475703, 183.54601665237402
|
||||
0.0015782059744373841, 198.80358119625987
|
||||
0.001871534470741697, 233.92011118672565
|
||||
0.002034274884900719, 252.81573195473226
|
||||
0.0021211515278003247, 273.90191218638824
|
||||
0.0022570283969370387, 284.1423242731431
|
||||
0.0024973778324842598, 307.7394907664924
|
||||
0.002908297790430945, 357.88557367110604
|
||||
0.003121638705989982, 396.06136951265853
|
||||
0.0034174773658752714, 416.19468070245193
|
||||
0.0036460894922395824, 463.7865790515815
|
||||
0.00393884167612836, 501.4733899920634
|
||||
0.0041931997874551175, 561.746348601407
|
||||
0.0045203225304304194, 586.8719071095313
|
||||
0.004958079644764076, 610.4472014282381
|
||||
0.005335607924116097, 699.3964468710742
|
||||
0.006144989212315739, 798.2975577754228
|
||||
0.006525150958807326, 857.9022612357079
|
||||
0.007010014919093191, 942.1441144468649
|
||||
0.007310646309918682, 1018.3472994175323
|
||||
0.007798159584608589, 1029.6530461008426
|
||||
0.008232582676437472, 1151.6864398143016
|
||||
0.009013906832566983, 1253.5660323061534
|
||||
0.009513970956008337, 1352.6806941377172
|
||||
0.010188757886983854, 1439.7278921090494
|
||||
0.011085957039626258, 1616.443075580971
|
||||
0.01197515754837652, 1753.3054220372223
|
||||
0.012243906691028855, 1894.0261410473
|
||||
0.01336319367977841, 1979.3694669463816
|
||||
0.014282109319031473, 2083.152972224435
|
||||
0.015405927444682475, 2356.0319903374298
|
||||
0.016775958040181612, 2534.675424619291
|
||||
0.018339987452572332, 2673.4182495614364
|
||||
0.019983507278069666, 2773.279205844723
|
||||
0.021914214848546852, 2842.5543966246278
|
||||
0.023952660522822772, 2882.599119701529
|
||||
0.02617736863019, 2847.99741029782
|
||||
0.028534164995570356, 2766.0641546721854
|
||||
0.030832950697709673, 2631.440336589292
|
||||
0.033881316462547564, 2532.1657736442116
|
||||
0.03702255376732541, 2425.416373908226
|
||||
0.0403738857221625, 2328.9540516307743
|
||||
0.041550115778601765, 2220.34000993003
|
||||
0.04492354754165701, 2202.0540260075104
|
||||
0.04908893248342715, 2112.631872989826
|
||||
0.053637185546995474, 2001.2138705135058
|
||||
0.058651714081757976, 1931.4774926714497
|
||||
0.062450283044435534, 1854.7007106486756
|
||||
0.06684889703727467, 1829.051669231524
|
||||
0.07111399870415022, 1720.3307859681242
|
||||
0.07716445354752915, 1688.605706681409
|
||||
0.08162561061852072, 1588.5928621384942
|
||||
0.08905926375078466, 1542.335686228447
|
||||
0.1005659188078652, 1434.7256672830863
|
||||
0.10947806301465986, 1395.2020193815188
|
||||
0.11815913647286004, 1330.0170650622952
|
||||
0.12911583823910475, 1277.60324216149
|
||||
0.14108456398790153, 1220.2408366625375
|
||||
0.15416086242553076, 1162.535065547475
|
||||
0.16844734728905553, 1105.180215995776
|
||||
0.18532466099779088, 1036.64501463938
|
||||
0.19513781284586154, 987.5676900653446
|
||||
0.2110724106802201, 968.2839424743033
|
||||
0.2291723459450119, 907.5951594708663
|
||||
0.25200861161285504, 876.667081093602
|
||||
0.2754419052331178, 883.5291729335507
|
||||
0.3010292675099178, 875.5781997955767
|
||||
0.328985644466576, 863.4463338765573
|
||||
0.37871153976404703, 841.4714574122125
|
||||
0.41704524827789236, 823.254376785456
|
||||
0.4725236626525845, 771.056295673432
|
||||
0.5088979386535595, 769.1909425997186
|
||||
0.5740465432161201, 734.6916098454396
|
||||
0.6248776475503488, 736.1882971284158
|
||||
0.6967510630207905, 706.5692587367264
|
||||
0.7613780449819101, 682.0724376479254
|
||||
0.8218563874037694, 639.0399631787868
|
||||
0.9073043870256282, 611.3443011978404
|
||||
0.9998230528166534, 598.6597775627835
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
0.019993805480514312, 25.308775091207167
|
||||
0.048394321133308146, 9.163552575218233
|
||||
0.10929330098096414, 11.10526859961891
|
||||
0.03901641663523976, -51.15105682170656
|
||||
0.059160513127038364, -33.119064147822115
|
||||
0.07142817637554838, -25.90874850449758
|
||||
0.11878790760220423, -32.519976958185026
|
||||
0.09837613665267822, -41.31220182266665
|
||||
0.07825990029076062, -66.3710618436406
|
||||
0.1295556125496917, -23.038270091428743
|
||||
0.13897412852708788, -27.791973767779865
|
||||
0.15991271928716466, -37.52536815207597
|
||||
0.1701622782807518, -45.667991078681894
|
||||
0.18988416278172682, -45.454411178234324
|
||||
0.20206367342945103, -52.91907301005864
|
||||
0.2204710648349623, -37.10972925867392
|
||||
0.21374062765105184, -32.13446966899545
|
||||
0.2619432144879074, -36.22527805267123
|
||||
0.27247662765494324, -32.16194260224805
|
||||
0.30168474312744514, -31.947476478147195
|
||||
0.2921818597555051, -42.339335036852134
|
||||
0.32348796232095317, -42.80283000753292
|
||||
0.25156456719644155, -55.655731651477794
|
||||
0.23269636531878946, -50.22318065669171
|
||||
0.24207867943241906, -44.577935985111424
|
||||
0.38408896687094735, -51.86180819166066
|
||||
0.4635567584132676, -50.527155369776835
|
||||
0.5212350917124007, -53.7042671668907
|
||||
0.680538741642197, -47.632748918068614
|
||||
0.6439485402261211, -54.406156300311665
|
||||
0.7414393849432612, -54.422108326071225
|
||||
0.2848795547115753, -70.13308125193859
|
||||
0.3034877737863367, -60.64871571422242
|
||||
0.3282267870403505, -59.97961685597386
|
||||
0.36328241809273903, -65.18883949012599
|
||||
0.4214896906002763, -68.1435091502592
|
||||
0.4022125897799953, -65.42634742921285
|
||||
0.452351534398999, -65.43964078401251
|
||||
0.47049317897737897, -62.95821455474649
|
||||
0.5250777590072128, -61.162725433141816
|
||||
0.563474544162202, -59.814779256458365
|
||||
0.6285960415631419, -64.12093998788828
|
||||
0.6852121271289356, -62.77476625851145
|
||||
0.7469054499126156, -61.88056659232234
|
||||
0.5587324644687622, -69.30534835974774
|
||||
0.5994487996584295, -71.57319468856625
|
||||
0.02966676725122912, 71.36581835369185
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
0.0019628411987970677, 82.25525692273187
|
||||
0.002171719578519575, 82.50454314712775
|
||||
0.002402840732712069, 82.83843560525798
|
||||
0.002658500426755307, 82.87016294290837
|
||||
0.0029436008673676475, 82.8312591836466
|
||||
0.003254297071748083, 82.83692477965559
|
||||
0.003600503607332731, 82.68735304501806
|
||||
0.003983471491528441, 82.29604921399665
|
||||
0.00440716223224566, 81.86848556851766
|
||||
0.004883342605473528, 81.29822084768824
|
||||
0.0053943611713853385, 80.5782405040687
|
||||
0.0059678501478973535, 79.53184269184698
|
||||
0.006294109397246235, 78.3676004826381
|
||||
0.006849210895890517, 77.75929173425875
|
||||
0.007576871109381092, 75.80453520902117
|
||||
0.008222011277774733, 73.38745231467122
|
||||
0.009089128712021406, 71.34482983500564
|
||||
0.009564510843225323, 68.76600161427035
|
||||
0.010425364941462623, 65.73377463025503
|
||||
0.010115399922725258, 67.8039582315159
|
||||
0.011137201532750562, 63.926136546653
|
||||
0.011874720012864244, 60.87242226518134
|
||||
0.012545219064727244, 57.801436609124806
|
||||
0.01319308117313912, 55.018848375479266
|
||||
0.013874102358884132, 51.93933255010886
|
||||
0.01452355931240102, 49.03341058645413
|
||||
0.015203300885146534, 46.02112650039049
|
||||
0.01584212661192992, 43.22232207194586
|
||||
0.016507509396629295, 40.184202868081194
|
||||
0.017200855361822916, 37.15937892951764
|
||||
0.01792315081697523, 34.001602337942956
|
||||
0.018347761672667835, 30.94107255430938
|
||||
0.019166032325108683, 29.035164191665913
|
||||
0.019921821658048993, 25.177227659165396
|
||||
0.020461054887351626, 22.26213488132683
|
||||
0.02151700439764901, 19.02750762744344
|
||||
0.022524057978346796, 16.015223541379783
|
||||
0.023578244370641127, 13.002939455316167
|
||||
0.024682006822937655, 10.123608022263653
|
||||
0.02595612301087304, 7.06625097239511
|
||||
0.027421552352070406, 3.9106398975171857
|
||||
0.02930810713559475, 0.019355446785780828
|
||||
0.031749325107228894, -3.340248629126421
|
||||
0.03447761914447795, -7.295153595478098
|
||||
0.03761516252168219, -10.391590667595366
|
||||
0.04076539472179276, -12.845403880599832
|
||||
0.04456727255567777, -16.657437688425816
|
||||
0.04907407762176817, -19.163947723659604
|
||||
0.05216612171646111, -21.589326424044543
|
||||
0.057007518559021864, -23.011013315902247
|
||||
0.06195228782220915, -25.172783165180547
|
||||
0.06847898090151577, -26.52063019898131
|
||||
0.07203806410396614, -28.2077857516597
|
||||
0.076539798363461, -28.276629038275686
|
||||
0.08235043556529992, -29.628328732704162
|
||||
0.09056290623067362, -30.633724416771884
|
||||
0.10042164566957087, -31.64437441654573
|
||||
0.11109739491981589, -32.73367967587559
|
||||
0.12291119404407796, -33.47207050862153
|
||||
0.13705783951278674, -34.10651653992238
|
||||
0.14960222308663856, -34.5995234482631
|
||||
0.19148426308872196, -35.601503653923146
|
||||
0.21251253684762633, -34.722866490332066
|
||||
0.231914965692944, -31.954234855287325
|
||||
0.2588296817302802, -30.930329459221312
|
||||
0.28634597145981516, -32.00505565117733
|
||||
0.350482704187831, -33.469451744244026
|
||||
0.3913706930270613, -32.86221176508714
|
||||
0.4321359709765366, -32.593139320950215
|
||||
0.47656311914323835, -31.613298972164515
|
||||
0.5252785088891576, -30.92119256153063
|
||||
0.582064805040771, -30.74158897130762
|
||||
0.6430221158464954, -30.450822190650314
|
||||
0.7114465841726614, -30.271369682987554
|
||||
0.787736472726047, -30.422746014872402
|
||||
0.8708856947883966, -30.355640177699172
|
||||
0.9635481278204985, -30.307797366956507
|
||||
|
|
|
@ -0,0 +1,135 @@
|
|||
14.144882260047262, 0.0
|
||||
14.244882260047262, 0.705704180060152
|
||||
16.847917749384678, 0.6772413133034384
|
||||
18.359052153838064, 0.6554634980474711
|
||||
20.572360967155817, 0.622119457558707
|
||||
25.180977868787224, 0.5173249135444423
|
||||
24.403904988624006, 0.5688418740539388
|
||||
24.866643503989735, 0.5472936418261445
|
||||
30.338081204216223, 0.3935902999319806
|
||||
29.001974963855645, 0.4929071561452952
|
||||
29.585441579619953, 0.473806058345945
|
||||
31.285199568759793, 0.36427962835840944
|
||||
38.109538945097, 0.2404664844414267
|
||||
40.48984737540934, 0.21975005143007165
|
||||
43.125096288112445, 0.20019562492571463
|
||||
48.21312551547507, 0.2025771942239163
|
||||
52.907714927631076, 0.12850225645196056
|
||||
52.82931810784865, 0.19709782119551844
|
||||
52.622128350709204, 0.16610911226227243
|
||||
58.084309366811, 0.1368399405041404
|
||||
61.83483970771729, 0.11930224383583732
|
||||
65.1080445608342, 0.12709489863881696
|
||||
68.9116588726836, 0.11269265427757569
|
||||
70.02967043010813, -0.00150120842943402
|
||||
73.228147027575, 0.048856854379606074
|
||||
80.78723765295845, 0.11273482330365059
|
||||
83.26934365327611, 0.12264174250258741
|
||||
87.01608263448753, 0.1021526393017882
|
||||
88.90585341454192, 0.07625501326925865
|
||||
95.11306100247103, 0.09375736060566597
|
||||
98.01873105331666, 0.11894818762942783
|
||||
102.50114505579526, 0.12836761104463257
|
||||
106.76773438146296, 0.14455620117286627
|
||||
110.14544319543887, 0.12349282832785136
|
||||
113.09971550052327, 0.14706088685641283
|
||||
116.57359536546628, 0.1140280634756432
|
||||
119.5118633543494, 0.08805823774612054
|
||||
121.18707344651156, 0.06202726993085572
|
||||
126.55956147451732, 0.07851883818750338
|
||||
131.33427076261157, 0.09188000473476376
|
||||
135.86588726886046, 0.0978047465302545
|
||||
139.90020601714204, 0.07159569704567803
|
||||
145.23389927348123, 0.07409701536125801
|
||||
148.95284037066145, 0.06698193035688538
|
||||
150.23311661923708, 0.046195922788824784
|
||||
155.79194290888006, 0.037784166083779214
|
||||
157.66341109076382, 0.059840314590675625
|
||||
162.77762224894445, 0.07175005784182009
|
||||
168.44045768332666, 0.09789413883060993
|
||||
167.56788860902617, 0.1092765428762199
|
||||
173.15610358923362, 0.07645906141339198
|
||||
172.06445871917072, 0.06076254938969183
|
||||
177.97275055534845, 0.08987899101956887
|
||||
179.70990089803558, 0.11979088787497938
|
||||
180.33086620977622, 0.1304633263090873
|
||||
185.34627133262978, 0.10482600252652052
|
||||
190.1584573960174, 0.1349837287327451
|
||||
193.489546183112, 0.1493616345229115
|
||||
197.86459537441254, 0.12521200259082554
|
||||
199.71314232445053, 0.10258324479003633
|
||||
202.69142690328334, 0.08492994809658128
|
||||
206.38217552664372, 0.11634881090851912
|
||||
208.22079109519018, 0.1431928383746094
|
||||
210.13361774521996, 0.12666811396235467
|
||||
213.84531260461978, 0.11931410199812931
|
||||
215.309567678269, 0.14193683008031943
|
||||
220.4780818680959, 0.11921480865184853
|
||||
221.03915231797686, 0.10234176948518015
|
||||
224.11340040561925, 0.13952728527582425
|
||||
227.39589801882926, 0.1636776431621496
|
||||
227.57207145907114, 0.19215771364376655
|
||||
230.38101707474374, 0.13981476315458008
|
||||
231.20121163672025, 0.11826337875706272
|
||||
233.5626398837947, 0.0846716253997577
|
||||
235.53693353071162, 0.06667695376662908
|
||||
239.96120041106002, 0.08619005182350414
|
||||
242.7138135702691, 0.0744789907852158
|
||||
247.21741752199603, 0.07214496421195049
|
||||
248.9849903899409, 0.053856019439372016
|
||||
249.3416857129252, 0.04033228669039257
|
||||
254.02159652140358, 0.06684581666617118
|
||||
259.05313854892546, 0.07196937243831925
|
||||
262.38357779801646, 0.06290392335498562
|
||||
265.50143390222945, 0.0409125861261016
|
||||
269.4444666340726, 0.060393458971193636
|
||||
276.6885968273559, 0.07330503271830402
|
||||
279.7896011047306, 0.04436668185490977
|
||||
282.4328657621591, 0.029785243543592466
|
||||
286.2887267299688, 0.03998607338246096
|
||||
291.7175746770227, 0.06073565087472044
|
||||
297.04147375995075, 0.038769160748765685
|
||||
299.31649016947875, 0.02238325916472461
|
||||
303.09941860632034, 0.05063030842905969
|
||||
301.686405991734, 0.03562714801689615
|
||||
306.913333826744, 0.06398016416047814
|
||||
310.09271728188753, 0.07586669598002449
|
||||
308.8777659982421, 0.10117546668759625
|
||||
313.9139875649986, 0.05804275228019096
|
||||
317.37401919783093, 0.046685239598745376
|
||||
319.98417811314135, 0.08986032362484442
|
||||
323.8444569741785, 0.10290411656379905
|
||||
327.00827396450563, 0.05711937669594158
|
||||
326.4734926101161, 0.04079460491646181
|
||||
332.4495765639772, 0.06945260371508066
|
||||
337.69878928372725, 0.0795403746718738
|
||||
342.2283100747117, 0.05753192566449228
|
||||
344.8383486344508, 0.06462500802385274
|
||||
345.5350832156021, 0.03638296826830334
|
||||
347.17962905787925, -0.0002630313969761433
|
||||
346.71830265736725, 0.02347868590368385
|
||||
350.74686691220865, -0.011669010057906659
|
||||
354.3324584128335, 0.005434341860002134
|
||||
355.38666432384275, 0.038907505975506074
|
||||
355.8976933010544, 0.05124071377266004
|
||||
359.7232427761762, 0.004075255625757279
|
||||
359.5999144171997, 0.043860014920613644
|
||||
364.7331627701027, -0.00279429849810664
|
||||
368.7699013658485, -0.025244518254843307
|
||||
369.7415737941146, -0.045939824724231415
|
||||
374.3131669446356, -0.0025958752513824956
|
||||
373.6116690847915, -0.031108487916209238
|
||||
379.5695220352171, 0.04326422482226466
|
||||
384.2082944019996, 0.0027913112272953677
|
||||
389.152807968673, 0.0022893515482811377
|
||||
391.2127543851949, 0.040223711955482244
|
||||
393.92326009917844, 0.055308695355275495
|
||||
398.13334301248017, 0.04585003855355674
|
||||
400.8026003340859, 0.08038753779703778
|
||||
403.6480387258606, 0.13232302238791593
|
||||
403.99852217304374, 0.15850586874526618
|
||||
406.5786361348773, 0.09443822926587708
|
||||
408.52483421689965, 0.07076769774085756
|
||||
413.56385685016716, 0.061884133406135855
|
||||
415.59557523657674, 0.034377838083267886
|
||||
419.7074230320048, 0.005208009705856664
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
0.009918784864358352, 261.34378444721744
|
||||
0.01967645863708487, 519.3342049870756
|
||||
0.02982393432648615, 714.7657193690483
|
||||
0.039033312022738104, 846.1218288394076
|
||||
0.0482519830537851, 929.1008114792409
|
||||
0.05679966232631227, 1002.8863219429713
|
||||
0.06631851786139123, 1055.886410853525
|
||||
0.07743260489938228, 1014.9671872643953
|
||||
0.08750780894883925, 1113.311961653536
|
||||
0.09572020783783183, 1043.115380150914
|
||||
0.10556063286183141, 993.7508191554624
|
||||
0.11641269343113833, 1019.9196120365378
|
||||
0.12733774669989803, 971.5581849803988
|
||||
0.13372306944512277, 996.5603070568746
|
||||
0.14627266016320203, 873.9155470766406
|
||||
0.15235994474644307, 926.4815043780458
|
||||
0.1639625147943324, 875.1074255285674
|
||||
0.17359422618298165, 890.3171086030155
|
||||
0.18379173679952537, 876.3009295085556
|
||||
0.1945882835998237, 807.2577672830989
|
||||
0.2043458694329739, 768.6058936595432
|
||||
0.221707894236911, 750.490848729564
|
||||
0.2309344923247928, 732.4461449173517
|
||||
0.24054506461696853, 714.8353056035828
|
||||
0.2505555905880137, 757.8325978220267
|
||||
0.2652740714455647, 727.6134830968087
|
||||
0.2740696344029934, 790.6910903048916
|
||||
0.2831568275499714, 771.6046973313571
|
||||
0.29494068510107657, 765.6187446905747
|
||||
0.3072149397935331, 753.4189744847761
|
||||
0.333317123408186, 754.1527892505492
|
||||
0.3415719611126194, 779.7600389186896
|
||||
0.3616370506973846, 773.8614758316396
|
||||
0.3736276739415433, 718.6030398583163
|
||||
0.3923631498431768, 713.0976804032259
|
||||
0.408691738865947, 713.4448672080683
|
||||
0.4256998586233979, 713.7922230482067
|
||||
0.4581179094258866, 708.5306175649198
|
||||
0.47718294922377746, 697.240519486721
|
||||
0.49704139992095114, 631.6399956697849
|
||||
0.517726280113843, 637.1984564884503
|
||||
0.5617143310684765, 632.563027105947
|
||||
0.5803388190784801, 665.0206243586902
|
||||
0.6194608391950579, 612.6837378094812
|
||||
0.6348022313189331, 597.836039462699
|
||||
0.6612201677385161, 623.3930871410265
|
||||
0.688737513281503, 603.3906545630468
|
||||
0.7115736469684459, 593.7181101332927
|
||||
0.7351669471981008, 629.3689393504163
|
||||
0.7472553478830859, 594.0650041994409
|
||||
0.7783531343992941, 575.0036038750759
|
||||
0.8240762239627131, 570.653938768563
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
0.008500286769132583, 246.6978635911188
|
||||
0.008157748647187052, 232.52069064350832
|
||||
0.009260936486249415, 258.5807149490975
|
||||
0.010394289576481447, 301.51038707149513
|
||||
0.00998288723298733, 288.8986906164535
|
||||
0.01144740244341164, 315.0674515092506
|
||||
0.01250441290813116, 351.1401602668182
|
||||
0.013275631869452378, 378.86923675367984
|
||||
0.014613592678825492, 405.5003195061049
|
||||
0.016003209507767666, 426.1699037269112
|
||||
0.017477216649633403, 479.9634137953203
|
||||
0.019371052243878417, 519.4427955416988
|
||||
0.020790594748786924, 549.2837247941826
|
||||
0.022534649470745703, 589.2538398391216
|
||||
0.024992573339066355, 628.5426722903865
|
||||
0.02815726541581768, 685.0957408934116
|
||||
0.030827508809053925, 728.9742740259012
|
||||
0.033867814722287254, 788.5624957068468
|
||||
0.0374673517094909, 817.3355835565307
|
||||
0.041089951996136395, 883.8053859237223
|
||||
0.045095556179039126, 917.0419694612061
|
||||
0.08001824831273394, 1046.9653637724084
|
||||
0.09678631873207459, 1021.9196823929299
|
||||
0.10766408262008176, 978.7467033060541
|
||||
0.11800216863798425, 949.6771276649899
|
||||
0.12710648919667708, 918.4421149048843
|
||||
0.14526469803613928, 845.2101379478864
|
||||
0.17058632602547757, 782.9404734357054
|
||||
0.18641060625712808, 710.3130286941757
|
||||
0.1980341073686025, 665.540684161705
|
||||
0.2267583542344992, 587.5400067124242
|
||||
0.2486159207066544, 592.1422495516676
|
||||
0.387516087406384, 762.1259310116416
|
||||
0.4324517168326061, 723.9562886611138
|
||||
0.5564248362521788, 681.5746903000544
|
||||
0.6085989542494443, 686.7889990731996
|
||||
0.6716752366931897, 682.8107668047389
|
||||
0.7369686985624208, 685.1903594410907
|
||||
0.8082944736325219, 679.7129073056877
|
||||
0.8919224029412279, 667.5462796061332
|
||||
0.049975591822325194, 970.0880879025327
|
||||
0.059140907240909715, 1025.2112159738485
|
||||
0.06869816508964256, 1050.6260372314
|
||||
0.20808289844242073, 625.5390132318905
|
||||
0.27046604384406475, 644.9337292955146
|
||||
0.296881074455635, 716.0626256354335
|
||||
0.33420217515473427, 756.789444493962
|
||||
0.49863224191127326, 706.9256643202084
|
||||
0.9672082399007181, 652.0896696002294
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
0.019808411332845752, 59.211969899430336
|
||||
0.029638929446992042, 42.80417047612349
|
||||
0.037622667333943635, 36.94774597369716
|
||||
0.04814911166006723, 21.120683592376395
|
||||
0.05683344293131828, 23.86138265700822
|
||||
0.0669740975018563, 10.54082565581264
|
||||
0.0775822584553188, 9.407834587523737
|
||||
0.08738546543801663, 3.848899360011245
|
||||
0.09575704275326744, -0.8745340741261742
|
||||
0.10495140877956755, -3.6595400520430417
|
||||
0.11394977205007528, -8.658309304451791
|
||||
0.12264256774561194, -9.224804838596242
|
||||
0.13195742300029412, -12.837400661087287
|
||||
0.14198778859205896, -15.896160067515297
|
||||
0.15145908521093576, -13.968809339616001
|
||||
0.15996994126317382, -18.962831422744216
|
||||
0.17217344103162158, -19.52932695688868
|
||||
0.1785744996622911, -22.30483859624448
|
||||
0.18871580988864725, -21.760496518742514
|
||||
0.1975849798056602, -22.32224488360646
|
||||
0.20504099824690625, -19.836310570363594
|
||||
0.21663630311943974, -21.50731415711371
|
||||
0.22680482991885606, -22.622898938040663
|
||||
0.23535682141312733, -20.4138828328293
|
||||
0.24431422478461484, -14.881848231239886
|
||||
0.2534188434470578, -16.826605246501174
|
||||
0.2628999491840438, -17.386771221604903
|
||||
0.27265860355720245, -20.716119277023694
|
||||
0.2855375065506379, -19.062521977635555
|
||||
0.29078046407972247, -21.004114213376454
|
||||
0.30448087885870184, -20.458189746114343
|
||||
0.31870953882578573, -23.512201983261846
|
||||
0.3366852909195053, -26.567796610169495
|
||||
0.3491729225691954, -30.174062873619803
|
||||
0.35560446002666796, -31.561818693297695
|
||||
0.3688981757085927, -32.39890287643293
|
||||
0.38266719860761306, -33.78982347563121
|
||||
0.21450738423087878, -28.151768760109718
|
||||
0.33330117106258506, -35.42759687741754
|
||||
0.30712881960627836, -25.721218088473165
|
||||
0.41582931824675756, -30.48104648709473
|
||||
0.42339276516381574, -34.08414797102469
|
||||
0.4515457315133186, -34.09522469934595
|
||||
0.46422981662107554, -32.99229903650047
|
||||
0.4815843210971156, -33.829383219635716
|
||||
0.5180586202393733, -39.380406498347284
|
||||
0.5322796077993664, -44.369681412194964
|
||||
0.5574058155050452, -42.99300232083833
|
||||
0.5837676584926128, -40.785568605387155
|
||||
0.5733555143681968, -36.905548913425704
|
||||
0.5950251920100945, -33.86577818411985
|
||||
0.663644408203626, -45.792249806596786
|
||||
0.7341692460152733, -47.47116534214781
|
||||
0.7689344208702331, -44.70989521063366
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
0.008002707022753274, 78.63465958875881
|
||||
0.008536520729825716, 77.71020039606671
|
||||
0.009263003408037993, 77.03773478088743
|
||||
0.010192235608424688, 75.80320451763237
|
||||
0.010638683761523066, 74.33927327586787
|
||||
0.011528622437057611, 73.64379722897057
|
||||
0.012686282840944026, 71.82406410593578
|
||||
0.013960540547819145, 69.84263019269869
|
||||
0.015363146556088773, 67.71104554570233
|
||||
0.016907155099793257, 65.39465999561764
|
||||
0.018574721015108146, 62.85877885132824
|
||||
0.02186014338532031, 58.51798686377343
|
||||
0.023850906398472208, 55.780603731834894
|
||||
0.026022862172302375, 53.068630724071
|
||||
0.028516104656692465, 50.33326786426285
|
||||
0.031003307813881685, 47.068673604058205
|
||||
0.0342469478470359, 43.94931768188506
|
||||
0.03688227783685953, 41.29882762530406
|
||||
0.0412840276176106, 37.35446812224418
|
||||
0.045271567022059304, 34.034942683300606
|
||||
0.049103156844356205, 30.705872258306513
|
||||
0.052453211529973655, 28.35200084633017
|
||||
0.05769132529446184, 24.335706521439903
|
||||
0.06022178561911132, 22.816128593987486
|
||||
0.06749139842577231, 19.341127110673213
|
||||
0.0712798217098369, 15.170261103173615
|
||||
0.07913412555157995, 12.258083166075508
|
||||
0.09664166785420591, 3.5849864915110174
|
||||
0.10796819434192814, -1.0882645021981716
|
||||
0.1141976318209941, -3.9301189130712118
|
||||
0.1267749937019914, -6.534350345290861
|
||||
0.14261594775394998, -10.742305494509637
|
||||
0.1598035731056198, -14.325908936864437
|
||||
0.21110865624422062, -13.789056692815535
|
||||
0.22620814486083277, -11.824407895811774
|
||||
0.23711101402763388, -10.085918620485003
|
||||
0.24085901318801684, -6.3443056024377285
|
||||
0.24710462255133808, -3.6313957713956313
|
||||
0.26015950566370194, -0.033565042360223174
|
||||
0.28686328631045366, -0.910273981434429
|
||||
0.2964987673667321, -4.2195276306655956
|
||||
0.31933165898824933, -7.21543656274568
|
||||
0.34691165560371984, -10.078136819343868
|
||||
0.3828558530175462, -11.954850879328987
|
||||
0.4142750321947221, -13.461419652716444
|
||||
0.45419384207271957, -13.826768878248359
|
||||
0.4993265535554681, -14.164196467902443
|
||||
0.5497299709846418, -14.40547016691741
|
||||
0.6039574874685586, -15.150951461031894
|
||||
0.6694646186438977, -15.910354080084602
|
||||
0.7258696016658309, -16.965025890507164
|
||||
0.7980527549804437, -17.742318129699655
|
||||
0.8399877353186979, -18.933650698959227
|
||||
0.9098119581183669, -19.29472363791524
|
||||
0.9789667482887976, -20.30149270832534
|
||||
0.1739189634250042, -15.855390908409234
|
||||
0.19308776967885272, -16.270539595038684
|
||||
|
|
|
@ -0,0 +1,163 @@
|
|||
0.15032812166700694, 0.0
|
||||
0.16032812166700694, 0.01961500190165455
|
||||
0.34845369405091375, 0.059700796018409275
|
||||
0.5006140834790749, 0.16329662992247496
|
||||
0.4093178498221768, 0.1244150593773472
|
||||
0.4093178498221768, 0.0906118418293842
|
||||
0.8150788882972755, 0.3331118754930362
|
||||
0.8657990181066602, 0.2465215856809544
|
||||
1.6387737964017148, 0.4787787668616006
|
||||
1.9743961410832611, 0.5382101476752852
|
||||
1.9309217441037845, 0.5140344165406052
|
||||
1.6266009652474658, 0.4332560511816812
|
||||
3.1482048595290735, 0.5310409635141923
|
||||
4.5632964812109655, 0.5243365821830758
|
||||
5.741954267012183, 0.5142249159966201
|
||||
6.64028579690536, 0.4666902214862809
|
||||
7.827136834445014, 0.4271801731487652
|
||||
7.408695763517571, 0.45929471644382436
|
||||
9.064200800495968, 0.4053522843185473
|
||||
9.223554226515276, 0.3821476500337533
|
||||
10.756224330937108, 0.45357383559532427
|
||||
11.378391256598924, 0.5035393820175469
|
||||
11.109236434410441, 0.5544580451840877
|
||||
12.379268484837489, 0.47750120258040196
|
||||
13.053846211302336, 0.43630691071396543
|
||||
12.998834378201387, 0.3936147717956584
|
||||
12.886469782931364, 0.35960925671845567
|
||||
14.431482967894226, 0.42918831695139126
|
||||
14.56632048221826, 0.39711288667951217
|
||||
15.303646254990142, 0.48294004119639067
|
||||
15.608757477427915, 0.44197323562346624
|
||||
16.00575776620866, 0.410269994421816
|
||||
16.733084427675273, 0.44898104039258446
|
||||
17.11886953810236, 0.48359181120097405
|
||||
17.686043209465353, 0.5001006849190412
|
||||
18.51640419177331, 0.46231802969871216
|
||||
18.242515490802624, 0.5083043535996394
|
||||
18.944243404400723, 0.4210685904078364
|
||||
19.003317437943423, 0.3841744147611368
|
||||
20.33062421957061, 0.4415713272112005
|
||||
21.666124252936243, 0.4089112997950468
|
||||
23.016004279148923, 0.42211523724997835
|
||||
23.320325058005245, 0.38941137226931244
|
||||
24.798454555307373, 0.3807106130028681
|
||||
24.872026611734178, 0.3372287101873339
|
||||
24.70518221269687, 0.2986669272883944
|
||||
26.10413561125759, 0.3271958873252696
|
||||
26.276584052609508, 0.3181965622240903
|
||||
27.483723142072925, 0.2106604302132551
|
||||
27.311274700721007, 0.3205393075302858
|
||||
27.92667894240823, 0.27096422837559575
|
||||
28.00783115010325, 0.24395090747978188
|
||||
28.81855761717408, 0.21201289022196623
|
||||
29.99944158061851, 0.19094820919327082
|
||||
30.171890021970427, 0.1574215794511613
|
||||
29.80670508734284, 0.12709955342025858
|
||||
31.323627123488194, 0.18468726248039657
|
||||
31.7543580720233, 0.14602198042364534
|
||||
32.68253644753508, 0.11386374202825045
|
||||
33.38551744669318, 0.13792462829757635
|
||||
34.32497359224493, 0.1397554295105783
|
||||
35.30882476906514, 0.11209951227163062
|
||||
35.40620741829916, 0.19032173464032343
|
||||
35.467071574070424, 0.15573182458465462
|
||||
37.833613160235466, 0.0985808349900239
|
||||
38.71721749225595, 0.14469419155413532
|
||||
40.069338122005256, 0.14141309693923554
|
||||
41.37089468388306, 0.180812792744397
|
||||
41.59696154817633, 0.13816033948211914
|
||||
42.70990611085087, 0.14342676069908045
|
||||
44.03877351185681, 0.1330589063273624
|
||||
44.04891753781869, 0.10939752852878515
|
||||
45.49951325036715, 0.15208959457334248
|
||||
45.82802362959411, 0.19637027472789126
|
||||
46.83127894450508, 0.13142168302387236
|
||||
47.5060015856265, 0.11557147033758275
|
||||
47.5384624687045, 0.20543796636851885
|
||||
48.18051964135041, 0.16021549777721633
|
||||
48.91804999951983, 0.12484093357074655
|
||||
49.602771751946555, 0.14255275269418322
|
||||
50.08664179032811, 0.10901660286421655
|
||||
50.55732459495922, 0.07380167503655888
|
||||
51.94386802929126, 0.11136586932995929
|
||||
53.12235860587332, 0.10601932571840389
|
||||
53.30026921505087, 0.19275360498409322
|
||||
53.513293760250285, 0.14126230433403286
|
||||
54.60182577692867, 0.11573889011649197
|
||||
55.92612279261112, 0.10730938328306117
|
||||
56.50578141900413, 0.0746650249243146
|
||||
56.58693362669914, 0.12399967900390818
|
||||
57.80421674212443, 0.05677133942110668
|
||||
58.19088314349481, 0.009692088250138564
|
||||
58.93629003946993, -0.032494483170965704
|
||||
59.346108688329785, 0.048368095093141994
|
||||
59.3866847921773, 0.005281026825523449
|
||||
60.50832423424773, 0.10831250085857702
|
||||
60.7471776858879, 0.04817956641590926
|
||||
60.7797976909418, 0.0038380559154918004
|
||||
61.09088115377269, -0.030355667766003736
|
||||
61.63865855571408, 0.10490442461567073
|
||||
61.64735343510997, 0.06073563657823433
|
||||
62.04441959418917, 0.00841243835080041
|
||||
61.699522711485336, 0.040307966878432966
|
||||
63.39435535680824, -0.004942120896467284
|
||||
64.11669918354411, -0.04329417299809357
|
||||
63.95149647502212, -0.07442883711537074
|
||||
64.77316257793419, -0.0006169107352662628
|
||||
65.48324439526561, -0.012929343702744012
|
||||
66.76198837387167, 0.015513488005437504
|
||||
66.98253143243107, 0.04497002129291228
|
||||
66.93384010781406, 0.08382700423488232
|
||||
68.17546888554787, 0.0022387588875019127
|
||||
68.51630815786694, -0.034823586511212756
|
||||
69.29232614395056, 0.015797901390544933
|
||||
69.86343480560427, 0.06915606094001792
|
||||
69.85531958483475, 0.117331206212969
|
||||
70.73550891444998, 0.006070264823256677
|
||||
71.93230890052916, -0.0053623521524317486
|
||||
72.69087319488423, -0.04507895155993613
|
||||
72.79708711377918, -0.06615446007646697
|
||||
73.71317068910568, 0.0063269598038304675
|
||||
73.8723538657382, -0.037967534971397265
|
||||
74.90236265571343, 0.05973455017830975
|
||||
76.33300473477647, 0.06700237096168316
|
||||
77.64593152355658, 0.06162314118014578
|
||||
78.87082265845328, 0.08817377765854673
|
||||
78.68062217166809, 0.12890903777545804
|
||||
79.82351576337294, 0.06791137729469554
|
||||
80.864969095459, 0.12358867105545279
|
||||
80.65870723423419, 0.08851570129226172
|
||||
81.29778086983245, 0.13213938535331793
|
||||
81.71706727625673, 0.07809038265644164
|
||||
82.28378019332695, 0.05620470494269081
|
||||
83.31644203624606, 0.05331403648705435
|
||||
84.16515887505645, 0.011908010750497411
|
||||
84.66559748917572, -0.016304442838810163
|
||||
85.43654346227842, -0.046285286466138054
|
||||
85.74955912053065, -0.08244384190424947
|
||||
86.75120922693773, -0.1187791182675535
|
||||
86.61904706012012, -0.1567145022925589
|
||||
87.32333229118763, -0.06753133670379263
|
||||
87.99283800467151, -0.036231252960286175
|
||||
88.79928806864078, -0.0010532121211976886
|
||||
89.54721490590688, -0.03807239244931049
|
||||
90.1568968765387, 0.0005518801049846367
|
||||
90.30567592397958, -0.0398560727702999
|
||||
91.35051059805295, 0.013192373342836738
|
||||
92.76922508614979, 0.01452253026219541
|
||||
93.44017994619969, 0.04027424455074691
|
||||
94.10533821998564, 0.0008207217782598697
|
||||
94.70818319143436, -0.022449740405715346
|
||||
95.46391312559422, 0.02289651773556378
|
||||
96.98334330002686, 0.007185598363625534
|
||||
97.19549835728668, -0.020632793778543546
|
||||
97.70067085018817, 0.030265818418672596
|
||||
98.38843581040348, -0.00038395209635599947
|
||||
98.63001969023404, -0.04121865493133292
|
||||
98.52233695310025, -0.07313875312396911
|
||||
99.97346656175196, -0.018583509637895235
|
||||
100.44970188585694, -0.030885508509012283
|
||||
101.5127958066617, -0.013302992680489956
|
||||
102.56703675935427, 0.015422667828318692
|
||||
102.84369201286003, 0.057977111134029924
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
0.00994201972979121, 208.68403805739553
|
||||
0.01965283909830782, 301.42022548252976
|
||||
0.029788545740700834, 449.5654809856659
|
||||
0.03984045719914174, 501.33754456528453
|
||||
0.04946032472848147, 622.5278693519462
|
||||
0.05986250453120402, 612.7634650294007
|
||||
0.06951949999667396, 655.196461586201
|
||||
0.07811613301846505, 780.2161334399888
|
||||
0.08993373307826741, 700.87582401045
|
||||
0.10021577036628318, 820.8544884390259
|
||||
0.1183050981190574, 794.6073790233836
|
||||
0.10619783771751122, 774.7406272652577
|
||||
0.1264096274608344, 743.7990622582565
|
||||
0.1362198262847902, 756.4693949788527
|
||||
0.1455489777525337, 702.2513660995241
|
||||
0.15424543732708648, 679.4979531623308
|
||||
0.16483591710962825, 679.6817406116235
|
||||
0.17471319287762252, 708.6264890252398
|
||||
0.18512541109532454, 641.6504827900333
|
||||
0.19784326305975242, 652.5586934838628
|
||||
0.20619364824369257, 605.7267684651924
|
||||
0.21312778271818372, 571.6403499546706
|
||||
0.2258947120162923, 591.0617481005786
|
||||
0.23349982337407454, 567.129930702057
|
||||
0.2516254594977962, 581.5942523676994
|
||||
0.24335076676511905, 522.0810774443811
|
||||
0.2600733208957837, 535.3783554098208
|
||||
0.27797517410084666, 577.024799650656
|
||||
0.27117773010846835, 616.5451026959714
|
||||
0.2922175787282973, 621.8688253744132
|
||||
0.30455122760853576, 577.2394081400793
|
||||
0.32550878062641114, 617.0038019367776
|
||||
0.3450201136039855, 648.636557291633
|
||||
0.32830508024154526, 692.9912510897346
|
||||
0.3097390039861339, 659.1954027639667
|
||||
0.34797144046073747, 716.5355285364053
|
||||
0.3596669491306908, 670.6285479120788
|
||||
0.368795859966534, 722.6737837361204
|
||||
0.39086652096611296, 728.8646227581253
|
||||
0.39406746702692075, 682.0985638062803
|
||||
0.4006061680881932, 638.3547293636794
|
||||
0.42110126224573224, 665.517038428563
|
||||
0.44260486689788164, 665.6520383319795
|
||||
0.4729598690037959, 644.1062415858806
|
||||
0.4768244838184285, 597.8000807547629
|
||||
0.5053510001367622, 597.9415572781495
|
||||
0.5224589344279743, 623.3421205120959
|
||||
0.5630051026830666, 633.9605152727336
|
||||
0.5490788037627518, 593.203559865994
|
||||
0.6015957093637104, 603.3493466526487
|
||||
0.6375983232796368, 608.5179839593013
|
||||
0.6063907843659734, 511.1489637498726
|
||||
0.6480841266691797, 532.9346349819548
|
||||
0.7042135049618448, 546.5453009283129
|
||||
0.7779854721300917, 551.3205007814964
|
||||
0.778140249852636, 603.981958184248
|
||||
0.7161055857001525, 584.0767845253869
|
||||
0.7103144668603236, 634.560865637873
|
||||
0.7465597885142636, 624.2488747607023
|
||||
0.6645214999781779, 569.5507219750505
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
0.005882980963756872, 102.44943079341334
|
||||
0.006321892776496878, 112.73061748287437
|
||||
0.006934247426913607, 120.68642563907385
|
||||
0.007352641319997127, 132.2082740856117
|
||||
0.008044640915465882, 139.78439227929272
|
||||
0.008547220691988409, 152.7071501737727
|
||||
0.009220092624345937, 163.0911842890766
|
||||
0.010037549208567753, 177.07662197057607
|
||||
0.01160166848239897, 201.57720610012908
|
||||
0.013861774208748508, 237.98401287222893
|
||||
0.01528737515766478, 259.01825940426863
|
||||
0.01698508762984476, 286.31757483116473
|
||||
0.018517285429921745, 301.1669394814342
|
||||
0.02025183342722396, 324.73178942493684
|
||||
0.022833702085805166, 365.5721032018692
|
||||
0.025163344126252436, 392.5445073744971
|
||||
0.030274206834207007, 450.67622425193457
|
||||
0.03315742752544999, 479.50738814243505
|
||||
0.036703317006045115, 501.896308237242
|
||||
0.04369113241027732, 577.3935723346373
|
||||
0.048415956269220725, 597.2623442763154
|
||||
0.052468686844114716, 635.8842510471892
|
||||
0.05736068595100212, 653.2095800775558
|
||||
0.06292959804963047, 681.3020027381964
|
||||
0.07349813397858602, 718.877339756025
|
||||
0.0973275883090837, 768.6148255416629
|
||||
0.10733715131015999, 768.2655929935821
|
||||
0.11905530680082556, 748.0820271116239
|
||||
0.13055041932087447, 701.8489870456316
|
||||
0.1551521110519069, 637.4183385448554
|
||||
0.17050056588571114, 594.2548252092799
|
||||
0.1850474371062606, 549.5326652444342
|
||||
0.2030194686272644, 500.30287347427185
|
||||
0.24998693871450442, 441.57290843531365
|
||||
0.6254875026749902, 649.599015294992
|
||||
0.6903513101203981, 658.419203210231
|
||||
0.7662048777360122, 652.1315545769653
|
||||
0.838583336292554, 658.8078992230292
|
||||
0.9414346269922733, 634.5336652818113
|
||||
0.2124546921856066, 460.2303629089681
|
||||
0.23170676607110727, 430.3959833735598
|
||||
0.04062562526619677, 542.3402107502363
|
||||
0.08492105123042716, 741.1244647274418
|
||||
0.2655450337823016, 506.6532911310271
|
||||
0.3005770942540235, 585.7028989406101
|
||||
0.34661410715050983, 656.8244645512272
|
||||
0.4122788080121125, 688.9858864038532
|
||||
0.48135239198432217, 652.0048126280743
|
||||
0.5414893850236479, 643.8473052248758
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
0.010054690066605167, 74.19089337628664
|
||||
0.019917353283478035, 55.82069615777481
|
||||
0.030273328716680713, 51.57491946255991
|
||||
0.039118642784318654, 43.516853932584276
|
||||
0.048022267233644146, 31.15467117152511
|
||||
0.05945827817104874, 36.99579633849297
|
||||
0.06816868497421112, 25.63636363636364
|
||||
0.07815513254092053, 22.619627563447793
|
||||
0.08733689170669556, 16.81881040308008
|
||||
0.09759733500539242, 11.270802231476381
|
||||
0.10721526245220483, 8.501571462245622
|
||||
0.11879168806378043, 6.744637385086818
|
||||
0.12397667582861294, 1.1881433173568041
|
||||
0.13503546827474783, -1.0765302113616713
|
||||
0.15350045099443405, -4.347136010057355
|
||||
0.1409294602049498, -6.127406301563596
|
||||
0.16435993077018, -8.889211911683816
|
||||
0.17598767083595032, -11.156006914433888
|
||||
0.179020933323283, -13.68197532804274
|
||||
0.19333073301628728, -12.661192739844424
|
||||
0.20350056436029912, -16.19415416044629
|
||||
0.2216529344645187, -13.402647913883868
|
||||
0.21238290245602634, -11.132670700086436
|
||||
0.22935944668438388, -11.1231240669443
|
||||
0.24769298834805542, -8.838296534925732
|
||||
0.23331260659858966, -4.547968885047524
|
||||
0.2585042255225783, -3.5240040858018347
|
||||
0.2674919972283277, -5.795042036615058
|
||||
0.2744373098983422, -8.825567690736221
|
||||
0.29637409047494867, -8.816021057594085
|
||||
0.317341249989578, -8.30191718393965
|
||||
0.3397917435480417, -8.293431287813306
|
||||
0.3228108337661253, -5.771705822267606
|
||||
0.28156295457299263, -1.238115816767504
|
||||
0.3093101473487335, -1.2264477095937707
|
||||
0.3486142874973326, -13.346428852046827
|
||||
0.37648030590981413, -14.095309185196825
|
||||
0.3607350395780945, -17.134320735444334
|
||||
0.38956991415272646, -17.630392079830287
|
||||
0.3996849265219071, -19.144063801367167
|
||||
0.420709665993252, -20.40174432309263
|
||||
0.45823721579410204, -21.149563919226836
|
||||
0.4353370571885235, -23.93682721772609
|
||||
0.4661352335948131, -23.422723344071656
|
||||
0.4948657968665293, -23.668107173725147
|
||||
0.5208973626374446, -22.650506796574206
|
||||
0.5577485532245389, -25.928537754380443
|
||||
0.5972068029850763, -25.920051858254098
|
||||
0.5298753690076262, -28.715801052879698
|
||||
0.5722302503726073, -28.70625441973756
|
||||
0.6127130163236779, -28.697768523611217
|
||||
0.6286218417070527, -30.96986721144023
|
||||
0.6905706568533473, -36.01437887954742
|
||||
0.7268969408421965, -36.766441423744794
|
||||
0.7850004789470142, -36.50408580183861
|
||||
0.7085010218073678, -39.550522511196675
|
||||
0.7586243437101259, -39.79484560383435
|
||||
0.6673673779709912, -28.93997014221732
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
0.0016230069659065394, 68.51258844318353
|
||||
0.0017894805979403084, 69.92682269516624
|
||||
0.001981075023711212, 71.01637522232203
|
||||
0.002175347005942156, 72.38120358887329
|
||||
0.002398406294038447, 73.39796975495648
|
||||
0.002644335779616519, 74.40304568321909
|
||||
0.0029262370966230138, 75.22939189524344
|
||||
0.003214335204307316, 75.99234897820367
|
||||
0.003543824831367994, 76.5882665827462
|
||||
0.003931069819940169, 76.90394392211303
|
||||
0.004307456671219626, 77.34756299247002
|
||||
0.0047489024341077594, 77.66291488931877
|
||||
0.005223878242051486, 77.66582507815188
|
||||
0.00577190191748804, 77.68572631634643
|
||||
0.006363242993236788, 77.5919198894751
|
||||
0.007025366461365055, 77.14722489219673
|
||||
0.007733565519073517, 76.83148538252429
|
||||
0.008525611715058768, 76.29578796603526
|
||||
0.009377634031063944, 75.2707365758459
|
||||
0.010288516897658091, 73.99209538653604
|
||||
0.011421290798118607, 73.1596126096371
|
||||
0.012590459146931889, 72.00199454109352
|
||||
0.013879172414632662, 70.70409361870307
|
||||
0.015299575242855804, 69.20745865336286
|
||||
0.01686517300231551, 67.57054083417576
|
||||
0.018590587306550357, 65.64136706947431
|
||||
0.02042788311044648, 63.81958355825158
|
||||
0.02340216174780462, 60.29901497982623
|
||||
0.02599323000131415, 58.40157716233294
|
||||
0.029673234651124772, 54.80018070677989
|
||||
0.033641720805786826, 51.505073783821054
|
||||
0.03708130276438172, 48.75758337167943
|
||||
0.039877385752041805, 44.71497733027724
|
||||
0.04045367862495193, 46.62704886861669
|
||||
0.044456247913371987, 43.29346106405589
|
||||
0.04852725232009909, 40.94229816646239
|
||||
0.05236066361676323, 37.72630384552487
|
||||
0.06213501092232448, 30.810476229974682
|
||||
0.07263089059382863, 25.680150858458063
|
||||
0.07973785077938983, 22.227140505080826
|
||||
0.08852814132126907, 15.888442297686993
|
||||
0.1313210683839263, -0.3825230517447551
|
||||
0.13980321321263592, -2.6727153403205506
|
||||
0.15951047363996412, -9.043480060902112
|
||||
0.1685232405598339, -11.013611187920986
|
||||
0.1820479109420658, -12.691296097477064
|
||||
0.24654815028140795, 3.9998440269486224
|
||||
0.25139763190300163, 7.696053936914154
|
||||
0.2544479452382793, 10.995146261937748
|
||||
0.26054370657705644, 14.317306851665478
|
||||
0.2794090508713625, 17.55362946234243
|
||||
0.3022619859454255, 16.40709237848432
|
||||
0.31833647359253875, 12.478621978091041
|
||||
0.3351128860085122, 8.811987721826625
|
||||
0.3480688750116132, 5.620042950459009
|
||||
0.36580565403678955, 3.138511634046452
|
||||
0.4011168378550611, 0.07666928367034131
|
||||
0.42454791748383025, -1.7066290751404267
|
||||
0.5049561561566234, -4.627405098940912
|
||||
0.5319374585929404, -6.249790323718457
|
||||
0.5788187417614254, -7.280336538037574
|
||||
0.6271767836304454, -9.510572481724125
|
||||
0.6899190580746317, -11.296871334908843
|
||||
0.7402619324022981, -13.263357472872798
|
||||
0.8062864075607442, -14.459628620491046
|
||||
0.8504422500478985, -16.69777027980352
|
||||
0.9206217516821765, -17.6998197353859
|
||||
0.9903490771618708, -19.776998714737942
|
||||
0.09968155273417816, 11.622847241205989
|
||||
0.11339436399895483, 5.9820239680426255
|
||||
0.12093785444556582, 2.5991172917346432
|
||||
0.14863231475504507, -6.801196638477592
|
||||
0.19875101295700137, -11.52436927363955
|
||||
0.2162258857198929, -8.347214751192652
|
||||
0.23224343502493247, -3.4809878219768677
|
||||
0.23837870899200597, -0.48418885195015093
|
||||
|
|
|
@ -0,0 +1,101 @@
|
|||
Frequency,Gain,Phase Shift
|
||||
0.01,1146.074233563938,81.81264356673023
|
||||
0.010722672220103232,1231.7860778927097,71.94815203271283
|
||||
0.011497569953977356,1285.4721085546023,61.251712426137
|
||||
0.012328467394420659,1299.0630265377479,51.73447651413698
|
||||
0.013219411484660288,1403.2985847353125,48.80791833965525
|
||||
0.014174741629268055,1650.6130405060749,70.080671242512
|
||||
0.01519911082952934,1787.6842596623862,66.99409837883644
|
||||
0.016297508346206444,1999.370734972236,63.77706778099183
|
||||
0.01747528400007684,2248.4667569692456,60.67635715121203
|
||||
0.01873817422860384,2544.0651694823705,57.04134023011015
|
||||
0.02009233002565047,2795.629651086688,51.6546002549819
|
||||
0.021544346900318846,2823.865954728686,44.08042934771636
|
||||
0.023101297000831605,2893.9757426458546,35.181469260339874
|
||||
0.024770763559917114,2867.5832648363858,26.753054907599473
|
||||
0.026560877829466867,2849.0272895421867,21.442531155055946
|
||||
0.02848035868435802,2977.348689337829,21.507181354515957
|
||||
0.030538555088334154,3071.3537066955246,15.625091748574468
|
||||
0.03274549162877728,3144.697047597304,8.986894863683382
|
||||
0.03511191734215131,2966.160795432347,1.8508235003722213
|
||||
0.037649358067924674,2764.2308054746422,-4.3142986373377985
|
||||
0.040370172585965536,2589.4539448088526,-6.892860712023916
|
||||
0.04328761281083057,2624.4669288036457,-7.068562929882581
|
||||
0.046415888336127795,2623.3660431453973,-12.04723830316807
|
||||
0.049770235643321115,2415.464954399881,-16.197226863128606
|
||||
0.0533669923120631,2244.3858344407795,-17.061985110318986
|
||||
0.05722367659350217,2282.81831667776,-18.786808649777548
|
||||
0.06135907273413173,2179.1035132391876,-22.113224026737406
|
||||
0.06579332246575682,2019.8669703962346,-22.542684590638217
|
||||
0.07054802310718646,2051.303054203294,-24.575992180361975
|
||||
0.07564633275546291,1926.8504040352047,-26.308688707358897
|
||||
0.08111308307896872,1869.3117062105907,-26.95513647756953
|
||||
0.08697490026177834,1813.6427846757601,-28.70377752136994
|
||||
0.093260334688322,1734.2493475569274,-29.281961183428713
|
||||
0.1,1682.3449186421244,-30.481354700960082
|
||||
0.10722672220103231,1627.0179180106982,-31.393993415349964
|
||||
0.11497569953977356,1534.391654281848,-31.42295851502176
|
||||
0.12328467394420659,1540.3625823906716,-32.704891624857176
|
||||
0.13219411484660293,1450.0156854190075,-33.326325371583216
|
||||
0.14174741629268056,1362.084133410815,-32.56733012892254
|
||||
0.1519911082952934,1325.4959091407802,-33.353359780442304
|
||||
0.16297508346206444,1286.7560725562544,-33.522646168925164
|
||||
0.17475284000076838,1241.086831021606,-33.542210636396305
|
||||
0.1873817422860384,1195.0155337642873,-32.960081781749395
|
||||
0.20092330025650468,1151.3146989868608,-32.00351876729402
|
||||
0.21544346900318845,1111.537609743689,-30.613123713900094
|
||||
0.23101297000831605,1107.4591249917323,-30.310596164852114
|
||||
0.24770763559917114,1128.8883358689243,-29.66253833256429
|
||||
0.26560877829466867,1104.7437083144468,-30.132158755863067
|
||||
0.2848035868435802,1109.5071648297157,-32.309726162321475
|
||||
0.30538555088334157,1045.117380203344,-33.4198490926963
|
||||
0.32745491628777285,1010.8540829862422,-34.709301665583695
|
||||
0.3511191734215131,969.5472529948222,-34.803528865691504
|
||||
0.37649358067924676,927.0353802832942,-34.73010403056957
|
||||
0.4037017258596556,884.4219213238499,-33.77039140790306
|
||||
0.43287612810830595,859.0220445517493,-33.48266650996903
|
||||
0.464158883361278,842.6835747261783,-32.17915749852805
|
||||
0.49770235643321115,828.7763475711106,-31.65303136984643
|
||||
0.533669923120631,812.5149580534621,-31.188574932840375
|
||||
0.5722367659350217,802.6861869296548,-31.147413991779178
|
||||
0.6135907273413173,795.2916868045367,-31.640543122519134
|
||||
0.6579332246575682,763.1680118487856,-31.665309458420538
|
||||
0.7054802310718645,742.9889989486951,-31.12420062315484
|
||||
0.7564633275546291,725.1603610567051,-30.772930777966426
|
||||
0.8111308307896873,717.3702244196443,-30.67308633654604
|
||||
0.8697490026177834,703.8588361705903,-30.896427193138695
|
||||
0.9326033468832199,694.4620857398462,-30.991856726985635
|
||||
1.0,686.3687697706915,-30.939720937065626
|
||||
1.072267222010323,666.6880037812233,-31.33255702901791
|
||||
1.1497569953977356,659.3889551603706,-31.62058718492888
|
||||
1.232846739442066,651.7028406006291,-31.786611730421974
|
||||
1.3219411484660286,639.8065750738759,-32.56890888586609
|
||||
1.4174741629268048,634.8701233357842,-33.29826771286554
|
||||
1.5199110829529332,622.0117753697469,-33.09210630957695
|
||||
1.629750834620645,611.6047712747283,-34.549802458224384
|
||||
1.7475284000076847,599.5702993400071,-35.04410066489372
|
||||
1.873817422860385,587.1152225345501,-35.42940386963194
|
||||
2.0092330025650478,578.3133091509237,-36.83858275371932
|
||||
2.1544346900318843,561.283355621315,-38.26640464237512
|
||||
2.31012970008316,554.6203559741931,-39.708204582777824
|
||||
2.4770763559917115,539.84198871137,-41.158546011694355
|
||||
2.656087782946687,524.32206057246,-42.61113359414526
|
||||
2.848035868435802,511.49962894963625,-42.4269131424429
|
||||
3.0538555088334154,500.1884894606764,-43.743257974732806
|
||||
3.2745491628777286,482.2440230993308,-46.90446171024766
|
||||
3.511191734215131,467.8410206066785,-46.27058750930554
|
||||
3.7649358067924674,452.204317689174,-47.45728501072167
|
||||
4.037017258596554,438.06840684121227,-50.88689116259867
|
||||
4.328761281083057,420.8942258958632,-52.08414790440658
|
||||
4.641588833612782,405.04560857109107,-53.188690080209554
|
||||
4.9770235643321135,390.3691210041418,-54.180864506943045
|
||||
5.336699231206313,371.73621309715395,-58.09636507097755
|
||||
5.72236765935022,355.91894847448464,-55.73747766950216
|
||||
6.135907273413176,340.0759931316985,-59.765470342519514
|
||||
6.5793322465756825,322.52211960360034,-64.08455485631376
|
||||
7.054802310718645,306.92724869461574,-64.67366363254118
|
||||
7.56463327554629,290.7276052155158,-65.01323403794404
|
||||
8.111308307896872,275.81972730624057,-65.06412253205855
|
||||
8.697490026177835,260.59156408381665,-69.7661259199897
|
||||
9.326033468832199,245.9259839068575,-69.46450645703625
|
||||
10.0,231.43224637940062,-68.7549354157014
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
Frequency,Gain,Phase Shift
|
||||
0.01,220.19387293518795,80.50057021588066
|
||||
0.010722672220103232,236.70104101625427,80.0761859443582
|
||||
0.011497569953977356,254.48396163220497,79.58506537106489
|
||||
0.012328467394420659,273.66801393258834,79.00032568734409
|
||||
0.014174741629268055,313.8667175404565,76.9920921751088
|
||||
0.01519911082952934,337.565609758117,76.08571916494142
|
||||
0.016297508346206444,363.76823440102373,75.07578696327589
|
||||
0.01747528400007684,391.58679648903563,73.9530650031109
|
||||
0.01873817422860384,421.21368444672567,72.71616739667536
|
||||
0.02009233002565047,453.05706536189734,71.3402179140011
|
||||
0.021544346900318846,485.15178250394035,69.83001647158538
|
||||
0.023101297000831605,518.2692935004452,68.1657512004327
|
||||
0.024770763559917114,552.7021616993961,66.35041469126122
|
||||
0.026560877829466867,588.8380050299379,64.28193867917398
|
||||
0.02848035868435802,630.0594257061659,62.15542775368108
|
||||
0.030538555088334154,674.9988396218982,59.84077690943435
|
||||
0.03274549162877728,719.5027831537267,57.41106113334317
|
||||
0.03511191734215131,758.3151075622218,54.800469728407975
|
||||
0.037649358067924674,793.595727250963,52.05201305948053
|
||||
0.040370172585965536,833.2776710157118,49.152110782049434
|
||||
0.04328761281083057,882.6101512292354,46.156475833373285
|
||||
0.046415888336127795,925.9560697011904,43.02965027489212
|
||||
0.049770235643321115,950.6414705143214,39.83719353484202
|
||||
0.0533669923120631,979.3483732249202,36.53955592622064
|
||||
0.05722367659350217,1025.6485212148855,33.212979340706084
|
||||
0.06135907273413173,1046.68655711471,29.81242285321696
|
||||
0.06579332246575682,1055.0746455924393,26.42545467899218
|
||||
0.07054802310718646,1093.2529793469694,22.999571629318623
|
||||
0.07564633275546291,1089.9173227039485,19.590654523436697
|
||||
0.08111308307896872,1100.70356035175,16.17308188654193
|
||||
0.08697490026177834,1105.0686528124154,12.80706740102761
|
||||
0.093260334688322,1091.204908104804,9.511293961041144
|
||||
0.1,1085.4451765777007,6.359831525952216
|
||||
0.10722672220103231,1067.2930015371114,3.3790012482272025
|
||||
0.11497569953977356,1031.8009648089153,0.5928860097172293
|
||||
0.12328467394420659,1020.1660817297715,-1.907196703825238
|
||||
0.13219411484660293,975.4537614764196,-4.16579067144758
|
||||
0.14174741629268056,927.4290415026715,-6.009931245736417
|
||||
0.1519911082952934,890.5799256097292,-7.4021816745104285
|
||||
0.16297508346206444,852.0913553902974,-8.123872469906754
|
||||
0.17475284000076838,809.12745917102,-8.210332155773925
|
||||
0.1873817422860384,765.927423881993,-7.1932426038342685
|
||||
0.20092330025650468,727.1524421509358,-4.950184557531216
|
||||
0.21544346900318845,699.9021664987617,-1.2344001497543078
|
||||
0.23101297000831605,701.6366202806848,3.441377730507161
|
||||
0.24770763559917114,748.4946379648229,8.3736352230671
|
||||
0.26560877829466867,820.2535006842639,11.26151387845391
|
||||
0.2848035868435802,950.2010473535097,10.280367415286383
|
||||
0.30538555088334157,1038.6467258266605,5.074217925068369
|
||||
0.32745491628777285,1091.595070728228,-2.626649855773613
|
||||
0.3511191734215131,1073.5829411929217,-9.656470436723094
|
||||
0.37649358067924676,1003.5064520031937,-14.668615366948663
|
||||
0.4037017258596556,920.4172572936515,-16.88519570395153
|
||||
0.43287612810830595,859.3101390984806,-17.36138263479891
|
||||
0.464158883361278,832.1675495537379,-16.488493924866013
|
||||
0.49770235643321115,816.0265779086102,-15.113609572990393
|
||||
0.533669923120631,817.502285446095,-14.676976438982786
|
||||
0.5722367659350217,831.7652140596552,-15.737640753740902
|
||||
0.6135907273413173,838.8307773904822,-18.28120269301172
|
||||
0.6579332246575682,806.2271817517609,-20.356270366126722
|
||||
0.7054802310718645,782.0547808780727,-21.827361475980066
|
||||
0.7564633275546291,752.3892881938554,-22.537921133159028
|
||||
0.8111308307896873,735.6257747400025,-22.307699153851665
|
||||
0.8697490026177834,728.0265534939301,-22.424826188569735
|
||||
0.9326033468832199,723.5867020211075,-23.51106372392066
|
||||
1.0,712.240583044953,-24.63718519062579
|
||||
1.072267222010323,689.7087561289599,-25.803282259189164
|
||||
1.1497569953977356,676.6381736034295,-26.350489320775313
|
||||
1.232846739442066,672.1059674470275,-26.8420276834678
|
||||
1.3219411484660286,660.0868327947155,-28.781826457276207
|
||||
1.4174741629268048,650.6254522241564,-29.237503357637358
|
||||
1.5199110829529332,638.3290106357223,-29.60872669804071
|
||||
1.629750834620645,625.6583035197766,-31.748467123771032
|
||||
1.7475284000076847,614.0011225296023,-32.040320607900064
|
||||
1.873817422860385,600.0691957491798,-33.28216727147428
|
||||
2.0092330025650478,590.7936452231676,-34.536171331613915
|
||||
2.1544346900318843,570.6066671175951,-35.79760434286229
|
||||
2.31012970008316,563.4191099401156,-37.06099094392848
|
||||
2.4770763559917115,549.0013581907199,-38.320025597097526
|
||||
2.656087782946687,531.1462139281607,-41.089307394355586
|
||||
2.848035868435802,517.7006626725588,-40.79510879081191
|
||||
3.0538555088334154,506.8545424905964,-41.99352765574508
|
||||
3.2745491628777286,486.95254552503263,-45.02828324183946
|
||||
3.511191734215131,471.8203449054437,-46.27058750930554
|
||||
3.7649358067924674,455.65051146502105,-47.45728501072167
|
||||
4.037017258596554,441.7540978557993,-50.88689116259867
|
||||
4.328761281083057,423.2065384158195,-52.08414790440658
|
||||
4.641588833612782,407.5948042148054,-53.188690080209554
|
||||
4.9770235643321135,392.51479551028257,-54.180864506943045
|
||||
5.336699231206313,372.7691145041375,-55.038661646192
|
||||
5.72236765935022,357.247189191809,-55.73747766950216
|
||||
6.135907273413176,341.0652343385019,-59.765470342519514
|
||||
6.5793322465756825,322.7619277011835,-60.31487515888606
|
||||
7.054802310718645,307.37292165073194,-64.67366363254118
|
||||
7.56463327554629,290.99797251716825,-65.01323403794404
|
||||
8.111308307896872,275.48924768215727,-65.06412253205855
|
||||
8.697490026177835,260.5392614167983,-69.7661259199897
|
||||
9.326033468832199,245.75385985813827,-69.46450645703625
|
||||
10.0,230.80387024307927,-68.7549354157014
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
Frequency,Gain,Phase Shift
|
||||
0.01,147.2932536306147,79.01660952649182
|
||||
0.010722672220103232,157.95894331308705,78.68772361326837
|
||||
0.011497569953977356,169.39716496089176,78.30047901667717
|
||||
0.012328467394420659,181.67668543543525,77.8277528990663
|
||||
0.014174741629268055,209.01700561393972,76.66723102669063
|
||||
0.01519911082952934,224.37106283089378,75.97250932756656
|
||||
0.016297508346206444,240.95819185862717,75.17850259220566
|
||||
0.01747528400007684,258.7393244831204,74.30350600975983
|
||||
0.01873817422860384,277.66782012966314,73.3281298271509
|
||||
0.02009233002565047,297.59790656279193,72.24967042573353
|
||||
0.021544346900318846,318.3103502885496,71.05207261984188
|
||||
0.023101297000831605,339.82417030950955,69.74084331554957
|
||||
0.024770763559917114,362.43822416408483,68.32318637940779
|
||||
0.026560877829466867,386.78357214925177,66.76251538483338
|
||||
0.02848035868435802,413.5191104682189,65.10899363013577
|
||||
0.030538555088334154,442.25130390691925,63.287745637843344
|
||||
0.03274549162877728,471.1813759835906,61.3697977016881
|
||||
0.03511191734215131,498.41464773733884,59.32694024562229
|
||||
0.037649358067924674,524.8853023998423,57.14288545153916
|
||||
0.040370172585965536,554.6349906354086,54.8421904302303
|
||||
0.04328761281083057,588.8731139901845,52.431375557093496
|
||||
0.046415888336127795,620.4493082468421,49.890991295239346
|
||||
0.049770235643321115,644.5807560241237,47.27993334342748
|
||||
0.0533669923120631,672.5120687382117,44.52016186491787
|
||||
0.05722367659350217,708.2721289677473,41.671961245841636
|
||||
0.06135907273413173,731.1037478587493,38.742087245571895
|
||||
0.06579332246575682,750.6268304060725,35.736563531647164
|
||||
0.07054802310718646,783.9388723690048,32.57935805488731
|
||||
0.07564633275546291,794.1494641538148,29.429323941180307
|
||||
0.08111308307896872,814.9412336657997,26.118597759300357
|
||||
0.08697490026177834,826.7398533806424,22.8234897652562
|
||||
0.093260334688322,831.7716710345621,19.45006180797076
|
||||
0.1,834.7221315401662,16.10011404317647
|
||||
0.10722672220103231,833.0179830048193,12.840204743263929
|
||||
0.11497569953977356,813.8542111831325,9.683804825383907
|
||||
0.12328467394420659,808.6555437788758,6.781143835822979
|
||||
0.13219411484660293,780.8430430808187,4.16579067144844
|
||||
0.14174741629268056,745.8080255932448,1.9491668905091581
|
||||
0.1519911082952934,715.3199626773553,0.17416898057705957
|
||||
0.16297508346206444,682.441674737515,-0.7470227558538729
|
||||
0.17475284000076838,645.2153062172775,-1.0012600189971255
|
||||
0.1873817422860384,606.9080611585603,0.0
|
||||
0.20092330025650468,571.6977016885592,2.5326525643185707
|
||||
0.21544346900318845,545.995005149394,6.7892008236465875
|
||||
0.23101297000831605,543.0269939121841,12.574264784546438
|
||||
0.24770763559917114,574.313788999637,19.018086777814887
|
||||
0.26560877829466867,634.2394177408524,24.349219196656282
|
||||
0.2848035868435802,753.6678481901063,26.10886962612092
|
||||
0.30538555088334157,877.9213469454888,23.096440210657807
|
||||
0.32745491628777285,993.3163272094745,15.384663440961104
|
||||
0.3511191734215131,1039.1667856487638,5.834117555521083
|
||||
0.37649358067924676,993.745252490223,-2.3728642505360833
|
||||
0.4037017258596556,906.8083147955874,-6.939121522171952
|
||||
0.43287612810830595,837.1800227294358,-8.432671565473273
|
||||
0.464158883361278,800.4002806497554,-7.712360061631364
|
||||
0.49770235643321115,785.7662276605035,-6.273573785015309
|
||||
0.533669923120631,796.3767090550393,-5.503866164617459
|
||||
0.5722367659350217,827.2168050509996,-6.557350314059951
|
||||
0.6135907273413173,849.4617166730577,-9.84372452700662
|
||||
0.6579332246575682,824.2499076094366,-13.570846910750435
|
||||
0.7054802310718645,798.0384719285927,-15.764205510428898
|
||||
0.7564633275546291,763.0528924932165,-17.33686241012252
|
||||
0.8111308307896873,743.6766046461845,-17.195518097760218
|
||||
0.8697490026177834,737.7465657014492,-17.441531479997423
|
||||
0.9326033468832199,738.0261410120191,-19.236324865026823
|
||||
1.0,728.3546170510576,-20.626480624710418
|
||||
1.072267222010323,702.7647431908629,-22.731462942621523
|
||||
1.1497569953977356,688.1342137153221,-23.056678155677933
|
||||
1.232846739442066,684.036473288725,-24.016551085206554
|
||||
1.3219411484660286,672.6626598339567,-25.75216051440775
|
||||
1.4174741629268048,662.2444129429579,-26.801044744498604
|
||||
1.5199110829529332,648.8522150656842,-27.867036892275067
|
||||
1.629750834620645,636.4291499550952,-28.947131789322988
|
||||
1.7475284000076847,623.7893847611203,-30.03780056990809
|
||||
1.873817422860385,609.0310323966073,-31.134930673310514
|
||||
2.0092330025650478,599.6548599228588,-32.2337599095085
|
||||
2.1544346900318843,578.5014614706892,-34.563204193109385
|
||||
2.31012970008316,571.0387027855404,-35.737384124503805
|
||||
2.4770763559917115,555.8949208775166,-38.320025597097526
|
||||
2.656087782946687,537.4506535615967,-39.56748119456592
|
||||
2.848035868435802,523.5386132598018,-40.79510879081191
|
||||
3.0538555088334154,512.2380970006969,-41.99352765574508
|
||||
3.2745491628777286,491.7526361335141,-45.02828324183946
|
||||
3.511191734215131,476.1470922641623,-46.27058750930554
|
||||
3.7649358067924674,459.54101305570254,-47.45728501072167
|
||||
4.037017258596554,445.2308350429201,-48.57385065519706
|
||||
4.328761281083057,426.27537110397293,-49.60395038513771
|
||||
4.641588833612782,410.30883295952975,-53.188690080209554
|
||||
4.9770235643321135,394.9208724628923,-54.180864506943045
|
||||
5.336699231206313,374.8272376410723,-55.038661646192
|
||||
5.72236765935022,359.0402585218749,-55.73747766950216
|
||||
6.135907273413176,342.6656112395641,-59.765470342519514
|
||||
6.5793322465756825,324.09750356687067,-60.31487515888606
|
||||
7.054802310718645,308.57845964030906,-64.67366363254118
|
||||
7.56463327554629,291.98729815328136,-65.01323403794404
|
||||
8.111308307896872,276.3269321408793,-65.06412253205855
|
||||
8.697490026177835,261.246385974658,-69.7661259199897
|
||||
9.326033468832199,246.3455900807085,-69.46450645703625
|
||||
10.0,231.2994388020676,-68.7549354157014
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
168
dynamic_model/msrDynamics_implementation/frq_script.py
Normal file
168
dynamic_model/msrDynamics_implementation/frq_script.py
Normal file
|
|
@ -0,0 +1,168 @@
|
|||
# Imports
|
||||
from parameters_U233 import *
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from jitcdde import t
|
||||
from msrDynamics.system_objects import Node, System
|
||||
import pandas as pd
|
||||
import sympy as sp
|
||||
from concurrent.futures import ProcessPoolExecutor
|
||||
from scipy.signal import find_peaks
|
||||
|
||||
f_range = np.logspace(-2, 1, num=100)
|
||||
# tau_l = 2 * tau_l
|
||||
# tau_c = 2*tau_c
|
||||
# tau_c_hx = 2 * tau_c_hx
|
||||
# tau_hx_c = 2 * tau_hx_c
|
||||
def process_frequency(f):
|
||||
|
||||
MSRE = System()
|
||||
|
||||
# radiator
|
||||
T_out_rc = Node(m = mn_rp, scp = mcp_rpn/mn_rp, W = W_rp, y0 = T0_rp)
|
||||
T_out_air = Node(m = mn_rs, scp = mcp_rsn/mn_rs, W = W_rs, y0 = T0_rs)
|
||||
|
||||
# heat exchanger
|
||||
T_hf1 = Node(m = mn_p, scp = mcp_pn/mn_p, W = W_p, y0 = T0_p1)
|
||||
T_hf2 = Node(m = mn_p, scp = mcp_pn/mn_p, W = W_p, y0 = T0_p2)
|
||||
T_hf3 = Node(m = mn_p, scp = mcp_pn/mn_p, W = W_p, y0 = T0_p3)
|
||||
T_hf4 = Node(m = mn_p, scp = mcp_pn/mn_p, W = W_p, y0 = T0_p4)
|
||||
T_ht1 = Node(m = m_tn, scp = scp_t, y0 = T0_t1)
|
||||
T_ht2 = Node(m = m_tn, scp = scp_t, y0 = T0_t2)
|
||||
T_hc1 = Node(m = mn_s, scp = mcp_sn/mn_s, W = W_s, y0 = T0_s1)
|
||||
T_hc2 = Node(m = mn_s, scp = mcp_sn/mn_s, W = W_s, y0 = T0_s2)
|
||||
T_hc3 = Node(m = mn_s, scp = mcp_sn/mn_s, W = W_s, y0 = T0_s3)
|
||||
T_hc4 = Node(m = mn_s, scp = mcp_sn/mn_s, W = W_s, y0 = T0_s4)
|
||||
|
||||
# core
|
||||
n = Node(y0 = n_frac0)
|
||||
C1 = Node(y0 = C0[0])
|
||||
C2 = Node(y0 = C0[1])
|
||||
C3 = Node(y0 = C0[2])
|
||||
C4 = Node(y0 = C0[3])
|
||||
C5 = Node(y0 = C0[4])
|
||||
C6 = Node(y0 = C0[5])
|
||||
rho = Node(y0 = 0.0)
|
||||
|
||||
# add reactivity input
|
||||
r = 1e-5
|
||||
def rho_insert(t):
|
||||
return r*sp.sin(f*t)
|
||||
|
||||
rho_ext = MSRE.add_input(rho_insert, T)
|
||||
|
||||
T_cg = Node(m = mcp_g1/scp_g, scp = scp_g, y0 = T0_g1)
|
||||
T_cf1 = Node(m = mn_f, scp = scp_f, W = W_f, y0 = T0_f1)
|
||||
T_cf2 = Node(m = mn_f, scp = scp_f, W = W_f, y0 = T0_f2)
|
||||
|
||||
MSRE.add_nodes([T_out_rc,T_out_air,T_hf1,T_hf2,T_hf3,T_hf4,T_ht1,T_ht2,T_hc1,
|
||||
T_hc2,T_hc3,T_hc4,n,C1,C2,C3,C4,C5,C6,T_cg,T_cf1,T_cf2,rho])
|
||||
|
||||
# dynamics
|
||||
|
||||
# radiator
|
||||
T_out_rc.set_dTdt_advective(source = T_hc4.y(t-tau_hx_r))
|
||||
T_out_rc.set_dTdt_convective(source = [T_out_air.y()], hA = [hA_rpn])
|
||||
|
||||
T_out_air.set_dTdt_advective(source = Trs_in)
|
||||
T_out_air.set_dTdt_convective(source = [T_out_rc.y()], hA = [hA_rsn])
|
||||
|
||||
# heat exchanger
|
||||
T_hf1.set_dTdt_advective(source = T_cf2.y(t-tau_c_hx))
|
||||
T_hf1.set_dTdt_convective(source = [T_ht1.y()], hA = [hA_pn])
|
||||
|
||||
T_hf2.set_dTdt_advective(source = T_hf1.y())
|
||||
T_hf2.dTdt_convective = T_hf1.dTdt_convective
|
||||
|
||||
T_hf3.set_dTdt_advective(source = T_hf2.y())
|
||||
T_hf3.set_dTdt_convective(source = [T_ht2.y()], hA = [hA_pn])
|
||||
|
||||
T_hf4.set_dTdt_advective(source = T_hf3.y())
|
||||
# T_hf4.set_dTdt_convective(source = [T_ht2.y()], hA = [hA_pn])
|
||||
T_hf4.dTdt_convective = T_hf3.dTdt_convective
|
||||
|
||||
# T_ht1.set_dTdt_convective(source = [T_hf1.y(),T_hf2.y(),T_hc3.y(),T_hc4.y()], hA = [hA_pn,hA_pn,hA_sn,hA_sn])
|
||||
# T_ht2.set_dTdt_convective(source = [T_hf3.y(),T_hf4.y(),T_hc1.y(),T_hc2.y()], hA = [hA_pn,hA_pn,hA_sn,hA_sn])
|
||||
T_ht1.set_dTdt_convective(source = [T_hf1.y(),T_hf1.y(),T_hc3.y(),T_hc3.y()], hA = [hA_pn,hA_pn,hA_sn,hA_sn])
|
||||
T_ht2.set_dTdt_convective(source = [T_hf3.y(),T_hf3.y(),T_hc1.y(),T_hc1.y()], hA = [hA_pn,hA_pn,hA_sn,hA_sn])
|
||||
|
||||
T_hc1.set_dTdt_advective(source = T_out_rc.y(t-tau_r_hx))
|
||||
T_hc1.set_dTdt_convective(source = [T_ht2.y()], hA = [hA_sn])
|
||||
|
||||
T_hc2.set_dTdt_advective(source = T_hc1.y())
|
||||
T_hc2.dTdt_convective = T_hc1.dTdt_convective
|
||||
|
||||
T_hc3.set_dTdt_advective(source = T_hc2.y())
|
||||
T_hc3.set_dTdt_convective(source = [T_ht1.y()], hA = [hA_sn])
|
||||
|
||||
T_hc4.set_dTdt_advective(source = T_hc3.y())
|
||||
T_hc4.dTdt_convective = T_hc3.dTdt_convective
|
||||
|
||||
# core
|
||||
n.set_dndt(r = rho.y()+rho_ext, beta_eff = beta_t, Lambda = Lam, lam = lam, C = [C1.y(),C2.y(),C3.y(),C4.y(),C5.y(),C6.y()])
|
||||
C1.set_dcdt(n.y(),beta[0],Lam,lam[0],tau_c,tau_l)
|
||||
C2.set_dcdt(n.y(),beta[1],Lam,lam[1],tau_c,tau_l)
|
||||
C3.set_dcdt(n.y(),beta[2],Lam,lam[2],tau_c,tau_l)
|
||||
C4.set_dcdt(n.y(),beta[3],Lam,lam[3],tau_c,tau_l)
|
||||
C5.set_dcdt(n.y(),beta[4],Lam,lam[4],tau_c,tau_l)
|
||||
C6.set_dcdt(n.y(),beta[5],Lam,lam[5],tau_c,tau_l)
|
||||
|
||||
T_cg.set_dTdt_convective(source = [T_cf1.y()], hA = [hA_fg])
|
||||
T_cg.set_dTdt_internal(source = n.y(), k = k_g*P)
|
||||
|
||||
T_cf1.set_dTdt_advective(source = T_hf4.y(t-tau_hx_c))
|
||||
T_cf1.set_dTdt_convective(source = [T_cg.y()], hA = [k_1*hA_fg])
|
||||
T_cf1.set_dTdt_internal(source = n.y(), k = k_f1*P)
|
||||
|
||||
T_cf2.set_dTdt_advective(source = T_cf1.y())
|
||||
T_cf2.dTdt_convective = T_cf1.dTdt_convective
|
||||
T_cf2.set_dTdt_internal(source = n.y(), k = k_f2*P)
|
||||
|
||||
rho.set_drdt(sources = [T_cf1.dydt(), T_cf2.dydt(), T_cg.dydt()], coeffs = [a_f/2,a_f/2,a_g])
|
||||
|
||||
MSRE.solve(T)
|
||||
|
||||
i_out = [i for i in range(len(T)) if T[i] >= 500]
|
||||
n0 = n.y_out[i_out[0]-25]
|
||||
n_out = np.array(n.y_out)[i_out]
|
||||
|
||||
# calculate output amplitude
|
||||
peaks, _ = find_peaks(n_out)
|
||||
troughs, _ = find_peaks(-n_out)
|
||||
amplitude = (np.mean(n_out[peaks]) - np.mean(n_out[troughs]))/2
|
||||
|
||||
# calculate Gain
|
||||
input_amplitude = r
|
||||
gain = amplitude / (input_amplitude*n0)
|
||||
|
||||
# calculate Phase Shift
|
||||
peak_times = T[i_out][peaks]
|
||||
input_period = 2 * np.pi / f
|
||||
input_signal = [i[0] for i in MSRE.input.get_state(T)]
|
||||
input_peaks, _ = find_peaks(input_signal)
|
||||
time_differences = [abs(T[input_peaks[i]] - peak_times[0]) for i in range(len(input_peaks))]
|
||||
closest_peak_index = np.argmin(time_differences)
|
||||
closest_peak_time = T[input_peaks[closest_peak_index]]
|
||||
|
||||
# calculate Phase Shift
|
||||
phase_shift = 360*(closest_peak_time-peak_times[0])/input_period
|
||||
|
||||
if (phase_shift>180):
|
||||
phase_shift = -360+phase_shift
|
||||
elif (phase_shift<-180):
|
||||
phase_shift = 360-phase_shift
|
||||
|
||||
return f, gain, phase_shift
|
||||
|
||||
with ProcessPoolExecutor() as executor:
|
||||
results = list(executor.map(process_frequency, f_range))
|
||||
|
||||
# Process the results
|
||||
results_df = pd.DataFrame(results, columns=['Frequency', 'Gain', 'Phase Shift'])
|
||||
|
||||
# Write to CSV file
|
||||
# csv_filename = f"frequency_response_results_{P}_MW_double_tau.csv"
|
||||
csv_filename = f"frequency_response_results_{P}_MW.csv"
|
||||
results_df.to_csv(csv_filename, index=False)
|
||||
|
||||
print(f"Results written to {csv_filename}")
|
||||
File diff suppressed because one or more lines are too long
283
dynamic_model/msrDynamics_implementation/model_step.ipynb
Normal file
283
dynamic_model/msrDynamics_implementation/model_step.ipynb
Normal file
File diff suppressed because one or more lines are too long
151
dynamic_model/msrDynamics_implementation/parameters_U233.py
Normal file
151
dynamic_model/msrDynamics_implementation/parameters_U233.py
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
import numpy as np
|
||||
|
||||
# domain
|
||||
t0 = 0.0
|
||||
tf = 5000.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 = 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
|
||||
|
||||
201
dynamic_model/msrDynamics_implementation/parameters_U235.py
Normal file
201
dynamic_model/msrDynamics_implementation/parameters_U235.py
Normal file
|
|
@ -0,0 +1,201 @@
|
|||
import numpy as np
|
||||
import math
|
||||
pi = math.pi
|
||||
|
||||
# domain
|
||||
t0 = 0.0
|
||||
tf = 1000.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
|
||||
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]
|
||||
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
|
|
@ -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]
|
||||
|
||||
338
dynamic_model/pump_transient_benchmark/pump_transients.ipynb
Normal file
338
dynamic_model/pump_transient_benchmark/pump_transients.ipynb
Normal file
File diff suppressed because one or more lines are too long
253
dynamic_model/scipyODE_implementation/main.py
Normal file
253
dynamic_model/scipyODE_implementation/main.py
Normal file
|
|
@ -0,0 +1,253 @@
|
|||
from parameters import *
|
||||
import numpy as np
|
||||
from scipy.integrate import ode
|
||||
import matplotlib.pyplot as plt
|
||||
import copy
|
||||
|
||||
def dydtMSRE(t,y,delays,rho_ext):
|
||||
|
||||
'''
|
||||
Returns derivative of state vector y; y' or dy/dt, of the MSRE system.
|
||||
|
||||
The y vector contains the following:
|
||||
|
||||
T_in_rc = Inlet temperature (°C) of radiator coolant, will be equal to
|
||||
the outlet temperature of the heat exchanger (T_hc4) plus
|
||||
relevant time delay
|
||||
|
||||
T_out_rc = Outlet temperature (°C) of radiator coolant
|
||||
|
||||
T_in_air = Inlet temperature (°C) of air in radiator
|
||||
|
||||
T_out_air = Outlet temperature (°C) of air in radiator
|
||||
|
||||
T_in_hf = Inlet temperature (°C) of heat exchanger fuel, will be equal
|
||||
to the outlet temperature of the core (T_cf2) plus relevant
|
||||
time delay
|
||||
|
||||
T_hf* = Temperature (°C) of heat exchanger fuel node *
|
||||
|
||||
T_ht* = Temperature (°C) of heat exchanger tube node *
|
||||
|
||||
T_hc* = Temperature (°C) of heat exchanger coolant node *
|
||||
|
||||
T_in_cf = Inlet temperature (°C) of core fuel, will be equal to the
|
||||
outlet temperature of the heat exchanger (T_hf4) plus
|
||||
relevant time dela
|
||||
|
||||
S = neutro source perturbation term
|
||||
|
||||
rho_fb = feedback reactivity (from fuel and graphite temperatures)
|
||||
|
||||
rho_ext = external reactivity (reactivity insertion)
|
||||
|
||||
rho_tot = total reactivity = rho_0 + rho_fb + rho_ext (rho_0 =
|
||||
steady-state reactivity, constant)
|
||||
|
||||
n = neutron density n(t)
|
||||
|
||||
C* = precursor concentration of group *
|
||||
|
||||
T_cg = Temperature (°C) of core graphite node
|
||||
|
||||
T_cf* = Temperature (°C) of core fuel node *
|
||||
|
||||
*_delay = Parameter at time t = t - delay
|
||||
|
||||
Other parameters are defined in parameters.py
|
||||
'''
|
||||
|
||||
# unpack state variables
|
||||
T_out_rc, T_out_air, T_hf1, T_hf2, T_hf3, T_hf4, T_ht1, T_ht2, T_hc1, \
|
||||
T_hc2, T_hc3, T_hc4, n, C1, C2, C3, C4, C5, C6, T_cg, T_cf1, T_cf2 = y
|
||||
|
||||
# delay terms
|
||||
T_out_rc_delay, T_hc4_delay, T_cf2_delay, T_hf4_delay, C1_delay, \
|
||||
C2_delay, C3_delay, C4_delay, C5_delay, C6_delay = delays
|
||||
|
||||
# reactivity
|
||||
rho = (a_f/2)*((-T0_f1+T_cf1)+(-T0_f2+T_cf2)) + a_g*(-T0_g1+T_cg) + rho_ext
|
||||
|
||||
# derivatives
|
||||
dydt = [
|
||||
(W_rp/mn_rp)*(T_hc4_delay-T_out_rc) + (hA_rpn/mcp_rpn)*(T_out_air-T_out_rc), # T_out_rc # T_out_rc
|
||||
-((W_rs/mn_rs)+(hA_rsn/mcp_rsn))*T_out_air + (hA_rsn/mcp_rsn)*T_out_rc + (W_rs/mn_rs)*Trs_in, # T_out_air
|
||||
-((W_p/mn_p)+(hA_pn/mcp_pn))*T_hf1 + (hA_pn/mcp_pn)*T_ht1 + (W_p/mn_p)*T_cf2_delay, # T_hf1
|
||||
(W_p/mn_p)*(T_hf1-T_hf2) + (hA_pn/mcp_pn)*(T_ht1-T_hf1), # T_hf2
|
||||
-((W_p/mn_p)+(hA_pn/mcp_pn))*T_hf3 + (hA_pn/mcp_pn)*T_ht2 + (W_p/mn_p)*T_hf2, # T_hf3
|
||||
(W_p/mn_p)*(T_hf3-T_hf4) + (hA_pn/mcp_pn)*(T_ht2-T_hf3), # T_hf4
|
||||
(2*hA_pn/mcp_tn)*(T_hf1-T_ht1) + (2*hA_sn/mcp_tn)*(T_hc3-T_ht1), # T_ht1
|
||||
(2*hA_pn/mcp_tn)*(T_hf3-T_ht2) + (2*hA_sn/mcp_tn)*(T_hc1-T_ht2), # T_ht2
|
||||
-((W_s/mn_s)+(hA_sn/mcp_sn))*T_hc1 + (hA_sn/mcp_sn)*T_ht2 + (W_s/mn_s)*T_out_rc_delay, # T_hc1
|
||||
(W_s/mn_s)*(T_hc1-T_hc2) + (hA_sn/mcp_sn)*(T_ht2-T_hc1), # T_hc2
|
||||
-((W_s/mn_s)+(hA_sn/mcp_sn))*T_hc3 + (hA_sn/mcp_sn)*T_ht1 + (W_s/mn_s)*T_hc2, # T_hc3
|
||||
(W_s/mn_s)*(T_hc3-T_hc4) + (hA_sn/mcp_sn)*(T_ht1-T_hc3), # T_hc4
|
||||
(rho-beta_t)*n/Lam+lam[0]*C1+lam[1]*C2+lam[2]*C3+lam[3]*C4+lam[4]*C5+lam[5]*C6, # n (no source insertion)
|
||||
n*beta[0]/Lam-lam[0]*C1-C1/tau_c+C1_delay*np.exp(-lam[0]*tau_l)/tau_c, # C1
|
||||
n*beta[1]/Lam-lam[1]*C2-C2/tau_c+C2_delay*np.exp(-lam[1]*tau_l)/tau_c, # C2
|
||||
n*beta[2]/Lam-lam[2]*C3-C3/tau_c+C3_delay*np.exp(-lam[2]*tau_l)/tau_c, # C3
|
||||
n*beta[3]/Lam-lam[3]*C4-C4/tau_c+C4_delay*np.exp(-lam[3]*tau_l)/tau_c, # C4
|
||||
n*beta[4]/Lam-lam[4]*C5-C5/tau_c+C5_delay*np.exp(-lam[4]*tau_l)/tau_c, # C5
|
||||
n*beta[5]/Lam-lam[5]*C6-C6/tau_c+C6_delay*np.exp(-lam[5]*tau_l)/tau_c, # C6
|
||||
(hA_fg/mcp_g1)*(T_cf1 - T_cg) + k_g*P*n/mcp_g1, # T_cg
|
||||
W_f/mn_f*(T_hf4_delay-T_cf1) + (k_f1*P*n/mcp_f1) + (hA_fg*k_1*(T_cg - T_cf1)/mcp_f1), # T_cf1
|
||||
W_f/mn_f*(T_cf1 - T_cf2) + (k_f2*P*n/mcp_f2) + (hA_fg*k_2*(T_cg - T_cf1)/mcp_f2), # T_cf2
|
||||
|
||||
]
|
||||
return dydt
|
||||
|
||||
def get_tIdx(t,tao,timeVec):
|
||||
'''
|
||||
Returns index of time t = t-tau
|
||||
'''
|
||||
td = t-tao
|
||||
diff_min = 999999.9999999
|
||||
idx = 0
|
||||
for t in enumerate(timeVec):
|
||||
diff = abs(td-t[1])
|
||||
if (diff<diff_min):
|
||||
diff_min = abs(td-t[1])
|
||||
idx = t[0]
|
||||
return idx, timeVec[idx]-td
|
||||
|
||||
def main():
|
||||
'''
|
||||
Sets initial conditions and calls the solver
|
||||
'''
|
||||
|
||||
# initial conditions
|
||||
y0 = [T0_rp, T0_rs, T0_p1,T0_p2, T0_p3, T0_p4, T0_t1, T0_t2, T0_s1, T0_s2,
|
||||
T0_s3, T0_s4, n_frac0, C0[0], C0[1], C0[2], C0[3], C0[4], C0[5],
|
||||
T0_g1, T0_f1, T0_f2]
|
||||
|
||||
# initial delay terms
|
||||
d0 = [T0_rp, T0_rs, T0_f2, T0_p4, C0[0], C0[1], C0[2], C0[3], C0[4], C0[5]]
|
||||
|
||||
# solver
|
||||
backend = 'dopri5'
|
||||
r = ode(dydtMSRE).set_integrator(backend,max_step=0.10)
|
||||
|
||||
sol_interim = []
|
||||
def solout(t, y):
|
||||
sol_interim.append([t, *y])
|
||||
r.set_solout(solout)
|
||||
|
||||
# timing parameters
|
||||
t0 = 0.0
|
||||
t_start = t0
|
||||
t_stop = 500.00
|
||||
|
||||
# solution
|
||||
sol = []
|
||||
|
||||
# step-reactivity insertion
|
||||
t_insert = 2500.00
|
||||
insert = 1.0e-4
|
||||
if (t_start>=t_insert):
|
||||
rho_ext = insert
|
||||
else:
|
||||
rho_ext = 0.0
|
||||
|
||||
# delay parameters
|
||||
d_terms = []
|
||||
derivs = [dydtMSRE(t0,y0,d0,rho_ext)]
|
||||
|
||||
# takes one step at a time and then accounts for delay terms
|
||||
i = 0
|
||||
while (t_start < t_stop):
|
||||
# take one step
|
||||
if (i == 0):
|
||||
t_start = t0
|
||||
r.set_initial_value(y0,t0).set_f_params(d0,0.0)
|
||||
r.integrate(1.0)
|
||||
sol.append(sol_interim[0])
|
||||
sol.append(sol_interim[1])
|
||||
else:
|
||||
t_start = sol[-1][0]
|
||||
if (t_start>=t_insert):
|
||||
rho_ext = insert
|
||||
else:
|
||||
rho_ext = 0.0
|
||||
r.set_initial_value(y_next,t_start).set_f_params(d_new,rho_ext)
|
||||
r.integrate(t_start+1.0)
|
||||
sol.append(sol_interim[1])
|
||||
derivs.append(dydtMSRE(t_start,y_next,d_new,rho_ext))
|
||||
|
||||
# account for delays, linear interpolation for time differences
|
||||
# core fuel inlet
|
||||
d_new = [0]*10
|
||||
idx_cf_in = 0
|
||||
dt_cf = 0.0
|
||||
if (t_start > tau_hx_c):
|
||||
idx_cf_in, dt_cf = get_tIdx(t_start,tau_hx_c,[s[0] for s in sol])
|
||||
d_new[3] = sol[idx_cf_in][6] + dt_cf*derivs[idx_cf_in][5]
|
||||
|
||||
# heat exchanger fuel inlet
|
||||
idx_hf_in = 0
|
||||
dt_hf = 0.0
|
||||
if (t_start > tau_c_hx):
|
||||
idx_hf_in, dt_hf = get_tIdx(t_start,tau_c_hx,[s[0] for s in sol])
|
||||
d_new[2] = sol[idx_hf_in][22] + dt_hf*derivs[idx_hf_in][21]
|
||||
|
||||
# heat exchanger coolant inlet
|
||||
idx_hc_in = 0
|
||||
dt_hc = 0.0
|
||||
if (t_start > tau_r_hx):
|
||||
idx_hc_in, dt_hc = get_tIdx(t_start,tau_r_hx,[s[0] for s in sol])
|
||||
d_new[0] = sol[idx_hc_in][1] + dt_hc*derivs[idx_hc_in][0]
|
||||
|
||||
# radiator coolant inlet
|
||||
idx_rc_in = 0
|
||||
dt_rc = 0.0
|
||||
if (t_start > tau_hx_r):
|
||||
idx_rc_in, dt_rc = get_tIdx(t_start,tau_hx_r,[s[0] for s in sol])
|
||||
d_new[1] = sol[idx_rc_in][12] + dt_rc*derivs[idx_rc_in][11]
|
||||
|
||||
# precursors
|
||||
idx_c = 0
|
||||
dt_c = 0.0
|
||||
if (t_start > tau_l):
|
||||
idx_c, dt_c = get_tIdx(t_start,tau_l,[s[0] for s in sol])
|
||||
d_new[4] = sol[idx_c][14] + dt_c*derivs[idx_c][13]
|
||||
d_new[5] = sol[idx_c][15] + dt_c*derivs[idx_c][14]
|
||||
d_new[6] = sol[idx_c][16] + dt_c*derivs[idx_c][15]
|
||||
d_new[7] = sol[idx_c][17] + dt_c*derivs[idx_c][16]
|
||||
d_new[8] = sol[idx_c][18] + dt_c*derivs[idx_c][17]
|
||||
d_new[9] = sol[idx_c][19] + dt_c*derivs[idx_c][18]
|
||||
|
||||
d_terms.append(d_new)
|
||||
|
||||
# initial condiiton for next step
|
||||
y_next = sol[-1][1:]
|
||||
|
||||
# empty interim solution
|
||||
sol_interim = []
|
||||
|
||||
# display progress
|
||||
#print(f"{t_start}")
|
||||
|
||||
i += 1
|
||||
|
||||
# plot single parameter
|
||||
#of_interest = 13
|
||||
#ti = [s[0] for s in sol]
|
||||
#oi = [s[of_interest] for s in sol]
|
||||
#print(type(ti[0]))
|
||||
#plt.plot(ti,oi)
|
||||
#plt.show()
|
||||
|
||||
# check delay behavior
|
||||
# for i in range(len(sol)-1):
|
||||
# print(f"t: {sol[i][0]}, hf4: {sol[i][6]}, c1_delay: {d_terms[i][3]}")
|
||||
|
||||
# write output data
|
||||
output_filename = f"sim_out_{t_stop}_{P}"
|
||||
results = open(output_filename,'w+')
|
||||
for k in range(len(sol)):
|
||||
for col in range(len(sol[0])):
|
||||
results.write(f"{sol[k][col]} ")
|
||||
results.write("\n")
|
||||
|
||||
return None
|
||||
|
||||
main()
|
||||
234
dynamic_model/scipyODE_implementation/parameters.py
Normal file
234
dynamic_model/scipyODE_implementation/parameters.py
Normal file
|
|
@ -0,0 +1,234 @@
|
|||
import numpy as np
|
||||
import pandas as pd
|
||||
import math
|
||||
pi = math.pi
|
||||
|
||||
# Perturbations
|
||||
# SOURCE INSERTION
|
||||
# No source insertion
|
||||
sourcedata = np.array([0, 0, 0])
|
||||
sourcetime = np.array([0, 50, 100])
|
||||
# % 1 (n/no)/s for 10 seconds
|
||||
# sourcedata = np.array([0, 10, 0])
|
||||
# sourcetime = np.array([0, 10, 20])
|
||||
source = pd.Series(sourcedata, index=sourcetime)
|
||||
|
||||
# REACTIVITY INSERTION
|
||||
# No reactivity insertion
|
||||
simtime = 10
|
||||
reactdata = np.array([0, 5E-4])
|
||||
reacttime = np.array([0, 2500])
|
||||
# Periodic 60 PCM for 50 seconds
|
||||
# simtime = 500
|
||||
# periodic = np.array([[0, 0], [50, 6e-4], [100, 0], [150, -6e-4], [200, 0], [250, 6e-4], [300, 0], [350, -6e-4], [400, 0]])
|
||||
# reactdata = periodic[:, 1]
|
||||
# reacttime = periodic[:, 0]
|
||||
# Step up 60 pcm
|
||||
# simtime = 1000
|
||||
# reactdata = np.array([0, 6e-3])
|
||||
# reacttime = np.array([0, 300])
|
||||
# # Step down -60 pcm for 10 sec
|
||||
# simtime = 100
|
||||
# reactdata = np.array([0, -6e-4])
|
||||
# reacttime = np.array([0, 50])
|
||||
# # Pulse 600 pcm for 0.1 sec
|
||||
# simtime = 30
|
||||
# reactdata = np.array([0, 6e-3, 0])
|
||||
# reacttime = np.array([0, 10, 10.1])
|
||||
|
||||
react = pd.Series(reactdata, index=reacttime)
|
||||
|
||||
ts_max = 1e-1 # maximum timestep (s)
|
||||
|
||||
# NEUTRONICS DATA
|
||||
tau_l = 16.73 # ORNL-TM-0728 %16.44; % (s)
|
||||
tau_c = 8.46 # ORNL-TM-0728 %8.460; % (s)
|
||||
P = 8 # Thermal Power in MW ORNL-TM-1070, p.2
|
||||
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]
|
||||
94
dynamic_model/scipyODE_implementation/plot_results.py
Normal file
94
dynamic_model/scipyODE_implementation/plot_results.py
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
import matplotlib.pyplot as plt
|
||||
from parameters import *
|
||||
|
||||
# 1: radiatior coolant inlet temp
|
||||
# 2: radiator coolant outlet temp
|
||||
# 3: radiator air outlet temp
|
||||
# 4: heat exchanger fuel inlet temp
|
||||
# 5: heat exchanger fuel node 1 temp
|
||||
# 6: heat exchanger fuel node 2 temp
|
||||
# 7: heat exchanger fuel node 3 temp
|
||||
# 8: heat exchanger fuel node 4 temp
|
||||
# 9: heat exchanger tube node 1 temp
|
||||
# 10: heat exchanger tube node 2 temp
|
||||
# 11: heat exchanger coolant inlet temp
|
||||
# 12: heat exchanger coolant node 1
|
||||
# 13: heat exchanger coolant node 2
|
||||
# 14: heat exchanger coolant node 3
|
||||
# 15: heat exchanger coolant node 4
|
||||
# 16: core fuel inlet temp
|
||||
# 17: k
|
||||
# 18: C1
|
||||
# 19: C2
|
||||
# 20: C3
|
||||
# 21: C4
|
||||
# 22: C5
|
||||
# 23: C6
|
||||
# 24: core graphite temp
|
||||
# 25: core fuel node 1 temp
|
||||
# 26: core fuel node 2 temp
|
||||
|
||||
filename1 = "sim_out_1000.0_1.txt"
|
||||
filename5 = "sim_out_1000.0_5.txt"
|
||||
filename8 = "sim_out_1000.0_8.txt"
|
||||
|
||||
sol1 = []
|
||||
k_file = open(filename1, 'r')
|
||||
for k in k_file.readlines():
|
||||
sol1.append(k.split())
|
||||
k_file.close()
|
||||
|
||||
sol5 = []
|
||||
k_file = open(filename5, 'r')
|
||||
for k in k_file.readlines():
|
||||
sol5.append(k.split())
|
||||
k_file.close()
|
||||
|
||||
sol8 = []
|
||||
k_file = open(filename8, 'r')
|
||||
for k in k_file.readlines():
|
||||
sol8.append(k.split())
|
||||
k_file.close()
|
||||
|
||||
sol1 = [[float(j) for j in s] for s in sol1]
|
||||
sol5 = [[float(j) for j in s] for s in sol5]
|
||||
sol8 = [[float(j) for j in s] for s in sol8]
|
||||
|
||||
k = 10000
|
||||
test_pow1 = [(1*s[13]-1) for s in sol1]
|
||||
test_pow5 = [(5*s[13]-5) for s in sol5]
|
||||
test_pow8 = [(8*s[13]-8) for s in sol8]
|
||||
tidx1 = [t[0] for t in enumerate(sol1) if (t[1][0] >= 500.00 and t[1][0] <= 800.00)]
|
||||
tidx5 = [t[0] for t in enumerate(sol5) if (t[1][0] >= 500.00 and t[1][0] <= 800.00)]
|
||||
tidx8 = [t[0] for t in enumerate(sol8) if (t[1][0] >= 500.00 and t[1][0] <= 800.00)]
|
||||
t1 = [s[0] for s in sol1[tidx1[0]:tidx1[-1]]]
|
||||
t5 = [s[0] for s in sol5[tidx5[0]:tidx5[-1]]]
|
||||
t8 = [s[0] for s in sol8[tidx8[0]:tidx8[-1]]]
|
||||
|
||||
# Create a figure and a 3x1 grid of subplots
|
||||
fig, axs = plt.subplots(3, 1, figsize=(6, 12))
|
||||
|
||||
# Plot data on the first subplot
|
||||
axs[0].plot(t1, test_pow1[tidx1[0]:tidx1[-1]])
|
||||
axs[0].set_title('1 MW')
|
||||
#axs[0].set_xlabel('x')
|
||||
axs[0].set_ylabel('dP')
|
||||
axs[0].set_xticklabels([])
|
||||
axs[0].set_xticks([])
|
||||
|
||||
# Plot data on the second subplot
|
||||
axs[1].plot(t5, test_pow5[tidx5[0]:tidx5[-1]])
|
||||
axs[1].set_title('5 MW')
|
||||
#axs[1].set_xlabel('x')
|
||||
axs[1].set_ylabel('dP')
|
||||
axs[1].set_xticklabels([])
|
||||
axs[1].set_xticks([])
|
||||
|
||||
# Plot data on the third subplot
|
||||
axs[2].plot(t8, test_pow8[tidx8[0]:tidx8[-1]])
|
||||
axs[2].set_title('8 MW')
|
||||
axs[2].set_xlabel('x')
|
||||
axs[2].set_ylabel('dP')
|
||||
|
||||
plt.tight_layout()
|
||||
plt.show()
|
||||
BIN
h5m/msre_control_rod_1e-2.h5m
(Stored with Git LFS)
BIN
h5m/msre_control_rod_1e-2.h5m
(Stored with Git LFS)
Binary file not shown.
BIN
h5m/msre_reactor_1e-2_swap.h5m
(Stored with Git LFS)
BIN
h5m/msre_reactor_1e-2_swap.h5m
(Stored with Git LFS)
Binary file not shown.
23
heatexchanger/hx.md
Normal file
23
heatexchanger/hx.md
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
### msre primary heat exchanger
|
||||

|
||||
|
||||
[onshape primary heat exchanger cad model](https://cad.onshape.com/documents/03be2f510296a2e264886390/w/8cfbca3b7b9682dd4e53a998/e/54728fd981a1b4f5594c73d6), open to copy and use freely. chapter 4.1 in the [thesis](https://ltu.diva-portal.org/smash/get/diva2:1546993/FULLTEXT01.pdf) mentioned above covers the cad construction details extensively with references to original msre reports.
|
||||
|
||||

|
||||
|
||||
[simscale primary heat exchanger simulation model](https://www.simscale.com/projects/MalcolmAkner/phex_-_final_version/). simulation results for primary heat exchanger can be viewed in chapter 6.2.2.1 of the [thesis](https://ltu.diva-portal.org/smash/get/diva2:1546993/FULLTEXT01.pdf), with comparisons to msre data in chapter 7.1.1.
|
||||
|
||||

|
||||
|
||||
primary heat exchanger produced and installed in the msre.
|
||||
|
||||
|
||||
### msre radiator
|
||||

|
||||
|
||||
[onshape radiator cad model](https://cad.onshape.com/documents/bf944323ed6a82e05924078c/w/2a25d73c5a3a66824d2d5fbd/e/a83d5535602a053216fedff4) open to copy and use freely. chapter 4.2 of the [thesis](https://ltu.diva-portal.org/smash/get/diva2:1546993/FULLTEXT01.pdf) covers the cad construction details with origianl references to msre reports.
|
||||
|
||||

|
||||
|
||||
radiator produced and installed in the msre.
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# OpenMC MSRE_notebooks
|
||||
# OpenMC MSRE notebooks
|
||||
[](https://www.gnu.org/licenses/gpl-3.0)
|
||||
|
||||
<img src="images/lat.png" width="250" height="600"/>
|
||||
<img src="images/lat.png" width="700" height="500"/>
|
||||
|
||||
`OpenMC` simulation examples of the Molten Salt Reactor Experiment (MSRE), operated at ORNL in the 1960s.
|
||||
All scripts are set up using the [h5m meshed files](https://github.com/openmsr/msre/tree/master/h5m) obtained with the open source meshing tool [CAD-to-OpenMC](https://github.com/openmsr/CAD_to_OpenMC) from a CAD version of the the MSRE, designed with the CAE tool `OnShape` and available for export here: [onshape msre model]((https://cad.onshape.com/documents/4f04f63bfd4138a61a54b3f8/v/b8c29a0cedda86dfc6948111/)).
|
||||
All scripts are set up using the [h5m meshed files](https://github.com/openmsr/msre/tree/master/h5m) obtained with the open source meshing tool [CAD-to-OpenMC](https://github.com/openmsr/CAD_to_OpenMC) from a CAD version of the the MSRE, designed with the CAE tool `OnShape` and available for export here: [onshape msre model](https://cad.onshape.com/documents/4f04f63bfd4138a61a54b3f8/v/b8c29a0cedda86dfc6948111/).
|
||||
|
|
|
|||
BIN
openmc_notebooks/images/lat.png
Normal file
BIN
openmc_notebooks/images/lat.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
1054
openmc_notebooks/msre_criticality_test.ipynb
Normal file
1054
openmc_notebooks/msre_criticality_test.ipynb
Normal file
File diff suppressed because one or more lines are too long
2474
openmc_notebooks/msre_depletion_transfer_rates.ipynb
Normal file
2474
openmc_notebooks/msre_depletion_transfer_rates.ipynb
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
step_files/.gitattributes
vendored
1
step_files/.gitattributes
vendored
|
|
@ -1 +0,0 @@
|
|||
*.step filter=lfs diff=lfs merge=lfs -text
|
||||
BIN
step_files/msre_control_rod.step
(Stored with Git LFS)
BIN
step_files/msre_control_rod.step
(Stored with Git LFS)
Binary file not shown.
BIN
step_files/msre_reactor.step
(Stored with Git LFS)
BIN
step_files/msre_reactor.step
(Stored with Git LFS)
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue