自动操纵实验二三阶系统动态分析.docx
《自动操纵实验二三阶系统动态分析.docx》由会员分享,可在线阅读,更多相关《自动操纵实验二三阶系统动态分析.docx(20页珍藏版)》请在冰豆网上搜索。
自动操纵实验二三阶系统动态分析
实验二.二、三阶系统动态分析
一.实验目的:
1.学习二、三阶系统的电模拟方式及参数测试方式;
2.观看二、三阶系统的阶跃响应曲线,了解参数转变对动态特性的阻碍;
3.学习虚拟仪器(超抵频示波器)的利用方式;
4.利用MATLAB仿真软件进行时域法分析;
5.了解虚拟实验的利用方式。
二.实验设备及仪器
1.模拟实验箱;
2.低频信号发生器;
3.虚拟仪器(低频示波器);
4.运算机;
5.MATLABL仿真软件。
三.实验原理及内容
实验原理:
一、二阶系统的数学模型
系统开环传递函数为
系统闭环传递函数为
二、二阶系统暂态性能
(a)延迟时刻td:
系统响应从0上升到稳态值的50%所需的时刻。
(b)上升时刻tr:
关于欠阻尼系统是指,系统响应从0上升到稳态值所需的时刻;关于过阻尼系统那么指,响应从稳态值的10%上升到90%所需的时刻。
(c)峰值时刻tp:
系统响应抵达第一个峰值所需的时刻。
(d)最大超调量σp(简称超调量):
系统在暂态进程中输出响应超过稳态值的最大偏离量。
通常以单位阶跃响应稳态值的百分数来表示,即
(e)调剂时刻ts:
系统响应抵达并再也不越出稳态值的允许误差带±Δ所需的最短时刻,即
通常取Δ为稳态值的5%或2%。
调剂时刻又叫做暂态进程时刻或过渡进程时刻。
(f)振荡次数N:
是指系统响应在调剂时刻ts的范围内围绕其稳态值振荡的次数。
实验内容:
1.二阶系统
其中:
K1别离为一、五、10;K2=1;T1=T2=;
2.三阶系统
其中:
K别离为一、五、10。
四.实验步骤
1.由模拟电路中参数变更可采纳改变电阻或电容方式实现;
2.在模拟实验箱上按模拟电路接线,并组成测试系统;
3.输入信号采纳阶跃信号,注意记录输出波形和有关数据(σ%,k,ts,N,tp);
4.利用MATLAB仿真软件,重复上述进程并注意记录输出波形和有关数据。
五.实验结论
1.二阶系统参数及测试数据表(由输出波形取得)
K2=1;除R2外其它电阻都为100ΚΩ,C2=1uF。
K1
R2(ΚΩ)
C1(uF)
ts(s)
N
tp(s)
σ%
1
100
1
1
5
500
2
10
1000
3
2.三阶系统参数及测试数据表(由输出波形取得)
除R5外其它电阻都为100ΚΩ,C1=10Uf,C3=1Uf。
K
R5(ΚΩ)
C2(uF)
ts(s)
N
tp(s)
σ%
1
100
1
1
5
500
6
10
1000
MATLAB仿真
程序:
二阶系统K=1,
Gc=tf(1,[,,2]);%系统的传递函数模型
step(Gc);
[y,t]=step(Gc);
[mp,tf]=max(y);%系统的最大峰值输出
cs=length(t);
tm=max(t);%仿真最大时刻
yss=y(cs);%系统的稳态输出
sigma=100*(mp-yss)/yss%超调量ts
tp=t(tf);%峰值时刻tp
%计算调剂时刻ts
i=cs+1;
n=0;
whilen==0
i=i-1;
ifi==1
n=1;
elseify(i)>*yss%选择5%的误差带
n=1;
end
end;
t1=t(i);
cs=length(t);
j=cs+1;
n=0;
whilen==0
j=j-1;
ifj==1
n=1;
elseify(j)<*yss%选择5%的误差带
n=1;
end;
end
t2=t(j);
ift2ift1>t2
ts=t1
end
elseift2>tp
ift2ts=t2
else
ts=t1
end
end
sigma=
二阶系统K=5,
Gc=tf(5,[,,6]);%系统的传递函数模型
step(Gc);
[y,t]=step(Gc);
[mp,tf]=max(y);%系统的最大峰值输出
cs=length(t);
tm=max(t);%仿真最大时刻
yss=y(cs);%系统的稳态输出
sigma=100*(mp-yss)/yss%超调量ts
tp=t(tf);%峰值时刻tp
%计算调剂时刻ts
i=cs+1;
n=0;
whilen==0
i=i-1;
ifi==1
n=1;
elseify(i)>*yss%选择5%的误差带
n=1;
end
end;
t1=t(i);
cs=length(t);
j=cs+1;
n=0;
whilen==0
j=j-1;
ifj==1
n=1;
elseify(j)<*yss%选择5%的误差带
n=1;
end;
end
t2=t(j);
ift2ift1>t2
ts=t1
end
elseift2>tp
ift2ts=t2
else
ts=t1
end
end
sigma=
ts=
二阶系统K=10,
Gc=tf(10,[,,11]);%系统的传递函数模型
step(Gc);
[y,t]=step(Gc);
[mp,tf]=max(y);%系统的最大峰值输出
cs=length(t);
tm=max(t);%仿真最大时刻
yss=y(cs);%系统的稳态输出
sigma=100*(mp-yss)/yss%超调量ts
tp=t(tf);%峰值时刻tp
%计算调剂时刻ts
i=cs+1;
n=0;
whilen==0
i=i-1;
ifi==1
n=1;
elseify(i)>*yss%选择5%的误差带
n=1;
end
end;
t1=t(i);
cs=length(t);
j=cs+1;
n=0;
whilen==0
j=j-1;
ifj==1
n=1;
elseify(j)<*yss%选择5%的误差带
n=1;
end;
end
t2=t(j);
ift2ift1>t2
ts=t1
end
elseift2>tp
ift2ts=t2
else
ts=t1
end
end
sigma=
ts=
三阶系统K=1,
Gc=tf(1,[,,1,1]);%系统的传递函数模型
step(Gc);
[y,t]=step(Gc);
[mp,tf]=max(y);%系统的最大峰值输出
cs=length(t);
tm=max(t);%仿真最大时刻
yss=y(cs);%系统的稳态输出
sigma=100*(mp-yss)/yss%超调量ts
tp=t(tf);%峰值时刻tp
%计算调剂时刻ts
i=cs+1;
n=0;
whilen==0
i=i-1;
ifi==1
n=1;
elseify(i)>*yss%选择5%的误差带
n=1;
end
end;
t1=t(i);
cs=length(t);
j=cs+1;
n=0;
whilen==0
j=j-1;
ifj==1
n=1;
elseify(j)<*yss%选择5%的误差带
n=1;
end;
end
t2=t(j);
ift2ift1>t2
ts=t1
end
elseift2>tp
ift2ts=t2
else
ts=t1
end
end
sigma=
ts=
三阶系统K=5,
Gc=tf(5,[,,1,5]);%系统的传递函数模型
step(Gc);
[y,t]=step(Gc);
[mp,tf]=max(y);%系统的最大峰值输出
cs=length(t);
tm=max(t);%仿真最大时刻
yss=y(cs);%系统的稳态输出
sigma=100*(mp-yss)/yss%超调量ts
tp=t(tf);%峰值时刻tp
%计算调剂时刻ts
i=cs+1;
n=0;
whilen==0
i=i-1;
ifi==1
n=1;
elseify(i)>*yss%选择5%的误差带
n=1;
end
end;
t1=t(i);
cs=length(t);
j=cs+1;
n=0;
whilen==0
j=j-1;
ifj==1
n=1;
elseify(j)<*yss%选择5%的误差带
n=1;
end;
end
t2=t(j);
ift2ift1>t2
ts=t1
end
elseift2>tp
ift2
ts=t2
else
ts=t1
end
end
sigma=
ts=
三阶系统K=10,
Gc=tf(10,[,,1,10]);%系统的传递函数模型
step(Gc);
[y,t]=step(Gc);
[mp,tf]=max(y);%系统的最大峰值输出
cs=length(t);
tm=max(t);%仿真最大时刻
yss=y(cs);%系统的稳态输出
sigma=100*(mp-yss)/yss%超调量ts
tp=t(tf);%峰值时刻tp
%计算调剂时刻ts
i=cs+1;
n=0;
whilen==0
i=i-1;
ifi==1
n=1;
elseify(i)>*yss%选择5%的误差带
n=1;
end
end;
t1=t(i);
cs=length(t);
j=cs+1;
n=0;
whilen==0
j=j-1;
ifj==1
n=1;
elseify(j)<*yss%选择5%的误差带
n=1;
end;
end
t2=t(j);
ift2ift1>t2
ts=t1
end
elseift2>tp
ift2ts=t2
else
ts=t1
end
end
sigma=
ts=
4.误差分析
有MATLAB仿真取得:
(其他参数由公式即可求得)
二阶系统:
K1
Sigma
ts(s)
N
tp(s)
1
1
1
5
2
2
10
3
3
三阶系统:
K
Sigma
ts(s)
N
tp(s)
1
2
1
.
5
7
6
10
100
///
///
///
///
说明:
表格中前者计算值(即仿真值),后者为测量值。
由于在波形曲线上读值存在人为误差,乃至错误,这带来必然的阻碍。
关于最大超调量和峰值时刻比较容易读出,在表格中可看出其误差较小,而调剂时刻那么不是很方便读出,误差较明显。
实际闭环增益K1:
二阶系统:
K1
1
5
10
K1
三阶系统:
K
1
5
10
K1
1/05
///
显现的问题及解决方法:
1,在逐阶测试中,单独各阶都能专门好的显示,但连在一路就不能取得理想的波形曲线,于是在咱们想尽所有方法后,寻求教师的帮忙得以解决。
应该是仪器本身的缘故。
2,测试进程中由于波形转变,不太容易记录波形曲线,最终是重复多次,反复读值,才获取了最后的波形曲线。
3,在MATLAB仿真进程中,由于自己的疏忽,将写成了致使错误,最终有同窗帮忙找犯错误并将其更正。
4,最后值得提出的是,很多仪器都存在必然的问题,这给测试带来了挑战。