This example shows how to identify a transfer function to fit a given frequency response data (FRD) containing additional phase roll off induced by input delay.
This example requires a Control System Toolbox™ license.
Obtain frequency response data.
For this example, use
bode to obtain the magnitude and phase response data for the following system:
Use 100 frequency points, ranging from 0.1 rad/s to 10 rad/s, to obtain the frequency response data. Use
frd to create a frequency-response data object.
freq = logspace(-1,1,100); [mag, phase] = bode(tf([1 .2],[1 2 1 1],'InputDelay',.5),freq); data = frd(mag.*exp(1j*phase*pi/180),freq);
data is an
iddata object that contains frequency response data for the described system.
Estimate a transfer function using
data. Specify an unknown transport delay for the identified transfer function.
np = 3; nz = 1; iodelay = NaN; sys = tfest(data,np,nz,iodelay);
nz specify the number of poles and zeros in the identified transfer function, respectively.
iodelay specifies an unknown transport delay for the identified transfer function.
sys is an
idtf model containing the identified transfer function.