MATLAB进行控制系统频域分析

上传人:新** 文档编号:497973615 上传时间:2022-10-04 格式:DOC 页数:12 大小:77.50KB
返回 下载 相关 举报
MATLAB进行控制系统频域分析_第1页
第1页 / 共12页
MATLAB进行控制系统频域分析_第2页
第2页 / 共12页
MATLAB进行控制系统频域分析_第3页
第3页 / 共12页
MATLAB进行控制系统频域分析_第4页
第4页 / 共12页
MATLAB进行控制系统频域分析_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《MATLAB进行控制系统频域分析》由会员分享,可在线阅读,更多相关《MATLAB进行控制系统频域分析(12页珍藏版)》请在金锄头文库上搜索。

1、一、基于MATLAB的线性系统的频域分析基本知识频率特性函数.设线性系统传递函数为:则频率特性函数为:由下面的MATLAB语句可直接求出G.i=sqrt%求取-1的平方根 GW=polyval./polyval 其中num,den为系统的传递函数模型.而w为频率点构成的向量,点右除./运算符表示操作元素点对点的运算.从数值运算的角度来看,上述算法在系统的极点附近精度不会很理想,甚至出现无穷大值,运算结果是一系列复数返回到变量GW中.用MATLAB作奈魁斯特图.控制系统工具箱中提供了一个MATLAB函数nyquist,该函数可以用来直接求解Nyquist阵列或绘制奈氏图.当命令中不包含左端返回变

2、量时,nyquist函数仅在屏幕上产生奈氏图,命令调用格式为:nyquist nyquist 或者nyquist nyquist 该命令将画出下列开环系统传递函数的奈氏曲线:如果用户给出频率向量w,则w包含了要分析的以弧度/秒表示的诸频率点.在这些频率点上,将对系统的频率响应进行计算,若没有指定的w向量,则该函数自动选择频率向量进行计算.w包含了用户要分析的以弧度/秒表示的诸频率点,MATLAB会自动计算这些点的频率响应.当命令中包含了左端的返回变量时,即:re,im,w=nyquist 或re,im,w=nyquist 函数运行后不在屏幕上产生图形,而是将计算结果返回到矩阵re、im和w中.

3、矩阵re和im分别表示频率响应的实部和虚部,它们都是由向量w中指定的频率点计算得到的.在运行结果中,w数列的每一个值分别对应re、im数列的每一个值.例5.1 考虑二阶典型环节:试利用MATLAB画出奈氏图.利用下面的命令,可以得出系统的奈氏图,如图5-1所示.num=0,0,1;den=1,0.8,1;nyquist%设置坐标显示范围v=-2,2,-2,2;axisgrid图5-1 二阶环节奈氏图titleNyquist Plot of G=1/ 3用MATLAB作伯德图控制系统工具箱里提供的bode函数可以直接求取、绘制给定线性系统的伯德图.当命令不包含左端返回变量时,函数运行后会在屏幕上

4、直接画出伯德图.如果命令表达式的左端含有返回变量,bode函数计算出的幅值和相角将返回到相应的矩阵中,这时屏幕上不显示频率响应图.命令的调用格式为: mag,phase,w=bode mag,phase,w=bode 或 mag,phase,w=bode mag,phase,w=bode 矩阵mag、phase包含系统频率响应的幅值和相角,这些幅值和相角是在用户指定的频率点上计算得到的.用户如果不指定频率w,MATLAB会自动产生w向量,并根据w向量上各点计算幅值和相角.这时的相角是以度来表示的,幅值为增益值,在画伯德图时要转换成分贝值,因为分贝是作幅频图时常用单位.可以由以下命令把幅值转变成

5、分贝:magdb=20log10 绘图时的横坐标是以对数分度的.为了指定频率的范围,可采用以下命令格式:logspace 或logspace公式logspace 是在指定频率范围内按对数距离分成50等分的,即在两个十进制数和之间产生一个由50个点组成的分量,向量中的点数50是一个默认值.例如要在弧度/秒与弧度/秒之间的频区画伯德图,则输入命令时,在此频区自动按对数距离等分成50个频率点,返回到工作空间中,即w=logspace要对计算点数进行人工设定,则采用公式logspace.例如,要在与之间产生100个对数等分点,可输入以下命令:w=logspace在画伯德图时,利用以上各式产生的频率向量

