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

82 lines
4.8 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 14.1.4 (20260321.0153)
-->
<!-- Title: DRC_Controller Pages: 1 -->
<svg width="1047pt" height="438pt"
viewBox="0.00 0.00 1047.00 438.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 434.31)">
<title>DRC_Controller</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-434.31 1043.2,-434.31 1043.2,4 -4,4"/>
<!-- s00 -->
<g id="node1" class="node">
<title>s00</title>
<ellipse fill="lightblue" stroke="black" cx="298.98" cy="-141.77" rx="141.77" ry="141.77"/>
<text xml:space="preserve" text-anchor="middle" x="298.98" y="-150.97" font-family="Helvetica,sans-Serif" font-size="14.00">S(0,0)</text>
<text xml:space="preserve" text-anchor="middle" x="298.98" y="-135.97" font-family="Helvetica,sans-Serif" font-size="14.00">ColdShut+Heatup+LoadFollow</text>
<text xml:space="preserve" text-anchor="middle" x="298.98" y="-120.97" font-family="Helvetica,sans-Serif" font-size="14.00">ColdShut+LoadFollow</text>
</g>
<!-- s01 -->
<g id="node2" class="node">
<title>s01</title>
<ellipse fill="lightgreen" stroke="black" cx="633.04" cy="-292.77" rx="137.53" ry="137.53"/>
<text xml:space="preserve" text-anchor="middle" x="633.04" y="-294.47" font-family="Helvetica,sans-Serif" font-size="14.00">S(0,1)</text>
<text xml:space="preserve" text-anchor="middle" x="633.04" y="-279.47" font-family="Helvetica,sans-Serif" font-size="14.00">SCRAM+Heatup+LoadFollow</text>
</g>
<!-- s00&#45;&gt;s01 -->
<g id="edge2" class="edge">
<title>s00&#45;&gt;s01</title>
<path fill="none" stroke="black" d="M428.37,-200.16C450.84,-210.38 474.28,-221.04 496.93,-231.34"/>
<polygon fill="black" stroke="black" points="495.35,-234.46 505.9,-235.41 498.24,-228.09 495.35,-234.46"/>
<text xml:space="preserve" text-anchor="middle" x="468.13" y="-223.55" font-family="Helvetica,sans-Serif" font-size="10.00">5/16</text>
</g>
<!-- s10 -->
<g id="node3" class="node">
<title>s10</title>
<ellipse fill="lightgreen" stroke="black" cx="938.26" cy="-141.77" rx="100.94" ry="100.94"/>
<text xml:space="preserve" text-anchor="middle" x="938.26" y="-143.47" font-family="Helvetica,sans-Serif" font-size="14.00">S(1,0)</text>
<text xml:space="preserve" text-anchor="middle" x="938.26" y="-128.47" font-family="Helvetica,sans-Serif" font-size="14.00">SCRAM+LoadFollow</text>
</g>
<!-- s00&#45;&gt;s10 -->
<g id="edge3" class="edge">
<title>s00&#45;&gt;s10</title>
<path fill="none" stroke="black" stroke-width="2" d="M440.94,-135.92C459.29,-135.35 477.85,-134.85 495.51,-134.52 617.74,-132.26 648.35,-131.87 770.57,-134.52 787.93,-134.9 806.3,-135.5 824.26,-136.2"/>
<polygon fill="black" stroke="black" stroke-width="2" points="824.08,-139.69 834.22,-136.6 824.37,-132.7 824.08,-139.69"/>
<text xml:space="preserve" text-anchor="middle" x="633.04" y="-136.27" font-family="Helvetica,sans-Serif" font-size="10.00">11/16</text>
</g>
<!-- s01&#45;&gt;s10 -->
<g id="edge4" class="edge">
<title>s01&#45;&gt;s10</title>
<path fill="none" stroke="black" stroke-width="2" d="M756.5,-231.79C782.87,-218.66 810.46,-204.92 835.92,-192.24"/>
<polygon fill="black" stroke="black" stroke-width="2" points="837.35,-195.44 844.74,-187.85 834.23,-189.17 837.35,-195.44"/>
<text xml:space="preserve" text-anchor="middle" x="803.95" y="-214.5" font-family="Helvetica,sans-Serif" font-size="10.00">always</text>
</g>
<!-- s10&#45;&gt;s10 -->
<g id="edge5" class="edge">
<title>s10&#45;&gt;s10</title>
<path fill="none" stroke="black" stroke-width="2" d="M916.47,-240.67C920.37,-252.78 927.64,-260.71 938.26,-260.71 945.07,-260.71 950.5,-257.46 954.54,-251.93"/>
<polygon fill="black" stroke="black" stroke-width="2" points="957.47,-253.91 958.72,-243.39 951.18,-250.83 957.47,-253.91"/>
<text xml:space="preserve" text-anchor="middle" x="938.26" y="-262.46" font-family="Helvetica,sans-Serif" font-size="10.00">always</text>
</g>
<!-- s11 -->
<g id="node4" class="node">
<title>s11</title>
<ellipse fill="#e5e5e5" stroke="black" cx="60.1" cy="-226.77" rx="60.1" ry="60.1"/>
<text xml:space="preserve" text-anchor="middle" x="60.1" y="-228.47" font-family="Helvetica,sans-Serif" font-size="14.00">S(1,1)</text>
<text xml:space="preserve" text-anchor="middle" x="60.1" y="-213.47" font-family="Helvetica,sans-Serif" font-size="14.00">LoadFollow</text>
</g>
<!-- init -->
<g id="node5" class="node">
<title>init</title>
<ellipse fill="black" stroke="black" cx="60.1" cy="-141.77" rx="7.2" ry="7.2"/>
</g>
<!-- init&#45;&gt;s00 -->
<g id="edge1" class="edge">
<title>init&#45;&gt;s00</title>
<path fill="none" stroke="black" d="M67.44,-141.77C80.19,-141.77 110.7,-141.77 145.51,-141.77"/>
<polygon fill="black" stroke="black" points="145.43,-145.28 155.43,-141.77 145.43,-138.28 145.43,-145.28"/>
</g>
</g>
</svg>