Recommended Model Type for Building Block Diagrams
This example shows how choice of model type can affect numerical accuracy when interconnecting models.
You can represent block diagram components with any model type. However, certain connection operations yield better numerical accuracy for models in ss
form.
For example, interconnect two models in series using different model types to see how different representations introduce numerical inaccuracies.
Load the models Pd
and Cd
. These models are ninth-order and second-order discrete-time transfer functions, respectively.
load numdemo Pd Cd
Compute the open-loop transfer function L = Pd*Cd
using the tf
, zpk
, ss
, and frd
representations.
Ltf = Pd*Cd; Lzp = zpk(Pd)*Cd; Lss = ss(Pd)*Cd; w = logspace(-1,3,100); Lfrd = frd(Pd,w)*Cd;
Plot the magnitude of the frequency response to compare the four representations.
bodemag(Ltf,Lzp,Lss,Lfrd) legend('tf','zpk','ss','frd')
ans = Legend (tf, zpk, ss, frd) with properties: String: {'tf' 'zpk' 'ss' 'frd'} Location: 'northeast' Orientation: 'vertical' FontSize: 9 Position: [0.8135 0.7685 0.1410 0.1782] Units: 'normalized' Use GET to show all properties
The tf
representation has lost low-frequency dynamics that other representations preserve.