Matlab中Bode图--HZ显示横坐标

来自:

 http://blog.sina.com.cn/s/blog_4a4927c701011cwz.html

我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。

   譬如我们要画出下面这个传递函数的伯德图:

                                                           1.576e010 s^2

H(s)=           ------------------------------------------------------------------------------------------

s^4 + 1.775e005 s^3 + 1.579e010 s^2 + 2.804e012 s + 2.494e014

(这是一个用butter函数产生的2阶的,频率范围为[20 20K]HZ的带通滤波器。)

我们可以用下面的语句:

num=[1.576e010    0       0];

den=[1 1.775e005      1.579e010      2.804e012      2.494e014];

H=tf(num,den);

bode(H)

这样,我们就可以得到以下的伯德图:

Matlab中Bode图--HZ显示横坐标

可能我们会对这个图很不满意,第一,它的横坐标是rad/s,而我们一般希望横坐标是HZ;第二,横坐标的范围让我们看起来很不爽;第三,网格没有打开(这点当然我们可以通过在后面加上grid on解决)。

下面,我们来看看如何定制我们自己的伯德图风格:

在命令窗口中输入:bodeoptions

我们可以看到以下内容:

ans =

 

                 Title: [1x1 struct]

                XLabel: [1x1 struct]

                YLabel: [1x1 struct]

             TickLabel: [1x1 struct]

                  Grid: 'off'

                  XLim: {[1 10]}

              XLimMode: {'auto'}

                  YLim: {[1 10]}

              YLimMode: {'auto'}

            IOGrouping: 'none'

           InputLabels: [1x1 struct]

          OutputLabels: [1x1 struct]

          InputVisible: {'on'}

         OutputVisible: {'on'}

             FreqUnits: 'rad/sec'

             FreqScale: 'log'

              MagUnits: 'dB'

              MagScale: 'linear'

            MagVisible: 'on'

       MagLowerLimMode: 'auto'

           MagLowerLim: 0

            PhaseUnits: 'deg'

          PhaseVisible: 'on'

         PhaseWrapping: 'off'

         PhaseMatching: 'off'

     PhaseMatchingFreq: 0

    PhaseMatchingValue: 0

我们可以通过修改上面的每一项修改伯德图的风格,比如我们使用下面的语句画我们的伯德图:

P=bodeoptions;

P.Grid='on';

P.XLim={[10      40000]};

P.XLimMode={'manual'};

P.FreqUnits='HZ';

num=[1.576e010    0       0];

den=[1 1.775e005      1.579e010      2.804e012      2.494e014];

H=tf(num,den);

bode(H,P)

 

这时,我们将会看到以下的伯德图:

Matlab中Bode图--HZ显示横坐标

上面这张图相对就比较好了,它的横坐标单位是HZ,范围是[10 40K]HZ,而且打开了网格,便于我们观察-3DB处的频率值。

当然,你也可以改变bodeoptions中的其它参数,做出符合你的风格的伯德图。


上面那段代码中添加下面一句就可以将频率坐标变为线性变化:P.FreqScale = 'linear'

猜你喜欢

转载自blog.csdn.net/u014183377/article/details/53571617