波特图在MATLAB软件中的三种绘制方法
2016-10-19吕泽奎
吕泽奎
西南交通大学机械工程学院,四川成都 611756
波特图在MATLAB软件中的三种绘制方法
吕泽奎
西南交通大学机械工程学院,四川成都 611756
本文总结了使用MATLAB软件绘制波特图的3种方法,比较了3种方法的优缺点,为相关的研究提供一定的借鉴。
波特图;MATLAB;函数
在工程分析和设计中,通常把线性定常系统的频率特性用曲线表示,再运用图解法进行研究[1]。常见的频率特性曲线有幅相频率特性曲线、对数频率特性曲线和对数幅相频率特性曲线等。其中对数频率特性曲线,又称Bode图,是将幅频特性和相频特性分别绘制在两个半对数坐标系中,频率坐标按对数分度,幅值和相位坐标则按线性分度。幅频特性图的纵坐标(线性分度)表示G(jω)的幅值,单位是分贝(dB);横坐标(对数坐标)表示ω值,单位是弧度/秒或每秒-1(rad/s或s-1)。相频特性图的纵坐标(线性分度)表示G(jω)的相位,单位是度(°);横坐标是(对数分度)表示ω值,单位是弧度/秒或秒-1(rad/s或s-1)。使用Bode图表示频率特性有将串联环节幅值的乘、除化为对数幅值的加、减及可以使用近似方法作图以简化计算和作图过程等的优点[2]。
MATLAB是目前国际上最流行、应用最广泛的可视化科学与工程计算软件,近年来得到了业界的一致认可,在控制系统的分析、仿真与设计方面得到了非常广泛的应用[3]。对线性定常系统的Bode图的绘制,MATLAB软件提供了包括bode函数在内的多种绘制方法,为先关分析研究提供了便利。
1 Bode函数法
对于波特图的绘制,MATLAB软件提供了一条直接求解和绘制控制系统波特图的函数bode(),其主要调用格式见表1。若系统的开环传递函数为:
表1 bode函数主要调用格式
使用bode函数绘制系统的波特图仿真程序如下:
num=10*[1 2];
den=conv([1 1],[1 4]);
sys=tf(num,den);
bode(sys);
grid on。
运行结果如图1所示。
图1 使用bode函数绘制的波特图
2 Margin函数法
除了使用bode函数直接绘制波特图外,还可以使用margin函数绘制波特图。使用margin函数不仅可以绘制出波特图,还可以从频率响应数据中计算出幅值裕度、相角裕度以及对应的频率。幅值裕度和相角裕度是针对开环SISO系统而言,它指示出系统闭环时的相对稳定性。幅值裕度是在相角为-180°处使开环增益为1的增益量,如在-180°相频处的开环增益为g,则幅值裕度为1/g;若用分贝值表示幅值裕度,则等于:-20*log10(g)。类似地,相角裕度是当开环增益为1.0时,相应的相角与180°角的和。Margin函数的主要调用格式与boed函数类似,这里不一一说明。
对前文提到的系统开环传递函数,使用margin函数绘制系统的波特图仿真程序如下:
num=10*[1 2];
den=conv([1 1],[1 4]);
sys=tf(num,den);
margin(sys);
grid on;
运行结果如图2所示,从图上可以看出该系统的幅值裕度Gm为无穷大,相角裕度Pm在9.35rad/s处为107°。
图2 使用margin函数绘制的波特图
3 Simulink仿真法
Simulink是MATLAB最重要的组件之一,他提供了一个动态建模、仿真和综合分析的集成环境。在该环境中,无须大量书写程序,而只需要通过简单直观的鼠标操作,就可以构造出复杂的系统,现已广泛应用于控制理论和数字信号处理的复杂仿真和设计。
使用simulink绘制系统的波特图,首先需要根据系统的数学模型搭建simulink模块仿真图。我们仍以前文中的传递函数为例,所搭建仿真图如图3所示,需要注意的是这里的输入和输出端需要选用In和Out模块。再搭建好仿真图后,选择标题栏中的analysis中的control design,然后选择linear anslysis即可进入EXACT LINEARIZATION界面。在这个界面中我们选择analysisI/Os中的root level inports and outports,并且在plot result中选择new Bode,最后点击Linearize按钮,所得波特图亦如图1所示。
图3 simulink模块仿真图
4 结论
从上述3种波特图的绘制方法中可以看出使用bode函数的方法,直截了当,简单方便;使用margin函数的方法可以得到幅值裕度和相角裕度等更多信息;使用simulink仿真方法,避开了繁琐的编程,通过简单的鼠标操作即可完成任务。因此,在实际绘制波特图过程中我们可以结合实际情况,根据上述介绍选择最适宜的方法绘制需要的波特图。
[1]杨莉,张会珍,白丽丽.MATLAB语言与控制系统仿真[M].哈尔滨:哈尔滨工程大学出版社,2013.
[2]陈春俊.控制工程基础[M].成都:西南交通大学出版社,2011.
[3]李献,骆志伟.精通MATLAB/Simulink系统仿真[M].北京:清华大学出版社,2015.
TP39
A
1674-6708(2016)167-0113-02
吕泽奎,西南交通大学机械工程学院。