Modelica mode

x
 
1
model BouncingBall
2
  parameter Real e = 0.7;
3
  parameter Real g = 9.81;
4
  Real h(start=1);
5
  Real v;
6
  Boolean flying(start=true);
7
  Boolean impact;
8
  Real v_new;
9
equation
10
  impact = h <= 0.0;
11
  der(v) = if flying then -g else 0;
12
  der(h) = v;
13
  when {h <= 0.0 and v <= 0.0, impact} then
14
    v_new = if edge(impact) then -e*pre(v) else 0;
15
    flying = v_new > 0;
16
    reinit(v, v_new);
17
  end when;
18
  annotation (uses(Modelica(version="3.2")));
19
end BouncingBall;
20

Simple mode that tries to handle Modelica as well as it can.

MIME types defined: text/x-modelica (Modlica code).