APP下载

基于FPGA的九点控制器新型设计方法

2012-03-22杨亮吴占友张汝彬邵奎志

中国高新技术企业 2012年2期
关键词:温度控制加热炉

杨亮 吴占友 张汝彬 邵奎志

摘要:在FPGA实现九点控制器的算法设计中,引入四个辅助变量,可以降低复杂逻辑判断过程。文章以高温加热炉控制对象为例,在分析了对象数学模型特征的基础上,忽略三个无关工况,只选取六个工况作为有效参数,使FPGA顶层电路的设计结构得以优化。将工况K0引入偏差的动态控制,有效消除了输出波动,有利于改善控制器的稳定性能。实验证明,在设定值为300℃的条件下,系统稳态误差小于2℃,上升时间短,控制输出稳定。FPGA九点控制器的新型设计方法具有算法简单,易于实现的优点。

关键词:FPGA;九点控制器;温度控制;加热炉;相平面图

中图分类号:TP273 文献标识码:A 文章编号:1009-2374(2012)03-0040-04

一、概述

九点控制器是近年来提出的一种新型智能控制器,其特点是不需要复杂的数学运算,实现形式灵活多样。目前,九点控制器的研究和应用都是建立在单片机等微处理器(MCU)基础上的。传统的控制算法中,PID控制是目前工业控制中应用最广泛的一种,其主要弱点是在线性控制性能上未能很好地解决系统性能指标中稳定性、准确性与快速性之间的矛盾,参数整定困难,对象参数变化敏感,鲁棒性不强。模糊控制特别适合于模拟专家对数学模型未知的、复杂的、非线性系统的控制,但控制规则相对较多,而且主要凭经验进行设计,再通过实验反复调整,测试过程很费时。相比之下,九点控制器的控制策略是一种逻辑控制,是根据系统的偏差和偏差变化率进行控制的,不必预知控制系统的精确数学模型。作为一种新型控制技术,九点控制器能够按照系统输出的变化调整系统增益,具有结构简单、灵活方便、易于实现、适应性强等特点。目前片上控制器设计正在成为芯片应用的新热点。在控制器实现方式中,微处理器虽然应用十分普遍,能够实现各类控制算法,但其不足之处是由于参与了代码的运行控制,相对运算速度不够快、复位不够可靠、有产生程序计数器跑飞的风险等。本文以FPGA为开发平台,提出一种九点控制器片上控制单元的新型设计方法,该方法经过简化后,能使FPGA设计过程简化,易于实现。

二、九点控制器的控制策略

九点控制器是根据系统的偏差e和偏差变化率(简称“偏差率”)进行控制的,又叫基本型逻辑控制器。九点控制器组成的控制系统结构如图1

所示:

图1九点控制器的控制系统组成

在图1中,r为设定值,c为控制系统的输出量,即系统被控量。e为偏差,是设定值r与系统输出量的差值,即e=r-c。uc为九点控制器的输出,是根据系统的偏差e和偏差率的状况决定的。当前时刻k时的偏差率为k时刻偏差与前一时刻(k-1)时刻偏差的差值除以相邻两时刻间的时间长度,即采样周期T,如式(1)所示:

(1)

由于采样过程中采样周期固定不变,为简化运算过程,本设计中用偏差变化量来代替偏差变化率,如式(2)所示:

(2)

九点控制器根据偏差e和偏差率将系统的动态过程划分成九种工作状况,简称“工况”,每种工况对应控制器的一种输出uc。九种控制输出相互协调作用,使系统的输出稳定在期望值上。九点控制器的九种工况可以用图2所示的相平面图来表示,相平面图是分析九点控制器的基本工具。

图2由偏差e和偏差变化率组成的相平面图

在图2中,横轴和纵轴分别为偏差e和偏差率,L1、L2所夹的区域构成偏差变化率零带,二者所在位置的大小为分别±;L3、L4所夹的区域构成偏差零带,二者所在位置的大小分别为±e0。L1、L2、L3、L4四条线将整个相平面划分成九个区域,分别对应九点控制器的九种控制力。九点控制器的控制原则为:偏差e为正则输出增大;偏差e为零则输出保持;偏差e为负则输出减小。控制器输出:

