Estimate Transfer Function Models with Transport Delay to Fit Given Frequency-Response Data
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);
np
and 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.