当前位置:文档之家› 南昌大学实验报告

南昌大学实验报告

南昌大学实验报告
学生姓名:学号:专业班级:_____________ 实验类型:■验证□综合□设计□创新实验日期: 2012-12 实验成绩:______
实验三三容水箱的专家控制实验
一、实验目的
①掌握三容水箱的基本构成,能够熟练地运用专家PID控制原理,来实现
对三容水箱的液位控制。

②进一步掌握专家控制原理,清楚了解PID控制的过程和相应的matlab程
序实现方法。

③了解matlab中关于的相关绘图函数的使用方法,懂得有关向量的定义及
循环操作,熟练掌握MATLAB的编程语句。

二、实验设备及条件
微型计算机,且此计算机必须装有matlab软件。

三、实验原理
专家系统是一类包含知识和推理的智能计算机程序,其内部包含某领域专
家水平的知识和经验,具有解决专门问题的能力。

直接型专家控制器用于取代常规控制器,直接控制生产过程或被控对象。

具有模拟(或延伸、拓展)操作工人智能的功能。

该控制器的任务和功能相对
比较简单,但需要在线、实时控制。

因此,其知识表达和知识库也比较简单,
通常由几十条产生式规则构成,以便于增删和修改。

直接型专家控制器的结构
如a图中的虚线所示。

专家PID控制的实质是:基于受控对象和控制规律的各种知识,无需知道
被控对象的精确模型,利用专家经验来设计PID参数。

专家PID控制是一种直
接型专家控制器。

本实验的专家控制器输入为h3的设定值,而输出为阀门开度kk,根据实
验的要求设计专家PID控制器的基本原理框图如下图所示Array
图(a)
三容水箱结构框图如下
四、实验要求 通过专家PID 控制,随着下水箱流量q4的正弦变化,要求能够通过调节阀门开度kk 来使第三个水箱中的下水箱液位h3稳定在设定值,并且其他两水箱水不会流尽和溢出。

五、 实验设计过程及结果
1、 三容水箱数学模型
可应用实验一建立的三容水箱数学模型
3
33433|
0.45)+i *pi *(2.58sin |*343222
321112kk *1q 21h h h s
q q h y q s q q h h y q s q q h h y q a ∆+=-=∆=-=∆=-=∆==
最终确定了以下参数:
s=90;
q1=1.24*kk;
q2=13*sqrt(h1);
h1=h1+(q1-q2)/s;
q3=13.4*sqrt(h2);
h2=h2+(q2-q3)/s;
q4=77*abs(sin(2.58*pi*i+0.45));
h3=h3+(q3-q4)/s;
2、根据PID控制器的控制规律和专家控制的理论思想,设计专家PID控制器。

确定观测量和控制量,定义理想的三水箱的液位高度设定值hs为130,令下水箱液位高度为h3,选择液位差e=hs-h3为观测量;
3、编写程序并调试:
clear all;
close all;
ts=0.001;
u1=0;u2=0;u3=0;
y1=0;y2=0;y3=0;
x=[0 0 0]';
x21=0;
kp=0.2;
ki=0.03;
kd=0.3;
h1(1)=200*rand(1);
h2(1)=200*rand(1);
h3(1)=200*rand(1);
h11=0;h21=0;h31=0;
hs=130; %此参数为设定值
dk=0;
kk=0;
s=90;k=80;
t=1:3500;
error1=0;
for k=1:3500
time(k)=k*ts;
y(k)=h3(k);
r(k)=hs;
error(k)=r(k)-y(k);
u(k)=kp*x(1)+kd*x(2)+ki*(3);
if abs(x(1))>0.8
u(k)=0.45;
elseif abs(x(1))>0.40
u(k)=0.40;
elseif abs(x(1))>0.20
u(k)=0.12;
elseif abs(x(1))>0.01
u(k)=0.1;
end
if x(1)*x(2)>0|(x(2)==0)
if abs(x(1))>=0.05
u(k)=u1+2*kp*x(1);
else
u(k)=u1+0.4*kp*x(1);
end
end
if (x(1)*x(2)<0&x(2)*x21>0)|(x(1)==0)
u(k)=u(k);
end
if x(1)*x(2)<0&x(2)*x21<0
if abs(x(1))>=0.05
u(k)=u1+2*kp*error1;
else
u(k)=u1+0.6*kp*error1;
end
end
if abs(x(1))<=0.001
u(k)=0.5*x(1)+0.010*x(3);
end
if u(k)>=10
u(k)=10;
end
if u(k)<=-10
u(k)=-10;
end
dk=u(k);
if kk<0|h1(k)>=180|h2(k)>=180|h3(k)>=190 kk=0;
elseif kk>90|h1(k)<=10|h2(k)<=10&h3(k)<=10 kk=90;
else
kk=kk+dk;
end
if kk<0
kk=0;
end
if kk>90|(h2(k)<10&h3(k)<10)
kk=90;
end
if (error(k)<20&error(k)>2|error(k)<-10)&h3(k)>30 kk=0;
end
%以下为三容水箱模型
q1=1.24*kk;
q2=13*sqrt(h1(k));
h11=(q1-q2)/s;
h1(k+1)=h1(k)+h11;
if h1(k+1)<0
h1(k+1)=0;
end
q3=13.4*sqrt(h2(k));
h21=(q2-q3)/s;
h2(k+1)=h2(k)+h21;
if h2(k+1)<0
h2(k+1)=0;
end
q4=77*abs(sin(2.58*pi*k+0.45));
h31=(q3-q4)/s;
h3(k+1)=h3(k)+h31;
if h3(k+1)<0
h3(k+1)=0;
end
u3=u2;u2=u1;u1=u(k);
y3=y2;y2=y1;y1=y(k);
x(1)=error(k);
x21=x(2);
x(2)=(error(k)-error1)/ts;
x(3)=x(3)+error(k)*ts;
error1=error(k);
end
figure(1);
plot(t,y,t,r,'r');
xlabel('时间t');ylabel('下水箱液位h3');
axis([0 3500 0 200]);
六、实验结果及分析
由运行结果可知,设定值为130,下水箱水位的初始值为随机值,经过模糊控制之后,下水箱的水位稳定在130,满足控制要求。

实验的结果如上图所示。

七、实验总结。

相关主题