****大学《控制系统仿真与设计》总结报告基于MATLAB的双水箱液位控制系统仿真
学生姓名:
院系班级:
学号:
联系电话:
Email:
2018年5月26日
一、单水箱模型仿真及控制
1.水箱液位仿真
1.1液位表达式的转化
由流量方程表达式:Adh = (qin − q1)dt;q1=k√h;
得dh与dt关系式:dh = (qin − k√h)dt÷S;其中dt为仿真时间步长,h为当前液位
高度,dh为进行一步后液位变化量,累加即得实际液位。
1.2程序流程图
1.3程序代码
S=15;%截面积
k=1.5;%流量系数
qin=2;%输入流量
T=1000;%仿真时间
dt=1;%步长
h=zeros(1,T/dt);%初始化液位数组
h(1,1)=0;%液位初值
for i=1:T/dt-1
q1=k*sqrt(h(1,i));
dh=(qin-q1)*dt/S;
h(1,i+1)=h(1,i)+dh;
end
t=0:dt:T-1;%时间坐标
plot(t,h);%绘图
xlabel('t(s)'),ylabel('h(m)');
title('A水箱液位仿真(未添加控制)');
legend('h');
1.4仿真结果
液位初值0液位初值2
2.PID仿真模型构建
2.1PID传递函数结构图
+ Kd * s 由PID控制器传递函数:G(s) = K p+ K i
s
利用Simulink绘制结构图:
2.2由结构图建立子系统
选中结构图,建立subsystem
参数设定窗口设置:
即可通过双击子系统修改PID参数
3.PID控制的实现及参数整定
3.1建立原系统结构图并仿真
设置仿真时间为1000,得到仿真结果:
可见该结果与1.4结果相同。
3.2加入PID控制环节并整定参数
3.2.1在原系统中加入PID控制器
通过PID控制器控制阀门开度即改变系数k,将PID控制器插入至如下位
置,同时给PID控制器输出添加限制(0~1.5)以模拟实际情况:
3.2.2修改参数,直至响应达到目标
经过反复整定,最终得到预期响应曲线:
调节时间15s,超调量0.15%,稳态误差0.15%
二、双水箱模型仿真及控制
1.双水箱系统结构图的建立
由液阻液容定义建立系统结构图:
2.PID控制双水箱系统
在原系统输入端加入PID控制器
调节参数,使液位稳定:
3通过阀门控制双水箱液位在阀门位置添加PID控制器:
先整定阀门一,在整定阀门二,最终得到响应曲线如下:
GUI设计
为了使控制模型与仿真之间转换更方便,设计简单的图形操作界面。
打开gui时,同时打开simulink模型:
function model_open(handles)
if isempty(find_system('Name','pidcontrol_1')),
open_system('pidcontrol_1'); %打开simulink模型
end
%endfunction model_open
点击设定参数(SET PARAM)按钮时,打开PID参数设定框:function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) open_system('pidcontrol_1/Subsystem');
点击开始仿真后,启动Simulink仿真,然后打开Scope观察响应:function START_sim_Callback(hObject, eventdata, handles)
% hObject handle to START_sim (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
sim('pidcontrol_1');
open_system('pidcontrol_1/Scope');
实际效果:。