(y, t, x)=DiscreteZerosAndPoles.Analysis.impulseResponse(dzp, tSpan, x0)
Function impulseResponse calculates the time response of a DiscreteZerosAndPoles transfer function with impulse input. After transforming the DiscreteZerosAndPoles representation to DiscreteStateSpace the values of the impulse response are calculated starting from x(t=0)=0 and y(t=0)=C*x0 + D*u0 for each time step t=k*dt.
DiscreteZerosAndPoles.Analysis.impulseResponse(dzp, tSpan)
gives the same result as
DiscreteZerosAndPoles.Analysis.timeResponse(dzp, tSpan, response=Types.TimeResponse.Impulse, x0=fill(0,DiscreteZerosAndPoles.Analysis.denominatorDegree(dzp))).
Modelica_LinearSystems2.DiscreteZerosAndPoles dzp=dzp=1/(q^2 + q + 1) dzp.Ts=0.1; Real tSpan= 0.4; Real y[5,1,1]; Real t[5]; Real x[5,1,1] algorithm (y,t,x):=Modelica_LinearSystems2.DiscreteZerosAndPoles.Analysis.impulseResponse(dzp,tSpan); // y[:,1,1]={0, 0, 1, -1.0, 2.96059473233375E-016} // t={0, 0.1, 0.2, 0.3, 0.4} // x[:,1,1]={0, 0, 3.0, -3.0, 8.88178419700125E-016}
DiscreteZerosAndPoles.Analysis.timeResponse
encapsulated function impulseResponse import Modelica; import Modelica_LinearSystems2; import Modelica_LinearSystems2.DiscreteZerosAndPoles; import Modelica_LinearSystems2.DiscreteStateSpace; extends Modelica_LinearSystems2.Internal.timeResponseMask_zp_discrete; end impulseResponse;