"); //-->
摘 要: 基于ARM7和模糊控制算法开发的生物发酵智能控制系统。软件设计中移植了μC/OS-II操作系统,采用多任务程序设计方法设计,大大降低了编写程序的复杂度。针对生物发酵控制过程中的时变性、非线性、延时性、随机性等特点,提出采用模糊逻辑控制技术来实现系统的控制。在一定程度上解决了传统控制方法不易得到系统数学模型、难于对控制系统进行有效控制的不足。
关键词: ARM7;模糊控制;μC/OS-II;生物发酵
近年来, 生物工程技术越来越引起科技界、工业界和政府部门的重视。生物工程的许多成果需要经过发酵工业而转化为工业产品,所以,生物发酵及其控制系统在生物工程中显得越来越重要。生物发酵过程中的关键技术是发酵过程智能化控制。在智能化技术比较先进的国家,此技术已经得到了广泛的发展和应用,并转化为成熟的产品。而国内发酵过程的智能化控制程度比较低,生物发酵控制过程还处于初步研究阶段,可以实际应用的、成熟的系统比较缺少,正在使用的功能较为先进的发酵过程智能控制系统均为进口产品。因此,开发具有自主知识产权的生物发酵控制系统具有重要的现实意义和推广应用价值。随着32/64位微处理器性能的提高,国内微电子与嵌入式技术得到了迅速发展。基于此背景,本系统以基于ARM7内核的嵌入式片上系统S3C44B0X为核心开发了智能发酵控制系统,操作系统移植了嵌入式实时操作系统μC/OS-II。针对生物发酵控制过程中的时变性、大延时性、随机性等特点,系统采用了模糊逻辑控制方法,适应了复杂系统的控制。实践表明,该控制系统可达到较为理想的控制效果。此控制方法可以推广到其他具有大滞后、时变性等特点的控制对象中。
1 系统硬件设计
系统采用基于嵌入式μC/OS-II操作系统[1]的ARM硬件平台,以满足系统较高的实时性需求,方便了软硬件功能修改、扩充、升级等需求,缩短了开发周期,降低了研发成本。
发酵过程智能控制系统的工作原理:系统启动后,在自动运行状态下,ARM处理器执行传感器的采样功能,并根据采样值与设定值之间的差值,通过模糊控制算法分别控制各个控制元件。为了提高转换精度,从硬件和软件两个方面采取措施:通过数字滤波法,进一步去除干扰,提高精度;对传感器的输出信号实行非线性补偿,提高系统的测控精度。手动运行时,ARM处理器根据用户指令输出控制指令,控制各个执行元件。另外,ARM处理器输出的信号不足以驱动电磁阀等执行元件,系统还提供了驱动电路。同时经过串口接口电路将实际采样值传给计算机进行处理,从而实现了发酵过程的智能控制。图1是发酵过程智能控制系统的结构框图。
图1 智能发酵控制系统系统的结构框图
1.1 ARM嵌入式处理器
系统采用基于μC/OS-II内核的低功耗ARM处理器S3C44B0X[2]。它是三星公司专为手持设备和一般应用提供的高性价比的微控制器解决方案。S3C44B0X具有ARM处理器的所有优点:低功耗、高性能。具有丰富的片上资源:8KB高速缓存(Cache)、可配置的片内SRAM、两路握手功能的UART(通用串行口)、4路DMA控制器、系统管理功能、片选逻辑、FP/EDO/SRAM控制器、5路带PWM的定时器、I/O接口、RTC时钟、8路10位ADC、I2S总线、同步SIO接口和为系统提供时钟的PLL倍频电路,且集成了LCD控制器,可以将显示缓存中的数据传送到外部的LCD驱动电路中,非常适合嵌入式产品的开发。由于使用了该处理器众多功能模块使得系统结构紧凑,减少了系统的复杂度。系统中主要用到了S3C44B0X的8路10位A/D转换模块、LCD控制器、32位定时器、UART、GPIO、PWM输出模块等。
1.2 输入/输出通道
根据设计要求,系统对发酵液PH值、溶解氧含量DO实现在线实时检测,以满足发酵过程控制的实时性。为满足控制系统的性能要求,PH、DO传感器的反应时间要快,成本要低。系统选用上海雷磁仪器厂的DDD-32D型导电仪。该电导率传感器配有自动温度补偿功能;测量范围大,测量上限为104μs/cm,满足系统要求;输出信号为0~10mA,满足输入信号要求。同时传感器反应时间也满足控制要求,而且价格便宜。PH传感器同样满足上述要求。系统将PH值、DO值传感器的输出信号统一转换成电压信号。用一片CD4501作为多路选择开关。由于产生的信号很微弱,采用高精度可变增益放大器AD526实现信号的前置放大,调节模拟电压信号幅度。A/D转换器负责将采集来的模拟信号转换成CPU可以识别的数字信号,从而作为模糊控制器的输入,因此A/D转换器的设计对整个系统来说至关重要。系统采用S3C44B0X芯片自带的8位A/D转换器,该转换器内部结构中包括模拟多路复用器、自动调零器、时钟产生器、10位逐次逼近寄存器和输出寄存器。可以通过软件设置为Sleep模式,可节电减少功率损失,最大转换速率为100ksps,非线性度为正负1位,满足系统对控制精度的要求。
输出通道采用8255扩展并口输出。由于电磁阀等执行元件需要24伏交流驱动,故加入驱动电路。8255输出经三极管放大后驱动固态继电器,进一步控制24V交流的通断,以驱动电磁阀。
1.3 人机通道
这部分包括显示、键盘两部分电路。系统直接使用S3C44B0X芯片上内置的LCD控制器来构造显示模块,将LCD控制器的控制信号经74HC245驱动后与LCD模块对应信号相连即可。LCD显示电路采用北京精电蓬远公司的MOBI2006液晶显示,为128×64点阵图形液晶,可显8行西文、数字字符或者4行汉字,用来显示系统PH值、DO的设定值及采样值。当按键修改参数时,显示报警参数(上、下限报警值)以及各种提示符。
键盘电路采用HD7297键盘专用芯片来进行键盘的设计。HD7297是一个具有串行接口的智能驱动芯片。该芯片同时还可连接多达64个键的键盘矩阵,内部含有去抖电路。当有键按下时,键值自动保存在寄存器中,通过读取该寄存器,就可获得键盘键号,避免了传统的键盘扫描、计算键值等软件,方便程序编写。HD7297与S3C44B0X的连接极其简单,只要把/CS、CLK、DATA和KEY四根线连接到S3C44B0X的GPIO即可。
1.4 其他基本功能模块
其他基本功能模块包括存储器模块、超限报警模块、异步串行通信模块、JTAG接口模块、电源及时钟电路等。存储器模块用于记录系统及发酵程序、发酵累计时间等信息。超限报警模块由蜂鸣器实现,当由于意外因素导致实际采样值高于设定值上限时,蜂鸣器鸣叫报警。UART模块用于与上位机进行通讯,以利用PC机的资源。JTAG系统是通过仿真器将系统与PC相连,利用S3C44B0X芯片内部的在线调试模块在上位机上调试程序。电源及时钟电路提供系统工作时的电源及时钟。
2 模糊控制算法
生物发酵过程是时变、非线性、不确定等多变量的耦合系统,涉及到生命体的生长繁殖过程,机理复杂。系统的滞后和惯性都很大,传递函数很难确定。又因为控制系统的执行机构是只有两种状态的开关电磁阀,只能控制电磁阀在控制周期内的开关时间比例,用传统控制方法不易得到较好的控制效果,因此,系统采用模糊逻辑控制方法[3-6]来实现。在设计模糊控制器时,系统选用二维模糊控制器,即以偏差e和偏差变化Δe作为输入变量,控制系统框图如图2所示。这时的模糊控制器类似于一个PD控制器,从而有利于保证系统的稳定性,减少响应过程的超调量并削弱其振荡现象。
因为系统延迟较大,并且由于生物发酵过程中发酵罐中叶轮的旋转使检测得到的PH值、DO值的波动大,e和Δe的模糊语言值和论域等级不宜过多。同时,根据系统传感器A/D采样值的数据分析,选取m=5,k=2。e、Δe和U的语言真值集为:E、EC、U。其中E={NB,NS,ZE,PS,PB},论域为:{-4,-3,-2,-1,0,1,2,3,4};EC={NB,NS,ZE,PS,PB},论域为:{-4,-3,-2,-1,0,1,2,3,4};U={NB,NS,ZE,PS,PB},论域为:{-4,-3,-2,-1,0,1,2,3,4}。系统输入E、EC的隶属函数与输出U的隶属函数如表1、表2所示。
二维模糊控制器的模糊规则通常由模糊条件语句:
if 的模糊子集。多条这种结构的模糊条件语句就可以总结为模糊控制规则表。系统根据实际发酵过程中操作人员的操作经验,总结出控制规则如表3。
3 系统软件设计
软件设计采用了当前流行的嵌入式系统开发技术。采用嵌入式实时操作系统μC/OS-II,并使用ARM和Thumb指令集混合编译来优化代码密度。首先将实时操作系统μC/OS-II移植到S3C44B0X嵌入式微处理器上,系统将要完成的功能细化为几个核心任务,由μC/OS-II实时内核进行调度,实现多任务的并行执行,系统的可靠性和实时性得到大幅提升。
按系统要实现的功能,系统软件被划分为几个并行存在的任务。占先式操作系统对任务的调度是按优先权的高低进行的,将系统的所有任务按其优先级从高到低顺序依次是:系统监视、键盘扫描、LCD显示、模糊控制算法、控制量输出和异步串行通信。数据采集部分放到定时器中断程序中执行,即每2s对PH值、DO值进行数据采集、存储。系统监视任务用来监视其他任务。当被监视任务在执行过程中出现差错时,系统监视任务将按照预先设定的处理表对其进行处理,使出错的任务恢复正常运行,从而提高系统运行的可靠性。系统运行时,首先进行系统初始化操作,初始化所有数据结构、分配堆栈空间,然后建立任务间通信的邮箱或消息队列,建立任务及分配任务优先权。所有新建任务被置为就绪态,系统程序从优先权最高的任务开始执行。图3为系统的运行流程图。图4为系统软硬件原理图。
系统的数据采集中断程序Temp_Sampling_Task(void)(上接第40页)
如下:
Void Temp_Sampling_Task()
{
#if OS_CRITICAL_METHOD==3
OS_CPU_SR cpu_sr;
#endif
int temp;
for(;;)
{
temp=Temp_Sample();
if(QueueWrite((void*)QueueBuf,temp)==QUEUE_FULL)
OSTimeDly(4);
}
}
采集中断程序中用OSTimeDly()函数实现2个节拍延时,即系统每隔4×0.5=2ms执行一次任务,这就保证了每2ms采集一次PH值、DO值的采样速率。
针对时变、非线性、不确定性、多变量的生物发酵过程,采用ARM嵌入式处理器S3C44B0X实现生物发酵智能控制系统的设计,不仅可以减少外设,而且提高了系统的实时性和可靠性。采用模糊控制算法,解决了传统控制方法不易得到系统数学模型,难于对控制系统进行有效控制的不足。同时,通过移植μC/OS-II操作系统,大大方便了编程,缩短了软件的开发周期,提高了开发效率。实践证明,系统能够满足整体性能要求,达到良好的控制效果。
参考文献
[1] 王田苗.嵌入式系统设计与实例开发:基于ARM微处理器与μC/OS-II实时操作系统.北京:清华大学出版社,2002.
[2] 马忠梅.ARM嵌人式处理器结构与应用.北京:北京航空航天大学出版社,2002.
[3] 徐爱军.智能化测量控制仪表原理与设计「M].北京:航空航天大学出版社,1995.
[4] 诸静.模糊控制原理与应用[M].北京:机械工业出版社,2005.
[5] 张弋力,马明前.基于模糊控制算法的温度控制系统[J].自动化与仪器仪表,2004,(1):21-23.
[6] 刘新平,李宗民.基于模糊算法的高精度温度控制系统[J].电力系统及其自动化学报,2001,(4):60-63.*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。