控制系统仿真实验报告二.docx

上传人:b****8 文档编号:28129142 上传时间:2023-07-08 格式:DOCX 页数:13 大小:134.64KB
下载 相关 举报
控制系统仿真实验报告二.docx_第1页
第1页 / 共13页
控制系统仿真实验报告二.docx_第2页
第2页 / 共13页
控制系统仿真实验报告二.docx_第3页
第3页 / 共13页
控制系统仿真实验报告二.docx_第4页
第4页 / 共13页
控制系统仿真实验报告二.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

控制系统仿真实验报告二.docx

《控制系统仿真实验报告二.docx》由会员分享,可在线阅读,更多相关《控制系统仿真实验报告二.docx(13页珍藏版)》请在冰豆网上搜索。

控制系统仿真实验报告二.docx

控制系统仿真实验报告二

控制系统仿真技术实验报告二

专业班级:

######姓名:

#####学号:

########

实验二面向结构图的仿真

1、线性模型仿真

1、取Kp=1.78,Ti=85s,T=10s,δH2s=H2set_percent=80,δQd=0,tend=700.进行仿真实验,绘制响应曲线。

clc

clearall

A=2;

ku=0.1/0.5;

H10=1.5;

H20=1.4;

alpha12=0.25/sqrt(H10);

alpha2=0.25/sqrt(H20);

R12=2*sqrt(H10)/alpha12;

R2=2*sqrt(H20)/alpha2;

H1SpanLo=0;

H2SpanLo=0;

H1SpanHi=2.52;

H2SpanHi=2.52;

Kp=1.78;

Ti=85;

R12*A

R12

ad=1/(A*R12);

a1=1/(A*R12);

a2=1/(A*R2);

Kc=Kp/Ti;

bc=Ti;

Kd=1/A;

K1=ku/A;

K2=1/(A*R12);

uc

(1)=0;ud

(1)=0;u1

(1)=0;u2

(1)=0;

xc

(1)=0;xd

(1)=0;x1

(1)=0;x2

(1)=0;

yd

(1)=0;yc

(1)=0;y1

(1)=0;y2

(1)=0;

nCounter=70;

T=10;

k=1;

deltaQd=0;

