资源描述:
《控制系统系统仿真实验二资料报告材料.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二面向结构图的仿真四思考题(1)在未考虑调节阀饱和特性时,讨论一下两个水箱液位的变化情况,工业上是否允许?讨论阀位的变化情况,工业上是否能实现?答:在一开始阀位大开,H1,H2液位上升迅速,很快就达到预期值。但显然不能在工业上实现。阀位有其本身的最大最小的限制,在仿真中出现的超过100%的情况在现实生活中不可能出现,因此这一部分对应的控制效果也是无效的。(2)与实验三相比,考虑调节阀饱和特性前后,响应有何不同?答:H1H2的液位在考虑饱和特性之后,响应曲线比不考虑的时候略微平缓一些。第一部分线性系统仿真一实验目的1.掌握理解控制系统闭环仿真技术。2.掌握理解面向结构图的离散相似法的
2、原理和程序结构。3.掌握MATLAB中C2D函数的用法,掌握双线性变换的原理。二实验容根据上面的各式,编写仿真程序,实现无扰动时给定值阶跃仿真实验1.取KP=1.78,Ti=85sT=10s,ΔH2S=H2set_percent=80,ΔQd=0,tend=700,进行仿真实验,绘制响应曲线。clcclearallA=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;H2Spa
3、nLo=0;H1SpanHi=2.52;H2SpanHi=2.52;Kp=1.78;Ti=85;R12*AR12ad=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)/(H2Sp
4、anHi-H2SpanLo)*100;H2=80;tend=nCounter*T;fort=T:T:tendk=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)*
5、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);endHlevel(:,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(:,
6、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]);%gca=figure('Position',[510scrsz(3)/2scrsz(4)/1.5])set(gca,'Color','w');plot(0:T:tend
7、,Hlevel(:,1),'r','LineWidth',2)holdonplot(0:T:tend,Hlevel(:,2),'b','LineWidth',2)holdonplot(0:T:tend,yv,'k','LineWidth',2)holdonplot(0:T:tend,y2sp,'g','LineWidth',2)holdonplot(0:T:tend,H2Steady,'y','LineWidth',2)line([tend/2