!!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!!
💕💕作者:优创学社
💕💕个人简介:本人在读博士研究生,拥有多年程序开发经验,辅导过上万人毕业设计,支持各类专业;如果需要论文、毕设辅导,程序定制可以联系作者
💕💕各类成品java系统 。javaweb,ssh,ssm,springboot等等项目框架,源码丰富,欢迎咨询交流。学习资料、程序开发、技术解答、代码讲解、源码部署,需要请看文末联系方式。
基于 PFC-PID 的水箱液位控制系统设计
摘要:本课程设计围绕水箱液位控制系统展开深入研究,核心目标为对比分析 PID 与 PFC - PID 控制算法在该系统中的应用成效。首先,依据物理原理与质量守恒定律构建水箱液位系统数学模型,为后续算法应用奠定基础。接着详细解析 PID 算法的比例、积分、微分原理及其离散化形式,以及 PFC - PID 算法融合预测函数控制与 PID 的独特机制。利用 MATLAB 编程实施仿真,模拟多种工况并添加脉冲干扰、白噪声干扰,全面测试算法性能。经多方面对比发现,PFC - PID 算法在抑制超调、缩短调节时间、减小稳态误差及抗干扰性上表现突出,PID 算法则在简单工况下具成本与实现优势。综合考量,为不同精度、稳定性及成本需求的实际工程提供了精准的控制算法选择策略,有力推动水箱液位控制技术发展。
关键词:液位控制;PID;PFC-PID;干扰
目录
一、引言
在众多工业生产与日常生活场景中,水箱液位控制起着举足轻重的作用。水箱液位控制系统是将水箱中的液位当作被控对象参数的控制系统[1]。通过计算机的监控界面可以获取生产过程中容器的液位参数,对水箱液位进行监视和控制,使生产过程中的液体流进流出更加平衡。并且当水箱液位达到目标高度时,系统将会以指示灯或者报警的方式提示工作人员,系统也会对目标高度自动调节,使工业过程更加稳定。液位几乎是工业生产过程中使用最广泛的参数,因此水箱液位控制系统被大部分工业系统使用。例如化工生产里,精确的液位调控确保化学反应平稳、高效推进;在水处理环节,精准的液位管理保障水净化流程顺畅无阻;于暖通空调体系内,恰当的液位维持有助于系统维持理想的热交换效能。一旦液位控制出现偏差,不仅可能致使产品质量下滑、能源无端损耗,甚至会引发设备故障、危及生产安全。
鉴于此,自动控制技术成为解决水箱液位控制难题的关键利器。传统的手动控制手段已难以契合现代工业对精度与自动化的严苛诉求[2]。在众多自动控制策略里,PID 控制器凭借其原理简洁、可靠性强以及良好的鲁棒性,得以广泛普及。然而,伴随工业进程愈发复杂,控制性能要求持续攀升,诸如 PFC-PID 这类融合先进理念的控制器应运而生,为液位控制的优化开拓了全新路径。
本课程设计致力于对 PID 与 PFC-PID 算法于水箱液位控制系统中的表现展开深度剖析,借助理论探究、仿真模拟以及实验检验,力求精准揭示二者的优势与局限,为实际应用筛选适配的控制方案。
二、水箱液位控制系统建模
水箱液位控制系统本质上是一个动态系统,精准建模是后续控制算法设计与性能分析的基石。单容水箱控制系统是一个单回路反馈控制系统。系统中的研究对象是水箱中的水箱液位。系统是通过水泵将水池的溶液传输进水箱,执行器是电动阀,根据水箱的实时水位,利用程序算法,降低系统中的干扰,实现自动控制水箱中的液位为目标液位。通过水阀控制液体的流进与流出,从而进行液位控制。单容水箱液位控制系统[3]的作用是控制水箱外的液体流进水箱以及水箱内的液体流出水箱从而使水箱内的液位达到设定值,保持液位的动态平衡,利用控制程序使系统内部或外部的干扰带来的误差尽可能的降低。
2.1 物理建模
考虑一个结构相对简洁的单容水箱(如图1),其外形呈圆柱体,设横截面积为A。流入水箱的液体流量记作u
,流出流量遵循托里拆利定律,与液位高度h
成正比例关系,比例系数设定为R
(即流出系数),意味着流出流量可表示为hR
。
图 1 单容水箱液位工艺流程
依据质量守恒定律,水箱内部液体体积随时间的变化速率等同于流入流量减去流出流量。由此可推导出系统的连续时间动态方程:
dhdt=u-h/RA (1)
在实际的数字控制系统中,往往需要对连续模型进行离散化处理。采用一阶向前差分方法来近似导数,进而得到离散化后的系统方程:
h(k+1)=h(k)+(u(k)-h(k)/R)ATs (2)
式中,h(k)明确为第k
时刻的液位数值,u(k)
对应第k
时刻的流入流量取值,而Ts
则代表采样时间间隔。
2.2 系统参数确定
对于水箱横截面积A,若已知水箱的几何尺寸,例如半径r
,依据圆面积公式 A=πr2
即可算出。在本次课程设计的简化模型里,为降低计算复杂度,直接设定A=1m2
。流出系数R
的确定相对复杂些,通常需借助实验手段获取。具体操作是让水箱在稳定的流入流量条件下逐步达到稳定液位状态,此时依据公式R=hR
便可算出R
的值。在此假设R=1
,以此等效表征流出阻力特性。
为深入探究系统参数对系统响应特性的影响规律,特意开展了参数变动仿真实验。实验结果清晰表明:当增大A值时,系统的响应速度明显放缓,这是由于更大的横截面积使得液位变化相对迟缓;而增大R
值时,液位的变化曲线趋于平缓,原因在于流出速度因阻力增大而减慢。
三、控制算法理论剖析
3.1 PID 控制算法
PID 控制器作为自动控制领域的经典之作,其输出结果是比例(P)、积分(I)以及微分(D)这三个关键部分的线性叠加。
图 2 PID控制系统原理框图
在连续时间范畴下,其表达式为:
u(t)=Kpe(t)+Ki∫0te(τ)dτ+Kdde(t)dt (3)
在此公式中,e(t)精准界定为系统的实时误差,也就是设定值与实际测量值的差值;而Kp
、Ki
和Kd
分别对应着比例、积分以及微分环节的增益系数,它们对系统控制性能起着决定性作用。
由于计算机控制是基于当前值采样的方式,它通过对特定采样时刻获取的输出值与预设值之间的差值来计算出需要的控制量。因此,原连续PID控制算法必须进行离散化处理,才能适应计算机系统的运行方式。参照模拟PID[4]算法的原理,本文将连续时间𝑡替换为离散时间𝑘𝑇;对于积分项,采用矩形法来进行求解;而对于微分项,选择一阶后向差分的方法来计算,即:
&t=kTk=0,1,2,⋯&0t e(t)dt≈Tj=0k e(jT)=Tj=0k e(j) &de(t)dt≈e(kT)-e[(k-1)T]T=e(k)-e(k-1)T (4)
由此可得离散PID的表达式:
&uk=kpek+TsTij=0k ej+TdTsek-ek-1& =kpek+kij=0k ejTs+kdek-ek-1Ts (5)
式中,ki=kpTi,kd=kpTd,𝑘表示采样序列号;e(𝑘−1)表示k-1时刻输入的偏差;𝑒(𝑘)表示第𝑘次采样的输入偏差;𝑢(𝑘)表示第𝑘次采样时的输出值。
图 3 位置式PID控制系统
深入探究各组成部分的功能特性:比例环节与当前时刻的误差呈正比关系,它能够快速对系统输出做出调整,促使误差迅速减小。然而,若单独依靠这一环节,系统在稳态时往往难以消除误差。积分环节通过对过往所有误差进行累积积分,驱动系统持续调整输出,直至误差彻底归零,但其副作用是可能引发积分饱和现象,进而导致系统出现超调。微分环节则依据误差的变化速率来动态调整输出,凭借对系统变化趋势的预判能力,有效削减超调量,不过该环节对噪声颇为敏感,易受干扰影响。
3.2 PFC-PID 控制算法
PFC-PID控制算法巧妙融合了预测函数控制PFC与 PID 控制的精髓,为复杂系统控制难题提供了创新解决方案。
预测函数控制的核心在于充分利用系统的预测模型,凭借当前以及过往的系统信息,精准预测未来某一时段内系统的输出走向,并依据预测误差实时生成精准的控制指令。
预测函数控制(PFC)是一种前瞻性的控制策略[5],它基于已建立的数学模型预测未来系统的动态变化,并根据这些预测迅速调整控制策略。为了进一步提升控制性能,本设计将PID控制与PFC策略相结合。在这种架构中,PID控制器及其被控对象共同构成了一个广义的控制对象,而PFC则作为外部控制层工作。PFC根据预测结果计算出控制量,这个控制量随后被用作广义控制对象的设定值,从而优化了控制过程。当系统处于高级控制模式时,PID控制器和PFC控制器会协同工作。PID控制器依据当前的误差信号及其变化率来调整控制输出,而PFC则基于对未来系统行为的预测来优化设定值,从而实现更为精准和迅速的控制效果。这种结合PID和PFC的控制策略,充分利用了两种方法的优势,既保留了PID控制的稳定性和可靠性,又发挥了PFC的预测性和优化能力,从而提高了整个系统的控制品质。PFC-PID的控制原理如图4所示。
图 4 PFC-PID控制原理图
PFC-PID 控制算法通过融合预测函数控制(PFC)与 PID 控制,实现对系统的优化控制。其核心思想是利用基函数模型预测未来输出,结合 PID 控制器的误差调节能力,通过滚动优化生成控制量。
3.2.1 基函数模型构建
基于阶跃和脉冲基函数的系统动态模型为:
h(k+1)=ϕ1S(k)+ϕ2D(k) (6)
其中:S(k)为阶跃基函数,D(k)
为脉冲基函数。
S(k)=1(稳态响应) (7)
D(k)=i=0k u(i)Ts (8)
通过在线辨识基函数系数ϕ1,ϕ2
更新公式为:
&ϕ1(k)=αϕ1(k-1)+(1-α)h(k)-h(k-1)-(u(k-1)-h(k-1)/R)ATs&ϕ2(k)=αϕ2(k-1)+(1-α)u(k-1) &&(9)
其中,α为遗忘因子,用于平衡历史数据与当前数据的权重。
3.2.2 多步预测模型
基于基函数模型,未来Np步的预测公式为:
hpred(k+i|k)=ϕ1(k)+ϕ2(k)j=0i-1 u(k+j)Ts(i=1,2,…,Np) (10)
假设控制量不变(uk+j=u(k)),因此累加和为:
j=0i-1 u(k+j)Ts=u(k)Ts⋅i (11)
将式(11)代入(10)得到:
hpred(k+i|k)=ϕ1+ϕ2⋅u(k)Ts⋅i (12)
3.2.3 参考轨迹生成
采用一阶滤波柔化参考值:
rpred(k+i|k)=λrpred(k+i-1|k)+(1-λ)href (13)
初始条件为:
rpred(k+1|k)=λhref+(1-λ)h(k) (14)
其中λ∈(0,1],当λ=1
时退化为纯阶跃参考。
3.2.4 预测误差与 PID 调节
预测误差序列为:
epred(i)=rpred(k+i|k)-hpred(k+i|k) (15)
将 PID 控制律作用于误差序列:
epfc=Kpepred(1)+Kii=1Np epred(i)+Kdepred(2)-epred(1)Ts (16)
3.2.5 控制量优化
引入控制时域Nu,构建控制量对预测输出的影响矩阵H:
H=10⋯011⋯0⋮⋮⋱⋮11⋯1Np×Nu (17)
假设控制量增量为Δu=[Δu1,Δu2,…,ΔuNu]T,则预测输出变化为:
Δhpred=HΔu (18)
优化目标为最小化预测误差平方和:
J=∥epfc-Δhpred∥2 (19)
对Δu求导并令导数为零,解得:
Δu=(HTH)-1HTepfc (20)
仅执行第1步控制量:
u(k)=u(k-1)+Δu1 (21)
综合上述步骤,PFC-PID的控制律为:
u(k)=u(k-1)+(HTH)-1HTKpepred(1)+Ki∑epred+KdΔepredTs基于预测的PID调节 (22)
3.2.6 算法特点
(1)滚动优化:每步仅执行优化后的第1步控制量,下一时刻重新优化。
(2)在线辨识:通过α动态更新基函数系数,适应系统变化。
(3)误差加权:PID项对预测误差序列进行加权,强化近期误差影响。
四、基于 MATLAB 的算法实现与仿真
MATLAB 作为一款功能强大、广泛应用于科学计算与工程仿真的软件平台,为水箱液位控制系统的研究提供了极大便利。
4.1 编程实现
依据前面详述的系统模型以及控制算法原理,运用 MATLAB 编写了相应的仿真程序。
首先,明确定义了系统的各项关键参数,涵盖水箱的物理特性参数(A、R)采样时间Ts
以及仿真总时长(Tsim)。同时,细致初始化了两种控制算法下的系统初始状态,包括液位(h_pfcpid、h_pid)以及控制输入(u_pfcpid、u_pid)。
接着,精准设定了两类控制器各自的参数,诸如比例增益、积分增益、微分增益以及 PFC-PID 特有的预测时域长度。
随后,构建仿真主循环。在循环体内,针对 PFC-PID 和 PID 控制分别展开处理:依据系统动态方程更新液位数值,严谨计算误差、误差变化率以及误差积分,运用相应算法公式算出控制输入,并对控制输入实施饱和限制,确保其合理性。最终,妥善存储各时刻的液位与控制输入历史数据。
循环结束后,运用绘图函数将两种控制算法下的液位变化曲线以及控制输入曲线直观呈现出来,以便进行对比分析。
4.2 程序调试与运行结果
在程序开发进程中,遭遇了一系列典型问题:
起初,由于对 MATLAB 部分函数的使用细节不够熟悉,在 `plot` 函数里参数的设置出现偏差,致使曲线无法正确绘制。通过仔细查阅 MATLAB 官方文档,逐一核对参数的正确顺序与格式,成功化解该问题。
再者,在计算误差积分时,因积分项更新逻辑有误,导致控制器性能严重失常。经反复排查,修正积分项的更新规则后,系统恢复正常运行。成功解决上述问题后运行程序,初步结果显示如图5、6所示。
图 5 PFC-PID与PID的液位控制情况
图 6 PFC-PID与PID的控制输入情况
两幅图分别展示了PFC-PID和PID两种控制算法在水箱液位控制中的表现,具体如下:
图5展示了水箱液位控制:PFC-PID vs PID
(1)图中内容描述
①图中包含三条曲线,分别代表PFC - PID液位(蓝色)、PID液位(红色)和参考液位(黑色虚线)。
②纵轴表示液位(单位:m),范围从0到5。
③横轴表示时间(单位:s),范围从0到100。
(2)结果分析
①调节时间:
PID液位曲线需要较长时间才能稳定在参考液位附近。
PFC - PID液位曲线能够很快地稳定在参考液位附近,调节时间较短。
②稳态误差:
两种控制算法在稳态时,液位都能接近参考液位,但PFC - PID的稳态误差更小,更接近参考液位。
图6展示了控制输入:PFC-PID vs PID
(1)图中内容描述
①图中包含两条曲线,分别代表PFC - PID输入(蓝色)和PID输入(红色)。
②纵轴表示控制输入(流入流量,单位未标明,假设为某种流量单位),范围从0到10。
③横轴表示时间(单位:s),范围从0到100。
(2)结果分析
①控制输入的变化:
PID的控制输入在开始阶段变化较为剧烈,有较大的波动,这与液位曲线的超调现象相对应。
PFC-PID的控制输入变化较为平缓,能够更平稳地调整流入流量,使其液位更稳定地接近参考液位。
②稳态控制输入:
在稳态时,两种控制算法的控制输入都趋于稳定,但PFC - PID的控制输入波动更小,更有利于系统的稳定运行。
从这两幅图的结果可以看出,在水箱液位控制系统中,PFC-PID控制算法在抑制超调、缩短调节时间和减小稳态误差方面表现优于PID控制算法。同时,PFC - PID控制算法的控制输入更加平稳,有助于系统的稳定运行。
五、性能分析与比较
在实际水箱系统运行时,难免受到各种干扰。例如,入水流量可能因供水泵的压力波动而不稳定,出水管道可能因其他设备共用造成压力突变,使流出系数发生改变,甚至周围环境温度变化影响液体密度,间接影响液位测量与控制。因此通过模拟和应对干扰,使算法在接近真实场景下得到验证,提高其鲁棒性,确保系统在复杂工况下仍能精准控制液位。
5.1 脉冲干扰下的性能对比
5.1.1 加入脉冲干扰的原因
(1)模拟实际中的突发短暂扰动:在实际系统中,常出现如瞬时流量冲击、设备短暂异常波动等情况。这类突发且持续时间短的干扰,与脉冲干扰特性契合。例如,管道瞬时水流冲击,或设备电流波动对液位控制执行机构的瞬间影响,均可用脉冲干扰模拟。
(2)检验算法对短时突发干扰的响应能力:脉冲干扰作用短、变化剧烈,是检验控制系统快速响应与调节能力的有效方式。对液位控制系统而言,受脉冲干扰后迅速稳定液位,体现控制算法的动态性能与鲁棒性。通过加入脉冲干扰,可对比 PFC-PID 与 PID 算法,在短时扰动下谁能更快调整控制输入,减小液位波动,缩短稳定时间,精准评估两者处理突发短时干扰的性能差异。
5.1.2 添加干扰
本次仿真于 30s 时加入幅值为1、持续1s的脉冲干扰,模拟实际短时突发扰动,运行结果如下图7和图8所示:
图 7 脉冲干扰下的液位响应曲线
图 8 脉冲干扰下的控制输入曲线
更多项目:
另有10000+份项目源码,项目有java(包含springboot,ssm,jsp等),小程序,python,php,net等语言项目。项目均包含完整前后端源码,可正常运行!
!!! 有需要的小伙伴可以点击下方链接咨询我哦!!!