Description
Suppose that we have a container with a hole and a time varying inflow. What will happen if we catch the outflow of this container in another container? And this output in another one. Let’s generalize. We have a cascade of N containers where the inflow of container i is the outflow of container i-1 for i =2,.. N. We ignore the delay caused by the distance between the containers, and we assume that the geometry of all containers is the same.
More information
Consult the MyM Language Lutorial for a more eleborate explanation of the Cascade model.
A run time version of this model is distributed with the MyM simulation software.
Model source
!
! A cascade of containers
!
t.min = 0;
t.max = 10;
t.step = 1.0;
t.sample = 1.0;
t.method = RK2;
module main
begin
const g = 9.81, C = 0.62;
real w_0 = 10, A = 2.0,
d = 0.0, s = 1.25;
const N = 5; ! number of containers;
real f_in(t) = [0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0,
6, 0, 7, 0, 8, 0, 9, 0, 10, 0];
! For each container:
real w[N](t); ! volume,
real h[N](t); ! water level,
real f_out[N](t); ! outflow, and
real v[N](t); ! velocity at hole.
real w_tot(t); ! total volume
v(t) = sqrt(2.0*g*max(h-d, 0));
f_out(t) = C*s*v;
h = w/max(A,0.001);
w[1] = integ(f_in - f_out[1], w_0);
w[i] = integ(f_out[i-1] - f_out[i], 0), i = 2 to N;
w_tot = lsum(i = 1 to N, w[i]);
end;