用Matlab/Simulink画波特图Bode图
在Matlab中,大多时候,我们都是用M语言,输入系统的传递函数后,用bode函数绘制bode图
对系统进行频率分析,这样做,本人觉得效率远不如Simulink建模高。如何在Matlab/Simulink中画bode图,以前也在网上查过些资料,没看到太多有用的参考。今天做助教课的仿真,又要画电机控
制中电流环的bode图,模型已经建好,step respon也很容易看出来,可这bode图怎么也出不来,又不愿意用m语言写出传递函数再画。baidu和google了好一阵,几乎没有一个帖子说的清清楚楚的,经过一番摸索,终于掌握了Simulink里画bode图的方法。.其实,Simulink里画bode图,非常
的easy,也很方便。写此文的目的是希望对那些常用Simulink进行仿真希望画bode图又不愿用M
语言的新手有所帮助。
以下均是以Matlab R2008a为例。
首先,在simulink里建好model。如图1,这里需要注意的是,输入和输出要用input port和
output port,这样以后画bode图的时候,系统就会知道是这两个变量之间的关系。
图1 建好model
其次,选择线性分析。Tools->Control Design ->Linear Analysis。如图2。
121212图2 选择Linear Ansysis
将出现如图3所示的Control and Estimation Tools Manager窗口。
图3 Control and Estimation Tools Manager窗口
第三步,激动人心的时刻到了,哈哈。如果你是按照前面的步骤来的,那么这时候,你就应该可以直接画出bode图,在窗口的下方,将“Plot linear analysis result in a ”前面的方框打上勾,已打的就不用
管了,再在后面的下拉框里选择“bode respon plot”,即画output port和input port之间的bode图,再点击“Linearize Model”按钮,就OK了。其实除了bode图,还可以画其他很多响应曲线,比如step respon、impul respon和Nyquist图等等,只需选择相应的step respon plot,inpul respon plot或者Nyquist plot等等。方法都是相同的。选择选择“bode respon plot”,如图4所示。
图4 画出bode图
稍等片刻,便出现了图1中output port和input port的bode图了。是不是很简单?!
图5 model的bode图
至此,bode已经画完。如果此时还想看看step respon或者Nyquist图,也是可以的。只需在bode图上右击,选择Plot Types->Step或者Nyquist等等,as you need!我们选择step,便会出现阶跃响应图。如图6、7所示。
图6 画阶跃响应
图7 显示阶跃响应
上面的bode图和step respon都没有网格,看着不精确,没关系。在图上右击,选择Grid,就能出现
释迦果价格哪个银行的利息高网格了。想要知道曲线上某点的坐标时,只需在该点上单击,就会显示出该点的坐标值。如图8a,8b。玫瑰之旅
图8a
给未来的信图8b 显示网格和曲线上的坐标
关于图画里的操作,就介绍这么多,其他的功能自己去摸索。
回到图3中的Control and Estimation Tools Manager窗口。在该窗口中,除了可以画bode图之外,还
可以看到系统的状态方程、传递函数或者零极点方程。运行完“Linearize Model”后,单击左侧“Linearization Task”下的“Model”,在下方的下拉列表里选择“Zero Pole Gain”(也可以选择“State Space”或者“Tranfer Funciton”),就能看到系统输入输出的零极点增益方程。如下图9
带数字的成语
为什么没有北瓜
图9 查看系统输入输出之间的关系描述(状态议程、零极点增益、传递函数)cnc操作工