资源描述
实验七 控制系统的Bode图
一 实验目的
1.利用计算机作出控制系统的Bode图
2.观察记录控制系统得开环频率特性;
3.控制系统得开环频率特性分析;
二、实验步骤
1.开机执行程序
C:\matlab\bin\matlab.exe (或用鼠标双击图标)进人MATLAB命令窗口;
2.相关MATLAB函数
Bode(num,den)
Bode(num,den,w) %w极为频率变量ω
[mag,phase,w]= Bode(num,den) %mag-相位,phase-幅角
给定系统开环传递函数G0(s) 多项式模型,作系统bode图。其计算公式为。
式中, num为开环传递函数G0(s)的分子多项式系数向量,den为开环传递函数G0(s)的分母多项式系数向量。
函数格式1:给定num、den作波得图,角频率向量w的范围自动设定。
函数格式2:角频率向量w的范围可以由人工给定。(w为对数等分,由对数等分函数
logsspacpce()完成.例如w=logspace(-1,1,100)。
函数格式3:返回变量格式。计算所得的幅值mag、相角Phase及角频率w返回至MATLAB命令窗口,不作图。更详细的命令说明,可键入“help bode”在线帮助查阅。
例如,系统的开环传递函数
作图程序为:(分两次输入)
num=[10];
den=[1 2 10];
bode(num,den); %得到bode图9-6 bode图,注意横标。
再输入以下语句
w=logspace(-1,1,32); %执行后得到bode图9-7 bode图,注意横标。
bode(num,den,w);
比较图9-6、图9-7的横坐标
图9-6 自动定标bode图
图9-7 人工定标bode图
命令(人工定标)
w=logspace(d1,d2,n)
将变量w作对数等分。命令中d1、d2为10d1—10d2之间的变量范围,n为等分点数。
命令(半对数绘图)
Semilogx(x,y)
半对数绘图命令、函数格式与plot( )相同.
例 有传递函数,作对数幅频特性。如图9-8 半对数bode图
输入以下程序:
w=logspace(-1,1,32); %w范围和点数n
mag=10./((i*w).^2+2*(i*w)+10); %幅频特性
L=20*log(abs(mag)); %对数幅频特性
semilogx(w,L); %半对数作图
grid %回网格线
图9-8 半对数bode图
命令(求bode图参数)
margin(num,den)
[mg,pc,wg,wc]= margin(num,den)
函数格式1:作波得图,计算波得图图的稳定裕度,并将计算结果表示在图的上方。
函数格式2:返回变量格式,不作图;返回变量mg为幅值裕度,pc为相位裕度,幅值裕度Mg对应的频率为wg,,相位裕度Pc对应的频率为wc。
二、实验内容
1. , (T=0.1, ξ=2、1、0.5、0.1、0.01)作图并保持。
2.
要求:
(a)作波得图,在曲线上标出:幅频特性、即低频段斜率、高频段斜率、开环截止频率、中频段穿越斜率和相频特性,即低频段渐近相位角、高频段渐近相位角、-180”线的穿越频率;
(b)由稳定裕度命令计算系统的稳定幅值裕度Lr和相位γc,并确定系统的稳定性;
(c)在图上作近似折线特性,与原限确特性相比较。
3.
今k=1作波得图,应用频域稳定判据确定系统的稳定性,并确定使系统获得最大相位裕度γcmax的增益k值。
4. 已知系统结构图如图9-10所示:(选做)
分别令
(1)
(2)
作波得图并保持(hold on)曲线,分别计算两个系统的稳定裕度值,然后作性能比较以及时域仿真验证。
四、实验报告要求
(1)记录给定系统与显示的波得图c
(2)完成上述各题要求。
实验结果“
1.
T=0.1 ξ=2
>> num=[1];
>> den=[0.01 0.4 1];
>> bode(num,den);
>> w=logspace(-1,1,100);
>> bode(num,den,w);
>> mag=1./((0.1^2*(i*w).^2)+0.4*(i*w)+1);
>> l=20*log(abs(mag));
>> semilogx(w,l);
grid
>> margin(num,den)
>> [mg,pc,wg,wc]=margin(num,den)
mg =
Inf
pc =
-180
wg =
Inf
wc =
0
T=0.1 ξ=1
>> num=[1];
>> den=[0.01 0.2 1];
>> bode(num,den);
>> w=logspace(-1,1,100);
>> bode(num,den,w);
>> mag=1./((0.1^2*(i*w).^2)+0.2*(i*w)+1);
>> l=20*log(abs(mag));
>> semilogx(w,l);
Grid
>> margin(num,den)
>> [mg,pc,wg,wc]=margin(num,den)
mg =
Inf
pc =
-180
wg =
Inf
wc =
0
T=0.1 ξ=0.5
>> num=[1];
>> den=[0.01 0.1 1];
>> bode(num,den);
>> w=logspace(-1,1,100);
>> bode(num,den,w);
>> mag=1./((0.1^2*(i*w).^2)+0.1*(i*w)+1);
>> l=20*log(abs(mag));
>> semilogx(w,l);
>> grid
>> margin(num,den)
>> [mg,pc,wg,wc]=margin(num,den)
mg =
Inf
pc =
90.0000
wg =
Inf
wc =
10.0000
T=0.1 ξ=0.1
num=[1];
>> den=[0.01 0.02 1];
>> bode(num,den);
>> w=logspace(-1,1,100);
>> bode(num,den,w);
>> mag=1./((0.1^2*(i*w).^2)+0.02*(i*w)+1);
>> l=20*log(abs(mag));
>> semilogx(w,l);
>> grid
>> margin(num,den)
>> [mg,pc,wg,wc]=margin(num,den)
mg =
Inf
pc =
16.2591
wg =
Inf
wc =
14.0003
T=0.1 ξ=0.01
num=[1];
>> den=[0.01 0.002 1];
>> bode(num,den);
>> w=logspace(-1,1,100);
>> bode(num,den,w);
>> mag=1./((0.1^2*(i*w).^2)+0.002*(i*w)+1);
>> l=20*log(abs(mag));
>> semilogx(w,l);
>> grid
>> margin(num,den)
>> [mg,pc,wg,wc]=margin(num,den)
mg =
Inf
pc =
1.6206
wg =
Inf
wc =
14.1408
>>
num=[31.6];
>> den=[0.0001 0.101 1 0];
>> bode(num,den);
>> w=logspace(-1,1,100);
>> bode(num,den);
>> mag=31.6./((0.0001*(i*w).^3)+(0.101*(i*w).^2)+(i*w));
>> l=20*log(abs(mag));
>> semilogx(w,l);
>> grid
>> margin(num,den)
>> [mg,pc,wg,wc]=margin(num,den)
mg =
31.9620
pc =
30.3880
wg =
100.0000
wc =
16.4283
{3}
num=[1];
>> den=[0.1 1 -1 0];
>> bode(num,den);
>> w=logspace(-1,1,100);
>> bode(num,den);
>> mag=1./((0.1*(i*w).^3)+(1*(i*w).^2)-(i*w));
>> l=20*log(abs(mag));
>> semilogx(w,l);
grid
>> margin(num,den)
>> [mg,pc,wg,wc]=margin(num,den)
Warning: The closed-loop system is unstable.
> In lti.margin at 89
In margin at 92
mg =
Inf
pc =
-54.1289
wg =
NaN
wc =
0.7655
>>
19
展开阅读全文