先进控制策略在MCGS上的集成方法、系统、处理终端

文档序号:25047679发布日期:2021-05-14 12:41阅读:194来源:国知局
先进控制策略在MCGS上的集成方法、系统、处理终端
先进控制策略在mcgs上的集成方法、系统、处理终端
技术领域
1.本发明属于集成技术领域,尤其涉及一种先进控制策略在mcgs上的集成方法、系统、处理终端。


背景技术:

2.目前,近年来国产组态软件异军突起,选用国产组态软件开发性价比较高的控制系统已成为可能。随着国内组态软件和控制设备逐步发展、日渐成熟,充分利用其各自的优点并结合自己的实际需要建立解决方案,达到理想的性价比成为工程技术人员追求的目标。但是目前组态软件最大的一个弱点就是脚本语言简单难以实现先进的控制策略。
3.matlab是一套被广泛应用于数值计算、算法开发、系统仿真、信号与图象处理、控制系统设计、通讯、系统仿真等诸多领域的优秀软件,具有规模庞大、覆盖面极广的三十多个工具箱,因此非常适合控制系统先进控制算法的开发。
4.目前组态软件控制策略集成方法一般有以下三种:
5.①
直接使用组态软件所能提供的脚本语言进行简单控制策略的设计。
6.这种方法对于简单控制策略应用较多,但开发复杂控制算法较为困难。一般应用于简单小型控制系统中,复杂控制过程中很少应用。
7.②
通过组态软件与其他软件进行通信,借助其他软件实现控制策略
8.这种控制方法相对第一种方法来说,开发复杂算法较为方便,但最大的限制是需要其他软件与组态软件同时运行,对系统要求较高,且会影响到系统的实时性。
9.③
通过跨平台编程技术,借助先进的策略开发软件(如matlab)实现对控制策略在组态软件上的无缝集成。
10.这种方法利用跨平台编程技术,可以充分发挥组态软件与其他平台各自的优点,取长补短,且能脱离其他平台,真正使控制策略集成到组态软件。
11.就目前控制策略来说,pid控制在过程控制界一直扮演着非常重要的角色。由于pid控制算法简单,有较强的鲁棒性,即便是在采用dcs、plc或fcs现代化的生产过程控制系统中,80%~90%的工业控制回路仍采用各种形式的pid控制。但随着现代工业生产过程大型化、复杂化的发展趋势,许多复杂、多变量、时变而且又是生产过程关键系统的控制,常规pid已不能胜任。在这些情况下,必须借助于对非线性、大滞后和时变不太敏感的先进pid控制算法。
12.目前所使用的调用matlab文件的方法主要有:
13.1)在vb中通过调用matlab引擎利用activex通道与object.execute直接使用matlab的函数库和图形库。但是需要在后台启动一个matlab进程,占用内存,且无法脱离matlab环境。
14.2)通过dde(dynamic data exchange)交换数据实现通信。dde功能函数既可以由vb应用程序提供,也可以由matlab引擎库提供。能够提高系统总体性能,但必须有matlab环境支持。
15.3)针对vb提供的一个matlab库matrixvb可将与matlab相似的函数、语法嵌入到vb中,从而能够像使用vb的函数命令一样使用matlab函数。这种方法比较简单,但由于其仍然采用解释执行,难以保证实时运算。
16.4)matlab自带的编译器mcc可以将m文件转换为c/c++的源代码,以产生完全脱离matlab运行环境的独立运行程序。具有一定的可行性,但是对于工具箱函数是不能编译的,并且这样生成的代码可读性很差,无法修改这些代码,难于用于二次开发,非常容易出现不能编译的情况。
17.5)将matlab下写的m文件代码编译为可以直接调用的动态链接库(dll),然后在程序中调用。这个方法有较快的运行速度,可用于实时运算,且可以脱离matlab环境使用,但是只能实现非常简单的算法,是一个不成熟的方法。
18.通过上述分析,现有技术存在的问题及缺陷为:现有工业组态技术中存在的先进控制策略少不能满足特殊工艺控制要求。
19.解决以上问题及缺陷的难度为:
20.解决方案一般包括选择相应功能的软件、扩展软件等,但是,这些方法都将增加企业选择软件的成本,增加软件使用的不便、人员培训的成本。
21.解决以上问题及缺陷的意义为:
22.本发明的解决方案能够很好地解决上述问题,使用matlab强大的复杂算法设计能力,设计出复杂算法,利用本发明无缝的集成到现有的组态软件中,工业企业用户不需要购买价格昂贵的matlab软件。而且,在实际的操作中没有改变原组态软件的操作方式与技术人员的操作习惯,便于技术人员使用,不会增加培训成本。


