Description
Tested on control 0.9.2 and again on 0.9.4
The resulting impulse response (unit sample response) for the following transfer function (accumulator scaled by 0.1) is not properly scaled:
With the sample duration set to
To further clarify below is the implementation diagram:
If we pass a unit sample into this, it would scale by con.step_response
on the same transfer function, the result is also what I expect for that case (the output increments by 0.1).
Code to repeat problem:
import control as con
dt=0.1
accum = con.tf([dt, 0], [1, -1], dt)
t1, y1 = con.impulse_response(accum) # doesn't scale properly
t2, y2 = con.step_response(accum) # scales properly
I do see in the docs "For continuous time systems, the initial condition is altered to account for the initial impulse. For discrete-time systems, the impulse is sized so that it has unit area", but would argue that it should not be rescaled especially if Octave and MATLAB are not doing that (I haven't confirmed MATLAB) and should represent the output of the discrete time system described by