Benthic Larval In-Situ Sampler (BLISS) Pump Testing

P. McGill
9Oct19 - Tests with pump but no filters
13Aug20 - Tests with pump and filters in final configuration

Tests with pump but no filters

Enter the data from tank testing of the pump. Each measurement is {RPM, flow, power}.

data={{0,0,1.9},{100,20,3.0},{200,48,5.4},{300,74,10.9},{400,97,21},{500,127,38},{600,160,64},{700,188,103},{800,216,160}};

MatrixForm@data

Note that the pump won’t exceed 800 RPM with a 24 V power supply.

Extract just the pump power as a function of flow and plot the result.

pwrAtFlow=data[[All,{2,3}]]

plot=ListPlot[pwrAtFlow,PlotStyle->Red,GridLines->Automatic,Frame->True,FrameLabel->{{"Power (W)",None},{"Flow (l/min)","BLISS Larval Pump"}},ImageSize->Large]

Fit a cubic to the data and plot it with the data.

cubic=Fit[pwrAtFlow,{1,flow,(flow^2),(flow^3)},flow]

Show[plot,Plot[cubic,{flow,0,216}]]

Find the total energy in the 24 V, 40 A-h battery. Assume 80% depth of discharge to derate for low temperature and so the battery will last more than a couple of deployments.

battEnergy=24 40 0.8

Define a function to calculate the total volume pumped as a function of the battery energy and flow rate.

totalVol[energy_,flow_]:=(energy/cubic) flow 60

Plot the total volume pumped as a function of the chosen flow rate.

Plot[totalVol[battEnergy,flow],{flow,0,216},GridLines->Automatic,Frame->True,FrameLabel->{{"Total Volume (l)",None},{"Flow (l/min)","BLISS Larval Pump Total Volume\rfor 960 W-hr Battery"}},ImageSize->Large]

Find the flow rate at the maximum total flow.

FindMaximum[totalVol[battEnergy,flow],{flow,0,216}]

Find how many hours it will take to pump the maximum volume.

(battEnergy/(cubic/.flow->50))

%/24

Account for the power consumed by the Raspberry Pi and other loads, i.e. the hotel load. With the Raspberry Pi, relay board, and motor controller, this was measured to be 6.5 W.

hotelPwr=6.5

totalVol2[energy_,hotel_,flow_]:=(energy/(cubic+hotel)) 60 flow

Plot[totalVol2[battEnergy,hotelPwr,flow],{flow,0,216},GridLines->Automatic,Frame->True,FrameLabel->{{"Total Volume (l)",None},{"Flow (l/min)","BLISS Larval Pump Total Volume\rfor 960 W-hr Battery with 1.5 W Hotel Load"}},ImageSize->Large]

Find the flow rate at the maximum total volume.

FindMaximum[totalVol2[battEnergy,hotelPwr,flow],{flow,0,216}]

Find how many hours it will take to pump the maximum volume, accounting for the hotel load .

(battEnergy/(hotelPwr+cubic/.flow->58.6))

Plot a dynamic graph that allows you to vary the hotel load to see how it affects the total volume pumped. This graph isn’t dynamic in the PDF version of this document.

Manipulate[Plot[totalVol2[battEnergy,hotel,flow],{flow,0,216},GridLines->Automatic,PlotRange->{{0,216},{0,400000}},Frame->True,FrameLabel->{{"Total Volume (l)",None},{"Flow (l/min)","BLISS Larval Pump Total Volume\rfor 960 W-hr Battery at 80% DOD with Variable Hotel Load"}},ImageSize->Large],{{hotel,6.5},0,10}]

Due to cruise logistics, we may have only two days per deployment to run the BLISS system. Find the total volume pumped in two days, accounting for the hotel load. First find how much power is available for pumping.

pumpPwr=(battEnergy/48)-hotelPwr

Find the flow rate at the given power.

flow48=Solve[cubic==13.5,flow]

Note that only the third solution is real, which is the one we want to use.

Find the total volume pumped in two days.

48 60 flow48[[3,1,2]]

