基于PLC的一维正态云模型实现研究
扫描二维码
随时随地手机看文章
摘要:通过深入研究云模型相关文献,提出一种在西门子S7-300 PLC上实现一维正态云模型的方法,在编程软件STEP7中用STL语言编写标准正态随机数、一维正态云模型算法等功能及其他相关程序,最后通过STEP7、PLCSIM和WINCC进行联合仿真测试,测试结果表明在S7-300 PLC上能实现一维正态云模型算法。
关键词:一维正态云模型;视窗控制中心;可编程控制器;随机数
自1995李德毅院士正式提出隶属云慨念(即云模型概念)以来,云模型理论的基本框架及其算法逐步得到完善,并开始趋向成熟。目前云模型的硬件实现已成为研究热点,如云模型已被用于TMS320F2812 DSP和STC89C52单片机[2—3]。PLC自1968年问世以来,凭借其可编程性、高可靠性成为工业自动化领域应用最广泛的控制设备。在深入研究云模型相关资料时,发现实现云模型的前提条件是能进行四则运算及指数、对数运算和产生任意正态随机数。S7-300 PLC运算功能强大,具有进行四则运算及指数、对数运算功能。但S7-300 PLC并没有产生随机数的硬件模块、系统功能SFC和系统功能块SFB。在深入分析随机数生成相关文献的基础上,用STL语言在SIEMENS编程软件STEP7上编制一个个功能FC实现任意正态随机数的产生,一维正态云模型算法等,最后在SIEMENS PLC专用的仿真器PLCSIM上进行调试,并将输出过程值用组态软件WINCC进行归档,然后将归档数据导入EXCEL,再将EXCEL里的数据转换成图形进行直观验证。
1 云模型
1.1 云模型的定义
设U={x}是一个用精确数值表示的定量论域,T是U上的定性概念即语言子集,CT(x)是U到闭区间[0,1]的映射,对于任意x∈U,都存在一个有稳定倾向的随机数CT(x),则称式(1)为云模型。
特别地,设R1(E1,E2)表示服从正态分布的随机数,其中E1为期望值,E2为标准差,则由满足式:
数据对drop(xi,mi)(i=1,2,…N)构成的云模型称为一维正态云模型,简称一维正态云,组成云模型的数据对(xi,mi)称为一维云滴。其中,Ex、En和He为云模型的3个重要数字特征,分别成为期望值、熵和超熵,记为[Ex,En,He]。
1.2 一维正态云模型算法
一维正态云模型其输入为表示定性概念的期望值Ex、熵En和超熵He,云滴数量N,输出是N个云滴在数域空间的定量位置及每个云滴代表该概念的确定度。具体算法为输入:(Ex,En,He,N)
输出:drop(x1,m1),drop(x2,m2),…,drop(xN,mN)
1)生成以Ex为期望值,En为标准差的一个正态随机数xi=R1(Ex,En)
2)生成以En为期望值,He为标准差的一个正态随机数Pi=R1(En,He)
3)计算:
4)令数据对(xi,mi)为一个一维云滴。
5)重复步骤1)~4),直至产生N个云滴。
2 正态分布随机数产生器
正态分布又称高斯分布,是最重要、最常见、应用最广泛的一种连续型分布一般来说,具有任意分布的随机数都是由(0,1)区间上的均匀分布随机数来实现的因此,首先要生成(0,1)区间上的均匀分布随机数,然后再利用随机变量函数变换的方法产生正态分布的随机数。
2.1 (0,1)均匀分布随机数生成方法
(0,1)区间上的均匀分布伪随机数产生的方法多种多样,有线性同余法、平方取中法、混沌法、反馈移位寄存器法等,其中最常用的是线性同余发生器,它通过如下的线性同余递推关系式来产生数列。
其中,a,c,x0,M均为正整数,x0为种子,使用时需要仔细地挑选模数M和种子x0,使得产生出的伪随机数的循环周期要尽可能长。xi为(0,1)区间上的随机数。
2.2 正态分布随机数的生成方法
生成(0,1)均匀分布随机数后,可以通过反函数法、变换法、舍选法、组合法等各种变换及映射关系来得到任意正态分布随机数。下面具体介绍变换法。
变换法通过一个变换将一个分布的随机数变换成为不同分布产生的随机数,变换法的典型的例子是Box-Muller变换,它可产生精确的正态分布随机变量。其变换式为:
X1、X2是在区间[0,1]上均匀分布的随机变量,所得的Y1、Y2相互独立的均匀值,方差的正态分布随机变量。
3 实现过程设计
3.1 程序设计流程
按前面阐述的随机数产生原理、一维正态云模型算法等编写0-1均匀分布随机数发生器、标准正态随机数发生器等核心功能程序。具体程序设计流程如图1所示。
3.2 部分程序
4 仿真实验及结果分析
打开STEP7编程软件,SIMATIC Manager中的菜单栏上单击“选项”,在下拉菜单中选择“仿真模块”或直接单击工具栏上的仿真器图标打开PIESIM,将整个站点(包括硬件组态和程序块)下载到PLCSIM中,与此同时启动WinCC,并激活WinCC运行系统。再开启仿真器PLCSIM,程序将开始运行起来,此时WinCC自动将输出过程值进行归档,最后将过程值的归档记录导入EXCEL,再将EXCEL里的数据转换成直观的图形。
云模型的特点是改变它的3个数字特征Ex,En和He就可以得到成千上万的云滴构成整个云。云模型的3个数字特征表示了各自不同的意义,只要一个数字特征不同就会产生不同的效果。图3分别以点和线性连接点的方式展示了代表云滴的正态随机数及其隶属度的分布情况。图4是图3的数据转化成图形的效果。图4、图5对比说明了云模型的En改变所引起的云的形状的改变。以上图形直观论证了一维正态云模型在S7-300 PLC上的成功实现。
5 结论
在深入研究云模型算法的相关文献和西门子S7-300PLC的功能后首次提出一维正态云模型算法在PLC上实现的思想,并在编程软件STEP7上将这一思想转化成STL语言程序,最后通过STEP7、PLCSIM和WINCC进行联合仿真测试,测试结果表明在S7-300 PLC能实现一维正态云模型算法。一维正态云模型算法在S7-300 PLC的成功实现为云模型算法的应用拓宽了道路,同时也为高级算法在PLC上的应用提供了一种新的思路与方法。