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 <<
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
)
);