uc=Ki, i=0, 1±, 2±, 3±, 4± (3)

式(3)中Ki为工况输出,对应的九种取值分别为K4+、K3+、K2+、K1+、K4-、K3-、K2-、K1-、K0,对应工况号分别为Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ、Ⅶ、Ⅷ、Ⅸ九个区的控制输出量。根据九点控制器的控制原则可知,九个工况参数Ki之间满足如下关系:

K4+≥K3+≥K2+≥K1+≥K0≥K1-≥K2-≥K3-≥K4-

由图2可见,当e0和取较小值时,系统在Ⅸ区的偏差和偏差率都接近于零,因此Ⅸ区是系统的期望工况。九点控制器的控制目标就是使系统的工况从其他区稳定到Ⅸ区。可见,e0越小,系统的稳态误差越小,而越小,则要求系统的跟踪性能越好。

三、FPGA设计九点控制器的方法

九点控制器控制策略的核心思想是利用输入的偏差和偏差率的工况,决策相适应的输出量,而不依赖于对象的数学模型,其控制过程具有很强的逻辑性。因此,选择FPGA设计九点控制器能够充分发挥其数字逻辑设计的优势,有利于简化控制算法。根据九点控制器的原理,将FPGA设计过程分为计算偏差、计算偏差变化率及决策控制输出三个步骤。

1.偏差e的计算。由于当前时刻k时的偏差为e(k)=r-c(k),对于FPGA来说只要一个减法器便可实现。设在FPGA设计中当前时刻为n,则有:

E(n)=R-C(n)=R+NOT{C(n)}+Cin(4)

式(4)中NOT为取反运算,Cin为进位,由于是减法运算,所以此处Cin应为1。式中偏差E(n)可能为负数,为了运算方便,避免因为数据极性的混淆而产生错误,特别地给这些变量增加一个符号位,其中,用‘0表示正数,‘1表示负数。一般的,设定值和实际值都是正数,所以此时有:

E(n)=R-C(n)={0,R}+NOT{0,C(n)}+

Cin(5)

2.偏差变化率的计算。对于k时刻的偏差率,,其中e(k)、e(k-1)分别为k时刻和(k-1)时刻的偏差。将e(k)通过寄存器延迟一个采样周期后便得到e(k-1),然后通过FPGA减法器的运算便得到偏差变化率。同理,e(k)和e(k-1)均含符号位。

3.决策控制输出uc。系统的工况是控制算法的依据,根据控制域的工况,输出相应的控制量。判断工况即判断e(k)和所在的区间,即判断二者分别与±e0和±作比较的大小。在FPGA中,各种运算和数据都是靠硬件实现的。例如,要比较-1和0的大小,在FPGA中-1是用补码表示的,如果直接比较会得到-1>0这个错误结果。因此,在FPGA中作数据比较时,应将作比较的数据都设置一个符号位,先由符号位判断数据的正负,然后再比较同符号数据的大小。

在FPGA的九点控制器设计中,判断工况是一个复杂过程,可以设置四个辅助变量以简化判断过程。令当前时刻x1(k)=e(k)+e0、x2(k)=e(k)-e0、x3(k)=+、x4(k)=-。在FPGA设计中,令当前时刻为n,将上述四个辅助变量算式转换后的描述如下:

(6)

式(6)中,X1(n)、X2(n)用来判断偏差的大小,X3(n)、X4(n)用来判断偏差变化率的范围。E(n)、、E0、均含有符号位,且数据位数相同。因此,可以根据X1(n)、X2(n)、X3(n)、X4(n)的符号位来判断E(n)与±E0、与±比较的大小。例如,式(6)中有:

X1(n)=E(n)+E0=E(n)-(-E0)(7)

根据公式(7)则可以推断偏差的工况,即:

IFX1(n)符号位为‘1

THENX1(n)<0 //即E(n)<(-E0)

