functiontimeResponse
Calculate the time response of a discrete state space system
Extends from Modelica_LinearSystems2.Internal.timeResponseMask_discrete (Declares the common structure for the set of response functions).
Information
Syntax
(y) = DiscreteStateSpace.Analysis.timeResponse(responseType, dss)
(y, t, x) = DiscreteStateSpace.Analysis.timeResponse(responseType, dss, tSpan, x0)
Description
Function timeResponse calculates the time responses of a discrete 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 states x are calculated for each time step t=k*dss.Ts.
Example
Modelica_LinearSystems2.DiscreteStateSpace dss=Modelica_LinearSystems2.DiscreteStateSpace(
A = [0.904837418036],
B = [0.095162581964],
C = [2],
D = [0],
B2 = [0],
Ts = 0.1);
Real tSpan = 0.4;
Modelica_LinearSystems2.Types.TimeResponse response=Modelica_LinearSystems2.Types.TimeResponse.Step;
Real x0[1] = {0};
Real y[5,1,1];
Real t[5];
Real x[5,1,1]
algorithm
(y,t,x):=Modelica_LinearSystems2.DiscreteStateSpace.Analysis.timeResponse(dss,tSpan,response,x0);
// y[:,1,1] = {0, 0.1903, 0.3625, 0.5184, 0.6594}
// t = {0, 0.1, 0.2, 0.3, 0.4}
// x[:,1,1] = {0, 0.0952, 0.1813, 0.2592, 0.33}
Inputs
| Type | Name | Default | Description |
|---|---|---|---|
| TimeResponse | response | TimeResponse.Step | |
| DiscreteStateSpace | dss (from timeResponseMask_discrete) | ||
| Real | tSpan (from timeResponseMask_discrete) | 0 | Simulation time span [s] |
| Real[size(dss.A, 1)] | x0 | zeros(size(dss.A, 1)) | Initial state vector |
Outputs
| Type | Name | Default | Description |
|---|---|---|---|
| Real[:,size(dss.C, 1),size(dss.B, 2)] | y (from timeResponseMask_discrete) | Output response: (number of samples) x (number of outputs) x (number of inputs) | |
| Real[:] | t (from timeResponseMask_discrete) | Time vector: (number of samples) | |
| Real[:,size(dss.A, 1),size(dss.B, 2)] | x_discrete (from timeResponseMask_discrete) | State trajectories: (number of samples) x (number of states) x (number of inputs) |