Auto sync: 2025-12-07 20:55:06 (25 files changed)

D  Presentations/ERLM/bouncing_ball_hybrid.png

A  Presentations/ERLM/images/4_research_approach/phase_portrait_sg1.png

A  Presentations/ERLM/images/4_research_approach/two_loop.png

A  Presentations/ERLM/images/7_broader_impacts/billion.jpg

M  Presentations/ERLM/main.aux

M  Presentations/ERLM/main.fdb_latexmk

M  Presentations/ERLM/main.fls

M  Presentations/ERLM/main.log
This commit is contained in:
Dane Sabo 2025-12-07 20:55:06 -05:00
parent d7d8fc51b2
commit ed59b30dd0
25 changed files with 1686 additions and 422 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

View File

@ -16,23 +16,21 @@
\@writefile{nav}{\headcommand {\beamer@framepages {11}{14}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{7}{15/17}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {15}{17}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{8}{18/19}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {18}{19}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{9}{20/23}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {20}{23}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{10}{24/26}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {24}{26}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{11}{27/30}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {27}{30}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{12}{31/33}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {31}{33}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{13}{34/34}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {34}{34}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{14}{35/35}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {35}{35}}}
\@writefile{nav}{\headcommand {\beamer@partpages {1}{35}}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{35}}}
\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{35}}}
\@writefile{nav}{\headcommand {\beamer@documentpages {35}}}
\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {14}}}
\gdef \@abspage@last{35}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{8}{18/18}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {18}{18}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{9}{19/19}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {19}{19}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{10}{20/22}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {20}{22}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{11}{23/24}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {23}{24}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{12}{25/25}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {25}{25}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{13}{26/29}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {26}{29}}}
\@writefile{nav}{\headcommand {\beamer@partpages {1}{29}}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{29}}}
\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{29}}}
\@writefile{nav}{\headcommand {\beamer@documentpages {29}}}
\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {13}}}
\gdef \@abspage@last{29}

View File

@ -1,5 +1,5 @@
# Fdb version 4
["lualatex"] 1765131413.34997 "main.tex" "main.pdf" "main" 1765131417.27371 0
["lualatex"] 1765158894.60386 "main.tex" "main.pdf" "main" 1765158898.09557 0
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex8.tfm" 1246382020 988 bdf658c3bfc2d96d3c8b02cfc1c94c20 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1246382020 916 f87d7c45f9c908e672703b83b72241a3 ""
@ -24,8 +24,6 @@
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm" 1136768653 1116 933a60c408fc0a863a92debe84b2d294 ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy7.tfm" 1136768653 1120 2b3f9b25605010c69bc328bea6ac000f ""
"/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm" 1136768653 1120 8b7d695260f3cff42e636090a8002094 ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb" 1248133631 36741 fa121aac0049305630cf160b86157ee4 ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmss12.pfb" 1248133631 24393 3b7eb51a67a0a62aec5849271bdb9c2e ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1248133631 32569 5e5ddc8df908dea60932f3c484a54c0d ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb" 1248133631 32626 4f5c1b83753b1dd3a97d1b399a005b4b ""
"/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/symbols/msam10.pfb" 1248133631 31764 459c573c03a4949a528c2cc7f557e217 ""
@ -242,7 +240,6 @@
"/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics-def/luatex.def" 1663965824 19478 ff26a264ed286e649e9023efac2574b2 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def" 1654720880 5009 d242512eef244b70f2fc3fde14419206 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1654720880 18387 8f900a490197ebaf93c02ae9476d4b09 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1654720880 8010 a8d949cbdbc5c983593827c9eec252e1 ""
"/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty" 1654720880 2671 7e67d78d9b88c845599a85b2d41f2e39 ""
@ -305,7 +302,6 @@
"/usr/share/texmf/fonts/type1/public/lm/lmss12.pfb" 1255129361 96107 daf52840b555e3b38f9679b629b5e2df ""
"/usr/share/texmf/fonts/type1/public/lm/lmss8.pfb" 1255129361 94400 e33ecfb646a9f148e2e53da01a9168fe ""
"/usr/share/texmf/fonts/type1/public/lm/lmssbx10.pfb" 1255129361 119663 e82fa1a58f98ccd89bdbd77311ac9cf1 ""
"/usr/share/texmf/fonts/type1/public/lm/lmsso12.pfb" 1255129361 109054 a09a49a2236510c86a00b8d9e5610ab1 ""
"/usr/share/texmf/fonts/type1/public/lm/lmsso17.pfb" 1255129361 107277 12bb06b4f1b5546fd2b623f476f51ecb ""
"/usr/share/texmf/fonts/type1/public/lm/lmsso8.pfb" 1255129361 106860 a773e4958b589eadcc5b01a914624508 ""
"/usr/share/texmf/fonts/type1/public/lm/lmtt8.pfb" 1255129361 115291 2ae7034c644e971beb573b1e6606f863 ""
@ -315,7 +311,6 @@
"/usr/share/texmf/tex/latex/lm/t1lmtt.fd" 1616454256 2682 555da1faa2e266801e4b221d01a42cb5 ""
"/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1760105440.02229 5312232 f3296911be9cc021788f3f879cf0a47d ""
"/var/lib/texmf/web2c/luahbtex/lualatex.fmt" 1726065905 12230446 10024404f08a230959a13fd14332f6f6 ""
"bouncing_ball_hybrid.png" 1764470868.42471 503848 9d63c93b20beb6e8494b16d4a08cb98f ""
"images/1_hook/energy-demand-graph-small.png" 1763336452.14299 498793 d4b20a2a70c23e430cd42f1a958494ac ""
"images/1_hook/nuclear-plant.png" 1764360699.85273 33643 ae391bd2b827c05be2b7a877fcdaf999 ""
"images/2_state_of_the_art/control_room.jpg" 1764382088.57397 436102 0cd66f6d4671f09be64a9540a575a28d ""
@ -326,32 +321,35 @@
"images/3_limitations/foreman.png" 1764364968.83299 26755 f399e83f67628674d2f3d5d3760d5641 ""
"images/3_limitations/test.png" 1764446369.57847 41645 34977944089d9523fe5838109f6022d0 ""
"images/3_limitations/worker.png" 1764364968.83413 27672 7065ad1534208191d96629b550f62ee6 ""
"images/4_research_approach/phase_portrait_sg1.png" 1765156617.6233 168904 e2a0243804c74070a88ed6aa1856225f ""
"images/4_research_approach/procedure.png" 1764456080.21682 158772 222437d7a92958d3726adc307fb81a41 ""
"images/4_research_approach/strategy.png" 1765128764.47752 32195 2571b355dcc286fcd46729295b9265c7 ""
"images/4_research_approach/two_loop.png" 1765155497.30626 226573 bea45b461c7f1dc3c7ec85aebc51866a ""
"images/5_metrics_of_success/controller.png" 1764524989.70379 16201 acc9519701bcfa19f86eca99d3384577 ""
"images/5_metrics_of_success/emerson_logo_only.png" 1763336452.14199 39830 5d65eddbc8dd9059f41efeb1cce2d010 ""
"images/5_metrics_of_success/puzzle.png" 1764524940.19403 34200 fdce865ec248104e6ec78e285f7424be ""
"images/5_metrics_of_success/puzzle_complete.png" 1764524961.95624 15225 67fad16e593306dfeb6b5556393fe0c2 ""
"images/7_broader_impacts/billion.jpg" 1765158461.34358 124851 453cfab33be902f22b9219de12f17cf9 ""
"images/back.jpg" 1763336452.15499 240691 0cb5c8c7430464955925d0babbadff74 ""
"images/logo.png" 1763336452.15499 72759 d854b0b4145b18961bb2668be3694a61 ""
"images/money.png" 1764528073.18128 2809981 b860f10eb713a07689e4fdacf151aa3a ""
"main.aux" 1765131417.12073 2256 ce40ab33ae045afcf0b825cd16e4b0fd "lualatex"
"main.nav" 1765131417.12173 1499 f7275f2ba440de2712b635725bfb8531 "lualatex"
"main.out" 1765131414.09973 0 d41d8cd98f00b204e9800998ecf8427e "lualatex"
"main.tex" 1765131411.35828 1771 10268a3acbb61fef39487191ea4deda8 ""
"main.aux" 1765158897.93311 2127 825daed26b2bcf5d5e469b5a8395b390 "lualatex"
"main.nav" 1765158897.93411 1406 c80ae34c951af0029b69b40e520bfd8b "lualatex"
"main.out" 1765158895.38411 0 d41d8cd98f00b204e9800998ecf8427e "lualatex"
"main.tex" 1765153844.55594 1786 8b649690c05c638e05b712a32985393f ""
"slides/1_Hook_v2.tex" 1765126921.75302 1615 aaa4d08b11ee4bea77abc2803d974d96 ""
"slides/2_State_of_the_Art_v2.tex" 1765127713.73469 2253 f34e58580173f4782cb80c835fcdd35f ""
"slides/3_Limitations_v2.tex" 1765127804.68172 1445 261f0f203e7a638b6d55c049dd3ef91f ""
"slides/4_Research_Approach_v2.tex" 1765130701.32766 5585 03e4e40676708cc6719eec25edb75108 ""
"slides/5_Metrics_of_Success_v2.tex" 1765126779.53409 1789 65b1a4db3c5b190cddc3c715075bc024 ""
"slides/4_Research_Approach_v2.tex" 1765158854.19306 4752 b9b8602033751d474c2ca4414352765f ""
"slides/5_Metrics_of_Success_v2.tex" 1765157754.01353 1629 f2981b0eb2e2eb411ec6a385d14ef64e ""
"slides/6_Risks_and_Contingencies_v2.tex" 1765126784.26032 399 387cde861931d5a6f8df4385a3b5edeb ""
"slides/7_Broader_Impacts_v2.tex" 1765126788.52247 1873 330e68ccc70b8191011c7f9d66ebf79b ""
"slides/7_Broader_Impacts_v2.tex" 1765158890.5111 1807 8dcde81e36eddf55ddf410bb82df559b ""
"slides/8_Money_Slide_v2.tex" 1765126792.49866 801 b3c68f4b7c746435d17d963b4e0cd476 ""
"theme/beamercolorthemedane_native.sty" 1765131378.0899 2437 50ad157b60320cf4bad3265868037d11 ""
"theme/beamerfontthemedane_native.sty" 1763336452.15682 1296 654c41f94efd9f9391ac224a886b5e98 ""
"theme/beamerinnerthemedane_native.sty" 1764528221.26407 2748 ae1cd84de5b3179f9cf8d6080e36cf1e ""
"theme/beamerouterthemedane_native.sty" 1765127624.01708 2865 15fdfca22630967415e2000c0f3b0271 ""
"theme/beamerthemedane_native.sty" 1765131300.08636 956 d4979855ecf82f1b64cda12b1c8d9656 ""
"theme/beamerthemedane_native.sty" 1765157892.53578 944 216604985b692d16917b9595dfc477ac ""
(generated)
"main.aux"
"main.log"

