MATLAB: Bode Plot Phase Angles are greater than 180 degrees.

Simulink Control Design

I followed the example for Pade approximation below
>> s = tf('s');
>> sys = exp(-0.1*s);
>> sysx = pade(sys,3)
>> bodeplot(sys,sysx)
When I plot the bode plot of the approximated transfer function ('sysx'), the plot shows +720 degree phase shift relative to the pure delay ('sys'). This seems to be a large phase difference. How can I fix this?

Best Answer

The goal in this case is to bring us back to within -180 to 180 degrees. To resolve the issue we can use the 'PhaseWrapping' property of "bodeplot".
Please have a look at 'PhaseWrapping' in documentation below
When Phase Wrapping is on we are able to wrap around 'PhaseWrappingBranch' angle as soon as we exceed an angle limit in range (currently -180,180).
Using the set of lines below:
>> s = tf('s');
>> sys = exp(-0.1*s);
>> sysx = pade(sys,3);
>> opts = bodeoptions('cstprefs');
>> opts.PhaseWrapping='on'
>> bodeplot(sys,sysx,opts)
This will display the angle within (-180,180) range.