matlab
1. tf是transfer function的缩写,即传递函数。
其中数组num与den分别为传输函数分子分母多项式的系数,且从左至右与s值降幂对应。
num=[1,2]; % 建立传输函数的分子多项式
den=[1,2,3]; % 建立传输函数的分母多项式
Matlab中文论坛
SYS=tf(num,den) % 生成系统传递函数
s + 2
-------------
s^2 + 2 s + 3
2.绘制一阶惯性环节的伯德图。
程序代码:
num=1;
den=[4 1];
G=tf(num,den);
bode(G,'r')
或者指明频率范围,如:
num=[0 2.56*10^-3 16];
den=[2.55*10^-8 7.26*10^-5 1];
w=logspace(-1,5);
bode(num,den,w)
w=logspace(-1,10);
最后的横坐标为角频率,可以通过换算单位变为频率
3.已知一控制系统的传递函数,求当放大系 K 不断变大时,对此系统频率响应的影响。
程序代码:
for K=0.3:0.4:1.5
G=tf(K,[5 3 1]);
nyquist(G);
hold on;
end
title('Nyquist 图系统增益对频率响应的影响 ');
4.例 4 已知某系统的开环传递函数为
,试绘制系统的伯德图,并求系统的相角稳定裕量和幅值稳定裕量。
绘制对数幅频特性图,程序代码:
num=500*[0.0167 1];
den1=conv([1 0],[0.05 1]);
den2=conv([0.0025 1],[0.001 1]);
den=conv(den1,den2);
Go=tf(num,den);
w=logspace(0,4,50);
bode(Go,w)
确定系统的相角稳定裕量和幅值稳定裕量,程序代码:
Margin(Go)
[Gm,Pm,Wcg,Wcp]=margin(Go)
说明:
margin函数可以从频率响应数据中计算出幅值裕度、相角裕度以及对应的频率。幅值裕度和相角裕度是针对开环SISO系统而言,它指示出系统闭环时的相对稳定性。当不带输出变量引用时,margin可在当前图形窗口中绘制出带有裕量及相应频率显示的Bode图,其中幅值裕度以分贝为单位。
幅值裕度是在相角为-180度处使开环增益为1的增益量,如在-180度相频处的开环增益为g,则幅值裕度为1/g;若用分贝值表示幅值裕度,则等于:-20*log10(g)。类似地,相角裕度是当开环增益为1.0时,相应的相角与180度角的和。
margin(mag,phase,w):由bode指令得到的幅值mag(不是以dB为单位)、相角phase 及角频率w矢量绘制出带有裕量及相应频率显示的bode图。
margin(num,den) :可计算出连续系统传递函数表示的幅值裕度和相角裕度并绘制相应波特图。类似,margin(a,b,c,d)可以计算出连续状态空间系统表示的幅值裕度和相角裕度并绘制相应波特图。
[gm,pm,wcg,wcp]=margin(mag,phase,w):由幅值mag(不是以dB为单位)、相角phase 及角频率w矢量计算出系统幅值裕度和相角裕度及相应的相角交界频率wcg、截止频率wcp,而不直接绘出Bode图曲线。
5.已知某系统的开环传递函数为
试绘制系
统的开环对数幅频特性和开环对数相频特性图,用对数判据分析系统闭环
稳定性,并求出相角裕量和增益裕量。
绘制伯德图,程序代码如下:
num=16*conv([19 1],[0.44 1]);
den1=conv([0.625 1],conv([0.676 -1],[43.5 -1]));
den2=conv([0.0333 1],[0.02^2 0.015 1]);
den=conv(den1,den2);
Go=tf(num,den);
bode(Go);
[Gm,Pm,Wcg,Wcp]=margin(Go)
6.已知系统的开环传递函数为:,分别判定当开环放大系数 K=5 和 K=20 时闭环系统的稳定性,并求出相角裕量和
增益裕量。
要判定闭环系统的稳定性,首先绘制其开环对数幅频特性(伯德)图,程序代码如下:
figure(1);
Go=tf(5,conv([1 0],conv([1 1],[0.1 1])));
argin(Go);
grid off;
figure(2);
Go=tf(20,conv([10],conv([1 1],[0.1 1])));
argin(Go);
grid off;
7.已知单位负反馈控制系统的开环传递函数为
,试判断此闭环系统的稳定性。
首先求闭环系统的特征多项式,程序代码:
z=-2;
p=[0 -0.5 -0.8 -3];
k=0.2;
Go=zpk(z,p,k);
Gc=tf(feedback(Go,1));
dc=Gc.den;dens=poly2str(dc{1},'s')
根据特征多项式,求其特征根来判断系统的稳定性。程序如下:den=[1 4.3 4.3 1.4 0.4];
p=roots(den)
利用零极点图来判断系统的稳定性。程序如下:
[z,p,k]=zpkdata(Gc,'v')
pzmap(Gc)
8.z变换
已知连续函数 x(t) 拉氏变换为,试求其 z 变换。
首先对函数进行拉氏逆变换,程序代码如下:
syms s a b c
x=ilaplace((s+c)/(s+a)/(s+b));
x=simplify(x)
对函数进行 z 变换,程序代码如下:
syms n a b c
Xz=ztrans((-exp(-a*n)*c+exp(-a*n)*a-exp(-b*n)*b+exp(-b*n)*c)/ (a-b));
Xz=simplify(Xz)
9.已知控制系统的传递函数为,采样器的采样周期 Ts=2s ,求离散系统的传递函数。
离散系统的传递函数,程序代码如下:
num=[1 2 1];
den=[1 5 3 8 9];
Ts=2;
G=tf(num,den,Ts)
运行结果
Transfer function:
z^2 + 2 z + 1
-----------------------------
z^4 + 5 z^3 + 3 z^2 + 8 z + 9
Sampling time: 2
10.已知控制系统传递函数的零点为 -1 , -3 ,极点为 0 , -2.3, -1.45 ± 2.55j, 系统增益为 5 ,采样周期 T=0.2s ,求此离散系统传递函数的零极点模型、脉冲传递函数模型
z=[-1 -3];
p=[0 -2.3 -1.45+2.55*j -1.45-2.55*j];
k=5;
T=0.2;
Gzpk=zpk(z,p,k,T)
Gtf=tf(Gzpk)
运行结果:Zero/pole/gain:
5 (z+1) (z+3)
-------------------------------
z (z+2.3) (z^2 + 2.9z + 8.605)
Sampling time: 0.2
Transfer function:
5 z^2 + 20 z + 15
-----------------------------------
z^4 + 5.2 z^3 + 15.27 z^2 + 19.79 z
Sampling time: 0.2
11.已知控制系统的传递函数为,试用零阶、一阶保持方法和双线性变换法、将此连续系统离散化。
进行系统离散化,程序代码如下:
num=10*[1 1];
den=conv([1 0],[1 0 10]);
G=tf(num,den);
Gd1=c2d(G,0.5,'zoh')
Gd2=c2d(G,0.5,'foh')
Gd3=c2d(G,0.5,' tustin ')
运行结果
Transfer function:
1.194 z^2 + 0.6428 z - 0.8266
-------------------------------
z^3 - 0.9793 z^2 + 0.9793 z - 1
Sampling time: 0.5
Transfer function:
0.4155 z^3 + 1.375 z^2 - 0.4607 z - 0.3196
------------------------------------------
z^3 - 0.9793 z^2 + 0.9793 z - 1
Sampling time: 0.5
??? Error using ==> tf.c2d
Unknown discretization method " tustin ".
12.有一系统的脉冲传递函数为。设采样周期T=0.1s 试用零阶保持法和双线性变换法将其转换为连续系统传递函数。
进行系统连续化,程序代码如下:
num=conv([1 -1],[1 3]);
den=[1 2 -6 2.5];T=0.1;
G=tf(num,den,T);
Gc1=d 2c (G,'zoh')
Gc2=d 2c (G,' tustin ')
Gc3=d 2c (G)
离散系统转化为连续系统,在默认是为零阶保持法。
13.计算下列函数的 z 逆变换。
(1); (2); (3)
对上述函数表达式进行 z 逆变换,程序代码如下:
syms z a k
x1=iztrans(exp(a/z),z,k)
x2=iztrans(10*z/(z+1)/(z+2));
x2=simplify(x2)
x3=iztrans(z/(z-a)/(z-3)^2);
x3=simplify(x3)
运行:x1 =a^k/k!
x2 = 10*(-1)^(1+n)*2^n+10*(-1)^n
x3 =-1/3*(3^n*a*n-3*a^n+3^(1+n)-3^(1+n)*n)/(9-6*a+a^2)
14.已知控制系统的传递函数为:,求分别当采样周期 T=0.5 , 1.5 时此系统传递函数的零极点模型。
系统传递函数的零极点模型程序代码如下:
z=-1;
p=[- 1 -3 -5 ];
k=3;
for T=[0.5 1.5]
Gzpk=zpk(z,p,k,T)
end
运行Zero/pole/gain:
3 (z+1)
-----------------
(z+1) (z+3) (z+5)
Sampling time: 0.5
Zero/pole/gain:
3 (z+1)
-----------------
(z+1) (z+3) (z+5)
Sampling time: 1.5
15.给定系统闭环传递函数为
,试绘制其零极点图,并判断此系统的稳定性。
程序代码如下:
num=[1 -1.3 1.22 0.51]; den=[1 0.522 0.4 0.0086 -0.3915];
G=tf(num,den,0.5);
pzmap(G);
axis([-1.2 1.2 -1.2 1.2]); axis equal;
set(findobj('marter','x'),'martersize',8); set(findobj('marter','x'),'linewidth',1.5); set(findobj('marter','o'),'martersize',8); set(findobj('marter','o'),'linewidth',1.5);
闭环传递函数的所有极点都在单位圆内部,此闭环系统稳定。
P ole-Zero Map
Real Axis
I m a g i n a r y A x i s
补充:
系统的开环传递函数在右半s 平面没有极点和零点,该系统称为最小相位系统
1. 相角裕量γ:穿越频率处的相位距离180度 |G(j ω)H(j ω)|=1 ? ω=ωc 幅值交界频率 γ= 180°+ φ(ωc ) γ>0,系统稳定 γ<0,系统不稳定 2. 幅值裕量K g :
相位为-180度的时候的频率所对应的幅值的倒数
∠G(j ω)H(j ω) = -180° ? ω=ωg 相位交界频率
K g = |))H(j G(j |1
ωω 或 K g (db )= 20lgK g = -20lg|G(j ωg )H(j ωg )|
K g >1 或 K g (db )>0 , 系统稳定 K g <1 或 K g (db )<0 , 系统不稳定
工程上要求: γ= 30°- 60°, K g >6db 。也可只对γ提求。