今天,为大家介绍两种非常简单的MATLAB绘制Bode的方法,当然,只是打算将其作为一个系列的开始,希望能把与伯德图有关的一些内容都能够介绍完整明白,日后查阅起来也会非常方便。如果你有什么感到疑惑的地方,欢迎在后台留言讨论,力争使其更加完整。下面,详细介绍这两种方法。
第一种,我们可以叫它M函数法。在命令窗口中,通过简单的指令,完成对于Bode图的绘制。
num=[18]; den=conv([1,0],[1 4 6])%两个括号的函数sys=tf(num,den)bode(sys)margin(sys)
这里的conv( )指令表示计算两个表达式(x+0)和(x^2+4x+6)的乘积展开式;bode( )指令与margin( )指令的作用一样,只不过bode( )未显示出幅值裕度和相角裕度。第二行结尾如不加分号,可显示出den运算出来的结果,加上分号之后直接显示最后的运算结果。
最后,点击回车键,即可显示出绘制好的Bode图。
第二种,我们可以叫它Simulink法。首先,建立一个新的Simulink模型,使用input作为输入,output作为输出,将传递函数使用Transfer表示出来,如下图所示
然后,按照下面顺序操作:Analysis>>Control design>>Linear analysis...
此时,可以看到如下图所示,找到Select Plot中的New Bode,点击以后,稍等片刻,即可绘制出Bode图。当然,从这个选项中,我们可以看到,还可以绘制其他的图形,例如New Step,New Nyquist,New Pole/Zero Map等,功能强大,使用方便。
为使该图形方便查看,可使其Grid显示出来,在图上右击选择即可,需要曲线上某点坐标时,只需在该点点击,就会显示出点的坐标值。
从以上两种方法比较来看,小编还是认为第一种方法要更简单一些,无需建立数学模型,直接将其传递函数输入进去,即可绘制出Bode图。当然,这跟个人的使用习惯有关,第二种方法也很方便,特别是在已有模型基础上。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
QQ交流群: 551562851 欢迎加入![7fd9ba99a730e9c8c9af36d52e480a7b.png](https://i-blog.csdnimg.cn/blog_migrate/dc1786079b0f5a6046529fce697ad471.png)