香朝元,赵 弘
(中国石油大学(北京) 机械与储运工程学院,北京 102249)
管道运输具有了安全度高、高速经济性、运输规模大、控制自动化等优点,在全世界迅速发展。到目前为止,全球各种运输管道已达到250万km,比全球铁路的总里程还长[1]。由于管道内部空间狭小,有润滑油等各种材料的堆积,堵塞、腐蚀、磨损成为了油气管道的主要受损原因。为了防止管道的损伤进一步扩大,石油和天然气管道需要定期检查,损坏的部位必须及时修理。油气管道智能封堵技术作为一种重要的管道抢修方法,尤其对于海洋油气管道,可以有效的减少抢修时间,快速阻止油气的泄漏,降低维修工作的风险,具有着广泛的应用前景[2]。
管内智能封堵器在封堵过程中需要避免水击对管道带来的危害,水击则是由于管内流通面积的减小。因此封堵速度要控制在一个特定的区间内,以使水击压力保持在安全的区间内,才可以保障工作的安全性[3]。
传统PID控制虽然原理简单、运用广泛,但是面对运动过程复杂的控制环境时,通常需要通过结合神经网络算法,利用神经网络训练3个控制参数,达到优化控制效果的目的。谭渊等人在滑油压力气动控制的研究中,以及黄晓萍等人在注塑机液压控制的研究中,就利用了基于BP神经网络的PID控制方法[4-5]。
本文在管内智能封堵器封堵速度控制系统研究的基础上,利用神经网络的特点和优势,设计了基于BP神经网络的PID控制方法,对管内智能封堵器的封堵速度进行实时控制,从而改善管内智能封堵器的运行性能。
管道高压智能封堵技术是一种新型的管道堵头维修技术,逐渐成为管道维修方面最为成熟的技术。以挪威的PSI和美国的TDW为例,他们通过研究管内高压封堵技术的原理,开发出管内封堵新技术,并研制了管内智能封堵器[6]。
管道智能封堵器工作原理如图1所示。管道中的智能封堵器从清管器的末端进入管道,由管道中的压差作用而向下游移动。地面控制中心和管道智能封堵器通过安装在管道壁上的次声电磁脉冲信号发生器交换信息。信号发生器可以将信号渗透到管道壁中,并与智能封堵器通信。如果封堵器在故障管道附近,控制中心将发送控制命令以关闭封堵器。收到封堵命令后,微型液压泵内的液压缸驱动活塞杆移动,封堵模块端面的承压头和工作盘在其驱动下被轴向拧紧,锁定滑块沿挤压碗斜向上方推动,直到锁定模块接触面接触内管壁并刺穿一定深度,实现智能封堵设备的自锁。同时,封堵圈在压力的作用下与管壁形成高压接触,用于密封管内智能封堵器的高压介质。维护工作完成后,系统在解除信号的控制下释放压力,并且前后压力达到平衡[7-8]。
图1 智能封堵器工作原理
管内智能封堵器封堵速度系统框图如图2所示。在管内智能器封堵速度控制系统中,封堵信号通过积分放大器放大后,转换为液压能输出,驱动液压泵开始封堵,其内部液压缸推动封堵器活塞杆进行封堵作业。活塞杆的运动速度则通过速度传感器反馈到输入端,构成闭环控制系统。
图2 管内智能封堵器封堵速度系统框图
管内智能封堵器的速度控制系统建模的关键是构造液压缸的传递函数。其中影响最大的是阀的流量方程及缸的流量和负载方程。通过拉普拉斯变换可知,四通阀控非对称液压缸的负载流量方程为:
qL=Kqxv-KcpL
(1)
式中:qL为液压缸流量;Kq为流量增益;xv为活塞位移;Kc为流量-压力系数;pL为负载压力。
液压缸的流量连续性方程为:
(2)
式中:A1为液压缸有杆腔面积;xp为液压缸阀芯位移;Cip为负载流量泄漏系数;Vt为液压缸容积;Cic为供油流量泄漏系数;ps为供油压力。
液压缸的负载力平衡方程为:
(3)
式中:mt为负载质量;Bp为负载阻尼;FL为管道内液压差对负载及活塞造成的力。
液压缸控制系统框图如图3所示。其中xp为液压缸阀芯位移,xv为液压缸活塞位移。
图3 液压缸控制系统框图
根据液压缸相关参数,本文液压缸有杆腔的有效面积A1为7.85 cm2,可以得到液压缸阀芯位移xp与液压缸活塞位移xv的传递函数:
(4)
BP神经网络以其原理简单、操作易懂、学习能力强,被广泛使用在各类控制结构中[9]。
PID控制是目前控制方法中最为常用。在简单PID不能满足控制要求的情况下,尤其是需多次手动改变PID参数以找到相对契合环境的值,将PID控制器与BP神经网络算法结合能够方便快捷的得到最适合的PID参数,达到最优控制[10]。管内智能封堵器的基于BP神经网络的PID控制器设计如图4所示。
图4 基于BP神经网络的PID控制器
基于BP神经网络PID控制的控制算法为:
Δu(k)=u(k)-u(k-1)=
KpΔe(k)+Kle(k)+KDΔ2e(k)
(5)
式中:KP为比例系统;Kl为积分系数;KD为微分系数;e(k)为第k次采样时刻的偏差值,e(k)=yr(k)-y(k),yr(k)为第k次时刻设定的期望值,y(k)为第k次时刻被控对象的实际输出值。
Δe(k)=e(k)-e(k-1)
(6)
Δ2e(k)=Δe(k)-Δe(k-1)=
e(k)-2e(k-1)+e(k-2)
(7)
对于被控对象管内封堵器而言,其输入就是Δe(k)。
控制器由2部分组成:常规PID控制部分能够对受控对象形成闭环反馈控制;神经网络部分能够依据系统状态和特定的学习算法,得到3个参数的最优解。神经网络(NN)结构如图5所示。
图5 BP神经网络结构
设计步骤如下:
1) 确定BP神经网络的结构。本着简化神经网络系统、缩短学习训练所需时间的原则,确定输入层节点数目M、隐含层节点数目Q、隐含层的层数。在本神经网络中,3个PID参数即为输出层的3个输出结果。隐含层可以提取信号特征,在某些应用如图像处理中,增多隐含层的层数能够使得网络功能更强大。在PID控制应用中,使用1~2个隐含层便足够满足要求[11]。
3) 确定激活函数。本文的激活函数选取正切函数。
(8)
其导数为:
f′(x)=1-tanh2(x)=1-f2(x)
(9)
因为输出层节点分别为KP、KI、KD,选择非负正切函数。
(10)
其导数为:
g′(x)=2g(x)[1-g(x)]
(11)
4) 依次计算神经网络各层的结果值。其中输入层输入为:
(12)
隐含层输入为:
(13)
隐含层输出为:
(14)
输出层输入为:
(15)
输出层输出为:
(16)
(17)
7) 若性能指标函数E(k)小于设定值,说明网络输出的3个参数已满足PID控制器要求,学习结束;反之,令k=k+1,返回步骤4)继续学习[12]。
现基于MATLAB-Simscape仿真软件,建立管内智能封堵器的传统PID控制系统和BP神经网络PID控制系统。其中BP神经网络的PID控制系统包含封堵器内液压缸及负载,管内智能封堵器液压泵动力源,和基于BP神经网络的PID控制器[13]。仿真控制系统设计图如图6所示。
图6 系统整体设计框图
S函数是Simulink的高级功能模块。Simulink作为MATLAB中的重要仿真模块,其可以将MATLAB中编写的M文件形成具有特定功能的S函数。在Simulink中还可以进行子系统的建立和封装,本系统中子模块用于封装神经网络,子系统中有r(k)和y(k)输入,经过延时模块后,汇入S函数中进行神经网络计算,得出的结果用于反馈给输入,进行自我调整,并得到相应的的变化趋势[14-15]。
子系统的Simulink模型如图7所示。
图7 子系统的Simulink模型
神经网络结构选为3-8-3结构,即3个输入节点、8个隐含节点、3个输出节点。
在传统PID控制中,根据调试得到适当的速度曲线,此时PID参数为KP=10,KI=20,KD=0.01。
在第3节条件下,通过阶跃输出得到速度控制仿真曲线如图8所示。
图8 速度控制仿真曲线
由图8可知,传统PID控制的单位阶跃曲线约4 s达到稳定状态,超调量约为30%,而BP神经网络的PID控制约3 s就能达到稳定,而超调量只有约10%,可知后者的控制精度和控制速度远大于前者。
传统PID控制和BP神经网络PID控制的误差如图9所示。
图9 误差曲线
通过比较两种不同的控制方式的误差可以看出,BP神经网络PID控制的误差稳定后低于10%,略小于传统PID控制。
在第4.1节相同的条件下,将阶跃信号改变为正弦信号,观察控制效果,得到的速度控制仿真曲线如图10所示。误差曲线如图11所示。
图10 速度控制仿真曲线
图11 误差曲线
在正弦输入的情况下,可以看出BP神经网络PID控制的效果要略好于传统PID控制,但是两者的控制误差基本相同。所以可以得出BP神经网络PID控制在控制正弦信号输入时效果并没有突出于传统PID控制。
由以上分析可以看出,BP神经网络PID控制器相比于传统PID控制,控制速度和控制精度远远领先,并且误差也较为理想。控制单位阶跃输入比控制正弦信号输入时的效果更加明显。
在封堵速度控制上,BP神经网络可以使PID控制进行参数自适应,无需手动调整PID参数,并且控制速度比传统PID控制中的控制速度更加稳定,误差更小。
传统PID控制方法的控制参数一般为定值,导致了控制精度的不足,而管内智能封堵器系统又是一个随时变化、环境复杂的系统。本文通过比较传统PID和基于BP神经网络的PID,提出了后者作为管内智能封堵器封堵速度的控制方法,并进行了仿真分析,结果得出神经网络PID控制不管从控制精度还是控制的安全度都要优于传统PID,从而改善了管内智能封堵器的运行性能。基于BP神经网络PID控制调整时间相比普通PID控制提前约1 s;超调量约为10 %,明显小于传统PID控制的30%;误差稳定后维持在10%以下。