View File

@ -223,7 +223,6 @@ INPUT /usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/caption/caption-beamer.sto
INPUT ./theme/beamerthemedane_native.sty
INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def
INPUT /usr/share/texlive/texmf-dist/tex/latex/pgfplots/pgfplots.sty
INPUT /usr/share/texlive/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex
INPUT /usr/share/texlive/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
@ -763,21 +762,11 @@ INPUT ./images/4_research_approach/strategy.png
INPUT ./images/4_research_approach/strategy.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./images/4_research_approach/strategy.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./images/logo.png
INPUT ./bouncing_ball_hybrid.png
INPUT ./bouncing_ball_hybrid.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./bouncing_ball_hybrid.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./bouncing_ball_hybrid.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./bouncing_ball_hybrid.png
INPUT ./images/4_research_approach/two_loop.png
INPUT ./images/4_research_approach/two_loop.png
INPUT ./images/4_research_approach/phase_portrait_sg1.png
INPUT ./images/4_research_approach/phase_portrait_sg1.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./slides/5_Metrics_of_Success_v2.tex
@ -799,6 +788,79 @@ INPUT ./images/5_metrics_of_success/emerson_logo_only.png
INPUT ./images/5_metrics_of_success/emerson_logo_only.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./slides/7_Broader_Impacts_v2.tex
INPUT ./images/logo.png
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/7_broader_impacts/billion.jpg
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./slides/8_Money_Slide_v2.tex
INPUT ./images/logo.png
INPUT ./images/money.png
INPUT ./images/money.png
INPUT ./images/back.jpg
INPUT ./slides/6_Risks_and_Contingencies_v2.tex
INPUT ./images/logo.png
INPUT ./images/back.jpg
@ -809,37 +871,16 @@ INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./slides/7_Broader_Impacts_v2.tex
INPUT ./images/logo.png
INPUT /usr/share/texmf/fonts/tfm/public/lm/ec-lmssbx10.tfm
INPUT /usr/share/texmf/fonts/tfm/public/lm/ec-lmssbx10.tfm
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./images/logo.png
INPUT ./images/back.jpg
INPUT ./images/logo.png
INPUT ./slides/8_Money_Slide_v2.tex
INPUT ./images/logo.png
INPUT ./images/money.png
INPUT ./images/money.png
INPUT ./images/back.jpg
OUTPUT main.nav
OUTPUT main.toc
OUTPUT main.snm
INPUT ./main.aux
INPUT ./main.out
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmss12.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb
INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb
INPUT /usr/share/texmf/fonts/type1/public/lm/lmss12.pfb
INPUT /usr/share/texmf/fonts/type1/public/lm/lmss8.pfb
INPUT /usr/share/texmf/fonts/type1/public/lm/lmssbx10.pfb
INPUT /usr/share/texmf/fonts/type1/public/lm/lmsso12.pfb
INPUT /usr/share/texmf/fonts/type1/public/lm/lmsso17.pfb
INPUT /usr/share/texmf/fonts/type1/public/lm/lmsso8.pfb
INPUT /usr/share/texmf/fonts/type1/public/lm/lmtt8.pfb

View File

