PWR-HYBRID-3/claude_memory/2026-04-16-session-wrap.md
Dane Sabo cebf8c167a Initial umbrella repo: thesis + FRET pipeline + plant model with first controllers
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>
2026-04-16 16:24:11 -04:00

54 lines
2.5 KiB
Markdown

# 2026-04-16 — session wrap, switching to nvim
Short capstone note. The substantive work is captured in two earlier notes
from today:
- `2026-04-16-repo-restructure.md` — umbrella repo created, submodules wired,
CLAUDE.md / README / architecture docs written, claude_memory/ pattern
established.
- `2026-04-16-controllers-roughout.md` — plant refactored to thesis naming,
controller contract locked, `ctrl_null` and `ctrl_operation` built,
validated live in MATLAB (ctrl_operation cuts T_avg drift by ~47% under
a 100%→80% Q_sg step).
Both notes have the full paths-touched lists.
## Last-minute adds
- **MATLAB terminal invocation (from `plant-model/CLAUDE.md`):**
`matlab -nodesktop -nosplash -r "main"` — runs from the terminal, figures
open in their own windows, drops at `>>` prompt. Use `-batch "main"` for
headless CI-style checks (no figures shown), or `matlab -r "main" &` to
launch the full IDE backgrounded.
- **MATLAB version:** R2025b installed at
`/Applications/MATLAB_R2025b.app/bin/matlab`. Octave not installed.
- **One-time gotcha fixed at wrap:** my earlier Write of the thesis-aligned
`plant-model/CLAUDE.md` silently didn't persist (tool reported success
but the file held the pre-refactor content on re-Read). Rewrote it at
wrap time. If this recurs, verify with `Read` after any `Write` on an
existing file, not just trust the tool's success message.
## Repo state at wrap
- Initial commit made: see `git log --oneline` in
`~/Documents/pwr-hybrid-3-demo/`.
- Submodules at: `thesis/` @ gitea main tip, `presentations/2026DICE/` @
gitea main tip (note: original `~/Documents/Writing/2026DICE/` still has
uncommitted local edits that were NOT pulled into the submodule — user
was warned earlier and deferred).
- Old folders `~/Documents/fret_processing/` and
`~/Documents/PKE_Playground/` still exist untouched. Delete whenever
user is confident the umbrella is right.
- No remote yet for the umbrella repo. Will need to create
`gitea.danesabo.com/danesabo/pwr-hybrid-3-demo` and `git remote add origin`
+ push when user is ready.
## What's on deck (for the next session, whichever agent)
Per the controllers rough-out note: knock out `ctrl_shutdown` (one line),
`ctrl_scram` (a few lines + uncertainty later), then `ctrl_heatup` (the
interesting transitory one — ramp + temperature tracking). Invariants and
`X_safe` regions come after, explicitly deferred by the user. Do not try
to verify the whole hybrid system at once — pick one mode, discharge its
reach-set obligation, move on.