基于双NIOSII软核处理器的脱丁烷塔控制系统
摘 要:介绍了基于ALTERA公司FPGA的双NIOSII软核处理器在化工设备——脱丁烷塔控制系统中的应用。由于双CPU处在同一块FPGA芯片中,并且分担了不同的控制环节,使得整个控制系统与同功能类型产品相比,在成本显著降低的同时,安全性和抗扰动能力大幅提升。
关键字:双核NIOSII处理器;FPGA;mutex互斥单元;IIR无限长单位脉冲相应;DMC动态矩阵控制算法
引言
在脱丁烷塔和其他工业设备控制系统中,控制系统处理能力和安全稳定性是最重要的设计环节。除去DCS/PLC等极其昂贵的控制器外,目前中型企业的控制方案主要有两类,即传统8位单片机系统和32位DSP/ARM 组成的数字信号处理器系统。前者虽然有成熟的设计应用案例,但由于芯片本身的局限,其较低的运算速度和有限的外设扩展能力在面对结构复杂且需要大量数据计算的设备控制时力不从心;而后者虽然拥有高速的运算性能,但由于所有工作(数据处理,人机交互等)都落在一个芯片中,很容易造成扰动。若使用双芯片(如DSP+FPGA),数据传输的延迟也成为很难解决的瓶颈。本设计正是充分考虑到了以上问题,应用ALTERA公司最先进的SOPC(片上可编程系统)软核CPU技术,提出了一种运算处理能力和工业安全性兼得的解决方案。最后通过高性能DMC(动态矩阵控制)算法的控制测试,证明该方案具有非常稳定的实时控制效能。
1 脱丁烷塔结构分析与NIOSII软核处理器简介。
在由中国石化北京设计院设计的炼油厂1万m3/h制氢装置中,脱丁烷塔系统是一个非常重要的环节。其设备组成与控制模型如图1所示。该设备对控制器有3个控制输入,4个输出和3个可测扰动。
图1 脱丁烷塔——系统辩识用建模图
NIOSII是由硬件描述语言编写的基于FPGA的软核CPU,是ALTERA公司SOPC战略的重要组成部分[1]。NIOSII嵌入式处理器不仅提供更高的性能、更低的成本,还提供了齐全的软件开发工具以及同类产品不具备的的系统灵活性。它拥有32位指令集,32位数据线宽度,32个通用寄存器,32个外部中断源和2GB寻址空间;基于边界扫描测试的调试逻辑,支持硬件断点,数据触发,以及片外和片内的调试跟踪等高级特性。其结构图见图2。
图2 NIOSII 软核CPU 结构图
2 系统总体设计方案
本脱丁烷塔控制系统采用双NIOSII软核处理器来对设备进行控制。由于两个CPU都是基于同一片FPGA的,因此其信号传输不存在任何的延迟,即可以实现无缝连接。双CPU担当的任务分别是人机交互和算法实现环节。负责算法的CPU(P1)不承担其他的附加任务,不设置操作系统;另一个CPU(P2),采用了高实时性的UC/OSII操作系统。它承担算法以外的部分,如红外遥控启动,数字键盘和对主机服务器的485传输等[2]。当因操作不当或通过RS485传输信息不当等原因,系统出现严重异常时,P1可以在时钟节拍的上升沿到来时跳转到紧急状态,按照编制好的程序将危险因素尽可能地消除或延迟。这样就使得控制系统具备了隔离扰动源的能力。电路板布局图见图3
图3 FPGA外部板面连接图
3 硬件电路设计
3.1 FPGA 内部模块设计及传感器收发单元设置
算法以及工作代码存储在EPCS4串行配置器件中,在上电时被读入到RAM中执行。控制系统和主机服务器之间采用高速RS-485传输方式,温度传感器采用DOLLAS公司的1线式温度传感器。485传输协议采用集成在FPGA内部的IP核,进一步减少了版面布线的扰动。内部模块配置图见图4。
双处理器分工明确,所有外设都通过Avalon总线与CPU进行交互。传感器和A/D转换器,以及D/A转换器由右侧CPU(P1)管理,这样当CPU(P2)出现故障时,可以断开两个CPU之间的联络通道,处理器CPU1独立运行,在一定时间内保证设备的安全。
在A/D传输环节,加入了缓冲校验模块(即缓冲池)。这样做是因为脱丁烷塔在运行时,由于物料含有杂质等原因,传感器常常会在瞬时出现偏差较大的测量值,这是应该予以屏蔽的。非正常值校验缓冲模块是由Verilog编写的IP核,每当有检测变量输入或控制变量输出时,检测该数据是否和前/后较短时间内的波动相差过大;如果是,则应用无限长单位脉冲相应(IIR)算法进行线性滤波(见4.1节详述) 。
图4 双NIOSII 处理器 的FPGA 内部模块配置图
3.2 双NIOSII处理器数据/地址指令的交互模块
处于稳定性的考虑,本设计只使用了一片8M SRAM。双CPU均运行在此SRAM上。处理器间的信息交互采用非常稳定的共用交换区内存(Shared Memory)的方式(见图5)。RAM被划分成4片可用区间,即两个处理器由地址偏移开始的空间,应用程序被EPCS4载入时的存储区和共享内存区。由于CPU1专门负责算法,本设计将其在内存中的起始位置放在了0偏移处,以保证最简便的寻址路径。
图5 双处理器对内存空间的使用
互斥信号量(mutex)是解决双处理器争用存储器的关键。它的位宽为2x32bit(见表1)。首先将VALUE值置0x0000,RESET位赋‘1’,使能mutex。CPU(P1)在时钟节拍的激励下,发出对共享内存的读写需求,这时如果mutex标识为可用,并且其OWNER值等于CPU(P1)的ID,便获得其使用权;所有操作要在一个时钟节拍内完成,然后交出mutex的使用权,将OWNER变成CPU(P2)的ID,再向VALUE写入0x0000清零。下一个时钟节拍来到时CPU(P2)检查OWNER值,将自己的ID与OWNER值相比较,相同则获得使用权,然后依据地址偏移从共享内存读出或写入数据。这是最为安全的交换数据方式,因为中间需要确认的只是一个标识CPU许可与否的32bit位,数据本身在内存上并没有移动,所以不存在大规模的数据拷贝或寻址。双处理器在SOPCBuilder中的连接图见图6。
偏移量 |
寄存器 名称 |
读/写 |
位描述符 | ||
31 … 16 |
15 … 1 |
0 | |||
0 |
mutex |
RW |
OWNER |
VALUE | |
1 |
reset |
RW |
N/A |
N/A |
RESET |
表1 mutex 互斥单元结构
图6 双处理器及片上外设在SOPCBuilder中的连接图
4 软件设计
4.1 无限长单位脉冲相应(Infinite-Duration Impulse Response,IIR)算法[3]
IIR算法是应用较广泛的滤波算法,常常用于数字系统设计中,对输入信号进行线性化调整。这里应用IIR算法对接收的测量值进行调整,以避免瞬时采样的剧烈变化使监控单元发生误报[4]。IIR 滤波器由前馈滤波器和反馈滤波器两部分组成,公式为: 。Verilog核心实现代码如表2:
表2 IIR算法实现输入信号过滤的核心代码
4.2 控制程序流程图
图7 脱丁烷塔控制系统软件程序流程图
控制程序主要分为三部分,即控制器初始化,控制器运行和故障工况处理(见图7)。
初始化部分:进行一系列的系统上电启动工作。当控制器被工控主机或红外遥控启动后,主机首先检测控制器是否有响应;确认后控制器初始化EPCS4;建立各个CPU的On Chip Memory,配置SRAM和mutex单元。最后检查初始化是否成功并报告结果。失败则返回并报警。程序运行部分:初始化完成后,控制器开始接收由传感器测量并经A/D转换的数据,检测没有超界后,输出到D/A对脱丁烷塔进行控制操作。对主机的显示操作放在D/A输出之后,以保证控制的实时性。主机设置指令的获得,要优先于发送工况数据到主机显示的操作,这样可以在第一时间按照主机指令配置控制器参数。
故障处理部分:如果发生异常,则转入故障处理状态。这时要尽量去除有可能带来干扰的模块,而且要撤消mutex信号量;不允许CPU1再与另一个处理器交互,因为此时由主机或数字键盘传来的数据已不可靠。负责算法的CPU1尽量使用紧急状态的处理算法,一旦失败,则直接关闭控制器,转成人工操作。
4.3 DMC动态矩阵控制算法[5]
DMC 算法是一种基于对象阶跃响应的预测控制算法,它适用于渐进稳定的线性对象。对于脱丁烷塔控制系统,DMC控制包括三个部分:即预测模型、滚动优化和反馈校正。
预测模型:系统有m=3个控制输入、n=3个可测扰动和p=4个输出,在采样点上每一个输出yi对每一个输入uj的阶跃响应为aij(t),对每一个可测扰动ds单位阶跃响应为dik(t),其中i=1,…,4; j=1,…,3;s=1,…,3。现在我们假设在k时刻uj均变化M次,根据线性系统叠加原理可得到多变量系统预测模型:A称为动态矩阵,其元素为描述系统动态特性的阶跃响应系数。系统在优化时域P内:
滚动优化:DMC算法不是采用一个不变的全局最优化目标,而是采用滚动式的有限时域优化策略。在多变量DMC的滚动优化中,要求每一输出Yi在未来P个时刻紧密跟踪相应的期望值W,性能指标可以表示为: 通过极值必要条件求得:其中Q, R是权系数矩阵,表示对跟踪误差和控制变化的抑制。
反馈校正:每一步优化进行前,都要检测实际输出并与预测输出进行比较,得到误差信息后对预测模型进行校正,在一定程度上补偿由于物料含有杂质或回流受到扰动等不确定因素对系统的影响。
误差信息表示为e(k+1)=y(k+1)-yPM(k+1),e(k+1)为下一步优化的预测误差矩阵,其中e(k+1)=[e1(k+1)…e4(k+1)]T; y(k+1)=[y1(k+1)…y4(k+1)]T; yp(k+1)=[y1,p(k+1)…y4,p(k+1)]T
5 测试结果与总结
应用DMC动态矩阵控制算法,为了检验本控制器对控制性能改进程度,特别使用了脱丁烷塔系统半实物仿真控制模型与Matlab理论模型进行了对比测试。实际控制器输出与理论仿真程序输出比较结果见图8。取控制参数P=23, M=1, q=0.12, r=0.00005, N=150。
图8 两种控制系统同工段内按时间压缩后的拟合比较图
由图中可以看出,在3个控制输入的作用下,基于双NIOSII 控制器的控制性能非常稳定,4个输出曲线锯齿幅度(即跑偏程度)非常小。这是因为本控制器负责算法的CPU1不必分出时钟周期来被动地响应中断,以接受和发送来自主机或其他模块的信号,所以屏蔽了各种外部干扰,可以全速执行算法;同时又由于在FPGA内编写了瞬时异常态高速缓冲模块,用于消除物料或管道内杂质在传感器附近发生化学/物理变化而产生的影响,因此在最大程度上减少了控制器误动作的发生。另外,将RS485通讯模块和其它FIFO单元内置成FPGA的IP核,既节约了PCB板面积,又屏蔽了走线时产生的干扰。
基于SOPC的多处理器技术,以其高速并行处理能力和更为合理的工作分配方法,基本上代表了高速并行数据运算的发展趋势,因此一定会成为未来重要研究和应用方向之一。
参考文献
1 NIOSII Processor Reference Handbook. Altera 公司,2005
2 Jean J. Labrosse. MicroC/OS-II The Real-Time Kernel.第2版. 北京:北京航空航天大学出版社,2003
3 Samir Palnitkar. Verilog HDL 数字设计与综合.电子工业出版社,2006年2月,P133
4 Mary McCarthy. Peak-to-Peak Resolution Versus Effective Resolution. Application Note AN-615.Analog Device
Inc,2003
5 Richalet J. et al. Model predictive control: application to industrial process. Automatica, 1978,
14(4): 400-435
附录:原创性声明、英文标题、关键字及摘要
原创性声明:本论文第一作者牛思文及导师夏涛郑重声明,该论文为原创性作品,属自主研究的实验成果,没有对其他论文的文字或专利性技术存在任何剽窃行为。
The control system of Debutanizer with the Dual-NiosII CPU
Abstract:We described the application of Altera’s NiosII (Dual) Soft-Core CPU (Based on FPGA) on the chemical industrial equipment—Debutanizers. Since multi-NiosII CPUs lie in one chip of FPGA, and they have implemented different parts of control flow, the whole system can consume lower budget while gaining more safety and stability.
Key Word:Dual-Core NIOSII; FPGA; Mutual Exclusion Unit; Infinite-Duration Impulse Response (IIR) Algorithm;
Dynamic Matrix Control (DMC) Algorithm
作者简介与通讯地址
牛思文,男,1982年1月出生,北京化工大学自动化系硕士研究生,本科毕业于北京化工大学自动化系,现从事系统工程与化工仿真技术研究。
夏涛,男,北京化工大学系统工程系副教授,导师,从事系统仿真程序及工业控制电路研究
通讯地址:北京市朝阳区樱花东街9号楼6门504,牛思文。
邮 编:100029
电 话:01064436589/13661042850
email :mage1982@vip.sina.com
评论