技术实现要素:

23.针对现有技术存在的问题,本发明提供了一种先进控制策略在mcgs上的集成方法、系统、处理终端。
24.本发明是这样实现的,一种先进控制策略在mcgs上的集成方法,所述先进控制策略在mcgs上的集成方法包括:
25.步骤一,使用matlab设计得到先进控制策略,并利用matlab将设计的先进控制策略打包成com组件的形式;
26.步骤二,在vb集成开发环境中调用打包好的com组件,在vb环境中生成遵守组态软件mcgs接口规范的activedll。
27.进一步,步骤一中,所述先进控制策略包括:专家pid控制策略、模糊pid控制策略、神经网络pid控制策略、灰色pid控制策略和非线性pid鲁棒控制策略。
28.进一步,所述使用matlab设计得到模糊pid控制策略包括:
29.利用模糊控制规则在线对三个参数进行修改,构成自适应模糊pid控制器;定义自适应模糊pid控制器的系统误差e和误差变化率de的模糊论域;建立合适的模糊规则表;并基于建立的模糊规则表,根据各模糊子集的隶属度赋值表和各参数模糊控制模型,应用模糊合成推理设计pid参数的模糊矩阵表查出修正参数,运算处理对pid参数进行在线自校正,即可。
30.本发明的另一目的在于提供一种实施所述先进控制策略在mcgs上的集成方法的
先进控制策略在mcgs上的集成系统,所述先进控制策略在mcgs上的集成系统包括:
31.控制策略设置模块,用于使用matlab设计得到先进控制策略;
32.打包模块,用于利用matlab将设计的先进控制策略打包成com组件的形式;
33.构件生成模块,用于在vb集成开发环境中调用打包好的com组件,在vb环境中生成遵守组态软件mcgs接口规范的activedll。
34.结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供了一种先进控制策略在组态软件中的集成方法,解决了现有工业组态技术中存在的先进控制策略少不能满足特殊工艺控制要求的问题。
35.本发明通过深入研究组态软件的底层开发机理,充分运用计算机混合交叉编程技术,发现了组态软件与常用开发工具间的底层接口,并利用matlab编写先进的控制策略,成功把这些策略集成到组态软件中。先进控制策略集成到组态软件后,不会改变组态软件的运行环境,没有改变组态软件所具有的便于组态、易于操作的特点。
36.本发明运用跨平台混合编程的方法成功把先进控制算法集成到了组态软件中,弥补了组态软件控制算法开发方面的不足,对充分发挥工业组态软件在工业信息化系统集成的优势,扩展组态软件应用领域有很大意义,提高组态软件使用率有很大意义。
37.本发明用matlab和vb混合编程开发控制策略控件,并集成到mcgs软件中,实践证明,本发明充分发挥了组态软件、matlab各自的优点,使组态软件能同时满足用户对友好人机界面与先进控制策略的双重需求,且开发成本低,系统移植性能好,具有较高的应用价值。
38.本发明利用com builder进行打包,有很好的可移植性,运行速度和可靠性都比较好。本发明的控制策略不用在matlab和vb环境的支持,真正脱离了开发环境,无缝的集成在mcgs上,而且可以轻松的一直到其他计算机上使用。
附图说明
39.为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
40.图1是本发明实施例提供的先进控制策略在mcgs上的集成方法流程图。
41.图2是本发明实施例提供的先进控制策略在mcgs上的集成系统结构示意图;
42.图中:1、控制策略设置模块;2、打包模块;3、构件生成模块。
43.图3是本发明实施例提供的模糊自适应pid控制器示意图。
44.图4是本发明实施例提供的水箱液位控制为例进行了测试效果图。
具体实施方式
45.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
46.针对现有技术存在的问题,本发明提供了一种先进控制策略在mcgs上的集成方
法,下面结合附图对本发明作详细的描述。
47.如图1所示,本发明实施例提供的先进控制策略在mcgs上的集成方法包括以下步骤:
48.s101,使用matlab设计得到先进控制策略,并利用matlab将设计的先进控制策略打包成com组件的形式;
49.s102,在vb集成开发环境中调用打包好的com组件,在vb环境中生成遵守组态软件mcgs接口规范的activedll。
50.步骤s101中,本发明实施例提供的先进控制策略包括:专家pid控制策略、模糊pid控制策略、神经网络pid控制策略、灰色pid控制策略和非线性pid鲁棒控制策略。
51.本发明实施例提供的使用matlab设计得到模糊pid控制策略包括:
52.利用模糊控制规则在线对三个参数进行修改,构成自适应模糊pid控制器;定义自适应模糊pid控制器的系统误差e和误差变化率de的模糊论域;建立合适的模糊规则表;并基于建立的模糊规则表,根据各模糊子集的隶属度赋值表和各参数模糊控制模型,应用模糊合成推理设计pid参数的模糊矩阵表查出修正参数,运算处理对pid参数进行在线自校正,即可。
53.如图2所示,本发明实施例提供的先进控制策略在mcgs上的集成系统包括:
54.控制策略设置模块1,用于使用matlab设计得到先进控制策略;
55.打包模块2,用于利用matlab将设计的先进控制策略打包成com组件的形式;
56.构件生成模块3,用于在vb集成开发环境中调用打包好的com组件,在vb环境中生成遵守组态软件mcgs接口规范的activedll。
57.下面结合具体实施例对本发明的技术效果作进一步描述。
58.实施例1:
59.1控制策略集成方法分析
60.1.1目前控制策略集成方法
61.目前组态软件控制策略集成方法一般有以下三种:
62.①
直接使用组态软件所能提供的脚本语言进行简单控制策略的设计。
63.这种方法对于简单控制策略应用较多,但开发复杂控制算法较为困难。一般应用于简单小型控制系统中,复杂控制过程中很少应用。
64.②
通过组态软件与其他软件进行通信,借助其他软件实现控制策略
65.这种控制方法相对第一种方法来说,开发复杂算法较为方便,但最大的限制是需要其他软件与组态软件同时运行,对系统要求较高,且会影响到系统的实时性。
66.③
通过跨平台编程技术,借助先进的策略开发软件(如matlab)实现对控制策略在组态软件上的无缝集成。
67.这种方法利用跨平台编程技术,可以充分发挥组态软件与其他平台各自的优点,取长补短,且能脱离其他平台,真正使控制策略集成到组态软件。
68.1.2mcgs上集成控制策略的思路
69.使用matlab设计先进控制策略,也就是具体的控制算法,然后使用matlab提供的组件技术,把算法打包成com组件的形式;然后在vb集成开发环境中调用该com组件,为先进策略在组态软件上的集成做好准备;最后在vb环境中生成遵守组态软件mcgs接口规范的
activedll,这样该策略就能成为mcgs一个功能构件,直接使用,至此就完成了先进控制策略在mcgs上的集成。该策略不用在matlab和vb环境的支持,真正脱离了开发环境,无缝的集成在mcgs上,而且可以轻松的移植到其他计算机上使用。
70.2先进控制策略构件设计
71.就目前控制策略来说,pid控制在过程控制界一直扮演着非常重要的角色。由于pid控制算法简单,有较强的鲁棒性,即便是在采用dcs、plc或fcs现代化的生产过程控制系统中,80%~90%的工业控制回路仍采用各种形式的pid控制。但随着现代工业生产过程大型化、复杂化的发展趋势,许多复杂、多变量、时变而且又是生产过程关键系统的控制,常规pid已不能胜任。在这些情况下,必须借助于对非线性、大滞后和时变不太敏感的先进pid控制算法。先进pid控制是对那些以常规pid控制策略为基础,并与先进控制技术、智能控制技术相结合并派生出来的,具有比常规pid控制效果更好的新型pid控制策略的统称,它包括专家pid控制、模糊pid控制、神经网络pid控制、灰色pid控制和非线性pid鲁棒控制等。
72.本发明设计了一套mcgs高级策略软件包,集成到mcgs上,这里仅以模糊自适应pid算法为例详细说明设计过程。
73.2.1控制策略
74.自适应模糊控制器以误差和误差变化率作为输入,可以满足不同时刻的误差和误差变化率对pid参数的需求。利用模糊控制规则在线对三个参数进行修改,便构成了自适应模糊pid控制器,其结构如图1。
75.模糊自适应控制器采用二输入三输出的形式系统以误差e和误差变化率de为输入,采用模糊推理方法输出pid参数kp、ki、kd的变化值。定义好系统误差e和误差变化率de的模糊论域;总结操作人员的操作经验,建立合适的模糊规则表;在模糊控制规则表建立好的前提下,根据各模糊子集的隶属度赋值表和各参数模糊控制模型,应用模糊合成推理设计pid参数的模糊矩阵表查出修正参数,运算处理实现对pid参数的在线自校正。
76.在matlab中使用m语言编写模糊自适应pid算法,文件名定义为fuzzypid.m,函数定义格式为function[b1,b2,b3]=fuzzypid(a1,a2)。
[0077]
function[b1,b2,b3]=fuzzypid(a1,a2);
[0078]
e=a1;de=a2;
[0079]
pc=newfis('myfuzzypid');
[0080]
%参数e的论域及隶属函数定义
[0081]
pc=addvar(pc,'input','e',[

3,3]);pc=addmf(pc,'input',1,'nb','zmf',[

3,

1]);
[0082]
pc=addmf(pc,'input',1,'nm','trimf',[
‑3‑
20]);
[0083]
pc=addmf(pc,'input',1,'ns','trimf',[
‑3‑
11]);
[0084]
pc=addmf(pc,'input',1,'z','trimf',[

202]);
[0085]
pc=addmf(pc,'input',1,'ps','trimf',[

113]);
[0086]
pc=addmf(pc,'input',1,'pm','trimf',[0,2,3]);
[0087]
pc=addmf(pc,'input',1,'pb','smf',[1,3]);
[0088]
%类似定义参数de、kp、ki、kd的论域及隶属函数(略)
[0089]
…………………
[0090]
rulelist=[1 1 7 1 5 1 1;1 2 7 1 3 1 1;
…………
[0091]
…………
[0092]
7 6 1 7 5 1 1;7 7 1 7 7 1 1];
[0093]
pc=addrule(pc,rulelist);
[0094]
pc=setfis(pc,'defuzzmethod','centroid');
[0095]
k_pid=evalfis([e,ec],pc);
[0096]
kp=k_pid(1);ki=k_pid(2);kd=k_pid(3);
[0097]
b1=kp;b2=ki;b3=kd;
[0098]
2.2控制算法com组件制作
[0099]
利用matlab2008a中增加了matlab builder ne product,matlab builderne为用户生成符合.net或com组件框架的免费代码,使得这些代码可以在各类桌面电脑和web服务器之上运行。使用它,用户可以轻易将其设计的matlab应用程序整合到自己的.net或com程序中,生成的组件代码将被加密并被封装为.net或com框架。用户可以像使用其它.net或com组件一样,方便的将基于.net或com方式的组件集成到现有应用程序内。当创建组件时,不需要matlab compiler runtime(mcr)支持,所有的共享库文件均由matlab提供。但是mcr是运行matlab compiler的必要条件,若要运行matlab builderne创建的.net或com组件,请首先安装mcr。总的来说,组件应该由matlab创建,mcr提供免费的配置与支持。
[0100]
首先在matalb提示行下输入mbuild

