MATLAB仿真课程设计对磁盘驱动读取系统校正部分的设计Word文件下载.docx
《MATLAB仿真课程设计对磁盘驱动读取系统校正部分的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《MATLAB仿真课程设计对磁盘驱动读取系统校正部分的设计Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
step(numb,denb);
title('
未校正系统阶跃响应'
);
由以上分析,得到系统的时域指标δ%=0%,ts=782s。
从调节时间上看,远远地不符合设计要求。
1.2根轨迹分析
根轨迹法是根据反馈控制系统开环和闭环传递函数之间的关系提出的一种由开环传递函数求闭环特征根的简便方法,它是分析和设计线性定常控制系统的图解方法,使用十分简便,在工程上获得了广泛的应用。
运用根轨迹分析法,可以对系统的稳定性进行分析而这又为系统的校正提供依据。
在调用rlocus()函数之后,调用根轨迹增益函数rlocfind(),可得出系统的根轨迹曲线如1-2所示。
图1-2根轨迹曲线
MATLAB的程序为;
den0=[1,30,200,0];
axisequal;
rlocus(num0,den0);
[K,poles]=rlocfind(num0,den0);
未校正前系统根轨迹'
执行以上程序,并移动鼠标到根轨迹与虚轴的交点处单击鼠标左键后可得到如下结果:
selected_point=0+14.0727i
K=5.9413e+003
poles=-29.9464
-0.0268+14.0853i
-0.0268-14.0853i
由此可见,根轨迹与虚轴交点处的增益K=5941.3这说明,K<
1.6时系统稳定;
当K>
941.6时系统不稳定。
利用rlocfind()函数可找出根轨迹从实轴上的分离点处的增益K=384,说明当0<
K<
384系统为单调衰减稳定,当384<
5941.3时,系统为振荡衰减稳定。
1.3频域分析
频域分析法是应用频域特性分析线性系统的方法。
它是以传递函数为基础的一种图解分析法,对与高阶系统的分析非常实用,它同时也适用于系统的设计。
而此次的系统为三阶系统,所以对系统的频域分析就显得尤为重要。
系统的bode图可用函数bode(num,den)生成,而频域指标幅值裕量、相位裕量、相位穿越频率和幅值穿越频率通过[Gm,Pm,Wcg,Wcp]=margin(num,den)获得。
所编写的MATLAB程序为:
g=tf(num0,den0);
bode(g);
[Gm,Pm,Wcg,Wcp]=margin(g);
未校正前系统伯德图'
执行后得如下数据及如图1-3所示的bode图
Gm=
6.0000e+003
Pm=
89.9570
Wcg=
14.1421
Wcp=
0.0050
图1-3系统bode图
从图中可以看出相位裕量γ=89.9570度,即裕量为正,开环系统稳定,还有较好的动态性能指标。
2串联校正及校正后系统分析
自动控制系统是由被控对象和控制器两大部分组成的,当被控对象被确定后,对系统的设计实际上就是对控制器的设计,这就称为对控制系统的校正。
由于控制系统不满足控制质量的要求,需根据系统预先给定的性能指标重新设计一个满足性能要求的控制系统,具体任务是选择校正方式,确定校正装置的类型以及计算出具体参数等。
2.1校正原理
校正装置是为了改善系统控制性能而人为的引入的控制部分根据校正装置在控制系统中的位置不同,可分为串联校正和并联校正两类基本形式。
串联校正分为超前校正、滞后校正、滞后-超前校正三种结合目前的分析方法对串联校正的选择方法又可分为bode图法、根轨迹法和频率特性法。
根据他们各自的特点和本次设计的要求最后选择了频率特性法来进行校正装置的设计。
结合前面对系统性能指标的分析,我们得出系统的调节时间过长,主要是增益过小导致的,所以进行校正前的首要任务是确定系统的增益系数。
确定了增益系数之后就可以借助于频域特性法来设计校正装置。
2.2校正过程
2.2.1选择增益系数
根据增益系数对系统稳定性影响的特点以及前面对系统根轨迹分析得出的系统稳定时增益的范围(0<
k<
5941.3),所以编写了MATLAB程序对K值由大到小的变化对系统的稳定性影响,最终选择了K=300最接近于期望值。
2.2.2校正环节
选择了K=300之后,观察到系统的动态响应的快速性仍有待提高,所以就选择了串联超前校正。
接下来我们根据串联校正编写了MATLAB程序:
num0=300;
g=tf(num0,den0);
[mag1,phase1]=bode(g);
r=62;
w=logspace(-3,1);
%给定期望系统的相位域量
forepsilon=5:
15
r0=(-180+r+epsilon);
[i1,ii]=min(abs(phase1-r0));
wc=w(ii);
alpha=mag1(ii);
T=5/wc;
numc=[T,1];
denc=[alpha*T,1];
[num,den]=series(num0,den0,numc,denc);
[Gm,Pm,Wcg,Wcp]=margin(g);
if(Pm>
=r);
break;
end;
end
printsys(numc,denc);
printsys(num,den);
g=tf(numc,denc);
figure
(1);
bode(g)%画出校正环节伯德图
校正环节伯德图'
%[mag2,phase2]=bode(g);
figure(3);
%画出有增益未校正系统伯德图
有增益未校正系统bode图'
g=tf(num,den);
figure
(2);
%画出校正后环节伯德图
有增益已校正系统bode图'
%[mag,phase]=bode(g);
%未校正前
subplot(2,1,1);
%有增益未校正阶跃响应曲线
未校正加入增益前系统单位阶跃响应曲线'
%校正后
subplot(2,1,2);
[numb,denb]=cloop(num,den);
%有增益已校正阶跃响应曲线
校正后系统单位阶跃响应曲线'
经过多次调试得到校正环节的传递函数Gc=(359.8428s+1)/(201.3615s+1)。
从而得到Gk(s)=(107952.851s+300)/(201.3615s^4+6041.8461s^3+40302.307s^2+200s)。
2.3校正后系统验证系统性能
2.3.1时域分析
图2-3-1校正后-校正前系统动态响应
所以由仿真图得到超调量δ=1.22%,调节时间ts=0.83s,符合期望的系统性能。
2.3.2频域分析
图2-3-2校正后的系统bode图
所以由仿真结果得到Gm=11.1953,Pm=68.2751,Wcg=14.1445,Wcp=2.5746,所以得到相位裕量γ=68.2751度,即裕量为正,开环系统稳定,还有很好的动态性能指标。
3校正装置的实现
校正装置按其使用的动力源和信号性质的不同,可分为电气型、气动型、液压型等,根据此次系统设计的要求采用电气型校正装置。
超前校正装置,既可采用RC无源网络组成,又可用由运算放大器加入适当电路的有源网络组成,下面分别介绍无源超前网络和有源超前网络在本次校正环节中的具体应用。
3.1无源校正装置
由MATLAB仿真程序得出校正环节传递函数:
Gc=(359.8428s+1)/(201.3615s+1)
(1)
根据无源超前网络传递函数Gc(s)=α(Ts+1)/(αTs+1),α=R2/(R1+R2);
T=R1C
(2)
有
(1)
(2)式对比计算得出,R1=100K,R2=150K,C=3.6Uf
网络衰减α=3/5,放大器的放大系数就的增大1/α倍,既α’=5/3,
所以K=k*α’=300*5/3=500.
所以画出图3-1-1无源超前校正网络。
图3-1无源超前校正网络
3.2有源校正装置
Gc=(359.8428s+1)/(201.3615s+1),可得到如下曲线图3-2:
图3-2有源超前校正网络
4对校正后的系统利用连续系统按环节离散化的数字进行仿真
4.1连续系统按环节离散化仿真原理
连续系统数学模型的离散化是通过数值积分法实现的,尽管面向结构图的仿真方法是按环节给定参数,但是在仿真计算时还是按整个系统进行离散化这就不便于引进非线性环节系统的仿真所以就要进行连续系统按环节离散化的仿真过程。
首先是典型环节的离散系数及其差分方程的确定。
一般情况下,典型环节的仿真模型归纳为一个统一的公式;
z[(k+1)T]=Ez(kT)+Fu(kT)+Gu[(k-1)T]
x[(k+1)T]=Hz[(k+1)T]+Lu(kT)+Qu[(k-1)T]
式中,E,F,G,H,L,Q是差分方程的系数,它们的数值根据典型环节系数a,b的不同情况可由表4-1确定。
a≠0,b=0
a=0,b≠0
a≠0,b≠0
E
F
G
H
L
Q
(c+d/T)/a
-d/(aT)
1
cT/(2b)
d/b
Exp[-(a/b)T]
(d/b-c/a)[(1-E)*b/(aT)-1]
(d/b-c/a)[1+(E-1)(1+b/(aT))]
表4—1E,F,G,H,L,Q的系数
4.2Matlab实现仿真过程
图4-2-1系统结构图
根据系统结构图可得,
u1000-1x11x1
u2=1000x2+0,y=[0001]x2
u30100x30x3
u40010x40x4
000-11
则有W=1000,W0=0,Wc=[0001]
01000
00100
a1b1c1d1FZ1s11201.36151359.842800
而P=a2b2c2d2FZ2s2=011000
a3b3c3d3FZ3s3101300000
a4b4c4d4FZ4s42011000
仿真程序如下:
R=1;
P=[1201.36151359.842800;
%A
011000;
%B
101300000;
%C
2011000];
%D
W=[000-1;
1000;
0100;
0010];
W0=[1;
0;
0];
Wc=[0001];
Tf=input('
仿真时间Tf>
>
'
T=input('
步长时间T>
A=P(:
1);
B=P(:
2);
C=P(:
3);
D=P(:
4);
FZ=P(:
5);
S=P(:
6);
n=length(A);
fori=1:
n
if(A(i)~=0)
if(B(i)==0)
E(i)=0;
F(i)=0;
G(i)=0;
H(i)=0;
L(i)=(C(i)+D(i)/T)/A(i);
Q(i)=-D(i)/(A(i)*T);
else
E(i)=exp(-A(i)*T/B(i));
F(i)=(D(i)/B(i)-C(i)/A(i))*((1-E(i))*B(i)/(A(i)*T)-1);
G(i)=(D(i)/B(i)-C(i)/A(i))*(1+(E(i)-1)*(1+B(i)/(A(i)*T)));
H(i)=1;
L(i)=D(i)/B(i);
Q(i)=0;
end
else
if(B(i)~=0)
E(i)=1;
F(i)=0.5*C(i)*T/B(i);
G(i)=F(i);
disp('
A(i)=B(i)=0'
e
d
x=zeros(length(A),1);
x0=x;
z=x;
u=zeros(length(A),1);
u0=u;
y=zeros(length(Wc(:
1)),1);
t=0;
forj=1:
Tf/T
u1=u;
u=W*x+W0*R;
x1=x;
fori=1:
z(i)=E(i)*z(i)+F(i)*u(i)+G(i)*u1(i);
x(i)=H(i)*z(i)+L(i)*u(i)+Q(i)*u1(i);
end
y=[y,Wc*x];
t=[t,t(j)+T];
if((abs(y-R)/R)<
=0.02)
data_adjust=j;
end
end
plot(t,y);
[pos,tr,ts,tp]=stepchar(t,y,0.02);
disp(['
最大超调量M='
num2str(pos)'
%'
]);
调节时间ts='
num2str(ts)'
s'
gridon;
holdon;
取仿真时间:
Tf=5
计算步长:
T=0.001
在matlab环境下执行以上程序可得到如图4-3所示的仿真曲线和如下结果。
最大超调量δ%=1.5471%,调节时间ts=0.813s。
图4-2-2所示的仿真曲线
5实习总结
6附录
Code1:
未校正前系统时域响应
Code2:
未校正前系统根轨迹
Code3:
未校正前系统频域分析
Code4:
校正环节及其校正后系统相应指标分析
Code5:
对校正后系统进行离散化数字仿真
%A
101300000;
%D
T=input('
if(B(i)~=0)
u=zeros(length(A),1);
forj=1:
u1=u;
x1=x;
fori=1:
y=[y,Wc*x];
if((abs(y-R)/R)<
7参考文献
1李国勇,谢克明,杨丽娟。
计算机仿真技术与CAD——基于MATLAB的控制系统(第二版)
2高国燊,余文烋,彭