Initial conditions

(Subscript[m, m])=1150000;
(Subscript[m, BC])=100000;
(Subscript[ρ, w])=1027;
(Subscript[V, w1])=100;
(Subscript[V, w2])=500;
(Subscript[V, w3])=1069.7;
g=9.81;
(Subscript[V, BC])=1069.7;
(Subscript[V, m])=147.44;
(Subscript[C, D])=1.05;
A=44 33;
(Subscript[Q, w1])=10;
(Subscript[Q, w2])=50;
(Subscript[Q, w3])=100;

Installation issues

Without pumps

a1=((Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, w1]))g-(Subscript[ρ, w]) g((Subscript[V, m])+(Subscript[V, BC]));
a2=((Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, w2]))g-(Subscript[ρ, w]) g((Subscript[V, m])+(Subscript[V, BC]));
a3=((Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, w3]))g-(Subscript[ρ, w]) g((Subscript[V, m])+(Subscript[V, BC]));
b=0.5 (Subscript[ρ, w]) (Subscript[C, D]) A;
c1=(Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, w1]);
c2=(Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, w2]);
c3=(Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, w3]);

s1=NDSolve[{a1-b v[x]v[x]==c1 v[x] v'[x],v[0]==0.01},v,{x,0,200}];
s2=NDSolve[{a2-b v[x]v[x]==c2 v[x] v'[x],v[0]==0.01},v,{x,0,200}];
s3=NDSolve[{a3-b v[x]v[x]==c3 v[x] v'[x],v[0]==0.01},v,{x,0,200}];

gr1=Rotate[Plot[{Evaluate[v[x]/.s1],Evaluate[v[x]/.s2],Evaluate[v[x]/.s3]},{x,0,50},PlotRange->All,PlotStyle-> {Thick,Dashed, Red},PlotLegends->{"(Subscript[V, w])=100 (m^3)","(Subscript[V, w])=500 (m^3)","(Subscript[V, w])=1000 (m^3)"},AxesLabel->{"Depth, m","Velocity,\!\(\*FractionBox[\(\(\\ \)\(m\)\), \(s\)]\)"}],0 Degree]

t1=NDSolve[{a1-b v[t]v[t]==c1 v'[t],v[0]==0.01},v,{t,0,200}];
t2=NDSolve[{a2-b v[t]v[t]==c2 v'[t],v[0]==0.01},v,{t,0,200}];
t3=NDSolve[{a3-b v[t]v[t]==c3 v'[t],v[0]==0.01},v,{t,0,200}];
gr2=Rotate[Plot[{Evaluate[v[t]/.t1],Evaluate[v[t]/.t2],Evaluate[v[t]/.t3]},{t,0,10},PlotRange->All,PlotStyle-> {Thick,Dashed, Red},PlotLegends->{"(Subscript[V, w])=100 (m^3)","(Subscript[V, w])=500 (m^3)","(Subscript[V, w])=1000 (m^3)"},AxesLabel->{"Time, sec","Velocity,\!\(\*FractionBox[\(\(\\ \)\(m\)\), \(s\)]\)"}],0 Degree]

d1=NDSolve[{a1-b (((x'[t]))^2)==c1 x''[t],x[0]==0.01,x'[0]==0.01},x,{t,0,200}];
d2=NDSolve[{a2-b (((x'[t]))^2)==c2 x''[t],x[0]==0.01,x'[0]==0.01},x,{t,0,200}];
d3=NDSolve[{a3-b (((x'[t]))^2)==c3 x''[t],x[0]==0.01,x'[0]==0.01},x,{t,0,200}];

gr3=Rotate[Plot[{Evaluate[x[t]/.d1],Evaluate[x[t]/.d2],Evaluate[x[t]/.d3]},{t,0,20},PlotRange->All,PlotStyle-> {Thick,Dashed, Red},PlotLegends->{"(Subscript[V, w])=100 (m^3)","(Subscript[V, w])=500 (m^3)","(Subscript[V, w])=1000 (m^3)"},AxesLabel->{"Time, sec","Displacement, m"}],0 Degree]

With pumps

a11=Piecewise[{{((Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[Q, w1])t)g-(Subscript[ρ, w]) g((Subscript[V, m])+(Subscript[V, BC])),(Subscript[Q, w1])t≤(Subscript[V, BC])},{((Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, BC]))g-(Subscript[ρ, w]) g((Subscript[V, m])+(Subscript[V, BC])),(Subscript[Q, w1])t>(Subscript[V, BC])}}];
a22=Piecewise[{{((Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[Q, w2])t)g-(Subscript[ρ, w]) g((Subscript[V, m])+(Subscript[V, BC])),(Subscript[Q, w2])t≤(Subscript[V, BC])},{((Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, BC]))g-(Subscript[ρ, w]) g((Subscript[V, m])+(Subscript[V, BC])),(Subscript[Q, w2])t>(Subscript[V, BC])}}];
a33=Piecewise[{{((Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[Q, w3])t)g-(Subscript[ρ, w]) g((Subscript[V, m])+(Subscript[V, BC])),(Subscript[Q, w3])t≤(Subscript[V, BC])},{((Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, BC]))g-(Subscript[ρ, w]) g((Subscript[V, m])+(Subscript[V, BC])),(Subscript[Q, w3])t>(Subscript[V, BC])}}];
b=0.5 (Subscript[ρ, w]) (Subscript[C, D]) A;
c11=Piecewise[{{(Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[Q, w1])t,(Subscript[Q, w1])t≤(Subscript[V, BC])},{(Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, BC]),(Subscript[Q, w1])t>(Subscript[V, BC])}}];
c22=Piecewise[{{(Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[Q, w2])t,(Subscript[Q, w2])t≤(Subscript[V, BC])},{(Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, BC]),(Subscript[Q, w2])t>(Subscript[V, BC])}}];
c33=Piecewise[{{(Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[Q, w3])t,(Subscript[Q, w3])t≤(Subscript[V, BC])},{(Subscript[m, m])+(Subscript[m, BC])+(Subscript[ρ, w]) (Subscript[V, BC]),(Subscript[Q, w3])t>(Subscript[V, BC])}}];

t11=NDSolve[{a11-b v[t]v[t]==c11 v'[t],v[0]==0.01},v,{t,0,200}];
t22=NDSolve[{a22-b v[t]v[t]==c22 v'[t],v[0]==0.01},v,{t,0,200}];
t33=NDSolve[{a33-b v[t]v[t]==c33 v'[t],v[0]==0.01},v,{t,0,200}];
gr22=Rotate[Plot[{Evaluate[v[t]/.t11],Evaluate[v[t]/.t22],Evaluate[v[t]/.t33]},{t,0,50},PlotRange->All,PlotStyle-> {Thick,Dashed, Red},PlotLegends->{"(Subscript[V, w])=100 (m^3)","(Subscript[V, w])=500 (m^3)","(Subscript[V, w])=1000 (m^3)"},AxesLabel->{"Time, sec","Velocity,\!\(\*FractionBox[\(\(\\ \)\(m\)\), \(s\)]\)"}],0 Degree]

d11=NDSolve[{a11-b (((x'[t]))^2)==c11 x''[t],x[0]==0.01,x'[0]==0.01},x,{t,0,200}];
d22=NDSolve[{a22-b (((x'[t]))^2)==c22 x''[t],x[0]==0.01,x'[0]==0.01},x,{t,0,200}];
d33=NDSolve[{a33-b (((x'[t]))^2)==c33 x''[t],x[0]==0.01,x'[0]==0.01},x,{t,0,200}];

gr33=Rotate[Plot[{Evaluate[x[t]/.d11],Evaluate[x[t]/.d22],Evaluate[x[t]/.d33]},{t,0,50},PlotRange->All,PlotStyle-> {Thick,Dashed, Red},PlotLegends->{"(Subscript[V, w])=100 (m^3)","(Subscript[V, w])=500 (m^3)","(Subscript[V, w])=1000 (m^3)"},AxesLabel->{"Time, sec","Displacement, m"}],0 Degree]

Comparison

Rotate[Plot[{Evaluate[v[t]/.t3],Evaluate[v[t]/.t11],Evaluate[v[t]/.t22],Evaluate[v[t]/.t33]},{t,0,50},PlotRange->All,PlotStyle-> {Green,Thick,Dashed, Red},PlotLegends->{"Case with immediate filling of tanks","(Subscript[Q, p])=10\!\(\*FractionBox[\(\(\\ \)\*SuperscriptBox[\(m\), \(3\)]\), \(sec\)]\)","(Subscript[Q, p])=50\!\(\*FractionBox[\(\(\\ \)\*SuperscriptBox[\(m\), \(3\)]\), \(sec\)]\)","(Subscript[Q, p])=100\!\(\*FractionBox[\(\(\\ \)\*SuperscriptBox[\(m\), \(3\)]\), \(sec\)]\)"},AxesLabel->{"Time, sec","Velocity,\!\(\*FractionBox[\(\(\\ \)\(m\)\), \(s\)]\)"}],0 Degree]

Rotate[Plot[{Evaluate[x[t]/.d3],Evaluate[x[t]/.d11],Evaluate[x[t]/.d22],Evaluate[x[t]/.d33]},{t,0,50},PlotRange->All,PlotStyle-> {Green,Thick,Dashed, Red},PlotLegends->{"Case with immediate filling of tanks","(Subscript[Q, p])=10\!\(\*FractionBox[\(\(\\ \)\*SuperscriptBox[\(m\), \(3\)]\), \(sec\)]\)","(Subscript[Q, p])=50\!\(\*FractionBox[\(\(\\ \)\*SuperscriptBox[\(m\), \(3\)]\), \(sec\)]\)","(Subscript[Q, p])=100\!\(\*FractionBox[\(\(\\ \)\*SuperscriptBox[\(m\), \(3\)]\), \(sec\)]\)"},AxesLabel->{"Time, sec","Displacement, m"}],0 Degree]

Tranportation issues

Without compensation

(Subscript[v, x1])=1;
(Subscript[v, x2])=3;
(Subscript[v, x3])=5;
(Subscript[A, 1])=5 33+2 10 11;
(Subscript[A, 2])=33 44;
c=100;
(Subscript[Q, p1])=10;
(Subscript[Q, p2])=50;
(Subscript[Q, p3])=100;
g=9.81;
(Subscript[V, BC.w1])=300;
(Subscript[V, BC.w2])=50;
(Subscript[V, BC.w3])=50;
(Subscript[C, D])=1.05;
(Subscript[Q, p])=0;

eq1=NDSolve[{(((z'[t]))^2)==((Subscript[A, 1])/(Subscript[A, 2]))(Subscript[v, x1])((z[t])/(Sqrt[(c^2)-(((z[t]))^2)])),z[0]==30},z,{t,0,200},MaxSteps->10000000,AccuracyGoal->3];
eq2=NDSolve[{(((z'[t]))^2)==((Subscript[A, 1])/(Subscript[A, 2]))(Subscript[v, x2])((z[t])/(Sqrt[(c^2)-(((z[t]))^2)])),z[0]==30},z,{t,0,200},MaxSteps->10000000,AccuracyGoal->3];
eq3=NDSolve[{(((z'[t]))^2)==((Subscript[A, 1])/(Subscript[A, 2]))(Subscript[v, x3])((z[t])/(Sqrt[(c^2)-(((z[t]))^2)])),z[0]==30},z,{t,0,200},MaxSteps->10000000,AccuracyGoal->3];

Rotate[Plot[{Evaluate[z[t]/.eq1],Evaluate[z[t]/.eq2],Evaluate[z[t]/.eq3]},{t,0,200},PlotRange->All,PlotStyle-> {Thick,Dashed, Red},PlotLegends->{"(Subscript[V, w])=100 (m^3)","(Subscript[V, w])=500 (m^3)","(Subscript[V, w])=1000 (m^3)"},AxesLabel->{"Time, sec","Depth, m"},PlotRange->All],0Degree]

(Legended[, (LineLegend["\!\(\*SubscriptBox[\(V\), \(w\)]\)=100 \!\(\*SuperscriptBox[\(m\), \(3\)]\)", "\!\(\*SubscriptBox[\(V\), \(w\)]\)=500 \!\(\*SuperscriptBox[\(m\), \(3\)]\)", "\!\(\*SubscriptBox[\(V\), \(w\)]\)=1000 \!\(\*SuperscriptBox[\(m\), \(3\)]\)"])])