setup选择编译器,本发明选择了microsoftvisual c++6.0;然后再在命令窗口输入deploytool,它拥有由matlab compiler提供的图形用户界面,它允许用户将自己建立的m文件转换成符合.net或com规范的应用程序组件。然后在菜单file下选择new deployment project,在打开的窗口中选择matlab builder ne

>generic com component.定义工程名称,给工程设置组件名、类名为mhpid,添加算法的m文件fuzzypid.m。保存设置,点击build the project

编译生成组件,最后点击package the project打包发布组件。至此就生成可模糊自适应pid算法的com组件,它是以dll文件的形式存在的,可以完全脱离matlab环境使用。
[0101]
2.3mcgs策略构件的开发
[0102]
mcgs为使用vb准备了功能强大的高级开发向导。这个高级开发向导可以帮助用户方便的生成各种扩充构件的源程序结构框架。mcgs设备构件的实现方法和原理与标准vb的activedll完全一致,但mcgs规定了一套接口规范,只有遵守这些接口规范的activedll才能用作mcgs的功能构件。mcgs功能构件必须具有如下4个接口:
[0103]
svrmenucommand组态时调用,执行菜单命令
[0104]
svrstgysetoperator组态时调用,设置构件的属性
[0105]
svrstgyrunoperator运行时调用,执行构件的功能
[0106]
svrcheck组态中,编译查错时调用
[0107]
开发mcgs构件的过程,实际就是根据功能构件的特性和含义来完成4个接口功能的编程过程。
[0108]
在正确安装完mcgs及vb6.0之后,启动vb6.0,选择“外接程序(add

ins)”菜单,单击该菜单下的“mcgs开发向导项”,弹出开发向导窗口后选择所要开发的构件类型为“运行策略功能构件”,单击“下一步”,设置构件工程名为“fuzzypid”,显示名为“模糊自适应
pid”,其余步骤为默认设置,单击“完成”后,mcgs即开始自动生成功能构件的源程序框架。该工程组包括“fuzzypid”、“testdll”两个vb工程。需要注意的是:mcgs开发向导只是生成构件的源程序框架,没有任何具体的功能,要完成特定的功能,还需要在此基础上,针对具体要求进行进一步的编程和调试工作。
[0109]
在生成的工程中新建两个form:frmaddinrun(策略运行界面),frmaddinset(策略组态界面)。
[0110]
给工程添加以下class modules:
[0111]
clsaddin:与mcgs的接口;
[0112]
clssaveaddin:构件的属性读取、保存,检测属性设置;
[0113]
clssavedata:与mcgs的存盘数据库的接口。
[0114]
组态界面中点击?号按钮就可以添加mcgs数据库中定义的变量进行变量连接,运行界面将显示各变量的实时值。限于篇幅具体程序省略。
[0115]
在vb中调用matlab生成的com组件的方法:
[0116]
dimmhppidas mhpid.mhpidclass
[0117]
setmhppid=newmhpid.mhpidclass’将对象引用赋给变量
[0118]
call mhppid.fuzzypid(3,pid(0),pid(1),pid(2),e,ec)
[0119]’调用“mhpid_1_0.dll”[0120]
3策略构件的集成与测试
[0121]
在所有的编程调试工作无误以后,把工程fuzzypid重新编译一下,点击file

