水箱液位控制系统控制实现及开环辨识

本文摘自我的实验报告

单回路水箱液位控制系统参数整定

利用单回路水箱液位控制系统的算法进行控制系统参数设计。按照如下步骤进行参数的整定。

  1. 将硬件按照算法所设计的硬件输入输出接口相连接;
  2. 将软件与PLC装置进行通讯和联机设置;
  3. 打开设备电源,使设备进行工作;
  4. 打开数据收集模块开关,进行数据的收集;
  5. 利用收集的数据结合MATLAB作图,观察控制系统的控制效果;
  6. 如效果不佳,修改PID参数并重新进行2~6步的整定步骤,如果效果良好,转到第7步;
  7. 记录PID数据及水箱的液位数据.
    如下所示为参数整定的流程图

特别地,整定过程中需要注意以下几点:

  1. 确定数据收集的次数,并注意数据是否满足上载到主机的条件;
  2. 选取合适的PID调节方法,如衰减曲线法、等;
  3. 调节PID参数进行参数整定时,要耐心细心。
    如下所示为前几次参数整定的水箱液位图

可以看到,液位稳定的稳态时间较长,超调量不够大,继续修改I和D参数。得到如下所示的满足4:1的曲线

python 水箱液位代码 水箱液位pid参数整定_拟合

此时系统的PID参数分别是10000,1000,70。参数整定完成。

单回路水箱液位控制系统结论

从上述参数整定的结果和水箱液位变化图来看,单回路水箱液位控制系统能够快速地将液位变化到给定液位,同时超调量和上升时间均满足预期要求,动态性能良好;在液位稳定后,液位变化很小,稳定在给定液位,稳态性能良好。说明经参数整定后的单回路水箱液位控制系统是有效的,能对水箱液位进行控制。

水箱液位串级控制实现

水箱液位串级控制系统参数整定

串级控制系统的参数整定与单回路控制系统的参数整定步骤类似,不同的是串级控制有2个PID参数,在上述单回路水箱液位控制系统参数已整定的基础上完成串级控制系统的参数整定。

按照4.1.1所述的参数整定步骤进行参数整定,得到如下图所示的液位变化曲线

python 水箱液位代码 水箱液位pid参数整定_拟合_02

此时的水箱管压PID参数分别是15000,100,20。

水箱液位串级控制系统结论

从上述参数整定的结果和水箱液位变化曲线来看,水箱液位串级控制系统能够快速地将液位变化到给定液位,同时超调量和上升时间均满足预期要求,动态性能良好;在液位稳定后,液位变化很小,稳定在给定液位,稳态性能良好。说明经参数整定后的水箱液位串级控制系统是有效的,能对水箱液位实现控制,达到预期的控制效果。

将单回路和串级控制的液位变化曲线绘制到同一张图中

python 水箱液位代码 水箱液位pid参数整定_数据_03

水箱液位控制系统辨识实现

水箱液位控制系统开环辨识在水箱液位串级控制系统实现的基础上进行。按照如下步骤进行水箱系统的开环辨识

  1. 首先给定液位,利用水箱液位串级控制系统使水箱稳定在某一液位上,记录下此时的齿轮泵输出数值;
  2. 关闭水箱液位串级控制系统,给定齿轮泵输出,要求该输出大于水箱液位200~300;
  3. 打开水箱液位系统,但对其不控制,即既不是单回路控制也不是串级控制;
  4. 等待其重新稳定到某一液位值时,上载水箱液位变化数据;
  5. 将水箱液位变化数据导出到MATLAB,并利用系统辨识工具箱,对系统进行辨识;
  6. 对辨识后的系统进行调整,使其拟合于系统实际的液位变化曲线。
    开环辨识的系统流程图如下图所示:

给定液位为50,待系统经水箱液位控制系统稳定后,给定齿轮泵输出,该输出比串级控制系统的齿轮泵输出数值大200。待水箱液位再次稳定后,将水箱液位变化数据导入到MATLAB中进行系统辨识,系统辨识的工具箱使用示例如下。

python 水箱液位代码 水箱液位pid参数整定_数据_04

经辨识得到的结果如下图所示,可以看到辨识的精度达到了95.27%。

python 水箱液位代码 水箱液位pid参数整定_拟合_05

继续对得到的传递函数进行调整,使其拟合于水箱实际的液位变化曲线。得到如下图所示的传递函数和液位曲线拟合。

python 水箱液位代码 水箱液位pid参数整定_拟合_06


python 水箱液位代码 水箱液位pid参数整定_数据_07


至此,开环辨识已经完成,我们得到了系统的传递函数的各个参数,并用该传递函数对系统实际的液位曲线变化进行拟合,从上图种可以看到,拟合效果良好。