from sympy.abc import a, b, c, d, e, f, g, s, t
from sympy import Heaviside
from sympy.physics.control.lti import TransferFunction
from spb import *
tf1 = TransferFunction(8*s**2 + 18*s + 32, s**3 + 6*s**2 + 14*s + 24, s)
tf2 = TransferFunction(s**2 + a*s + b, s**3 + c*s**2 + d*s + e, s)
params = {
    a: (3.7, 0, 5),
    b: (10, 0, 20),
    c: (7, 0, 8),
    d: (6, 0, 25),
    e: (16, 0, 25),
    f: (0, 0, 10, 50, "lower limit"),
    g: (10, 0, 25, 50, "upper limit"),
}
graphics(
    line(Heaviside(t), (t, -1, 10), label="step"),
    step_response(
        tf1, label="A", lower_limit=f, upper_limit=g, params=params,
        control=False),
    step_response(
        tf2, label="B", lower_limit=f, upper_limit=g, params=params,
        control=True),
    xlabel="Time [s]", ylabel="Amplitude"
)