首页 接线图文章正文

PLC单参数模糊控制(含代码)

接线图 2023年10月06日 12:43 238 admin

一、 说明

通过西门子 1200 控制器,使用博途 V13SP1 的 scl 编程语言实现模糊控制算法,反模糊计算复杂,为了简化算法,将输出功能函数简化为矩形,隶属度只取矩形的中点。


二、 实验测试

通过 matlab7.0 测试模糊控制结果,如下

1、 测试 1,输入 0.5,输出

PLC单参数模糊控制(含代码)  第1张


2、 测试 2,输入 0.85,输出

PLC单参数模糊控制(含代码)  第2张

3、 测试 3,输入 1.1

PLC单参数模糊控制(含代码)  第3张

4、 测试 4,输入‐0.44,输出

PLC单参数模糊控制(含代码)  第4张

5、 测试 5,输入‐1.2

PLC单参数模糊控制(含代码)  第5张

程序代码

Fis

名称 数据类型偏移量默认值可从 HMI 访问

在 HMI 中可见

设置值注释

Input

in Real 0.0 0.0 True True False

insh Real 4.0 0.0 True True False

insl Real 8.0 0.0 True True False

outsh Real 12.0 0.0 True True False

outsl Real 16.0 0.0 True True False

Output

out Real 20.0 0.0 True True False

InOut

Static

then Bool 24.0 false True True False

clause_type Bool 24.1 false True True False

clause_val Byte 25.0 16#0 True True False

c lause_val_boll Array[0..7] of

Bool

25.0 False False False

clause_val_boll[0] Bool 0.0 False False False

clause_val_boll[1] Bool 0.1 False False False

clause_val_boll[2] Bool 0.2 False False False

clause_val_boll[3] Bool 0.3 False False False

clause_val_boll[4] Bool 0.4 False False False

clause_val_boll[5] Bool 0.5 False False False

clause_val_boll[6] Bool 0.6 False False False

clause_val_boll[7] Bool 0.7 False False False

if_val Byte 26.0 16#0 True True False

mu Byte 27.0 16#0 True True False

temp Int 28.0 0 True True False

label Int 30.0 0 True True False

input Byte 32.0 16#0 True True False

fuzzy_out Byte 33.0 16#0 True True False

clause Int 34.0 0 True True False

numerator DInt 36.0 0 True True False

denominator DInt 40.0 0 True True False

j Int 44.0 0 True True False

outputs Array[0..4] of

Byte

46.0 True True False

outputs[0] Byte 0.0 16#0 True True False

outputs[1] Byte 1.0 16#0 True True False

outputs[2] Byte 2.0 16#0 True True False

outputs[3] Byte 3.0 16#0 True True False

outputs[4] Byte 4.0 16#0 True True False

output_memf Array[0..4] of

Byte

52.0 True True False

output_memf[0] Byte 0.0 0 True True False

output_memf[1] Byte 1.0 64 True True False

output_memf[2] Byte 2.0 128 True True False

output_memf[3] Byte 3.0 191 True True False

output_memf[4] Byte 4.0 255 True True False

input_memf Array[0..4, 0..3]

of Byte

58.0 True True False

input_memf[0,0] Byte 0.0 16#00 True True False

input_memf[0,1] Byte 1.0 16#00 True True False

input_memf[0,2] Byte 2.0 16#0D True True False

input_memf[0,3] Byte 3.0 16#07 True True False

input_memf[1,0] Byte 4.0 16#1A True True False

input_memf[1,1] Byte 5.0 16#0A True True False

input_memf[1,2] Byte 6.0 16#5E True True False

input_memf[1,3] Byte 7.0 16#0F True True False

input_memf[2,0] Byte 8.0 16#48 True True False

input_memf[2,1] Byte 9.0 16#08 True True False

input_memf[2,2] Byte 10.0 16#95 True True False

input_memf[2,3] Byte 11.0 16#08 True True False

input_memf[3,0] Byte 12.0 16#95 True True False

input_memf[3,1] Byte 13.0 16#14 True True False

input_memf[3,2] Byte 14.0 16#BF True True False

input_memf[3,3] Byte 15.0 16#06 True True False

input_memf[4,0] Byte 16.0 16#BF True True False

input_memf[4,1] Byte 17.0 16#06 True True False

input_memf[4,2] Byte 18.0 16#FF True True False


FIS / FIS1 [CPU 1214C AC/DC/Rly] / 程序块

Fis [FB1]

Fis 属性

常规

名称 Fis 编号 1 类型 FB 语言 SCL

编号 自动

信息

标题 作者 注释 系列

版本 0.1 用户自定义 ID

名称数据类型偏移量默认值可从 HMI 访问

在 HMI 中可见

设置值注释

input_memf[4,3] Byte 19.0 16#00 True True False

rules Array[0..9] of

Byte

78.0 True True False

rules[0] Byte 0.0 #GAP_ZERO True True False

rules[1] Byte 1.0 #TURN_ZERO True True False

rules[2] Byte 2.0 #GAP_VSMALL True True False

rules[3] Byte 3.0 #TURN_VSMALL True True False

rules[4] Byte 4.0 #GAP_SMALL True True False

rules[5] Byte 5.0 #TURN_SMALL True True False

rules[6] Byte 6.0 #GAP_MEDIUM True True False

rules[7] Byte 7.0 #TURN_MEDIUM True True False

rules[8] Byte 8.0 #GAP_BIG True True False

rules[9] Byte 9.0 #TURN_BIG True True False

Temp

ConSTant

GAP_ZERO Byte 16#00

GAP_VSMALL Byte 16#01

GAP_SMALL Byte 16#02

GAP_MEDIUM Byte 16#03

GAP_BIG Byte 16#04

TURN_ZERO Byte 16#80

TURN_VSMALL Byte 16#81

TURN_SMALL Byte 16#82

TURN_MEDIUM Byte 16#83

TURN_BIG Byte 16#84

MU_MAX Byte 16#FF

IO_NUM Byte 16#07

LABEL_NUM Byte 16#70

DEFAULT_VALUE Byte 16#00

Totally Integrated

Automation Portal


0001 //------------------------------初始化--------------------------------------------------

0002 #label:=0;

0003 #then:=0;

0004 #if_val:=#MU_MAX;

0005

0006 //------------------------------输入值归一化--------------------------------------------

0007 //#input:=INT_TO_BYTE(REAL_TO_INT((#in-#insl)/(#insh-#insl)*255.0));

0008 #input := DINT_TO_BYTE(TRUNC((#in - #insl) / (#insh - #insl) * 255.0));

0009 //#input := 16#c5;

0010 //----------------------------模糊控制算法----------------------------------------------

0011 FOR #clause := 0 TO 9 DO

0012 #clause_val := #rules[#clause];//存储当前规则

0013 #clause_type := #clause_val_b

版权与免责声明

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

标签: 控制 编程 HMI

发表评论

接线图网Copyright Your WebSite.Some Rights Reserved. 备案号:桂ICP备2022002688号-2 接线图网版权所有 联系作者QQ:360888349