From a8d6d550f940434b48c7d7c21779052f57f31cf5 Mon Sep 17 00:00:00 2001 From: ebalogun01 <42688418+ebalogun01@users.noreply.github.com> Date: Sun, 10 Dec 2023 01:15:38 -0800 Subject: [PATCH] updating docs --- docs/build/doctrees/environment.pickle | Bin 128903 -> 128302 bytes docs/build/doctrees/index.doctree | Bin 10619 -> 10337 bytes docs/build/html/_sources/index.rst.txt | 4 ++-- docs/build/html/index.html | 6 +++--- docs/build/html/objects.inv | Bin 3853 -> 3840 bytes docs/build/html/searchindex.js | 2 +- docs/source/index.rst | 4 ++-- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index d19d72778c3900968d40cbb719b33bbf115b2b80..afa8b8791267757ae3edebe8584f46fefd83b8ec 100644 GIT binary patch literal 128302 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 z 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 literal 128903 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 QV4CO!r*U^vcPjUP0E@r{>;M1& diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index 41ddd0e9bdc34668e2ac1f1f6460994c2d2f3592..8578618c30788bd947e37ea26f94f1a8ecaa2e01 100644 GIT binary patch delta 2342 zcmcImZERCj7~Z*E+m(HE-A23GcJ03Uv90?M17r~qbRw3GGTatOmh85>aC)+~W9^L) zgVP`CYWhQYuS*OX!XhTj5P~I!VAMoV;}2v%{Ar>KlK4ksOo$j^@jbU+>oyD_@kif# z?t9+%z0Y&rkJEpKmxJ0@weOC4FKM@F_V~u6sc<|hxsq|$z^H#996uO|y860%yL(-e z@vt0~Vo5O>iN~51svlRVDZQZwRF(VT19NlcaCwmEhZ8bwr#s=2HbzFlrR(mm8>3>< z6-gAou`?fUqpjDK*OZfrmzt>r@0k4p4Q00In*^BGJWXCkO^5ab?#Y?UhC77F;4kl} zPEZf^QeU7RH$t#nxr@waT>*xx=JqCi*@#+tf%EWEL)tJS9g$|FSXfd(Dcwezl|eZ) z6$z`{l_H+Y7}O0xV+9+fJZ~?8y_E%fRqG{5_^fsx*$i=u1C}gRB|IF|%uEn$ zY}KkffSI;ef0#=G=Lm4obe;^rp*m)LmXwu=h=y&&Mb5^F{#)S3x~(03T!{`PN5LLP zZGpCqp99+lI~x4DUAVz^L%hCab`LI5e-s}g+lw+l*bDd=VgZyXwh!eT8&uarCrHNceB+pfR#VyV3 zOKc)14B9r;^Yc~5(qud;M(_Y`5@5D2Xm7ODe$I`vBkoCby2?ARFjKhZQ?9XKFR~0b zT{Bj$HafQ#k^aFgct?GKi#$J8&|WLmg30O-?h@#=Hj(dPzqKuo{7xQu-8$p~L~Pxy zKVzVD1r~~WU<%LWDjqu!>z^e&xaRl&V>tsmb3=T;)<#d}6W;)Y>~O zJvdYF=5OaOnpqhcvl%X;Tre&qERs(VUxP0^(})oV_5O3Bp9&G<)Xm-+=7%7zD8 zbAx_MSLj_eGF!+b+WLs0kPo=oZinyMy9AATtEa|KuaZI!cZMk@Qq%Bg)#*c|4 zLSQyq%zLMSxtMG}j6Y^v`eVuB$3NnXZdpvkn8gfd+~&uR>6V!IL*H}DZ41`8Eb&L* zd+&SB^S;k>&UxR{_5MGf6<-sNPx#J?4+)m`A!$64h)J%ggsZJ@e`jALF&K@t!GK`% zdTDK1TQDxq%X9K!*-Oo|n|i1~TLaV=NQJ?#=_QZAUt*hf7avQ75op2?W>^+1V6@xd z@tU&CMPZOsj3ralO$Wg%#tDPB#jf7^AsU);MU#c;_sFy&h>2>`8g;ZF`AlJQ+5^Ly z2gn>x@8s!cl=Ngz5di4zPEJL<59dv1y2=|$Nf!Pthl?D3BJ+{v4$++0$e}{2muV~Y zQlH<*p>VURmz+mT7dZ#R+C}Y(FS{}#y$ru<8^~qQ=^Ds4IKukcYMGTHpAZsa!(3i=6Py@h2rkt=*!CQEB4E?Xu>I&&mw=Y@HDNEn{l?C6 z2?y91gzK7SU&dGTzk!bsi=p)s7RN_`CD1Oh3ABss73F;rt-pjNm5(X32t0z1t-RdG z>oEFL;Sja(O0foIYRAbld@|jRUrzir2IW*ID!MoF5u;Bff0~EA7xJfykZ(uw$Nw+# zv)Pr$@Ig6{u81W@Q{z%nUXVjL2YL0x)d%c*K_i)_pt&$w2u-@VjyzDo)V{K7&S)tM9tNVv854>pWYA(a<1+n<% z7N~p-6_^pObflb0?yXb3v;U$}Rg$jm!Nu$uNlKx~2pv)GAevYIR8jRg?$Ak&$vcCA1@&HU2vgD|^{ve{eQyvfZ`ZkD)NKtpfSTg;6SSra#N z-2WOz9DRJ)WOLYBD0p)XOuw1R&m#zX2wI B?i2t3 diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt index 579d6bd4..76847992 100644 --- a/docs/build/html/_sources/index.rst.txt +++ b/docs/build/html/_sources/index.rst.txt @@ -4,7 +4,7 @@ contain the root `toctree` directive. ===================================== -Welcome to *EV-EcoSim* 1.0.0 documentation! +Welcome to EV-EcoSim 1.0.0 documentation! ===================================== .. image:: ../../doc_images/sim_control_diagram.png @@ -14,7 +14,7 @@ Welcome to *EV-EcoSim* 1.0.0 documentation! -------------------------------- -------------------------------- -What is *EV-EcoSim*? +What is EV-EcoSim? -------------------------------- *EV-EcoSim* is a python-based multi-timescale grid-aware co-simulation platform for modeling, control, optimization, and simulation of electric vehicle (EV) charging stations. The charging infrastructure developed within this platform is diff --git a/docs/build/html/index.html b/docs/build/html/index.html index 7bba5b7f..ba7d5599 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -69,7 +69,7 @@
  • - +
@@ -79,11 +79,11 @@
-

Welcome to EV-EcoSim 1.0.0 documentation!

+

Welcome to EV-EcoSim 1.0.0 documentation!

EV-EcoSim Simulation Framework
-

What is EV-EcoSim?

+

What is EV-EcoSim?

