# kasdak.py - de beweging van het schuifpaneel stap voor stap berekenen
DT = 0.01          # tijdstap (s)
A = 0.10           # versnelling bij aanlopen en afremmen (m/s2)


def versnelling(t):
    """Het bewegingsprofiel: 1 s aanlopen, 5 s constante snelheid, 1 s afremmen."""
    if t < 1.0:
        return A
    elif t < 6.0:
        return 0.0
    elif t < 7.0:
        return -A
    return 0.0


v, x = 0.0, 0.0
print("  t (s)   a (m/s2)   v (m/s)   x (m)")
for stap in range(800):                   # 800 stappen van 0,01 s = 8 s
    t = stap * DT
    a = versnelling(t + DT / 2)            # versnelling in het midden van de stap
    v_nieuw = max(v + a * DT, 0.0)         # a is de helling van (v,t); het paneel keert niet om
    x = x + (v + v_nieuw) / 2 * DT         # oppervlakte van een smal trapezium onder v
    v = v_nieuw
    if (stap + 1) % 50 == 0:               # om de 0,5 s een regel
        print(f"{t + DT:6.1f}   {a:8.2f}   {v:7.3f}   {x:6.3f}")
