APP下载

基于卡尔曼滤波的PID 控制在PLC 中的实现及应用

2022-03-25陈相全郭景富张雪明董永军

现代电子技术 2022年6期
关键词:中子卡尔曼滤波滤波

熊 磊,陈相全,谢 晖,郭景富,张雪明,董永军

(1.东北师范大学 物理学院,吉林 长春 130024;2.吉林省先进能源开发及应用创新重点实验室,吉林 长春 130024)

0 引 言

中子射线在石油测井、工业在线元素分析以及爆炸物检测等领域都有不可替代的作用。相对于放射源,中子发生器因其中子可关断特性而备受青睐。在元素分析领域,中子产额的稳定性对于能否得到准确的分析结果至关重要。采用中子发生器作为中子源,其中子产额是束流和加速高压的函数,加速高压和束流的波动会对其中子产额的稳定性产生决定性的影响。因此,如何提高中子发生器的电源性能是该领域的研究热点之一。

目前,中子发生器的电源控制通常是基于单片机或DSP 实现的。其中,文献[5]基于单片机研制了直径为50 mm 的中子发生器,已在中国原子能研究所反应堆中长期应用。文献[6]基于单片机研制的脉冲中子发生器具有直流脉冲模式可选的特点。文献[7]在中子发生器的研制中利用DSP 作为主控器,使得中子产额波动低于2%。上述研究表明,采用单片机或DSP 对中子发生器电源进行PID 控制的方法已得到一定应用,但在高时滞、强噪声的应用场合控制效果仍有待进一步提高,尤其是对于中子发生器高压、强辐射、粉尘密布的应用环境,现有的方案可靠性欠佳。

通常工业中滤除噪声的解决方案是利用上位机实现滤波,并通过数据传输网络将数据在上位机和控制器件间传输。但上位机增加了硬件成本,并且在一些恶劣的环境中数据传输网络易受到干扰,限制了滤波的应用场景。将卡尔曼滤波器与PID 控制结合,可以有效抑制PID 控制中的超调问题,缩短PID 控制过渡时间,从而改善控制效果。文献[10]在微型旋翼飞行器中基于卡尔曼滤波进行PID 控制,得到了良好的滤波效果,实现了飞行器的平稳飞行。文献[11]基于卡尔曼滤波器进行了智能车载系统设计,该系统具有定位精准、速度稳定等特点。可编程逻辑控制器(Programmable Logic Controller,PLC)因可靠性高、组网方便、功能丰富,已成为现代工业自动化领域应用最为广泛的控制器之一。然而,目前的中子发生器领域中鲜有基于卡尔曼滤波的PID 控制在PLC 系统中的应用。为提高中子发生器电源控制的可靠性和稳定性,本文采用PLC 控制器设计并实现了基于卡尔曼滤波对中子发生器电源进行PID 控制。利用PLC 中的数据块、数组以及四则运算进行卡尔曼滤波器的矩阵存储与运算,通过对电源PID控制参数进行卡尔曼滤波来完成中子发生器的控制过程,优化控制效果,提高控制的稳定性。最后将该控制器应用于中子发生器,通过对比实验以验证其有效性。

1 基于卡尔曼滤波器的PID 控制方法

1.1 卡尔曼滤波器

卡尔曼滤波器主要根据被提取信号的测量值和预测值,通过迭代算法获得被测信号的估计值。由于迭代过程中消减了系统的量测噪声和过程噪声,因此卡尔曼滤波器可以对被测信号的精确估计,适用于解决随机信号与噪声的多维、非平稳、时变、功率谱不稳定等问题。当系统的过程噪声序列以及观测噪声序列互不相关,且为零均值的高斯白噪声随机过程序列时,可以采用卡尔曼滤波方程进行状态预测,即:

通过合理的模型构建,可根据上一时刻的状态估计以及当前输出来预测当前时刻的系统状态。而准确估计当前系统状态的前提是预测系统的协方差矩阵,即:

在计算预测状态值和预测误差协方差矩阵的条件下,即可获得卡尔曼增益,如下:

式中:为过程噪声;为状态转移矩阵;K为卡尔曼增益,卡尔曼增益是测量值的权重。根据测量与预测的权重可以估计当前的系统状态,如下:

系统的协方差矩阵可表示为:

式中:P为时刻误差估计矩阵;为单位矩阵。

1.2 基于卡尔曼滤波器的PID 控制

PID 控制通过对输出信号偏差的比例、积分、微分参数进行线性组合来构建控制器,是工业控制中应用范围最广的一种控制方法。PID 控制器性能的优劣取决于上述3 个参数的选择。在复杂的工业控制环境中,随机干扰对于控制系统的影响越来越大。由于PID 控制器的局限性,其对系统的控制精度、响应速度以及抗干扰等方面的控制性能欠佳。将卡尔曼滤波器与PID 控制结合,基于适当的系统模型递推出系统状态,可以有效滤除系统中的测量噪声与过程噪声,提高控制的鲁棒性,减少延时对控制带来的干扰。其控制结构见图1。

