一种基于Pyke专家系统的工业设备软件模拟方法与流程

文档序号:11475556阅读:825来源:国知局

本发明涉及一种专家系统开发平台,尤其涉及一种可访问sqlite3数据库实时过程数据的专家系统开发平台,从而实现工业环境下硬件设备的软件逻辑模拟。本发明所设计的基于pyke专家系统的工业设备软件模拟方法主要是用于工业管控系统中对于非开发人员的培训。有了这种方法可以不用实地操作硬件设备就能获取到实时数据,从而大大提高了工作培训的效率并且降低了由于出错导致的损失。



背景技术:

在工业管控系统中,需要针对所使用的管控系统对工作人员进行相应的培训。这种培训的目的是让工作人员熟悉管控软件并能快速地用其进行工作。在工业中,大部分工作环境复杂,若是在培训中还需要工作人员去实时的操作相关设备,那么培训的成本会太高而且培训的效率也会大大降低。因此,本专利考虑将硬件设备软件化,设计一种实现硬件功能的软件模拟方法。

专家系统的开发一般都分成推理机和知识库,推理机独立于知识库,只要有某一行业的知识,推理机就可以正常工作推理出结果。知识则采用规则来标识知识,多条规则形成知识库。

当前的各种行业,如冶金行业、电力行业等,其中用到的专家系统一般都是采用专有的软硬件或者通用的计算机软硬件来进行开发。但是经验表明,专有的硬件或软件虽有助于专家系统的实现,但是不利于专家系统的推广和后期更新、维护,因此目前普遍采用在主流的计算机硬件平台或软件平台来进行专家系统的开发,本文采用的pyke是基于python的专家系统,有专门模块设计知识库、自带的推理规则、后台数据库采用sqlite3需要通过plc采集大量实时数据,这些实时数据根据需要一般都会保存在这些sqlite3数据库中。本发明所采用的pyke专家系统具有很强的使用价值,能从这个sqlite3数据库中获取相关的实时数据,以及时进行推理,从而获知各种硬件设备的当前状态是否正常,以采取相应的措施。从而可以在没有硬件设备的条件下,实现对工业管控系统的员工培训。

pyke以python语言为基础开发了数百个函数,向用户提供了基于规则的专家系统功能。



技术实现要素:

本发明的目的是提供一种基于pyke专家系统的软件模拟系统,以解决现有工业系统的员工培训中为产生实时数据而运行硬件设备的问题。本发明的专家系统平台可提高系统开发的规范性和效率,并可实现专家系统对各种实时数据库的访问,为专家系统与各种过程控制平台的结合提供可能,提高专家系统的实用性。

为了实现以上的目的,本发明的技术方案如下:

pyke可以把python程序调制成难以计数的各种形态,充分发挥领域特定语言(domainspecificlanguage,dsl)的优势,在实质内容上强化了程序的适用性。通过pyke的编译,可以提高dsl的性能。pyke在增强程序适用性的同时,以其代码重用的优势,将程序开发速度与应用领域范围整整提升了一个数量级。pyke使用sqlgen实时访问数据库,同时它还提供了多个知识库和推理机。

本发明由于采用了上述的技术手段,具有这样的技术效果,即(1)本发明所述系统通过将pyke编译生成静态库和动态库的方式作为推理机。推理规则包括正向推理规则和反向推理规则。正向推理规则采用的是if-then语句,pyke查看.krb文件中的哪个规则的if子句与已知事实相匹配,规则匹配成功后开始启用它,然后将其then子句中的事实加入到已知事实的列表中。pyke的then子句与下一个规则的if子句相链接,此推理过程持续到没有规则可供使用,推理的顺序是按照.krb文件中的规则的顺序来进行的。推理机使得用户只需在该平台下根据自己的需求增加、修改规则文件、编辑源文件,就可以迅速搭建起符合要求的专家系统框架,从而实现硬件的软件化。由此节约了大量的时间和精力。(2)pyke对python函数“调制”,根据需求做出相应的设置,具体的调制方法是将参数设置为常数。从而为专家系统与各种过程控制平台的结合提供了可能,使得开发出的系统可以及时对过程控制平台所采集到的各硬件设备的实时数据进行推理,使得硬件设备发生异常时,可以及时发出警报或者调整控制参数,从而实现了对生产线的闭环控制;(3)pyke把一种逻辑编程方式集成进python,它具有的基本功能包括:1.数据驱动的正向推理和目标驱动的反向推理;2.把python多个函数汇集起来,自动生成“调用顺序图”。支持的对象包括多个事实库、正向推理规则和反向推理规则、多个规则库、继生的规则库和推理规则被编译成python函数,这极大的增强了规则的表达能力,也增强了系统对平台的适应性。

