热门关键词:

基于Schneider Premium的模糊PID控制器的设计和实现

  • 该文件为pdf格式
  • 文件大小:196.46KB
  • 浏览次数
  • 发布时间:2014-11-25
文件介绍:

本资料包含pdf文件1个,下载需要1积分

模糊控制是实现智能控制的-种重要而又有效的形式,而PLC作为核心控制器在实际工业控制过程中的地位更难以替代,如果将模糊控制算法与PLC自带的PID调节功能块相结合,既能弥补各 自的不足,又能提高控制精度,将在工业生产中发挥更大的作用。当前,部分工控厂商已经在市场上推出了-些封装模糊控制算法的拈,但价格高昂,相对-些中小型生产线,成本压力加大。本文通过编程的方法在Schneider的中型PLCemium上实现模糊控制,既能得到理想的控制效果,又能有效的降低成本。

1 模糊PID控制器设计1.1模糊PID控制器的结构图1 模糊PID控制器 结构 框图模糊PID控制器主要由模糊控制器和PID控制器两部分组成,本系统中PID控制器在PLC中以功能块的形式给出,已封装好PID算法,本文主要介绍模糊控制器的设计和实现,然后将模糊控制器的输出用作PID功能块的输入,即可实现完整的模糊PID控制器。模糊控制器可对PID控制器三个输入参数kp,ki,kd进行 自校正。-般情况下,单输入的-维控制器的控制性能不佳,而多输入的高维控制器虽然控制性能精细,但控制规则往往过于复杂,不便于实现,通常二维的即可满足要求,故本系统设计-个二输入三输出的二维模糊控制器,输入为偏差e和偏差的变化ec,经模糊化,模糊推理和解模糊,完成PID控制器三个输入参数的整定。

1.2模糊控制表的求取将输入变量从基本论域转换到模糊集论域需将e和ec乘以相应的量化因子Ke和Kec,相应的模糊集合为E、Ec,同理,输出变量的模糊集合为Kp, Ki, Kd。

设误差所取模糊子集论域为-n,-n1,,0,n-1,n;误 差变 化 所取 模糊 子 集的论 域 为-m,-ml,,0,m-1,m;控制量所取的模糊子集的论域为-1,-11,,0,l-1,1);-般选误差论域的n>6,误差变化论域的m>6,控制量论域的l>7。这是因为语言变量的词集多半选为七个 (或八个 ),这样能满足模糊集论域中所含元素个数为模糊语言词集总数的二倍以上,确保诸模糊集能较好的覆盖论域,避免出现失控现象 。

E和 E C的 论 域 选 为 f.6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,语 言 变 量 词 集 为NB,NM,NS,Z0,PS,PM,PB);Kp,Ki,Kd的论域选为-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6),语言变量词集为NB,NM,NS,ZO,PS,PM,PB;在Matlab软件的simulink下的模糊工具箱中输入已衙的论域 ,隶属度函数都选为三角形。模糊控制规则是根据系统的误差及误差的变化趋势来消除误差的原则来确定的。模糊规则表如表1所示。本文以Kp为例来收稿日期:2012-11-15作者简介:姜彬 (1984-),男,吉林人,硕士研究生,研究方向为工业自动化系统集成。

第35卷 第3期 2013-03(上) [1231 、l 訇 化求蓉制表,Ki,Kd求取方法相同。

表1 Kp的模糊规则表NB 聊 NS Ps 瑚 PBNB PB PB 瑚 瑚 Ps眦 PB PB 刑 Ps Ps 2I) NSNS Ⅸ 蹦 聊 Ps zD NS NSz0 瑚 瑚 PS NS 瑚 瑚 PS Ps Ps 2I) NS NS 聊 删 lM Ps NS眦 嘲 聊 NBPB 2,) 聊 啪 眦 NB NB模糊规则表是根据经验建立的,可做适当的修改。在模糊工具箱中依次输入表中所列的控制规则,然后保存为 .fis的文件以备调用。

在Matlab编辑 窗 口 ,输 入R(可 任意 命名)readfis(.fis),然后编写如下的-段程序即可生成模糊控制表:u listzeros(13,13);foril:13forj1:13ec-7j:ifec<0ecec;else ecec-1:endei.7:u list(i,j)evalfis([e ec],R);endendu listceil(ulist)以上求取模糊控制表的这种方法比较方便、快捷。另外还有两种途径可以得到模糊控制表,在此做以简要的介绍:1)当误差、误差变化分别取模糊集A、B时,输出的控制量的变化U根据模糊推理合成规则可得U(A×B)oR, U Bj~,其中Af、口,、是定义在误差、误差变化和控制量论域x、Y、z上的模糊集 。根据误差,误差变化,对所有x、Y中元素的所有组合进行计算可得出相应控制量变化值,列成表即为模糊控制表,但是此种方法涉及到模糊数学和矩阵的计算,在控制规则增多或者要根据经验经常改变控制规则的情况下,计算量很大,给求取带来很大困难。

