functiontimeResponse
Calculate the time response of a discrete zeros-and-poles transfer function
Extends from Modelica_LinearSystems2.Internal.timeResponseMask_zp_discrete (Declares the common structure for the set of discrete response functions).
Information
Syntax
(y, t, x)=DiscreteZerosAndPoles.Analysis.timeResponse(dzp, tSpan, responseType, x0)
Description
First, the DiscreteZerosAndPoles record is transformed into discrete state space representation which is given to DiscreteStateSpace.Analysis.timeResponse to calculate the time response of the state space system. The type of the time response is defined by the input responseType, i.e.
Impulse "Impulse response", Step "Step response", Ramp "Ramp response", Initial "Initial condition response"
Starting at x(t=0)=x0 and y(t=0)=C*x0 + D*u0, the outputs y and x are calculated for each time step t=k*dt.
Example
q=Modelica_LinearSystems2.DiscreteZerosAndPoles.q();
Modelica_LinearSystems2.DiscreteZerosAndPoles dzp=1/(q^2 + q + 1)
dzp.Ts=0.1;
Real tSpan= 0.4;
Modelica_LinearSystems2.Types.TimeResponse response=Modelica_LinearSystems2.Types.TimeResponse.Step;
Real x0[2]={0,0};
Real y[5,1,1];
Real t[5];
Real x[5,1,1]
algorithm
(y,t,x):=Modelica_LinearSystems2.DiscreteZerosAndPoles.Analysis.timeResponse(dzp,tSpan, response,x0);
// y[:,1,1]={0, 0, 1, 0, 0}
// t={0, 0.1, 0.2, 0.3, 0.4}
// x[:,1,1]={0, 0, 3.0, 0, 0}
Inputs
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica_LinearSystems2.DiscreteZerosAndPoles | dzp (from timeResponseMask_zp_discrete) | ||
| Real | tSpan (from timeResponseMask_zp_discrete) | 0 | Simulation time span [s] |
| Modelica_LinearSystems2.Utilities.Types.TimeResponse | response | Modelica_LinearSystems2.Utilities.Types.TimeResponse.Step | |
| Real[DiscreteZerosAndPoles.Analysis.denominatorDegree(dzp)] | x0 | zeros(DiscreteZerosAndPoles.Analysis.denominatorDegree(dzp)) | Initial state vector |
Outputs
| Type | Name | Default | Description |
|---|---|---|---|
| Real[:,1,1] | y (from timeResponseMask_zp_discrete) | Output response: (number of samples) x (number of outputs) x (number of inputs) | |
| Real[:] | t (from timeResponseMask_zp_discrete) | Time vector: (number of samples) | |
| Real[:,Modelica_LinearSystems2.DiscreteZerosAndPoles.Analysis.denominatorDegree(dzp),1] | x_discrete (from timeResponseMask_zp_discrete) | State trajectories: (number of samples) x (number of states) x (number of inputs) |