Folds three previously-separate pieces into one preliminary-example repo for the HAHACS thesis: - thesis/ (submodule) → gitea Thesis.git — the PhD proposal - fret-pipeline/ — FRET requirements to AIGER controller (was ~/Documents/fret_processing/; prior single-commit history abandoned per user decision) - plant-model/ — 10-state PKE + lumped T/H PWR model (was ~/Documents/PKE_Playground/; never version-controlled before) - presentations/2026DICE/ (submodule) → gitea 2026DICE.git - reachability/, hardware/ — empty placeholders for Thrust 3 and HIL - docs/architecture.md — how the discrete and continuous layers compose - claude_memory/ — session notes and scratch knowledge pattern Plant model refactored to thesis naming (x, plant, u, ref); pke_th_rhs now takes u as an explicit arg instead of reading rho_ext from the params struct. First two controllers built to the contract u = ctrl_<mode>(t, x, plant, ref): ctrl_null (baseline) and ctrl_operation (stabilizing, proportional on T_avg). Validated under a 100% -> 80% Q_sg step: ctrl_operation reduces steady-state T_avg drift ~47% vs. the unforced plant. Root CLAUDE.md emphasizes that CLAUDE.md files are living documents and that any knowledge not captured before a session ends is lost forever; claude_memory/ holds the session-level notes that haven't stabilized enough to graduate into a CLAUDE.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
87 lines
4.1 KiB
Matlab
87 lines
4.1 KiB
Matlab
function p = pke_params()
|
|
% PKE_PARAMS Returns the parameter struct for the coupled PKE + T/H model.
|
|
%
|
|
% All plant parameters, kinetic data, and steady-state conditions live here.
|
|
% Modify this file to change the reactor you're modeling.
|
|
|
|
p = struct();
|
|
|
|
% --- Neutronics ---
|
|
% Prompt neutron generation time for a typical PWR with enriched UO2 fuel
|
|
% and a water-moderated thermal spectrum. Literature range: 1e-5 to 5e-4 s;
|
|
% 1e-4 is a standard mid-range value (Duderstadt & Hamilton, Ch. 6).
|
|
p.Lambda = 1e-4; % prompt neutron generation time [s]
|
|
|
|
% 6-group delayed neutron data for U-235 thermal fission (Keepin et al.,
|
|
% Phys. Rev. 107, 1957). These are the canonical values used in virtually
|
|
% all PKE models. Total beta_eff ~ 650 pcm.
|
|
p.beta_i = [0.000215; 0.001424; 0.001274; 0.002568; 0.000748; 0.000273];
|
|
p.lambda_i = [0.0124; 0.0305; 0.111; 0.301; 1.14; 3.01];
|
|
p.beta = sum(p.beta_i);
|
|
|
|
% --- Thermal-hydraulic ---
|
|
% 1000 MWth is a round number representative of a 2-loop PWR (e.g.,
|
|
% Westinghouse 2-loop class). Actual plants range ~1800-3400 MWth for
|
|
% 2-loop to 4-loop designs.
|
|
p.P0 = 1000e6; % nominal thermal power [W]
|
|
|
|
% Fuel mass: representative of total UO2 inventory in the core.
|
|
% A typical 4-loop PWR has ~100,000 kg UO2; scaled down for 1000 MWth.
|
|
p.M_f = 50000; % fuel mass [kg]
|
|
|
|
% UO2 specific heat at operating temperatures (~400-800 C). Published
|
|
% values range 250-350 J/kg-K (MATPRO / Fink correlation); 300 is a
|
|
% standard lumped value for transient analysis.
|
|
p.c_f = 300; % fuel specific heat [J/kg-K]
|
|
|
|
% Coolant mass in the core region. Based on core volume fraction of
|
|
% water in a PWR (~40% moderator-to-fuel ratio) and active core volume.
|
|
p.M_c = 20000; % coolant mass in core [kg]
|
|
|
|
% Pressurized water specific heat at ~15.5 MPa, ~300 C. NIST/IAPWS
|
|
% gives cp ~ 5.4-5.5 kJ/kg-K in this range.
|
|
p.c_c = 5450; % coolant specific heat [J/kg-K]
|
|
|
|
% Lumped fuel-to-coolant heat transfer coefficient x area. Chosen so that
|
|
% the steady-state fuel-to-coolant dT = P0/hA = 20 C, which is in the
|
|
% right ballpark for the average pellet-to-bulk-coolant temperature drop
|
|
% in a lumped single-node fuel model.
|
|
p.hA = 5e7; % fuel-to-coolant heat transfer coeff * area [W/K]
|
|
|
|
% Primary coolant mass flow rate. Typical PWR: ~4000-6000 kg/s per loop.
|
|
% 5000 kg/s gives core dT = P0/(W*c_c) ~ 36.7 C, consistent with a
|
|
% ~35-38 C core rise in operating PWRs.
|
|
p.W = 5000; % coolant mass flow rate [kg/s]
|
|
|
|
% Coolant mass in SG + hot/cold leg piping. Represents the ex-core primary
|
|
% inventory that participates in the loop transport delay. Larger than M_c
|
|
% because the SG tubes and piping hold significant volume.
|
|
p.M_sg = 30000; % coolant mass in SG + hot/cold leg piping [kg]
|
|
|
|
% --- Reactivity feedback coefficients ---
|
|
% Doppler coefficient: fuel temperature feedback, predominantly from
|
|
% U-238 resonance broadening. Typical BOL range: -2 to -3 pcm/K
|
|
% (Todreas & Kazimi). -2.5 pcm/K is a standard mid-cycle value.
|
|
p.alpha_f = -2.5e-5; % fuel (Doppler) [dk/k per K]
|
|
|
|
% Moderator temperature coefficient: captures water density change with
|
|
% temperature and its effect on neutron moderation/absorption. Typical
|
|
% range: -5 to -50 pcm/K depending on boron concentration and burnup.
|
|
% -10 pcm/K is moderate (mid-cycle, moderate boron).
|
|
p.alpha_c = -1.0e-4; % coolant (moderator) [dk/k per K]
|
|
|
|
% --- Steady-state (derived from energy balance at P0, n=1) ---
|
|
% Q_sg = P0, all dT/dt = 0
|
|
% T_hot - T_cold = P0 / (W*c_c)
|
|
% T_c = (T_hot + T_cold) / 2
|
|
% T_f = T_c + P0 / hA
|
|
% Cold leg temperature of 290 C (554 F) is typical for a PWR at full
|
|
% power (Westinghouse plants: ~288-293 C depending on design).
|
|
p.T_cold0 = 290; % inlet coolant [C]
|
|
p.dT_core = p.P0 / (p.W * p.c_c); % core delta-T [C]
|
|
p.T_hot0 = p.T_cold0 + p.dT_core;
|
|
p.T_c0 = (p.T_hot0 + p.T_cold0) / 2; % avg coolant [C]
|
|
p.T_f0 = p.T_c0 + p.P0 / p.hA; % fuel [C]
|
|
|
|
end
|