IFX1(n)符号位为‘0

THENX1(n)≥0//即E(n)≥(-E0)

可见,FPGA设计将九点控制器的控制算法转化为只需判断X1(n)、X2(n)、X3(n)、X4(n)的符号位,即可知道E(n)与±E0及与±的比较大小的过程,依此推断系统当前时刻所处的工况,决策相应的输出控制量,算法简洁、易用。设Uout为控制器输出变量,X1(n)、X2(n)、X3(n)、X4(n)均为12位数据,其表达式如式(6)所示。FPGA设计九点控制器的推断算法描述如下:

IF X1[11]=1//符号位为‘1,X1为负数

THENUout=0 //控制器在Ⅴ~Ⅶ区输出为0

ELSE IF X2[11]=0且X2≠0

IF X3[11]=1

THEN Uout=K2+//在Ⅲ区的输出为K2+

ELSE IFX4[11]=0且X4≠0

THEN Uout=K4+//在Ⅰ区的输出为K4+

ELSEUout=K3+ //在Ⅱ区的输出为K3+

依此类推,即可推断每个工况的输出量。工况分析过程中的判断次数原来最多为15次,采用辅助变量后减少到最多9次。

四、FPGA九点控制器系统的实现与测试

如图3所示是以FPGA九点控制器作为核心部件,设计实现的一个单闭环炉温控制系统。

图3基于FPGA的炉温控制系统组成结构

图3所示的控制系统扩展了数据通信接口,其作用除了将编译的程序代码下载输入到FPGA芯片中外,更主要的是通过RS232串口电路接口实现FPGA九点控制器与计算机的通信,进行数据的保存和分析;温度采集模块输入端采用K型热电偶为测温元件,输出标准电压信号给AD转换,然后产生12位温度数据传送给九点控制器;继电器控温模块通过PWM方式控制固态继电器的通断来达到调节加热功率的目的;人机接口包括键盘和显示两部分,用于控制器的起停控制和温度显示等人机交互的操作;时钟控制模块用于将系统时钟分频并产生定时采样信号;控制器的输出应限制在一定的幅度内,以保证控制逻辑输出的信号在物理设备承受范围之内。

实验中以高温加热炉作为温度控制对象,被控对象数学模型的传递函数可描述为:

(8)

由式(8)可见,被控对象的比例系数为1.21,时间常数为1480s,纯滞后时间为8.64s,即控制对象为一阶、纯滞后、惯性系统。当温度变化范围较大时,被控对象模型的参数随之发生变化,因此系统还具有时变性和非线性。通常的温控要求上升时间尽可能短,超调量小或者无超调,稳定。

由于加热炉降温为自然冷却方式,降温速度慢,为保证最小超调控制,当出现超调的时候,应迅速减小控制器输出,使系统回复到控制零带,减少调节时间;而九点控制器九个工况输出中K1-、K2-、K3-、K4-所对应的工况表示系统响应有超调或者有产生超调的趋势,因此这里设,

K1-=K2-=K3-=K4-=0(9)

式(9)表示控制器在这四个工况的输出量为0,以避免被控对象产生大的超调。可看作K1-、K2-、K3-及K4-所对应的工况合并为一个工况,从而原来的九个状态简化为六个。算法改进后的相平面图如图4所示。合并工况后,判断工况的逻辑判断次数由原来的8次减少为6次,同时FPGA的设计质量得以优化。

由九点控制器的特性可知,偏差零带越小,系统的稳态性能相对越好,因此选择偏差零带e0=1;根据加热炉的加热特性选择偏差变化率零带=2。设控制器输出信号的幅值为100,以式(8)的加热炉数学模型应用Matlab仿真。

图4 九点控制算法改进后的相平面图

由于九点控制器各参数中对稳态性能起主要作用的是K3+和K0,因此首要确定这两个参数的值大小。如表1所示为测试中选取的典型一组仿真参数和两组实测参数的对比情况。

1 2 100 36 33 30 24+2e

