刘 涛, 崔志强, 田建平, 刘龙兵, 郑本毫, 李迎鑫, 王 兴
(太原科技大学计算机科学与技术学院, 山西 太原 030024)
工业发酵工程是生物工程和现代生物技术及工业化的核心和基础。随着时代的发展,人们的生活需求不断提高,发酵工业的生产规模不断扩大以及生产工艺的不断改进,工业发酵工艺也迫切需要得到先进的控制与持续的优化,以此来提高生产效率。
针对工业发酵过程中由于系统复杂性造成的重构繁琐和原料浪费,为实现原料利用率,提升产品的良率,解决系统重构困难,设计一种基于可编程智能化工业测控系统是一个重要研究方向,通过可编程智能化工业测控系统按照工艺流程的改变随时可以低成本的重构软件程序,利用数字模型对整个设备进行自动化、智能化的控制。另外自动化、智能化的提出顺应了当今智能化时代的发展,不仅避免了不必要的人力资源浪费和工业发酵原料的浪费,还在一定程度上促进了社会经济的发展。
本设计基于智能化测控平台对工业发酵过程实现智能化控制,实质是通过智能化测控平台实现对不同情况下的工业发酵流程进行快速定制系统,我们实现的系统主要对物理量温度压力等进行测控。系统主要分为硬件和软件两大模块。
硬件模块为传统发酵模块和智能化监测控制模块相互结合,传统模块为传统的发酵装置,包括发酵罐体、传动装置、进料口与排渣口,液体进料和氧气、二氧化碳系统,支架、套管、滑环、齿轮和蒸汽口、排气口阀门。智能化监测控制模块包含温湿度传感器、压力传感器、PH 传感器、速度传感器、氧气二氧化碳传感器等,以及一个控温模块包含加热器和制冷器。
软件模块利用可编程智能化测控平台对工业发酵流程进行应用,整个软件系统主要有系统程序和用户程序,其中系统程序是软件有效运行的重要条件,通过可编程智能化测控平台来实现。系统编程程序以编程元件继电器代替传统硬件布线逻辑,通过这种形式,实现了软件的智能化控制,降低了学习成本和人力资源的浪费。
目前市场上的工业发酵设备常用发酵罐的结构设计[2],主要包含进出料系统、传动装置、发酵罐体、监测系统、温度压力控制系统、电气控制系统和计算机软件等组成,工业发酵罐的结构原理如图1 所示。
图1 工业发酵罐结构
进出料系统位于发酵罐两侧,进料口连接旋转轴,外侧可连接转动式进料斗进料,可在进料斗隔板上根据实际情况添加物料提升斗,排渣口位于发酵罐另一侧,45°倾斜向下,排渣口下方是出料斗。
传动装置包括减速机、传动轴、控制器、速度传感器。减速机采用BWED52 型减速机,传动比级数为双级,齿面为硬齿面,采用立式加速器,采用钢制传动轴通过监控系统可以调控传动装置的旋转速度来影响发酵反应。
发酵罐体是发酵系统的主体,内置温度、湿度、压力等传感器,并将数据发送至监测系统,来实时监测罐内的反应情况,根据实际产品情况进行选取合适的罐体。
电气控制系统包括控制模块、电机驱动设备、电路保护设备、控制器、电器元件,主要为整个发酵系统进行供电、传动、控制。
计算机软件是整个发酵的核心,主要负责对整个发酵流程进行专门的编程、数据监测与记录、内部发酵环境异常监测、系统故障诊断,针对不同的发酵流程设定各类参数。
随着发酵工业的生产规模不断扩大以及生产工艺的不断改进,相关企业对于工业发酵工程的控制也提出了新的要求。软件作为唯一可以直观观察到工业发酵工程中的发酵过程及控制过程的媒介,发挥着极其重要的作用,开发可编程的智能测控平台时,应该兼顾企业的要求和工业发酵工程的发展需求。
在可编程的智能化测控平台控制软件的设计方面,以工业企业计算机为核心,使用多种编程语言开发系统,采用先进的系统结构,在Windows 操作系统的大环境下,配置不同情况下常用的系统模式,例如酵母发酵性能的测定、温度检测设备、pH 值检测仪器、转速测量传感器等相关配置[3],以及可以显示工艺控制流程图、发酵过程中任意时刻的曲线图、发酵过程中相关因素的上下限报警状态,使可编程的智能化测控平台控制软件面对工艺调整时,可及时、轻易地完成系统重构,使工业发酵工程设备变成一个开放性的工作平台,以满足用户的不同需求。在可编程的智能测控平台的开发过程中,将每条控制指令按照线性表封装、执行,通过触发指令机关实现智能测控平台的编程,使执行过程灵活准确。该可编程的智能化测控平台在软件控制方面有测控平台智能控制、本地计算机自动控制和本地计算机手动控制三种控制方式。三种控制方式可以单独使用也可以混合使用。软件作为人机交互的主要方式,由登录界面、控制界面、发酵参数设置界面、发酵参数采集界面、系统维护界面、系统警告界面、编程界面、用户管理界面等相关界面组成。
上位机:系统中起主控作用,主要作为系统的规划控制[4],属于决策层,如图2 所示。
图2 上位机模块
下位机:具体执行层,主要完成系统规划层下达的任务,如图3 所示。
图3 下位机模块
WindowsSocket 是对应TCP/IP 协议的最典型、使用最广泛的网络编程接口。采用客户端/服务端(C/S)模式。在程序的开始,首先要调用WSAStartup()函数[5],使应用程序与WinSock.DLL 连接起来,当应用程序不再需要使用该动态连接库时,调用WSACleanup()函数。
每个进程准备就绪后,会进入一个就绪队列。当处理器里的进程结束时,从就绪队列中选择等待时间最长的进程来运行。对于长进程更适合采用先进先出的策略。
基于时钟的抢占策略,这种算法需要计算每个进程运行的平均值[6]。计算方法如下:
式中:Ti是进程的第i个实例的处理器执行时间(对批作业而言指总执行时间,对交互作业而言指处理器一次短促的执行时间);Si为第i个实例的预测值;S1为第一个实例的预测值,非计算所得[7]。
为避免每次重新计算总和,可把上式重写为:
最高响应比优先:调度决策基于对归一化周转时间的估计。
根据响应比公式求响应比RR,公式如下:
反馈:建立一组调度队列,基于每个进程的执行历史和其他一些规则,把他们分配到各个队列中[8]。
在整个系统中,指令集作为系统各部门之间的“桥梁”,用来传递系统各对象之间的信息,上位机作为软件的“大脑”,也是信息汇集的地方,系统的其他对象都与之联系,软件会对所接收到的不同指令做出不同的回应。一般来说,指令集可以联系用户,下位机控制器、云服务器、通信系统、其他外部通信系统和他自己,如表1 所示[9]。
表1 系统部分指令
指令大致可以分为系统参数信息采集指令、逻辑判断指令、定时器指令、系统警报指令、设备参数设置指令、程序调用指令等[1]。此外,指令集用户也是用户对程序进行重构的基础。例如“!Run_”:运行当前程序;“T0=Value”:设置温度阙值;“RD_T1”:采集罐内温度。这种设计尽可能的降低了编程难度,减少学习的成本,提高了编程的效率,提高了系统的可用性[10]。
设计了一种基于智能化测控平台的工业发酵系统,对传统的工业发酵罐测控系统进行了硬件优化和软件的智能化,自定义指令集方便基于不同的发酵流程进行系统重构,同时为系统提供了一种数据集合的方向。由于时间和个人能力有限,系统还存在一些不足,对于指令集的查找与使用缺少优化,以及数据组合学习的模型实践。系统的软硬件扩展性强,后续可以针对具体发酵流程进行针对性优化。