相信很多小伙伴用matlab绘制传函bode图时遇到过以下情况:
绘制出来的相频图其相位不在-180°到180°之间,如上图所示。在实际应用中我们常希望相位以-180到180的范围显示,那么如何解决这一问题呢?
解决方案:
opt = bodeoptions; % 生成bode函数的属性设置默认结构体
opt.FreqUnits = 'Hz'; % 将频率单位设置成 Hz (默认是 rad/s)
opt.PhaseWrapping = 'on'; % 关键设置:打开自动换算相位开关
opt.PhaseWrappingBranch = -180; %这是默认值,此行代码可以省略,大意是小于-180的相位进行换算
之后只需要在bode函数输入中给定这个 opt 结构体即可,如
bode(sys,w,opt)
效果图如下: