matalab实验五和实验六.doc
文本预览下载声明
实验五 控制系统的MATLAB频域分析
一、实验目的
1、学习控制系统频域分析的MATLAB实现。
2、利用频率响应进行系统分析。
二、相关知识
频率响应研究系统的频率行为,从频率响应中可得带宽、增益、转折频率和闭环系统稳定性等系统特征。MATLAB的控制系统工具箱提供了多种求取线性系统频率响应曲线的函数,有关的MATLAB函数:
Bode(G);
[m,p,w]=bode(G);
Margin(G);
[Gm,Pm,Wg,Wp]=margin(G);
Nyquist(G);
[re,im,w]=nyquist(G);
对于离散系统,相应的命令分别是dbode、dnyquist,没有“dmargin”命令,要利用margin命令,先用[m,p,w]=dbode(G),再用margin(m,p,w)命令。
三、实验内容及要求
1、利用在线帮助学习上述函数命令的用法,自行练习。
2、利用MATLAB求取频率响应
直接求取频率特性值的函数freqresp( ),其调用格式为
G=freqresp(ncloop,dcloop,sqrt(-1)*w)
其中,w为给定的频率范围向量或频率值,ncloop、dcloop分别为传递函数的分子和分母多项式向量。
实验内容:如图简单反馈系统,利用MATLAB求取系统的频率响应。其中输入信号为。
3、绘制系统的伯德图(Bode图)
利用MATLAB提供的bode ( )函数可以绘制系统的对数频率特性图。Bode函数有下面几种常用的调用格式:
(1) bode(num,den) %MATALB自动绘制Bode图
(2) [mag, phase,w]=bode(num,den)
[mag,phase,w]=bode(num,den,w)
这种格式带有输出变量,执行该命令,MATLAB将自动形成一行矢量的频率点并返回与这些频率点对应的幅值和相角的列矢量(相角以度为单位),但不显示频率特性曲线。为了得到系统Bode图,需使用绘图命令。
subplot(2,1,1) % 图形窗口分割成2×1的两个区域,选中第一个区域
semilogx(w,20*log10(mag)) % 在当前窗口横轴为对数坐标的半对数坐标系里生成对数幅频特性曲线,纵轴以20lg(mag)线性分度,
subplot(2,1,2) % 激活图形窗口的第二个区域
semilogx(w,phase) % 在半对数坐标系中绘制对数相频特性曲线,纵轴以相角线性分度
,绘制其Bode图。
4、幅值裕量和相位裕量
在判断系统稳定性时,常常需要求出系统的幅值裕量和相位裕量。利用MATLAB控制系统工具箱提供的margin( )函数可以求出系统的幅值裕量与相位裕量,该函数的调用格式为
[Gm,Pm,Wcg, Wcp]=margin(num,den)
或 [Gm,Pm,Wcg, Wcp]=margin(A,B,C,D)
式中 Gm,和Pm分别为系统的幅值裕量和相位裕量,而Wcg和Wcp分别为幅值裕量和相位裕量处相应的频率值。
实验内容:给定系统的开环状态空间表达式为 ,求系统的幅值裕量和相位裕量。
%Example7_23.m
w=logspace(-1,1);
A=[0 1 0 0;0 0 1 0;0 0 0 1;-62.5 -213.8 -204.2 -54];
B=[0;0;0;1];
C=[1562 1875 0 0];D=0;
[Gm,Pm,Wcg,Wcp]=margin(A,B,C,D)
bode(A,B,C,D,1,w);
disp([幅值裕量=,num2str(20*log10(Gm)),dB,,相位裕量=,num2str(Pm),度。]);
title([‘Gain margin=’,num2str(Gm), ‘Phase margin=’num2str(Pm)])
5、利用MATLAB绘制控制系统奈奎斯特图
MATLAB提供了nyquist( )函数用于绘制系统Nyquist曲线。该函数常用的调用格式有以下几种。
(1) nyquist(num,den)
(2) [re,im]=nyquist(num,den)
[re,im,w]=nyquist(num,den)
[re,im,w]=nyquist(num,den,w)
w为频率矢量。这些带有输出变量的命令执行后只产生频率特性的实部、虚部和频率矢量,在屏幕上不产生图形,用plot命令可以绘制极坐标频率特性曲线。
当然也可使用下面的简单命令来直接绘出系统的奈魁斯特图。
nyquist(num,den,ω)
或 nyquist(A,B,C,D)
更简单地 nyq
显示全部