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:
parent
d7d8fc51b2
commit
ed59b30dd0
Binary file not shown.
|
Before Width: | Height: | Size: 492 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 165 KiB |
BIN
Presentations/ERLM/images/4_research_approach/two_loop.png
Normal file
BIN
Presentations/ERLM/images/4_research_approach/two_loop.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 221 KiB |
BIN
Presentations/ERLM/images/7_broader_impacts/billion.jpg
Normal file
BIN
Presentations/ERLM/images/7_broader_impacts/billion.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 122 KiB |
@ -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}
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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.
@ -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}
|
||||
|
||||
BIN
Presentations/ERLM/phase_portrait_sg1.png
Normal file
BIN
Presentations/ERLM/phase_portrait_sg1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 165 KiB |
BIN
Presentations/ERLM/sg1_uncertainty.png
Normal file
BIN
Presentations/ERLM/sg1_uncertainty.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 118 KiB |
@ -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}
|
||||
|
||||
|
||||
@ -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}
|
||||
|
||||
@ -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}
|
||||
|
||||
@ -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}
|
||||
}
|
||||
|
||||
\only<2>{
|
||||
\begin{tikzpicture}
|
||||
% Adjustable parameters
|
||||
\def\iconsize{1.6cm}
|
||||
\def\xspacing{1.7cm}
|
||||
\def\yspacing{1.0cm}
|
||||
|
||||
\vspace{0.5cm}
|
||||
|
||||
\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}
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
% REQUIREMENTS
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\RequirePackage{tikz}
|
||||
\RequirePackage[dvipsnames]{xcolor}
|
||||
\RequirePackage{xcolor}
|
||||
\RequirePackage{graphicx}
|
||||
\RequirePackage{pgfplots}
|
||||
\RequirePackage{geometry}
|
||||
|
||||
177
Presentations/ERLM/two_loop_fine_sweep.jl
Normal file
177
Presentations/ERLM/two_loop_fine_sweep.jl
Normal 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")
|
||||
215
Presentations/ERLM/two_loop_linearized_reachability.jl
Normal file
215
Presentations/ERLM/two_loop_linearized_reachability.jl
Normal 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")
|
||||
185
Presentations/ERLM/two_loop_reachability.jl
Normal file
185
Presentations/ERLM/two_loop_reachability.jl
Normal 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.")
|
||||
150
Presentations/ERLM/two_loop_reachability_v2.jl
Normal file
150
Presentations/ERLM/two_loop_reachability_v2.jl
Normal 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!")
|
||||
179
Presentations/ERLM/two_loop_sg_uncertainty.jl
Normal file
179
Presentations/ERLM/two_loop_sg_uncertainty.jl
Normal 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")
|
||||
216
Presentations/ERLM/two_loop_temp_uncertainty.jl
Normal file
216
Presentations/ERLM/two_loop_temp_uncertainty.jl
Normal 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
|
||||
Loading…
x
Reference in New Issue
Block a user