lti_solve Function

public function lti_solve(mdl, u, t, ic, solver, args, err) result(rst)

Solves the LTI system given by the specified state space model.

Arguments

Type IntentOptional Attributes Name
class(state_space), intent(in) :: mdl

The state_space model to solve.

procedure(ss_excitation), intent(in), pointer :: u

The routine used to compute the excitation vector.

real(kind=real64), intent(in), dimension(:) :: t

The time points at which to compute the solution. The array must have at least 2 values; however, more may be specified. If only 2 values are specified, the integrator will compute the solution at those points, but it will also return any intermediate integration steps that may be required. However, if more than 2 points are given, the integrator will return the solution values only at the specified time points.

real(kind=real64), intent(in), dimension(:) :: ic

The initial condition vector. This array must be the same size as the number of state variables.

class(ode_integrator), intent(in), optional, target :: solver

The ODE solver to utilize. If not specified, the default solver is a 4th/5th order Runge-Kutta integrator.

class(*), intent(inout), optional :: args

An optional container for arguments to pass to the excitation routine.

class(errors), intent(inout), optional, target :: err

An error handling object.

Return Value real(kind=real64), allocatable, dimension(:,:)

The solution. The time points at which the solution was evaluated are stored in the first column and the output(s) are stored in the remaining column(s).


Contents