InZ图2 2输入1输出模糊控制器模型并调用已保存的控制规则,然后在Tools莱单下进行系统测试(SystemTest),把测试向量的论域改写成输入误差和误差变化的论域,然后运行,经过迭代之后,导出到Matlab编辑窗口,得到矩阵形式的模糊控制表;还可以建-个二维表模型,如图3所示。

表2 Kp的模糊控制表TabIe D)图3 二维表模型- 6 - 5 - 4 ~ 3 ~ 2 - l (J 1 2 3 4 S 6- 6 6 6 6 5 4 4 4 4 4 3 2 l- 5 6 6 6 5 4 4 4 4 4 3 2 l - l- 4 6 6 6 5 4 4 4 3 3 3 2 (J - i- 3 5 5 5 5 4 4 4 3 2 2 I - l - l~ 2 4 4 4 4 4 4 4 3 2 - I - 2 - 2- 1 4 4 4 4 4 2 2 2 I - l - 1 - 2 - 2O 4 4 4 4 3 2 2 0 --1 - 2 - 2 - 3 - 31 善 4 4 2 2 1 l - l ~ l - 2 - 2 - 3 - 32 3 3 3 2 0 - I ~ 1 - 2 - 2 - 2 - 2 - 3 ~ 33 3 2 2 l ~ l - l - l -2 -2 - 2 - 2 ~3 -4 3 2 0 - I - 2 --2 - 2 3 - 3 -3 --3 - 3 - 45 2 2 1 I -2 - 2 2 - 3 -3 - 3 - 4 -4 - 46 0 1 0 --1 - 3 - 3 3 - 3 - 3 - 3 - 4 - 5 - 51124] 第35卷 第3期 2013-03(上) l泣 匐 化在Lookup2D Parameters中,输入相应的参数之后,点击Edit按钮,也可以得到表格形式的模糊控制表。

2 模糊控制在PLC上的实现在Unity pro中建-个数组UTable,将离线计算得到的模糊控制表存储在其中,以便查询。存储方法如下:在Data Editor中的DDT中创建-个需要的数组类型,然后在Variables中创建此类型的数组U-Table,并赋予-个起始地址,数组 内部的数据的地址会根据数据的类型自动分配,然后再将离线得到的模糊控制表按行依次输入到表中,这些数据可直接赋值,不需要编写程序。编写查表程序时可有两种寻址方法,-种是可以按照数组的下标进行寻址;另-种是通过索引地址进行寻址:%MW[<>%MW 其中jiindex。但此种方法不适合在功能块中使用。

在编写程序时先根据给定值和实测值计算误差e,并保留当前误差,然后将下-个采样时刻的误差与保留的误差作比较,计算出误差变化ec,这样就得到了模糊控制器的输入,然后进行模糊化,分别乘以各 自的量化因子,这样就可以对应模糊论域进行查表,得到相应控制量,然后再解模糊,乘以比例因子,得到精确的控制量。查表时,由于在Unity Pro中数组的下标不能为负数,所 以需要将误差和误差变化的论域做必要的调整,从[-6,6转化为0,121,采用基址变址的寻址方式,基址选为0,然后用公式U-addrEc×13E即U- addrjX13f可完成控制量的寻址。SchneiderPremium PLC中的PID控制方式有两种,-种是软件上,可以调用PIDFF功能块,然后将查表得到的控制量输入到类型为Para-PIDFF的数据结构里的对应的参数上;另-种是硬件上,过程控制LOOP回路,其中已经封装PID算法,只需把设定值、实际值通过程序或直接输入地址到LOOP回路的接口,还有把相应的控制量通过编程赋给类型为T-PROC-3SING- LOOP的数据结构里的对应的KP-B1、TLB1、TDBlJz,至此,就完成了完整的模糊PID控制。

3 结束语本文借助Matlab工具以-种简洁的方式得到了模糊控制查询表,并在PLC上实现了模糊PID控制器,为在以后的工业控制过程中进行更好的控制提供了-种选择,另外本文在对PID控制器的性能进行改进的同时,也存在着不足,还需要积累更加丰富的现池制经验,以便对算法和程序进行优化。

正在加载...请等待或刷新页面...
发表评论
验证码 验证码加载失败