根据控制器的各项参数对控制性能的影响进行仿真测试。当K0=25,K3+=36时,Matlab的仿真如图5(a)所示,其稳态控制效果是最理想的;K1+、K2+值的大小位于K0和K3+之间,分别选为30、33;K4+选为最大值100。将仿真整定的参数作为背景数据。

实验测试中环境温度约为25℃,作为初始值。加热炉的工作温度约为200℃~600℃,采集周期为2秒,K型热电偶测量精度为5‰,温度设定值为300℃,AD转换分辨率为12位,得到的阶跃响应曲线如图5(b)所示。由图可知,得到的温度曲线超调量为4℃,误差为3℃,系统输出不稳定,输出值在偏差零带上限上下波动。由测试分析可知,控制器在K0区域内的作用力偏大,即K0值应当减小。为了避免系统输出在偏差零带内上下波动,改进K0区域内输出为动态的控制策略,即在K0工况内偏差为正时,控制器输出稍大;偏差为负时,控制器输出稍小,因此可选取当前时刻K0(k)的大小满足e(k)为线性关系如下所示:

K0(k)=24+2e(k) (10)

(a)(b)(c)

图5炉温控制实验系统仿真和实测时的阶跃响应曲线

依据式(10)再次进行温控测试,得到的阶跃响应曲线如图5(c)所示。可见,改变后的K0(k)使系统输出的超调量仅1℃,系统能够稳态输出,误差小于2℃。同时,系统上升时间变化不大。算法改进前后的K0取值及控制性能指标如表2所示:

五、结论

1.基于FPGA九点控制器的设计过程中,采用将控制算法转化为偏差、偏差变化率与工况之间的逻辑关系的设计思想,可以发挥FPGA逻辑设计的优势。

2.优化FPGA设计。优化设计中引入了四个辅助变量,并采用增加符号位来简化九点控制器复杂的工况判断过程,大大提高了算法的执行效率。

3.进行工况分析,化简工况参数。根据高温加热炉控制对象的模型特征,将工况输出合并为六个,使得FPGA的逻辑设计结构进一步简化,降低了设计

成本。

4.由于系统控制的稳态性能与K0并非为恒定关系,而可以看作与当前时刻的输入偏差近似成线性关系,因此提出采用动态计算工况K0(k)的方法来减小系统输出波动。

将FPGA设计的九点控制器应用于具有一阶纯滞后惯性特性的高温加热炉的升温控制过程,设定温度为300℃。测试结果表明,系统输出的超调量为1℃,稳态误差小于2℃,上升时间约为360秒,控制参数满足预期目标要求,控制效果令人满意。

参考文献

[1]刘教瑜,刘江锋.一种新的延迟系统的控制方法[J].武汉理工大学学报,2003,25(10).

[2]苏义鑫,张尉,张南纶.九点五态控制器及其仿真研究

[J].武汉理工大学学报,2003,25(2).

[3]于海东,陈东雷.CPLD/FPGA在数字系统设计中的应用前景[J].电机电器技术,2003,(4).

[4]谭思云,徐武雄.九点控制器稳态性能分析[J].武汉理工大学学报,2002,24(10).

[5]YUEN FONG CHAN,M MOALLEM,WEI WANG. Design and Implementation of Modular FPGA-Based PID Controllers[A].IEEE Transactions on Industrial Electronics,2007,54(4).

[6]杨素英,张忠贤,李垂君.九点控制器在电阻炉温控制的研究和仿真[J].控制工程,2007,14(S3).

[7]谭思云,周建中.一种新型的智能控制器——九点控制器[J].华中科技大学学报(自然科学版),2003,31(12).

作者简介:杨亮(1982-),男,河北保定人,海洋石油工程股份有限公司助理工程师。

(责任编辑:赵秀娟)

猜你喜欢

温度控制加热炉
船舶主机温度控制方法优化
锻造温度控制
便携无火加热炉
基于模糊控制的PLC在温度控制中的应用
加热炉富氧推火与引火燃烧的火焰变化规律分析
双蓄热式加热炉的技术改造
三菱PLC在电加热与温度控制中的应用