<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Pump variable modeling in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/638450#M83626</link>
    <description>&lt;P&gt;Hello ih,&amp;nbsp;&lt;/P&gt;&lt;P&gt;The pump speeds are not continuously variable, they are discreet levels, each will have its own power and flow, and 2 or 3 speeds must be chosen for a days run cycle.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using the lowest RPM setting all the time is tempting, but there is a need to run devices such as salt generators, vacuum, solar heat, etc on most pools that introduces a need to have at least 1 of the settings at a minimum of 2500 RPM for at least 2-4 hours per day. It leads to a low, medium, high RPM scenario (or at least a low + high) to ensure enough volume and accessory capability.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I ran the scripts you provided, thanks for that. Should we be modeling this data to have 3 columns each for Speed 1, Speed 2, Speed 3, and then 3 each for the corresponding Power 1,2,3 and Flow 1,2,3, levels; the total flow and total power for the day are calculated based on sub-levels of power and flow? When I am seeing only 1 speed in the prediction profiler I am getting confused I guess.&lt;/P&gt;</description>
    <pubDate>Sat, 03 Jun 2023 02:23:17 GMT</pubDate>
    <dc:creator>LearningSigma</dc:creator>
    <dc:date>2023-06-03T02:23:17Z</dc:date>
    <item>
      <title>Pump variable modeling</title>
      <link>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/635640#M83379</link>
      <description>&lt;P&gt;Hello, I am trying to model variable speed pool pump parameters: runtimes, speeds, and flow rates in order to minimize my power bill, but also achieve decent flow. I've hit a stumbling block with modeling the data.&lt;/P&gt;&lt;P&gt;Pump constraints: Max 24 hr run duration, Max of 3 speeds can be used per day, Speed increments are 2 hr blocks (0,2,4,6...24)&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example Pump Data:&lt;/P&gt;&lt;P&gt;RPM Flow Power&lt;/P&gt;&lt;P&gt;500 17 63&lt;BR /&gt;750 24 92&lt;BR /&gt;1000 29 132&lt;BR /&gt;1250 35 185&lt;BR /&gt;1500 41 260&lt;BR /&gt;1750 50 370&lt;BR /&gt;2000 57 515&lt;BR /&gt;2250 65 700&lt;BR /&gt;2500 75 926&lt;BR /&gt;2750 79 1210&lt;BR /&gt;3000 90 1540&lt;BR /&gt;3250 98 1920&lt;BR /&gt;3450 107 2290&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What is the best way to model this in JMP 13? I&lt;/P&gt;</description>
      <pubDate>Thu, 08 Jun 2023 21:15:16 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/635640#M83379</guid>
      <dc:creator>LearningSigma</dc:creator>
      <dc:date>2023-06-08T21:15:16Z</dc:date>
    </item>
    <item>
      <title>Re: Pump variable modeling</title>
      <link>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/635695#M83384</link>
      <description>&lt;P&gt;Please attach your data as a JMP data table in the future. I spent time copying it to a JMP data table as a single character data column and then split it into three numeric data columns.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The simplest model is usually the best. You are interested in predicting the effect, not in explaining the effect. I plotted the data first.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dist.PNG" style="width: 789px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/53133iD8C93BC6225880A2/image-size/large?v=v2&amp;amp;px=999" role="button" title="dist.PNG" alt="dist.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="multi.PNG" style="width: 555px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/53134iF07BE75C5A03AEAA/image-size/large?v=v2&amp;amp;px=999" role="button" title="multi.PNG" alt="multi.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Speed and Pump Flow are highly, linearly correlated, so both of them cannot be used as predictors in any type of model. I chose Speed as the predictor of Power. The relationship is curvilinear.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="curve.PNG" style="width: 701px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/53135i9F37C1E394A0FEAE/image-size/large?v=v2&amp;amp;px=999" role="button" title="curve.PNG" alt="curve.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Several models were fit to the data. The Cubic Polynomial model is the best by far based on AICc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I attached the JMP data table with your data and several saved table scripts to reproduce my analysis.&lt;/P&gt;</description>
      <pubDate>Thu, 25 May 2023 17:52:28 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/635695#M83384</guid>
      <dc:creator>Mark_Bailey</dc:creator>
      <dc:date>2023-05-25T17:52:28Z</dc:date>
    </item>
    <item>
      <title>Re: Pump variable modeling</title>
      <link>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/635713#M83388</link>
      <description>&lt;P&gt;Hi Mark,&lt;/P&gt;&lt;P&gt;Thanks for this part of the answer. How can we take this data and make an interactive model simulating 1-3 speeds / 1-3 run times / with a goal of 43000 gal of total volume, but optimize the energy use and volume moved in a day?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Goals: minimize energy use, but using at least 1 speed of the 3 speeds &amp;gt;=2500 (can use 2 other speeds/run times if needed), move at least 43000 gal in a day.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;At a cost of $0.13/kw for example:&lt;/P&gt;&lt;P&gt;2750 RPM @4 Hrs = $0.84 and 18960 gal&lt;/P&gt;&lt;P&gt;1500 RPM&amp;nbsp;@4 Hrs = $0.18 and 9840 gal&lt;/P&gt;&lt;P&gt;1000 RPM&amp;nbsp;@8 Hrs = $0.18 and 13920 gal&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 May 2023 18:13:04 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/635713#M83388</guid>
      <dc:creator>LearningSigma</dc:creator>
      <dc:date>2023-05-25T18:13:04Z</dc:date>
    </item>
    <item>
      <title>Re: Pump variable modeling</title>
      <link>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/635714#M83389</link>
      <description>&lt;P&gt;These 3 runs combined are the daily power of $1.2 and 42720 gal of flow&lt;/P&gt;</description>
      <pubDate>Thu, 25 May 2023 18:13:58 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/635714#M83389</guid>
      <dc:creator>LearningSigma</dc:creator>
      <dc:date>2023-05-25T18:13:58Z</dc:date>
    </item>
    <item>
      <title>Re: Pump variable modeling</title>
      <link>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/636028#M83408</link>
      <description>&lt;P&gt;Run the selected model and save it as a column formula. Then open the Profiler with the column formula. The Profiler is the easiest way to evaluate different settings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You need a column for Run Time and another for Cost. You can add Cost as a second response, or maybe it is the primary response.&lt;/P&gt;</description>
      <pubDate>Fri, 26 May 2023 13:04:14 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/636028#M83408</guid>
      <dc:creator>Mark_Bailey</dc:creator>
      <dc:date>2023-05-26T13:04:14Z</dc:date>
    </item>
    <item>
      <title>Re: Pump variable modeling</title>
      <link>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/637160#M83496</link>
      <description>&lt;P&gt;Is the pump speed ordinal, or can you set something in between those values?&amp;nbsp; If it is continuous then it seems the optimal value would be as slow as possible as the specific power always decreases with lower flow.&amp;nbsp; You could find that optimal flow given your constraints using the profiler as&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/5358"&gt;@Mark_Bailey&lt;/a&gt;&amp;nbsp;suggests.&amp;nbsp; Here is how I did it, run the script below to recreate the table with saved scripts.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Calculate specific power in a new column, or the power per unit of flow&lt;/LI&gt;
