控制系统仿真实验二报告

时间:2024.3.20

实验二 面向结构图的仿真

四 思考题

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

答:在一开始阀位大开,H1,H2液位上升迅速,很快就达到预期值。但显然不能在工业上实现。阀位有其本身的最大最小的限制,在仿真中出现的超过100%的情况在现实生活中不可能出现,因此这一部分对应的控制效果也是无效的。

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

答:H1 H2的液位在考虑饱和特性之后,响应曲线比不考虑的时候略微平缓一些。

第一部分 线性系统仿真

一 实验目的

1. 掌握理解控制系统闭环仿真技术。

2. 掌握理解面向结构图的离散相似法的原理和程序结构。

3. 掌握 MATLAB 中C2D 函数的用法,掌握双线性变换的原理。

二 实验内容

根据上面的各式,编写仿真程序,实现无扰动时给定值阶跃仿真实验

1. K P = 1.78 ,T i = 85 sT = 10sΔH2 S  =H2set_ percent = 80, ΔQ d = 0,

tend = 700,进行仿真实验,绘制响应曲线。

clc

clear all

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;

for t=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',[5 10 scrsz(3)-10 scrsz(4)-90]);

    %gca=figure('Position',[5 10 scrsz(3)/2 scrsz(4)/1.5])

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

  

    plot(0:T:tend,Hlevel(:,1),'r','LineWidth',2)   

    hold on

    plot(0:T:tend,Hlevel(:,2),'b','LineWidth',2)

    hold on

    plot(0:T:tend,yv,'k','LineWidth',2)

    hold on

    plot(0:T:tend,y2sp,'g','LineWidth',2)

    hold on

    plot(0:T:tend,H2Steady,'y','LineWidth',2)

    line([tend/2 tend/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,' 第一个水箱的液位H1','FontSize',16) 

    line([tend/2 tend/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,' 第二个水箱的液位H2','FontSize',16) 

    line([tend/2 tend/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,' 第二个水箱的液位给定值','FontSize',16) 

    line([tend/2 tend/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([xmin xmax  ymin  ymax]);

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

    grid

2. 用 MATLAB 求出从输入到输出的传递函数,并将其用c2d 函数,利用双线性变换法转

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

clc

clear all

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);

numc=[Kc*bc,Kc];% 用 MATLAB 求出从输入到输出的传递函数,

denc=[1];

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’);% 用c2d 函数,利用双线性变换法转

换为离散模型

dstep(3*gg.num{1},gg.den{1});%用dstep()函数求离散模型的阶跃响应,阶跃幅值为3

结果

三 实验报告

实验完成后,要写出实验报告,内容包括:

1.实验步骤及说明;

2.实验所用的仿真程序清单,以及程序结构的简单说明;

第二部分 含有非线性环节的控制系统仿真

一 实验目的

4. 掌握理解控制系统闭环仿真技术。

5. 掌握理解面向结构图的离散相似法的原理和程序结构。

6. 掌握理含有非线性环节的控制系统的仿真方法。

二 实验内容

根据上面的各式,编写仿真程序,实现无扰动时给定值阶跃仿真实验

1. K P = 1.78 ,T i = 85 sT = 10sΔH2 S  =H2set_ percent = 80, ΔQ d = 0,

tend = 700,进行仿真实验,绘制响应曲线。

clc

clear all

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;

%Kp=3.21;

%Ti=99999999999999;

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=80;

tend = nCounter*T;

for t=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;

    if uv(k)>c

        yv(k)=c;

    end

    if uv(k)<-c

        yv(k)=0;

    end

    if uv(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',[5 10 scrsz(3)-10 scrsz(4)-90])

    %gca=figure('Position',[5 10 scrsz(3)/2 scrsz(4)/1.5])

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

  

    plot(0:T:tend,Hlevel(:,1),'r','LineWidth',2)   

    hold on

    plot(0:T:tend,Hlevel(:,2),'b','LineWidth',2)

    hold on

    plot(0:T:tend,yv,'k','LineWidth',2)

    hold on

    plot(0:T:tend,y2sp,'g','LineWidth',2)

    hold on

    plot(0:T:tend,H2Steady,'y','LineWidth',2)

    line([tend/2 tend/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,' 第一个水箱的液位H1','FontSize',16) 

    line([tend/2 tend/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,' 第二个水箱的液位H2','FontSize',16) 

    line([tend/2 tend/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,' 第二个水箱的液位给定值','FontSize',16) 

    line([tend/2 tend/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,'阀位变化情况',16) 

    axis([xmin xmax  ymin  ymax]);

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

    grid

四 实验报告

实验完成后,要写出实验报告,内容包括:

1.实验步骤及说明;

3.实验所用的仿真程序清单,以及程序结构的简单说明;

更多相关推荐:
控制系统仿真实验报告

控制系统仿真实验报告一实验目的进一步掌握数值积分法进一步掌握MATLAB软件的使用方法二实验设备数字计算机MATLAB软件三实验预备1将传递函数化为一阶微分方程组即状态方程令y1yy2y则yy1y1y2y406...

控制系统仿真实验报告 (2)

昆明理工大学电力工程学院学生实验报告实验课程名称控制系统仿真实验开课实验室年月日实验一电路的建模与仿真一实验目的1了解KCLKVL原理2掌握建立矩阵并编写M文件3调试M文件验证KCLKVL4掌握用simulin...

控制系统仿真实验报告

附件四学生实验报告表头格式昆明理工大学电力工程学院学生实验报告实验课程名称开课实验室年月日实验一电路的建模与仿真一实验目的1了解KCLKVL原理2掌握建立矩阵并编写M文件3调试M文件验证KCLKVL4掌握用si...

MATLAB与控制系统仿真实验报告

MATLAB与控制系统仿真实验报告20xx20xx学年第1学期专业班级学号姓名实验三MATLAB图形系统一实验目的1掌握绘制二维图形的常用函数2掌握绘制三维图形的常用函数3熟悉利用图形对象进行绘图操作的方法4掌...

基于MATLAB控制系统仿真实验报告

中南大学计算机控制系统仿真实验报告信息科学与工程学院自动化0903班实验一MATLAB语言编程一实验目的1熟悉Matlab语言及其环境掌握编程方法2要求认真听取实验指导老师讲解与演示二具体实验内容步骤要求1运行...

《自动控制原理》仿真实验报告

中国地质大学江城学院自动控制原理仿真实验报告姓名吴丽芳班级数控2班学号指导教师祁锋20xx年12月9日目录实验一MATLAB软件的安装与认知实验二使用软件进行数值运算和绘图实验三采用SIMULINK仿真模块进行...

控制系统数字仿真_实验内容(共4次实验)

实验一数值积分法仿真一实验目的1掌握基于数值积分法的系统仿真了解各仿真参数的影响2熟悉MATLAB语言及应用环境二实验环境网络计算机系统MATLAB语言环境三实验示例介绍一用Euler法和四阶RK法求初值问题的...

机器人控制-数码管动态显示-仿真实验报告

机器人控制课程总结报告机器人控制仿真实验二数码管动态显示姓名李铃年级20xx级系别信息工程学院计科师学号1111000048同组人姓名杨晨年级20xx级系别信息工程学院计科师同组人学号111100005420x...

控制系统计算机仿真-实验五

实验五采样控制系统的数字仿真实验一实验目的1掌握采样控制系统数字仿真的特点2了解数字控制器对系统动态性能的影响3学会编制双重循环法的仿真程序二实验预习1复习采样控制系统的仿真原理及特点2根据理论分析初步估计系统...

物流系统仿真实验报告

实验报告课程名称物流系统仿真实验类型上机实验项目名称Flexsim仿真软件操作学生姓名xxx专业物流工程学号XXXXXX同组学生姓名指导老师XXXXXX实验地点XXXXXX实验日期20xx1029一实验目的和要...

系统工程仿真实验报告

系统工程仿真实验报告姓名蒋智颖学号110061047成绩实验一基于VENSIM的系统动力学仿真一实验目的VENSIM是一个建模工具可以建立动态系统的概念化的文档化的仿真分析和优化模型PLE个人学习版是VENSI...

物流系统仿真综合实验报告

成都信息工程学院物流系统仿真物流系统仿真综合实验报告报告作者姓名课程名称指导教师学生学号学院名称专业名称赵锐物流系统仿真胡云涛20xx219xx6管理学院物流管理

控制系统仿真实验报告(19篇)