Key points:
• We can pump hundreds of thousands of liters with one battery in a few days
• The optimum pumping speed depends on the total load on the battery
• We’ll have to measure the flow with the carousel and filters in place as they’ll surely affect the flow
•  The restriction caused by the filters will reduce the time needed to pump the maximum volume

Tests with pump and filters in final configuration

Enter the data from tank testing of the pump and filters. Both 63 and 100 µm filters were tested. Each measurement is {speed (RPM), flow (L/min), power (W)}. Hotel load is the power consumed with the Elmo pump motor drive enabled but with the motor turning at 0 RPM, and includes the Raspberry Pi and relay board; all the other power values include the hotel load plus the power needed to spin the impeller at the given RPM.

data63={{0,0,5.6},{150,17,8.68},{200,27,11.2},{300,45,20.44},{400,60,39.2},{450,68,55.44}};

MatrixForm@data63

data100={{0,0,5.6},{150,19,8.68},{200,27,11.2},{300,45,20.44},{400,64,38.92},{450,75,55.44}};

MatrixForm@data100

Extract just the system power as a function of flow and plot the result.

pwrAtFlow63=data63[[All,{2,3}]]

pwrAtFlow100=data100[[All,{2,3}]]

plot=ListPlot[{pwrAtFlow63,pwrAtFlow100},PlotStyle->{Red,Blue},GridLines->Automatic,Frame->True,FrameLabel->{{"Power (W)",None},{"Flow (L/min)","BLISS Larval Pump"}},PlotLegends->{"63 µm","100 µm"},ImageSize->Large]

Fit cubics to the data and plot them with the data.

cubic63=Fit[pwrAtFlow63,{1,flow,(flow^2),(flow^3)},flow]

cubic100=Fit[pwrAtFlow100,{1,flow,(flow^2),(flow^3)},flow]

Show[plot,Plot[cubic63,{flow,0,68},PlotStyle->{Thick,LightRed}],Plot[cubic100,{flow,0,75},PlotStyle->{Thick,LightBlue}],ImageSize->Large]

Define functions to calculate the total volume pumped as a function of the battery energy and flow rate.

totalVol63[energy_,flow_]:=(energy/cubic63) flow 60;
totalVol100[energy_,flow_]:=(energy/cubic100) flow 60;

Plot[{totalVol63[battEnergy,flow],totalVol100[battEnergy,flow]},{flow,0,75},GridLines->Automatic,PlotStyle->{Red,Blue},Frame->True,FrameLabel->{{"Total Volume (L)",None},{"Flow Rate (L/min)","BLISS Larval Pump Total Volume\rfor 960 W-hr Battery at 80% DOD"}},PlotLegends->{"63 µm","100 µm"},ImageSize->Large]

Find the flow rates at the maximum total flow.

max63=FindMaximum[totalVol63[battEnergy,flow],{flow,0,75}]

max100=FindMaximum[totalVol100[battEnergy,flow],{flow,0,75}]

The two optimal flow rates are so close that we’ll just run both filters at the optimal rate for the 63 µm filter.

Find how many hours it will take to pump the maximum volume .

(battEnergy/(cubic63/.flow->max63[[2,1,2]]))

Due to cruise logistics, we  have only 24 hours to run the BLISS system. Find the total volume pumped in one day, accounting for this constraint. First find how many watts will drain the battery in 24 hours.

pwr24=(battEnergy/24)

Find the flow rate at the given power.

flow63=Solve[cubic63==pwr24,flow][[3,1,2]]

Find the total volume pumped in one day.

24 60 flow63

Find the RPM setting that will achieve this flow rate.

flowAtRPM63=data63[[All,{1,2}]]

cubicRPMvsFlow63=Fit[flowAtRPM63,{1,rpm,(rpm^2),(rpm^3)},rpm]

Show[ListPlot[flowAtRPM63,Frame->True,GridLines->Automatic,FrameLabel->{{"Flow Rate (L/min)",None},{"Impeller Speed (RPM)","BLISS Larval Pump Flow Rate\ras a function of Impeller Speed"}}],Plot[cubicRPMvsFlow63,{rpm,0,450},PlotStyle->{Thick,LightRed}],ImageSize->Large]

rpm63=Solve[cubicRPMvsFlow63==flow63&&0<rpm<450,rpm]