与现有技术相比,本发明的有益效果如下:

本发明提供的软件模拟系统,可以通过简单的逻辑编程实现对大部分工业管控系统的模拟培训。用简单的逻辑语言及推理机制,将硬件设备用软件系统取代,不仅节省了成本,减小了工人操作不当所导致的错误,还提高了工作效率。

附图说明

下面结合附图与具体实施方式对本发明作进一步详细的说明:

附图1为利用本发明所述专家系统开发实现的软件逻辑模拟系统的示意图。

具体实施方式

本发明所述专家系统提供有知识库文件.kfb/.kqb/.krb,用于实现专家系统的功能。pyke把你的知识库文件编译成python文件,编译操作要用到pyke/krb_compiler/compiler.krb,最后生成的文件是compiler_bc.py,重新编译文件compiler_bc.py,在pyke根目录进行以下操作:

$mkdirpyke/krb_compiler/compiled_krb

$python

>>>frompykeimportkrb_compiler

>>>krn_compiler.compiled_krb(‘compiler’,’pyke.krb_compiler.compiled_krb’,

...’pyke/krb_compiler/compiled_krb’,

...’pyke/krb_compiler/compiler.krb’)

[‘compiler_bc.py’]

$mvpyke/krb_compiler/compiled_krb/compiler_bc.pypyke/krb_compiler

用户利用其实现具体的功能时,只需在通过本发明所述的系统中,根据自己的需要对规则文件进行一定的编辑、增加或修改就可以了。

本发明所述的系统还提供数据库访问库,pyke里面的sqlgen模块用于专家系统对sqlite3数据库的访问,从而为专家系统与各种过程控制平台的结合提供了可能,使得开发出的专家系统可以及时对过程平台所采集到的各硬件设备的实时数据进行推理分析,以及时知道当前的各硬件设备的工作状态是否正常,当发现某硬件设备处于非正常状态时,就可以立即根据预先的规则调整相关的参数,或者及时发出警报。

为了使用户能够利用本发明所述的专家系统的平台基础上迅速搭建出适合自己使用的专家系统框架,本发明还提供有多个专家系统模块,提供有多个专家系统模块,至少用于为专家系统提供事实、规则、模块、全局变量、与sqlite3进行数据交换等实现框架,因此这些专家系统模块为专家系统的开发提供了规范和标准,从而使得用户只需在该平台下增加、修改规则文件、添加访问数据库的python代码、或者编辑源文件,就可以快速实现适合不同硬件平台的专家系统,而无需费时费力去操作相关的硬件设备。在一个实施例中,所述专家系统模板都是通过文本文件来实现的,通过具体的程序(例如python程序)可将专家系统模板文件写入计算机内存中,并可使用各种模式(包括文字模式、元组模式)匹配所述模板文件中需要替换的内容,再将替换好的内容写回文件。

参考前面的例子可知,在一个实施例中,为了使得用户可根据自己的需要对这些模板进行修改,在上述专家系统中,可以将模式匹配功能用作“占位符”,此占位符可以是python程序里的任意参数,将替换好的内容写回文件,就可实现用户多模板的修改。当使用本发明所述的专家系统时,用户可以根据自己的目标需求以输入一些信息。

如附图所示,为利用本发明所述专家系统所实现的一个专家系统框架结构示意图,从该附图中可以看出本发明所述平台所实现的专家系统功能由pyke推理机、规则文件、python专家系统程序以及可能的用户接口组成,其中专家系统程序用于加载规则文件、获取数据库的数据,调用推理机进行推理并将推理结果返回给用户或者数据库。

由于专家系统程序和过程控制软件都是用python开发,并且通过数据库间接进行数据传递,因此过程控制和专家系统功能既可以独立运行也可以集成在一起。当专家系统与过程控制相结合,则可以实现闭环控制。

下面对所述专家系统各部分的实现及功能进行进一步描述:

(1)推理机:包括正向推理规则和反向推理规则,正向推理规则可以断言新的事实,可以激活更多的规则,反向推理规则能汇集python函数,形成具体的“方案图”程序。

(2)规则文件:由于不同的专家系统需要不同的规则,实际中规则文件往往不止一个,因此利用本发明所述平台所提供的一些规则文件的模板和接口供用户使用。

(3)数据库访问:pyke专家系统通过自带的sqlgen模块访问sqlite3数据库,方便数据的存取。

例如工业环境下具有大量的模型,这些模型有很多关键指标,为了提高专家系统的正确性,规则文件中凡是牵涉到可能变化的数据都不会固定,而是以参数的形式存在。这些参数值在系统运行时由专家系统程序从数据库获得。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1