<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Aptos;}
@font-face
        {font-family:"Segoe UI Emoji";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:11.0pt;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:3944353;
        mso-list-template-ids:-1063229496;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:2040084205;
        mso-list-type:hybrid;
        mso-list-template-ids:333199464 -2018594512 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l1:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Aptos",sans-serif;
        mso-fareast-font-family:Aptos;
        mso-bidi-font-family:"Times New Roman";}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Hi Karen,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:11.0pt;mso-fareast-language:EN-US'>“Maslow’s” hierarchy of calibration<o:p></o:p></span></b></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>In answer to my own question, perhaps a good starting point is to target the minimum median, and then apply hourly variation.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Please excuse my ASCII art (it’s meant to be a triangle!).<o:p></o:p></span></p><p class=MsoNormal><b><span style='font-size:11.0pt;mso-fareast-language:EN-US'>            ________^_________<o:p></o:p></span></b></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>         /                                               \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>       /                                                     \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>     /                                                            \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Review NMBE & iterate required     \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>_____________ ___________________    \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Review CVRMSE & iterate if required    \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>_    ____________ _______________________\<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Apply hourly variations to build                         \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>    up energy usage                                                         \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Apply holidays                                                                       \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>_________ _______________________________________\<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Set a “universal” generic profile to apply to all gains.     \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>This is set to a diversity (say 20% in the above example)   \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>And should have enough “headroom” and range to model  \ <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>_________ _____________________________________________   \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Create a model with known parameters                                            \ <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Quantify unknown knowns                                                                         \<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>___________________________________________________________<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Carpet and box plots<o:p></o:p></span></b></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>I use similar carpet or colour-area plots. Yours is similar, but I think you are tracing an average day in your example? I like your “synoptic” view of modelled v. actual.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>I create the carpet plot using a pivot table hack in Excel and ECAM processed data as the source:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'><img width=875 height=317 style='width:9.1145in;height:3.302in' id="Picture_x0020_4" src="cid:image005.png@01DADCF5.703E4BC0"></span><span style='font-size:11.0pt;mso-fareast-language:EN-US'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Another handy tool in ECAM is the Boxplot. I will usually target the median as the most likely observed outcome.<o:p></o:p></span></p><p class=MsoNormal><img width=708 height=395 style='width:7.375in;height:4.1145in' id="Picture_x0020_3" src="cid:image004.png@01DADCF4.D89252D0"><span style='font-size:11.0pt;mso-fareast-language:EN-US'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Regards<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'>Chris<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;mso-fareast-language:EN-US'><o:p> </o:p></span></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Karen Walkerman <kwalkerman@gmail.com> <br><b>Sent:</b> Tuesday, July 23, 2024 10:29 AM<br><b>To:</b> Julien Marrec <julien.marrec@gmail.com><br><b>Cc:</b> Chris Yates <chris.malcolm.yates@gmail.com>; bldg-sim@onebuilding.org<br><b>Subject:</b> Re: [Bldg-sim] "Maslow's" hierarchy of calibration<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Chris - one tool I've found very useful is to create a heat-map that compares modeled data with actual data.  I usually do this with hourly data.  Then I'll create a grid that shows actual and modeled data and break it down by hour of the day and day of the week.  I can further filter it by time of year, or outdoor temperature.  Here's an example of total electrical demand for the whole year broken down by day and hour of day:<o:p></o:p></p><div><p class=MsoNormal><img width=472 height=392 style='width:4.9166in;height:4.0833in' id="Picture_x0020_1" src="cid:image001.png@01DADCF4.011DC4B0"><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>In this example, we can see that the model is missing some night-time base loads, there is better agreement during periods of time with high occupancy and that the occupancy schedule and building opening / closing schedules need to be adjusted.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I've found this approach can really help me identify what parameters to experiment with, and it is also an excellent tool for communicating with clients.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>--<o:p></o:p></p></div><div><p class=MsoNormal>Karen<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Tue, Jul 23, 2024 at 3:41<span style='font-family:"Arial",sans-serif'> </span>AM Julien Marrec via Bldg-sim <<a href="mailto:bldg-sim@lists.onebuilding.org">bldg-sim@lists.onebuilding.org</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal>Hello Chris,<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Apologies if I didn't understand the question correctly, but I understood it as how to automate (part of) the calibration process.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I don't think you should do without first taking a hard look at your initial model, refine it until almost satisfied, before you can start the calibration process itself. One example would be you should probably take a close look at your output:variables to ensure that you are supplying the right amount of outside air to your zones.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I also don't think you should blindly let some tool touch <b>any</b> parameters there are in your simulation file. There are things you can measure or reasonably approximate, and those should be defined in your model. Then there are things that are hard to guess, or hard to guess right, and those should be what you play on.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>These caveats aside, there are a number of tools and algorithms that can help you automate the calibration process itself.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>One example of such is LBNL's <a href="https://simulationresearch.lbl.gov/projects/genopt" target="_blank">GenOpt</a> which is software agnostic (a front-end for it that I have used in the past with both eQuest and EnergyPlus is ExcaliBEM, from Canada's SIMEB, not sure if still out there or not)<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>You basically inform the software of the parameters you want to vary and how (for eg, infiltration from 0.3 to 1.0 ACH, R-value +- 30%, heating system efficiency range, etc), and define an objective function, which can be a python script. I've done one that basically tries to minimize the CV(RMSE) and NMBE %, and penalizes heavily if not meeting the thresholds of Guideline 14. The tool will run simulations and try to minimize the objective function. <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The <a href="https://github.com/NREL/OpenStudio-server" target="_blank">OpenStudio Analysis Framework</a> is a great candidate if you're working with the OpenStudio ecosystem.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><a href="http://www.jeplus.org/wiki/doku.php" target="_blank">JEPlus+EA</a> can do that for EnergyPlus (and is (was?) bundled in Design Builder if I recall correctly)<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>There are a variety of similar questions on <a href="http://unmethours.com" target="_blank">unmethours.com</a><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Best,<o:p></o:p></p></div><div><p class=MsoNormal>Julien<o:p></o:p></p></div><div><div><div><div><div><div><div><div><div><p class=MsoNormal>--<br>Julien Marrec, EBCP, BPI MFBA<br>Owner at <a href="http://www.effibem.com" target="_blank">EffiBEM</a><br>T: +33 6 95 14 42 13<br><span style='color:black'><br>LinkedIn (<a href="https://www.linkedin.com/in/julienmarrec" target="_blank">en</a>) <i>| </i>(<a href="https://fr.linkedin.com/in/julienmarrec/fr" target="_blank">fr</a>) : </span><o:p></o:p></p></div></div></div></div></div></div></div></div><p class=MsoNormal><o:p> </o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Le mar. 23 juil. 2024 à 09:06, Chris Yates via Bldg-sim <<a href="mailto:bldg-sim@lists.onebuilding.org" target="_blank">bldg-sim@lists.onebuilding.org</a>> a écrit :<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Dear bldg-sim’rs,<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I’m interested in how people save time and improve accuracy when it comes to calibrated simulation.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Calibrated simulation attempts to model a vast amount of parameters. In comparison to regression methods it’s completely overspecified. We do it in the hope of creating a model (a “digital twin”) that gives us many more what-if? scenarios than regression could on its own.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>However, the process is often fraught with dead ends. Of course it is! There are too many details. We can waste a lot of time on getting one parameter right, only to find it has little effect. Even worse, we could overlook something major and compensate with our own erroneous assumptions. Or, we can work through a whole model and find something very late on, causing us to backtrack over previous work. The act of calibration seems beyond detailed management because of the sheer number of building types, servicing approaches, operational parameters, embedded issues (this is a longer list but I’ve ran out of words…).<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>The exam question is:<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><ul type=disc><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1'>Does anybody follow a simple high level framework (a bit like Maslow) for calibration? <o:p></o:p></li></ul><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Sorry. I could have asked that at the start of the email <span style='font-family:"Segoe UI Emoji",sans-serif'>😐</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>All the best<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Chris<o:p></o:p></p></div></div><p class=MsoNormal>_______________________________________________<br>Bldg-sim mailing list<br><a href="http://lists.onebuilding.org/listinfo.cgi/bldg-sim-onebuilding.org" target="_blank">http://lists.onebuilding.org/listinfo.cgi/bldg-sim-onebuilding.org</a><br>To unsubscribe from this mailing list send  a blank message to <a href="mailto:BLDG-SIM-UNSUBSCRIBE@ONEBUILDING.ORG" target="_blank">BLDG-SIM-UNSUBSCRIBE@ONEBUILDING.ORG</a><o:p></o:p></p></div></blockquote></div><p class=MsoNormal>_______________________________________________<br>Bldg-sim mailing list<br><a href="http://lists.onebuilding.org/listinfo.cgi/bldg-sim-onebuilding.org" target="_blank">http://lists.onebuilding.org/listinfo.cgi/bldg-sim-onebuilding.org</a><br>To unsubscribe from this mailing list send  a blank message to <a href="mailto:BLDG-SIM-UNSUBSCRIBE@ONEBUILDING.ORG" target="_blank">BLDG-SIM-UNSUBSCRIBE@ONEBUILDING.ORG</a><o:p></o:p></p></blockquote></div></div></body></html>