## LTIFRF

Calculates an LTI Frequency Response Function

## Syntax

H = ltifrf(A,B,C,[],[],w,outopt)

H = ltifrf(A,B,C,D,[],w,outopt)

H = ltifrf([],[],[],D,[],w,outopt)

H = ltifrf(A,B,C,[],dA,w,outopt)

## Description

ltifrf will return the Frequency Response Function (FRF) of a linear time-invariant state-space model, evaluated at the complex frequencies provided in w:

This function is used internally by ffunlti, fac2b and fac2bd. It is not meant for stand-alone use.

## Inputs

A is the state-space model matrix A.

B is the state-space model matrix B.

C is the state-space model matrix C.

D is the (optional) state-space model matrix D.

dA (optional) calculates the change in FRF given the deviation dA in A. D and dA are mutually exclusive.

w is the vector of complex frequencies. For discrete-time systems:

and for continuous-time systems.

outopt controls how H will be returned (see below).

## Outputs

H is the FRF. Usually a 3D-array of size l x m x N. However, if outopt is non-empty and 1, H will be a vector of size lmN x 1. If outopt is non-empty and 2, H will be a matrix of size l x mN.

## Algorithm

The state-space model is first transformed such that its state-transistion matrix A is in upper-Hessenberg form. The matrix

is subsequently solved by an efficient upper-Hessenberg solver in SLICOT, after which premultiplication by C and addition of D yields the FRF. This approach follows [1].

If a deviation deltaA in A is given, the FRF deviation is given by:

Again, the model is transformed so that A has upper-Hessenberg form, after which the SLICOT Hessenberg solver is used to obtain

and

Multiplication then yeilds the FRF deviation.