6、w,可以很方便地画出希望频率的伯德图.由于伯德图是半对数坐标图且幅频图和相频图要同时在一个绘图窗口中绘制,因此,要用到半对数坐标绘图函数和子图命令.1对数坐标绘图函数利用工作空间中的向量x,y绘图,要调用plot函数,若要绘制对数或半对数坐标图,只需要用相应函数名取代plot即可,其余参数应用与plot完全一致.命令公式有:semilogx 上式表示只对x轴进行对数变换,y轴仍为线性坐标.semilogy 上式是y轴取对数变换的半对数坐标图.Loglog 上式是全对数坐标图,即x轴和y 轴均取对数变换.2子图命令MATLAB允许将一个图形窗口分成多个子窗口,分别显示多个图形,这就要用到subp

7、lot函数,其调用格式为:subplot该函数将把一个图形窗口分割成mn个子绘图区域,m为行数,n为列数,用户可以通过参数k调用各子绘图区域进行操作,子图区域编号为按行从左至右编号.对一个子图进行的图形设置不会影响到其它子图,而且允许各子图具有不同的坐标系.例如,subplot则表示将窗口分割成43个部分.在第6部分上绘制图形. MATLAB最多允许99的分割.例5.2给定单位负反馈系统的开环传递函数为:试画出伯德图.利用以下MATLAB程序,可以直接在屏幕上绘出伯德图如图5-2. num=10*1,1;den=1,7,0;bodegridtitleBode Diagram of G=10*/

8、s该程序绘图时的频率范围是自动确定的,从0.01弧度/秒到30弧度/秒,且幅值取分贝值,轴取对数,图形分成2个子图,均是自动完成的.图5-2自动产生频率点画出的伯德图如果希望显示的频率范围窄一点,则程序修改为: num=10*1,1;den=1,7,0;w=logspace; %从0.1至100,取50个点.mag, phase, w=bode;magdB=20*log10 % 增益值转化为分贝值.% 第一个图画伯德图幅频部分.subplot;semilogx %用红线画gridtitleBode Diagram of G= 10*/sxlabelFrequencyylabelGain% 第二

9、个图画伯德图相频部分.subplot; semilogx; gridxlabelFrequencyylabelPhase图5-3用户指定的频率点画出的伯德图修改程序后画出的伯德图如5-3所示.4. 用MATLEB求取稳定裕量同前面介绍的求时域响应性能指标类似,由MATLAB里bode函数绘制的伯德图也可以采用游动鼠标法求取系统的幅值裕量和相位裕量.例如,我们可以在图20的幅频曲线上按住鼠标左键游动鼠标,找出纵坐标Magnitude趋近于零的点,从提示框图中读出其频率约为7.25dB.然后在相频曲线上用同样的方法找到横坐标Frequence最接近7.25dB的点,可读出其相角为-53.9度,由此

10、可得,此系统的相角裕量为126.1度.幅值裕量的计算方法与此类似. 此外,控制系统工具箱中提供了margin函数来求取给定线性系统幅值裕量和相位裕量,该函数可以由下面格式来调用:Gm,Pm, Wcg, Wcp=margin; 可以看出,幅值裕量与相位裕量可以由LTI对象G求出,返回的变量对Gm, Wcg为幅值裕量的值与相应的相角穿越频率,而Pm, Wcp则为相位裕量的值与相应的幅值穿越频率.若得出的裕量为无穷大,则其值为Inf,这时相应的频率值为NaN,Inf和NaN均为MATLAB软件保留的常数.如果已知系统的频率响应数据,我们还可以由下面的格式调用此函数.Gm, Pm, Wcg, Wcp=

11、margin;其中分别为频率响应的幅值、相位与频率向量.例5.3 已知三阶系统开环传递函数为:利用下面的MATLAB程序,画出系统的奈氏图,求出相应的幅值裕量和相位裕量,并求出闭环单位阶跃响应曲线. G=tf;subplot;% 第一个图为奈氏图nyquist;gridxlabelylabel% 第二个图为时域响应图Gm,Pm,Wcg,Wcp=marginG_c=feedback;subplot;stepgridxlabelTimeylabel 显示结果为:ans=1.1429 1.1578 1.7321 1.6542图5-4三阶系统的奈氏图和阶跃响应图画出的图形如图5-4 所示.由奈氏曲线可以看出,奈氏曲线并不包围-1,j0点,故闭环系统是稳定的.由于幅值裕量虽然大于1,但很接近1,故奈氏曲线与实轴的交点离临界点-1,j0很近,且相位裕量也只有7.1578o,所以系统尽管稳定,但其性能不会太好.观察闭环阶跃响应图,可以看到波形有较强的振荡.如果系统的相角裕量45o,我们一般称该系统有较好的相角裕量.例5.4 考虑一个新的系统模型,开环传递函数为:由下面MATLAB语句可直接求出系统的幅值裕量和相位裕量: G=tf100*conv

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号