@ -1,4 +1,4 @@
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023/Debian) (format=lualatex 2024.9.11) 7 DEC 2025 13:16
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023/Debian) (format=lualatex 2024.9.11) 7 DEC 2025 20:54
restricted system commands enabled.
file:line:error style messages enabled.
**main.tex
@ -716,9 +716,7 @@ File: caption-beamer.sto 2022/01/06 v2.0c Adaption of the caption package to the
Package caption Info: hyperref package is loaded.
Package caption Info: Hyperref support is turned off
(caption) because hyperref has stopped early.
) (./theme/beamerthemedane_native.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def
File: dvipsnam.def 2016/06/17 v3.0m Driver-dependent file (DPC,SPQR)
) (/usr/share/texlive/texmf-dist/tex/latex/pgfplots/pgfplots.sty (/usr/share/texlive/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex)
) (./theme/beamerthemedane_native.sty (/usr/share/texlive/texmf-dist/tex/latex/pgfplots/pgfplots.sty (/usr/share/texlive/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex)
Package: pgfplots 2021/05/15 v1.18.1 Data Visualization (1.18.1)
(/usr/share/texlive/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex (/usr/share/texlive/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex
Package pgfplots info on input line 124: Initializing with LUA version Lua 5.3
@ -2367,155 +2365,397 @@ Package luatex.def Info: images/logo.png used on input line 136.
[18
<./images/4_research_approach/strategy.png>]
File: images/4_research_approach/strategy.png Graphic file (type png)
<use images/4_research_approach/strategy.png>
Package luatex.def Info: images/4_research_approach/strategy.png used on input line 136.
(luatex.def) Requested size: 96.73788pt x 96.73616pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 150.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
<images/4_research_approach/two_loop.png, id=218, 259.63667pt x 239.22708pt>
File: images/4_research_approach/two_loop.png Graphic file (type png)
<use images/4_research_approach/two_loop.png>
Package luatex.def Info: images/4_research_approach/two_loop.png used on input line 150.
(luatex.def) Requested size: 188.98647pt x 174.12701pt.
<images/4_research_approach/phase_portrait_sg1.png, id=219, 1003.75pt x 903.375pt>
File: images/4_research_approach/phase_portrait_sg1.png Graphic file (type png)
<use images/4_research_approach/phase_portrait_sg1.png>
Package luatex.def Info: images/4_research_approach/phase_portrait_sg1.png used on input line 150.
(luatex.def) Requested size: 280.00659pt x 252.00775pt.
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 136.
Package luatex.def Info: images/back.jpg used on input line 150.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 136.
Package luatex.def Info: images/logo.png used on input line 150.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[19
]
<./images/4_research_approach/two_loop.png><./images/4_research_approach/phase_portrait_sg1.png>]) (./slides/5_Metrics_of_Success_v2.tex
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 187.
Package luatex.def Info: images/logo.png used on input line 50.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
<bouncing_ball_hybrid.png, id=225, 570.933pt x 714.5094pt>
File: bouncing_ball_hybrid.png Graphic file (type png)
<use bouncing_ball_hybrid.png>
Package luatex.def Info: bouncing_ball_hybrid.png used on input line 187.
(luatex.def) Requested size: 187.93803pt x 235.2062pt.
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 187.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 187.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[20
<./bouncing_ball_hybrid.png>]
File: bouncing_ball_hybrid.png Graphic file (type png)
<use bouncing_ball_hybrid.png>
Package luatex.def Info: bouncing_ball_hybrid.png used on input line 187.
(luatex.def) Requested size: 187.93803pt x 235.2062pt.
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 187.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 187.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[21
]
File: bouncing_ball_hybrid.png Graphic file (type png)
<use bouncing_ball_hybrid.png>
Package luatex.def Info: bouncing_ball_hybrid.png used on input line 187.
(luatex.def) Requested size: 187.93803pt x 235.2062pt.
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 187.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 187.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[22
]
File: bouncing_ball_hybrid.png Graphic file (type png)
<use bouncing_ball_hybrid.png>
Package luatex.def Info: bouncing_ball_hybrid.png used on input line 187.
(luatex.def) Requested size: 187.93803pt x 235.2062pt.
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 187.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 187.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[23
]) (./slides/5_Metrics_of_Success_v2.tex
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 53.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
<images/5_metrics_of_success/puzzle.png, id=260, 385.44pt x 385.44pt>
<images/5_metrics_of_success/puzzle.png, id=229, 385.44pt x 385.44pt>
File: images/5_metrics_of_success/puzzle.png Graphic file (type png)
<use images/5_metrics_of_success/puzzle.png>
Package luatex.def Info: images/5_metrics_of_success/puzzle.png used on input line 53.
Package luatex.def Info: images/5_metrics_of_success/puzzle.png used on input line 50.
(luatex.def) Requested size: 89.38762pt x 89.38449pt.
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 53.
Package luatex.def Info: images/back.jpg used on input line 50.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 53.
Package luatex.def Info: images/logo.png used on input line 50.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[24
[20
<./images/5_metrics_of_success/puzzle.png>]
File: images/5_metrics_of_success/puzzle.png Graphic file (type png)
<use images/5_metrics_of_success/puzzle.png>
Package luatex.def Info: images/5_metrics_of_success/puzzle.png used on input line 53.
Package luatex.def Info: images/5_metrics_of_success/puzzle.png used on input line 50.
(luatex.def) Requested size: 89.38762pt x 89.38449pt.
<images/5_metrics_of_success/puzzle_complete.png, id=269, 411.136pt x 411.136pt>
<images/5_metrics_of_success/puzzle_complete.png, id=238, 411.136pt x 411.136pt>
File: images/5_metrics_of_success/puzzle_complete.png Graphic file (type png)
<use images/5_metrics_of_success/puzzle_complete.png>
Package luatex.def Info: images/5_metrics_of_success/puzzle_complete.png used on input line 53.
Package luatex.def Info: images/5_metrics_of_success/puzzle_complete.png used on input line 50.
(luatex.def) Requested size: 89.38762pt x 89.38371pt.
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 53.
Package luatex.def Info: images/back.jpg used on input line 50.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 53.
Package luatex.def Info: images/logo.png used on input line 50.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[25
[21
<./images/5_metrics_of_success/puzzle_complete.png>]
File: images/5_metrics_of_success/puzzle.png Graphic file (type png)
<use images/5_metrics_of_success/puzzle.png>
Package luatex.def Info: images/5_metrics_of_success/puzzle.png used on input line 53.
Package luatex.def Info: images/5_metrics_of_success/puzzle.png used on input line 50.
(luatex.def) Requested size: 89.38762pt x 89.38449pt.
File: images/5_metrics_of_success/puzzle_complete.png Graphic file (type png)
<use images/5_metrics_of_success/puzzle_complete.png>
Package luatex.def Info: images/5_metrics_of_success/puzzle_complete.png used on input line 53.
Package luatex.def Info: images/5_metrics_of_success/puzzle_complete.png used on input line 50.
(luatex.def) Requested size: 89.38762pt x 89.38371pt.
<images/5_metrics_of_success/controller.png, id=278, 385.44pt x 385.44pt>
<images/5_metrics_of_success/controller.png, id=248, 385.44pt x 385.44pt>
File: images/5_metrics_of_success/controller.png Graphic file (type png)
<use images/5_metrics_of_success/controller.png>
Package luatex.def Info: images/5_metrics_of_success/controller.png used on input line 53.
Package luatex.def Info: images/5_metrics_of_success/controller.png used on input line 50.
(luatex.def) Requested size: 89.38762pt x 89.38449pt.
<images/5_metrics_of_success/emerson_logo_only.png, id=279, 225.84375pt x 225.84375pt>
<images/5_metrics_of_success/emerson_logo_only.png, id=249, 225.84375pt x 225.84375pt>
File: images/5_metrics_of_success/emerson_logo_only.png Graphic file (type png)
<use images/5_metrics_of_success/emerson_logo_only.png>
Package luatex.def Info: images/5_metrics_of_success/emerson_logo_only.png used on input line 53.
Package luatex.def Info: images/5_metrics_of_success/emerson_logo_only.png used on input line 50.
(luatex.def) Requested size: 33.52057pt x 33.52014pt.
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 53.
Package luatex.def Info: images/back.jpg used on input line 50.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 53.
Package luatex.def Info: images/logo.png used on input line 50.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[26
[22
<./images/5_metrics_of_success/controller.png><./images/5_metrics_of_success/emerson_logo_only.png>]) (./slides/6_Risks_and_Contingencies_v2.tex
<./images/5_metrics_of_success/controller.png><./images/5_metrics_of_success/emerson_logo_only.png>]) (./slides/7_Broader_Impacts_v2.tex
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 27.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
<images/7_broader_impacts/billion.jpg, id=260, 1003.75pt x 569.12625pt>
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 386.95897pt x 219.4052pt.
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 27.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 27.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[23
<./images/7_broader_impacts/billion.jpg>]
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
File: images/7_broader_impacts/billion.jpg Graphic file (type jpg)
<use images/7_broader_impacts/billion.jpg>
Package luatex.def Info: images/7_broader_impacts/billion.jpg used on input line 27.
(luatex.def) Requested size: 45.52458pt x 25.80931pt.
Overfull \hbox (6.55278pt too wide) in paragraph at lines 27--27
[][]
[]
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 27.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 27.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[24
]) (./slides/8_Money_Slide_v2.tex
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 35.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
<images/money.png, id=276, 1541.76pt x 1027.84pt>
File: images/money.png Graphic file (type png)
<use images/money.png>
Package luatex.def Info: images/money.png used on input line 35.
(luatex.def) Requested size: 352.80942pt x 235.2062pt.
Overfull \hbox (38.40941pt too wide) in paragraph at lines 35--35
[][]
[]
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 35.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
[25
<./images/money.png>]) (./slides/6_Risks_and_Contingencies_v2.tex
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 13.
@ -2527,6 +2767,17 @@ Package luatex.def Info: images/back.jpg used on input line 13.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 13.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[26
]
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 13.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 13.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[27
@ -2552,101 +2803,7 @@ Package luatex.def Info: images/logo.png used on input line 13.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[29
]
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 13.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 13.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[30
]) (./slides/7_Broader_Impacts_v2.tex
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 38.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
Overfull \vbox (73.8187pt too high) detected at line 38
[]
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 38.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 38.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[31
]
Overfull \vbox (73.8187pt too high) detected at line 38
[]
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 38.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 38.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[32
]
Overfull \vbox (73.8187pt too high) detected at line 38
[]
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 38.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 38.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[33
]
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 75.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 75.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 75.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
[34
]) (./slides/8_Money_Slide_v2.tex
File: images/logo.png Graphic file (type png)
<use images/logo.png>
Package luatex.def Info: images/logo.png used on input line 35.
(luatex.def) Requested size: 56.9055pt x 22.63397pt.
<images/money.png, id=351, 1541.76pt x 1027.84pt>
File: images/money.png Graphic file (type png)
<use images/money.png>
Package luatex.def Info: images/money.png used on input line 35.
(luatex.def) Requested size: 352.80942pt x 235.2062pt.
Overfull \hbox (38.40941pt too wide) in paragraph at lines 35--35
[][]
[]
File: images/back.jpg Graphic file (type jpg)
<use images/back.jpg>
Package luatex.def Info: images/back.jpg used on input line 35.
(luatex.def) Requested size: 780.44925pt x 341.43306pt.
[35
<./images/money.png>])
])
\tf@nav=\write6
\openout6 = main.nav
@ -2666,19 +2823,19 @@ Package rerunfilecheck Info: File `main.out' has not changed.
)
Here is how much of LuaTeX's memory you used:
42660 strings out of 476553
42706 strings out of 476553
195346,1977958 words of node,token memory allocated
4628 words of node memory still in use:
65 hlist, 8 vlist, 13 rule, 31 disc, 12 local_par, 114 glue, 21 kern, 27 penalty, 265 glyph, 63 glue_spec, 4 write, 40 pdf_literal, 20 pdf_colorstack, 1 pdf_setmatrix, 1 pdf_save, 1 pdf_restore nodes
avail lists: 2:35,3:9296,4:439,5:594,6:51,7:9016,8:27,9:7322,10:11,11:188
62106 multiletter control sequences out of 65536+600000
97 fonts using 4022483 bytes
5062 words of node memory still in use:
71 hlist, 9 vlist, 15 rule, 32 disc, 6 local_par, 2 math, 128 glue, 22 kern, 23 penalty, 243 glyph, 63 glue_spec, 4 write, 100 pdf_literal, 84 pdf_colorstack nodes
avail lists: 2:35,3:9243,4:375,5:588,6:57,7:9022,8:2,9:7313,10:11,11:112
62030 multiletter control sequences out of 65536+600000
95 fonts using 3939739 bytes
128i,18n,116p,747b,1334s stack positions out of 10000i,1000n,20000p,200000b,200000s
{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmss12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/share/texmf/fonts/type1/public/lm/lmss12.pfb></usr/share/texmf/fonts/type1/public/lm/lmss8.pfb></usr/share/texmf/fonts/type1/public/lm/lmssbx10.pfb></usr/share/texmf/fonts/type1/public/lm/lmsso12.pfb></usr/share/texmf/fonts/type1/public/lm/lmsso17.pfb></usr/share/texmf/fonts/type1/public/lm/lmsso8.pfb></usr/share/texmf/fonts/type1/public/lm/lmtt8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/symbols/msam10.pfb>
Output written on main.pdf (35 pages, 5139073 bytes).
{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/share/texmf/fonts/type1/public/lm/lmss12.pfb></usr/share/texmf/fonts/type1/public/lm/lmss8.pfb></usr/share/texmf/fonts/type1/public/lm/lmssbx10.pfb></usr/share/texmf/fonts/type1/public/lm/lmsso17.pfb></usr/share/texmf/fonts/type1/public/lm/lmsso8.pfb></usr/share/texmf/fonts/type1/public/lm/lmtt8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/symbols/msam10.pfb>
Output written on main.pdf (29 pages, 5049114 bytes).
PDF statistics: 401 PDF objects out of 1000 (max. 8388607)
272 compressed objects within 3 object streams
71 named destinations out of 1000 (max. 131072)
PDF statistics: 346 PDF objects out of 1000 (max. 8388607)
225 compressed objects within 3 object streams
59 named destinations out of 1000 (max. 131072)
206 words of extra memory for PDF output out of 10000 (max. 100000000)

View File

@ -12,22 +12,20 @@
\headcommand {\beamer@framepages {11}{14}}
\headcommand {\slideentry {0}{0}{7}{15/17}{}{0}}
\headcommand {\beamer@framepages {15}{17}}
\headcommand {\slideentry {0}{0}{8}{18/19}{}{0}}
\headcommand {\beamer@framepages {18}{19}}
\headcommand {\slideentry {0}{0}{9}{20/23}{}{0}}
\headcommand {\beamer@framepages {20}{23}}
\headcommand {\slideentry {0}{0}{10}{24/26}{}{0}}
\headcommand {\beamer@framepages {24}{26}}
\headcommand {\slideentry {0}{0}{11}{27/30}{}{0}}
\headcommand {\beamer@framepages {27}{30}}
\headcommand {\slideentry {0}{0}{12}{31/33}{}{0}}
\headcommand {\beamer@framepages {31}{33}}
\headcommand {\slideentry {0}{0}{13}{34/34}{}{0}}
\headcommand {\beamer@framepages {34}{34}}
\headcommand {\slideentry {0}{0}{14}{35/35}{}{0}}
\headcommand {\beamer@framepages {35}{35}}
\headcommand {\beamer@partpages {1}{35}}
\headcommand {\beamer@subsectionpages {1}{35}}
\headcommand {\beamer@sectionpages {1}{35}}
\headcommand {\beamer@documentpages {35}}
\headcommand {\gdef \inserttotalframenumber {14}}
\headcommand {\slideentry {0}{0}{8}{18/18}{}{0}}
\headcommand {\beamer@framepages {18}{18}}
\headcommand {\slideentry {0}{0}{9}{19/19}{}{0}}
\headcommand {\beamer@framepages {19}{19}}
\headcommand {\slideentry {0}{0}{10}{20/22}{}{0}}
\headcommand {\beamer@framepages {20}{22}}
\headcommand {\slideentry {0}{0}{11}{23/24}{}{0}}
\headcommand {\beamer@framepages {23}{24}}
\headcommand {\slideentry {0}{0}{12}{25/25}{}{0}}
\headcommand {\beamer@framepages {25}{25}}
\headcommand {\slideentry {0}{0}{13}{26/29}{}{0}}
\headcommand {\beamer@framepages {26}{29}}
\headcommand {\beamer@partpages {1}{29}}
\headcommand {\beamer@subsectionpages {1}{29}}
\headcommand {\beamer@sectionpages {1}{29}}
\headcommand {\beamer@documentpages {29}}
\headcommand {\gdef \inserttotalframenumber {13}}

Binary file not shown.

Binary file not shown.

View File

@ -60,9 +60,10 @@
\input{slides/3_Limitations_v2}
\input{slides/4_Research_Approach_v2}
\input{slides/5_Metrics_of_Success_v2}
\input{slides/6_Risks_and_Contingencies_v2}
\input{slides/7_Broader_Impacts_v2}
\input{slides/8_Money_Slide_v2}
%Supplemenatry
\input{slides/6_Risks_and_Contingencies_v2}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

View File

@ -96,8 +96,8 @@
\node[draw=textcolor, fill=primary!30!red, right=0.1cm of chess, yshift=0.4cm] {Controller};
\end{tikzpicture}
\end{column}
\begin{column}{0.5\textwidth}
\pause
\begin{tikzpicture}[
state/.style={circle, draw=textcolor, fill=secondary, minimum size=1.2cm},
transition/.style={->, >=stealth, thick}
@ -135,52 +135,15 @@
\end{frame}
\begin{frame}{Finally, we will build continuous controllers to move between
discrete states}
\begin{frame}{Finally, we will build continuous controllers with formal methods
to ensure transitions between modes}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[height=0.7\textheight]{bouncing_ball_hybrid.png}
\begin{column}{0.4\textwidth}
\includegraphics[height=0.9\textwidth]{images/4_research_approach/two_loop.png}
\end{column}
\begin{column}{0.5\textwidth}
\only<2>{
\begin{alertblock}{Key Challenge}
\small
Verify continuous control behavior across discrete mode transitions
\end{alertblock}
}
\only<3->{
\begin{block}{Key Challenge}
\small
Verify continuous control behavior across discrete mode transitions
\end{block}
}
\vspace{0.3cm}
\only<3>{
\begin{alertblock}{Reachable Set}
\small
$\mathcal{R}(t) = \{x(t) \mid x(0) \in X_0, \dot{x} = f(x)\}$
\end{alertblock}
}
\only<4->{
\begin{block}{Reachable Set}
\small
$\mathcal{R}(t) = \{x(t) \mid x(0) \in X_0, \dot{x} = f(x)\}$
\end{block}
}
\vspace{0.3cm}
\only<4>{
\begin{alertblock}{Barrier Certificate}
\small
$B(x) > 0 \land \nabla B \cdot f(x) \leq 0 \implies x \in \text{Safe}$
\end{alertblock}
}
\begin{column}{0.6\textwidth}
\includegraphics[height=0.75\textheight]{images/4_research_approach/phase_portrait_sg1.png}
\end{column}
\end{columns}

View File

@ -1,19 +1,16 @@
\begin{frame}{Success will be measured through Technology Readiness Level advancement}
\begin{frame}{Success will be measured through Technology Readiness Level (TRL) advancement}
\begin{columns}
\begin{column}{0.3\textwidth}
\begin{block}{Why TRLs?}
\small
Bridge gap between proof-of-concept and deployment
\begin{itemize}
\item[] Measure both rigor and feasibility
\end{itemize}
\begin{block}{TRL Goal}
\textbf{Current:} TRL 2-3\\
\textbf{Target:} TRL 5
\end{block}
\vspace{0.5cm}
\textbf{Current:} TRL 2-3\\
\textbf{Target:} TRL 5
\end{column}
\begin{column}{0.7\textwidth}

View File

@ -1,13 +1,13 @@
\begin{frame}{Four primary risks are identified with clear mitigation and contingency plans}
\begin{enumerate}
\item<1-> \alert<1>{Computational Tractability of Synthesis}
\item \alert{Computational Tractability of Synthesis}
\item<2-> \alert<2>{Discrete-Continuous Interface Complexity}
\item \alert{Discrete-Continuous Interface Complexity}
\item<3-> \alert<3>{Procedure Formalization Completeness}
\item \alert{Procedure Formalization Completeness}
\item<4-> \alert<4>{Hardware-in-the-Loop Integration}
\item \alert{Hardware-in-the-Loop Integration}
\end{enumerate}
\end{frame}

View File

@ -1,75 +1,64 @@
\begin{frame}{Broader Impact: Multi-billion dollar O\&M cost reduction}
\begin{frame}{Reducing operations costs for new nuclear power is a billion
dollar problem}
\centering
\begin{block}{The Economic Opportunity}
\small
Datacenter electricity demand projected to reach \textbf{1,050 TWh/year by 2030}
\end{block}
\only<1>{
\includegraphics[width=0.8\textwidth]{images/7_broader_impacts/billion.jpg}
}
\vspace{0.5cm}
\only<2>{
\begin{tikzpicture}
% Adjustable parameters
\def\iconsize{1.6cm}
\def\xspacing{1.7cm}
\def\yspacing{1.0cm}
\textbf{If supplied by nuclear power:}
\begin{align*}
\text{Total annual cost} &= 1,050 \text{ TWh/yr} \times \$88.24/\text{MWh} \\
&= \textbf{\$92.7 billion/year}
\end{align*}
\pause
\vspace{0.3cm}
\textbf{O\&M represents 23-30\% of LCOE:}
\begin{align*}
\text{O\&M costs} &= \$92.7\text{B} \times 0.23\text{-}0.30 \\
&= \textbf{\$21-28 billion/year}
\end{align*}
\pause
\vspace{0.5cm}
\begin{center}
\large
\textbf{Autonomous control directly addresses\\
this multi-billion dollar challenge}
\end{center}
% 12 Senior Operators (2 per shift <20> 6 shifts)
\foreach \row in {0,...,5} {
\foreach \col in {0,...,9} {
\node at (\col*\xspacing, -\row*\yspacing)
{\includegraphics[width=\iconsize]{images/7_broader_impacts/billion.jpg}
};
}
}
\end{tikzpicture}
}
\end{frame}
\begin{frame}{Beyond nuclear: A generalizable framework for safety-critical autonomy}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Why Nuclear First?}
\small
\begin{itemize}
\item Highest regulatory requirements
\item Most safety-critical domain
\item Procedures already documented
\item Establishes regulatory pathway
\end{itemize}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Future Applications}
\small
\begin{itemize}
\item Chemical process control
\item Aerospace systems
\item Autonomous transportation
\item Critical infrastructure
\end{itemize}
\end{block}
\end{column}
\end{columns}
\vspace{1cm}
\begin{center}
\textbf{Translate procedures $\rightarrow$ Synthesize logic $\rightarrow$ Verify behavior}\\
\small Applicable to any hybrid system with documented operational requirements
\end{center}
\end{frame}
% \begin{frame}{Beyond nuclear: A generalizable framework for safety-critical autonomy}
%
% \begin{columns}
% \begin{column}{0.5\textwidth}
% \begin{block}{Why Nuclear First?}
% \small
% \begin{itemize}
% \item Highest regulatory requirements
% \item Most safety-critical domain
% \item Procedures already documented
% \item Establishes regulatory pathway
% \end{itemize}
% \end{block}
% \end{column}
%
% \begin{column}{0.5\textwidth}
% \begin{block}{Future Applications}
% \small
% \begin{itemize}
% \item Chemical process control
% \item Aerospace systems
% \item Autonomous transportation
% \item Critical infrastructure
% \end{itemize}
% \end{block}
% \end{column}
% \end{columns}
%
% \vspace{1cm}
%
% \begin{center}
% \textbf{Translate procedures $\rightarrow$ Synthesize logic $\rightarrow$ Verify behavior}\\
% \small Applicable to any hybrid system with documented operational requirements
% \end{center}
%
% \end{frame}

View File

@ -12,7 +12,7 @@
% REQUIREMENTS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{tikz}
\RequirePackage[dvipsnames]{xcolor}
\RequirePackage{xcolor}
\RequirePackage{graphicx}
\RequirePackage{pgfplots}
\RequirePackage{geometry}

View File

@ -0,0 +1,177 @@
using DifferentialEquations
using Plots
"""
Two-Loop Reactor System - FINE Parameter Sweep over μ
Using ONLY constants from Python script
"""
println("=== Two-Loop Reactor: Fine μ Sweep ===\n")
# Constants from Python script
const C_0 = 33.33 # Base Heat Capacity [%-sec/°F]
const τ_0 = 0.75 * C_0 # Base Time Constant [sec]
# Initial conditions from Python script
const T_initial = 450.0 # All temperatures start at 450°F
# Power levels from Python script
const P_r = 100.0 # Reactor power
const Q_sg = 50.0 # Heat removal per steam generator (equal loading)
println("=== Parameters (from Python script) ===")
println("C_0 = $C_0 %-sec/°F")
println("τ_0 = $τ_0 sec")
println("P_r = $P_r")
println("Q_sg = $Q_sg per SG")
# Two-loop system ODEs
function two_loop!(du, u, p, t)
T_hot, T_cold1, T_cold2 = u
μ = p[1]
# System parameters (from Python script)
C_r = μ * C_0
C_sg = (1 - μ) * C_0 / 2
W = C_0 / (2 * τ_0)
# Energy balances (exactly from Python script)
# C_r * dT_hot/dt = P_r - W*(T_hot - T_cold1) - W*(T_hot - T_cold2)
du[1] = (P_r - W * (T_hot - T_cold1) - W * (T_hot - T_cold2)) / C_r
# C_sg * dT_cold1/dt = W*(T_hot - T_cold1) - Q1
du[2] = (W * (T_hot - T_cold1) - Q_sg) / C_sg
# C_sg * dT_cold2/dt = W*(T_hot - T_cold2) - Q2
du[3] = (W * (T_hot - T_cold2) - Q_sg) / C_sg
return du
end
# Initial conditions (exact, from Python script)
u0 = [T_initial, T_initial, T_initial]
println("\n=== Initial Conditions ===")
println("T_hot_0 = $T_initial °F")
println("T_cold1_0 = $T_initial °F")
println("T_cold2_0 = $T_initial °F")
# Fine μ sweep
μ_values = range(0.5, 0.75, length=50) # VERY FINE sweep
println("\n=== μ Sweep ===")
println("μ range: [0.5, 0.75]")
println("Number of cases: $(length(μ_values))")
# Time span
tspan = (0.0, 30.0)
t_save = range(0, 30, length=300)
# Solve for all μ values
println("\nSolving $(length(μ_values)) cases...")
all_sols = []
for (i, μ) in enumerate(μ_values)
if i % 10 == 0
print(".")
end
p = [μ]
prob = ODEProblem(two_loop!, u0, tspan, p)
sol = solve(prob, Tsit5(), saveat=t_save)
push!(all_sols, sol)
end
println(" Done!")
# Extract data
times = all_sols[1].t
all_T_hot = [[sol.u[i][1] for i in 1:length(sol)] for sol in all_sols]
all_T_cold1 = [[sol.u[i][2] for i in 1:length(sol)] for sol in all_sols]
all_T_cold2 = [[sol.u[i][3] for i in 1:length(sol)] for sol in all_sols]
# Compute T_ave for each μ
all_T_ave = []
for (i, μ) in enumerate(μ_values)
T_ave = μ * all_T_hot[i] .+ (1 - μ) * (all_T_cold1[i] .+ all_T_cold2[i]) ./ 2
push!(all_T_ave, T_ave)
end
# Compute envelopes
T_hot_min = [minimum([all_T_hot[i][j] for i in 1:length(μ_values)]) for j in 1:length(times)]
T_hot_max = [maximum([all_T_hot[i][j] for i in 1:length(μ_values)]) for j in 1:length(times)]
T_ave_min = [minimum([all_T_ave[i][j] for i in 1:length(μ_values)]) for j in 1:length(times)]
T_ave_max = [maximum([all_T_ave[i][j] for i in 1:length(μ_values)]) for j in 1:length(times)]
println("\n=== Creating Plots ===")
# Plot 1: T_hot reach tube
p1 = plot(times, T_hot_min, fillrange=T_hot_max,
xlabel="Time (s)", ylabel="T_hot (°F)",
title="Hot Leg Temperature Reach Tube",
fillalpha=0.4, color=:red, lw=2,
label="Reach tube", legend=:bottomright)
# Plot 2: T_ave reach tube
p2 = plot(times, T_ave_min, fillrange=T_ave_max,
xlabel="Time (s)", ylabel="T_avg (°F)",
title="Average Temperature Reach Tube",
fillalpha=0.4, color=:orange, lw=2,
label="Reach tube", legend=:bottomright)
# Plot 3: Phase portrait - just the reach tube boundary
p3 = plot(xlabel="T_avg (°F)", ylabel="T_hot (°F)",
title="Phase Portrait: T_hot vs T_avg",
legend=:bottomright, size=(700, 700))
# Plot the envelope
plot!(p3, [T_ave_min; reverse(T_ave_max)], [T_hot_min; reverse(T_hot_max)],
seriestype=:shape, fillalpha=0.3, color=:purple,
label="Reachable region", lw=2)
# Add boundary traces
plot!(p3, T_ave_min, T_hot_min, color=:blue, lw=2, label="μ = 0.5")
plot!(p3, T_ave_max, T_hot_max, color=:red, lw=2, label="μ = 0.75")
# Plot 4: ΔT reach tube
ΔT_min = [minimum([all_T_hot[i][j] - all_T_cold1[i][j] for i in 1:length(μ_values)]) for j in 1:length(times)]
ΔT_max = [maximum([all_T_hot[i][j] - all_T_cold1[i][j] for i in 1:length(μ_values)]) for j in 1:length(times)]
p4 = plot(times, ΔT_min, fillrange=ΔT_max,
xlabel="Time (s)", ylabel="ΔT = T_hot - T_cold (°F)",
title="Loop Temperature Difference",
fillalpha=0.4, color=:green, lw=2,
label="Reach tube", legend=:bottomright)
plot_combined = plot(p1, p2, p3, p4, layout=(2, 2), size=(1400, 1000),
plot_title="Two-Loop Reactor: μ Uncertainty [0.5, 0.75]")
savefig(plot_combined, "two_loop_fine_sweep.png")
println("Saved: two_loop_fine_sweep.png")
# Detailed phase portrait
p_phase = plot(xlabel="T_avg (°F)", ylabel="T_hot (°F)",
title="Phase Portrait: T_hot vs T_avg\n(μ uncertainty: [0.5, 0.75])",
size=(1000, 900), legend=:bottomright)
# Plot all trajectories (lightly)
for (i, μ) in enumerate(μ_values)
color_val = (μ - minimum(μ_values)) / (maximum(μ_values) - minimum(μ_values))
plot!(p_phase, all_T_ave[i], all_T_hot[i],
color=cgrad(:viridis)[color_val], lw=1, alpha=0.2, label="")
end
# Add thick envelope
plot!(p_phase, [T_ave_min; reverse(T_ave_max)], [T_hot_min; reverse(T_hot_max)],
seriestype=:shape, fillalpha=0.2, color=:purple,
label="Reachable region", lw=3)
# Mark extremes
plot!(p_phase, all_T_ave[1], all_T_hot[1],
color=:blue, lw=3, label="μ = 0.5", linestyle=:dash)
plot!(p_phase, all_T_ave[end], all_T_hot[end],
color=:red, lw=3, label="μ = 0.75", linestyle=:dash)
savefig(p_phase, "phase_portrait_fine.png")
println("Saved: phase_portrait_fine.png")
println("\n✓ Complete!")
println("\nResults:")
println(" T_hot range: [$(round(minimum(T_hot_min), digits=1)), $(round(maximum(T_hot_max), digits=1))] °F")
println(" T_avg range: [$(round(minimum(T_ave_min), digits=1)), $(round(maximum(T_ave_max), digits=1))] °F")
println(" ΔT range: [$(round(minimum(ΔT_min), digits=1)), $(round(maximum(ΔT_max), digits=1))] °F")

View File

@ -0,0 +1,215 @@
using ReachabilityAnalysis
using LinearAlgebra
using Plots
"""
Two-Loop Reactor: Linearized Reachability Analysis
Since the nonlinear system is causing issues with all algorithms,
let's linearize around an equilibrium point and use LGG09.
This is actual formal reachability analysis - the linearization is
a standard approximation technique used in control theory.
"""
println("=== Two-Loop Reactor: Linearized Reachability ===\n")
# Constants
const C_0 = 33.33
const τ_0 = 0.75 * C_0
const μ = 0.6
const P_r = 100.0
const Q2 = 50.0
C_r = μ * C_0
C_sg = (1 - μ) * C_0 / 2
W = C_0 / (2 * τ_0)
println("=== System Parameters ===")
println("C_r = $C_r, C_sg = $C_sg, W = $W")
# Find equilibrium with Q1 = 50
# At equilibrium: dT/dt = 0
# From equations:
# P_r - W*(T_hot - T_cold1) - W*(T_hot - T_cold2) = 0
# W*(T_hot - T_cold1) - Q1 = 0 => T_hot - T_cold1 = Q1/W
# W*(T_hot - T_cold2) - Q2 = 0 => T_hot - T_cold2 = Q2/W
Q1_nominal = 50.0
T_hot_eq = 453.0 # Approximate equilibrium
T_cold1_eq = T_hot_eq - Q1_nominal/W
T_cold2_eq = T_hot_eq - Q2/W
println("\n=== Equilibrium Point (Q1 = $Q1_nominal) ===")
println("T_hot_eq = $T_hot_eq °F")
println("T_cold1_eq = $T_cold1_eq °F")
println("T_cold2_eq = $T_cold2_eq °F")
# Linearize around equilibrium
# State: x = [T_hot - T_hot_eq, T_cold1 - T_cold1_eq, T_cold2 - T_cold2_eq, Q1 - Q1_nominal]
#
# Original equations:
# dT_hot/dt = (P_r - W*(T_hot - T_cold1) - W*(T_hot - T_cold2)) / C_r
# dT_cold1/dt = (W*(T_hot - T_cold1) - Q1) / C_sg
# dT_cold2/dt = (W*(T_hot - T_cold2) - Q2) / C_sg
# dQ1/dt = 0
#
# Linearized (using deviations from equilibrium):
# dx1/dt = (-W*x1 + W*x2 + W*x3) / C_r
# dx2/dt = (W*x1 - W*x2 - x4) / C_sg
# dx3/dt = (W*x1 - W*x3) / C_sg
# dx4/dt = 0
A = [
-W/C_r W/C_r W/C_r 0.0;
W/C_sg -W/C_sg 0.0 -1.0/C_sg;
W/C_sg 0.0 -W/C_sg 0.0;
0.0 0.0 0.0 0.0
]
println("\n=== Linearized System Matrix A ===")
display(A)
println()
# Initial set: Small deviations from equilibrium
# Starting close to equilibrium but with full Q1 uncertainty
δT_init = 2.0 # ±2°F initial temperature deviation
Q1_min = 45.0
Q1_max = 55.0
X0 = Hyperrectangle(
low=[-δT_init, -δT_init, -δT_init, Q1_min - Q1_nominal],
high=[δT_init, δT_init, δT_init, Q1_max - Q1_nominal]
)
println("\n=== Initial Set (deviations from equilibrium) ===")
println("δT_hot ∈ [-$δT_init, $δT_init]")
println("δT_cold1 ∈ [-$δT_init, $δT_init]")
println("δT_cold2 ∈ [-$δT_init, $δT_init]")
println("δQ1 ∈ [$(Q1_min - Q1_nominal), $(Q1_max - Q1_nominal)]")
# Create linear system
sys = @system(x' = A*x, x Universe(4))
# Create IVP
prob = InitialValueProblem(sys, X0)
println("\n=== Solving with LGG09 (Exact for Linear Systems!) ===")
# Solve - LGG09 is EXACT for linear systems!
# Must specify vars and dimension
sol = solve(prob, T=30.0, alg=LGG09(δ=0.5, vars=[1, 2, 3, 4], dim=4))
println("✓ Success! Computed $(length(sol)) reach sets")
println("\nNote: LGG09 provides EXACT reachability for linear systems!")
# Convert back to absolute temperatures for plotting
println("\n=== Creating Plots ===")
# Extract and shift back to absolute coordinates
function plot_absolute(sol, var_idx, eq_val, ylabel_text, title_text, color_choice)
# Get the reach sets
times = Float64[]
lower = Float64[]
upper = Float64[]
for reach_set in sol
t = inf(reach_set.t_start)
set = reach_set.X
# Project to variable
proj = project(set, var_idx)
# Get bounds
low_val = low(proj)[1] + eq_val
high_val = high(proj)[1] + eq_val
push!(times, t)
push!(lower, low_val)
push!(upper, high_val)
end
p = plot(times, lower, fillrange=upper,
xlabel="Time (s)", ylabel=ylabel_text,
title=title_text,
fillalpha=0.5, color=color_choice, lw=2,
label="Reach tube", legend=:topright)
return p
end
p1 = plot_absolute(sol, 1, T_hot_eq, "T_hot (°F)", "Hot Leg Temperature", :red)
p2 = plot_absolute(sol, 2, T_cold1_eq, "T_cold1 (°F)", "Cold Leg 1 (SG1 - Uncertain)", :blue)
p3 = plot_absolute(sol, 3, T_cold2_eq, "T_cold2 (°F)", "Cold Leg 2 (SG2 - Known)", :green)
# Phase portrait: T_hot vs T_cold1
p4 = plot(xlabel="T_cold1 (°F)", ylabel="T_hot (°F)",
title="Phase Portrait: T_hot vs T_cold1",
legend=:topright)
for reach_set in sol
set = reach_set.X
# Project to (x2, x1)
proj = project(set, [2, 1])
# Get vertices and shift
verts = vertices_list(proj)
verts_abs = [[v[1] + T_cold1_eq, v[2] + T_hot_eq] for v in verts]
# Plot polygon
xs = [v[1] for v in verts_abs]
ys = [v[2] for v in verts_abs]
push!(xs, xs[1]) # Close the polygon
push!(ys, ys[1])
plot!(p4, xs, ys, fillalpha=0.3, color=:purple, lw=0, label="")
end
plot!(p4, [], [], fillalpha=0.3, color=:purple, label="Reachable sets")
plot_combined = plot(p1, p2, p3, p4, layout=(2, 2), size=(1400, 1000),
plot_title="Linearized Reachability Analysis: Q1 ∈ [$Q1_min, $Q1_max]")
savefig(plot_combined, "two_loop_linearized_reachability.png")
println("Saved: two_loop_linearized_reachability.png")
# Detailed phase portrait
p_phase = plot(xlabel="T_cold1 (°F)", ylabel="T_hot (°F)",
title="Phase Portrait: T_hot vs T_cold1\n(Linearized Reachability: Q1 ∈ [$Q1_min, $Q1_max])",
size=(1000, 900), legend=:topright)
for (i, reach_set) in enumerate(sol)
set = reach_set.X
proj = project(set, [2, 1])
verts = vertices_list(proj)
verts_abs = [[v[1] + T_cold1_eq, v[2] + T_hot_eq] for v in verts]
xs = [v[1] for v in verts_abs]
ys = [v[2] for v in verts_abs]
push!(xs, xs[1])
push!(ys, ys[1])
alpha_val = 0.2 + 0.3 * (i / length(sol)) # Fade over time
plot!(p_phase, xs, ys, fillalpha=alpha_val, color=:purple, lw=0.5, label="")
end
plot!(p_phase, [], [], fillalpha=0.5, color=:purple, label="Reachable region")
savefig(p_phase, "phase_portrait_linearized.png")
println("Saved: phase_portrait_linearized.png")
println("\n✓ Complete!")
println("\n=== Results ===")
println("This is FORMAL reachability analysis using linear approximation.")
println("LGG09 provides EXACT reachable sets for linear systems.")
println("\nThe linearization is valid near the equilibrium point.")
println("For large deviations, use parameter sweeps (our previous approach).")
# Print final bounds
final_set = sol[end].X
println("\n=== Final Reachable Set (t=30s) ===")
proj1 = project(final_set, 1)
proj2 = project(final_set, 2)
proj3 = project(final_set, 3)
println("T_hot ∈ [$(round(low(proj1)[1] + T_hot_eq, digits=1)), $(round(high(proj1)[1] + T_hot_eq, digits=1))] °F")
println("T_cold1 ∈ [$(round(low(proj2)[1] + T_cold1_eq, digits=1)), $(round(high(proj2)[1] + T_cold1_eq, digits=1))] °F")
println("T_cold2 ∈ [$(round(low(proj3)[1] + T_cold2_eq, digits=1)), $(round(high(proj3)[1] + T_cold2_eq, digits=1))] °F")

View File

@ -0,0 +1,185 @@
using ReachabilityAnalysis
using Plots
"""
Two-Loop Reactor: Formal Reachability Analysis with SG1 Efficiency Uncertainty
Using ReachabilityAnalysis.jl with set-based methods (not parameter sweeps!)
Key insight: We'll treat Q1 as an uncertain INPUT, not a state variable.
This avoids the @taylorize issues we had before.
"""
println("=== Two-Loop Reactor: Formal Reachability Analysis ===\n")
# Constants from Python script
const C_0 = 33.33 # Base Heat Capacity [%-sec/°F]
const τ_0 = 0.75 * C_0 # Base Time Constant [sec]
const μ = 0.6 # Fixed reactor water mass fraction
const P_r = 100.0 # Reactor power
const Q2 = 50.0 # SG2 heat removal (KNOWN)
println("=== Parameters ===")
println("C_0 = $C_0 %-sec/°F")
println("τ_0 = $τ_0 sec")
println("μ = (fixed)")
println("P_r = $P_r")
println("Q2 = $Q2 (SG2 - KNOWN)")
# System parameters
C_r = μ * C_0
C_sg = (1 - μ) * C_0 / 2
W = C_0 / (2 * τ_0)
println("\nComputed parameters:")
println("C_r = $C_r")
println("C_sg = $C_sg")
println("W = $W")
# Initial conditions (non-equilibrium)
const T_hot_0 = 455.0
const T_cold1_0 = 450.0
const T_cold2_0 = 450.0
println("\n=== Initial Conditions ===")
println("T_hot_0 = $T_hot_0 °F")
println("T_cold1_0 = $T_cold1_0 °F")
println("T_cold2_0 = $T_cold2_0 °F")
# Q1 uncertainty range
const Q1_min = 45.0
const Q1_max = 55.0
const Q1_center = (Q1_min + Q1_max) / 2
println("\n=== Q1 Uncertainty (SG1 Heat Removal) ===")
println("Q1 ∈ [$Q1_min, $Q1_max]")
println("Q1_center = $Q1_center")
# Define the system using @taylorize
# We'll approximate Q1 uncertainty by adding it as a 4th state with Q̇1 = 0
@taylorize function two_loop_with_Q1!(du, u, p, t)
T_hot, T_cold1, T_cold2, Q1 = u
# Energy balances
du[1] = (P_r - W * (T_hot - T_cold1) - W * (T_hot - T_cold2)) / C_r
du[2] = (W * (T_hot - T_cold1) - Q1) / C_sg
du[3] = (W * (T_hot - T_cold2) - Q2) / C_sg
du[4] = 0.0 # Q1 is constant uncertain parameter
return du
end
# Initial set: Small box around initial point for temps, larger for Q1
# Using Hyperrectangle for initial set
X0_low = [T_hot_0 - 0.1, T_cold1_0 - 0.1, T_cold2_0 - 0.1, Q1_min]
X0_high = [T_hot_0 + 0.1, T_cold1_0 + 0.1, T_cold2_0 + 0.1, Q1_max]
X0 = Hyperrectangle(low=X0_low, high=X0_high)
println("\n=== Initial Set ===")
println("X0 = Hyperrectangle")
println(" T_hot ∈ [$(T_hot_0 - 0.1), $(T_hot_0 + 0.1)]")
println(" T_cold1 ∈ [$(T_cold1_0 - 0.1), $(T_cold1_0 + 0.1)]")
println(" T_cold2 ∈ [$(T_cold2_0 - 0.1), $(T_cold2_0 + 0.1)]")
println(" Q1 ∈ [$Q1_min, $Q1_max]")
# Create the initial value problem
prob = @ivp(x' = two_loop_with_Q1!(x), dim: 4, x(0) X0)
println("\n=== Solving Reachability Problem ===")
println("Using TMJets algorithm (Taylor models)...")
# Solve using TMJets (Taylor model integration)
# This is ACTUAL reachability analysis, not simulation!
sol = solve(prob, T=30.0, alg=TMJets(abstol=1e-10, orderT=7, orderQ=1))
println("✓ Reachability computation complete!")
println("Number of reach sets: $(length(sol))")
# Extract flowpipe projections
println("\n=== Creating Plots ===")
# Plot 1: T_hot vs time
p1 = plot(sol, vars=(0, 1),
xlabel="Time (s)", ylabel="T_hot (°F)",
title="Hot Leg Temperature Reach Tube",
lw=0, alpha=0.5, color=:red,
lab="Reachable set")
# Plot 2: T_cold1 vs time (affected by Q1 uncertainty)
p2 = plot(sol, vars=(0, 2),
xlabel="Time (s)", ylabel="T_cold1 (°F)",
title="Cold Leg 1 (SG1 - Uncertain)",
lw=0, alpha=0.5, color=:blue,
lab="Reachable set")
# Plot 3: T_cold2 vs time (not affected by Q1)
p3 = plot(sol, vars=(0, 3),
xlabel="Time (s)", ylabel="T_cold2 (°F)",
title="Cold Leg 2 (SG2 - Known)",
lw=0, alpha=0.5, color=:green,
lab="Reachable set")
# Plot 4: Phase portrait T_hot vs T_cold1
p4 = plot(sol, vars=(2, 1),
xlabel="T_cold1 (°F)", ylabel="T_hot (°F)",
title="Phase Portrait: T_hot vs T_cold1",
lw=0, alpha=0.5, color=:purple,
lab="Reachable set")
plot_combined = plot(p1, p2, p3, p4, layout=(2, 2), size=(1400, 1000),
plot_title="Formal Reachability Analysis: SG1 Uncertainty Q1 ∈ [$Q1_min, $Q1_max]")
savefig(plot_combined, "two_loop_reachability.png")
println("Saved: two_loop_reachability.png")
# Compute T_avg for each reach set and create phase portrait
println("\n=== Computing T_avg Reachability ===")
# For T_avg phase portrait, we need to project to (T_avg, T_hot) space
# T_avg = μ*T_hot + (1-μ)*(T_cold1 + T_cold2)/2
# This requires linear transformation of the flowpipe
# Let's create a detailed phase portrait plot
p_phase = plot(xlabel="T_avg (°F)", ylabel="T_hot (°F)",
title="Phase Portrait: T_hot vs T_avg\n(Formal Reachability: Q1 ∈ [$Q1_min, $Q1_max])",
size=(1000, 900), legend=:topright)
# We'll sample the boundary of each reach set
println("Extracting reach set boundaries for T_avg computation...")
for (i, reach_set) in enumerate(sol)
if i % 10 == 0
# Sample this reach set
T_hot_vals = Float64[]
T_avg_vals = Float64[]
# Get the set at this time step
set = reach_set.X
# Sample vertices and some interior points
for _ in 1:50
# Sample a random point from the set
pt = sample(set)
T_h = pt[1]
T_c1 = pt[2]
T_c2 = pt[3]
T_avg = μ * T_h + (1 - μ) * (T_c1 + T_c2) / 2
push!(T_hot_vals, T_h)
push!(T_avg_vals, T_avg)
end
# Plot the cloud of points
scatter!(p_phase, T_avg_vals, T_hot_vals,
markersize=2, alpha=0.3, color=:purple, label="")
end
end
savefig(p_phase, "phase_portrait_reachability.png")
println("Saved: phase_portrait_reachability.png")
println("\n✓ Complete!")
println("\n=== Reachability Analysis Results ===")
println("This is FORMAL reachability analysis using Taylor models,")
println("not simulation-based parameter sweeps!")
println("\nThe reach tubes show ALL possible trajectories for")
println("Q1 ∈ [$Q1_min, $Q1_max] with GUARANTEES.")

View File

@ -0,0 +1,150 @@
using ReachabilityAnalysis
using Plots
"""
Two-Loop Reactor: Formal Reachability Analysis with SG1 Efficiency Uncertainty
Attempt #2: Using LGG09 algorithm which doesn't require @taylorize
This uses zonotope overapproximation instead of Taylor models.
"""
println("=== Two-Loop Reactor: Formal Reachability (LGG09) ===\n")
# Constants from Python script
const C_0 = 33.33 # Base Heat Capacity [%-sec/°F]
const τ_0 = 0.75 * C_0 # Base Time Constant [sec]
const μ = 0.6 # Fixed reactor water mass fraction
const P_r = 100.0 # Reactor power
const Q2 = 50.0 # SG2 heat removal (KNOWN)
# System parameters
C_r = μ * C_0
C_sg = (1 - μ) * C_0 / 2
W = C_0 / (2 * τ_0)
println("=== Parameters ===")
println("C_0 = $C_0, τ_0 = $τ_0, μ = ")
println("C_r = $C_r, C_sg = $C_sg, W = $W")
println("P_r = $P_r, Q2 = $Q2")
# Initial conditions (non-equilibrium)
const T_hot_0 = 455.0
const T_cold1_0 = 450.0
const T_cold2_0 = 450.0
# Q1 uncertainty range
const Q1_min = 45.0
const Q1_max = 55.0
println("\n=== Q1 Uncertainty ===")
println("Q1 ∈ [$Q1_min, $Q1_max]")
# Define system WITHOUT @taylorize (for LGG09 algorithm)
# Treat Q1 as 4th state with Q̇1 = 0
function two_loop_with_Q1!(dx, x, p, t)
T_hot = x[1]
T_cold1 = x[2]
T_cold2 = x[3]
Q1 = x[4]
# Energy balances
dx[1] = (P_r - W * (T_hot - T_cold1) - W * (T_hot - T_cold2)) / C_r
dx[2] = (W * (T_hot - T_cold1) - Q1) / C_sg
dx[3] = (W * (T_hot - T_cold2) - Q2) / C_sg
dx[4] = 0.0 # Q1 is constant uncertain parameter
return dx
end
# Initial set
X0 = Hyperrectangle(
low=[T_hot_0 - 0.1, T_cold1_0 - 0.1, T_cold2_0 - 0.1, Q1_min],
high=[T_hot_0 + 0.1, T_cold1_0 + 0.1, T_cold2_0 + 0.1, Q1_max]
)
println("\n=== Initial Set ===")
println("X0 = Hyperrectangle(4D)")
# Create IVP
prob = @ivp(x' = two_loop_with_Q1!(x), dim: 4, x(0) X0)
println("\n=== Solving with LGG09 (Zonotope) ===")
println("This uses zonotope overapproximation...")
# Try LGG09 algorithm (doesn't require @taylorize)
try
sol = solve(prob, T=30.0, alg=LGG09(δ=0.1))
println("✓ Success! Computed $(length(sol)) reach sets")
# Plot results
p1 = plot(sol, vars=(0, 1),
xlabel="Time (s)", ylabel="T_hot (°F)",
title="Hot Leg Temperature",
lw=0.5, alpha=0.6, color=:red, lab="Reach sets")
p2 = plot(sol, vars=(0, 2),
xlabel="Time (s)", ylabel="T_cold1 (°F)",
title="Cold Leg 1 (SG1 - Uncertain)",
lw=0.5, alpha=0.6, color=:blue, lab="Reach sets")
p3 = plot(sol, vars=(0, 3),
xlabel="Time (s)", ylabel="T_cold2 (°F)",
title="Cold Leg 2 (SG2 - Known)",
lw=0.5, alpha=0.6, color=:green, lab="Reach sets")
p4 = plot(sol, vars=(2, 1),
xlabel="T_cold1 (°F)", ylabel="T_hot (°F)",
title="Phase Portrait",
lw=0.5, alpha=0.6, color=:purple, lab="Reach sets")
plot_combined = plot(p1, p2, p3, p4, layout=(2, 2), size=(1400, 1000),
plot_title="Formal Reachability (LGG09): Q1 ∈ [$Q1_min, $Q1_max]")
savefig(plot_combined, "two_loop_reachability_lgg09.png")
println("\nSaved: two_loop_reachability_lgg09.png")
catch e
println("❌ LGG09 failed: $e")
println("\nTrying GLGM06 instead...")
try
sol = solve(prob, T=30.0, alg=GLGM06(δ=0.1))
println("✓ Success with GLGM06! Computed $(length(sol)) reach sets")
# Plot results
p1 = plot(sol, vars=(0, 1),
xlabel="Time (s)", ylabel="T_hot (°F)",
title="Hot Leg Temperature",
lw=0.5, alpha=0.6, color=:red, lab="Reach sets")
p2 = plot(sol, vars=(0, 2),
xlabel="Time (s)", ylabel="T_cold1 (°F)",
title="Cold Leg 1 (SG1 - Uncertain)",
lw=0.5, alpha=0.6, color=:blue, lab="Reach sets")
p3 = plot(sol, vars=(0, 3),
xlabel="Time (s)", ylabel="T_cold2 (°F)",
title="Cold Leg 2 (SG2 - Known)",
lw=0.5, alpha=0.6, color=:green, lab="Reach sets")
p4 = plot(sol, vars=(2, 1),
xlabel="T_cold1 (°F)", ylabel="T_hot (°F)",
title="Phase Portrait",
lw=0.5, alpha=0.6, color=:purple, lab="Reach sets")
plot_combined = plot(p1, p2, p3, p4, layout=(2, 2), size=(1400, 1000),
plot_title="Formal Reachability (GLGM06): Q1 ∈ [$Q1_min, $Q1_max]")
savefig(plot_combined, "two_loop_reachability_glgm06.png")
println("\nSaved: two_loop_reachability_glgm06.png")
catch e2
println("❌ GLGM06 also failed: $e2")
println("\n=== Both algorithms failed ===")
println("The system may be too nonlinear for these approximation methods.")
println("\nParameter sweep (our previous approach) may be the most practical")
println("method for this system, even if it's not formally reachability analysis.")
end
end
println("\n✓ Complete!")

View File

@ -0,0 +1,179 @@
using DifferentialEquations
using Plots
"""
Two-Loop Reactor: SG1 Heat Removal Uncertainty
Simple, realistic scenario:
- SG2 efficiency is known: Q2 = 50.0
- SG1 efficiency is uncertain: Q1 [45, 55] (±10% due to fouling/conditions)
- Everything else is exact!
This shows how uncertainty in ONE component propagates through the system.
"""
println("=== Two-Loop Reactor: SG1 Heat Removal Uncertainty ===\n")
# Constants from Python script
const C_0 = 33.33 # Base Heat Capacity [%-sec/°F]
const τ_0 = 0.75 * C_0 # Base Time Constant [sec]
const μ = 0.6 # Fixed reactor water mass fraction
const P_r = 100.0 # Reactor power
const Q2 = 50.0 # SG2 heat removal (KNOWN)
println("=== Parameters ===")
println("C_0 = $C_0 %-sec/°F")
println("τ_0 = $τ_0 sec")
println("μ = (fixed)")
println("P_r = $P_r")
println("Q2 = $Q2 (SG2 - KNOWN)")
# Initial conditions (non-equilibrium for interesting dynamics)
const T_hot_0 = 455.0 # Hot leg slightly elevated
const T_cold1_0 = 450.0 # Cold legs at reference
const T_cold2_0 = 450.0
println("\n=== Initial Conditions ===")
println("T_hot_0 = $T_hot_0 °F")
println("T_cold1_0 = $T_cold1_0 °F")
println("T_cold2_0 = $T_cold2_0 °F")
# Two-loop ODEs with Q1 as parameter
function two_loop!(du, u, p, t)
T_hot, T_cold1, T_cold2 = u
Q1 = p[1] # SG1 heat removal (UNCERTAIN)
# System parameters
C_r = μ * C_0
C_sg = (1 - μ) * C_0 / 2
W = C_0 / (2 * τ_0)
# Energy balances
du[1] = (P_r - W * (T_hot - T_cold1) - W * (T_hot - T_cold2)) / C_r
du[2] = (W * (T_hot - T_cold1) - Q1) / C_sg # Q1 varies!
du[3] = (W * (T_hot - T_cold2) - Q2) / C_sg # Q2 fixed
return du
end
# Q1 uncertainty range
Q1_values = range(45.0, 55.0, length=40) # Fine sweep over ±10%
println("\n=== Q1 Uncertainty (SG1 Heat Removal) ===")
println("Q1 range: [45.0, 55.0] (±10% from nominal 50)")
println("Number of cases: $(length(Q1_values))")
println("\nPhysical meaning:")
println(" Q1 = 45: SG1 is 10% less efficient (fouling, poor heat transfer)")
println(" Q1 = 55: SG1 is 10% more efficient (better conditions)")
# Solve for all Q1 values
u0 = [T_hot_0, T_cold1_0, T_cold2_0]
tspan = (0.0, 30.0)
t_save = range(0, 30, length=300)
println("\nSolving...")
all_sols = []
for Q1 in Q1_values
p = [Q1]
prob = ODEProblem(two_loop!, u0, tspan, p)
sol = solve(prob, Tsit5(), saveat=t_save)
push!(all_sols, sol)
end
println("Done!")
# Extract data
times = all_sols[1].t
all_T_hot = [[sol.u[i][1] for i in 1:length(sol)] for sol in all_sols]
all_T_cold1 = [[sol.u[i][2] for i in 1:length(sol)] for sol in all_sols]
all_T_cold2 = [[sol.u[i][3] for i in 1:length(sol)] for sol in all_sols]
# Compute T_ave
all_T_ave = []
for (i, Q1) in enumerate(Q1_values)
T_ave = μ * all_T_hot[i] .+ (1 - μ) * (all_T_cold1[i] .+ all_T_cold2[i]) ./ 2
push!(all_T_ave, T_ave)
end
# Compute reach tube envelopes
T_hot_min = [minimum([all_T_hot[i][j] for i in 1:length(Q1_values)]) for j in 1:length(times)]
T_hot_max = [maximum([all_T_hot[i][j] for i in 1:length(Q1_values)]) for j in 1:length(times)]
T_cold1_min = [minimum([all_T_cold1[i][j] for i in 1:length(Q1_values)]) for j in 1:length(times)]
T_cold1_max = [maximum([all_T_cold1[i][j] for i in 1:length(Q1_values)]) for j in 1:length(times)]
T_ave_min = [minimum([all_T_ave[i][j] for i in 1:length(Q1_values)]) for j in 1:length(times)]
T_ave_max = [maximum([all_T_ave[i][j] for i in 1:length(Q1_values)]) for j in 1:length(times)]
println("\n=== Creating Plots ===")
# Plot 1: T_hot reach tube
p1 = plot(times, T_hot_min, fillrange=T_hot_max,
xlabel="Time (s)", ylabel="T_hot (°F)",
title="Hot Leg Temperature",
fillalpha=0.4, color=:red, lw=2.5,
label="Reach tube", legend=:topright)
# Plot 2: T_cold1 reach tube (affected by Q1 uncertainty)
p2 = plot(times, T_cold1_min, fillrange=T_cold1_max,
xlabel="Time (s)", ylabel="T_cold1 (°F)",
title="Cold Leg 1 (SG1 - Uncertain)",
fillalpha=0.4, color=:blue, lw=2.5,
label="Reach tube", legend=:topright)
# Plot 3: T_ave reach tube
p3 = plot(times, T_ave_min, fillrange=T_ave_max,
xlabel="Time (s)", ylabel="T_avg (°F)",
title="Average Primary Temperature",
fillalpha=0.4, color=:orange, lw=2.5,
label="Reach tube", legend=:topright)
# Plot 4: Phase portrait T_hot vs T_ave
p4 = plot(xlabel="T_avg (°F)", ylabel="T_hot (°F)",
title="Phase Portrait: T_hot vs T_avg",
legend=:topright)
# Plot envelope
plot!(p4, [T_ave_min; reverse(T_ave_max)], [T_hot_min; reverse(T_hot_max)],
seriestype=:shape, fillalpha=0.3, color=:purple,
label="Reachable region", lw=2.5)
# Mark extremes
plot!(p4, T_ave_min, T_hot_min, color=:blue, lw=2.5, label="Q1 = 45", linestyle=:dash)
plot!(p4, T_ave_max, T_hot_max, color=:red, lw=2.5, label="Q1 = 55", linestyle=:dash)
plot_combined = plot(p1, p2, p3, p4, layout=(2, 2), size=(1400, 1000),
plot_title="SG1 Heat Removal Uncertainty: Q1 ∈ [45, 55]")
savefig(plot_combined, "sg1_uncertainty.png")
println("Saved: sg1_uncertainty.png")
# Detailed phase portrait
p_phase = plot(xlabel="T_avg (°F)", ylabel="T_hot (°F)",
title="Phase Portrait: T_hot vs T_avg\n(SG1 efficiency uncertainty: Q1 ∈ [45, 55])",
size=(1000, 900), legend=:topright)
# Plot all trajectories
for (i, Q1) in enumerate(Q1_values)
color_val = (Q1 - minimum(Q1_values)) / (maximum(Q1_values) - minimum(Q1_values))
plot!(p_phase, all_T_ave[i], all_T_hot[i],
color=cgrad(:RdBu)[color_val], lw=1.5, alpha=0.3, label="")
end
# Add envelope
plot!(p_phase, [T_ave_min; reverse(T_ave_max)], [T_hot_min; reverse(T_hot_max)],
seriestype=:shape, fillalpha=0.25, color=:purple,
label="Reachable region", lw=3)
# Mark extremes
plot!(p_phase, all_T_ave[1], all_T_hot[1],
color=:blue, lw=3.5, label="Q1 = 45 (low efficiency)", linestyle=:dash)
plot!(p_phase, all_T_ave[end], all_T_hot[end],
color=:red, lw=3.5, label="Q1 = 55 (high efficiency)", linestyle=:dash)
savefig(p_phase, "phase_portrait_sg1.png")
println("Saved: phase_portrait_sg1.png")
println("\n✓ Complete!")
println("\n=== Results ===")
println("T_hot range: [$(round(minimum(T_hot_min), digits=1)), $(round(maximum(T_hot_max), digits=1))] °F")
println("T_avg range: [$(round(minimum(T_ave_min), digits=1)), $(round(maximum(T_ave_max), digits=1))] °F")
println("T_cold1 range: [$(round(minimum(T_cold1_min), digits=1)), $(round(maximum(T_cold1_max), digits=1))] °F")
println("\nΔT_hot = $(round(maximum(T_hot_max) - minimum(T_hot_min), digits=1)) °F")
println("ΔT_avg = $(round(maximum(T_ave_max) - minimum(T_ave_min), digits=1)) °F")

View File

@ -0,0 +1,216 @@
using ReachabilityAnalysis
using Plots
"""
Two-Loop Reactor: Temperature Uncertainty Propagation
Simple, clean approach:
- Uncertainty ONLY in initial temperatures: T_hot, T_cold1, T_cold2
- Everything else is FIXED: μ = 0.6, Q1 = 50, Q2 = 50, P_r = 100
- T_avg is derived from the uncertain temperatures
This shows how initial temperature measurement uncertainty propagates.
"""
println("=== Two-Loop Reactor: Initial Temperature Uncertainty ===\n")
# ALL parameters are FIXED (no uncertainty)
const C_0 = 33.33 # Base Heat Capacity [%-sec/°F]
const τ_0 = 0.75 * C_0 # Base Time Constant [sec]
const μ = 0.6 # FIXED reactor water mass fraction
const P_r = 100.0 # FIXED reactor power
const Q1 = 50.0 # FIXED SG1 heat removal
const Q2 = 50.0 # FIXED SG2 heat removal
# System parameters (all fixed)
C_r = μ * C_0
C_sg = (1 - μ) * C_0 / 2
W = C_0 / (2 * τ_0)
println("=== Fixed Parameters ===")
println("C_0 = $C_0 %-sec/°F")
println("τ_0 = $τ_0 sec")
println("μ = (FIXED)")
println("P_r = $P_r (FIXED)")
println("Q1 = $Q1 (FIXED)")
println("Q2 = $Q2 (FIXED)")
println("\nComputed:")
println("C_r = $C_r")
println("C_sg = $C_sg")
println("W = $W")
# Initial temperature uncertainty
# Realistic: ±2°F measurement uncertainty
const T_hot_nominal = 455.0
const T_cold_nominal = 450.0
const δT = 2.0 # ±2°F uncertainty
println("\n=== Initial Temperature Uncertainty ===")
println("T_hot ∈ [$(T_hot_nominal - δT), $(T_hot_nominal + δT)] °F")
println("T_cold1 ∈ [$(T_cold_nominal - δT), $(T_cold_nominal + δT)] °F")
println("T_cold2 ∈ [$(T_cold_nominal - δT), $(T_cold_nominal + δT)] °F")
println("\nPhysical meaning: ±$δT°F measurement uncertainty")
# Define system (no @taylorize, just plain function)
function two_loop!(dx, x, p, t)
T_hot = x[1]
T_cold1 = x[2]
T_cold2 = x[3]
# Energy balances with FIXED parameters
dx[1] = (P_r - W * (T_hot - T_cold1) - W * (T_hot - T_cold2)) / C_r
dx[2] = (W * (T_hot - T_cold1) - Q1) / C_sg
dx[3] = (W * (T_hot - T_cold2) - Q2) / C_sg
return dx
end
# Try using @taylorize for TMJets
@taylorize function two_loop_taylor!(dx, x, p, t)
T_hot = x[1]
T_cold1 = x[2]
T_cold2 = x[3]
# Energy balances with FIXED parameters
dx[1] = (P_r - W * (T_hot - T_cold1) - W * (T_hot - T_cold2)) / C_r
dx[2] = (W * (T_hot - T_cold1) - Q1) / C_sg
dx[3] = (W * (T_hot - T_cold2) - Q2) / C_sg
return dx
end
# Initial set: Box around nominal temperatures
X0 = Hyperrectangle(
low=[T_hot_nominal - δT, T_cold_nominal - δT, T_cold_nominal - δT],
high=[T_hot_nominal + δT, T_cold_nominal + δT, T_cold_nominal + δT]
)
println("\n=== Attempting TMJets (Taylor Models) ===")
println("This is FORMAL reachability analysis...")
# Create IVP with @taylorize version
prob = @ivp(x' = two_loop_taylor!(x), dim: 3, x(0) X0)
try
# Try TMJets - this should work since all parameters are constants!
sol = solve(prob, T=30.0, alg=TMJets(abstol=1e-10, orderT=7, orderQ=2))
println("✓ TMJets SUCCESS! Computed $(length(sol)) reach sets")
println("\nThis is FORMAL reachability analysis using Taylor models!")
# Plot results
println("\n=== Creating Plots ===")
# Plot 1: T_hot reach tube
p1 = plot(sol, vars=(0, 1),
xlabel="Time (s)", ylabel="T_hot (°F)",
title="Hot Leg Temperature",
lw=0, alpha=0.5, color=:red,
lab="Reach tube")
# Plot 2: T_cold1 reach tube
p2 = plot(sol, vars=(0, 2),
xlabel="Time (s)", ylabel="T_cold1 (°F)",
title="Cold Leg 1",
lw=0, alpha=0.5, color=:blue,
lab="Reach tube")
# Plot 3: T_cold2 reach tube
p3 = plot(sol, vars=(0, 3),
xlabel="Time (s)", ylabel="T_cold2 (°F)",
title="Cold Leg 2",
lw=0, alpha=0.5, color=:green,
lab="Reach tube")
# Plot 4: Phase portrait T_hot vs T_cold1
p4 = plot(sol, vars=(2, 1),
xlabel="T_cold1 (°F)", ylabel="T_hot (°F)",
title="Phase Portrait",
lw=0, alpha=0.5, color=:purple,
lab="Reach tube")
plot_combined = plot(p1, p2, p3, p4, layout=(2, 2), size=(1400, 1000),
plot_title="Formal Reachability: Initial Temperature Uncertainty ±$(δT)°F")
savefig(plot_combined, "temp_uncertainty_reachability.png")
println("Saved: temp_uncertainty_reachability.png")
# Compute T_avg for each reach set
println("\n=== Computing T_avg Reach Tube ===")
times = Float64[]
T_avg_min = Float64[]
T_avg_max = Float64[]
T_hot_vals = Float64[]
T_cold1_vals = Float64[]
T_cold2_vals = Float64[]
for (i, reach_set) in enumerate(sol)
if i % 5 == 0 # Sample every 5th set
t = sup(reach_set.t_start)
set = reach_set.X
# Sample points from the set
n_samples = 100
T_avg_samples = Float64[]
for _ in 1:n_samples
pt = sample(set)
T_h = pt[1]
T_c1 = pt[2]
T_c2 = pt[3]
# Compute T_avg = μ*T_hot + (1-μ)*(T_cold1 + T_cold2)/2
T_avg = μ * T_h + (1 - μ) * (T_c1 + T_c2) / 2
push!(T_avg_samples, T_avg)
if i == length(sol) # Store final points for phase portrait
push!(T_hot_vals, T_h)
push!(T_cold1_vals, T_c1)
push!(T_cold2_vals, T_c2)
end
end
push!(times, t)
push!(T_avg_min, minimum(T_avg_samples))
push!(T_avg_max, maximum(T_avg_samples))
end
end
# Plot T_avg reach tube
p_tavg = plot(times, T_avg_min, fillrange=T_avg_max,
xlabel="Time (s)", ylabel="T_avg (°F)",
title="Average Primary Temperature\n(Derived from uncertain T_hot, T_cold1, T_cold2)",
fillalpha=0.5, color=:orange, lw=2,
label="T_avg reach tube", legend=:topright,
size=(1000, 700))
savefig(p_tavg, "tavg_reachability.png")
println("Saved: tavg_reachability.png")
# Phase portrait: T_hot vs T_avg
if length(T_hot_vals) > 0
p_phase = scatter(T_avg_samples, T_hot_vals,
xlabel="T_avg (°F)", ylabel="T_hot (°F)",
title="Phase Portrait: T_hot vs T_avg\n(Final reachable set at t=30s)",
markersize=3, alpha=0.5, color=:purple,
label="Reachable points", legend=:topright,
size=(1000, 900))
savefig(p_phase, "phase_portrait_tavg.png")
println("Saved: phase_portrait_tavg.png")
end
println("\n✓ Complete!")
println("\n=== Results ===")
println("This is FORMAL reachability analysis using Taylor models.")
println("The reach tubes show ALL possible trajectories starting from")
println("initial temperature uncertainty: T ∈ [T_nominal ± $(δT)°F]")
println("\nFinal T_avg range: [$(round(minimum(T_avg_min), digits=1)), $(round(maximum(T_avg_max), digits=1))] °F")
println("Initial uncertainty ±$(δT)°F → Final spread $(round(maximum(T_avg_max) - minimum(T_avg_min), digits=1))°F")
catch e
println("❌ TMJets failed: $e")
println("\n=== Falling back to parameter sweep ===")
# Fine parameter sweep as backup
include("two_loop_fine_sweep.jl")
end