.Modelica_LinearSystems2.TransferFunction.Analysis.timeResponse

Information

Syntax

(y, t, x) = TransferFunction.Analysis.timeResponse(tf, dt, tSpan, responseType, x0)

Description

First, the transfer function representation is transformed into state space representation which is given to StateSpace.Analysis.timeResponse and the time response of the state space system is calculated. 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".

The state space system is transformed to a appropriate discrete state space system and, 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

  TransferFunction s = Modelica_LinearSystems2.TransferFunction.s();
  Modelica_LinearSystems2.TransferFunction tf=1/(s^2+s+1);

  Real Ts=0.1;
  Real tSpan= 0.4;
  Modelica_LinearSystems2.Types.TimeResponse response=Modelica_LinearSystems2.Types.TimeResponse.Step;
  Real x0[1]={0,0};

  Real y[5,1,1];
  Real t[5];
  Real x[5,1,1]

algorithm
  (y,t,x):=Modelica_LinearSystems2.TransferFunction.Analysis.timeResponse(tf,Ts,tSpan,response,x0);
//  y[:,1,1]={0, 0.0048, 0.0187, 0.04, 0.0694}
//         t={0, 0.1, 0.2, 0.3, 0.4}
//  x[:,1,1]={0, 0.0048, 0.0187, 0.04, 0.0694}

Interface

encapsulated function timeResponse
  import Modelica;
  import Modelica_LinearSystems2;
  import Modelica_LinearSystems2.StateSpace;
  import Modelica_LinearSystems2.TransferFunction;
  extends Modelica_LinearSystems2.Internal.timeResponseMask2_tf;
  input Modelica_LinearSystems2.Utilities.Types.TimeResponse response = Modelica_LinearSystems2.Utilities.Types.TimeResponse.Step;
  input Real x0[TransferFunction.Analysis.denominatorDegree(tf)] = zeros(TransferFunction.Analysis.denominatorDegree(tf)) "Initial state vector";
end timeResponse;

Generated at 2024-03-28T19:15:55Z by OpenModelicaOpenModelica 1.22.3 using GenerateDoc.mos