diff --git a/solution.pickle b/solution.pickle new file mode 100644 index 00000000..489cd002 Binary files /dev/null and b/solution.pickle differ diff --git a/src/wrd/components/pump.py b/src/wrd/components/pump.py index 2c955c52..87e00d36 100644 --- a/src/wrd/components/pump.py +++ b/src/wrd/components/pump.py @@ -169,14 +169,14 @@ def build_pump( blk.unit.efficiency_pump.bounds = (0, 1) blk.unit.efficiency_motor = Param( - initialize=0.938, + initialize=0.938, # Where did this value come from? mutable=True, units=pyunits.dimensionless, - doc="Efficiency of motor and VFD", + doc="Efficiency of motor", ) blk.unit.efficiency_vfd = Param( - initialize=0.95, + initialize=0.95, # More likely 96-97%. Would change significantly if pump speed is below like 63% mutable=True, units=pyunits.dimensionless, doc="Efficiency of VFD", diff --git a/src/wrd/surrogate_models/RO_IS_pump_curves.json b/src/wrd/surrogate_models/RO_IS_pump_curves.json new file mode 100644 index 00000000..c58dc74a --- /dev/null +++ b/src/wrd/surrogate_models/RO_IS_pump_curves.json @@ -0,0 +1 @@ +{"version":[4,2],"axesColl":[{"name":"XY","type":"XYAxes","isLogX":false,"isLogY":false,"noRotation":false,"calibrationPoints":[{"px":89.1590296495957,"py":645.800539083558,"dx":"0","dy":"15","dz":null},{"px":1162.2803234501348,"py":646.6037735849058,"dx":"1600","dy":"15","dz":null},{"px":89.1590296495957,"py":583.9514824797844,"dx":"0","dy":"15","dz":null},{"px":88.35579514824798,"py":24.90026954177898,"dx":"1600","dy":"150","dz":null}]}],"datasetColl":[{"name":"Head 100% Speed","axesName":"XY","colorRGB":[30,32,239,255],"metadataKeys":[],"data":[{"x":357.5,"y":243.03333333333336,"value":[400.9536660938344,97.37369651774026]},{"x":369.5,"y":244.3181818181818,"value":[418.8426662296331,97.0655992417602]},{"x":380.5,"y":244.86363636363637,"value":[435.24227092437457,96.93587067126848]},{"x":391.5,"y":245.63636363636363,"value":[451.6413887528089,96.75126009628754]},{"x":402.5,"y":246.36363636363637,"value":[468.0406039545046,96.57762592220443]},{"x":413.5,"y":247.22727272727272,"value":[484.43952703641605,96.3710625454278]},{"x":424.5,"y":247.86363636363637,"value":[500.83893698463464,96.21938117314039]},{"x":435.5,"y":248.6818181818182,"value":[517.2379574398074,96.02379419726162]},{"x":446.3888888888889,"y":249.38888888888889,"value":[533.4715515430146,95.85501834034238]},{"x":457.5,"y":250.27272727272728,"value":[550.0360957234145,95.6435966464019]},{"x":468.5,"y":251.1818181818182,"value":[566.4349214320645,95.42605686872743]},{"x":479.5,"y":252.0909090909091,"value":[582.8337471407143,95.20851709105295]},{"x":490.5,"y":252.95454545454547,"value":[599.2326702226256,95.00195371427634]},{"x":501.5,"y":253.95454545454547,"value":[615.6313011847527,94.76246113480617]},{"x":512.5,"y":255.04545454545453,"value":[632.0297374003568,94.50101575354034]},{"x":523.5,"y":256.1363636363636,"value":[648.4281736159608,94.2395703722745]},{"x":534.5,"y":257.27272727272725,"value":[664.8265124583035,93.96714859011081]},{"x":545.3888888888889,"y":258.5,"value":[681.0589921786295,93.67275392291626]},{"x":556.5,"y":259.72727272727275,"value":[697.6228006499429,93.37839942219206]},{"x":567.5,"y":261,"value":[714.0208473725012,93.07304843733485]},{"x":578.5,"y":262.3181818181818,"value":[730.4187967217979,92.7567210515798]},{"x":589.5,"y":263.77272727272725,"value":[746.8164539513102,92.40746446313122]},{"x":600.5,"y":265.1818181818182,"value":[763.2142085540842,92.06918427558047]},{"x":611.5,"y":266.8636363636364,"value":[779.6113789172894,91.66504568264267]},{"x":622.5,"y":268.45454545454544,"value":[796.0087440270172,91.28285989150055]},{"x":633.5,"y":270.09090909090907,"value":[812.4060117634839,90.8896976994606]},{"x":646.5,"y":272.27272727272725,"value":[831.7840697797001,90.36518019487967]},{"x":657.5,"y":273.95454545454544,"value":[848.1812401429053,89.96104160194187]},{"x":668.5,"y":275.77272727272725,"value":[864.5781183863259,89.52397380631054]},{"x":679.5,"y":277.8636363636364,"value":[880.9744123901779,89.02104760529215]},{"x":690.5,"y":279.8636363636364,"value":[897.3709011405527,88.54007420606943]},{"x":701.5,"y":282.09090909090907,"value":[913.7669030246203,88.00421880235753]},{"x":712.5,"y":284.40909090909093,"value":[930.1627101621651,87.4464105968499]},{"x":723.5,"y":286.72727272727275,"value":[946.5585172997099,86.8886023913423]},{"x":734.5,"y":289.22727272727275,"value":[962.9539349442088,86.28688858224332]},{"x":745.5,"y":291.6818181818182,"value":[979.3494499619691,85.6961511740422]},{"x":755.75,"y":294.0625,"value":[994.6268886766965,85.12311485546262]},{"x":767.5,"y":297,"value":[1012.1396036381367,84.41588874955934]},{"x":778.5,"y":299.8636363636364,"value":[1028.534242296544,83.72636373327761]},{"x":789.5,"y":302.8636363636364,"value":[1044.9285888351667,83.00390951430236]},{"x":800.5,"y":305.95454545454544,"value":[1061.3227406272667,82.25950249353141]},{"x":811.5,"y":309.1818181818182,"value":[1077.7166002995823,81.48216627006695]},{"x":822.5,"y":312.72727272727275,"value":[1094.1097783590676,80.62799524031756]},{"x":833.5,"y":316.40909090909093,"value":[1110.5026642987687,79.74089500787467]},{"x":844.5,"y":319.6363636363636,"value":[1126.8965239710842,78.9635587844102]},{"x":854,"y":322.6875,"value":[1141.0542918956226,78.22848499075]},{"x":868.5,"y":327.8181818181818,"value":[1162.662501890667,76.99214460159638]},{"x":879.5,"y":331.72727272727275,"value":[1179.0549009640606,76.05016236466427]},{"x":890.5,"y":335.8636363636364,"value":[1195.4468131711471,75.05329812324293]},{"x":901.5,"y":340.09090909090907,"value":[1211.8385306317105,74.03448108002593]},{"x":912.5,"y":344.54545454545456,"value":[1228.2297612259667,72.96078203231967]},{"x":923.5,"y":349.1363636363636,"value":[1244.6206997004383,71.85415378191993]},{"x":934.5,"y":353.77272727272725,"value":[1261.0115408016488,70.73654913062231]},{"x":945.5,"y":358.59090909090907,"value":[1277.4019924098134,69.57503887573334]},{"x":956.5,"y":363.6363636363636,"value":[1293.7919571516707,68.35864661635513]},{"x":967.5,"y":369.0625,"value":[1310.181106392463,67.05032699945751]},{"x":977.5,"y":373.72222222222223,"value":[1325.0809180751928,65.92690094858192]}],"autoDetectionData":{"fgColor":[0,0,255],"bgColor":[255,255,255],"mask":[[261144,44],[262329,56],[263521,62],[264713,68],[265905,73],[267097,74],[268289,86],[269481,86],[270673,97],[271865,103],[273047,119],[274239,128],[275431,133],[275592,57],[276623,229],[277815,234],[279007,239],[280199,310],[281391,349],[282583,352],[283775,354],[284168,7],[284967,357],[285360,12],[286159,37],[286215,304],[286552,16],[287412,302],[287744,24],[288611,299],[288936,37],[289804,302],[290128,65],[291001,301],[291320,75],[292194,306],[292512,83],[293386,311],[293704,91],[294604,393],[295802,393],[296998,390],[298197,390],[299397,60],[299483,306],[300595,34],[300678,308],[301881,304],[303079,301],[304318,263],[305540,236],[306767,205],[307963,207],[309157,207],[310351,211],[311547,209],[312741,210],[313938,53],[314018,130],[315136,47],[315222,120],[316331,44],[316424,122],[317530,37],[317625,113],[318727,32],[318826,106],[319926,25],[320025,106],[321123,20],[321218,113],[322320,15],[322411,116],[323515,12],[323619,124],[324713,6],[324818,128],[326016,125],[327214,129],[328413,127],[329609,137],[330806,133],[332001,137],[333196,138],[334393,141],[335586,141],[336784,142],[337978,148],[339173,145],[340365,145],[341557,145],[341710,26],[342762,133],[342902,26],[343960,160],[345161,153],[346354,153],[347556,145],[348755,146],[349951,146],[351154,135],[352354,127],[353549,124],[354752,120],[355950,117],[357148,111],[358347,104],[359557,86],[360753,82],[361945,87],[363143,92],[364337,91],[365529,91],[366722,90],[367914,23],[367939,66],[369112,17],[369132,67],[370306,15],[370325,67],[371498,15],[371518,67],[372692,13],[372720,60],[373920,53],[375114,52],[376307,53],[377499,55],[378691,57],[379883,59],[381079,57],[382275,54],[383467,55],[384659,57],[385863,47],[387055,49],[388247,51],[389448,44],[390642,43],[391835,43],[393029,42],[394224,42],[395417,42],[396611,42],[397805,42],[398999,43],[400193,43],[401386,45],[402579,46],[403772,48],[404965,51],[406161,50],[407354,52],[408547,53],[409740,54],[410936,52],[412129,53],[413322,57],[414515,57],[415710,55],[416903,56],[418097,56],[419291,55],[420486,54],[421680,54],[422875,53],[424070,51],[425264,52],[426458,52],[427653,52],[428847,51],[430041,50],[431239,46],[432433,44],[433627,45],[434821,46],[436015,45],[437209,46],[438403,45],[439598,46],[440791,46],[441985,45],[443178,47],[444371,46],[445566,44],[446760,43],[447954,40],[449148,37],[450341,36],[451534,35],[452729,32],[453922,31],[455116,29],[456309,28],[457504,25],[458697,24],[459890,23],[461083,22],[462278,19],[463475,14],[464668,13],[465861,12],[467054,11]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":0,"imageWidth":1192,"imageHeight":669}},{"name":"Min Head","axesName":"XY","colorRGB":[8,5,7,255],"metadataKeys":[],"data":[{"x":300.40970350404314,"y":408.8463611859839,"value":[315.47800463513124,57.32271160557292]},{"x":318.08086253369277,"y":409.64959568733155,"value":[341.8236176608182,57.131939926117525]},{"x":350.2102425876011,"y":412.8625336927224,"value":[389.7209780019466,56.36188437982267]},{"x":376.7169811320755,"y":416.87870619946096,"value":[429.23337509611713,55.396846820203166]},{"x":397.60107816711593,"y":419.28840970350404,"value":[460.3659710384952,54.81872442477592]},{"x":424.1078167115903,"y":423.3045822102426,"value":[499.87836813266586,53.85368686515642]},{"x":450.6145552560647,"y":428.12398921832886,"value":[539.389044528448,52.69468357969792]},{"x":477.9245283018868,"y":432.1401617250674,"value":[580.0990477009856,51.72979120400494]},{"x":491.57951482479785,"y":434.54986522911054,"value":[600.4531889380602,51.15036215323896]},{"x":518.0862533692723,"y":439.3692722371968,"value":[639.9638653338424,49.99135886778048]},{"x":537.3638814016173,"y":443.38544474393535,"value":[668.6978077227095,49.02501465282222]},{"x":559.8544474393532,"y":448.20485175202157,"value":[702.2204537266564,47.865285447731125]},{"x":577.5256064690027,"y":452.2210242587601,"value":[728.5591839587892,46.898650864919816]},{"x":600.8194070080863,"y":458.6469002695418,"value":[763.2759946443263,45.35113539207728]},{"x":620.0970350404313,"y":462.66307277628033,"value":[792.0099370331933,44.38479117711903]},{"x":644.1940700808626,"y":469.088948787062,"value":[827.9243537970974,42.83742088820301]},{"x":661.0619946091645,"y":473.9083557951483,"value":[853.0637572524748,41.67667539562622]},{"x":683.5525606469004,"y":480.33423180592996,"value":[886.5829618596449,40.12901473885715]},{"x":706.0431266846361,"y":486.76010781671164,"value":[920.1021664668148,38.58135408208808]},{"x":730.9433962264152,"y":495.5956873315364,"value":[957.2090272139204,36.45223179958168]},{"x":758.2533692722373,"y":505.23450134770894,"value":[997.9069854977389,34.12957934301586]}],"autoDetectionData":null},{"name":"52 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":341.1,"y":404.2,"value":[376.1563511435842,58.452073448775806]},{"x":343.5,"y":389.875,"value":[379.76538883759713,61.91171998961086]},{"x":345.5,"y":376.5,"value":[382.7759996786682,65.14188745203437]},{"x":347.5,"y":362.875,"value":[385.7871460726773,68.43242511939602]},{"x":349.5,"y":348.375,"value":[388.80016690196953,71.93425850404115]},{"x":351.5,"y":333.875,"value":[391.8131877312617,75.43609188868628]},{"x":353.5,"y":319,"value":[394.8270118899609,79.02848058073862]},{"x":355.5,"y":303.625,"value":[397.8419071545361,82.74160968266722]},{"x":357.5,"y":287.125,"value":[400.8592124073325,86.72640470681743]},{"x":359.5,"y":271.5,"value":[403.8746432248456,90.49990401368419]},{"x":361.5,"y":255,"value":[406.891948477642,94.4846990378344]},{"x":363.5,"y":238,"value":[409.9103248363143,98.5902344718609]},{"x":365,"y":226.25,"value":[412.1719648935665,101.42790522762823]}],"autoDetectionData":{"fgColor":[230,60,43],"bgColor":[255,255,255],"mask":[[254253,12],[255445,12],[256637,12],[257829,12],[259021,12],[260213,12],[261405,12],[262597,12],[263789,12],[264981,22],[266173,22],[267365,22],[268557,22],[269749,22],[270941,22],[272133,22],[273325,22],[274517,22],[275709,22],[276901,22],[278093,22],[279285,21],[280476,22],[281668,22],[282860,22],[284052,22],[285244,22],[286436,22],[287628,21],[288820,21],[290012,21],[291204,21],[292396,21],[293588,21],[294780,21],[295972,21],[297164,21],[298356,21],[299547,22],[300739,22],[301931,22],[303123,22],[304315,22],[305507,22],[306699,22],[307891,22],[309083,22],[310275,21],[311466,22],[312658,22],[313850,22],[315042,22],[316234,22],[317426,22],[318618,22],[319809,23],[321001,23],[322193,22],[323385,22],[324577,22],[325769,22],[326961,22],[328153,22],[329344,23],[330536,22],[331728,22],[332919,23],[334110,24],[335302,24],[336494,24],[337685,25],[338877,24],[340069,24],[341261,24],[342453,23],[343642,26],[344834,25],[346026,25],[347218,25],[348410,24],[349602,23],[350794,23],[351986,23],[353178,23],[354370,22],[355561,23],[356753,23],[357945,23],[359137,23],[360328,24],[361520,24],[362712,24],[363904,24],[365096,24],[366287,25],[367479,25],[368670,24],[369862,23],[371054,23],[372246,23],[373438,23],[374629,24],[375821,23],[377013,22],[378205,22],[379396,23],[380588,22],[381780,22],[382972,22],[384164,21],[385356,21],[386547,22],[387739,22],[388931,22],[390123,22],[391315,22],[392507,21],[393699,21],[394891,21],[396082,22],[397274,22],[398466,22],[399658,22],[400850,21],[402042,21],[403234,21],[404426,21],[405618,21],[406810,21],[408002,21],[409194,21],[410386,21],[411578,21],[412770,21],[413962,21],[415154,21],[416346,21],[417538,21],[418730,21],[419922,21],[421114,21],[422305,22],[423497,22],[424689,22],[425881,22],[427073,22],[428265,22],[429457,21],[430649,21],[431841,21],[433033,21],[434225,21],[435417,21],[436609,21],[437801,21],[438993,21],[440185,21],[441376,22],[442568,22],[443760,22],[444952,22],[446144,21],[447336,21],[448528,21],[449720,21],[450912,21],[452104,21],[453295,22],[454487,22],[455679,22],[456871,22],[458063,22],[459254,23],[460446,23],[461638,23],[462830,22],[464022,22],[465214,22],[466406,22],[467596,24],[468788,24],[469980,24],[471172,23],[472364,23],[473556,23],[474748,22],[475939,23],[477130,24],[478322,24],[479514,24],[480706,24],[481898,23],[483090,23],[484281,24],[485473,24],[486665,24],[487857,24],[489049,24],[490241,24],[491432,25],[492624,22],[493816,22],[495008,22],[496200,21],[497392,21],[498584,21],[499787,10],[500980,9],[502173,8],[503366,6],[504559,4],[505752,2]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":2,"imageWidth":1192,"imageHeight":669}},{"name":"62 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":432.7,"y":417.8,"value":[512.7009282207852,55.18449091921997]},{"x":434.5,"y":401.25,"value":[515.4201447082804,59.18132383453451]},{"x":435.5,"y":386.8333333333333,"value":[516.942007640483,62.66285306841702]},{"x":436.5,"y":374.8333333333333,"value":[518.4586935609515,65.5608036545642]},{"x":437.5,"y":362.3333333333333,"value":[519.976450587296,68.57949465058765]},{"x":438.5,"y":350.1666666666667,"value":[521.4934935430564,71.5176920400269]},{"x":439.5,"y":338.8333333333333,"value":[523.0087513223568,74.25465541300571]},{"x":440,"y":329.5,"value":[523.7742349884313,76.50856677192111]},{"x":441.5,"y":315.8333333333333,"value":[526.0399809515416,79.8090757655475]},{"x":442.5,"y":303.8333333333333,"value":[527.5566668720099,82.70702635169468]},{"x":443.5,"y":291.8333333333333,"value":[529.0733527924785,85.60497693784185]},{"x":444.5,"y":279.6666666666667,"value":[530.5903957482388,88.54317432728111]},{"x":445,"y":269.5,"value":[531.3576645907734,90.99831970265697]},{"x":446.5,"y":254,"value":[533.6273379420959,94.74154353249637]},{"x":448.5,"y":233.375,"value":[536.6534798183695,99.72244693812586]},{"x":447.5,"y":246.5,"value":[535.1343839096801,96.55283042975707]}],"autoDetectionData":{"fgColor":[230,60,43],"bgColor":[255,255,255],"mask":[[268639,20],[269831,21],[271023,21],[272215,21],[273407,21],[274599,21],[275791,21],[276983,21],[278175,21],[279367,21],[280559,21],[281751,21],[282943,21],[284135,21],[285327,21],[286519,21],[287711,21],[288901,22],[290093,23],[291285,23],[292477,22],[293669,23],[294861,22],[296053,23],[297245,22],[298436,24],[299628,23],[300820,23],[302012,23],[303204,23],[304396,23],[305588,23],[306780,23],[307972,23],[309164,23],[310356,23],[311548,23],[312739,24],[313931,22],[315123,22],[316315,22],[317507,21],[318699,21],[319890,22],[321082,22],[322274,22],[323467,21],[324658,22],[325850,22],[327042,22],[328234,22],[329426,21],[330618,21],[331810,21],[333002,21],[334194,21],[335386,21],[336578,21],[337770,21],[338962,21],[340154,21],[341346,21],[342538,21],[343730,21],[344922,21],[346113,22],[347305,22],[348497,22],[349689,22],[350881,22],[352073,22],[353264,23],[354456,23],[355648,23],[356840,22],[358032,22],[359224,22],[360415,23],[361607,23],[362799,23],[363991,22],[365183,22],[366375,21],[367567,21],[368759,21],[369951,21],[371142,22],[372334,22],[373526,22],[374718,22],[375910,22],[377102,21],[378294,21],[379486,21],[380678,21],[381870,21],[383062,21],[384254,21],[385446,21],[386638,21],[387830,21],[389022,21],[390214,21],[391406,21],[392598,21],[393790,21],[394982,21],[396174,21],[397366,21],[398558,21],[399750,21],[400941,22],[402133,22],[403325,22],[404517,21],[405709,21],[406901,21],[408093,21],[409285,21],[410477,21],[411669,21],[412861,21],[414053,21],[415245,21],[416437,21],[417629,21],[418821,21],[420013,21],[421205,21],[422397,21],[423589,21],[424781,21],[425973,21],[427165,21],[428357,21],[429549,21],[430741,21],[431933,21],[433125,21],[434317,21],[435509,21],[436701,21],[437893,21],[439084,22],[440276,22],[441467,23],[442659,23],[443851,23],[445043,23],[446235,22],[447427,22],[448619,22],[449811,22],[451003,22],[452195,22],[453387,22],[454579,22],[455771,22],[456963,22],[458155,22],[459347,22],[460539,22],[461731,22],[462923,22],[464114,23],[465306,23],[466498,22],[467690,22],[468882,22],[470073,23],[471265,23],[472456,24],[473648,23],[474840,23],[476031,24],[477222,24],[478414,24],[479606,24],[480798,24],[481990,24],[483181,24],[484373,23],[485565,23],[486757,22],[487949,22],[489141,22],[490330,25],[491522,25],[492714,25],[493906,25],[495098,25],[496290,25],[497482,25],[498674,25],[499866,25],[501058,25],[502250,25],[503442,25],[504634,25],[505826,25],[507018,25],[508210,22],[509402,21],[510594,21],[511786,21],[512978,21],[514170,21]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":3,"imageWidth":1192,"imageHeight":669}},{"name":"71 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":546,"y":239.5,"value":[682.0108482671344,98.26099995600816]},{"x":546,"y":250.5,"value":[681.9872839378615,95.60471093873012]},{"x":546,"y":261.5,"value":[681.9637196085887,92.94842192145208]},{"x":546,"y":272.5,"value":[681.940155279316,90.29213290417404]},{"x":546,"y":283.5,"value":[681.9165909500431,87.635843886896]},{"x":545.8333333333334,"y":297.6666666666667,"value":[681.6377463869815,84.21483548221545]},{"x":547,"y":310,"value":[683.3508017180567,81.23678291257002]},{"x":547,"y":321,"value":[683.3272373887838,78.58049389529198]},{"x":546.8333333333334,"y":333.0555555555556,"value":[683.0529152727544,75.66927833231126]},{"x":548,"y":348.7,"value":[684.758877502695,71.89165593726295]},{"x":549,"y":366.25,"value":[686.2122610658896,67.65384829972228]},{"x":550.5,"y":383.75,"value":[688.4112414293936,63.428205077727554]},{"x":552.1666666666666,"y":402.3333333333333,"value":[690.8563976267401,58.940987759186996]},{"x":553.8333333333334,"y":414.6666666666667,"value":[693.3149426475371,55.96302556409984]},{"x":555.5,"y":426.875,"value":[695.7737554448031,53.01524847148177]},{"x":558.5,"y":441,"value":[700.2164348421359,49.60487413982676]},{"x":560.5,"y":447.5,"value":[703.1844692246344,48.03561030966834]}],"autoDetectionData":{"fgColor":[230,60,43],"bgColor":[255,255,255],"mask":[[275890,21],[277082,21],[278274,21],[279466,21],[280658,21],[281850,21],[283042,21],[284234,21],[285426,21],[286618,21],[287810,21],[289002,21],[290194,21],[291386,21],[292578,21],[293770,21],[294962,21],[296154,21],[297346,21],[298538,21],[299730,21],[300922,21],[302114,21],[303306,21],[304498,21],[305690,21],[306882,21],[308074,21],[309266,21],[310458,21],[311650,21],[312842,21],[314034,21],[315226,21],[316418,21],[317610,21],[318801,22],[319993,22],[321185,22],[322377,22],[323569,22],[324761,21],[325953,21],[327145,21],[328337,20],[329529,20],[330721,20],[331913,20],[333105,20],[334297,20],[335489,20],[336681,20],[337873,20],[339065,20],[340257,20],[341449,20],[342641,20],[343833,20],[345025,20],[346217,20],[347409,20],[348601,20],[349793,20],[350985,20],[352177,20],[353369,20],[354561,20],[355753,20],[356945,20],[358137,20],[359329,20],[360521,20],[361713,20],[362905,20],[364097,20],[365289,20],[366481,20],[367673,20],[368865,20],[370057,20],[371249,20],[372441,20],[373633,20],[374825,20],[376017,21],[377209,21],[378401,21],[379593,21],[380785,21],[381977,21],[383169,21],[384361,21],[385553,21],[386745,21],[387937,22],[389129,22],[390321,22],[391514,21],[392706,21],[393898,22],[395090,22],[396282,22],[397474,22],[398666,22],[399859,21],[401051,21],[402243,21],[403435,21],[404627,21],[405819,21],[407011,21],[408203,21],[409395,21],[410587,21],[411779,21],[412971,22],[414163,22],[415355,22],[416548,21],[417740,21],[418932,21],[420124,21],[421316,21],[422508,21],[423700,21],[424892,21],[426084,21],[427276,21],[428468,21],[429660,21],[430852,21],[432044,21],[433236,21],[434428,21],[435620,21],[436812,21],[438004,21],[439196,21],[440388,21],[441580,21],[442772,21],[443964,21],[445156,21],[446348,21],[447540,21],[448732,21],[449924,21],[451116,21],[452308,21],[453500,21],[454692,21],[455884,21],[457076,21],[458268,21],[459460,21],[460652,21],[461844,22],[463036,21],[464228,21],[465420,22],[466613,21],[467805,21],[468997,21],[470189,21],[471381,21],[472573,21],[473765,21],[474957,21],[476149,22],[477341,22],[478533,22],[479725,23],[480917,24],[482109,25],[483301,25],[484493,25],[485685,27],[486878,26],[488070,26],[489263,25],[490456,25],[491649,24],[492841,24],[494033,24],[495225,24],[496417,24],[497610,23],[498802,23],[499994,24],[501186,24],[502378,24],[503570,24],[504762,24],[505954,24],[507146,24],[508338,24],[509531,23],[510723,23],[511915,23],[513107,23],[514301,21],[515493,21],[516685,21],[517877,21],[519066,24],[520258,24],[521450,24],[522642,24],[523834,24],[525026,24],[526218,23],[527410,23],[528601,24],[529793,24],[530985,24],[532177,24],[533369,24],[534561,24],[535753,24],[536945,23],[538137,22],[539329,22],[540521,21],[541713,20],[542906,18],[544099,17],[545292,16],[546485,15],[547678,14],[548871,13],[550064,12],[551257,11],[552450,10],[553644,8],[554839,5]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":4,"imageWidth":1192,"imageHeight":669}},{"name":"77 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":636.5,"y":249.33333333333334,"value":[816.9234170245469,95.90279635682538]},{"x":638.5,"y":262.375,"value":[819.877437771834,92.75384549745237]},{"x":641,"y":274.5,"value":[823.5789119029491,89.82634243074416]},{"x":643.5,"y":287.3333333333333,"value":[827.2788686340731,86.72779045004457]},{"x":646.5,"y":301,"value":[831.7225298784587,83.4280948274428]},{"x":649.5,"y":312.8333333333333,"value":[836.1701185110564,80.57111404105405]},{"x":653,"y":325.125,"value":[841.3622149863229,77.60354492017034]},{"x":657,"y":337.125,"value":[847.3004259630723,74.70649807960606]},{"x":661.5,"y":348.7,"value":[853.985037069538,71.91217096199493]},{"x":666.5,"y":359.8,"value":[861.4161554163077,69.23263760832452]},{"x":672.5,"y":370.7857142857143,"value":[870.3384979667212,66.58088281174244]},{"x":680,"y":382,"value":[881.4968199378997,63.87420352289179]},{"x":689,"y":392.85,"value":[894.8923913553816,61.25576337062586]},{"x":699.5,"y":401.95454545454544,"value":[910.5281709752688,59.05908813651199]},{"x":710.5,"y":409.1363636363636,"value":[926.9135591738376,57.32680503493516]},{"x":721.5,"y":413.6818181818182,"value":[943.3045950215709,56.23115318543324]},{"x":732.5,"y":416.95454545454544,"value":[959.698357320625,55.44284056107092]},{"x":743.5,"y":420,"value":[976.0926064859863,54.70940994119783]},{"x":754.5,"y":421.5,"value":[992.4901663422371,54.34917695185139]},{"x":765.5,"y":422,"value":[1008.8898684102402,54.23042478225753]},{"x":776.5,"y":422,"value":[1025.2906415841194,54.232413022539916]},{"x":787.5,"y":421.1363636363636,"value":[1041.6932648499662,54.44295287988133]},{"x":798.5,"y":419.95454545454544,"value":[1058.0965697286433,54.73032754350764]},{"x":809.5,"y":418.45454545454544,"value":[1074.5005562201504,55.09453701341887]},{"x":820.5,"y":416.3636363636364,"value":[1090.9058085640565,55.60143969500203]},{"x":831.5,"y":414.1363636363636,"value":[1107.3113530277471,56.14127157927875]},{"x":842.5,"y":411.6363636363636,"value":[1123.717481731006,56.746961868942506]},{"x":853.5,"y":408.72727272727275,"value":[1140.1244867936186,57.451439766686875]},{"x":864.5,"y":405.6363636363636,"value":[1156.5318813492768,58.1998232680226]},{"x":875.5,"y":402.40909090909093,"value":[1172.9395680247194,58.981135972051845]},{"x":886.5,"y":398.95454545454544,"value":[1189.3477415664693,59.81733068057032]},{"x":897.5,"y":395.40909090909093,"value":[1205.7561098547421,60.67547819088449]},{"x":908.5,"y":391.54545454545456,"value":[1222.165159755845,61.61046050748354]},{"x":919.5,"y":387.6363636363636,"value":[1238.5743070302096,62.55641922498046]},{"x":930.5,"y":383.6363636363636,"value":[1254.9836490510968,63.524330744273044]},{"x":941.5,"y":379.40909090909093,"value":[1271.3934779382914,64.54712426805484]},{"x":952.5,"y":375.09090909090907,"value":[1287.803501572009,65.59187059363235]},{"x":963.5,"y":370.77272727272725,"value":[1304.2135252057265,66.63661691920984]},{"x":974.5,"y":366.27272727272725,"value":[1320.62393833249,67.7252688483787]},{"x":985.5,"y":361.72727272727275,"value":[1337.034448832515,68.82489717844541]},{"x":996.5,"y":357.09090909090907,"value":[1353.4451540790626,69.94647831030781]},{"x":1002.5,"y":355,"value":[1362.3955095257509,70.45247724630808]}],"autoDetectionData":{"fgColor":[230,60,43],"bgColor":[255,255,255],"mask":[[281953,3],[283144,5],[284335,7],[285526,9],[286717,10],[287908,11],[289089,22],[290281,22],[291473,22],[292665,22],[293857,22],[295049,22],[296241,22],[297434,21],[298626,24],[299818,24],[301010,24],[302205,21],[303397,21],[304589,21],[305781,21],[306973,21],[308165,21],[309357,21],[310549,21],[311741,21],[312933,21],[314125,21],[315317,21],[316509,21],[317701,21],[318893,21],[320085,21],[321277,21],[322469,21],[323661,21],[324853,21],[326045,21],[327237,21],[328429,21],[329621,21],[330813,21],[332005,21],[333197,21],[334389,21],[335581,21],[336773,21],[337965,21],[339157,21],[340349,21],[341541,21],[342733,21],[343925,21],[345117,21],[346309,21],[347501,21],[348693,21],[349885,21],[351077,21],[352269,21],[353461,21],[354653,21],[355845,21],[357037,21],[358229,21],[359421,21],[360613,21],[361805,21],[362997,21],[364189,21],[365381,21],[366573,22],[367765,22],[368957,22],[370150,21],[371342,22],[372534,22],[373726,22],[374919,21],[376111,21],[377303,21],[378495,22],[379687,22],[380879,23],[382072,22],[383264,22],[384456,23],[385649,22],[386841,22],[388033,23],[389226,22],[390418,22],[391610,22],[392802,25],[393994,26],[395186,26],[396378,27],[397570,28],[398763,29],[399955,30],[401147,32],[402341,31],[403533,33],[404725,35],[405918,35],[407111,36],[408303,46],[409495,46],[410688,45],[411037,2],[411882,43],[412220,11],[412244,1],[413076,41],[413412,11],[413436,1],[414269,40],[414601,14],[414628,1],[415461,41],[415792,15],[415820,1],[416655,41],[416981,18],[417012,1],[417850,38],[418173,32],[419043,38],[419365,32],[420236,38],[420557,32],[421430,37],[421749,32],[422623,37],[422934,39],[423815,38],[424126,39],[425007,39],[425318,39],[426199,40],[426510,39],[427391,41],[427701,40],[428583,42],[428892,41],[429775,43],[430082,43],[430967,44],[431272,45],[432159,45],[432462,47],[433351,46],[433652,49],[434544,46],[434841,49],[435736,47],[436031,51],[436928,48],[437219,54],[438120,49],[438409,53],[439312,36],[439598,56],[440505,35],[440784,60],[441700,33],[441975,59],[442895,30],[443166,53],[444087,30],[444357,52],[445279,30],[445550,50],[446471,31],[446742,49],[447663,32],[447932,50],[448856,33],[449123,50],[450049,33],[450313,48],[451242,32],[451503,48],[452435,39],[452684,56],[453628,38],[453876,54],[454821,37],[455068,52],[456013,37],[456260,49],[457205,37],[457451,48],[458397,37],[458641,48],[459590,37],[459806,72],[460783,37],[460988,78],[461975,38],[462179,78],[463168,38],[463371,79],[464361,38],[464561,81],[465553,39],[465753,79],[466746,39],[466945,77],[467939,39],[468137,76],[469132,39],[469329,75],[470325,39],[470521,70],[471517,39],[471713,69],[472710,39],[472905,68],[473903,40],[474097,65],[475095,46],[475287,66],[476288,47],[476479,66],[477481,46],[477671,66],[478673,46],[478861,63],[479866,45],[480049,67],[481059,44],[481235,68],[482251,44],[482423,72],[483444,43],[483609,78],[484637,42],[484795,84],[485829,13],[485843,35],[485986,85],[487022,12],[487035,36],[487165,97],[488215,11],[488228,38],[488357,90],[489407,11],[489421,39],[489549,89],[490600,10],[490614,43],[490739,88],[491793,9],[491806,44],[491929,88],[492985,9],[492998,51],[493113,92],[494178,8],[494190,56],[494303,88],[495371,7],[495382,61],[495483,96],[496563,7],[496574,67],[496674,94],[497756,6],[497766,192],[498949,5],[498960,188],[500141,5],[500152,188],[501334,4],[501347,174],[502526,4],[502540,171],[503719,3],[503732,167],[504912,2],[504924,162],[506104,2],[506116,160],[507308,150],[508500,144],[509703,131],[510901,122],[512094,118],[513293,107],[514488,98],[515682,94],[516876,87],[518079,73],[519274,70],[520472,64],[521668,47]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":5,"imageWidth":1192,"imageHeight":669}},{"name":"81 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":737.5,"y":267.35714285714283,"value":[967.4737235317665,91.56864771872675]},{"x":745,"y":278.4375,"value":[978.6323324063047,88.89430961109295]},{"x":754,"y":289.3,"value":[992.0278770461397,86.27285094858011]},{"x":764.5,"y":299.5,"value":[1007.6613099704256,83.81164445282822]},{"x":785.5,"y":312.92857142857144,"value":[1038.9431100952127,80.57269774759934]},{"x":798.1,"y":317.25,"value":[1057.7201928611298,79.5314330725376]},{"x":809.5,"y":320.3636363636364,"value":[1074.7106877183767,78.78161015096437]},{"x":820.3888888888889,"y":323.55555555555554,"value":[1090.9389587499572,78.01279104496305]},{"x":831.8333333333334,"y":325.22222222222223,"value":[1107.9988190728911,77.61239158526523]},{"x":842.5,"y":326,"value":[1123.900932955593,77.426501160479]},{"x":853.5,"y":325.40909090909093,"value":[1140.302971981871,77.57118261243336]},{"x":864.5,"y":324.54545454545456,"value":[1156.7055952477176,77.78172246977476]},{"x":875.5,"y":323.3181818181818,"value":[1173.1089974996562,78.08007353429893]},{"x":886.5,"y":321.40909090909093,"value":[1189.5138603505166,78.54307061229072]},{"x":897.5,"y":319.22727272727275,"value":[1205.9193074409454,79.0719260956696]},{"x":908.5,"y":316.77272727272725,"value":[1222.3253387709433,79.66663998443552]},{"x":915,"y":315.5,"value":[1232.019431188647,79.97515407883292]},{"x":773.5148247978437,"y":306.0323450134771,"value":[1021.0882341870507,82.23583784568565]}],"autoDetectionData":{"fgColor":[230,60,43],"bgColor":[255,255,255],"mask":[[301116,13],[302308,15],[303500,17],[304692,17],[305884,17],[307076,17],[308268,17],[309460,17],[310652,21],[311844,22],[313028,30],[314220,30],[315412,31],[316604,31],[317796,31],[318988,31],[320180,31],[321372,31],[322564,31],[323756,31],[324948,31],[326140,34],[327334,32],[328529,29],[329721,29],[330913,33],[332108,30],[333300,30],[334492,34],[335684,34],[336877,33],[338069,33],[339261,33],[340455,31],[341647,31],[342839,39],[344031,39],[345223,39],[346415,39],[347607,39],[348804,49],[349996,49],[351189,51],[352381,51],[353573,55],[354765,56],[355957,56],[357152,53],[358344,58],[359543,51],[360736,50],[361929,55],[363121,55],[364313,61],[365506,61],[366702,57],[367895,56],[369088,66],[370280,67],[370411,25],[371479,60],[371603,25],[372671,62],[372795,25],[373864,63],[373987,25],[375059,63],[375179,30],[376251,67],[376371,30],[377447,70],[377563,30],[378639,82],[378755,30],[379832,100],[379947,30],[381028,141],[382220,141],[383414,139],[384611,134],[385803,134],[387002,127],[388194,127],[389386,127],[390587,118],[391781,116],[392974,115],[394166,115],[395366,107],[396563,102],[397761,96],[398954,95],[400147,89],[401347,76],[402546,65],[403748,52],[404956,32]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":6,"imageWidth":1192,"imageHeight":669}},{"name":"82 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":787.5,"y":276.27272727272725,"value":[1042.0035934342327,89.42474254130744]},{"x":798.5,"y":283.04545454545456,"value":[1058.3898579921545,87.7912470478112]},{"x":809.5,"y":287.90909090909093,"value":[1074.7802122270575,86.61876039202437]},{"x":820.5,"y":291.27272727272725,"value":[1091.1737797795888,85.80849496586639]},{"x":831.5,"y":294.45454545454544,"value":[1107.5677368251659,85.04213514329976]},{"x":842.5,"y":296.8181818181818,"value":[1123.9634465894487,84.4733505368943]},{"x":853.5,"y":297.95454545454544,"value":[1140.3617854317915,84.20092875473063]},{"x":864.5,"y":298.1818181818182,"value":[1156.7620717393634,84.1480349905238]}],"autoDetectionData":{"fgColor":[230,60,43],"bgColor":[255,255,255],"mask":[[315462,20],[316654,22],[317846,24],[319038,24],[320230,24],[321422,25],[322614,36],[323806,36],[324998,37],[326190,37],[327381,38],[328573,42],[329765,48],[330957,51],[332149,59],[333341,62],[334533,68],[335725,69],[336917,76],[338109,76],[339301,76],[340493,76],[341687,74],[342891,52],[344085,50],[345277,50],[346469,50],[347661,50],[347712,5],[348861,42],[348904,5],[348939,4],[350057,38],[350096,18],[350131,4],[351250,62],[351319,8],[352443,76],[353640,71],[354841,62],[356037,58],[357231,56],[358429,50],[359623,48],[360815,48],[362007,48],[363206,31],[364399,30],[365591,30],[366786,27],[367979,26],[369171,26],[370363,26],[371560,21],[372764,9]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":7,"imageWidth":1192,"imageHeight":669}},{"name":"MCSF","axesName":"XY","colorRGB":[30,32,239,255],"metadataKeys":[],"data":[{"x":298,"y":403.0833333333333,"value":[311.89753202602355,58.71393674390818]},{"x":303,"y":391.375,"value":[319.3775106525052,61.54217842076051]},{"x":307,"y":380.375,"value":[325.36499249955216,64.19919043450487]},{"x":311,"y":369.125,"value":[331.35300989953726,66.91657265318737]},{"x":315,"y":357.875,"value":[337.34102729952224,69.63395487186988]},{"x":319,"y":346.25,"value":[343.3298480289144,72.44189239795959]},{"x":323,"y":334.625,"value":[349.31866875830644,75.2498299240493]},{"x":327,"y":321.75,"value":[355.3101672523886,78.35961847482969]},{"x":331,"y":309.375,"value":[361.3005946405947,81.3486666157338]},{"x":335,"y":296.5,"value":[367.29209313467686,84.4584551665142]},{"x":339,"y":283.375,"value":[373.28412718169704,87.62861392223274]},{"x":343,"y":269.75,"value":[379.27723233459324,90.91951308782755]},{"x":347,"y":257.75,"value":[385.26685639339223,93.81800592132447]},{"x":351.0833333333333,"y":244.23333333333335,"value":[391.383977754969,97.0827597272058]},{"x":355.5,"y":227.75,"value":[398.0044474712248,101.06396688139189]}],"autoDetectionData":{"fgColor":[0,0,255],"bgColor":[255,255,255],"mask":[[257828,5],[259020,5],[260211,6],[261401,8],[262593,11],[263784,12],[264976,12],[266167,13],[267358,14],[268550,11],[269741,12],[270933,12],[272125,12],[273317,12],[274509,12],[275701,11],[276893,11],[278085,9],[279277,8],[280468,9],[281659,10],[282851,10],[284043,10],[285235,9],[286427,9],[287619,9],[288810,10],[290002,10],[291193,10],[292385,10],[293577,10],[294769,10],[295961,10],[297152,11],[298344,10],[299535,11],[300727,10],[301918,11],[303110,9],[304301,10],[305493,10],[306685,9],[307877,9],[309069,8],[310260,9],[311451,10],[312643,10],[313835,9],[315027,9],[316219,9],[317409,11],[318601,11],[319793,11],[320985,9],[322177,9],[323368,10],[324560,10],[325752,10],[326943,10],[328135,10],[329327,10],[330518,11],[331710,10],[332902,10],[334094,10],[335285,11],[336477,10],[337669,10],[338860,11],[340052,9],[341243,10],[342435,10],[343626,11],[344817,12],[346009,12],[347201,11],[348393,11],[349584,12],[350776,11],[351968,10],[353159,11],[354350,16],[355542,16],[356733,17],[357925,17],[359117,17],[360309,17],[361501,17],[362693,16],[363885,16],[365077,16],[366269,16],[367461,16],[368653,15],[369845,13],[371037,13],[372229,13],[373421,13],[374611,14],[375803,14],[376995,14],[378187,14],[379378,14],[380570,14],[381761,14],[382952,15],[384144,15],[385335,16],[386527,15],[387719,14],[388910,14],[390102,13],[391294,12],[392485,12],[393677,11],[394869,11],[396060,11],[397252,11],[398444,11],[399636,11],[400828,11],[402020,11],[403211,12],[404403,12],[405595,12],[406786,13],[407978,13],[409170,13],[410362,13],[411554,13],[412745,14],[413937,13],[415129,13],[416321,12],[417513,11],[418704,12],[419896,11],[421088,11],[422279,11],[423471,11],[424663,10],[425855,10],[427047,9],[428239,9],[429431,9],[430622,9],[431814,9],[433005,9],[434197,9],[435389,9],[436579,13],[437771,13],[438963,12],[440155,11],[441346,11],[442538,10],[443729,10],[444921,10],[446112,11],[447304,10],[448496,10],[449688,10],[450879,11],[452071,10],[453263,10],[454454,10],[455646,10],[456837,10],[458029,9],[459221,8],[460412,9],[461604,8],[462796,8],[463988,8],[465179,9],[466371,8],[467563,8],[468755,8],[469946,9],[471138,9],[472329,9],[473521,9],[474712,9],[475904,9],[477096,9],[478287,10],[479477,11],[480669,11],[481860,11],[483052,11],[484244,10],[485436,10],[486628,10],[487823,7],[489015,6],[490207,5],[491399,5]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":8,"imageWidth":1192,"imageHeight":669}}],"measurementColl":[]} \ No newline at end of file diff --git a/src/wrd/surrogate_models/RO_IS_pump_eff_curve_data.csv b/src/wrd/surrogate_models/RO_IS_pump_eff_curve_data.csv new file mode 100644 index 00000000..b3c53eaa --- /dev/null +++ b/src/wrd/surrogate_models/RO_IS_pump_eff_curve_data.csv @@ -0,0 +1,115 @@ +efficiency,Flow (gpm),Head (ft) +52,376.1563511435842,58.452073448775806 +52,379.76538883759713,61.91171998961086 +52,382.7759996786682,65.14188745203437 +52,385.7871460726773,68.43242511939602 +52,388.80016690196953,71.93425850404115 +52,391.8131877312617,75.43609188868628 +52,394.8270118899609,79.02848058073862 +52,397.8419071545361,82.74160968266722 +52,400.8592124073325,86.72640470681743 +52,403.8746432248456,90.49990401368419 +52,406.891948477642,94.4846990378344 +52,409.9103248363143,98.5902344718609 +52,412.1719648935665,101.42790522762823 +62,512.7009282207852,55.18449091921997 +62,515.4201447082804,59.18132383453451 +62,516.942007640483,62.66285306841702 +62,518.4586935609515,65.5608036545642 +62,519.976450587296,68.57949465058765 +62,521.4934935430564,71.5176920400269 +62,523.0087513223568,74.25465541300571 +62,523.7742349884313,76.50856677192111 +62,526.0399809515416,79.8090757655475 +62,527.5566668720099,82.70702635169468 +62,529.0733527924785,85.60497693784185 +62,530.5903957482388,88.54317432728111 +62,531.3576645907734,90.99831970265697 +62,533.6273379420959,94.74154353249637 +62,536.6534798183695,99.72244693812586 +62,535.1343839096801,96.55283042975707 +71,682.0108482671344,98.26099995600816 +71,681.9872839378615,95.60471093873012 +71,681.9637196085887,92.94842192145208 +71,681.940155279316,90.29213290417404 +71,681.9165909500431,87.635843886896 +71,681.6377463869815,84.21483548221545 +71,683.3508017180567,81.23678291257002 +71,683.3272373887838,78.58049389529198 +71,683.0529152727544,75.66927833231126 +71,684.758877502695,71.89165593726295 +71,686.2122610658896,67.65384829972228 +71,688.4112414293936,63.428205077727554 +71,690.8563976267401,58.940987759186996 +71,693.3149426475371,55.96302556409984 +71,695.7737554448031,53.01524847148177 +71,700.2164348421359,49.60487413982676 +71,703.1844692246344,48.03561030966834 +77,816.9234170245469,95.90279635682538 +77,819.877437771834,92.75384549745237 +77,823.5789119029491,89.82634243074416 +77,827.2788686340731,86.72779045004457 +77,831.7225298784587,83.4280948274428 +77,836.1701185110564,80.57111404105405 +77,841.3622149863229,77.60354492017034 +77,847.3004259630723,74.70649807960606 +77,853.985037069538,71.91217096199493 +77,861.4161554163077,69.23263760832452 +77,870.3384979667212,66.58088281174244 +77,881.4968199378997,63.87420352289179 +77,894.8923913553816,61.25576337062586 +77,910.5281709752688,59.05908813651199 +77,926.9135591738376,57.32680503493516 +77,943.3045950215709,56.23115318543324 +77,959.698357320625,55.44284056107092 +77,976.0926064859863,54.70940994119783 +77,992.4901663422371,54.34917695185139 +77,1008.8898684102402,54.23042478225753 +77,1025.2906415841194,54.232413022539916 +77,1041.6932648499662,54.44295287988133 +77,1058.0965697286433,54.73032754350764 +77,1074.5005562201504,55.09453701341887 +77,1090.9058085640565,55.60143969500203 +77,1107.3113530277471,56.14127157927875 +77,1123.717481731006,56.746961868942506 +77,1140.1244867936186,57.451439766686875 +77,1156.5318813492768,58.1998232680226 +77,1172.9395680247194,58.981135972051845 +77,1189.3477415664693,59.81733068057032 +77,1205.7561098547421,60.67547819088449 +77,1222.165159755845,61.61046050748354 +77,1238.5743070302096,62.55641922498046 +77,1254.9836490510968,63.524330744273044 +77,1271.3934779382914,64.54712426805484 +77,1287.803501572009,65.59187059363235 +77,1304.2135252057265,66.63661691920984 +77,1320.62393833249,67.7252688483787 +77,1337.034448832515,68.82489717844541 +77,1353.4451540790626,69.94647831030781 +77,1362.3955095257509,70.45247724630808 +81,967.4737235317665,91.56864771872675 +81,978.6323324063047,88.89430961109295 +81,992.0278770461397,86.27285094858011 +81,1007.6613099704256,83.81164445282822 +81,1038.9431100952127,80.57269774759934 +81,1057.7201928611298,79.5314330725376 +81,1074.7106877183767,78.78161015096437 +81,1090.9389587499572,78.01279104496305 +81,1107.9988190728911,77.61239158526523 +81,1123.900932955593,77.426501160479 +81,1140.302971981871,77.57118261243336 +81,1156.7055952477176,77.78172246977476 +81,1173.1089974996562,78.08007353429893 +81,1189.5138603505166,78.54307061229072 +81,1205.9193074409454,79.0719260956696 +81,1222.3253387709433,79.66663998443552 +81,1232.019431188647,79.97515407883292 +81,1021.0882341870507,82.23583784568565 +82,1042.0035934342327,89.42474254130744 +82,1058.3898579921545,87.7912470478112 +82,1074.7802122270575,86.61876039202437 +82,1091.1737797795888,85.80849496586639 +82,1107.5677368251659,85.04213514329976 +82,1123.9634465894487,84.4733505368943 +82,1140.3617854317915,84.20092875473063 +82,1156.7620717393634,84.1480349905238 diff --git a/src/wrd/surrogate_models/RO_IS_pump_head_curves_data.csv b/src/wrd/surrogate_models/RO_IS_pump_head_curves_data.csv new file mode 100644 index 00000000..17d81860 --- /dev/null +++ b/src/wrd/surrogate_models/RO_IS_pump_head_curves_data.csv @@ -0,0 +1,94 @@ +Flow (gpm),Head 100% Speed (ft),Min Head (ft),MCSF (ft) +400.9536660938344,97.37369651774026,, +418.8426662296331,97.0655992417602,, +435.24227092437457,96.93587067126848,, +451.6413887528089,96.75126009628754,, +468.0406039545046,96.57762592220443,, +484.43952703641605,96.3710625454278,, +500.83893698463464,96.21938117314039,, +517.2379574398074,96.02379419726162,, +533.4715515430146,95.85501834034238,, +550.0360957234145,95.6435966464019,, +566.4349214320645,95.42605686872743,, +582.8337471407143,95.20851709105295,, +599.2326702226256,95.00195371427634,, +615.6313011847527,94.76246113480617,, +632.0297374003568,94.50101575354034,, +648.4281736159608,94.2395703722745,, +664.8265124583035,93.96714859011081,, +681.0589921786295,93.67275392291626,, +697.6228006499429,93.37839942219206,, +714.0208473725012,93.07304843733485,, +730.4187967217979,92.7567210515798,, +746.8164539513102,92.40746446313122,, +763.2142085540842,92.06918427558047,, +779.6113789172894,91.66504568264267,, +796.0087440270172,91.28285989150055,, +812.4060117634839,90.8896976994606,, +831.7840697797001,90.36518019487967,, +848.1812401429053,89.96104160194187,, +864.5781183863259,89.52397380631054,, +880.9744123901779,89.02104760529215,, +897.3709011405527,88.54007420606943,, +913.7669030246203,88.00421880235753,, +930.1627101621651,87.4464105968499,, +946.5585172997099,86.8886023913423,, +962.9539349442088,86.28688858224332,, +979.3494499619691,85.6961511740422,, +994.6268886766965,85.12311485546262,, +1012.1396036381367,84.41588874955934,, +1028.534242296544,83.72636373327761,, +1044.9285888351667,83.00390951430236,, +1061.3227406272667,82.25950249353141,, +1077.7166002995823,81.48216627006695,, +1094.1097783590676,80.62799524031756,, +1110.5026642987687,79.74089500787467,, +1126.8965239710842,78.9635587844102,, +1141.0542918956226,78.22848499075,, +1162.662501890667,76.99214460159638,, +1179.0549009640606,76.05016236466427,, +1195.4468131711471,75.05329812324293,, +1211.8385306317105,74.03448108002593,, +1228.2297612259667,72.96078203231967,, +1244.6206997004383,71.85415378191993,, +1261.0115408016488,70.73654913062231,, +1277.4019924098134,69.57503887573334,, +1293.7919571516707,68.35864661635513,, +1310.181106392463,67.05032699945751,, +1325.0809180751928,65.92690094858192,, +315.47800463513124,,57.32271160557292, +341.8236176608182,,57.131939926117525, +389.7209780019466,,56.36188437982267, +429.23337509611713,,55.396846820203166, +460.3659710384952,,54.81872442477592, +499.87836813266586,,53.85368686515642, +539.389044528448,,52.69468357969792, +580.0990477009856,,51.72979120400494, +600.4531889380602,,51.15036215323896, +639.9638653338424,,49.99135886778048, +668.6978077227095,,49.02501465282222, +702.2204537266564,,47.865285447731125, +728.5591839587892,,46.898650864919816, +763.2759946443263,,45.35113539207728, +792.0099370331933,,44.38479117711903, +827.9243537970974,,42.83742088820301, +853.0637572524748,,41.67667539562622, +886.5829618596449,,40.12901473885715, +920.1021664668148,,38.58135408208808, +957.2090272139204,,36.45223179958168, +997.9069854977389,,34.12957934301586, +311.89753202602355,,,58.71393674390818 +319.3775106525052,,,61.54217842076051 +325.36499249955216,,,64.19919043450487 +331.35300989953726,,,66.91657265318737 +337.34102729952224,,,69.63395487186988 +343.3298480289144,,,72.44189239795959 +349.31866875830644,,,75.2498299240493 +355.3101672523886,,,78.35961847482969 +361.3005946405947,,,81.3486666157338 +367.29209313467686,,,84.4584551665142 +373.28412718169704,,,87.62861392223274 +379.27723233459324,,,90.91951308782755 +385.26685639339223,,,93.81800592132447 +391.383977754969,,,97.0827597272058 +398.0044474712248,,,101.06396688139189 diff --git a/src/wrd/surrogate_models/RO_feed_aff_laws_surr_1.csv b/src/wrd/surrogate_models/RO_feed_aff_laws_surr_1.csv new file mode 100644 index 00000000..fc8d2098 --- /dev/null +++ b/src/wrd/surrogate_models/RO_feed_aff_laws_surr_1.csv @@ -0,0 +1,66 @@ +Flow (gpm),Head (ft),efficiency,speed +1000,140,58.61067573,67.69829629 +1000,159.4444444,56.63978405,71.99854412 +1000,178.8888889,55.01580958,76.0334504 +1000,198.3333333,53.65533083,79.84524018 +1000,217.7777778,52.49928813,83.4662564 +1000,237.2222222,51.5048845,86.92186286 +1000,256.6666667,50.64042492,90.23235315 +1000,276.1111111,49.88196821,93.41424591 +1000,295.5555556,49.21110695,96.48118837 +1305.555556,140,68.00500682,68.74769369 +1305.555556,159.4444444,65.55765452,73.06873409 +1305.555556,178.8888889,63.46075248,77.1347949 +1305.555556,198.3333333,61.65219521,80.98290465 +1305.555556,217.7777778,60.08029721,84.64250922 +1305.555556,237.2222222,58.70348942,88.1373237 +1305.555556,256.6666667,57.4886522,91.48669639 +1305.555556,276.1111111,56.40937644,94.70660865 +1305.555556,295.5555556,55.44449155,97.8104126 +1611.111111,140,75.92264137,69.89586349 +1611.111111,159.4444444,73.54983351,74.1539811 +1611.111111,178.8888889,71.367001,78.18797764 +1611.111111,198.3333333,69.38727427,82.02397976 +1611.111111,217.7777778,67.60107454,85.68456993 +1611.111111,237.2222222,65.99075838,89.18903828 +1611.111111,256.6666667,64.53690624,92.55381834 +1611.111111,276.1111111,63.22092877,95.79293535 +1611.111111,295.5555556,62.02603099,98.91840768 +1916.666667,140,81.06838939,71.41463369 +1916.666667,159.4444444,79.42272379,75.51081029 +1916.666667,178.8888889,77.66216435,79.43140806 +1916.666667,198.3333333,75.90533962,83.18873945 +1916.666667,217.7777778,74.2114792,86.7957234 +1916.666667,237.2222222,72.60791091,90.26485301 +1916.666667,256.6666667,71.10483175,93.60773453 +1916.666667,276.1111111,69.70334104,96.83492565 +2222.222222,140,82.88475643,73.47673123 +2222.222222,159.4444444,82.46615853,77.32738103 +2222.222222,178.8888889,81.58806964,81.05713316 +2222.222222,198.3333333,80.45511804,84.66650567 +2222.222222,217.7777778,79.19395256,88.1590041 +2222.222222,237.2222222,77.88257808,91.53977687 +2222.222222,256.6666667,76.56858143,94.81475608 +2222.222222,276.1111111,75.28045803,97.99012759 +2527.777778,140,81.63935037,76.13683722 +2527.777778,159.4444444,82.62878871,79.69471277 +2527.777778,178.8888889,82.88990112,83.18006774 +2527.777778,198.3333333,82.66115167,86.58664556 +2527.777778,217.7777778,82.10819708,89.91146936 +2527.777778,237.2222222,81.34575253,93.15389592 +2527.777778,256.6666667,80.45309585,96.31487975 +2527.777778,276.1111111,79.48490454,99.39642456 +2833.333333,140,78.11462641,79.36026077 +2833.333333,159.4444444,80.3969664,82.6152386 +2833.333333,178.8888889,81.81026046,85.83347288 +2833.333333,198.3333333,82.5793374,89.00654268 +2833.333333,217.7777778,82.87416185,92.1285053 +2833.333333,237.2222222,82.82249237,95.19544793 +2833.333333,256.6666667,82.52000262,98.20506647 +3138.888889,159.4444444,76.49401747,86.03605688 +3138.888889,178.8888889,78.89675683,88.98976894 +3138.888889,198.3333333,80.59175107,91.9220164 +3138.888889,217.7777778,81.72970668,94.82639474 +3138.888889,237.2222222,82.43128057,97.69789809 +3444.444444,198.3333333,77.22393518,95.29015776 +3444.444444,217.7777778,79.09738569,97.97880664 diff --git a/src/wrd/surrogate_models/RO_feed_aff_laws_surr_2.csv b/src/wrd/surrogate_models/RO_feed_aff_laws_surr_2.csv new file mode 100644 index 00000000..4aa69d3a --- /dev/null +++ b/src/wrd/surrogate_models/RO_feed_aff_laws_surr_2.csv @@ -0,0 +1,37 @@ +Flow (gpm),Head (ft),speed,efficiency,total_efficiency,power +1100,220,84.28318774,54.79567406,50.49421364,90.3391619 +1100,234.2857143,86.83483162,53.9641087,49.72792617,97.68782711 +1100,248.5714286,89.30638763,53.21220512,49.03504702,105.1089268 +1100,262.8571429,91.70474224,52.52906803,48.40553619,112.5951639 +1100,277.1428571,94.03586875,51.90568586,47.83108952,120.1402153 +1100,291.4285714,96.30498533,51.33454633,47.30478444,127.7385697 +1442.857143,220,85.52331391,63.33809647,58.3660559,102.5151313 +1442.857143,234.2857143,88.09936327,62.22947221,57.34445864,111.1168673 +1442.857143,248.5714286,90.59650789,61.21210662,56.40695625,119.8516951 +1442.857143,262.8571429,93.0211105,60.27583875,55.54418541,128.7083786 +1442.857143,277.1428571,95.3787704,59.41178885,54.74796343,137.6769891 +1442.857143,291.4285714,97.67443812,58.61221494,54.01115607,146.7487101 +1785.714286,220,86.70460696,71.34644269,65.74574694,112.6339447 +1785.714286,234.2857143,89.27076778,70.13959365,64.63363555,122.0117062 +1785.714286,248.5714286,91.76411955,69.00405752,63.587239,131.5817074 +1785.714286,262.8571429,94.18967976,67.93667681,62.60364768,141.3300204 +1785.714286,277.1428571,96.55200932,66.93357543,61.67928976,151.2441562 +1785.714286,291.4285714,98.85525114,65.9905953,60.81033357,161.3128704 +2128.571429,220,88.10107802,77.70880361,71.60866253,123.2672341 +2128.571429,234.2857143,90.61044434,76.65664934,70.63910236,133.0733742 +2128.571429,248.5714286,93.05837587,75.62036743,69.68416859,143.1224027 +2128.571429,262.8571429,95.44790169,74.60915298,68.75233447,153.3991195 +2128.571429,277.1428571,97.78196917,73.62872069,67.84886612,163.889688 +2471.428571,220,89.93300027,81.64182207,75.23293904,136.2275732 +2471.428571,234.2857143,92.3374897,80.9966516,74.63841445,146.2290877 +2471.428571,248.5714286,94.69533542,80.2895182,73.98679102,156.5119075 +2471.428571,262.8571429,97.00753419,79.54255345,73.298463,167.0610792 +2471.428571,277.1428571,99.27528384,78.77234336,72.58871441,177.8627294 +2814.285714,220,92.33092279,82.8898301,76.38297844,152.790581 +2814.285714,234.2857143,94.59359617,82.8200628,76.31868787,162.8491153 +2814.285714,248.5714286,96.8246585,82.61227456,76.12721101,173.2135169 +2814.285714,262.8571429,99.02362901,82.29684867,75.83654605,183.8703609 +3157.142857,220,95.33086487,81.7150666,75.30043387,173.8688335 +3157.142857,234.2857143,97.43227487,82.26673038,75.80879204,183.9173792 +3157.142857,248.5714286,99.51473808,82.62584552,76.13971665,194.2837556 +3500,220,98.89922918,78.69117823,72.51392074,200.1573959 diff --git a/src/wrd/surrogate_models/RO_feed_aff_laws_surr_3.csv b/src/wrd/surrogate_models/RO_feed_aff_laws_surr_3.csv new file mode 100644 index 00000000..0648d32c --- /dev/null +++ b/src/wrd/surrogate_models/RO_feed_aff_laws_surr_3.csv @@ -0,0 +1,44 @@ +Flow (gpm),Head (ft),speed,pump_efficiency,total_efficiency,power +1100,220,84.28318774,54.79567406,50.49421364,90.3391619 +1100,234.2857143,86.83483162,53.9641087,49.72792617,97.68782711 +1100,248.5714286,89.30638763,53.21220512,49.03504702,105.1089268 +1100,262.8571429,91.70474224,52.52906803,48.40553619,112.5951639 +1100,277.1428571,94.03586875,51.90568586,47.83108952,120.1402153 +1100,291.4285714,96.30498533,51.33454633,47.30478444,127.7385697 +1442.857143,220,85.52331391,63.33809647,58.3660559,102.5151313 +1442.857143,234.2857143,88.09936327,62.22947221,57.34445864,111.1168673 +1442.857143,248.5714286,90.59650789,61.21210662,56.40695625,119.8516951 +1442.857143,262.8571429,93.0211105,60.27583875,55.54418541,128.7083786 +1442.857143,277.1428571,95.3787704,59.41178885,54.74796343,137.6769891 +1442.857143,291.4285714,97.67443812,58.61221494,54.01115607,146.7487101 +1785.714286,220,86.70460696,71.34644269,65.74574694,112.6339447 +1785.714286,234.2857143,89.27076778,70.13959365,64.63363555,122.0117062 +1785.714286,248.5714286,91.76411955,69.00405752,63.587239,131.5817074 +1785.714286,262.8571429,94.18967976,67.93667681,62.60364768,141.3300204 +1785.714286,277.1428571,96.55200932,66.93357543,61.67928976,151.2441562 +1785.714286,291.4285714,98.85525114,65.9905953,60.81033357,161.3128704 +2128.571429,220,88.10107802,77.70880361,71.60866253,123.2672341 +2128.571429,234.2857143,90.61044434,76.65664934,70.63910236,133.0733742 +2128.571429,248.5714286,93.05837587,75.62036743,69.68416859,143.1224027 +2128.571429,262.8571429,95.44790169,74.60915298,68.75233447,153.3991195 +2128.571429,277.1428571,97.78196917,73.62872069,67.84886612,163.889688 +2471.428571,220,89.93300027,81.64182207,75.23293904,136.2275732 +2471.428571,234.2857143,92.3374897,80.9966516,74.63841445,146.2290877 +2471.428571,248.5714286,94.69533542,80.2895182,73.98679102,156.5119075 +2471.428571,262.8571429,97.00753419,79.54255345,73.298463,167.0610792 +2471.428571,277.1428571,99.27528384,78.77234336,72.58871441,177.8627294 +2814.285714,220,92.33092279,82.8898301,76.38297844,152.790581 +2814.285714,234.2857143,94.59359617,82.8200628,76.31868787,162.8491153 +2814.285714,248.5714286,96.8246585,82.61227456,76.12721101,173.2135169 +2814.285714,262.8571429,99.02362901,82.29684867,75.83654605,183.8703609 +3157.142857,220,95.33086487,81.7150666,75.30043387,173.8688335 +3157.142857,234.2857143,97.43227487,82.26673038,75.80879204,183.9173792 +3157.142857,248.5714286,99.51473808,82.62584552,76.13971665,194.2837556 +3500,220,98.89922918,78.69117823,72.51392074,200.1573959 +3000,254,99.02220228,82.88735076,76.38069373,188.050147 +3000,240,96.92258044,82.84812869,76.34455059,177.7692982 +3330,230,98.4767745,80.99770964,74.63938943,193.4221898 +2640,230,92.67792873,82.33393214,75.87071847,150.8550561 +2640,250,95.90236301,81.68005948,75.26817481,165.2855378 +1980,270,96.05973503,71.38018063,65.77683645,153.1998276 +2280,270,97.24974005,76.58049127,70.5689227,164.4324122 diff --git a/src/wrd/surrogate_models/RO_feed_pump_curves.json b/src/wrd/surrogate_models/RO_feed_pump_curves.json new file mode 100644 index 00000000..7847232d --- /dev/null +++ b/src/wrd/surrogate_models/RO_feed_pump_curves.json @@ -0,0 +1 @@ +{"version":[4,2],"axesColl":[{"name":"XY","type":"XYAxes","isLogX":false,"isLogY":false,"noRotation":false,"calibrationPoints":[{"px":73.48341232227487,"py":473.44312796208527,"dx":"0","dy":"400","dz":null},{"px":856.6066350710901,"py":472.39336492890993,"dx":"4500","dy":"400","dz":null},{"px":74.53317535545024,"py":18.895734597156398,"dx":"0","dy":"400","dz":null},{"px":73.48341232227487,"py":428.30331753554503,"dx":"4500","dy":"40","dz":null}]}],"datasetColl":[{"name":"68 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":357,"y":284.75,"value":[1626.3746966824795,165.89545470877724]},{"x":361,"y":271.5,"value":[1649.1644393555705,177.54176096287034]},{"x":364.5,"y":259.5,"value":[1669.099478525891,188.08950363932922]},{"x":368,"y":247.5,"value":[1689.0345176962117,198.63724631578813]},{"x":372,"y":233.875,"value":[1711.8187351367167,210.61329845061422]},{"x":376,"y":220,"value":[1734.5992690888322,222.80918117259571]},{"x":380,"y":205.875,"value":[1757.376119552556,235.2248944817325]},{"x":383.5,"y":193.5,"value":[1777.3056334902901,246.10238303892442]},{"x":386.5,"y":182.66666666666666,"value":[1794.3847413283754,255.62483900013424]},{"x":389.5,"y":171.5,"value":[1811.4589378486069,265.4404024108845]},{"x":392.5,"y":160.16666666666666,"value":[1828.530678709911,275.40251954640496]},{"x":395.5,"y":149,"value":[1845.604875230142,285.2180829571553]},{"x":398.5,"y":137.66666666666666,"value":[1862.6766160914465,295.1802000926757]},{"x":565.5,"y":348.90909090909093,"value":[2825.4114476987393,109.23316985975765]},{"x":576.5,"y":346.09090909090907,"value":[2888.5785855226413,111.69829423582826]},{"x":582.5,"y":344.5,"value":[2923.032596478669,113.09014385637937]}],"autoDetectionData":{"fgColor":[235,81,73],"bgColor":[255,255,255],"mask":[[109356,1],[110242,2],[111128,3],[112014,4],[112900,4],[113786,5],[114672,5],[114700,1],[115558,31],[116444,31],[117330,33],[118214,35],[119100,35],[119985,36],[120871,36],[121757,48],[122634,56],[123520,56],[124406,56],[125292,56],[126178,56],[127064,56],[127950,56],[128836,56],[129722,56],[130608,56],[131494,56],[132380,56],[133266,56],[134152,56],[135036,58],[135921,59],[136807,59],[137693,59],[138579,59],[139465,59],[140351,59],[141237,59],[142123,59],[143009,59],[143895,59],[144781,49],[145666,50],[146552,49],[147438,49],[148324,48],[149210,48],[150096,47],[150981,48],[151867,48],[152753,48],[153639,48],[154525,48],[155411,48],[156297,48],[157183,48],[158069,48],[158955,48],[159841,47],[160727,45],[161613,44],[162499,44],[163385,44],[164271,44],[165157,44],[166043,44],[166929,44],[167815,44],[168701,44],[169586,45],[170472,45],[171358,45],[172244,45],[173129,46],[174015,46],[174901,45],[175787,45],[176672,46],[177558,45],[178444,45],[179330,45],[180215,46],[181101,46],[181987,46],[182873,46],[183758,47],[184644,47],[185530,47],[186415,47],[187301,47],[188187,46],[189073,46],[189959,45],[190844,46],[191730,46],[192616,45],[193502,45],[194387,46],[195273,45],[196159,45],[197045,45],[197931,45],[198817,44],[199703,44],[200588,45],[201474,45],[202360,45],[203246,45],[204132,45],[205018,45],[205904,45],[206790,45],[207676,45],[208562,45],[209448,45],[210333,46],[211219,46],[212105,46],[212991,46],[213877,46],[214763,46],[215649,46],[216535,46],[217421,45],[218307,44],[219193,44],[220079,44],[220965,44],[221851,44],[222737,44],[223606,61],[224492,61],[225378,61],[226264,63],[227150,63],[228036,63],[228922,63],[229808,63],[230694,63],[231580,63],[232466,63],[233352,63],[234238,63],[235124,63],[236010,63],[236896,63],[237782,63],[238668,63],[239554,63],[240440,63],[241326,63],[242211,64],[243097,64],[243983,64],[244869,64],[245755,64],[246641,64],[247527,64],[248413,64],[249299,64],[250185,64],[251071,64],[251957,64],[252843,64],[253729,64],[254615,64],[255501,64],[256387,64],[257273,64],[258159,64],[259045,64],[259931,64],[260817,64],[261703,64],[262590,63],[263486,53],[264372,53],[265258,53],[266144,53],[267030,53],[267916,51],[268802,35],[269688,34],[300045,3],[300933,1],[301803,10],[301814,7],[302687,21],[303573,22],[304451,34],[305336,35],[306223,35],[307110,35],[307997,35],[308884,35],[309771,34],[310657,33],[311543,32],[312429,31],[313315,30],[314201,26],[315087,25],[315973,23],[316859,18],[317745,14],[318631,11],[319517,10],[320403,8]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":0,"imageWidth":886,"imageHeight":486}},{"name":"59 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":284.5,"y":277.3,"value":[1209.6623917433624,172.53186313667]},{"x":289,"y":266,"value":[1235.353986570626,182.46290145280895]},{"x":293,"y":255.375,"value":[1258.1824058718196,191.80098654177098]},{"x":297,"y":244.25,"value":[1281.0034581962318,201.57873280504367]},{"x":301,"y":233,"value":[1303.8226687764486,211.466394361894]},{"x":305,"y":221,"value":[1326.6308288914936,222.01354768021042]},{"x":309,"y":209,"value":[1349.4389890065386,232.56070099852678]},{"x":313,"y":196.875,"value":[1372.2453073773881,243.21776961042087]},{"x":317,"y":183.875,"value":[1395.0387335388705,254.6442452773586]},{"x":321,"y":170.875,"value":[1417.8321597003528,266.0707209442964]},{"x":324.5,"y":159,"value":[1437.7690406148683,276.50854832717766]},{"x":328,"y":147,"value":[1457.7040797851887,287.0562910036365]},{"x":332,"y":133,"value":[1480.4827719931081,299.36208901919565]}],"autoDetectionData":{"fgColor":[228,64,46],"bgColor":[255,255,255],"mask":[[110188,13],[111074,13],[111960,13],[112846,13],[113730,15],[114616,15],[115502,15],[116388,15],[117274,15],[118160,25],[119046,25],[119932,25],[120818,25],[121703,26],[122589,26],[123475,26],[124361,26],[125247,26],[126132,27],[127017,28],[127902,29],[128788,27],[129674,27],[130560,27],[131446,27],[132332,23],[133218,22],[134104,22],[134989,22],[135875,22],[136760,23],[137646,23],[138531,24],[139417,24],[140302,25],[141188,25],[142073,25],[142959,24],[143844,24],[144729,24],[145614,25],[146500,25],[147386,25],[148272,25],[149157,26],[150043,26],[150929,26],[151814,27],[152700,27],[153586,27],[154472,22],[155358,21],[156244,21],[157130,21],[158016,21],[158902,21],[159788,21],[160669,26],[161555,26],[162441,26],[163327,26],[164213,26],[165099,26],[165985,25],[166871,25],[167757,25],[168643,24],[169528,25],[170414,24],[171300,23],[172185,24],[173071,24],[173957,23],[174843,23],[175729,22],[176615,21],[177501,21],[178386,22],[179272,22],[180158,22],[181043,23],[181929,22],[182815,22],[183701,22],[184586,23],[185472,23],[186358,23],[187243,24],[188129,24],[189014,25],[189899,26],[190784,27],[191670,27],[192555,28],[193441,28],[194326,29],[195212,29],[196098,29],[196983,30],[197869,30],[198755,30],[199640,23],[200526,23],[201409,25],[202295,24],[203181,24],[204067,24],[204953,23],[205839,23],[206725,23],[207611,23],[208497,23],[209383,23],[210265,27],[211150,28],[212036,28],[212922,28],[213808,28],[214694,28],[215580,28],[216466,28],[217352,28],[218238,28],[219124,28],[220010,25],[220896,24],[221782,23],[222668,23],[223554,23],[224440,23],[225326,23],[226212,23],[227098,23],[227984,23],[228870,23],[229756,23],[230642,23],[231526,25],[232412,25],[233298,25],[234182,27],[235068,26],[235954,26],[236840,26],[237726,26],[238612,26],[239497,27],[240382,28],[241267,29],[242152,30],[243036,32],[243920,34],[244804,33],[245688,33],[246574,33],[247460,33],[248346,33],[249232,33],[250118,31],[251004,30],[251890,30],[252776,30],[253672,20],[254559,19],[255445,19],[256332,18],[257218,10],[258105,8],[258991,5],[259878,2]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":1,"imageWidth":886,"imageHeight":486}},{"name":"75 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":464,"y":209.6875,"value":[2240.116611464256,231.77346585967223]},{"x":465,"y":191,"value":[2245.5875125965026,248.2046235332491]},{"x":465,"y":229.25,"value":[2246.151086320275,214.57054369848166]},{"x":466.1666666666667,"y":176.83333333333334,"value":[2252.082730458722,260.66031496971937]},{"x":467.5,"y":243.66666666666666,"value":[2260.729105541094,201.89069971514436]},{"x":468,"y":162.5,"value":[2262.4063205883135,273.26177432010314]},{"x":470,"y":148.55555555555554,"value":[2273.6933475703104,285.5210785266422]},{"x":471.5,"y":254.9,"value":[2283.8795845105788,192.0082638004909]},{"x":478.5,"y":265.6111111111111,"value":[2324.26109475044,182.58149340792914]},{"x":488.5,"y":273.95454545454544,"value":[2381.8464454191026,175.23313796264208]},{"x":499.5,"y":278.8181818181818,"value":[2445.1267667953725,170.9434679333939]},{"x":510.5,"y":281.5,"value":[2508.3749413638693,168.57231939204684]},{"x":521.5,"y":282.8181818181818,"value":[2571.603024177508,167.40024678063807]},{"x":532.5,"y":283.3636363636364,"value":[2634.819721663394,166.9076505295276]},{"x":543.5,"y":282.77272727272725,"value":[2698.0196760202307,167.41428422003236]},{"x":554.5,"y":281.90909090909093,"value":[2761.2156120260966,168.16073309652467]},{"x":565.5,"y":280.5,"value":[2824.403511330019,169.3868123449924]},{"x":576.5,"y":278.8181818181818,"value":[2887.587392282969,170.85270677944771]},{"x":587.5,"y":276.77272727272725,"value":[2950.7659154346243,172.6383547952199]},{"x":598.5,"y":274.45454545454544,"value":[3013.9404202353076,174.66381799697973]},{"x":609.5,"y":271.95454545454544,"value":[3077.1122461353434,176.84915798939798]},{"x":620.5,"y":269.22727272727275,"value":[3140.2807234095694,179.23434397013926]},{"x":631.5,"y":266.27272727272725,"value":[3203.4458520579856,181.8193759392036]},{"x":642.5,"y":263.1818181818182,"value":[3266.608971530916,184.52431550126178]},{"x":653.5,"y":259.8636363636364,"value":[3329.7687423780367,187.42910105164296]},{"x":664.5,"y":256.5,"value":[3392.9278434999956,190.37385579968878]},{"x":675.5,"y":252.8181818181818,"value":[3456.0822565458207,193.59839493138685]},{"x":686.5,"y":249.1818181818182,"value":[3519.2373393168077,196.78296486542027]},{"x":697.5,"y":245.27272727272728,"value":[3582.3884037368234,200.2073499854414]},{"x":708.5,"y":241.27272727272728,"value":[3645.5381287065147,203.71167350079168]},{"x":714.5,"y":239.5,"value":[3679.989460761895,205.2633999120013]}],"autoDetectionData":{"fgColor":[228,64,46],"bgColor":[255,255,255],"mask":[[128043,4],[128929,10],[129815,15],[129837,1],[130701,23],[131587,23],[132473,23],[133359,23],[134245,23],[135131,23],[136017,23],[136905,23],[137790,24],[138676,24],[139559,27],[140445,27],[141331,26],[142217,26],[143103,25],[143989,25],[144875,24],[145761,24],[146647,24],[147533,23],[148418,23],[149304,23],[150190,23],[151076,23],[151962,23],[152848,23],[153734,23],[154620,23],[155506,23],[156392,23],[157278,22],[158164,22],[159050,22],[159936,22],[160822,22],[161708,22],[162594,23],[163480,23],[164366,23],[165252,23],[166138,23],[167024,23],[167911,22],[168797,22],[169683,22],[170569,22],[171455,22],[172341,22],[173227,22],[174113,22],[174999,22],[175884,23],[176770,22],[177656,22],[178542,22],[179427,22],[180313,22],[181199,22],[182085,22],[182971,21],[183857,21],[184743,21],[185629,21],[186513,22],[187399,21],[188285,21],[189171,21],[190057,21],[190943,21],[191829,21],[192716,20],[193601,21],[194487,21],[195373,21],[196259,21],[197145,21],[198031,21],[198917,21],[199803,21],[200689,21],[201575,21],[202460,21],[203346,21],[204232,22],[205118,23],[206004,23],[206890,23],[207776,24],[208662,24],[209549,23],[209797,8],[209807,12],[210435,23],[210682,10],[210693,12],[211322,22],[211558,8],[211567,25],[212209,21],[212420,59],[213095,21],[213304,61],[213981,21],[214188,63],[214867,21],[215072,65],[215753,21],[215954,69],[216639,21],[216838,71],[217525,22],[217722,71],[218411,22],[218603,76],[219297,23],[219487,78],[220183,28],[220370,81],[221069,28],[221253,84],[221955,28],[222136,87],[222841,28],[223020,89],[223727,28],[223902,93],[224613,28],[224784,97],[225499,37],[225667,91],[226385,37],[226553,89],[227271,39],[227439,88],[228157,40],[228325,83],[229046,38],[229212,78],[229933,38],[230088,84],[230820,38],[230964,93],[231706,40],[231850,91],[232593,41],[232736,90],[233480,41],[233622,88],[234366,43],[234506,88],[235253,44],[235386,92],[236140,45],[236264,98],[237027,49],[237142,104],[237914,50],[238021,107],[238801,51],[238900,112],[239688,52],[239779,117],[240575,53],[240651,129],[241462,53],[241534,130],[242350,52],[242417,132],[243238,51],[243301,132],[244126,51],[244184,133],[245015,49],[245067,134],[245908,177],[246795,174],[247683,170],[248571,165],[249459,143],[250346,142],[251234,140],[252121,115],[252245,15],[253009,106],[253132,14],[253897,97],[254019,13],[254785,84],[254906,12],[255676,73],[255793,11],[256562,66],[256680,10],[257450,57],[257567,9],[258336,53],[258454,8],[259222,53],[259341,7],[260108,36],[260228,6],[260994,34],[261115,5],[261880,31],[262002,4],[262766,28],[262889,3],[263652,24],[263776,2],[264539,14],[264663,1],[265425,13],[266311,11],[267197,9],[268083,7],[268969,5],[269855,2]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":2,"imageWidth":886,"imageHeight":486}},{"name":"80 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":538,"y":163.5,"value":[2664.6579868033277,272.2999418315307]},{"x":542,"y":174.125,"value":[2687.7995026177286,262.9524270122886]},{"x":549,"y":185.9375,"value":[2728.197240670333,252.55718075520352]},{"x":558.6,"y":196,"value":[2783.509423216771,243.69768394586484]},{"x":569.5,"y":202.6818181818182,"value":[2846.2419094105735,237.8093638816608]},{"x":580.5,"y":206.6818181818182,"value":[2909.509506008767,234.27910860804016]},{"x":591.5,"y":209.22727272727272,"value":[2972.755671401778,232.02786765968696]},{"x":602.5,"y":210.36363636363637,"value":[3035.9810753147685,231.01567183893658]},{"x":613.5,"y":210.5,"value":[3099.191745274197,230.8827983668076]},{"x":624.5,"y":209.8181818181818,"value":[3162.39036018071,231.46937045264156]},{"x":635.5,"y":208.63636363636363,"value":[3225.581608110442,232.49560371278622]},{"x":646.5,"y":207.04545454545453,"value":[3288.7668285137165,233.8815597519123]},{"x":657.5,"y":205,"value":[3351.9453516653716,235.6672077676845]},{"x":667.5,"y":202.88888888888889,"value":[3409.376665546788,237.51176778525723]}],"autoDetectionData":{"fgColor":[228,64,46],"bgColor":[255,255,255],"mask":[[137865,4],[138748,7],[139631,2],[139634,7],[139643,5],[140517,18],[141403,18],[142290,17],[143176,17],[144062,17],[144948,17],[145835,16],[146721,16],[147607,12],[148494,11],[149380,12],[150267,11],[151153,12],[152040,11],[152926,12],[153813,11],[154699,11],[155586,11],[156472,11],[157359,11],[158245,11],[159132,10],[160018,10],[160904,10],[161791,9],[162677,9],[163564,10],[164450,16],[165337,15],[166224,15],[167112,14],[167999,17],[168886,16],[169775,13],[170662,21],[171548,28],[172434,30],[172504,17],[173320,39],[173390,16],[173410,9],[174206,40],[174273,17],[174291,14],[174318,22],[175092,44],[175157,17],[175175,16],[175200,25],[175978,47],[176038,39],[176083,26],[176866,97],[176965,28],[177754,123],[178641,120],[179529,22],[179552,93],[180417,22],[180441,88],[181305,107],[182195,102],[183082,99],[183969,97],[184856,93],[185743,88],[186631,83],[187518,78],[188404,75],[189290,71],[190176,69],[191062,65],[191948,57],[192834,55],[193720,39],[194606,18],[194633,5]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":3,"imageWidth":886,"imageHeight":486}},{"name":"83 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":572.5,"y":171.0909090909091,"value":[2863.015176091373,265.58442010970816]},{"x":583.5,"y":179.5909090909091,"value":[2926.3490754805985,258.09721426729135]},{"x":594.5,"y":184.36363636363637,"value":[2989.6280574065445,253.88748263337234]},{"x":605.5,"y":187.8181818181818,"value":[3052.8876173027943,250.836857731727]},{"x":616.5,"y":189.5,"value":[3116.1210579177286,249.34503153900135]},{"x":627.5,"y":190.0909090909091,"value":[3179.338425128776,248.81246609022628]},{"x":636.5,"y":190,"value":[3231.0532626834956,248.8817960389904]}],"autoDetectionData":{"fgColor":[228,64,46],"bgColor":[255,255,255],"mask":[[142320,9],[143206,9],[144092,9],[144978,10],[145864,10],[146750,14],[147636,15],[148522,17],[149408,20],[150296,19],[151182,19],[152068,23],[152954,23],[153840,23],[154726,23],[155612,23],[156501,20],[157392,16],[158278,24],[159164,24],[160050,29],[160936,50],[161828,46],[162716,49],[163601,50],[164486,51],[164552,1],[165371,61],[165434,6],[166257,69],[167142,70],[168028,70],[168914,70],[169800,70],[170686,69],[171572,16],[171603,35]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":4,"imageWidth":886,"imageHeight":486}},{"name":"Head 100% Speed","axesName":"XY","colorRGB":[25,28,238,255],"metadataKeys":[],"data":[{"x":323.625,"y":130.25,"value":[1432.3174777966728,301.79009722679143]},{"x":333.6111111111111,"y":131,"value":[1489.7111382412065,301.11883467353476]},{"x":344.5,"y":131.86363636363637,"value":[1552.294052482176,300.3465850072481]},{"x":355.5,"y":132.6818181818182,"value":[1615.5147683190332,299.61417357015]},{"x":366.5,"y":133.72727272727272,"value":[1678.7388327817005,298.6819161447289]},{"x":377.3,"y":134.8,"value":[1740.8140507015748,297.72591294396597]},{"x":388.5,"y":136,"value":[1805.1896406076823,296.65752450322816]},{"x":399.8333333333333,"y":137.16666666666666,"value":[1870.3309049672641,295.6182896452731]},{"x":410.1,"y":138.5,"value":[1929.345300303694,294.43375835991844]},{"x":421.5,"y":140,"value":[1994.87455877376,293.10133747133716]},{"x":432.5,"y":141.5,"value":[2058.105320488047,291.76938806926995]},{"x":443.5,"y":143.04545454545453,"value":[2121.3367519274952,290.3974694695381]},{"x":454.5,"y":144.77272727272728,"value":[2184.570862267591,288.8656740791479]},{"x":465.25,"y":146.625,"value":[2246.37025387952,287.22425807425117]},{"x":476.5,"y":148.5909090909091,"value":[2311.044440749079,285.48232971705045]},{"x":487.5,"y":150.5,"value":[2374.281229989823,283.7906575360018]},{"x":498.9,"y":152.9,"value":[2439.8237490180954,281.6668465336613]},{"x":509.5,"y":155.1818181818182,"value":[2500.7675332493877,279.64789841827684]},{"x":520.5,"y":157.5909090909091,"value":[2564.0116894669127,277.5165650629175]},{"x":531.5,"y":160.1818181818182,"value":[2627.258524585086,275.2253549168996]},{"x":540.5,"y":162.3,"value":[2679.005910782676,273.3521818591638]},{"x":559.1,"y":167.2,"value":[2785.95820629889,269.0215782280178]},{"x":568.375,"y":169.875,"value":[2839.2940131493124,266.65845835191215]},{"x":580.5,"y":173.4090909090909,"value":[2909.0192671902264,263.536561298533]},{"x":591.5,"y":176.8181818181818,"value":[2972.2781573613142,260.52590559455234]},{"x":602.3888888888889,"y":180.38888888888889,"value":[3034.900957456373,257.3732681562402]},{"x":613.5,"y":184.1818181818182,"value":[3098.803974405433,254.02496381461552]},{"x":623,"y":187.625,"value":[3153.4440040362188,250.98609928681384]},{"x":637.5,"y":192.95454545454547,"value":[3236.8430367084716,246.28261947450582]},{"x":648.5,"y":197.27272727272728,"value":[3300.1153213827984,242.47257981723294]},{"x":658,"y":201.125,"value":[3354.761378540041,239.07399251044978]},{"x":670.5,"y":206.45454545454547,"value":[3426.667927433395,234.37287013071182]},{"x":681.5,"y":211.5,"value":[3489.950927710313,229.9233233108052]},{"x":692.5,"y":216.63636363636363,"value":[3553.2352674375543,225.39383809556938]},{"x":703.5,"y":221.95454545454547,"value":[3616.522286065444,220.70447608967507]},{"x":714.8333333333334,"y":227.61111111111111,"value":[3681.729704388244,215.71717270684928]},{"x":720.5,"y":230.5,"value":[3714.334306516527,213.17022875188357]},{"x":550.0758293838862,"y":164.8127962085308,"value":[2734.0679661372315,271.1313368094343]}],"autoDetectionData":{"fgColor":[0,0,255],"bgColor":[255,255,255],"mask":[[103982,19],[104868,21],[105754,25],[106639,29],[107525,32],[108411,46],[109297,53],[110183,58],[111069,67],[111955,88],[112841,90],[113725,102],[114614,99],[114760,23],[115497,137],[115644,25],[116383,138],[116530,25],[117269,138],[117409,32],[118155,172],[119021,1],[119041,174],[119927,176],[120814,176],[121701,176],[122587,17],[122605,160],[123473,9],[123493,161],[123730,1],[124359,9],[124382,160],[124615,2],[125245,9],[125270,162],[125500,3],[126159,161],[126385,4],[127050,157],[127270,5],[127952,143],[128155,6],[128844,138],[129040,7],[129733,136],[129925,8],[130642,115],[130810,9],[131529,133],[131695,10],[132417,142],[132580,11],[133304,142],[133465,12],[134225,113],[134350,13],[135112,35],[135149,76],[135235,14],[136001,29],[136039,75],[136120,15],[136887,28],[136927,73],[137005,16],[137780,16],[137814,72],[137890,17],[138702,70],[138775,18],[139590,68],[139660,19],[140479,65],[140545,37],[140590,13],[141367,103],[141473,17],[142256,121],[143144,120],[144031,18],[144062,89],[144919,16],[144951,6],[144971,67],[145806,15],[145857,68],[146694,13],[146743,69],[147582,9],[147637,62],[148470,6],[148523,63],[149358,4],[149409,64],[150295,65],[151183,64],[152069,65],[152955,66],[153841,67],[154728,67],[155615,68],[156502,70],[157389,71],[158276,74],[159162,76],[160050,77],[160948,66],[161835,67],[162736,62],[163622,62],[164508,65],[165394,73],[166288,67],[167178,65],[168066,64],[168952,67],[169838,67],[170724,69],[171610,70],[172496,72],[173396,63],[174285,62],[175175,59],[176062,59],[176950,62],[177837,65],[178725,64],[179611,65],[180497,66],[181383,74],[182287,56],[183174,55],[184060,56],[184946,57],[185832,59],[186729,49],[187616,49],[188503,50],[189390,50],[190277,50],[191169,45],[192058,44],[192946,46],[193833,48],[194725,44],[195612,44],[196498,45],[197384,46],[198270,47],[199160,44],[200050,41],[200940,39],[201827,39],[202714,39],[203600,40],[204487,40],[205374,40],[206262,39],[207149,39],[208037,38],[208924,38],[209812,37],[210703,34],[211592,35],[212479,38],[213366,37],[214253,36],[215141,34],[216027,34],[216915,32],[217802,31],[218689,30],[219576,29],[220463,28],[221350,17],[222237,16],[223124,14],[224011,13],[224898,12],[225785,11],[226672,9],[227560,7],[228450,3]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":5,"imageWidth":886,"imageHeight":486}},{"name":"MCSF","axesName":"XY","colorRGB":[25,28,238,255],"metadataKeys":[],"data":[{"x":263,"y":276.6666666666667,"value":[1086.1088596162792,173.11410969092472]},{"x":268.5,"y":264.2,"value":[1117.5295067205022,184.06984536417028]},{"x":273.5,"y":251.9,"value":[1146.0794885389275,194.87961667078804]},{"x":278,"y":240.625,"value":[1171.7714517150303,204.78867192821141]},{"x":282,"y":230.25,"value":[1194.6035545046145,213.90692643001807]},{"x":286,"y":219.5,"value":[1217.430132061613,223.35492681255778]},{"x":290,"y":208.375,"value":[1240.251184386025,233.13267307583044]},{"x":294,"y":197,"value":[1263.0685532220468,243.13024992625847]},{"x":298,"y":185.75,"value":[1285.8877638022636,253.01791148310886]},{"x":302,"y":174,"value":[1308.6996074056992,263.3452342142699]},{"x":306,"y":161.5,"value":[1331.5004005439628,274.332048706897]},{"x":310,"y":149,"value":[1354.3011936822265,285.318863199524]},{"x":313,"y":141.75,"value":[1371.4330981872447,291.69041407817394]},{"x":315.978672985782,"y":129.1208530805687,"value":[1388.3631964088693,302.7919941980965]}],"autoDetectionData":{"fgColor":[0,0,255],"bgColor":[255,255,255],"mask":[[102200,9],[103086,9],[103972,9],[104856,11],[105742,18],[106628,18],[107514,18],[108400,18],[109286,18],[110172,18],[111057,19],[111943,19],[112828,20],[113714,20],[114600,20],[115486,19],[116371,20],[117257,18],[118143,18],[119029,18],[119915,18],[120801,18],[121687,18],[122572,19],[123458,19],[124344,18],[125230,18],[126115,18],[127001,18],[127887,18],[128773,18],[129658,17],[130544,17],[131430,17],[132314,18],[133200,18],[134086,18],[134971,19],[135857,19],[136743,19],[137629,19],[138514,20],[139400,20],[140282,24],[141168,24],[142054,24],[142938,23],[143824,23],[144710,23],[145596,23],[146482,23],[147368,23],[148252,24],[149137,25],[150023,25],[150908,26],[151793,27],[152679,27],[153565,27],[154451,27],[155338,26],[156223,27],[157109,27],[157995,26],[158880,27],[159766,26],[160652,22],[161538,18],[162424,18],[163310,17],[164196,15],[165082,15],[165968,15],[166854,15],[167740,15],[168626,15],[169512,15],[170398,15],[171284,15],[172170,15],[173055,16],[173941,16],[174827,16],[175713,16],[176599,16],[177485,16],[178371,16],[179256,17],[180142,17],[181028,17],[181914,17],[182800,17],[183686,17],[184569,20],[185455,20],[186340,20],[187226,20],[188112,20],[188998,20],[189881,23],[190766,24],[191652,21],[192535,24],[193421,24],[194306,25],[195192,25],[196077,26],[196963,26],[197848,26],[198734,26],[199620,23],[200506,23],[201392,23],[202278,23],[203164,22],[204050,21],[204936,18],[205821,19],[206706,20],[207592,19],[208478,19],[209363,19],[210248,18],[211133,19],[212019,18],[212905,18],[213791,18],[214677,17],[215562,17],[216446,18],[217332,18],[218217,19],[219103,18],[219989,18],[220875,18],[221761,18],[222647,18],[223533,17],[224419,17],[225305,17],[226190,18],[227076,18],[227962,18],[228848,17],[229734,17],[230620,16],[231506,15],[232392,15],[233278,15],[234163,16],[235049,16],[235935,16],[236821,16],[237705,18],[238591,18],[239477,18],[240363,17],[241248,18],[242134,18],[243019,19],[243905,19],[244791,18],[245676,19],[246562,19],[247448,19],[248334,19],[249220,19],[250106,18],[250992,18],[251878,18],[252764,18],[253651,17],[254537,16],[255423,16],[256309,15],[257195,15],[258081,15],[258967,14]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":6,"imageWidth":886,"imageHeight":486}},{"name":"48 Efficiency","axesName":"XY","colorRGB":[200,0,0,255],"metadataKeys":[],"data":[{"x":224.5,"y":275,"value":[864.8539902832097,174.62502751560012]},{"x":229,"y":262.875,"value":[890.5334295987839,185.28150676935167]},{"x":233,"y":250.875,"value":[913.3415897138291,195.82866008766806]},{"x":237,"y":238.125,"value":[936.138699363702,207.03530516745045]},{"x":241,"y":225.75,"value":[958.9413342461607,217.91220436649988]},{"x":245,"y":212.5,"value":[981.7310769192525,229.55851062059295]},{"x":249,"y":199.125,"value":[1004.5189778481488,241.31473216826376]},{"x":252.5,"y":186.83333333333334,"value":[1024.4497196153463,252.11894386307054]},{"x":255.5,"y":176.33333333333334,"value":[1041.5337387712862,261.3482923747399]},{"x":258.5,"y":165.16666666666666,"value":[1058.6079352915172,271.16385578549017]},{"x":261.5,"y":154,"value":[1075.6821318117486,280.9794191962404]},{"x":264.5,"y":142.83333333333334,"value":[1092.7563283319798,290.7949826069907]},{"x":268,"y":129.625,"value":[1112.6735639750784,302.4052397880337]}],"autoDetectionData":{"fgColor":[228,64,46],"bgColor":[255,255,255],"mask":[[108352,6],[109238,11],[110124,16],[111010,17],[111896,18],[112779,21],[113665,21],[114551,20],[115436,20],[116321,20],[117206,20],[118092,19],[118979,18],[119865,18],[120751,18],[121637,18],[122523,18],[123409,18],[124295,18],[125181,18],[126066,17],[126952,17],[127838,17],[128724,17],[129610,17],[130496,16],[131382,16],[132268,15],[133152,17],[134038,17],[134924,17],[135810,17],[136696,16],[137582,16],[138467,17],[139353,17],[140239,17],[141125,17],[142011,17],[142897,17],[143783,17],[144669,17],[145555,17],[146441,16],[147326,17],[148212,17],[149098,17],[149984,17],[150869,18],[151755,17],[152640,18],[153526,17],[154412,17],[155298,17],[156184,16],[157069,16],[157955,16],[158839,18],[159724,18],[160610,18],[161496,18],[162382,18],[163268,18],[164154,18],[165040,17],[165926,17],[166810,18],[167696,18],[168582,18],[169468,18],[170354,18],[171240,18],[172126,17],[173012,16],[173897,17],[174782,18],[175668,18],[176554,18],[177440,18],[178326,18],[179211,19],[180097,17],[180983,16],[181869,16],[182752,19],[183638,19],[184524,19],[185410,18],[186296,18],[187182,18],[188068,18],[188954,17],[189840,17],[190726,17],[191612,16],[192497,16],[193383,16],[194268,17],[195154,16],[196040,16],[196926,16],[197811,17],[198696,18],[199582,17],[200468,17],[201354,17],[202240,17],[203126,17],[204012,17],[204897,18],[205782,19],[206668,19],[207554,17],[208440,16],[209326,16],[210212,16],[211098,16],[211984,16],[212869,17],[213754,18],[214640,18],[215526,18],[216412,18],[217298,18],[218184,18],[219070,18],[219956,18],[220841,19],[221727,19],[222613,19],[223499,19],[224385,19],[225270,20],[226153,23],[227038,24],[227923,25],[228809,25],[229691,29],[230577,29],[231463,29],[232349,28],[233235,28],[234121,28],[235007,28],[235893,27],[236779,27],[237664,28],[238549,29],[239434,30],[240319,31],[241204,30],[242089,28],[242974,28],[243859,29],[244744,29],[245629,30],[246514,31],[247399,32],[248284,33],[249169,34],[250054,32],[250939,17],[250957,15],[251824,15],[251843,15],[252709,14],[252729,15],[253594,14],[253615,13],[254479,13],[254501,13],[255364,12],[255387,13],[256249,10],[256273,13],[257134,9],[258019,8],[258904,7],[259789,6],[260674,5],[261559,4],[262444,3],[263330,1]],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":7,"imageWidth":886,"imageHeight":486}},{"name":"Head Min","axesName":"XY","colorRGB":[33,27,30,255],"metadataKeys":[],"data":[{"x":223.04205246913583,"y":280.3096064814815,"value":[856.5545026040731,169.95789038054585]},{"x":231.4814814814815,"y":280.9124228395062,"value":[905.0583849860736,169.41787279240717]},{"x":244.140625,"y":280.9124228395062,"value":[977.8008857567354,169.40295125378753]},{"x":257.40258487654324,"y":282.72087191358025,"value":[1054.033960740202,167.79710947853286]},{"x":276.08989197530866,"y":282.72087191358025,"value":[1161.4157475921313,167.77508244533246]},{"x":300.2025462962963,"y":285.13213734567904,"value":[1300.0084193901052,165.62638088410677]},{"x":317.68422067901236,"y":286.3377700617284,"value":[1400.480112762233,164.54563515837123]},{"x":334.5630787037037,"y":288.7490354938272,"value":[1497.5056412626857,162.40546019064243]},{"x":355.6616512345679,"y":291.1603009259259,"value":[1618.778670020026,160.26031137670714]},{"x":387.00810185185185,"y":295.9828317901235,"value":[1798.9740125884248,155.98280363908185]},{"x":422.57426697530866,"y":302.0109953703704,"value":[2003.4346191501634,150.6401822637988]},{"x":456.3319830246914,"y":311.05324074074076,"value":[2197.5478492286506,142.64934305826165]},{"x":491.89814814814815,"y":321.9039351851852,"value":[2402.0795107361964,133.06616251717332]},{"x":510.5854552469136,"y":329.1377314814815,"value":[2509.567880006838,126.68329673526512]},{"x":531.6840277777778,"y":338.17997685185185,"value":[2630.9386093146636,118.70737906834768]},{"x":549.7685185185186,"y":347.22222222222223,"value":[2734.989695581856,110.73501414872055]},{"x":564.2361111111111,"y":353.8532021604938,"value":[2818.221682727383,104.8871921087445]},{"x":404.4897762345679,"y":298.99691358024694,"value":[1899.4723515652302,153.31184822616933]},{"x":439.453125,"y":306.23070987654324,"value":[2100.486793255294,146.9097976088931]}],"autoDetectionData":{"fgColor":[255,255,255],"bgColor":[255,255,255],"mask":[],"colorDetectionMode":"fg","colorDistance":120,"algorithm":{"algoType":"AveragingWindowAlgo","xStep":10,"yStep":10},"name":8,"imageWidth":886,"imageHeight":486}}],"measurementColl":[]} \ No newline at end of file diff --git a/src/wrd/surrogate_models/RO_feed_pump_eff_curve_data.csv b/src/wrd/surrogate_models/RO_feed_pump_eff_curve_data.csv new file mode 100644 index 00000000..5a5e8123 --- /dev/null +++ b/src/wrd/surrogate_models/RO_feed_pump_eff_curve_data.csv @@ -0,0 +1,95 @@ +efficiency,Flow (gpm),Head (ft) +68,1626.3746966824795,165.89545470877724 +68,1649.1644393555705,177.54176096287034 +68,1669.099478525891,188.08950363932922 +68,1689.0345176962117,198.63724631578813 +68,1711.8187351367167,210.61329845061422 +68,1734.5992690888322,222.80918117259571 +68,1757.376119552556,235.2248944817325 +68,1777.3056334902901,246.10238303892442 +68,1794.3847413283754,255.62483900013424 +68,1811.4589378486069,265.4404024108845 +68,1828.530678709911,275.40251954640496 +68,1845.604875230142,285.2180829571553 +68,1862.6766160914465,295.1802000926757 +68,2825.4114476987393,109.23316985975765 +68,2888.5785855226413,111.69829423582826 +68,2923.032596478669,113.09014385637937 +59,1209.6623917433624,172.53186313667 +59,1235.353986570626,182.46290145280895 +59,1258.1824058718196,191.80098654177098 +59,1281.0034581962318,201.57873280504367 +59,1303.8226687764486,211.466394361894 +59,1326.6308288914936,222.01354768021042 +59,1349.4389890065386,232.56070099852678 +59,1372.2453073773881,243.21776961042087 +59,1395.0387335388705,254.6442452773586 +59,1417.8321597003528,266.0707209442964 +59,1437.7690406148683,276.50854832717766 +59,1457.7040797851887,287.0562910036365 +59,1480.4827719931081,299.36208901919565 +75,2240.116611464256,231.77346585967223 +75,2245.5875125965026,248.2046235332491 +75,2246.151086320275,214.57054369848166 +75,2252.082730458722,260.66031496971937 +75,2260.729105541094,201.89069971514436 +75,2262.4063205883135,273.26177432010314 +75,2273.6933475703104,285.5210785266422 +75,2283.8795845105788,192.0082638004909 +75,2324.26109475044,182.58149340792914 +75,2381.8464454191026,175.23313796264208 +75,2445.1267667953725,170.9434679333939 +75,2508.3749413638693,168.57231939204684 +75,2571.603024177508,167.40024678063807 +75,2634.819721663394,166.9076505295276 +75,2698.0196760202307,167.41428422003236 +75,2761.2156120260966,168.16073309652467 +75,2824.403511330019,169.3868123449924 +75,2887.587392282969,170.85270677944771 +75,2950.7659154346243,172.6383547952199 +75,3013.9404202353076,174.66381799697973 +75,3077.1122461353434,176.84915798939798 +75,3140.2807234095694,179.23434397013926 +75,3203.4458520579856,181.8193759392036 +75,3266.608971530916,184.52431550126178 +75,3329.7687423780367,187.42910105164296 +75,3392.9278434999956,190.37385579968878 +75,3456.0822565458207,193.59839493138685 +75,3519.2373393168077,196.78296486542027 +75,3582.3884037368234,200.2073499854414 +75,3645.5381287065147,203.71167350079168 +75,3679.989460761895,205.2633999120013 +80,2664.6579868033277,272.2999418315307 +80,2687.7995026177286,262.9524270122886 +80,2728.197240670333,252.55718075520352 +80,2783.509423216771,243.69768394586484 +80,2846.2419094105735,237.8093638816608 +80,2909.509506008767,234.27910860804016 +80,2972.755671401778,232.02786765968696 +80,3035.9810753147685,231.01567183893658 +80,3099.191745274197,230.8827983668076 +80,3162.39036018071,231.46937045264156 +80,3225.581608110442,232.49560371278622 +80,3288.7668285137165,233.8815597519123 +80,3351.9453516653716,235.6672077676845 +80,3409.376665546788,237.51176778525723 +83,2863.015176091373,265.58442010970816 +83,2926.3490754805985,258.09721426729135 +83,2989.6280574065445,253.88748263337234 +83,3052.8876173027943,250.836857731727 +83,3116.1210579177286,249.34503153900135 +83,3179.338425128776,248.81246609022628 +83,3231.0532626834956,248.8817960389904 +48,864.8539902832097,174.62502751560012 +48,890.5334295987839,185.28150676935167 +48,913.3415897138291,195.82866008766806 +48,936.138699363702,207.03530516745045 +48,958.9413342461607,217.91220436649988 +48,981.7310769192525,229.55851062059295 +48,1004.5189778481488,241.31473216826376 +48,1024.4497196153463,252.11894386307054 +48,1041.5337387712862,261.3482923747399 +48,1058.6079352915172,271.16385578549017 +48,1075.6821318117486,280.9794191962404 +48,1092.7563283319798,290.7949826069907 +48,1112.6735639750784,302.4052397880337 diff --git a/src/wrd/surrogate_models/RO_feed_pump_head_curves_data.csv b/src/wrd/surrogate_models/RO_feed_pump_head_curves_data.csv new file mode 100644 index 00000000..59211137 --- /dev/null +++ b/src/wrd/surrogate_models/RO_feed_pump_head_curves_data.csv @@ -0,0 +1,72 @@ +Flow (gpm),Head 100% Speed (ft),MCSF (ft),Head Min (ft) +1432.3174777966728,301.79009722679143,, +1489.7111382412065,301.11883467353476,, +1552.294052482176,300.3465850072481,, +1615.5147683190332,299.61417357015,, +1678.7388327817005,298.6819161447289,, +1740.8140507015748,297.72591294396597,, +1805.1896406076823,296.65752450322816,, +1870.3309049672641,295.6182896452731,, +1929.345300303694,294.43375835991844,, +1994.87455877376,293.10133747133716,, +2058.105320488047,291.76938806926995,, +2121.3367519274952,290.3974694695381,, +2184.570862267591,288.8656740791479,, +2246.37025387952,287.22425807425117,, +2311.044440749079,285.48232971705045,, +2374.281229989823,283.7906575360018,, +2439.8237490180954,281.6668465336613,, +2500.7675332493877,279.64789841827684,, +2564.0116894669127,277.5165650629175,, +2627.258524585086,275.2253549168996,, +2679.005910782676,273.3521818591638,, +2785.95820629889,269.0215782280178,, +2839.2940131493124,266.65845835191215,, +2909.0192671902264,263.536561298533,, +2972.2781573613142,260.52590559455234,, +3034.900957456373,257.3732681562402,, +3098.803974405433,254.02496381461552,, +3153.4440040362188,250.98609928681384,, +3236.8430367084716,246.28261947450582,, +3300.1153213827984,242.47257981723294,, +3354.761378540041,239.07399251044978,, +3426.667927433395,234.37287013071182,, +3489.950927710313,229.9233233108052,, +3553.2352674375543,225.39383809556938,, +3616.522286065444,220.70447608967507,, +3681.729704388244,215.71717270684928,, +3714.334306516527,213.17022875188357,, +2734.0679661372315,271.1313368094343,, +1086.1088596162792,,173.11410969092472, +1117.5295067205022,,184.06984536417028, +1146.0794885389275,,194.87961667078804, +1171.7714517150303,,204.78867192821141, +1194.6035545046145,,213.90692643001807, +1217.430132061613,,223.35492681255778, +1240.251184386025,,233.13267307583044, +1263.0685532220468,,243.13024992625847, +1285.8877638022636,,253.01791148310886, +1308.6996074056992,,263.3452342142699, +1331.5004005439628,,274.332048706897, +1354.3011936822265,,285.318863199524, +1371.4330981872447,,291.69041407817394, +1388.3631964088693,,302.7919941980965, +856.5545026040731,,,169.95789038054585 +905.0583849860736,,,169.41787279240717 +977.8008857567354,,,169.40295125378753 +1054.033960740202,,,167.79710947853286 +1161.4157475921313,,,167.77508244533246 +1300.0084193901052,,,165.62638088410677 +1400.480112762233,,,164.54563515837123 +1497.5056412626857,,,162.40546019064243 +1618.778670020026,,,160.26031137670714 +1798.9740125884248,,,155.98280363908185 +2003.4346191501634,,,150.6401822637988 +2197.5478492286506,,,142.64934305826165 +2402.0795107361964,,,133.06616251717332 +2509.567880006838,,,126.68329673526512 +2630.9386093146636,,,118.70737906834768 +2734.989695581856,,,110.73501414872055 +2818.221682727383,,,104.8871921087445 +1899.4723515652302,,,153.31184822616933 +2100.486793255294,,,146.9097976088931 diff --git a/src/wrd/surrogate_models/RO_feed_total_efficiency_rbf_fit.json b/src/wrd/surrogate_models/RO_feed_total_efficiency_rbf_fit.json new file mode 100644 index 00000000..c1b3718c --- /dev/null +++ b/src/wrd/surrogate_models/RO_feed_total_efficiency_rbf_fit.json @@ -0,0 +1 @@ +{"model_encoding": {"total_efficiency": {"attr": {"x_data_columns": ["Flow (gpm)", "Head (ft)"], "x_data": [[0.0, 0.0], [0.0, 0.20000000027999953], [0.0, 0.4000000005599997], [0.0, 0.6000000008399998], [0.0, 0.7999999997200005], [0.0, 1.0], [0.1428571429166666, 0.0], [0.1428571429166666, 0.20000000027999953], [0.1428571429166666, 0.4000000005599997], [0.1428571429166666, 0.6000000008399998], [0.1428571429166666, 0.7999999997200005], [0.1428571429166666, 1.0], [0.2857142858333333, 0.0], [0.2857142858333333, 0.20000000027999953], [0.2857142858333333, 0.4000000005599997], [0.2857142858333333, 0.6000000008399998], [0.2857142858333333, 0.7999999997200005], [0.2857142858333333, 1.0], [0.42857142875, 0.0], [0.42857142875, 0.20000000027999953], [0.42857142875, 0.4000000005599997], [0.42857142875, 0.6000000008399998], [0.42857142875, 0.7999999997200005], [0.57142857125, 0.0], [0.57142857125, 0.20000000027999953], [0.57142857125, 0.4000000005599997], [0.57142857125, 0.6000000008399998], [0.57142857125, 0.7999999997200005], [0.7142857141666666, 0.0], [0.7142857141666666, 0.20000000027999953], [0.7142857141666666, 0.4000000005599997], [0.7142857141666666, 0.6000000008399998], [0.8571428570833333, 0.0], [0.8571428570833333, 0.20000000027999953], [0.8571428570833333, 0.4000000005599997], [1.0, 0.0], [0.7916666666666666, 0.4760000001903999], [0.7916666666666666, 0.28000000011199966], [0.9291666666666667, 0.14000000005600016], [0.6416666666666667, 0.14000000005600016], [0.6416666666666667, 0.4200000001679998], [0.36666666666666664, 0.7000000002800002], [0.49166666666666675, 0.7000000002800002]], "centres": [[0.0, 0.0], [0.0, 0.20000000027999953], [0.0, 0.4000000005599997], [0.0, 0.6000000008399998], [0.0, 0.7999999997200005], [0.0, 1.0], [0.1428571429166666, 0.0], [0.1428571429166666, 0.20000000027999953], [0.1428571429166666, 0.4000000005599997], [0.1428571429166666, 0.6000000008399998], [0.1428571429166666, 0.7999999997200005], [0.1428571429166666, 1.0], [0.2857142858333333, 0.0], [0.2857142858333333, 0.20000000027999953], [0.2857142858333333, 0.4000000005599997], [0.2857142858333333, 0.6000000008399998], [0.2857142858333333, 0.7999999997200005], [0.2857142858333333, 1.0], [0.42857142875, 0.0], [0.42857142875, 0.20000000027999953], [0.42857142875, 0.4000000005599997], [0.42857142875, 0.6000000008399998], [0.42857142875, 0.7999999997200005], [0.57142857125, 0.0], [0.57142857125, 0.20000000027999953], [0.57142857125, 0.4000000005599997], [0.57142857125, 0.6000000008399998], [0.57142857125, 0.7999999997200005], [0.7142857141666666, 0.0], [0.7142857141666666, 0.20000000027999953], [0.7142857141666666, 0.4000000005599997], [0.7142857141666666, 0.6000000008399998], [0.8571428570833333, 0.0], [0.8571428570833333, 0.20000000027999953], [0.8571428570833333, 0.4000000005599997], [1.0, 0.0], [0.7916666666666666, 0.4760000001903999], [0.7916666666666666, 0.28000000011199966], [0.9291666666666667, 0.14000000005600016], [0.6416666666666667, 0.14000000005600016], [0.6416666666666667, 0.4200000001679998], [0.36666666666666664, 0.7000000002800002], [0.49166666666666675, 0.7000000002800002]], "basis_function": "cubic", "weights": [[3.5425413472590908], [-1.6738164052381177], [0.6540416997855951], [0.83546339649362], [-2.1681552297899565], [5.3645902051683105], [-3.9900730847607804], [-1.3274146386022678], [-0.898570776895518], [-0.7539808148023965], [-1.2805571161900708], [-6.003851848226837], [1.7494254009796402], [0.5481731010072153], [1.0176217283081002], [0.6629159705325947], [-0.07440759959379761], [2.905858455059956], [0.1931547817750312], [-0.9335445728494349], [0.220553290703549], [-0.1416350913266342], [-1.7019066436238859], [0.9866886068680794], [1.0123882731884777], [0.42178552456107354], [0.06576485309295776], [1.123310172896133], [1.0895549760552048], [0.9430450408706168], [0.5084477561388212], [-0.3293584107613228], [-1.4020151010360884], [1.6495045680633638], [-0.6483513394211258], [2.2568659580706365], [-0.05207062422442732], [0.026893884969382498], [-4.032839659069281], [-2.586291920039109], [-0.07284915588161311], [1.3002686381136073], [-0.5443707660817836]], "sigma": 0.0, "regularization_parameter": 1e-05, "rmse": 1.9582609261455943e-05, "R2": 0.9999999965857479, "x_data_min": [[1.1, 2.2]], "x_data_max": [[3.5, 2.914285714]], "y_data_min": [0.4730478444], "y_data_max": [0.7638297844]}, "map": {"x_data_columns": "list", "x_data": "numpy", "centres": "numpy", "basis_function": "str", "weights": "numpy", "sigma": "str", "regularization_parameter": "str", "rmse": "str", "R2": "str", "x_data_min": "numpy", "x_data_max": "numpy", "y_data_min": "numpy", "y_data_max": "numpy"}}}, "input_labels": ["Flow (gpm)", "Head (ft)"], "output_labels": ["total_efficiency"], "input_bounds": {"Flow (gpm)": [1.1, 3.5], "Head (ft)": [2.2, 2.914285714]}, "surrogate_type": "rbf"} \ No newline at end of file diff --git a/src/wrd/surrogate_models/create_pump_surrogate.py b/src/wrd/surrogate_models/create_pump_surrogate.py new file mode 100644 index 00000000..d946eef5 --- /dev/null +++ b/src/wrd/surrogate_models/create_pump_surrogate.py @@ -0,0 +1,303 @@ +import pandas as pd +import numpy as np +import os + +from pyomo.environ import ( + Var, + value, + ConcreteModel, +) + +from idaes.core.surrogate.pysmo_surrogate import ( + PysmoRBFTrainer, + PysmoPolyTrainer, + PysmoSurrogate, +) + +from idaes.core.util.scaling import calculate_variable_from_constraint + +from idaes.core.surrogate.surrogate_block import SurrogateBlock +from matplotlib import pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from watertap.core.solvers import get_solver + + +# Helper Function, stealing fit from pump head curve, but could also make a surrogate from json data +def min_head_limit(flow,pump_type): + """Helper function to define minimum head for given flowrate.""" + # Coefficients from pump curve data + # Flow must be units of gpm. Head is in ft. + # This isn't valid anymore b/ it was for a smaller pump impeller diameter,not speed + if pump_type == 'RO_feed': + a_0 = 1.8033 + a_1 = -0.202589 + a_2 = 0.148054 + a_3 = -0.060852 + if pump_type == 'RO_IS': + a_0 = 0.607309 + a_1 = -0.059714 + a_2 = -0.105637 + a_3 = -0.10102 + head = a_0 + a_1 * (flow) + a_2 * (flow) ** 2 + a_3 * (flow) ** 3 + return head + + +def head_limit(flow,pump_type): + """Helper function to define minimum head for given flowrate.""" + # Coefficients from pump curve data + # Flow must be units of scaled gpm. Head is in ft. + if pump_type == 'RO_feed': + b_0 = 3.127555 + b_1 = -0.09634 + b_2 = 0.051555 + b_3 = -0.026339 + if pump_type == 'RO_IS': + b_0 = 1.02801 + b_1 = -0.21038 + b_2 = 0.284634 + b_3 = -0.253384 + head = (b_0 + b_1 * (flow) + b_2 * (flow)**2 + b_3 * (flow)**3) + return head + + +def MCSF(flow,pump_type): + """Helper function to define max head for given flowrate along the minimum continuous stable flow.""" + # Coefficients from pump curve data + # Flow must be in units of scaled gpm. Head is in scaled ft. + if pump_type == 'RO_feed': + c_0 = 0.838 + c_1 = -1.869681 + c_2 = 2.477258 + c_3 = 0 + if pump_type == 'RO_IS': + c_0 = 0.185777 + c_1 = -1.584001 + c_2 = 9.184983 + c_3 = 0 + head = ( + c_0 + c_1 * (flow) + c_2 * (flow) ** 2 + c_3 * (flow) ** 3 + ) + return head + + +def max_flows(flow,pump_type): + """Helper function to define maximum flow for given flowrate along the maximum pump capacity across different speeds.""" + # Flow must be in units of scaled gpm. Head is in scaled ft. + if pump_type == 'RO_feed': + d_0 = 0.19338 + d_1 = -0.21424 + d_2 = 0.23183 + d_3 = -0.00942 + if pump_type == 'RO_IS': + d_0 = 1600 + d_1 = 0 + d_2 = 0 + d_3 = 0 + head = d_0 + d_1 * (flow) + d_2 * (flow) ** 2 + d_3 * (flow) ** 3 + return head + + +# Select Types +pump_type = 'RO_feed' +fittype = "rbf" + +# load data +# filename = f"{pump_type}_pump_eff_curve_data.csv" +filename = "RO_feed_aff_laws_surr_3.csv" +pump_data = pd.read_csv( + os.path.join(os.path.dirname(__file__), filename) +) +input_labels = ["Flow (gpm)", "Head (ft)"] +output_labels = ["total_efficiency"] +input_data = pump_data[input_labels] +output_data = pump_data[output_labels] + +# Scale Data +Data_scaled = pump_data +Data_scaled[output_labels[0]] = pump_data[output_labels[0]].mul(1e-2) # Efficiency (%) +Data_scaled[input_labels[0]] = pump_data[input_labels[0]].mul(1e-3) # Flow (gpm) +Data_scaled[input_labels[1]] = pump_data[input_labels[1]].mul(1e-2) # Head (ft) +min_flow = min(Data_scaled[input_labels[0]]) +max_flow = max(Data_scaled[input_labels[0]]) +min_head = min(Data_scaled[input_labels[1]]) +max_head = max(Data_scaled[input_labels[1]]) +input_bounds = { + input_labels[0]: (min_flow, max_flow), + input_labels[1]: (min_head, max_head), +} + +# Create Surrogate Type and trainer +# Create the trainer + +if fittype == "poly": + trainer = PysmoPolyTrainer( + input_labels=input_labels, + output_labels=output_labels, + training_dataframe=Data_scaled, # NOT spliting data for training and validation because there's not that much data to begin with. +) + trainer.config.maximum_polynomial_order = 3 + +if fittype == "rbf": + trainer = PysmoRBFTrainer( + input_labels=input_labels, + output_labels=output_labels, + training_dataframe=Data_scaled, + basis_function="cubic", + ) + +# Train Data +trained_surr = trainer.train_surrogate() + +# Create Surrogate Model +Surrogate = PysmoSurrogate( + trained_surr, + input_labels, + output_labels, + input_bounds, +) + +# Display Results of surrogate +m = ConcreteModel() +m.flowrate = Var() +m.head = Var() +m.eff = Var() + +m.surrogate_blk = SurrogateBlock(concrete=True) +m.surrogate = Surrogate +m.surrogate_blk.build_model( + m.surrogate, + input_vars=[m.flowrate, m.head], + output_vars=[m.eff], +) +m.surrogate_blk.pysmo_constraint.display() # display() + +# minx, maxx = m.flowrate.bounds +# miny, maxy = m.power.bounds + +num_points = 30 +x_vals = np.linspace(min_flow, max_flow, num=num_points) +y_vals = np.linspace(min_head, max_head, num=num_points) +z_vals = np.zeros((num_points, num_points)) +solver = get_solver() +for i in range(num_points): + for j in range(num_points): + # Filter out infeasible points + if ( + y_vals[j] > head_limit(x_vals[i],pump_type) + or y_vals[j] > MCSF(x_vals[i],pump_type) + # or y_vals[j] < min_head_limit(x_vals[i],pump_type) + or y_vals[j] < max_flows(x_vals[i],pump_type) + ): + z_vals[i, j] = np.nan + continue + m.flowrate.fix(x_vals[i]) + m.head.fix(y_vals[j]) + calculate_variable_from_constraint( + m.eff, m.surrogate_blk.pysmo_constraint["total_efficiency"] + ) + # print(m.flowrate.value, m.head.value) + # print(value(m.eff)) + z_vals[i, j] = value(m.eff) +# Rescale the outputs +flows = x_vals * 1e3 # gpm +heads = y_vals * 1e2 # ft +efficiencies = z_vals * 1e2 # % + +# Create Meshgrid to plot contour +X, Y = np.meshgrid(flows, heads) +Z = efficiencies.T # Transpose Z to match X and Y dimensions + +fig1 = plt.contourf( + X, + Y, + Z, + levels=25, + cmap="viridis", +) +plt.colorbar(label="Total Efficiency (%)") +# Add countour lines for specific efficiencies in the orginial plot +if pump_type == 'RO_feed': + plt.xlim(0, 4500) + plt.ylim(0, 400) + levels=[59,68,75,80,83] + labels=["59%","68%","75%","80%","83%"] + +elif pump_type == 'RO_IS': + plt.xlim(0, 1600) + plt.ylim(0, 150) + levels=[52,62,71,77,81,82] + labels=["52%","62%","71%","77%","81%","82%"] + +plt.xlabel("Flow (gpm)") +plt.ylabel("Head (ft)") +plt.title(f"{pump_type.replace('_', ' ').title()} Pump Efficiency Contour Plot") + +# Test value at 80% speed point +m.flowrate.fix(2778/1e3) +m.head.fix(150.8/1e2) +calculate_variable_from_constraint( + m.eff, m.surrogate_blk.pysmo_constraint["total_efficiency"] +) +print(m.flowrate.value, m.head.value) +print(value(m.eff)) + +# BELOW CODE WON'T WORK ANYMORE. WE ONLY HAVE A FEW ACTUAL DATA POINTS (100% CURVE, PLUS ONE 80% SPEED POINT) +# # Data points vs. surrogate outputs +X_data = pump_data["Flow (gpm)"] * 1e3 +Y_data = pump_data["Head (ft)"] * 1e2 +Z_data = pump_data["total_efficiency"] * 1e2 +plt.scatter(X_data, Y_data, color="red", s=10) + +# for l in levels: +# X_points = X_data[Z_data == l] +# Y_points = Y_data[Z_data == l] +# plt.scatter(X_points, Y_points, color="red", s=10, label=f"{l}%") +# plt.text(X_points.iloc[0]+20,Y_points.iloc[0]+3, f"{l}%",color="red") +# plt.show() + +# Data Validation Scatter plot + +# Z_modeled = pd.DataFrame() + +# for i in range(len(X_data)): +# m.flowrate.fix(X_data[i]/1e3) +# m.head.fix(Y_data[i]/1e2) +# calculate_variable_from_constraint(m.eff, m.surrogate_blk.pysmo_constraint["efficiency"]) +# Z_modeled.at[i, "efficiency_modeled"] = value(m.eff)*1e2 + +# # # Create 3D scatter plot +# fig2 = plt.figure(figsize=(10, 8)) +# ax2 = fig2.add_subplot(111, projection="3d") + +# Flatten the data for scatter plot +# X_flat = X.flatten() +# Y_flat = Y.flatten() +# Z_flat = Z.flatten() + +# Remove NaN values for cleaner plot +# mask = ~np.isnan(Z_flat) +# X_clean = X_flat[mask] +# Y_clean = Y_flat[mask] +# Z_clean = Z_flat[mask] + +# # Create scatter plot with color mapping +# scatter = ax2.scatter(X_data, Y_data, Z_data, color='red', s=50, alpha=0.6) + +# # Plot actual data points +# ax2.scatter(X_data,Y_data,Z_modeled["efficiency_modeled"], color="black", s=20, label="Modeled Points") + +# ax2.set_xlabel("Flow (gpm)") +# ax2.set_ylabel("Head (ft)") +# ax2.set_zlabel("Efficiency (%)") +# ax2.set_title("RO Feed Pump Efficiency 3D Scatter Plot") +# ax2.set_xlim(0, 4500) +# ax2.set_ylim(0, 400) +# plt.show() + + +# Get the absolute path of the current script +current_script_path = os.path.abspath(__file__) +# Get the directory containing the current script +current_directory = os.path.dirname(current_script_path) +surr_name = f"{pump_type}_total_efficiency_rbf_fit.json" +Surrogate.save_to_file(os.path.join(current_directory, surr_name), overwrite=True) diff --git a/src/wrd/surrogate_models/pump_curve_data.py b/src/wrd/surrogate_models/pump_curve_data.py new file mode 100644 index 00000000..35b2373e --- /dev/null +++ b/src/wrd/surrogate_models/pump_curve_data.py @@ -0,0 +1,34 @@ +import pandas as pd +import json + +# Load the JSON file as a dictionary first +with open(r'C:\Users\rchurchi\flex_desal\src\wrd\surrogate_models\RO_IS_pump_curves.json', 'r') as f: + data = json.load(f) + +datasets = data['datasetColl'] + +# Convert specific datasets to DataFrames +eff_data = pd.DataFrame() +head_data = pd.DataFrame() +for dataset in datasets: + name = dataset['name'] + df = pd.DataFrame(dataset['data']) + try: + eff = int(name[:2]) # Extract first 2 characters and convert to int + df['efficiency'] = eff # add efficiency column with every value the same + df['Flow (gpm)'] = df['value'].apply(lambda x: x[0]) + df['Head (ft)'] = df['value'].apply(lambda x: x[1]) + df.drop(columns=['x','y','value'], inplace=True) + eff_data = pd.concat([eff_data, df], ignore_index=True) + except: + df['Flow (gpm)'] = df['value'].apply(lambda x: x[0]) + df[name+' (ft)'] = df['value'].apply(lambda x: x[1]) + df.drop(columns=['x','y','value'], inplace=True) + head_data = pd.concat([head_data, df], ignore_index=True) + + +print(eff_data.head()) +eff_data.to_csv(r'C:\Users\rchurchi\flex_desal\src\wrd\surrogate_models\RO_IS_pump_eff_curve_data.csv', index=False) + +print(head_data.head()) +head_data.to_csv(r'C:\Users\rchurchi\flex_desal\src\wrd\surrogate_models\RO_IS_pump_head_curves_data.csv', index=False) \ No newline at end of file diff --git a/src/wrd/surrogate_models/temp_surrogate.py b/src/wrd/surrogate_models/temp_surrogate.py new file mode 100644 index 00000000..1bad259a --- /dev/null +++ b/src/wrd/surrogate_models/temp_surrogate.py @@ -0,0 +1,47 @@ +import pandas as pd +import numpy as np +import os +from idaes.core.surrogate.pysmo_surrogate import ( + PysmoRBFTrainer, + PysmoPolyTrainer, + PysmoSurrogate, +) + +# load data +pump_data = pd.read_csv(os.path.join(os.path.dirname(__file__), 'RO_IS_pump_head_curves_data.csv')) +input_labels = ['Flow (gpm)'] +output_labels= ['MCSF (ft)'] +pump_data.dropna(inplace=True,subset=output_labels) +pump_data.drop(columns= ['Head 100% Speed (ft)','Min Head (ft)'],inplace=True) +input_data = pump_data[input_labels] +output_data = pump_data[output_labels] + +# Scale Data +Data_scaled = pump_data +Data_scaled[output_labels[0]] = pump_data[output_labels[0]].mul(1e-2) # head (ft) +Data_scaled[input_labels[0]] = pump_data[input_labels[0]].mul(1e-3) # Flow (gpm) +min_flow = min(Data_scaled[input_labels[0]]) +max_flow = max(Data_scaled[input_labels[0]]) +min_head = min(Data_scaled[output_labels[0]]) +max_head = max(Data_scaled[output_labels[0]]) +input_bounds = { + input_labels[0]: (min_flow, max_flow), +} + +# Create Surrogate Type and trainer +trainer = PysmoPolyTrainer( + input_labels=input_labels, + output_labels=output_labels, + training_dataframe=Data_scaled, # NOT spliting data for training and validation because there's not that much data to begin with. + ) +trainer.config.maximum_polynomial_order = 2 + # Train Data +trained_surr = trainer.train_surrogate() + +# Create Surrogate Model +Surrogate = PysmoSurrogate( + trained_surr, + input_labels, + output_labels, + input_bounds, +) \ No newline at end of file