>make fuzzypid.dll生成最后可以使用的active dll文件:fuzzypid.dll,把这个文件拷贝到mcgs目录\mcgs\program\addins\用户定制构件下,同时修改[path]addins目录下的addins.ini文件,在文件中注明fuzzypid.dll。启动mcgs组态环境,在“工具”菜单下,选取“策略构件管理”项,双击“用户定制构件”文件夹,选择“模糊自适应pid”后安装。打开一个运行策略的组态窗口,在策略工具箱内,会显示“模糊自适应pid”一项。这就完成了策略构件的集成。
[0122]
策略构件集成到mcgs中后,本发明以水箱液位控制为例进行了测试。在mcgs中组态用户策略,把该构件选入到策略行中,双击该策略,mcgs调用策略的组态环境接口,用户可以在组态环境中对算法的各项参数进行设置。进入运行环境后,当对应的策略行被执行时,mcgs调用构件的运行接口,执行模糊自适应pid算法。实验表明matlab以策略形式被mcgs引用后,跟一般通用构件一样,调用方便、运算效率高。
[0123]
4结束语
[0124]
上述内容详细说明了先进控制策略在mcgs上的集成方法。在mcgs良好稳定的画面技术基础上克服了脚本语言简单不能完成复杂控制策略的缺点,充分利用了matlab在数据处理与算法设计的优势,使用vb调用com技术实现了复杂算法的集成,而且算法完全摆脱matlab环境的束缚,最后成功把设计的构件集成到了mcgs中,使mcgs同时满足了用户对友好人机界面与先进控制策略的需求。实践证明,本发明开发成本低,系统移植性能好,极大地扩充了组态软件的应用领域,具体有较高的应用价值。
[0125]
本发明实施例提供的先进控制算法集成到mcgs中后,图4所示,下面以水箱液位控制为例进行了测试。在mcgs中组态用户策略,把该构件选入到策略行中,双击该策略,mcgs
调用策略的组态环境接口,用户可以在组态环境中对算法的各项参数进行设置。进入运行环境后,当对应的策略行被执行时,mcgs调用构件的运行接口,执行模糊自适应pid算法。测试效果如下图所示。应用实例表明基于本发明设计的先进算法已经成功集成到mcgs,被mcgs引用后,跟组态软件mcgs原有的通用构件一样,使用方式没有发生变化,组态配置方便、运算效率高,且不需要增加其他软硬件的支持。
[0126]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1