智能控制综合实验教学设计
2023-08-22高宏岩卞瑶瑶
高宏岩,卞瑶瑶,韩 斌
(山东科技大学电气与自动化工程学院,山东青岛 266590)
0 引 言
2018 年教育部印发的《高等学校人工智能创新行动计划》通知中,明确指出重视人工智能与计算机、控制、数学等学科专业教育的交叉融合,探索“人工智能+X”的人才培养模式[1]。智能控制课程作为人工智能与控制技术结合的一门课程[2],已经成为自动化相关本科专业和控制类研究生重要的专业课程。智能控制课程主要讲授模糊控制、神经网络控制、专家控制以及优化算法等知识[3],具有理论强、应用难的特点。在实际教学过程中,由于缺乏具有应用背景的实践环节,使得学生对课程理论知识掌握不透彻。此外,由于智能控制算法复杂,其工程实现上具有一定的难度。针对上述存在的问题,利用SMPT-1000 高级过程控制实验装置设计了智能控制综合实验方案。通过实验研究,使学生加深对智能控制理论的理解,掌握智能控制在工程实际中的应用方法。
1 实验设备和实验要求
1.1 实验设备
智能控制综合实验采用高级过程控制实验装置。该过程控制实验装置由SMPT-1000 仿真对象、西门子S7-400PLC和工程师站组成[4]。SMPT-1000 仿真对象与S7-400PLC之间采用Profibus DP通信协议通信,S7-400PLC与工程师站之间采用以太网通信,工程师站采用PCS7 软件进行控制工程组态[5]。综合实验以该装置提供的聚合反应过程为研究对象,该聚合反应过程的工艺流程为:原料A与原料B分别由进料泵输送进入混合罐,混合物料经预热器升温后与催化剂C 按照一定比例进入反应器,反应生成物进入闪蒸罐分离提纯。闪蒸罐顶部的混合生成物经冷凝后再送回混合罐循环利用,闪蒸罐底部的混合生成物经输送泵加压后送到下游工序分离提纯,以分离出产品D[6]。
1.2 实验要求
综合实验要求学生能够灵活运用自动控制原理、过程控制、智能控制相关理论设计控制方案,并能够在过程控制实验装置上对所设计的控制方案加以实施。实验结果应满足以下性能指标要求:①原料A、原料B和催化剂C进料流量比约为9∶3∶1;②混合罐的液位、反应器液位、闪蒸罐液位和冷凝罐液位控制在某一恒定液位值,稳态误差±1%之内;③反应器温度控制在某一恒定温度值,稳态误差±2 ℃之内;④闪蒸罐压力控制在某一恒定压力值,稳态误差±1 kPa 之内;⑤闪蒸罐底部出口产品D 的浓度大于80%。通过实验使学生掌握智能控制算法的原理和实现方法,提高学生解决自动化领域复杂工程问题的能力。
2 控制方案设计
根据性能指标要求,设计如图1 所示的控制方案,该控制方案中包括多个控制回路。①进料流量比值控制回路:该控制回路以物料B 为主动量、物料A 和催化剂C为从动量设计比值控制回路,其设计目的是使物料A、物料B和催化剂C 进料比约为9∶3∶1。②混合罐液位控制回路:以混合罐液位为被控量、混合罐物料出口流量为操纵量设计单回路控制方案。③预热器物料出口温度控制回路:混合物料经过预热器进行加热,加热后的物料进入反应器进行反应,预热环节对于物料的反应至关重要[7],设计以预热器物料出口温度为被控量,以热水流量为操纵量的单回路控制方案,使预热器混合物料出口温度维持在恒定温度。④反应器液位控制回路:反应器的液位高度影响反应物停留时间,进而影响反应速率和反应的全程转化率,因此设计以反应器液位为被控量、反应器混合物料出口流量为操纵量的单回路控制方案。⑤反应器温度控制回路:反应器温度影响反应速率和反应的全程转化率,因此设计以反应器温度为主被控量、冷却水流量为副被控量、冷却水流量为操纵量的串级控制回路。⑥闪蒸罐液位控制回路:以闪蒸罐液位为被控量、闪蒸罐底部物料出口流量为操纵量设计单回路控制方案。⑦闪蒸罐压力控制回路:闪蒸罐压力对产品浓度影响较大,因此设计以闪蒸罐压力为被控量、闪蒸罐顶部真空泵频率为操纵量的单回路控制方案。⑧冷凝器物料出口温度控制回路:以冷凝器物料出口温度为被控量、冷却水流量为操纵量设计单回路控制方案。⑨冷凝罐液位控制回路:以冷凝罐液位为被控量、冷凝罐物料出口流量为操纵量设计单回路控制方案。
图1 聚合反应过程控制方案
3 智能控制算法
3.1 BP-PID控制
在上述设计的控制回路中,控制器常常采用经典PID控制规律。经典PID控制规律表示为
式中:Kp、Ki和Kd为PID控制规律中需要整定的3 个参数,称之为比例、积分和微分系数;e(k)为k时刻的给定值r(k)与实际输出值y(k)的偏差,即e(k)=r(k)-y(k);u(k)为k时刻的控制量。
PID 3 个参数通常由人工按照衰减曲线法、临界比例度法等进行整定,但是人工整定过程具有耗时长、参数不能在线调整等缺点,因此出现了具有优化调整PID参数功能的模糊PID、神经网络PID等智能控制算法。神经网络PID是在经典PID 控制规律基础上,神经网络根据系统的运行状态,通过自身学习、加权系数调整来寻找某种性能指标最优的PID参数。若将Kp、Ki和Kd视为依赖于系统运行状态的可调参数时,可以将式(1)描述为[8]:
式中,f(·)是与Kp、Ki、Kd、u(k-1)、e(k)、e(k-1)、e(k-2)等有关的非线性函数,由于神经网络具有较强的非线性映射能力,因此可以利用神经网络自身训练和学习在线整定PID 3 个参数。本实验对闪蒸罐压力控制回路采用BP-PID 控制,其结构示意如图2 所示,采用3 层网络结构的BP 神经网络,其输入层节点分别为k时刻的设定值r(k)、实际输出值y(k)、误差e(k)和外部偏置值;隐含层设定为5 个节点;输出层为3 个节点,分别为PID控制器的比例系数Kp、积分系数Ki和微分系数Kd。BP神经网络在线整定PID的步骤为[9]:①初始化神经网络权值ωij(0)、ωli(0)和相关参数,k=1;②采集闪蒸罐压力设定值r(k)和实际输出值y(k),计算误差e(k);③由神经网络计算Kp(k)、Ki(k)和Kd(k);④由式(1)计算u(k)作为真空泵频率控制信号;⑤在线调整神经网络权值ωij(k)和ωli(k);⑥令k=k+1,返回步骤②,直至性能指标E(k)满足要求。
图2 闪蒸罐压力BP-PID控制结构示意图
3.2 PID神经网络解耦控制
通过实验研究表明,反应器液位、反应器温度变化对闪蒸罐压力产生影响[10],即3 个控制回路之间存在耦合关系。为了削弱回路之间的耦合作用,分别采用PID神经网络解耦控制和无模型自适应神经网络解耦控制对3 个回路进行解耦控制设计。
反应器液位、反应器温度和闪蒸罐压力控制回路构成3 输入3 输出控制系统,设计如图3 所示的PID神经网络解耦控制方案[11]。图3 中PID 神经网络控制器由3 个PID神经子网络组成,每个神经子网络是一个具有3 层结构的前向神经网络,输入层有2 个节点,分别为设定值和系统实际输出值,隐含层有3 个节点,分别为比例神经元、积分神经元和微分神经元,输出层有1 个节点,为控制量。3 个PID 神经子网络的输入层与隐含层各自单独连接,隐含层与输出层之间相互连接。由PID神经网络控制器计算输出的控制量u1(k)作用于冷却水进水管线阀门,u2(k)作用于变频真空泵,u3(k)作用于反应器底部物料出口管线阀门。
图3 聚合反应过程PID神经网络解耦控制
3.3 无模型自适应神经网络解耦控制
无模型自适应神经网络解耦控制无需已知对象数学模型,通过设计神经网络补偿器实现解耦。通过实验研究可知,反应器液位、反应器温度对闪蒸罐压力产生单向耦合关系,设计聚合反应过程无模型自适应神经网络解耦控制如图4 所示,图4 中ND1、ND2 是神经网络解耦补偿器。无模型自适应神经网络解耦控制设计分为两部分:各回路无模型自适应控制器设计和神经网络解耦补偿器设计。
图4 聚合反应过程无模型自适应神经网络解耦控制
(1)无模型自适应控制器设计。无模型自适应控制无需建立对象数学模型,利用被控系统的I/O 数据在线估计系统伪偏导数(Pseudo Partial Derivative,PPD),设计加权一步向前的控制器,实现基于数据驱动的无模型自适应控制[12]。针对聚合反应过程的3个控制回路设计无模型自适应控制器时,依据单回路设计原则,不考虑变量之间的耦合作用。以图4 中反应器温度单回路控制系统设计为例说明设计过程,该非线性系统可以表示为:
式中,f(·)表示非线性函数。当满足一定约束条件时,式(3)表示的非线性系统的紧格式动态线性化数据模型为[13]:
式中,φ1(k)称为PPD的时变参数,实际应用时需要利用被控系统的I/O数据对参数φ1(k)进行在线估计,得到φ1(k)的估计值(k)。由此得到反应器温度控制器表达式:
式中:ρ∈(0,1)为步长因子;λ >0 为权重因子。
(2)神经网络解耦补偿器设计。ND1、ND2 神经网络解耦补偿器都采用动态时延神经网络,以ND1 解耦补偿器设计为例加以说明。采用4-6-1 结构的神经网络,输入层有4 个节点,分别为控制量u1(k)、延迟信号u1(k-1)、神经网络解耦器输出量延迟信号q1(k-1)、q1(k-2);隐含层有6 个节点;输出层的输出为q1(k)。采用BP 算法进行网络训练。ND2 解耦补偿器设计与ND1 相类似。经解耦补偿后得到作用于真空泵的频率控制量
4 智能控制算法实施
4.1 基于OPC技术的实施方案
基于OPC 技术的实施方案是将智能控制算法在Matlab中编程实现。该方案采用OPC 作为PCS7 和Matlab之间的通信接口,将PCS7 作为OPC 服务器、Matlab作为OPC客户端[14],实现PCS7 和Matlab之间数据的传输。
(1)AS 站硬件配置。①在PCS7 软件中启动SIMATIC Manager 软件,新建工程并在新工程下面建立SIMATIC 400 自动化站,然后对自动化站进行硬件配置。②在HW-Config视图中组建机架,根据设备型号和订货号将电源模块、CPU、通信模块配置到机架的相应卡槽。③新建Profibus DP 总线并在总线上组态PM125 模块。④根据实际I/O 点数组态I/O 模块的起始地址、字或字节长度。
(2)OPC 服务器配置。①在SIMATIC Manager软件的组件视图中,添加OS 站,即新建SIMATIC PC Station。②在虚拟机架相应卡槽上插入监控软件WinCC Application、通信模块IE General 和OPC Server。③配置PC 站后,在站管理器SCE(Station Configuration Editor)中出现上述3 个组件。④建立AS站和OS站之间的通信连接。
使用OPC Scout工具检测数据通信是否成功。在OPC Scout找到需要检测通信的变量地址,如图5 所示。如果“Quality”显示“good”,则代表通信成功,“Value”中会显示检测变量的数值。
图5 OPC通信测试
(3)OPC 客户端配置。本实验在Matlab 中编写如下程序建立Matlab与OPC Server通信:
Obj =opcda(′localhost′,′OPC.SimaticNET′);%构造OPC数据访问对象Obj
connect(Obj);%使用connect 函数将Obj 连接到服务器
当建立PCS7 和Matlab 之间的OPC 通信后,在Matlab中编写程序读取传感器数据:
grp =addgroup(Obj);%建立数组读取数值
detectp1 =additem(grp,′SIMATIC 400(1).CPU 412-5 H PNDP.PI1103′);%读取OPC Server 的闪蒸罐压力数据到Matlab
detectValuep1 =read(detectp1);%将数据转化到本地中
因为PCS7 采集的数据为十六进制,所以在Matlab中需要编写程序进行数值转换,转换后的压力数值与给定值比较得到偏差e,在Matlab中编写神经网络PID控制算法程序,在线整定PID 参数并根据式(1)计算控制量u,用writeasync语句把控制量u写入OPC服务器,在PCS7 软件中设置DB 数据块,在CFC 程序中通过DB数据块将控制量u传输给变频真空泵作为其频率控制信号。
4.2 基于SCL编程的实施方案
SCL(Structured Control Language)是结构化控制语言,具有PLC 典型元素和高级编程语言的特点,适用于实现复杂运算和过程优化,因此可以采用SCL 编写程序实现智能控制算法。以实施BP-PID控制为例,说明程序编写过程。
(1)在所建工程的S7 Program Source下插入SCL Source。
(2)双击SCL Source进入SCL编程环境,插入FB块后出现FB块的基本编程模板界面。
(3)在FB块的模板中,首先将块编号为FB1,将FB1 块命名为BP-PID,然后定义FB1 块的输入、输出和中间变量。FB1 块中定义输入变量的部分程序为[15]:
由于定义中间变量的程序较多,在此不再一一列出。
(4)根据3.1 节所述的神经网络PID 整定过程,采用IF、FOR等高级编程语言的方式编写BP-PID 程序,限于篇幅,仅列出隐含层到输出层权值调整程序:
(5)程序编译无误后生成FB1 块,在CFC中直接调用FB1 块,编写CFC 程序实现闪蒸罐压力BP-PID控制,如图6 所示。
图6 闪蒸罐压力BP-PID控制程序
5 实验结果与分析
5.1 BP-PID控制实验
为了对比BP-PID控制效果,首先进行所有控制回路PID控制实验,实验结果如图7(a)所示。然后进行闪蒸罐压力单回路BP-PID实验研究,其他控制回路仍采用PID控制,采用SCL语言编写BP-PID 程序,实验结果如图7(b)所示。图7 中TI1103 表示反应器温度,AI1101 表示产品D 的浓度;LI1102 表示反应器液位,PI1103 表示闪蒸罐压力。由图7 可知,闪蒸罐压力在PID控制下的最大偏差约为41 kPa,从开车到进入稳态(60 kPa)的时间约为600 s;闪蒸罐压力在BPPID控制下的最大偏差约为13 kPa,从开车到进入稳态的时间约为390 s。由此可见:与闪蒸罐压力PID控制相比,BP-PID控制使控制系统超调量减小,过渡过程比较平稳,进入稳态时间减小。
图7 闪蒸罐压力PID和BP-PID控制实验结果
5.2 神经网络解耦控制实验
采用OPC 技术进行PID 神经网络解耦控制和无模型自适应神经网络解耦控制实验研究,两种解耦控制算法均采用Matlab 编程实现。实验首先设置反应器温度TI1103 的设定值为95 ℃、反应器液位LI1102的设定值为50%、闪蒸罐压力PI1103 的设定值为60 kPa。在各个变量控制在稳态后,分别进行4 次设定值阶跃实验。实验1:反应器液位正向设定值阶跃实验,将反应器液位设定值由50%变为60%。实验2:反应器液位反向设定值阶跃实验:将反应器液位设定值由60%变为50%。实验3:反应器温度正向设定值阶跃实验:将反应器温度设定值由95 ℃变为100 ℃。实验4:反应器温度反向设定值阶跃实验:将反应器温度设定值由100 ℃变为95 ℃。不同控制方案下设定值阶跃实验结果如图8 所示,以下对4 次实验结果进行分析。
图8 解耦控制实验结果
(1)实验1。反应器液位设定值由50%变为60%时,无解耦控制下,闪蒸罐压力在25.33~77.40 kPa之间波动,经155 s后恢复到设定值60 kPa;PID 神经网络解耦控制下,闪蒸罐压力在28.50~68.55 kPa 之间波动,经155 s后恢复到设定值60 kPa;无模型自适应神经网络解耦控制下,闪蒸罐压力在47.68~66.23 kPa之间波动,经150 s后恢复到设定值60 kPa。
(2)实验2。反应器液位设定值由60%变为50%时,无解耦控制下,闪蒸罐压力在65.91~58.80 kPa之间波动,经240 s后恢复到设定值60 kPa;PID 神经网络解耦控制下,闪蒸罐压力在65.13~59.32 kPa 之间波动,经240 s后恢复到设定值60 kPa;无模型自适应神经网络解耦控制下,闪蒸罐压力在64.33~59.32 kPa之间波动,经210 s后恢复到设定值60 kPa。由此可见,解耦控制使反应器液位变化对闪蒸罐压力的影响减小。
(3)实验3。反应器温度设定值由95 ℃变为100℃时,无解耦控制下,闪蒸罐压力偏离设定值的最大偏差为7.24 kPa,经440 s后恢复到设定值60 kPa;PID神经网络解耦控制下,闪蒸罐压力偏离设定值的最大偏差为6.94 kPa,经440 s后恢复到设定值60 kPa;无模型自适应神经网络解耦控制下,闪蒸罐压力偏离设定值的最大偏差为3.89 kPa,经265 s 后恢复到设定值60 kPa。
(4)实验4。反应器温度设定值由100 ℃变为95℃时,无解耦控制下,闪蒸罐压力偏离设定值的最大偏差绝对值为5.12 kPa,经580 s 后恢复到设定值60 kPa;PID 神经网络解耦控制下,闪蒸罐压力偏离设定值的最大偏差绝对值为4.87 kPa,经575 s 后恢复到设定值60 kPa;无模型自适应神经网络解耦控制下,闪蒸罐压力偏离稳态值的最大偏差绝对值为3.82 kPa,经340 s后恢复到设定值60 kPa。由此可见,解耦控制削弱了反应器温度控制回路对闪蒸罐压力控制回路的耦合作用。
上述分析可知,解耦控制能在一定程度上减小控制回路之间的耦合作用,两种智能解耦控制算法相比,无模型自适应神经网络解耦控制比PID神经网络解耦控制取得更好的解耦控制效果。
6 结 语
本文设计的智能控制综合实验将复杂控制算法与工程应用紧密结合,为智能控制算法应用于工程实践提供了实施方法。学生通过实验研究,可以提高学生解决自动化领域复杂工程问题的能力。