&lt;LI&gt;Calculate flow in gal/day in a new column (I assumed the flow is gpm)&lt;/LI&gt;
&lt;LI&gt;Model the flow based on the pump speed. I used a neural network because it captured the visual curve in the data while giving smooth response between points and without responding to what looks like noise around 2500-3000 RPM, save the profiler prediction formula. (Script 1)&lt;/LI&gt;
&lt;LI&gt;Model the specific power, again a neural networked and saved the profiler formula (Script 2)&lt;/LI&gt;
&lt;LI&gt;Check the predicted versus actual values for reasonableness (Script 3)&lt;/LI&gt;
&lt;LI&gt;Use column properties to set a lower spec on the flow and a a response limit to minimize specific power&lt;/LI&gt;
&lt;LI&gt;Found optimal conditions using the profiler, using both predicted columns in the y and rpm in the X.&amp;nbsp; Used Maximize Desirability to find the optimal pump setting. (Script 5)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ih_0-1685482391861.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/53268iE1E51C3A25F66AA1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ih_0-1685482391861.png" alt="ih_0-1685482391861.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;New Table( "Maximize Pump",
	Add Rows( 13 ),
	New Script(
		"1 Model Flow (gal/day) by RPM with NN",
		Neural(
			Y( :"Flow (gal/day)"n ),
			X( :RPM ),
			Informative Missing( 0 ),
			Validation Method( "Holdback", 0.3333 ),
			Fit(
				NTanH( 3 ),
				Profiler( 1, Term Value( RPM( 2637, Lock( 0 ), Show( 1 ) ) ) )
			)
		)
	),
	New Script(
		"2 Model Specific Power by RPM with NN",
		Neural(
			Y( :Specific Power ),
			X( :RPM ),
			Informative Missing( 0 ),
			Validation Method( "Holdback", 0.3333 ),
			Fit( NTanH( 3 ) )
		)
	),
	New Script(
		"3 Check for reasonable models using Graph Builder",
		Graph Builder(
			Size( 534, 456 ),
			Show Control Panel( 0 ),
			Variables(
				X( :RPM ),
				Y( :"Predicted Flow (gal/day)"n ),
				Y( :"Flow (gal/day)"n, Position( 1 ) ),
				Y( :Predicted Specific Power ),
				Y( :Specific Power, Position( 2 ) )
			),
			Elements(
				Position( 1, 1 ),
				Points( X, Y( 2 ), Legend( 3 ) ),
				Formula( X, Y( 1 ), Legend( 5 ) )
			),
			Elements(
				Position( 1, 2 ),
				Points( X, Y( 2 ), Legend( 6 ) ),
				Formula( X, Y( 1 ), Legend( 7 ) )
			),
			SendToReport(
				Dispatch(
					{},
					"graph title",
					TextEditBox,
					{Set Text( "Predicted and Actual Flow and Power per Flow" )}
				)
			)
		)
	),
	New Script( "4 Added spec and desirability function", . ),
	New Script(
		"5 Optimize with the Profiler",
		Profiler(
			Y( :"Predicted Flow (gal/day)"n, :Predicted Specific Power ),
			Profiler(
				1,
				Desirability Functions( 1 ),
				"Predicted Flow (gal/day)"n &amp;lt;&amp;lt;
				Response Limits(
					{Lower( 43000, 0.066 ), Middle( 43005, 0.5 ),
					Upper( 43010, 0.9819 ), Goal( "Maximize" ), Importance( 1 )}
				),
				Term Value( RPM( 1039.13398714365, Lock( 0 ), Show( 1 ) ) )
			)
		)
	),
	New Column( "RPM",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values(
			[500, 750, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250,
			3450]
		)
	),
	New Column( "Flow",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values( [17, 24, 29, 35, 41, 50, 57, 65, 75, 79, 90, 98, 107] )
	),
	New Column( "Power",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values(
			[63, 92, 132, 185, 260, 370, 515, 700, 926, 1210, 1540, 1920, 2290]
		)
	),
	New Column( "Specific Power",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Formula( :Power / :Flow )
	),
	New Column( "Flow (gal/day)",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Formula( :Flow * (60 * 24) )
	),
	New Column( "Predicted Flow (gal/day)",
		Numeric,
		"Continuous",
		Format( "Fixed Dec", 12, 1 ),
		Set Property( "Notes", "Model NTanH(3) - Save Profile Formulas" ),
		Formula(
			(-4986263.94864684) + 12250231.3478716 *
			TanH( 0.5 * ((-0.195770498135355) + 0.00013382112616832 * :RPM) )
			+54339329.8694451 * TanH(
				0.5 * (0.227571869547046 + -0.0000279518693191086 * :RPM)
			) + -40377.1104869192 * TanH(
				0.5 * ((-1.66726266024003) + 0.00154547501582029 * :RPM)
			)
		),
		Set Property(
			"Predicting",
			{:"Flow (gal/day)"n, Creator( "Neural" ), Std Dev( 1578.4156263483 )}
		),
		Set Property( "Expand Intermediates", 1 ),
		Set Property( "Spec Limits", {LSL( 43000 ), Show Limits( 0 )} )
	),
	New Column( "Predicted Specific Power",
		Numeric,
		"Continuous",
		Format( "Fixed Dec", 12, 2 ),
		Set Property( "Notes", "Model NTanH(3) - Save Profile Formulas" ),
		Formula(
			99.4343260017528 + 5.9968762233528 * TanH(
				0.5 * ((-2.70046669266303) + 0.00107500481416692 * :RPM)
			) + -70.0855096923245 * TanH(
				0.5 * (0.536433235085508 + 0.000419373832905438 * :RPM)
			) + 191.605900251259 * TanH(
				0.5 * ((-0.790641306358042) + 0.000145038719985201 * :RPM)
			)
		),
		Set Property(
			"Predicting",
			{:Specific Power, Creator( "Neural" ), Std Dev( 0.225420351211502 )}
		),
		Set Property( "Expand Intermediates", 1 ),
		Set Property(
			"Response Limits",
			{Goal( Minimize ), Importance( 1 ), Show Limits( 0 )}
		),
		Set Selected
	)
);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI-SPOILER&gt;</description>
      <pubDate>Tue, 30 May 2023 21:35:35 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/637160#M83496</guid>
      <dc:creator>ih</dc:creator>
      <dc:date>2023-05-30T21:35:35Z</dc:date>
    </item>
    <item>
      <title>Re: Pump variable modeling</title>
      <link>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/638450#M83626</link>
      <description>&lt;P&gt;Hello ih,&amp;nbsp;&lt;/P&gt;&lt;P&gt;The pump speeds are not continuously variable, they are discreet levels, each will have its own power and flow, and 2 or 3 speeds must be chosen for a days run cycle.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using the lowest RPM setting all the time is tempting, but there is a need to run devices such as salt generators, vacuum, solar heat, etc on most pools that introduces a need to have at least 1 of the settings at a minimum of 2500 RPM for at least 2-4 hours per day. It leads to a low, medium, high RPM scenario (or at least a low + high) to ensure enough volume and accessory capability.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I ran the scripts you provided, thanks for that. Should we be modeling this data to have 3 columns each for Speed 1, Speed 2, Speed 3, and then 3 each for the corresponding Power 1,2,3 and Flow 1,2,3, levels; the total flow and total power for the day are calculated based on sub-levels of power and flow? When I am seeing only 1 speed in the prediction profiler I am getting confused I guess.&lt;/P&gt;</description>
      <pubDate>Sat, 03 Jun 2023 02:23:17 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Pump-variable-modeling/m-p/638450#M83626</guid>
      <dc:creator>LearningSigma</dc:creator>
      <dc:date>2023-06-03T02:23:17Z</dc:date>
    </item>
  </channel>
</rss>