图1 基于卡尔曼滤波器的PID 结构

如图1 所示,将PID 控制器的输出与系统采样赋给卡尔曼滤波器,经由滤波器精确估计系统状态,并将其与设定值的差值作为PID 控制器的输入形成负反馈,从而优化系统的控制性能。

2 控制方法的PLC 实现

2.1 卡尔曼滤波器的PLC 实现方法

实现卡尔曼滤波需要大量矩阵运算,而目前常用的中小型PLC 不具备矩阵存储与计算功能。因此,本文采用PLC 实现卡尔曼滤波,首先需要实现矩阵的存储以及矩阵的转置求逆、四则运算等功能。在PLC 中利用行优先的顺序将矩阵的元素以浮点数数据格式存储在寄存器中,采用拆分法将矩阵运算分解为PLC支持的四则运算。根据矩阵运算规律编写矩阵加、减、乘、转置、求逆运算子程序,结合卡尔曼滤波方程调用矩阵运算子程序,从而实现卡尔曼滤波功能。矩阵运算子程序如图2所示。

图2 矩阵运算子程序

2.2 基于卡尔曼滤波的PID 控制的PLC 实现

本文采用西门子S7-200 系列PLC 设计基于卡尔曼滤波器的PID 控制。通过矩阵运算子程序,在主程序中进行卡尔曼滤波,利用PLC 程序按顺序循环执行的特点实现卡尔曼滤波,相应参数矩阵可通过将系统传递函数离散化得到。程序整体结构如图3 所示。

图3 程序结构

按照图3 程序结构,首先,在程序初始化中将控制参数赋值给相应寄存器并设定初始状态,将系统状态估计的反馈值与PID 设定的目标值的差值作为PID 控制器的输入并完成PID 控制;然后,结合已建立的数学模型与PID 输出值,根据上一时刻的系统状态预测下一时刻的系统状态;其次,根据卡尔曼滤波算法调用相应计算子程序预测协方差与卡尔曼增益,并估计当前系统状态以及误差;最后,将系统状态与误差存储至PLC 数据块中等待下一次循环迭代。西门子S7-200 系列PLC 提供了PID 控制指令,并且具有参数设定灵活、可自整定、使用简便等特点,其调用方式如图4 所示。

图4 PID 指令调用

根据PID 控制结构,在PLC 主程序内编写中子发生器控制程序,并整定PID 各项参数使控制稳定,从而使得中子发生器各项指标保持在适当区间内。然后根据图1 所示,在主程序的PID 控制程序中加入卡尔曼滤波算法,将采样结果与PID 的输出结果赋给卡尔曼滤波器,并将计算后的滤波结果存入PID 的输入寄存器作为反馈,从而在PLC 中基于卡尔曼滤波对中子发生器进行PID 控制。中子发生器控制结构如图5 所示。

图5 中子发生器控制结构

3 实验与讨论

基于上述方法,本文对加入卡尔曼滤波前后中子发生器的相关电参数进行了实验对比,实验设备见图6。

图6 实验设备

滤波前后的实验结果如图7 和图8 所示,其中,PID参数选取=0.6,=0.05,=0。通过对比滤波前后的数据可知,引入卡尔曼滤波后,离子源电压稳定时间相较无滤波条件下耗时减少9 s,缩短12.33%。滤除后续过程中系统存在的噪声扰动如图7 所示。对于存储器电压,卡尔曼滤波器消除了电路在空载下的震荡,并避免了0.38%的超调,如图8 所示。显然,基于卡尔曼滤波器的PID 控制能够有效提高中子发生器电源控制的稳定性,降低噪声干扰。由此可知,在PLC 系统的PID控制中引入卡尔曼滤波能够提高PLC 的控制性能,使PLC 在中子发生器的控制领域实现更稳定的控制。

图7 离子源电压

图8 空载存储器电压

4 结 论

本文在中子发生器的PLC 控制系统中设计一种基于卡尔曼滤波器的PID 控制方法,并进行实现。通过中子发生器的电源控制实验结果得出,本文方法可以有效滤除控制过程中存在的噪声干扰,提高控制系统的稳定性、响应速度,且控制性能得到明显改善。本文所设计方法无需上位机,能够在维持硬件成本的前提下优化控制效果,提高控制的稳定性。

猜你喜欢

中子卡尔曼滤波滤波
3D打印抗中子辐照钢研究取得新进展
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于PLC控制的中子束窗更换维护系统开发与研究
基于模糊卡尔曼滤波算法的动力电池SOC估计
DORT 程序进行RPV 中子注量率计算的可靠性验证
基于扩展卡尔曼滤波的PMSM无位置传感器控制
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
中子深度定量分析的相对分析法
基于随机加权估计的Sage自适应滤波及其在导航中的应用