Main Content

Frequency Response Data (FRD) Model with Time Delay

This example shows that absorbing time delays into frequency response data can cause undesirable phase wrapping at high frequencies.

When you collect frequency response data for a system that includes time delays, you can absorb the time delay into the frequency response as a phase shift. Alternatively, if you are able to separate time delays from your measured frequency response, you can represent the delays using theInputDelay,OutputDelay, orioDelayproperties of thefrdmodel object. The latter approach can give better numerical results, as this example illustrates.

Thefrdmodelfsysincludes a transport delay of 2 s. Load the model into the MATLAB® workspace and inspect the time delay.

load('frddelayexample.mat','fsys') fsys.IODelay
ans = 2

A Bode plot offsysshows the effect of the transport delay, causing the accumulation of phase as frequency increases.

bodeplot (fsys)

Figure contains 2 axes objects. Axes object 1 contains an object of type line. This object represents fsys. Axes object 2 contains an object of type line. This object represents fsys.

TheabsorbDelaycommand absorbs all time delays directly into the frequency response, resulting in anfrdmodel withIODelay = 0.

fsys2 = absorbDelay(fsys); fsys2.IODelay
ans = 0

Comparing the two ways of representing the delay shows that absorbing the delay into the frequency response causes phase-wrapping.

bode(fsys,fsys2)

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type line. These objects represent fsys, fsys2. Axes object 2 contains 2 objects of type line. These objects represent fsys, fsys2.

Phase wrapping can introduce numerical inaccuracy at high frequencies or where the frequency grid is sparse. For that reason, if your system takes the form e - τ s G ( s ) , you might get better results by measuring frequency response data forG(s) and usingInputDelay,OutputDelay, orioDelayto model the time delay τ .

See Also

Related Topics