计算机控制技术实验3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1、某系统的开环传递函数为
432
20
G(s)=
83640s s s s
+++ 试编程求系统在单位负反馈下的阶跃响应曲线,并求最大超调量。
Matlab 命令:
clc;clear all ;
num=[20];den=[1 8 36 40 0]; [num,den]=cloop(num,den,-1); s=tf(num,den); step(s,20);
Step Response
Time (sec)
A m p l i t u d e
0.2
0.4
0.6
0.8
1
1.2
1.4
1.2、典型二阶系统
22
2
G()2n
n n
s s s ωξωω=++ 编程求当ωn =6,ζ取0.2、0.4、0.6、0.8、1.0、1.5、2.0时的单位阶跃响应曲线。
Matlab 命令:
clc;clear all ;
wn=6;kesi=[0.2 0.4 0.6 0.8 1.0 1.5 2.0];
hold on ; for n=1:7
num=[wn^2];den=[1 2*kesi(n)*wn wn^2]; s=tf(num,den); step(s,20); end hold off ;
Step Response
Tim e (sec)
A m p l i t u d e
1.3、典型二阶系统传递函数为:
2
2
2
2)(n
n n s s s G ωξωω++= 绘制当ζ=0.7,ωn 取2、4、6、8、10、12时的单位阶跃响应曲线。
Matlab 命令:
clc;clear all ;
wn=[2 4 6 8 10 12];kesi=0.7; hold on ; for n=1:6;
num=[wn(n)^2];den=[1 2*kesi*wn(n) wn(n)^2]; s=tf(num,den); step(s,20); end hold off ;
00.20.40.60.8
1
1.2
1.4
Step R esponse
Tim e (sec)
A m p li t u d e
2、根轨迹分析
根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析使系统稳定的K 值范围。
)
2)(1()()(++=
s s s K
s H s G
Matlab 命令:
clc;clear all ;
num=[1];den=conv([1 0],conv([1 1],[1 2])); rlocus(num,den);
[K,poles]=rlocfind(num,den)
Root Locus
Real Axis
I m a g i n a r y A x i s
-6
-5
-4
-3
-2-10
1
2
-4-3
-2-10
1234
• selected_point = • 0.0000 - 1.4142i • K =
• 6.0000 • poles =
• -3.0000
• 0.0000 +1.4142i • 0.0000 - 1.4142i
由此可见根轨迹与虚轴交点处的增益K =6,这说明当K <6时系统稳定,当K >6时,系统不稳定;利用rlocfind( )函数也可找出根轨迹从实轴上的分离点处的增益K =0.38, 这说明当0< K <0.38时,系统为单调衰减稳定,当0.38< K <6时系统为振荡衰减稳定的。
3.1 典型二阶系统传递函数为:
2
2
2
2)(n
n n c s s s G ωξωω++= 绘制当ζ=0.7,ωn 取2、4、6、8、10、12时的伯德图
Matlab 命令:
clc;clear all ; w=logspace(0,1);
wn=[2 4 6 8 10 12];kesi=0.7; hold on ; for n=1:6;
num=[wn(n)^2];den=[1 2*kesi*wn(n) wn(n)^2];
bode(num,den,w); end
hold off;
M a g n i t u d e (d B )
10
10
P h a s e (d e g )
Bode Diagram
Frequency (rad/sec)
3.2 典型二阶系统传递函数为:
2
2
2
2)(n
n n c s s s G ωξωω++= 绘制当ωn =6,ζ取0.2、0.4、0.6、0.8、1.0、1.5、2.0时的伯德图。
Matlab 命令:
clc;clear all ; w=logspace(0,1);
wn=6;kesi=[0.2 0.4 0.6 0.8 1.0 1.5 2.0]; hold on ; for n=1:7
num=[wn^2];den=[1 2*kesi(n)*wn wn^2]; bode(num,den,w); end hold off ;