EV-EcoSim is a python-based multi-timescale grid-aware co-simulation platform for modeling, control, optimization, and simulation of electric vehicle (EV) charging stations. The charging infrastructure developed within this platform is integrated with Distributed Energy Resources (DERs), such as solar and battery systems. This platform interfaces with diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 6471b8fa88ec547086c06e8a91e0755093823dd0..2c6d1a64cb006dd2c7a8f879a29e5188f9f0f0e4 100644 GIT binary patch delta 2179 zcmV-}2z>XA9)KQ@gnw0=q>p_m64z-1B#lotNM9BZv=Y6`W8ErJcDKL&@Ft0rNL@&3 zg943BalZM)%W!5y(s2=IR|HW|U4O~Tw8=p5CWuAh{(|%DCte)B3c_9YASn@!Vh^(W zJM!B-!Z43d3I>i`+`Wn&Nj2I%omooK%3^I`58YU2P z^yuOD`}gK0MGh z)5(5KAUm#|dgMPp-)+R1A#cLj&w6Xd_Tu+Uz;D(l?#rhhTV&9@lb{0}0k4z21G@np zlX(P;0sNB&1zQ5X^pj%+Bm$oZlZgdW0>2Ei-UV9$2L)!|t`+#ElRyXQ0{$?QD+pnK zBmGE`HmvIF7my`o4g!SJU(zxO!nc9$Ig<`Pmm~mVQ(zb8CrEcTussq~IEzo@Es1yy z;xq@Zzuv$5?ejg?Dk_Jpa(_{wtW>#_FnA#0VkpvU^o8Dur>f|b%F%tA$Nu(NF)I}a z?X8N2+iMNQTu8kN^2qLjJkrGAQCzxzxn8^O>dwiBLnbtta_laXTu(r`i&9_Os;nxd zSH+cw^ar_$mcroDNm`HeVS_Jay`a0_v5LD>oIIV`0aI1RIH-x}`%Y#@-IRd&^z6zG z9vUb>X8)f48q!}wS|{YP?92ek_GLt z{KFMtkOv=?DwF8bG%=a9R}>E9IA5v{aeY&`leeh}oRH%T^~}E&eY&V$C5zeWRQi-d zDLu-Hj>9(74fG{v+G4;QjZ*eNV7U^#x+R7+Q;Q zcCRf7dx`dwU~p)QI^3gj1D~!#jrm{g9e&zE(NkKTY|8@OvEZz`yGdyB;S?8k35PQe zhGKj$rJv2-W%}h_4khtWi0kxA@B{t*$z=Pt?=cL;dd=cDu?@*Z|KJpV^5jE37j{(0 zfdP}(6zR3~Cwv@K_8_Kmt#aw>h4^S-&tbgvede*25!<0{PlAb$OSGz#ZNv5|6&Ujq zJq3AFr2_>S#{5J}q1zc?ufBuOm+IBBFZm8SnY^Y*t4;naY_C&BF+R}h=buyUHFJ4Q z(Lfv9^CvmTBlIaBpc9^d@_*$8hd8}yMi_u>NvQhUr_W!0yZ?09QA-fj?4$Rb6s;Qa zs^Jbihk%5BbXOxGPMdpPz7+{Ok^ArAeNrAIlpXk|0yWG*VTc<1l$;5{53`lNDa+@bCw@zlJY2hLs`L7 zOp7I7W|q`Zct(Sc60=9o#Mmj3sk=1;bKKSKpjnpn5u4spfRY-D{aCX)nM|n2d>G^G z&Y*xr3jR?6+fv>JAL);~OZgJuGN38TIpw5kh|7>x{iBoG^?F2;ODg^nNjp-tpR;fG zZ}x8jQn{fsje<%ubC}`Xy{uYWtrw9E>RAup*sQPgvy~|+nWX5e|3Yu$3A8^9M2@ zcYOP~M2{7J@Ou22SV81phS06VPwdCuJ>a`F7o|m6)ix!Hnv*NO!_G0nEB6p@Jzbu7+r`pW+zN^4QtL$_o~7^QOzL37P0LG zEeNYRRBobrK4s5_7-l6yjx@m=sJ$AhELjIbfqjFwqVW+sf-nc{} zFwuX13u0W&t2i}GnPp`X;~&;8oqpG58NSHUR#}=E*d#vENTjDepk5N=s*zV=&EV#wn2XnOy>2tBPy7BzJ%L&yg8}3tO}acC6x1t(IZG z>ue1-^Q`FcCLc~Qa__G*Z`e;QZ< FT0ZXQDQf@# delta 2192 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 1.0.0 documentation!", "Packages", "EV-EcoSim platform", "setup module", "Test cases", "Base Case Test Cases", "Battery Test Cases", "test_cases.battery.feeder_population package", "Tutorials"], "terms": {"thi": [0, 1, 2, 3, 4, 5, 6, 8, 12, 13], "contain": [1, 4, 8, 12, 13], "costestim": [1, 8], "class": [1, 3, 4, 5, 8, 13], "which": [0, 1, 3, 4, 8, 12], "estim": [1, 4, 8], "cost": [1, 4, 8], "differ": [1, 4, 8], "grid": [0, 1, 3, 4, 6, 8], "der": [0, 1, 4, 6, 8], "compon": [0, 1, 8], "from": [1, 2, 3, 4, 5, 8, 12, 13], "us": [1, 2, 3, 4, 5, 8, 12, 13], "calcul": [1, 4, 8], "num_dai": 1, "base": [1, 3, 4, 5, 6, 7, 8, 10, 12, 13], "object": [1, 3, 4, 5, 13], "level": [1, 4, 8], "asset": [1, 4], "ev": [0, 1, 2, 4, 5, 13], "ecosim": [0, 1, 2, 4, 5, 13], "The": [0, 1, 3, 4, 5, 6, 8, 13], "lcoe": 1, "energi": [0, 1, 4, 6, 8, 12], "defin": [1, 4, 12], "revenu": 1, "total": [1, 4, 8], "net": [1, 4], "expenditur": 1, "requir": [0, 1, 2, 4], "build": [1, 4, 8], "oper": [0, 1, 3], "an": [0, 1, 4, 8], "system": [1, 2, 4, 5, 6, 7, 8, 13], "over": [1, 3, 4], "specifi": [1, 4, 5, 8, 12, 13], "recoveri": 1, "period": 1, "normal": [1, 8], "entir": [1, 4, 12], "throughput": 1, "compar": [1, 12], "econom": 1, "devic": [1, 4], "would": [0, 1, 2, 4, 12], "otherwis": [1, 4], "challeng": 1, "paramet": [1, 2, 3, 4, 5, 8, 12, 13], "number": [1, 3, 4], "dai": [1, 4, 8], "run": [1, 2, 3, 4, 5, 12, 13], "calculate_battery_cost": 1, "result_dir": 1, "batteri": [0, 1, 2, 6, 7, 8, 10], "updat": [1, 3, 4], "includ": [1, 3, 4, 5, 8, 13], "directori": [1, 13], "save": [1, 2, 3, 4, 5, 8, 13], "result": [1, 2, 4, 8], "dictionari": [1, 4, 5, 12, 13], "return": [1, 2, 3, 4, 5, 12, 13], "dict": [1, 2, 4, 5, 12], "result_dict": 1, "calculate_electricity_cost_pgebev2": 1, "pge_separate_fil": 1, "true": [1, 2, 3, 4], "overal": [1, 4, 8], "electr": [0, 1, 4, 6, 8], "pgebev2": 1, "given": [1, 3, 4, 12], "scenario": [1, 4, 7, 8, 10], "str": [1, 4, 13], "A": [1, 4, 8], "compris": 1, "all": [1, 3, 4, 5, 8, 12], "dollar": 1, "amount": [1, 8], "calculate_solar_cost": 1, "valu": [1, 3, 4, 8], "ar": [1, 2, 3, 4, 5, 8, 12, 13], "pull": [1, 4], "nrel": [1, 8], "solar": [0, 1, 6, 7, 8], "ref": [1, 4], "http": [1, 4], "www": [1, 4], "gov": 1, "market": 1, "research": 1, "html": 1, "To": 1, "deprec": [1, 4], "soon": [1, 6], "none": [1, 2, 3, 4, 12, 13], "calculate_trans_loss_of_lif": 1, "expect": [0, 1], "transform": [0, 1, 5, 7, 8, 13], "loss": [1, 4], "life": [1, 4], "lol": 1, "model": [1, 3, 4, 5, 6, 8, 13], "function": [1, 4, 5, 8, 12, 13], "hot": 1, "spot": [1, 8], "temperatur": [1, 4, 8], "refer": 1, "5": 1, "11": 1, "3": [1, 3, 6], "ieee": [1, 8], "std": 1, "c57": 1, "12": [1, 4, 8], "00": 1, "2010": 1, "minimum": [1, 4], "insul": 1, "180": 1, "000": 1, "hour": [1, 4], "static": [1, 4], "plot_load": 1, "total_load": 1, "net_load": 1, "prefix": [1, 4], "label": [1, 8], "option": [1, 2, 4], "list": [1, 4, 5, 8, 12, 13], "creat": [1, 2, 4, 8, 12], "plot": [1, 3, 4, 8], "overlai": 1, "load": [1, 2, 3, 4, 5, 8, 12, 13], "visual": [1, 4], "demand": [0, 1, 4], "node": [7, 8], "can": [0, 1, 2, 3, 4, 5, 8, 12, 13], "control": [0, 1, 6, 7, 8], "minu": 1, "buffer": 1, "file": [1, 2, 3, 4, 5, 8, 12, 13], "legend": 1, "each": [1, 2, 4, 8, 12], "curv": 1, "plot_pow": 1, "power": [0, 1, 2, 4, 5, 6, 8, 13], "power_pr": 1, "predict": [1, 4], "plot_soc": 1, "soc": [1, 3, 4], "soc_pr": 1, "state": [1, 2, 3, 4, 8], "charg": [0, 1, 3, 5, 6, 7, 8, 13], "solar_cost": 1, "capit": 1, "give": 1, "station": [0, 1, 4, 5, 6, 8, 13], "design": [0, 1, 4, 8], "problem": [1, 4], "Not": [1, 3, 4], "fulli": [1, 2, 4], "implement": [1, 4, 8], "locat": [0, 1, 4, 13], "pv": [0, 1, 4, 8], "transformer_cost": [1, 4], "cannot": [1, 4], "find": [1, 3, 4], "good": 1, "resourc": [0, 1, 4, 6, 8], "data": [1, 3, 4, 8], "yet": [1, 3, 4], "overview": [1, 4, 12], "popul": [1, 3, 7, 8, 13], "tabl": [1, 8], "matric": [1, 8], "respect": [1, 4, 8], "folder": [1, 3, 4, 5, 13], "collate_result": 1, "month": [0, 1, 2, 4, 8, 12], "tran": 1, "oneshot": [1, 4], "fals": [1, 2, 3, 4], "collat": 1, "them": [1, 4, 5, 13], "matrix": 1, "being": [1, 3, 4], "bool": [1, 3, 4], "boolean": [1, 4], "decid": [0, 1, 4], "ag": [1, 4, 8], "tell": 1, "were": 1, "obtain": [1, 4], "mpc": [1, 4], "plot_stacked_bar": 1, "elec_cost": 1, "batt_cost": 1, "save_plot_path": 1, "stack": 1, "bar": 1, "portion": 1, "contribut": [1, 4], "datafram": [1, 3], "string": [1, 2, 4, 8, 12], "path": [1, 4, 8], "plot_tabl": 1, "batt_dtabl": 1, "elec_cost_dt": 1, "trans_cost_dt": 1, "batt_aging_t": 1, "solar_cost_t": 1, "save_plots_fold": 1, "chart": 1, "run_result": 1, "case_dir": 1, "days_count": 1, "trans_cost": 1, "case": [1, 3, 5, 7, 8, 13], "int": [1, 2, 3, 4, 12], "usual": [1, 4, 5, 8], "30": 1, "now": [1, 4, 8], "pars": [1, 8], "voltag": [0, 1, 3, 4, 8], "percentag": [1, 3, 8], "violat": [1, 8], "per": [1, 3, 4, 5, 8, 13], "ansi": [1, 8], "c84": [1, 8], "1": [1, 2, 3, 4, 8, 12], "also": [1, 4, 8], "gener": [1, 3, 4, 8], "distribut": [0, 1, 4, 5, 6, 8, 13], "user": [1, 2, 3, 4, 5, 8, 12, 13], "modifi": [1, 4, 5, 8, 12, 13], "simulation_fold": 1, "variabl": [1, 4, 8], "where": [0, 1, 4, 8, 13], "powerflow": [1, 4, 8], "output": [1, 4, 5, 8, 13], "exist": [0, 1, 2, 4, 8], "iter": [1, 4], "through": [1, 4], "same": [1, 4], "csv": [1, 3, 4, 5, 8, 13], "applic": 2, "main": [2, 4], "start": [2, 4], "change_run_d": [2, 4], "chang": [2, 4, 12], "date": [2, 4], "simul": [0, 2, 3, 5, 6, 7, 12, 13], "create_results_fold": [2, 4], "dir": [2, 4], "one": [2, 3, 4, 8, 12], "doe": [2, 4], "create_temp_config": [2, 4], "temporari": [2, 4], "configur": [2, 4, 5, 8, 12, 13], "load_default_input": [2, 4], "default": [2, 3, 4, 8], "input": [1, 2, 3, 4, 5, 8, 12, 13], "skeleton": [2, 4], "make_month_str": [2, 4, 12], "month_int": [2, 4, 12], "make": [0, 2, 4, 12], "integ": [2, 4, 12], "add": [2, 4, 12], "0": [2, 3, 4, 12], "less": [2, 4, 12], "than": [2, 4, 12], "10": [2, 3, 4, 12], "januari": [2, 4, 8, 12], "2": [2, 3, 4, 8, 12], "februari": [2, 4, 12], "etc": [0, 2, 4, 8, 12], "user_input": [1, 2, 4], "sequential_run": [2, 4], "parallel_run": [2, 4], "validate_opt": [2, 4], "front_input": [2, 4], "valid": [2, 4], "ensur": [2, 3, 4, 8], "select": [2, 3, 4], "match": [2, 4], "workflow": [2, 4], "backend": [2, 4], "host": [3, 4, 8], "fit": 3, "ecm": [3, 8], "batteryparam": 3, "open": [3, 4, 8], "circuit": [3, 4, 8], "correct": [3, 4, 8], "scheme": [3, 4], "take": [0, 3, 4, 5, 13], "some": [3, 4, 8], "field": [1, 3, 5, 8, 13], "dure": [3, 4, 8], "instanti": [3, 4], "column": [3, 8], "must": [3, 4, 8], "follow": [3, 4, 8], "liter": 3, "sensit": [3, 8], "current": [3, 4, 12], "cell": [3, 4, 8], "time": [2, 3, 4, 8, 12], "seri": [3, 4], "correspond": [3, 5, 13], "ocv": [3, 4, 8], "how": 3, "pd": 3, "read_csv": 3, "data_path": 3, "panda": [3, 4], "run_sys_identif": 3, "plot_correction_scheme_comparison": 3, "write": [3, 5, 8, 13], "new": [0, 3, 4, 5, 8, 13], "within": [0, 1, 3, 4, 5, 6, 8, 13], "download": 3, "via": [3, 4], "web": [3, 6], "tool": [3, 6], "test": [3, 4, 5, 7, 8, 13], "param": [3, 4, 8], "ga": 3, "num_gener": 3, "100": [0, 3], "num_parents_m": 3, "sol_per_pop": 3, "num_gen": 3, "7": [3, 4], "crossover_typ": 3, "single_point": 3, "mutation_typ": 3, "adapt": 3, "parent_selection_typ": 3, "sss": 3, "mutation_percent_gen": 3, "60": 3, "mutation_prob": 3, "crossover_prob": 3, "genet": [3, 8], "algorithm": [3, 8], "instanc": [3, 4, 5], "pleas": [3, 8, 12], "see": [3, 4, 8], "pygad": 3, "offici": 3, "document": 3, "more": [3, 4, 8], "explan": 3, "have": [1, 2, 3, 4, 8, 12], "been": [1, 3], "optim": [0, 2, 3, 6, 7, 8], "accuraci": 3, "speed": 3, "howev": [0, 3, 4, 12], "ani": [1, 3, 4, 8], "mai": 3, "combin": [3, 12], "work": [0, 3, 4, 8], "better": 3, "set": [3, 4, 8, 12], "parent": [3, 4], "form": 3, "next": 3, "offspr": 3, "solut": 3, "gene": 3, "size": [3, 8], "equival": [3, 8], "search": [3, 6], "describ": [3, 4, 5, 8, 13], "cross": 3, "between": 3, "mate": 3, "done": [2, 3, 4, 5, 8, 13], "mutat": 3, "undergo": 3, "probabl": 3, "appli": 3, "Its": 3, "inclus": [3, 8], "vector": [3, 4, 12], "get_ro": [3, 4], "high": 3, "frequenc": 3, "ro": 3, "resist": [3, 4], "r_o": 3, "get_corrected_voltag": 3, "respons": [3, 4], "get_uncorrected_voltag": 3, "uncorrect": 3, "plot_ro": 3, "xlim": 3, "20000": 3, "36000": 3, "ylim": 3, "75": 3, "85": 3, "non": [3, 4], "run_ocv_correct": 3, "use_quadrat": 3, "cell_nam": 3, "diagn": 3, "attribut": [3, 4], "quadrat": 3, "linear": [3, 4], "wa": [2, 3, 4], "origin": [3, 8], "paper": [3, 4, 8], "run_pre_check": 3, "pre": [3, 4, 5, 8, 13], "check": [3, 4], "thei": [3, 8, 12], "desir": [0, 3, 4], "length": 3, "begin": 3, "error": [3, 4, 8], "use_initial_pop": 3, "quadratic_bia": 3, "simulate_respons": 3, "complet": [0, 3], "battery_typ": 4, "config": [4, 5, 8, 12, 13], "least": [4, 8], "physic": [4, 8], "constraint": 4, "properti": 4, "mainli": [4, 12], "json": [1, 4, 8, 12], "max": 4, "c": [4, 12], "rate": [4, 8, 12], "determin": [0, 4], "capac": [0, 4, 12], "multipl": [4, 12], "v": 4, "maximum": [4, 12], "allow": [4, 12], "min": 4, "nomin": 4, "kwh": 4, "deliver": 4, "id": 4, "ambient": [4, 8], "celsiu": 4, "type": [4, 8, 13], "inconsequenti": 4, "dynam": 4, "bu": [4, 5, 13], "network": [1, 4, 6, 8], "resid": 4, "self": 4, "battery_setup": 4, "up": 4, "parallel": [4, 12], "scale": 4, "ah": 4, "setup": [4, 7], "fix": 4, "while": [0, 4], "float": 4, "pack": [4, 8], "wh": [4, 12], "topolog": 4, "battery_setup_2": 4, "instead": 4, "therebi": 4, "pack_max_ah": 4, "watt": 4, "amp": 4, "cell_amp_hr": 4, "cell_voltag": 4, "propag": [2, 4], "forward": 4, "step": [2, 4, 5, 13], "It": [4, 5, 8, 13], "amper": 4, "np": 4, "cycl": 4, "est_calendar_ag": 4, "constant": 4, "calendar": 4, "sole": 4, "depend": 4, "later": 4, "est_cyc_ag": 4, "hess": 4, "et": 4, "al": 4, "its": 4, "cvx": 4, "cvxpy": 4, "get_ocv": 4, "map": 4, "store": 4, "interpol": 4, "priori": 4, "s": [0, 4], "possibl": 4, "get_aging_valu": 4, "ha": [4, 8], "experienc": 4, "so": [4, 8], "far": 4, "get_power_profil": 4, "profil": 4, "certain": [0, 4], "get_properti": 4, "get_roundtrip_effici": 4, "get_total_ag": 4, "get_true_pow": 4, "save_sim_data": 4, "save_prefix": 4, "relev": [4, 8], "call": 4, "upon": 4, "conclus": 4, "save_st": 4, "state_eqn": 4, "append": 4, "discret": 4, "equat": 4, "here": 4, "g": 4, "l": 4, "plett": 4, "manag": 4, "volum": 4, "i": [0, 4], "artech": 4, "hous": 4, "2015": 4, "vol": 4, "track": 4, "b": 4, "post": [2, 4, 7], "analys": 4, "histori": 4, "thermal_dynam": 4, "futur": [0, 4], "track_soc": 4, "update_soc": 4, "update_capac": 4, "anticip": [1, 4], "update_max_curr": 4, "verbos": 4, "update_param": 4, "update_voltag": 4, "method": [4, 8], "batteryag": 4, "enact": 4, "datetim": 4, "num_step": 4, "re": 4, "15": [4, 8], "linimncoo2": 4, "nmc": [4, 8], "ad": 4, "link": [4, 8], "sciencedirect": 4, "com": 4, "scienc": 4, "articl": 4, "pii": 4, "s0378775314001876": 4, "beta_cap": 4, "fade": 4, "factor": 4, "alpha_cap": 4, "beta_r": 4, "growth": [0, 4], "alpha_r": 4, "assumpt": 4, "homogen": 4, "uniform": 4, "across": 4, "vicin": 4, "lfp_cal_ag": 4, "lfp_cyc_ag": 4, "nmc_cal_ag": 4, "nmc_cyc_ag": 4, "get_calendar_ag": 4, "tupl": 4, "due": 4, "get_cyc_ag": 4, "THe": 4, "batt": [4, 8], "both": 4, "adopt": 4, "schmalsteig": 4, "update_resist": 4, "structur": [4, 5, 13], "compos": 4, "individu": 4, "connect": 4, "achiev": 4, "exampl": [4, 5, 13], "usag": 4, "battery_config_path": 4, "r": 4, "f": [4, 8], "battery_config": 4, "params_list": 4, "kei": [0, 4], "params_": 4, "Then": [0, 4], "params_kei": 4, "actual": 4, "those": 4, "prior": 4, "loadtxt": 4, "path_prefix": 4, "constructor": 4, "buffer_batteri": 4, "r_pack": 4, "initi": [4, 8], "sum": 4, "aging_c": 4, "lost": 4, "after": 4, "round": 4, "trip": 4, "effici": 4, "_eff": 4, "out": [4, 8], "last": 4, "load_pack_prop": 4, "balogun": [4, 8], "dx": 4, "doi": 4, "org": 4, "36227": 4, "techrxiv": 4, "23596725": 4, "v2": 4, "nominal_pack_cap": 4, "py": [4, 8], "meth": 4, "thermal": [4, 8], "intern": 4, "surfac": [4, 8], "avail": [0, 4], "version": [4, 8], "defer": 4, "TO": 4, "BE": 4, "need": [0, 4, 8], "anymor": 4, "onli": [4, 12], "right": 4, "name": [4, 8, 13], "storag": [0, 4], "statu": 4, "idl": 4, "produc": 4, "reactiv": [4, 5, 13], "retain": 4, "inform": 4, "inject": [4, 8], "ingest": 4, "assign": 4, "get_current_load": 4, "kw": [0, 4], "is_ev_arriv": 4, "arriv": 4, "indic": 4, "is_charg": 4, "unit": [0, 4], "set_current_load": 4, "update_load": 4, "net_grid_load": 4, "ev_load": 4, "mode": [4, 8], "vehicl": [0, 4, 6, 8], "update_load_oneshot": 4, "offlin": [2, 4, 8], "update_statu": 4, "bess": 4, "compute_control": 4, "price_vector": 4, "action": 4, "comput": 4, "pass": 4, "tou": [4, 8], "control_act": 4, "signal": 4, "arbitrag": 4, "get_battery_constraint": 4, "satisfi": 4, "storage_constraint": 4, "initialize_forecast_data": 4, "forecast": [4, 8], "load_battery_ocv": 4, "learn": 4, "reset_load": 4, "full": [4, 8], "96": 4, "feedback": [2, 4, 8], "price": [4, 8], "sampl": [4, 8], "detail": [4, 8], "pge_bev2_": 4, "california": 4, "own": 4, "numpi": 4, "arrai": 4, "year": [4, 8], "priceload": 4, "evs": 4, "profit": 4, "loader": 4, "first": 4, "your": [4, 8], "repositori": [4, 6, 8], "downscal": [4, 8], "input_r": 4, "output_r": 4, "finer": 4, "resolut": [4, 8], "similar": 4, "typic": 4, "onc": [2, 4, 5, 8, 13], "get_pric": 4, "start_idx": 4, "assum": 4, "do": 4, "index": [4, 6, 8], "cardin": 4, "jan": 4, "decemb": [4, 8], "ndarrai": [], "set_month_data": 4, "solv": 4, "objective_typ": 4, "power_demand": 4, "time_r": 4, "solver": [4, 6], "gurobi": 4, "degrad": 4, "limit": [4, 8], "convex": 4, "mix": 4, "program": 4, "note": [4, 8], "instal": [0, 4, 8], "separ": 4, "pc": [4, 12], "success": [0, 4], "counter": 4, "identifi": 4, "invok": 4, "eco": 4, "mosek": 4, "add_demand_charg": 4, "aggregate_constraint": 4, "aggreg": 4, "build_battery_cost": 4, "build_emissions_cost": 4, "emiss": 4, "build_transformer_cost": 4, "get_constraint": 4, "chargingsim": 4, "num_charging_sit": 4, "6": 4, "num_ev": 4, "1600": 4, "custom_ev_data": 4, "custom_ev_data_path": 4, "custom_solar_data": 4, "custom_solar_data_path": 4, "organ": [4, 8], "other": 4, "sequenti": [4, 12], "manner": 4, "secondari": [4, 5, 8, 13], "If": 4, "site": 4, "help": [0, 4, 5, 8, 13], "access": [4, 8], "proper": 4, "os": 4, "minut": [4, 8], "create_battery_object": 4, "idx": 4, "node_prop": [], "identif": [4, 7, 8], "l2": [4, 13], "dcfc": 4, "create_charging_st": 4, "power_nod": 4, "buse": 4, "create_charging_stations_oneshot": 4, "create_solar_object": 4, "loc": 4, "get_act": 4, "get_charger_obj_by_loc": 4, "get_charging_sit": 4, "initialize_aging_sim": 4, "initialize_control": 4, "initialize_price_load": 4, "memori": 4, "initialize_solar_modul": [], "load_battery_param": 4, "directli": [4, 5, 12, 13], "sim": [4, 7, 8, 10], "unless": 4, "load_config": 4, "walk": 4, "load_results_summari": 4, "save_path_prefix": 4, "multistep": 4, "much": [4, 8], "faster": 4, "horizon": 4, "perfect": 4, "foresight": 4, "daili": 4, "reset": 4, "power_nodes_list": 4, "accordingli": 4, "specif": [1, 4], "stepsiz": 4, "update_scenario": 4, "update_step": 4, "move": 4, "without": [0, 2, 4, 12], "studi": [0, 2, 4], "effect": [2, 4, 8], "character": [2, 4], "what": [2, 4], "occur": [2, 4], "situ": [2, 4], "app": 4, "global": [4, 8, 12, 13], "horizont": [4, 8], "irradi": [4, 8], "ghi": [4, 8], "dataset": [4, 8], "namepl": 4, "p_": 4, "eta": 4, "area": [4, 8], "panel": 4, "decis": 4, "flow": [4, 6], "get_pow": 4, "desired_shap": 4, "get_solar_output": 4, "modify_r": 4, "new_r": 4, "update_histori": 4, "purpos": 4, "schedul": 4, "pge": 4, "doc": 4, "found": 4, "add_power_profile_to_object": 4, "battery_power_profil": 4, "build_cost_pge_bev2": 4, "energy_prices_t": 4, "penalize_max_pow": 4, "max_power_pen": 4, "1000": 4, "heurist": 4, "averag": 4, "conserv": 4, "gamma": 4, "build_electricity_cost": 4, "demand_charg": 4, "home": [4, 5, 8, 13], "mayb": 4, "opt": 4, "build_object": 4, "electricity_cost": 4, "battery_degradation_cost": 4, "we": 4, "minim": [4, 8], "load_pric": 4, "time_interv": 4, "gridlab": [5, 6, 8, 13], "d": [5, 6, 8, 13], "load_base_glm": [5, 13], "base_file_dir": [5, 13], "base_glm_fil": [5, 13], "glm": [5, 8, 13], "replace_load_w_met": [5, 13], "glm_dict": [5, 13], "match_str": [5, 13], "rep_str": [5, 13], "obj_typ": [5, 13], "replac": [5, 13], "meter": [5, 13], "replace_load_w_meter_old": [5, 13], "write_base_glm": [5, 13], "globals_list": [5, 13], "include_list": [5, 13], "out_dir": [5, 13], "file_nam": [5, 13], "sync_list": [5, 13], "write_class_dict": [5, 13], "gld_dict": [5, 13], "class_nam": [5, 13], "gld": [5, 13], "write_clock_dict": [5, 13], "clock": [5, 7, 13], "write_filter_dict": [5, 13], "filter": [5, 8, 13], "write_mod_dict": [5, 13], "mod_nam": [5, 13], "write_obj_dict": [5, 13], "dict_kei": [5, 13], "python": [6, 8], "multi": 6, "timescal": [4, 6], "awar": [6, 8], "co": [0, 4, 6, 8, 13], "platform": [0, 6], "infrastructur": [0, 6], "develop": [6, 8], "integr": [0, 6, 8], "interfac": [5, 6, 13], "phase": 6, "unbalanc": 6, "captur": [6, 8], "impact": [6, 8], "fast": [6, 13], "preprint": [], "come": [0, 6], "modul": [6, 7, 8], "page": 6, "analysi": 7, "cost_analysi": [7, 8], "load_post_opt_cost": [7, 8], "plot_result": [7, 8], "batt_sys_identif": 3, "battery_identif": 7, "charging_sim": 7, "batteryagingsim": [7, 8], "batterypack": [7, 8], "batterytest": 7, "capacitor": 7, "chargingst": [7, 8], "electricitypric": [7, 8], "orchestr": [7, 8], "util": [7, 8], "content": [7, 8], "feeder": [4, 7, 13], "feeder_popul": [7, 10, 12], "glm_mod_funct": [7, 10, 12], "subpackag": 7, "submodul": [7, 10], "test_cas": [7, 10], "base_cas": [7, 8, 10], "event_handl": [7, 10], "gblvar": [7, 10], "glmptime": [7, 10], "master_sim": [7, 8, 10], "voltdump2": [7, 10], "event_handlers_oneshot": [7, 10], "parse_voltag": [7, 10], "feeder_population_old": [], "introduct": [5, 13], "perform": [0, 5, 13], "ieee123": [5, 13], "script": [5, 8, 13], "read": [5, 8, 13], "initial_glm_nam": [5, 13], "_popul": [5, 13], "_secondari": [5, 13], "These": [5, 13], "test_case_dir": [5, 13], "txt": [5, 8, 12, 13], "descript": [5, 13], "our": [5, 13], "graphic": [5, 13], "gui": [5, 13], "environ": [5, 8, 13], "real_pow": [5, 13], "real": [5, 13], "residenti": [5, 8, 13], "timeseri": [5, 13], "reactive_pow": [5, 13], "dcfc_bu": 13, "dc": 13, "l2charging_bu": 13, "electrif": 0, "transport": 0, "decarbon": 0, "sector": 0, "inevit": 0, "increas": 0, "expans": 0, "leverag": [0, 8], "technolog": 0, "clever": 0, "wai": 0, "coordin": 0, "todai": 0, "fundament": 0, "suppli": 0, "equip": 0, "rapid": 0, "deploy": 0, "difficult": 0, "present": 0, "serv": 0, "testb": 0, "mind": 0, "sai": 0, "e": 0, "chargepoint": 0, "electrifi": 0, "america": 0, "want": [0, 12], "deploi": 0, "san": [0, 8], "francisco": [0, 8], "ca": 0, "contact": 0, "pg": 0, "process": [0, 12], "sometim": 0, "eventu": 0, "might": 0, "support": 0, "let": 0, "even": 0, "get": 0, "chain": 0, "issu": 0, "abl": 0, "avoid": [0, 8], "upgrad": 0, "imagin": 0, "guarante": 0, "exce": 0, "threshold": 0, "approv": 0, "In": [0, 4], "fact": 0, "agreement": 0, "servic": [0, 4], "peak": 0, "shave": 0, "regul": 0, "realiti": 0, "emmanuel": 8, "ebalogun": 8, "stanford": 8, "edu": 8, "hipa": 8, "master": 8, "branch": 8, "recommend": 8, "aw": 8, "ec2": 8, "slac": 8, "gismo": 8, "ami": 8, "beauharnoi": 8, "x": 8, "below": 8, "_": 8, "environment": 8, "condit": 8, "subsystem": 8, "uncontrol": 8, "proprietari": 8, "pecan": 8, "street": 8, "exmapl": 8, "prototyp": 8, "sy": 8, "experiment": 8, "2nd": 8, "order": 8, "rc": 8, "One": 8, "custom": [4, 8], "upload": 8, "shown": 8, "addit": 8, "ocv_corr": 8, "abov": 8, "battery_data": 8, "encompass": 8, "legaci": 8, "elec": 8, "365": 8, "format": 8, "should": [8, 12], "coarser": 8, "librari": 8, "pnnl": 8, "taxonomi": 8, "primari": [4, 8], "vari": 8, "necessari": [4, 8], "repo": 8, "nation": 8, "radiat": 8, "databas": 8, "nsrdb": 8, "bai": 8, "renew": 8, "laboratori": 8, "hourli": 8, "interv": 8, "oversampl": 8, "4": 8, "repres": 8, "w": 8, "m": 8, "shortwav": 8, "receiv": 8, "ground": 8, "timestep": [4, 8], "rlsf": 8, "plu": 8, "recurs": 8, "squar": 8, "onlin": 8, "conda": 8, "env": 8, "yml": 8, "OR": 8, "packag": [8, 10, 12], "manual": 8, "gridlabd": [5, 8, 13], "For": [4, 8], "navig": 8, "prepar": 8, "confirm": 8, "successfulli": 8, "ieee123_secondari": 8, "ieee123_popul": 8, "you": 8, "prep": 8, "python3": 8, "ev50_cosimul": 8, "section": 8, "quick": [], "quickstart": [], "click": [], "expand": [], "collaps": 14, "total_load_color": 1, "blue": 1, "net_load_color": 1, "orang": 1, "node_nam": [1, 4, 5, 13], "color": 1, "user_input_path": 1, "40": 3, "error_stat": 3, "stall": 4, "port": 4, "load_charging_data": 4, "uniqu": 4, "chargingstationcentr": 4, "central": 4, "mpccentral": 4, "central_der_dict": 4, "rhc": 4, "create_charging_stations_centr": 4, "charging_nodes_list": 4, "share": 4, "provid": 4, "fleet": 4, "offset": 4, "consumpt": 4, "especi": 4, "block": 4, "soh": 4, "reced": 4, "account": 4, "easili": 4, "uncertainti": 4, "step_centr": 4, "reason": 4, "becaus": 4, "like": [4, 12], "tariff": 4, "zone": 4, "territori": 4, "emissions_cost": 4, "public": [6, 8], "enough": 12, "cpu": 12, "rerun": 12, "load_input_config": 12, "make_scenario": 12, "No": 12, "preload": 12, "run_scenario_singl": 12, "run_scenarios_parallel": 12, "multicor": 12, "processor": 12, "core": 12, "ram": 12, "lead": 12, "freez": 12, "run_scenarios_sequenti": 12, "associ": 13, "statement": 13, "written": 13, "sync": 13, "eas": 4, "tempor": 4, "understand": 4, "deriv": 4, "pf_dt": 4, "second": 4, "trans_dt": 4, "battery_dt": 4, "dt": 4, "children": 4, "colloc": 4, "singl": 4, "thu": 4, "when": 4, "know": 4, "child": 4, "add_child": 4, "oiltypetransform": 4, "global_clock": 4, "temperature_data": 4, "plot_stat": 4, "previou": 4, "increment": 4, "nonlinear": 4, "swift": 4, "2001": 4, "xxxx": 5, "synthet": 5, "experi": 7, "feeder_population_centr": [10, 12], "feeder_population_colloc": [10, 12]}, "objects": {"": [[1, 0, 0, "-", "analysis"], [2, 0, 0, "-", "app"], [3, 0, 0, "-", "batt_sys_identification"], [4, 0, 0, "-", "charging_sim"], [5, 0, 0, "-", "feeder_population"], [10, 0, 0, "-", "test_cases"]], "analysis": [[1, 0, 0, "-", "cost_analysis"], [1, 0, 0, "-", "load_post_opt_costs"], [1, 0, 0, "-", "plot_results"]], "analysis.cost_analysis": [[1, 1, 1, "", "CostEstimator"]], "analysis.cost_analysis.CostEstimator": [[1, 2, 1, "", "calculate_battery_cost"], [1, 2, 1, "", "calculate_electricity_cost_PGEBEV2s"], [1, 2, 1, "", "calculate_solar_cost"], [1, 2, 1, "", "calculate_trans_loss_of_life"], [1, 2, 1, "", "plot_loads"], [1, 2, 1, "", "plot_power"], [1, 2, 1, "", "plot_soc"], [1, 2, 1, "", "solar_cost"], [1, 2, 1, "", "transformer_cost"]], "analysis.load_post_opt_costs": [[1, 3, 1, "", "collate_results"], [1, 3, 1, "", "plot_stacked_bar"], [1, 3, 1, "", "plot_tables"], [1, 3, 1, "", "run"], [1, 3, 1, "", "run_results"]], "analysis.plot_results": [[1, 3, 1, "", "run"]], "app": [[2, 3, 1, "", "change_run_date"], [2, 3, 1, "", "create_results_folder"], [2, 3, 1, "", "create_temp_configs"], [2, 3, 1, "", "load_default_input"], [2, 3, 1, "", "make_month_str"], [2, 3, 1, "", "simulate"], [2, 3, 1, "", "validate_options"]], "batt_sys_identification": [[3, 0, 0, "-", "battery_identification"]], "batt_sys_identification.battery_identification": [[3, 1, 1, "", "BatteryParams"]], "batt_sys_identification.battery_identification.BatteryParams": [[3, 2, 1, "", "ga"], [3, 2, 1, "", "get_Ro"], [3, 2, 1, "", "get_corrected_voltages"], [3, 2, 1, "", "get_uncorrected_voltages"], [3, 2, 1, "", "plot_Ro"], [3, 2, 1, "", "plot_correction_scheme_comparison"], [3, 2, 1, "", "run_ocv_correction"], [3, 2, 1, "", "run_pre_checks"], [3, 2, 1, "", "run_sys_identification"], [3, 2, 1, "", "simulate_response"]], "charging_sim": [[4, 0, 0, "-", "battery"], [4, 0, 0, "-", "batteryAgingSim"], [4, 0, 0, "-", "batterypack"], [4, 0, 0, "-", "capacitor"], [4, 0, 0, "-", "chargingStation"], [4, 0, 0, "-", "clock"], [4, 0, 0, "-", "controller"], [4, 0, 0, "-", "electricityPrices"], [4, 0, 0, "-", "node"], [4, 0, 0, "-", "optimization"], [4, 0, 0, "-", "orchestrator"], [4, 0, 0, "-", "simulate"], [4, 0, 0, "-", "solar"], [4, 0, 0, "-", "transformer"], [4, 0, 0, "-", "utils"]], "charging_sim.battery": [[4, 1, 1, "", "Battery"], [4, 3, 1, "", "test"]], "charging_sim.battery.Battery": [[4, 2, 1, "", "battery_setup"], [4, 2, 1, "", "battery_setup_2"], [4, 2, 1, "", "dynamics"], [4, 2, 1, "", "est_calendar_aging"], [4, 2, 1, "", "est_cyc_aging"], [4, 2, 1, "", "get_OCV"], [4, 2, 1, "", "get_Ro"], [4, 2, 1, "", "get_aging_value"], [4, 2, 1, "", "get_power_profile"], [4, 2, 1, "", "get_properties"], [4, 2, 1, "", "get_roundtrip_efficiency"], [4, 2, 1, "", "get_total_aging"], [4, 2, 1, "", "get_true_power"], [4, 2, 1, "", "save_sim_data"], [4, 2, 1, "", "save_states"], [4, 2, 1, "", "state_eqn"], [4, 2, 1, "", "thermal_dynamics"], [4, 2, 1, "", "track_SOC"], [4, 2, 1, "", "update_SOC"], [4, 2, 1, "", "update_capacity"], [4, 2, 1, "", "update_max_current"], [4, 2, 1, "", "update_params"], [4, 2, 1, "", "update_voltage"], [4, 2, 1, "", "visualize"]], "charging_sim.batteryAgingSim": [[4, 1, 1, "", "BatteryAging"]], "charging_sim.batteryAgingSim.BatteryAging": [[4, 2, 1, "", "LFP_cal_aging"], [4, 2, 1, "", "LFP_cyc_aging"], [4, 2, 1, "", "NMC_cal_aging"], [4, 2, 1, "", "NMC_cyc_aging"], [4, 2, 1, "", "get_aging_value"], [4, 2, 1, "", "get_calendar_aging"], [4, 2, 1, "", "get_cyc_aging"], [4, 2, 1, "", "get_total_aging"], [4, 2, 1, "", "run"], [4, 2, 1, "", "update_capacity"], [4, 2, 1, "", "update_resistance"]], "charging_sim.batterypack": [[4, 1, 1, "", "Battery"]], "charging_sim.batterypack.Battery": [[4, 4, 1, "", "R_pack"], [4, 2, 1, "", "battery_setup"], [4, 2, 1, "", "battery_setup_2"], [4, 4, 1, "", "battery_type"], [4, 4, 1, "", "config"], [4, 4, 1, "", "controller"], [4, 2, 1, "", "dynamics"], [4, 2, 1, "", "est_calendar_aging"], [4, 2, 1, "", "est_cyc_aging"], [4, 2, 1, "", "get_OCV"], [4, 2, 1, "", "get_aging_value"], [4, 2, 1, "", "get_power_profile"], [4, 2, 1, "", "get_roundtrip_efficiency"], [4, 2, 1, "", "get_total_aging"], [4, 2, 1, "", "get_true_power"], [4, 2, 1, "", "load_pack_props"], [4, 4, 1, "", "nominal_pack_cap"], [4, 2, 1, "", "save_sim_data"], [4, 2, 1, "", "state_eqn"], [4, 2, 1, "", "thermal_dynamics"], [4, 2, 1, "", "track_SOC"], [4, 2, 1, "", "update_capacity"], [4, 2, 1, "", "update_max_current"], [4, 2, 1, "", "update_voltage"], [4, 2, 1, "", "visualize"]], "charging_sim.capacitor": [[4, 1, 1, "", "Capacitor"]], "charging_sim.chargingStation": [[4, 1, 1, "", "ChargingStation"], [4, 1, 1, "", "ChargingStationCentralized"]], "charging_sim.chargingStation.ChargingStation": [[4, 2, 1, "", "get_current_load"], [4, 2, 1, "", "is_EV_arrived"], [4, 2, 1, "", "is_charging"], [4, 2, 1, "", "load_charging_data"], [4, 2, 1, "", "save_sim_data"], [4, 2, 1, "", "set_current_load"], [4, 2, 1, "", "update_load"], [4, 2, 1, "", "update_load_oneshot"], [4, 2, 1, "", "update_status"], [4, 2, 1, "", "visualize"]], "charging_sim.chargingStation.ChargingStationCentralized": [[4, 2, 1, "", "get_current_load"], [4, 2, 1, "", "is_EV_arrived"], [4, 2, 1, "", "is_charging"], [4, 2, 1, "", "load_charging_data"], [4, 2, 1, "", "save_sim_data"], [4, 2, 1, "", "set_current_load"], [4, 2, 1, "", "update_load"], [4, 2, 1, "", "update_load_oneshot"], [4, 2, 1, "", "update_status"], [4, 2, 1, "", "visualize"]], "charging_sim.clock": [[4, 1, 1, "", "Clock"]], "charging_sim.clock.Clock": [[4, 2, 1, "", "reset"], [4, 2, 1, "", "update"]], "charging_sim.controller": [[4, 1, 1, "", "MPC"], [4, 1, 1, "", "MPCCentralized"], [4, 1, 1, "", "Oneshot"]], "charging_sim.controller.MPC": [[4, 2, 1, "", "compute_control"], [4, 2, 1, "", "get_battery_constraints"], [4, 2, 1, "", "initialize_forecast_data"], [4, 2, 1, "", "load_battery_ocv"], [4, 2, 1, "", "reset_load"]], "charging_sim.controller.MPCCentralized": [[4, 2, 1, "", "compute_control"], [4, 2, 1, "", "get_battery_constraints"], [4, 2, 1, "", "initialize_forecast_data"], [4, 2, 1, "", "load_battery_ocv"], [4, 2, 1, "", "reset_load"]], "charging_sim.controller.Oneshot": [[4, 2, 1, "", "compute_control"], [4, 2, 1, "", "get_battery_constraints"], [4, 2, 1, "", "load_battery_ocv"], [4, 2, 1, "", "reset_load"]], "charging_sim.electricityPrices": [[4, 1, 1, "", "PriceLoader"]], "charging_sim.electricityPrices.PriceLoader": [[4, 2, 1, "", "downscale"], [4, 2, 1, "", "get_prices"], [4, 2, 1, "", "set_month_data"]], "charging_sim.node": [[4, 1, 1, "", "Node"]], "charging_sim.node.Node": [[4, 2, 1, "", "add_child"], [4, 2, 1, "", "get_current_load"], [4, 2, 1, "", "save_sim_data"], [4, 2, 1, "", "set_current_load"], [4, 2, 1, "", "update_load"]], "charging_sim.optimization": [[4, 1, 1, "", "Optimization"]], "charging_sim.optimization.Optimization": [[4, 2, 1, "", "add_demand_charge"], [4, 2, 1, "", "aggregate_constraints"], [4, 2, 1, "", "build_battery_cost"], [4, 2, 1, "", "build_emissions_cost"], [4, 2, 1, "", "build_transformer_cost"], [4, 2, 1, "", "get_battery_constraint"], [4, 2, 1, "", "get_constraints"], [4, 2, 1, "", "run"]], "charging_sim.orchestrator": [[4, 1, 1, "", "ChargingSim"]], "charging_sim.orchestrator.ChargingSim": [[4, 2, 1, "", "create_battery_object"], [4, 2, 1, "", "create_charging_stations"], [4, 2, 1, "", "create_charging_stations_centralized"], [4, 2, 1, "", "create_charging_stations_oneshot"], [4, 2, 1, "", "create_solar_object"], [4, 2, 1, "", "get_action"], [4, 2, 1, "", "get_charger_obj_by_loc"], [4, 2, 1, "", "get_charging_sites"], [4, 2, 1, "", "initialize_aging_sim"], [4, 2, 1, "", "initialize_controllers"], [4, 2, 1, "", "initialize_price_loader"], [4, 2, 1, "", "load_battery_params"], [4, 2, 1, "", "load_config"], [4, 2, 1, "", "load_results_summary"], [4, 2, 1, "", "multistep"], [4, 2, 1, "", "reset_loads"], [4, 2, 1, "", "setup"], [4, 2, 1, "", "step"], [4, 2, 1, "", "step_centralized"], [4, 2, 1, "", "update_scenario"], [4, 2, 1, "", "update_steps"]], "charging_sim.simulate": [[4, 3, 1, "", "change_run_date"], [4, 3, 1, "", "create_results_folder"], [4, 3, 1, "", "create_temp_configs"], [4, 3, 1, "", "load_default_input"], [4, 3, 1, "", "make_month_str"], [4, 3, 1, "", "simulate"], [4, 3, 1, "", "validate_options"]], "charging_sim.solar": [[4, 1, 1, "", "Solar"], [4, 3, 1, "", "main"]], "charging_sim.solar.Solar": [[4, 2, 1, "", "downscale"], [4, 2, 1, "", "get_constraints"], [4, 2, 1, "", "get_power"], [4, 2, 1, "", "get_solar_output"], [4, 2, 1, "", "modify_res"], [4, 2, 1, "", "update_history"]], "charging_sim.transformer": [[4, 1, 1, "", "OilTypeTransformer"]], "charging_sim.transformer.OilTypeTransformer": [[4, 2, 1, "", "plot_states"], [4, 2, 1, "", "thermal_dynamics"]], "charging_sim.utils": [[4, 3, 1, "", "PGE_BEV2_S"], [4, 3, 1, "", "add_power_profile_to_object"], [4, 3, 1, "", "build_cost_PGE_BEV2S"], [4, 3, 1, "", "build_electricity_cost"], [4, 3, 1, "", "build_objective"], [4, 3, 1, "", "load_prices"]], "feeder_population": [[5, 0, 0, "-", "glm_mod_functions"]], "feeder_population.glm_mod_functions": [[5, 3, 1, "", "load_base_glm"], [5, 3, 1, "", "replace_load_w_meter"], [5, 3, 1, "", "replace_load_w_meter_old"], [5, 3, 1, "", "write_base_glm"], [5, 3, 1, "", "write_class_dict"], [5, 3, 1, "", "write_clock_dict"], [5, 3, 1, "", "write_filter_dict"], [5, 3, 1, "", "write_mod_dict"], [5, 3, 1, "", "write_obj_dict"]], "test_cases": [[11, 0, 0, "-", "base_case"], [12, 0, 0, "-", "battery"]], "test_cases.battery": [[13, 0, 0, "-", "feeder_population"], [12, 0, 0, "-", "scenarios"]], "test_cases.battery.feeder_population": [[13, 0, 0, "-", "glm_mod_functions"]], "test_cases.battery.feeder_population.glm_mod_functions": [[13, 3, 1, "", "load_base_glm"], [13, 3, 1, "", "replace_load_w_meter"], [13, 3, 1, "", "replace_load_w_meter_old"], [13, 3, 1, "", "write_base_glm"], [13, 3, 1, "", "write_class_dict"], [13, 3, 1, "", "write_clock_dict"], [13, 3, 1, "", "write_filter_dict"], [13, 3, 1, "", "write_mod_dict"], [13, 3, 1, "", "write_obj_dict"]], "test_cases.battery.scenarios": [[12, 3, 1, "", "load_input_config"], [12, 3, 1, "", "make_month_str"], [12, 3, 1, "", "make_scenarios"], [12, 3, 1, "", "run"], [12, 3, 1, "", "run_scenario_single"], [12, 3, 1, "", "run_scenarios_parallel"], [12, 3, 1, "", "run_scenarios_sequential"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "attribute", "Python attribute"]}, "titleterms": {"post": [1, 8], "simul": [1, 4, 8], "analysi": [1, 8], "cost_analysi": 1, "modul": [1, 2, 3, 4, 5, 9, 10, 11, 12, 13], "load_post_opt_cost": 1, "plot_result": 1, "app": 2, "batteri": [3, 4, 12, 13], "system": 3, "identif": 3, "batt_sys_identif": 8, "battery_identif": 3, "charg": 4, "charging_sim": [4, 8], "batteryagingsim": 4, "batterypack": 4, "batterytest": 4, "capacitor": 4, "chargingst": 4, "control": 4, "electricitypric": 4, "optim": 4, "orchestr": 4, "solar": 4, "util": [0, 4], "content": [1, 3, 4, 5, 10, 11, 12, 13], "feeder": [5, 8], "popul": 5, "feeder_popul": [5, 8, 13], "glm_mod_funct": [5, 13], "welcom": 6, "ev": [6, 8, 14], "ecosim": [6, 8, 14], "1": 6, "0": 6, "document": 6, "what": [6, 14], "link": 6, "indic": 6, "tabl": 6, "packag": [7, 13], "setup": 9, "test": [10, 11, 12], "case": [10, 11, 12], "subpackag": [10, 12], "base": 11, "submodul": [1, 3, 4, 5, 11, 12, 13], "test_cas": [8, 11, 12, 13], "base_cas": 11, "event_handl": [11, 12], "gblvar": [11, 12], "glmptime": [11, 12], "master_sim": [11, 12], "sim": [11, 12], "voltdump2": [11, 12], "event_handlers_oneshot": 12, "parse_voltag": 12, "scenario": 12, "feeder_population_old": [], "motiv": 0, "background": 0, "bridg": 0, "disconnect": 0, "between": 0, "evs": 0, "provid": 0, "platform": [8, 14], "author": 8, "requir": 8, "folder": 8, "descript": 8, "ambient_data": 8, "base_load_data": 8, "dlmodel": 8, "elec_r": 8, "solar_data": 8, "how": [8, 14], "run": [8, 14], "tutori": 14, "quick": 14, "introduct": 14, "quickstart": 14, "experi": 3, "clock": 4, "node": 4, "transform": 4, "feeder_population_centr": 13, "feeder_population_colloc": 13}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["Introduction/welcome", "analysis", "app", "batt_sys_identification", "charging_sim", "feeder_population", "index", "modules", "readme/README", "setup", "test_cases", "test_cases.base_case", "test_cases.battery", "test_cases.battery.feeder_population", "tutorials/tutorial"], "filenames": ["Introduction\\welcome.md", "analysis.rst", "app.rst", "batt_sys_identification.rst", "charging_sim.rst", "feeder_population.rst", "index.rst", "modules.rst", "readme\\README.md", "setup.rst", "test_cases.rst", "test_cases.base_case.rst", "test_cases.battery.rst", "test_cases.battery.feeder_population.rst", "tutorials\\tutorial.md"], "titles": ["Motivation", "Post-simulation Analysis", "app module", "Battery System Identification", "Charging Simulator", "Feeder Population", "Welcome to EV-EcoSim 1.0.0 documentation!", "Packages", "EV-EcoSim platform", "setup module", "Test cases", "Base Case Test Cases", "Battery Test Cases", "test_cases.battery.feeder_population package", "Tutorials"], "terms": {"thi": [0, 1, 2, 3, 4, 5, 6, 8, 12, 13], "contain": [1, 4, 8, 12, 13], "costestim": [1, 8], "class": [1, 3, 4, 5, 8, 13], "which": [0, 1, 3, 4, 8, 12], "estim": [1, 4, 8], "cost": [1, 4, 8], "differ": [1, 4, 8], "grid": [0, 1, 3, 4, 6, 8], "der": [0, 1, 4, 6, 8], "compon": [0, 1, 8], "from": [1, 2, 3, 4, 5, 8, 12, 13], "us": [1, 2, 3, 4, 5, 8, 12, 13], "calcul": [1, 4, 8], "num_dai": 1, "base": [1, 3, 4, 5, 6, 7, 8, 10, 12, 13], "object": [1, 3, 4, 5, 13], "level": [1, 4, 8], "asset": [1, 4], "ev": [0, 1, 2, 4, 5, 13], "ecosim": [0, 1, 2, 4, 5, 13], "The": [0, 1, 3, 4, 5, 6, 8, 13], "lcoe": 1, "energi": [0, 1, 4, 6, 8, 12], "defin": [1, 4, 12], "revenu": 1, "total": [1, 4, 8], "net": [1, 4], "expenditur": 1, "requir": [0, 1, 2, 4], "build": [1, 4, 8], "oper": [0, 1, 3], "an": [0, 1, 4, 8], "system": [1, 2, 4, 5, 6, 7, 8, 13], "over": [1, 3, 4], "specifi": [1, 4, 5, 8, 12, 13], "recoveri": 1, "period": 1, "normal": [1, 8], "entir": [1, 4, 12], "throughput": 1, "compar": [1, 12], "econom": 1, "devic": [1, 4], "would": [0, 1, 2, 4, 12], "otherwis": [1, 4], "challeng": 1, "paramet": [1, 2, 3, 4, 5, 8, 12, 13], "number": [1, 3, 4], "dai": [1, 4, 8], "run": [1, 2, 3, 4, 5, 12, 13], "calculate_battery_cost": 1, "result_dir": 1, "batteri": [0, 1, 2, 6, 7, 8, 10], "updat": [1, 3, 4], "includ": [1, 3, 4, 5, 8, 13], "directori": [1, 13], "save": [1, 2, 3, 4, 5, 8, 13], "result": [1, 2, 4, 8], "dictionari": [1, 4, 5, 12, 13], "return": [1, 2, 3, 4, 5, 12, 13], "dict": [1, 2, 4, 5, 12], "result_dict": 1, "calculate_electricity_cost_pgebev2": 1, "pge_separate_fil": 1, "true": [1, 2, 3, 4], "overal": [1, 4, 8], "electr": [0, 1, 4, 6, 8], "pgebev2": 1, "given": [1, 3, 4, 12], "scenario": [1, 4, 7, 8, 10], "str": [1, 4, 13], "A": [1, 4, 8], "compris": 1, "all": [1, 3, 4, 5, 8, 12], "dollar": 1, "amount": [1, 8], "calculate_solar_cost": 1, "valu": [1, 3, 4, 8], "ar": [1, 2, 3, 4, 5, 8, 12, 13], "pull": [1, 4], "nrel": [1, 8], "solar": [0, 1, 6, 7, 8], "ref": [1, 4], "http": [1, 4], "www": [1, 4], "gov": 1, "market": 1, "research": 1, "html": 1, "To": 1, "deprec": [1, 4], "soon": [1, 6], "none": [1, 2, 3, 4, 12, 13], "calculate_trans_loss_of_lif": 1, "expect": [0, 1], "transform": [0, 1, 5, 7, 8, 13], "loss": [1, 4], "life": [1, 4], "lol": 1, "model": [1, 3, 4, 5, 6, 8, 13], "function": [1, 4, 5, 8, 12, 13], "hot": 1, "spot": [1, 8], "temperatur": [1, 4, 8], "refer": 1, "5": 1, "11": 1, "3": [1, 3, 6], "ieee": [1, 8], "std": 1, "c57": 1, "12": [1, 4, 8], "00": 1, "2010": 1, "minimum": [1, 4], "insul": 1, "180": 1, "000": 1, "hour": [1, 4], "static": [1, 4], "plot_load": 1, "total_load": 1, "net_load": 1, "prefix": [1, 4], "label": [1, 8], "option": [1, 2, 4], "list": [1, 4, 5, 8, 12, 13], "creat": [1, 2, 4, 8, 12], "plot": [1, 3, 4, 8], "overlai": 1, "load": [1, 2, 3, 4, 5, 8, 12, 13], "visual": [1, 4], "demand": [0, 1, 4], "node": [7, 8], "can": [0, 1, 2, 3, 4, 5, 8, 12, 13], "control": [0, 1, 6, 7, 8], "minu": 1, "buffer": 1, "file": [1, 2, 3, 4, 5, 8, 12, 13], "legend": 1, "each": [1, 2, 4, 8, 12], "curv": 1, "plot_pow": 1, "power": [0, 1, 2, 4, 5, 6, 8, 13], "power_pr": 1, "predict": [1, 4], "plot_soc": 1, "soc": [1, 3, 4], "soc_pr": 1, "state": [1, 2, 3, 4, 8], "charg": [0, 1, 3, 5, 6, 7, 8, 13], "solar_cost": 1, "capit": 1, "give": 1, "station": [0, 1, 4, 5, 6, 8, 13], "design": [0, 1, 4, 8], "problem": [1, 4], "Not": [1, 3, 4], "fulli": [1, 2, 4], "implement": [1, 4, 8], "locat": [0, 1, 4, 13], "pv": [0, 1, 4, 8], "transformer_cost": [1, 4], "cannot": [1, 4], "find": [1, 3, 4], "good": 1, "resourc": [0, 1, 4, 6, 8], "data": [1, 3, 4, 8], "yet": [1, 3, 4], "overview": [1, 4, 12], "popul": [1, 3, 7, 8, 13], "tabl": [1, 8], "matric": [1, 8], "respect": [1, 4, 8], "folder": [1, 3, 4, 5, 13], "collate_result": 1, "month": [0, 1, 2, 4, 8, 12], "tran": 1, "oneshot": [1, 4], "fals": [1, 2, 3, 4], "collat": 1, "them": [1, 4, 5, 13], "matrix": 1, "being": [1, 3, 4], "bool": [1, 3, 4], "boolean": [1, 4], "decid": [0, 1, 4], "ag": [1, 4, 8], "tell": 1, "were": 1, "obtain": [1, 4], "mpc": [1, 4], "plot_stacked_bar": 1, "elec_cost": 1, "batt_cost": 1, "save_plot_path": 1, "stack": 1, "bar": 1, "portion": 1, "contribut": [1, 4], "datafram": [1, 3], "string": [1, 2, 4, 8, 12], "path": [1, 4, 8], "plot_tabl": 1, "batt_dtabl": 1, "elec_cost_dt": 1, "trans_cost_dt": 1, "batt_aging_t": 1, "solar_cost_t": 1, "save_plots_fold": 1, "chart": 1, "run_result": 1, "case_dir": 1, "days_count": 1, "trans_cost": 1, "case": [1, 3, 5, 7, 8, 13], "int": [1, 2, 3, 4, 12], "usual": [1, 4, 5, 8], "30": 1, "now": [1, 4, 8], "pars": [1, 8], "voltag": [0, 1, 3, 4, 8], "percentag": [1, 3, 8], "violat": [1, 8], "per": [1, 3, 4, 5, 8, 13], "ansi": [1, 8], "c84": [1, 8], "1": [1, 2, 3, 4, 8, 12], "also": [1, 4, 8], "gener": [1, 3, 4, 8], "distribut": [0, 1, 4, 5, 6, 8, 13], "user": [1, 2, 3, 4, 5, 8, 12, 13], "modifi": [1, 4, 5, 8, 12, 13], "simulation_fold": 1, "variabl": [1, 4, 8], "where": [0, 1, 4, 8, 13], "powerflow": [1, 4, 8], "output": [1, 4, 5, 8, 13], "exist": [0, 1, 2, 4, 8], "iter": [1, 4], "through": [1, 4], "same": [1, 4], "csv": [1, 3, 4, 5, 8, 13], "applic": 2, "main": [2, 4], "start": [2, 4], "change_run_d": [2, 4], "chang": [2, 4, 12], "date": [2, 4], "simul": [0, 2, 3, 5, 6, 7, 12, 13], "create_results_fold": [2, 4], "dir": [2, 4], "one": [2, 3, 4, 8, 12], "doe": [2, 4], "create_temp_config": [2, 4], "temporari": [2, 4], "configur": [2, 4, 5, 8, 12, 13], "load_default_input": [2, 4], "default": [2, 3, 4, 8], "input": [1, 2, 3, 4, 5, 8, 12, 13], "skeleton": [2, 4], "make_month_str": [2, 4, 12], "month_int": [2, 4, 12], "make": [0, 2, 4, 12], "integ": [2, 4, 12], "add": [2, 4, 12], "0": [2, 3, 4, 12], "less": [2, 4, 12], "than": [2, 4, 12], "10": [2, 3, 4, 12], "januari": [2, 4, 8, 12], "2": [2, 3, 4, 8, 12], "februari": [2, 4, 12], "etc": [0, 2, 4, 8, 12], "user_input": [1, 2, 4], "sequential_run": [2, 4], "parallel_run": [2, 4], "validate_opt": [2, 4], "front_input": [2, 4], "valid": [2, 4], "ensur": [2, 3, 4, 8], "select": [2, 3, 4], "match": [2, 4], "workflow": [2, 4], "backend": [2, 4], "host": [3, 4, 8], "fit": 3, "ecm": [3, 8], "batteryparam": 3, "open": [3, 4, 8], "circuit": [3, 4, 8], "correct": [3, 4, 8], "scheme": [3, 4], "take": [0, 3, 4, 5, 13], "some": [3, 4, 8], "field": [1, 3, 5, 8, 13], "dure": [3, 4, 8], "instanti": [3, 4], "column": [3, 8], "must": [3, 4, 8], "follow": [3, 4, 8], "liter": 3, "sensit": [3, 8], "current": [3, 4, 12], "cell": [3, 4, 8], "time": [2, 3, 4, 8, 12], "seri": [3, 4], "correspond": [3, 5, 13], "ocv": [3, 4, 8], "how": 3, "pd": 3, "read_csv": 3, "data_path": 3, "panda": [3, 4], "run_sys_identif": 3, "plot_correction_scheme_comparison": 3, "write": [3, 5, 8, 13], "new": [0, 3, 4, 5, 8, 13], "within": [0, 1, 3, 4, 5, 6, 8, 13], "download": 3, "via": [3, 4], "web": [3, 6], "tool": [3, 6], "test": [3, 4, 5, 7, 8, 13], "param": [3, 4, 8], "ga": 3, "num_gener": 3, "100": [0, 3], "num_parents_m": 3, "sol_per_pop": 3, "num_gen": 3, "7": [3, 4], "crossover_typ": 3, "single_point": 3, "mutation_typ": 3, "adapt": 3, "parent_selection_typ": 3, "sss": 3, "mutation_percent_gen": 3, "60": 3, "mutation_prob": 3, "crossover_prob": 3, "genet": [3, 8], "algorithm": [3, 8], "instanc": [3, 4, 5], "pleas": [3, 8, 12], "see": [3, 4, 8], "pygad": 3, "offici": 3, "document": 3, "more": [3, 4, 8], "explan": 3, "have": [1, 2, 3, 4, 8, 12], "been": [1, 3], "optim": [0, 2, 3, 6, 7, 8], "accuraci": 3, "speed": 3, "howev": [0, 3, 4, 12], "ani": [1, 3, 4, 8], "mai": 3, "combin": [3, 12], "work": [0, 3, 4, 8], "better": 3, "set": [3, 4, 8, 12], "parent": [3, 4], "form": 3, "next": 3, "offspr": 3, "solut": 3, "gene": 3, "size": [3, 8], "equival": [3, 8], "search": [3, 6], "describ": [3, 4, 5, 8, 13], "cross": 3, "between": 3, "mate": 3, "done": [2, 3, 4, 5, 8, 13], "mutat": 3, "undergo": 3, "probabl": 3, "appli": 3, "Its": 3, "inclus": [3, 8], "vector": [3, 4, 12], "get_ro": [3, 4], "high": 3, "frequenc": 3, "ro": 3, "resist": [3, 4], "r_o": 3, "get_corrected_voltag": 3, "respons": [3, 4], "get_uncorrected_voltag": 3, "uncorrect": 3, "plot_ro": 3, "xlim": 3, "20000": 3, "36000": 3, "ylim": 3, "75": 3, "85": 3, "non": [3, 4], "run_ocv_correct": 3, "use_quadrat": 3, "cell_nam": 3, "diagn": 3, "attribut": [3, 4], "quadrat": 3, "linear": [3, 4], "wa": [2, 3, 4], "origin": [3, 8], "paper": [3, 4, 8], "run_pre_check": 3, "pre": [3, 4, 5, 8, 13], "check": [3, 4], "thei": [3, 8, 12], "desir": [0, 3, 4], "length": 3, "begin": 3, "error": [3, 4, 8], "use_initial_pop": 3, "quadratic_bia": 3, "simulate_respons": 3, "complet": [0, 3], "battery_typ": 4, "config": [4, 5, 8, 12, 13], "least": [4, 8], "physic": [4, 8], "constraint": 4, "properti": 4, "mainli": [4, 12], "json": [1, 4, 8, 12], "max": 4, "c": [4, 12], "rate": [4, 8, 12], "determin": [0, 4], "capac": [0, 4, 12], "multipl": [4, 12], "v": 4, "maximum": [4, 12], "allow": [4, 12], "min": 4, "nomin": 4, "kwh": 4, "deliver": 4, "id": 4, "ambient": [4, 8], "celsiu": 4, "type": [4, 8, 13], "inconsequenti": 4, "dynam": 4, "bu": [4, 5, 13], "network": [1, 4, 6, 8], "resid": 4, "self": 4, "battery_setup": 4, "up": 4, "parallel": [4, 12], "scale": 4, "ah": 4, "setup": [4, 7], "fix": 4, "while": [0, 4], "float": 4, "pack": [4, 8], "wh": [4, 12], "topolog": 4, "battery_setup_2": 4, "instead": 4, "therebi": 4, "pack_max_ah": 4, "watt": 4, "amp": 4, "cell_amp_hr": 4, "cell_voltag": 4, "propag": [2, 4], "forward": 4, "step": [2, 4, 5, 13], "It": [4, 5, 8, 13], "amper": 4, "np": 4, "cycl": 4, "est_calendar_ag": 4, "constant": 4, "calendar": 4, "sole": 4, "depend": 4, "later": 4, "est_cyc_ag": 4, "hess": 4, "et": 4, "al": 4, "its": 4, "cvx": 4, "cvxpy": 4, "get_ocv": 4, "map": 4, "store": 4, "interpol": 4, "priori": 4, "s": [0, 4], "possibl": 4, "get_aging_valu": 4, "ha": [4, 8], "experienc": 4, "so": [4, 8], "far": 4, "get_power_profil": 4, "profil": 4, "certain": [0, 4], "get_properti": 4, "get_roundtrip_effici": 4, "get_total_ag": 4, "get_true_pow": 4, "save_sim_data": 4, "save_prefix": 4, "relev": [4, 8], "call": 4, "upon": 4, "conclus": 4, "save_st": 4, "state_eqn": 4, "append": 4, "discret": 4, "equat": 4, "here": 4, "g": 4, "l": 4, "plett": 4, "manag": 4, "volum": 4, "i": [0, 4], "artech": 4, "hous": 4, "2015": 4, "vol": 4, "track": 4, "b": 4, "post": [2, 4, 7], "analys": 4, "histori": 4, "thermal_dynam": 4, "futur": [0, 4], "track_soc": 4, "update_soc": 4, "update_capac": 4, "anticip": [1, 4], "update_max_curr": 4, "verbos": 4, "update_param": 4, "update_voltag": 4, "method": [4, 8], "batteryag": 4, "enact": 4, "datetim": 4, "num_step": 4, "re": 4, "15": [4, 8], "linimncoo2": 4, "nmc": [4, 8], "ad": 4, "link": [4, 8], "sciencedirect": 4, "com": 4, "scienc": 4, "articl": 4, "pii": 4, "s0378775314001876": 4, "beta_cap": 4, "fade": 4, "factor": 4, "alpha_cap": 4, "beta_r": 4, "growth": [0, 4], "alpha_r": 4, "assumpt": 4, "homogen": 4, "uniform": 4, "across": 4, "vicin": 4, "lfp_cal_ag": 4, "lfp_cyc_ag": 4, "nmc_cal_ag": 4, "nmc_cyc_ag": 4, "get_calendar_ag": 4, "tupl": 4, "due": 4, "get_cyc_ag": 4, "THe": 4, "batt": [4, 8], "both": 4, "adopt": 4, "schmalsteig": 4, "update_resist": 4, "structur": [4, 5, 13], "compos": 4, "individu": 4, "connect": 4, "achiev": 4, "exampl": [4, 5, 13], "usag": 4, "battery_config_path": 4, "r": 4, "f": [4, 8], "battery_config": 4, "params_list": 4, "kei": [0, 4], "params_": 4, "Then": [0, 4], "params_kei": 4, "actual": 4, "those": 4, "prior": 4, "loadtxt": 4, "path_prefix": 4, "constructor": 4, "buffer_batteri": 4, "r_pack": 4, "initi": [4, 8], "sum": 4, "aging_c": 4, "lost": 4, "after": 4, "round": 4, "trip": 4, "effici": 4, "_eff": 4, "out": [4, 8], "last": 4, "load_pack_prop": 4, "balogun": [4, 8], "dx": 4, "doi": 4, "org": 4, "36227": 4, "techrxiv": 4, "23596725": 4, "v2": 4, "nominal_pack_cap": 4, "py": [4, 8], "meth": 4, "thermal": [4, 8], "intern": 4, "surfac": [4, 8], "avail": [0, 4], "version": [4, 8], "defer": 4, "TO": 4, "BE": 4, "need": [0, 4, 8], "anymor": 4, "onli": [4, 12], "right": 4, "name": [4, 8, 13], "storag": [0, 4], "statu": 4, "idl": 4, "produc": 4, "reactiv": [4, 5, 13], "retain": 4, "inform": 4, "inject": [4, 8], "ingest": 4, "assign": 4, "get_current_load": 4, "kw": [0, 4], "is_ev_arriv": 4, "arriv": 4, "indic": 4, "is_charg": 4, "unit": [0, 4], "set_current_load": 4, "update_load": 4, "net_grid_load": 4, "ev_load": 4, "mode": [4, 8], "vehicl": [0, 4, 6, 8], "update_load_oneshot": 4, "offlin": [2, 4, 8], "update_statu": 4, "bess": 4, "compute_control": 4, "price_vector": 4, "action": 4, "comput": 4, "pass": 4, "tou": [4, 8], "control_act": 4, "signal": 4, "arbitrag": 4, "get_battery_constraint": 4, "satisfi": 4, "storage_constraint": 4, "initialize_forecast_data": 4, "forecast": [4, 8], "load_battery_ocv": 4, "learn": 4, "reset_load": 4, "full": [4, 8], "96": 4, "feedback": [2, 4, 8], "price": [4, 8], "sampl": [4, 8], "detail": [4, 8], "pge_bev2_": 4, "california": 4, "own": 4, "numpi": 4, "arrai": 4, "year": [4, 8], "priceload": 4, "evs": 4, "profit": 4, "loader": 4, "first": 4, "your": [4, 8], "repositori": [4, 6, 8], "downscal": [4, 8], "input_r": 4, "output_r": 4, "finer": 4, "resolut": [4, 8], "similar": 4, "typic": 4, "onc": [2, 4, 5, 8, 13], "get_pric": 4, "start_idx": 4, "assum": 4, "do": 4, "index": [4, 6, 8], "cardin": 4, "jan": 4, "decemb": [4, 8], "ndarrai": [], "set_month_data": 4, "solv": 4, "objective_typ": 4, "power_demand": 4, "time_r": 4, "solver": [4, 6], "gurobi": 4, "degrad": 4, "limit": [4, 8], "convex": 4, "mix": 4, "program": 4, "note": [4, 8], "instal": [0, 4, 8], "separ": 4, "pc": [4, 12], "success": [0, 4], "counter": 4, "identifi": 4, "invok": 4, "eco": 4, "mosek": 4, "add_demand_charg": 4, "aggregate_constraint": 4, "aggreg": 4, "build_battery_cost": 4, "build_emissions_cost": 4, "emiss": 4, "build_transformer_cost": 4, "get_constraint": 4, "chargingsim": 4, "num_charging_sit": 4, "6": 4, "num_ev": 4, "1600": 4, "custom_ev_data": 4, "custom_ev_data_path": 4, "custom_solar_data": 4, "custom_solar_data_path": 4, "organ": [4, 8], "other": 4, "sequenti": [4, 12], "manner": 4, "secondari": [4, 5, 8, 13], "If": 4, "site": 4, "help": [0, 4, 5, 8, 13], "access": [4, 8], "proper": 4, "os": 4, "minut": [4, 8], "create_battery_object": 4, "idx": 4, "node_prop": [], "identif": [4, 7, 8], "l2": [4, 13], "dcfc": 4, "create_charging_st": 4, "power_nod": 4, "buse": 4, "create_charging_stations_oneshot": 4, "create_solar_object": 4, "loc": 4, "get_act": 4, "get_charger_obj_by_loc": 4, "get_charging_sit": 4, "initialize_aging_sim": 4, "initialize_control": 4, "initialize_price_load": 4, "memori": 4, "initialize_solar_modul": [], "load_battery_param": 4, "directli": [4, 5, 12, 13], "sim": [4, 7, 8, 10], "unless": 4, "load_config": 4, "walk": 4, "load_results_summari": 4, "save_path_prefix": 4, "multistep": 4, "much": [4, 8], "faster": 4, "horizon": 4, "perfect": 4, "foresight": 4, "daili": 4, "reset": 4, "power_nodes_list": 4, "accordingli": 4, "specif": [1, 4], "stepsiz": 4, "update_scenario": 4, "update_step": 4, "move": 4, "without": [0, 2, 4, 12], "studi": [0, 2, 4], "effect": [2, 4, 8], "character": [2, 4], "what": [2, 4], "occur": [2, 4], "situ": [2, 4], "app": 4, "global": [4, 8, 12, 13], "horizont": [4, 8], "irradi": [4, 8], "ghi": [4, 8], "dataset": [4, 8], "namepl": 4, "p_": 4, "eta": 4, "area": [4, 8], "panel": 4, "decis": 4, "flow": [4, 6], "get_pow": 4, "desired_shap": 4, "get_solar_output": 4, "modify_r": 4, "new_r": 4, "update_histori": 4, "purpos": 4, "schedul": 4, "pge": 4, "doc": 4, "found": 4, "add_power_profile_to_object": 4, "battery_power_profil": 4, "build_cost_pge_bev2": 4, "energy_prices_t": 4, "penalize_max_pow": 4, "max_power_pen": 4, "1000": 4, "heurist": 4, "averag": 4, "conserv": 4, "gamma": 4, "build_electricity_cost": 4, "demand_charg": 4, "home": [4, 5, 8, 13], "mayb": 4, "opt": 4, "build_object": 4, "electricity_cost": 4, "battery_degradation_cost": 4, "we": 4, "minim": [4, 8], "load_pric": 4, "time_interv": 4, "gridlab": [5, 6, 8, 13], "d": [5, 6, 8, 13], "load_base_glm": [5, 13], "base_file_dir": [5, 13], "base_glm_fil": [5, 13], "glm": [5, 8, 13], "replace_load_w_met": [5, 13], "glm_dict": [5, 13], "match_str": [5, 13], "rep_str": [5, 13], "obj_typ": [5, 13], "replac": [5, 13], "meter": [5, 13], "replace_load_w_meter_old": [5, 13], "write_base_glm": [5, 13], "globals_list": [5, 13], "include_list": [5, 13], "out_dir": [5, 13], "file_nam": [5, 13], "sync_list": [5, 13], "write_class_dict": [5, 13], "gld_dict": [5, 13], "class_nam": [5, 13], "gld": [5, 13], "write_clock_dict": [5, 13], "clock": [5, 7, 13], "write_filter_dict": [5, 13], "filter": [5, 8, 13], "write_mod_dict": [5, 13], "mod_nam": [5, 13], "write_obj_dict": [5, 13], "dict_kei": [5, 13], "python": [6, 8], "multi": 6, "timescal": [4, 6], "awar": [6, 8], "co": [0, 4, 6, 8, 13], "platform": [0, 6], "infrastructur": [0, 6], "develop": [6, 8], "integr": [0, 6, 8], "interfac": [5, 6, 13], "phase": 6, "unbalanc": 6, "captur": [6, 8], "impact": [6, 8], "fast": [6, 13], "preprint": [], "come": [0, 6], "modul": [6, 7, 8], "page": 6, "analysi": 7, "cost_analysi": [7, 8], "load_post_opt_cost": [7, 8], "plot_result": [7, 8], "batt_sys_identif": 3, "battery_identif": 7, "charging_sim": 7, "batteryagingsim": [7, 8], "batterypack": [7, 8], "batterytest": 7, "capacitor": 7, "chargingst": [7, 8], "electricitypric": [7, 8], "orchestr": [7, 8], "util": [7, 8], "content": [7, 8], "feeder": [4, 7, 13], "feeder_popul": [7, 10, 12], "glm_mod_funct": [7, 10, 12], "subpackag": 7, "submodul": [7, 10], "test_cas": [7, 10], "base_cas": [7, 8, 10], "event_handl": [7, 10], "gblvar": [7, 10], "glmptime": [7, 10], "master_sim": [7, 8, 10], "voltdump2": [7, 10], "event_handlers_oneshot": [7, 10], "parse_voltag": [7, 10], "feeder_population_old": [], "introduct": [5, 13], "perform": [0, 5, 13], "ieee123": [5, 13], "script": [5, 8, 13], "read": [5, 8, 13], "initial_glm_nam": [5, 13], "_popul": [5, 13], "_secondari": [5, 13], "These": [5, 13], "test_case_dir": [5, 13], "txt": [5, 8, 12, 13], "descript": [5, 13], "our": [5, 13], "graphic": [5, 13], "gui": [5, 13], "environ": [5, 8, 13], "real_pow": [5, 13], "real": [5, 13], "residenti": [5, 8, 13], "timeseri": [5, 13], "reactive_pow": [5, 13], "dcfc_bu": 13, "dc": 13, "l2charging_bu": 13, "electrif": 0, "transport": 0, "decarbon": 0, "sector": 0, "inevit": 0, "increas": 0, "expans": 0, "leverag": [0, 8], "technolog": 0, "clever": 0, "wai": 0, "coordin": 0, "todai": 0, "fundament": 0, "suppli": 0, "equip": 0, "rapid": 0, "deploy": 0, "difficult": 0, "present": 0, "serv": 0, "testb": 0, "mind": 0, "sai": 0, "e": 0, "chargepoint": 0, "electrifi": 0, "america": 0, "want": [0, 12], "deploi": 0, "san": [0, 8], "francisco": [0, 8], "ca": 0, "contact": 0, "pg": 0, "process": [0, 12], "sometim": 0, "eventu": 0, "might": 0, "support": 0, "let": 0, "even": 0, "get": 0, "chain": 0, "issu": 0, "abl": 0, "avoid": [0, 8], "upgrad": 0, "imagin": 0, "guarante": 0, "exce": 0, "threshold": 0, "approv": 0, "In": [0, 4], "fact": 0, "agreement": 0, "servic": [0, 4], "peak": 0, "shave": 0, "regul": 0, "realiti": 0, "emmanuel": 8, "ebalogun": 8, "stanford": 8, "edu": 8, "hipa": 8, "master": 8, "branch": 8, "recommend": 8, "aw": 8, "ec2": 8, "slac": 8, "gismo": 8, "ami": 8, "beauharnoi": 8, "x": 8, "below": 8, "_": 8, "environment": 8, "condit": 8, "subsystem": 8, "uncontrol": 8, "proprietari": 8, "pecan": 8, "street": 8, "exmapl": 8, "prototyp": 8, "sy": 8, "experiment": 8, "2nd": 8, "order": 8, "rc": 8, "One": 8, "custom": [4, 8], "upload": 8, "shown": 8, "addit": 8, "ocv_corr": 8, "abov": 8, "battery_data": 8, "encompass": 8, "legaci": 8, "elec": 8, "365": 8, "format": 8, "should": [8, 12], "coarser": 8, "librari": 8, "pnnl": 8, "taxonomi": 8, "primari": [4, 8], "vari": 8, "necessari": [4, 8], "repo": 8, "nation": 8, "radiat": 8, "databas": 8, "nsrdb": 8, "bai": 8, "renew": 8, "laboratori": 8, "hourli": 8, "interv": 8, "oversampl": 8, "4": 8, "repres": 8, "w": 8, "m": 8, "shortwav": 8, "receiv": 8, "ground": 8, "timestep": [4, 8], "rlsf": 8, "plu": 8, "recurs": 8, "squar": 8, "onlin": 8, "conda": 8, "env": 8, "yml": 8, "OR": 8, "packag": [8, 10, 12], "manual": 8, "gridlabd": [5, 8, 13], "For": [4, 8], "navig": 8, "prepar": 8, "confirm": 8, "successfulli": 8, "ieee123_secondari": 8, "ieee123_popul": 8, "you": 8, "prep": 8, "python3": 8, "ev50_cosimul": 8, "section": 8, "quick": [], "quickstart": [], "click": [], "expand": [], "collaps": 14, "total_load_color": 1, "blue": 1, "net_load_color": 1, "orang": 1, "node_nam": [1, 4, 5, 13], "color": 1, "user_input_path": 1, "40": 3, "error_stat": 3, "stall": 4, "port": 4, "load_charging_data": 4, "uniqu": 4, "chargingstationcentr": 4, "central": 4, "mpccentral": 4, "central_der_dict": 4, "rhc": 4, "create_charging_stations_centr": 4, "charging_nodes_list": 4, "share": 4, "provid": 4, "fleet": 4, "offset": 4, "consumpt": 4, "especi": 4, "block": 4, "soh": 4, "reced": 4, "account": 4, "easili": 4, "uncertainti": 4, "step_centr": 4, "reason": 4, "becaus": 4, "like": [4, 12], "tariff": 4, "zone": 4, "territori": 4, "emissions_cost": 4, "public": [6, 8], "enough": 12, "cpu": 12, "rerun": 12, "load_input_config": 12, "make_scenario": 12, "No": 12, "preload": 12, "run_scenario_singl": 12, "run_scenarios_parallel": 12, "multicor": 12, "processor": 12, "core": 12, "ram": 12, "lead": 12, "freez": 12, "run_scenarios_sequenti": 12, "associ": 13, "statement": 13, "written": 13, "sync": 13, "eas": 4, "tempor": 4, "understand": 4, "deriv": 4, "pf_dt": 4, "second": 4, "trans_dt": 4, "battery_dt": 4, "dt": 4, "children": 4, "colloc": 4, "singl": 4, "thu": 4, "when": 4, "know": 4, "child": 4, "add_child": 4, "oiltypetransform": 4, "global_clock": 4, "temperature_data": 4, "plot_stat": 4, "previou": 4, "increment": 4, "nonlinear": 4, "swift": 4, "2001": 4, "xxxx": 5, "synthet": 5, "experi": 7, "feeder_population_centr": [10, 12], "feeder_population_colloc": [10, 12]}, "objects": {"": [[1, 0, 0, "-", "analysis"], [2, 0, 0, "-", "app"], [3, 0, 0, "-", "batt_sys_identification"], [4, 0, 0, "-", "charging_sim"], [5, 0, 0, "-", "feeder_population"], [10, 0, 0, "-", "test_cases"]], "analysis": [[1, 0, 0, "-", "cost_analysis"], [1, 0, 0, "-", "load_post_opt_costs"], [1, 0, 0, "-", "plot_results"]], "analysis.cost_analysis": [[1, 1, 1, "", "CostEstimator"]], "analysis.cost_analysis.CostEstimator": [[1, 2, 1, "", "calculate_battery_cost"], [1, 2, 1, "", "calculate_electricity_cost_PGEBEV2s"], [1, 2, 1, "", "calculate_solar_cost"], [1, 2, 1, "", "calculate_trans_loss_of_life"], [1, 2, 1, "", "plot_loads"], [1, 2, 1, "", "plot_power"], [1, 2, 1, "", "plot_soc"], [1, 2, 1, "", "solar_cost"], [1, 2, 1, "", "transformer_cost"]], "analysis.load_post_opt_costs": [[1, 3, 1, "", "collate_results"], [1, 3, 1, "", "plot_stacked_bar"], [1, 3, 1, "", "plot_tables"], [1, 3, 1, "", "run"], [1, 3, 1, "", "run_results"]], "analysis.plot_results": [[1, 3, 1, "", "run"]], "app": [[2, 3, 1, "", "change_run_date"], [2, 3, 1, "", "create_results_folder"], [2, 3, 1, "", "create_temp_configs"], [2, 3, 1, "", "load_default_input"], [2, 3, 1, "", "make_month_str"], [2, 3, 1, "", "simulate"], [2, 3, 1, "", "validate_options"]], "batt_sys_identification": [[3, 0, 0, "-", "battery_identification"]], "batt_sys_identification.battery_identification": [[3, 1, 1, "", "BatteryParams"]], "batt_sys_identification.battery_identification.BatteryParams": [[3, 2, 1, "", "ga"], [3, 2, 1, "", "get_Ro"], [3, 2, 1, "", "get_corrected_voltages"], [3, 2, 1, "", "get_uncorrected_voltages"], [3, 2, 1, "", "plot_Ro"], [3, 2, 1, "", "plot_correction_scheme_comparison"], [3, 2, 1, "", "run_ocv_correction"], [3, 2, 1, "", "run_pre_checks"], [3, 2, 1, "", "run_sys_identification"], [3, 2, 1, "", "simulate_response"]], "charging_sim": [[4, 0, 0, "-", "battery"], [4, 0, 0, "-", "batteryAgingSim"], [4, 0, 0, "-", "batterypack"], [4, 0, 0, "-", "capacitor"], [4, 0, 0, "-", "chargingStation"], [4, 0, 0, "-", "clock"], [4, 0, 0, "-", "controller"], [4, 0, 0, "-", "electricityPrices"], [4, 0, 0, "-", "node"], [4, 0, 0, "-", "optimization"], [4, 0, 0, "-", "orchestrator"], [4, 0, 0, "-", "simulate"], [4, 0, 0, "-", "solar"], [4, 0, 0, "-", "transformer"], [4, 0, 0, "-", "utils"]], "charging_sim.battery": [[4, 1, 1, "", "Battery"], [4, 3, 1, "", "test"]], "charging_sim.battery.Battery": [[4, 2, 1, "", "battery_setup"], [4, 2, 1, "", "battery_setup_2"], [4, 2, 1, "", "dynamics"], [4, 2, 1, "", "est_calendar_aging"], [4, 2, 1, "", "est_cyc_aging"], [4, 2, 1, "", "get_OCV"], [4, 2, 1, "", "get_Ro"], [4, 2, 1, "", "get_aging_value"], [4, 2, 1, "", "get_power_profile"], [4, 2, 1, "", "get_properties"], [4, 2, 1, "", "get_roundtrip_efficiency"], [4, 2, 1, "", "get_total_aging"], [4, 2, 1, "", "get_true_power"], [4, 2, 1, "", "save_sim_data"], [4, 2, 1, "", "save_states"], [4, 2, 1, "", "state_eqn"], [4, 2, 1, "", "thermal_dynamics"], [4, 2, 1, "", "track_SOC"], [4, 2, 1, "", "update_SOC"], [4, 2, 1, "", "update_capacity"], [4, 2, 1, "", "update_max_current"], [4, 2, 1, "", "update_params"], [4, 2, 1, "", "update_voltage"], [4, 2, 1, "", "visualize"]], "charging_sim.batteryAgingSim": [[4, 1, 1, "", "BatteryAging"]], "charging_sim.batteryAgingSim.BatteryAging": [[4, 2, 1, "", "LFP_cal_aging"], [4, 2, 1, "", "LFP_cyc_aging"], [4, 2, 1, "", "NMC_cal_aging"], [4, 2, 1, "", "NMC_cyc_aging"], [4, 2, 1, "", "get_aging_value"], [4, 2, 1, "", "get_calendar_aging"], [4, 2, 1, "", "get_cyc_aging"], [4, 2, 1, "", "get_total_aging"], [4, 2, 1, "", "run"], [4, 2, 1, "", "update_capacity"], [4, 2, 1, "", "update_resistance"]], "charging_sim.batterypack": [[4, 1, 1, "", "Battery"]], "charging_sim.batterypack.Battery": [[4, 4, 1, "", "R_pack"], [4, 2, 1, "", "battery_setup"], [4, 2, 1, "", "battery_setup_2"], [4, 4, 1, "", "battery_type"], [4, 4, 1, "", "config"], [4, 4, 1, "", "controller"], [4, 2, 1, "", "dynamics"], [4, 2, 1, "", "est_calendar_aging"], [4, 2, 1, "", "est_cyc_aging"], [4, 2, 1, "", "get_OCV"], [4, 2, 1, "", "get_aging_value"], [4, 2, 1, "", "get_power_profile"], [4, 2, 1, "", "get_roundtrip_efficiency"], [4, 2, 1, "", "get_total_aging"], [4, 2, 1, "", "get_true_power"], [4, 2, 1, "", "load_pack_props"], [4, 4, 1, "", "nominal_pack_cap"], [4, 2, 1, "", "save_sim_data"], [4, 2, 1, "", "state_eqn"], [4, 2, 1, "", "thermal_dynamics"], [4, 2, 1, "", "track_SOC"], [4, 2, 1, "", "update_capacity"], [4, 2, 1, "", "update_max_current"], [4, 2, 1, "", "update_voltage"], [4, 2, 1, "", "visualize"]], "charging_sim.capacitor": [[4, 1, 1, "", "Capacitor"]], "charging_sim.chargingStation": [[4, 1, 1, "", "ChargingStation"], [4, 1, 1, "", "ChargingStationCentralized"]], "charging_sim.chargingStation.ChargingStation": [[4, 2, 1, "", "get_current_load"], [4, 2, 1, "", "is_EV_arrived"], [4, 2, 1, "", "is_charging"], [4, 2, 1, "", "load_charging_data"], [4, 2, 1, "", "save_sim_data"], [4, 2, 1, "", "set_current_load"], [4, 2, 1, "", "update_load"], [4, 2, 1, "", "update_load_oneshot"], [4, 2, 1, "", "update_status"], [4, 2, 1, "", "visualize"]], "charging_sim.chargingStation.ChargingStationCentralized": [[4, 2, 1, "", "get_current_load"], [4, 2, 1, "", "is_EV_arrived"], [4, 2, 1, "", "is_charging"], [4, 2, 1, "", "load_charging_data"], [4, 2, 1, "", "save_sim_data"], [4, 2, 1, "", "set_current_load"], [4, 2, 1, "", "update_load"], [4, 2, 1, "", "update_load_oneshot"], [4, 2, 1, "", "update_status"], [4, 2, 1, "", "visualize"]], "charging_sim.clock": [[4, 1, 1, "", "Clock"]], "charging_sim.clock.Clock": [[4, 2, 1, "", "reset"], [4, 2, 1, "", "update"]], "charging_sim.controller": [[4, 1, 1, "", "MPC"], [4, 1, 1, "", "MPCCentralized"], [4, 1, 1, "", "Oneshot"]], "charging_sim.controller.MPC": [[4, 2, 1, "", "compute_control"], [4, 2, 1, "", "get_battery_constraints"], [4, 2, 1, "", "initialize_forecast_data"], [4, 2, 1, "", "load_battery_ocv"], [4, 2, 1, "", "reset_load"]], "charging_sim.controller.MPCCentralized": [[4, 2, 1, "", "compute_control"], [4, 2, 1, "", "get_battery_constraints"], [4, 2, 1, "", "initialize_forecast_data"], [4, 2, 1, "", "load_battery_ocv"], [4, 2, 1, "", "reset_load"]], "charging_sim.controller.Oneshot": [[4, 2, 1, "", "compute_control"], [4, 2, 1, "", "get_battery_constraints"], [4, 2, 1, "", "load_battery_ocv"], [4, 2, 1, "", "reset_load"]], "charging_sim.electricityPrices": [[4, 1, 1, "", "PriceLoader"]], "charging_sim.electricityPrices.PriceLoader": [[4, 2, 1, "", "downscale"], [4, 2, 1, "", "get_prices"], [4, 2, 1, "", "set_month_data"]], "charging_sim.node": [[4, 1, 1, "", "Node"]], "charging_sim.node.Node": [[4, 2, 1, "", "add_child"], [4, 2, 1, "", "get_current_load"], [4, 2, 1, "", "save_sim_data"], [4, 2, 1, "", "set_current_load"], [4, 2, 1, "", "update_load"]], "charging_sim.optimization": [[4, 1, 1, "", "Optimization"]], "charging_sim.optimization.Optimization": [[4, 2, 1, "", "add_demand_charge"], [4, 2, 1, "", "aggregate_constraints"], [4, 2, 1, "", "build_battery_cost"], [4, 2, 1, "", "build_emissions_cost"], [4, 2, 1, "", "build_transformer_cost"], [4, 2, 1, "", "get_battery_constraint"], [4, 2, 1, "", "get_constraints"], [4, 2, 1, "", "run"]], "charging_sim.orchestrator": [[4, 1, 1, "", "ChargingSim"]], "charging_sim.orchestrator.ChargingSim": [[4, 2, 1, "", "create_battery_object"], [4, 2, 1, "", "create_charging_stations"], [4, 2, 1, "", "create_charging_stations_centralized"], [4, 2, 1, "", "create_charging_stations_oneshot"], [4, 2, 1, "", "create_solar_object"], [4, 2, 1, "", "get_action"], [4, 2, 1, "", "get_charger_obj_by_loc"], [4, 2, 1, "", "get_charging_sites"], [4, 2, 1, "", "initialize_aging_sim"], [4, 2, 1, "", "initialize_controllers"], [4, 2, 1, "", "initialize_price_loader"], [4, 2, 1, "", "load_battery_params"], [4, 2, 1, "", "load_config"], [4, 2, 1, "", "load_results_summary"], [4, 2, 1, "", "multistep"], [4, 2, 1, "", "reset_loads"], [4, 2, 1, "", "setup"], [4, 2, 1, "", "step"], [4, 2, 1, "", "step_centralized"], [4, 2, 1, "", "update_scenario"], [4, 2, 1, "", "update_steps"]], "charging_sim.simulate": [[4, 3, 1, "", "change_run_date"], [4, 3, 1, "", "create_results_folder"], [4, 3, 1, "", "create_temp_configs"], [4, 3, 1, "", "load_default_input"], [4, 3, 1, "", "make_month_str"], [4, 3, 1, "", "simulate"], [4, 3, 1, "", "validate_options"]], "charging_sim.solar": [[4, 1, 1, "", "Solar"], [4, 3, 1, "", "main"]], "charging_sim.solar.Solar": [[4, 2, 1, "", "downscale"], [4, 2, 1, "", "get_constraints"], [4, 2, 1, "", "get_power"], [4, 2, 1, "", "get_solar_output"], [4, 2, 1, "", "modify_res"], [4, 2, 1, "", "update_history"]], "charging_sim.transformer": [[4, 1, 1, "", "OilTypeTransformer"]], "charging_sim.transformer.OilTypeTransformer": [[4, 2, 1, "", "plot_states"], [4, 2, 1, "", "thermal_dynamics"]], "charging_sim.utils": [[4, 3, 1, "", "PGE_BEV2_S"], [4, 3, 1, "", "add_power_profile_to_object"], [4, 3, 1, "", "build_cost_PGE_BEV2S"], [4, 3, 1, "", "build_electricity_cost"], [4, 3, 1, "", "build_objective"], [4, 3, 1, "", "load_prices"]], "feeder_population": [[5, 0, 0, "-", "glm_mod_functions"]], "feeder_population.glm_mod_functions": [[5, 3, 1, "", "load_base_glm"], [5, 3, 1, "", "replace_load_w_meter"], [5, 3, 1, "", "replace_load_w_meter_old"], [5, 3, 1, "", "write_base_glm"], [5, 3, 1, "", "write_class_dict"], [5, 3, 1, "", "write_clock_dict"], [5, 3, 1, "", "write_filter_dict"], [5, 3, 1, "", "write_mod_dict"], [5, 3, 1, "", "write_obj_dict"]], "test_cases": [[11, 0, 0, "-", "base_case"], [12, 0, 0, "-", "battery"]], "test_cases.battery": [[13, 0, 0, "-", "feeder_population"], [12, 0, 0, "-", "scenarios"]], "test_cases.battery.feeder_population": [[13, 0, 0, "-", "glm_mod_functions"]], "test_cases.battery.feeder_population.glm_mod_functions": [[13, 3, 1, "", "load_base_glm"], [13, 3, 1, "", "replace_load_w_meter"], [13, 3, 1, "", "replace_load_w_meter_old"], [13, 3, 1, "", "write_base_glm"], [13, 3, 1, "", "write_class_dict"], [13, 3, 1, "", "write_clock_dict"], [13, 3, 1, "", "write_filter_dict"], [13, 3, 1, "", "write_mod_dict"], [13, 3, 1, "", "write_obj_dict"]], "test_cases.battery.scenarios": [[12, 3, 1, "", "load_input_config"], [12, 3, 1, "", "make_month_str"], [12, 3, 1, "", "make_scenarios"], [12, 3, 1, "", "run"], [12, 3, 1, "", "run_scenario_single"], [12, 3, 1, "", "run_scenarios_parallel"], [12, 3, 1, "", "run_scenarios_sequential"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "attribute", "Python attribute"]}, "titleterms": {"post": [1, 8], "simul": [1, 4, 8], "analysi": [1, 8], "cost_analysi": 1, "modul": [1, 2, 3, 4, 5, 9, 10, 11, 12, 13], "load_post_opt_cost": 1, "plot_result": 1, "app": 2, "batteri": [3, 4, 12, 13], "system": 3, "identif": 3, "batt_sys_identif": 8, "battery_identif": 3, "charg": 4, "charging_sim": [4, 8], "batteryagingsim": 4, "batterypack": 4, "batterytest": 4, "capacitor": 4, "chargingst": 4, "control": 4, "electricitypric": 4, "optim": 4, "orchestr": 4, "solar": 4, "util": [0, 4], "content": [1, 3, 4, 5, 10, 11, 12, 13], "feeder": [5, 8], "popul": 5, "feeder_popul": [5, 8, 13], "glm_mod_funct": [5, 13], "welcom": 6, "ev": [6, 8, 14], "ecosim": [6, 8, 14], "1": 6, "0": 6, "document": 6, "what": [6, 14], "link": 6, "indic": 6, "tabl": 6, "packag": [7, 13], "setup": 9, "test": [10, 11, 12], "case": [10, 11, 12], "subpackag": [10, 12], "base": 11, "submodul": [1, 3, 4, 5, 11, 12, 13], "test_cas": [8, 11, 12, 13], "base_cas": 11, "event_handl": [11, 12], "gblvar": [11, 12], "glmptime": [11, 12], "master_sim": [11, 12], "sim": [11, 12], "voltdump2": [11, 12], "event_handlers_oneshot": 12, "parse_voltag": 12, "scenario": 12, "feeder_population_old": [], "motiv": 0, "background": 0, "bridg": 0, "disconnect": 0, "between": 0, "evs": 0, "provid": 0, "platform": [8, 14], "author": 8, "requir": 8, "folder": 8, "descript": 8, "ambient_data": 8, "base_load_data": 8, "dlmodel": 8, "elec_r": 8, "solar_data": 8, "how": [8, 14], "run": [8, 14], "tutori": 14, "quick": 14, "introduct": 14, "quickstart": 14, "experi": 3, "clock": 4, "node": 4, "transform": 4, "feeder_population_centr": 13, "feeder_population_colloc": 13}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 579d6bd4..76847992 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -4,7 +4,7 @@ contain the root `toctree` directive. ===================================== -Welcome to *EV-EcoSim* 1.0.0 documentation! +Welcome to EV-EcoSim 1.0.0 documentation! ===================================== .. image:: ../../doc_images/sim_control_diagram.png @@ -14,7 +14,7 @@ Welcome to *EV-EcoSim* 1.0.0 documentation! -------------------------------- -------------------------------- -What is *EV-EcoSim*? +What is EV-EcoSim? -------------------------------- *EV-EcoSim* is a python-based multi-timescale grid-aware co-simulation platform for modeling, control, optimization, and simulation of electric vehicle (EV) charging stations. The charging infrastructure developed within this platform is