H20_percent=(H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100;

H2=80;

tend=nCounter*T;

fort=T:

T:

tend

k=k+1;

uc(k)=(H2-(y2(k-1)+H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100)/100;

ud(k)=deltaQd;

u1(k)=yc(k-1);

u2(k)=y1(k-1);

xc(k)=xc(k-1)+Kc*T*uc(k-1);

yc(k)=xc(k)+bc*Kc*uc(k);

xd(k)=exp(-ad*T)*xd(k-1)+Kd/ad*(1-exp(-ad*T))*ud(k);

yd(k)=xd(k);

x1(k)=exp(-a1*T)*x1(k-1)+K1/a1*(1-exp(-a1*T))*u1(k);

y1(k)=x1(k);

x2(k)=exp(-a2*T)*x2(k-1)+K2/a2*(1-exp(-a2*T))*u2(k);

y2(k)=x2(k);

End

Hlevel(:

1)=(y1+H10-H1SpanLo)/(H1SpanHi-H1SpanLo)*100;

Hlevel(:

2)=(y2+H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100;

yc=(yc+0.5)*100;

y2sp=H2*ones(size(y1'));

yv=yc;

textPositionH1=max(Hlevel(:

1));

textPositionH2=max(Hlevel(:

2));

H2Steady=Hlevel(size(Hlevel(:

1),1),1)*ones(size(y1'));

xmax=max(0:

T:

tend);

xmin=0;

ymax=110;

ymin=50;

scrsz=get(0,'ScreenSize');

gca=figure('Position',[510scrsz(3)-10scrsz(4)-90]);

set(gca,'Color','w');

plot(0:

T:

tend,Hlevel(:

1),'r','LineWidth',2)

holdon

plot(0:

T:

tend,Hlevel(:

2),'b','LineWidth',2)

holdon

plot(0:

T:

tend,yv,'k','LineWidth',2)

holdon

plot(0:

T:

tend,y2sp,'g','LineWidth',2)

holdon

plot(0:

T:

tend,H2Steady,'y','LineWidth',2)

line([tend/2tend/2+27],[(ymax-ymin)/2+ymin-(ymax-ymin)/10

(ymax-ymin)/2+ymin-(ymax-ymin)/10],'Color','r','LineWidth',6)

text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/10,'第1个水箱的液

位H1','FontSize',16)

line([tend/2tend/2+27],[(ymax-ymin)/2+ymin-(ymax-ymin)/6

(ymax-ymin)/2+ymin-(ymax-ymin)/6],'Color','b','LineWidth',6)

text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/6,'第2个水箱的

液位H2','FontSize',16)

line([tend/2tend/2+27],[(ymax-ymin)/2+ymin-(ymax-ymin)/4.2

(ymax-ymin)/2+ymin-(ymax-ymin)/4.2],'Color','g','LineWidth',6)

text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/4.2,'第2个水箱

的液位给定值','FontSize',16)

line([tend/2tend/2+27],[(ymax-ymin)/2+ymin-(ymax-ymin)/3.2

(ymax-ymin)/2+ymin-(ymax-ymin)/3.2],'Color','k','LineWidth',6)

text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/3.2,'阀位变化情况','FontSize',16)

axis([xminxmaxyminymax]);

text(tend/5,ymax+1.5,'实验二不考虑阀位饱和特性时的控制效果

','FontSize',22)

Grid

%holdoff

2、用MATLAB求出从输入到输出的传递函数,并将其用c2d函数,利用双线性变换法转换为离散模型。

再用dstep()函数求离散模型的阶跃响应,阶跃幅值为3。

clc

clearall

%%%%%%%%%%%%%%%%%%%%%定义参数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

A=2;%水箱横截面积

ku=0.1/0.5;%阀门流量系数

H10=1.5;%水箱1的平衡高度

H20=1.4;%水箱2的平衡高度

alpha12=0.25/sqrt(H10);%水箱1流向水箱2流量系数

alpha2=0.25/sqrt(H20);%水箱2流出水流量系数

R12=2*sqrt(H10)/alpha12;%线性化数学模型中的参数

R2=2*sqrt(H20)/alpha2;%线性化数学模型中的参数

H1SpanLo=0;%水箱1量程下限

H2SpanLo=0;%水箱2量程下限

H1SpanHi=2.52;%水箱1量程上限

H2SpanHi=2.52;%水箱2量程上限

Kp=1.78;%PI控制器比例系数

Ti=85;%PI控制器积分时间常数

R12*A

R12

Kc=Kp/Ti;%式(4)中参数

bc=Ti;%式(4)中参数

Kd=1/A;%式(5)中参数

ad=1/(A*R12);%式(5)中参数

a1=1/(A*R12);%式(6)中参数

K1=ku/A;%式(6)中参数

a2=1/(A*R2);%式(7)中参数

K2=1/(A*R12);%式(7)中参数

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

numc=[Kc*bc,Kc];

denc=[1,0];

numd=[Kd]

dend=[1,ad]

num1=[K1]

den1=[1,a1]

num2=[K2]

den2=[1,a2]

Gc=tf(numc,denc);

G1=tf(num1,den1);

G2=tf(num2,den2);

Sysq=Gc*G1*G2;

SysG=feedback(Sysq,1);

GG=c2d(SysG,10,'tustin');

dstep(3*GG.num{1},GG.den{1});

2、含有非线性环节的控制系统仿真

取Kp=1.78,Ti=85s,T=10s,δH2s=H2set_percent=80,δQd=0,tend=700.进行仿真实验,绘制响应曲线。

clc

clearall

A=2;

ku=0.1/0.5;

H10=1.5;

H20=1.4;

alpha12=0.25/sqrt(H10);

alpha2=0.25/sqrt(H20);

R12=2*sqrt(H10)/alpha12;

R2=2*sqrt(H20)/alpha2;

H1SpanLo=0;

H2SpanLo=0;

H1SpanHi=2.52;

H2SpanHi=2.52;

Kp=3.91/2.2;;

Ti=0.85*100;

ad=1/(A*R12);

a1=1/(A*R12);

a2=1/(A*R2);

Kc=Kp/Ti;

bc=Ti;

Kd=1/A;

K1=ku/A;

K2=1/(A*R12);

uc

(1)=0;uv

(1)=0;ud

(1)=0;u1

(1)=0;u2

(1)=0;

xc

(1)=0;xv

(1)=0;xd

(1)=0;x1

(1)=0;x2

(1)=0;

yc

(1)=0;yv

(1)=0;yd

(1)=0;y1

(1)=0;y2

(1)=0;

nCounter=70;

T=10;

k=1;

deltaQd=0;

c=0.5;

H20_percent=(H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100;

H2set_percent=82;

tend=nCounter*T;

fort=T:

T:

tend

k=k+1;

uc(k)=(H2set_percent-(y2(k-1)+H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100)/100;

uv(k)=yc(k-1);

ud(k)=deltaQd;

ifuv(k)>c

yv(k)=c;

end

ifuv(k)<-c

yv(k)=0;

end

ifuv(k)<=c&uv(k)>=-c

yv(k)=uv(k);

end

u1(k)=yv(k);

u2(k)=y1(k-1);

xc(k)=xc(k-1)+Kc*T*uc(k-1);

yc(k)=xc(k)+bc*Kc*uc(k);

xd(k)=exp(-ad*T)*xd(k-1)+Kd/ad*(1-exp(-ad*T))*ud(k);

yd(k)=xd(k);

x1(k)=exp(-a1*T)*x1(k-1)+K1/a1*(1-exp(-a1*T))*u1(k);

y1(k)=x1(k);

x2(k)=exp(-a2*T)*x2(k-1)+K2/a2*(1-exp(-a2*T))*u2(k);

y2(k)=x2(k);

End

Hlevel(:

1)=(y1+H10-H1SpanLo)/(H1SpanHi-H1SpanLo)*100;

Hlevel(:

2)=(y2+H20-H2SpanLo)/(H2SpanHi-H2SpanLo)*100;

yv=(yv+0.5)*100;

y2sp=H2set_percent*ones(size(y1'));

textPositionH1=max(Hlevel(:

1));

textPositionH2=max(Hlevel(:

2));

H2Steady=Hlevel(size(Hlevel(:

1),1),1)*ones(size(y1'));

xmax=max(0:

T:

tend);

xmin=0;

ymax=110;

ymin=50;

scrsz=get(0,'ScreenSize');

gca=figure('Position',[510scrsz(3)-10scrsz(4)-90])

set(gca,'Color','w');

plot(0:

T:

tend,Hlevel(:

1),'r','LineWidth',2)

holdon

plot(0:

T:

tend,Hlevel(:

2),'b','LineWidth',2)

holdon

plot(0:

T:

tend,yv,'k','LineWidth',2)

holdon

plot(0:

T:

tend,y2sp,'g','LineWidth',2)

holdon

plot(0:

T:

tend,H2Steady,'y','LineWidth',2)

line([tend/2tend/2+27],[(ymax-ymin)/2+ymin-(ymax-ymin)/10

(ymax-ymin)/2+ymin-(ymax-ymin)/10],'Color','r','LineWidth',6)

text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/10,'第1个水箱的液

位H1','FontSize',16)

line([tend/2tend/2+27],[(ymax-ymin)/2+ymin-(ymax-ymin)/6

(ymax-ymin)/2+ymin-(ymax-ymin)/6],'Color','b','LineWidth',6)

text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/6,'第2个水箱的液

位H2','FontSize',16)

line([tend/2tend/2+27],[(ymax-ymin)/2+ymin-(ymax-ymin)/4.2

(ymax-ymin)/2+ymin-(ymax-ymin)/4.2],'Color','g','LineWidth',6)

text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/4.2,'第2个水箱的

液位给定值','FontSize',16)

line([tend/2tend/2+27],[(ymax-ymin)/2+ymin-(ymax-ymin)/3.2

(ymax-ymin)/2+ymin-(ymax-ymin)/3.2],'Color','k','LineWidth',6)

text(tend/2+27,(ymax-ymin)/2+ymin-(ymax-ymin)/3.2,'阀位变化情况

','FontSize',16)

axis([xminxmaxyminymax]);

text(tend/5,ymax+1.5,'实验三考虑阀位饱和特性时的控制效果',

'FontSize',22)

Grid

%holdoff

三、思考与总结

1、在未考虑调节阀饱和特性时,讨论一下两个水箱液位的变化情况,工业上是否允许?

讨论阀位的变化情况,工业上是否能实现?

答:

在未考虑调节阀饱和特性时,两个水箱的液位在阀位一开始大开时,H1,H2液位上升迅速,很快就达到预期值。

但是其控制不能在工业上实现,没有实际可行度。

除此之外,阀位有其本身的最大最小的限制,在仿真中出现的超过100%的情况在现实生活中不可能出现,因此这一部分对应的控制效果在工业上不能实现。

2、与实验三相比,考虑调节阀饱和特性前后,响应有何不同?

答:

与实验三相比,调节饱和特性阀前后调进行对比,H1 、H2的液位在考虑饱和特性之后,响应曲线比不考虑的时候略微平缓一些。

3、实验心得

答:

通过本实验,我基本掌握理解了控制系统闭环的仿真技术以及MATLAB中c2d函数的用法;对面向结构图的离散相似法的原理和程序结构以及双线性变换的原理有了进一步的掌握和了解。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1