自动控制原理4控制系统数字仿真Word格式.docx
《自动控制原理4控制系统数字仿真Word格式.docx》由会员分享,可在线阅读,更多相关《自动控制原理4控制系统数字仿真Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
(7-5)
v(s)
M(S)
(7-6)
(7-7)
(7-8)
(7-9)
(7-10)
(7-11)
“也
K严F(r”Kr』)
K严弘+杯兀+*,心))
AB亠
K3=F(r”+£
・X”+£
KyM(Fj)
瓦=尸亿+力丄”+也3・?
心))
n=01
2.控制系统数字仿真
设系统的闭环传递函数为^
如=凹=**宀…%Z
M($)Sn+“s"
T十…+心_]+a”
引入中间变量7(s)则上式叮化为:
如二凹m(s)v(s)令:
型=!
h(5)s"
十as"
T+・..a”]S+a”
誥=5严+巾严+…c”4q
由以上两式吋得如下两个微分方程
vw(r)+av^(『)+•••+d”_p(r)+anv(t)=w(r)
W)=epi(r)+c2v(w_2)(/)+•■•+c』(r)+e„v(r)
令:
v(B_1)(0)=v(n_2)(0)=-=v(0)=v(0)=0
H(0=啲,心(0="
(『)••,耳(0=E(0
则(7-8)式可化为如下一阶微分方程组:
AW=^2(r)
右”)=x3(r)
亢-1⑴=X”(0
九(0=一讣(r)-务丙⑴叭(r)+u(t)
(7~9)式口J丐成:
J(0=c”“(r)+存辺⑴+…中左)
方程(了-10)和(7-11)可写成如下向量形武:
x(r)=-IV(r)+iu(r)
y(t)=cX(t)”(2-12)
x(0)二0
这里疋⑴为H錐列向量FM(f)为标量,/为?
常数矩阵.
b为"
维列向量,£
为鬥维列向量,并分别具育如下形式・
x(t)=
巧(0伙)
*
b=
<
1
耳(f)
I
■
10
…o
01
…0
A=
曲i
占b
Q
00
…1
5-
7一1一口
n-2
…—0]
e=l
57
.…订
对比(7~3)式口J得:
F(t,JT(t),u(0)=+6w(O
三冒实验内容
已知系统结构如图7-1
Rqic
辄即”~r*
图7_1
若输入为单位阶跃帼数.计算肖超调蜀分别为非作叭,25%,和50%时K的取值(用主导极点方法佔算),并根据确定的K值在计算机上进行数字仿真。
四、实验设备
硬件:
PC机一台
软件:
MATLAB^件,MicrosoftWindowsXP。
五、实验报告
1、由公式
%e12100%
计算出%分别为5%、25%50%时的分别为0.690、0.404、0.216
K
画出Gs2在K为0到,时的闭环根轨迹,如下图
ss5
ReaAxb
再画出分别为0.690、0.404、0.216的阻尼线,求出阻尼线与
根轨迹的3个交点。
则可求出K分别为30.88、59.25和103.55。
K也可以这样算:
若系统有超调量,则由主导极点法可知原系统可简化为二阶系统,两个闭环极点共轭靠近虚轴,另一个闭环极
恥)=-_处——y旦
点远离虚轴,分别设为九为厂也,贝V'
70胪+笑$+巧
.22322、2
(S2nSn)(SS3)S(S32n)S(2nS3n)SnS3,故
22
S32n10,2nS3n25,nS3k,即可算出Ko
2、根据仿真结果,绘制阶跃响应曲线并求出&
(thesettling
time)和彷%(theoverShoot)
①当K=30.88时,
以矩阵形式输入a:
[10,25,30.88]
以矩阵形式输入c:
[0,0,30.88]
请输入步长h:
0.025请输入打印步长mh之m:
8
请输入迭代次数N*m之N:
60
theovershoot%=4.425886%
theSettlingtimetS=3.000000s.
②当K=59.25时,
以矩阵形式输入
a:
[10,25,59.25]
c:
[0,0,59.25]
0.025
请输入打印步长
mh之m:
请输入迭代次数
N*m之N:
80
theovershoot
%=23.117615%.
thesettlingtime
ts=3.150000s.
③当K=103.55时,
[10,25,103.55]
[0,0,103.55]
请输入打印步长mh之m:
请输入迭代次数N*m之N:
theovershootis%=45.722310%
thesettlingtimets=4.950000s
六、实验结论
可以看出,当系统其它参数不变,根轨迹增益K的值增加时,一对主导极点起作用;
调节时间增大,响应速度变慢,快速性降低;
超调量增加,振荡加剧,稳定性变坏。
附录程序:
functiony=runge_kutta(f)
%输入ai,ci,h,m,N.
a=input('
以矩阵形式输入a:
\n'
);
%闭环传递函数分母的系数,除最高项系数1外。
cc=input('
以矩阵形式输入c:
%闭环传递函数分子的系数,元素数与a的相同。
h=input('
请输入步长h:
'
m=input('
请输入打印步长mh之m:
N=input('
%计算A,b,c
A=[010;
001;
-a(3)-a
(2)-a
(1)];
b=[001]'
;
c=[cc(3)cc
(2)cc
(1)];
u=1;
%时域形式的u(t),单位阶跃输入时u(t)=1.
x=zeros(3,N*m);
%给X初值
t0=0;
%t初值
t=t0+[0:
N*m]*h;
y0=0;
%y初值
y=zeros(N*m,1);
y(1,:
)=y0;
fprintf('
t的值为%f\n'
t0);
%输出t,y的初值。
y的值为%f\n'
y0);
f=fun;
%函数句柄
fori=1:
N
forj=1:
mk1=h*feval(f,t(j+m*(i-1)),x(:
j+m*(i-1)),u,A,b);
k2=h*feval(f,t(j+m*(i-1))+h/2,x(:
j+m*(i-1))+k1/2,u,A,b
k3=h*feval(f,t(j+m*(i-1))+h/2,x(:
j+m*(i-1))+k2/2,u,A,b
k4=h*feval(f,t(j+m*(i-1))+h,x(:
j+m*(i-1))+k3,u,A,b);
x(:
j+1+m*(i-1))=x(:
j+m*(i-1))+(k1+2*k2+2*k3+k4)/6;
y(j+1+m*(i-1),:
)=c*x(:
j+1+m*(i-1));
end%四阶龙格库塔算法
t(m*i+1));
y(m*i+1));
%打印(m*i+1)*h步长
时的t,yend
[Y,k]=max(y);
%将一系列y中的最大值赋给Y
percentovershoot=100*(Y-1)/1;
%计算超调量(对稳定系统的
单位阶跃响应,终值为1)
theovershootis%f%%.\n'
percentovershoot);
打印超调量值
i=length(t);
while(y(i,:
)>
0.98)&
(y(i,:
)<
1.02)
i=i-1;
end
settlingtime=t(i);
%找出2%误差带时的调节时间
thesettlingtimeis%fs.\n'
settlingtime);
%打印调节时间值
plot(t,y);
%利用数值解绘制单位阶跃响应曲线grid;
title('
stepresponse'
xlabel('
t/s'
ylabel('
y/v'
functionf=fun(t,x,u,A,b)
%给出函数关系式
f=A*x+b*u;
程序流程图: