模糊控制功能在InTouch平台DDE技术在组态软件中扩展先进控制功能的方法 第11页

模糊控制功能在InTouch平台DDE技术在组态软件中扩展先进控制功能的方法 第11页

第四章 InTouch模糊控制功能扩展的
具体实施

4.1 总体方案设计

4.1.1 设计思想

    如图4-1所示,输入的测试信号及其它一些要用于计算的参数由InTouch中给出并传入MATLAB中进行计算,再将结果传回InTouch中,二者之间的通信由DDE协议来完成。若图片无法显示请联系QQ3249114,先进控制在组态软件中的扩展与应用系统免费,转发请注明源于www.751com.cn

      4-1   MATLAB InTouch之间的通信

4.1.2 系统被控对象的确定

假设一典型二阶系统的传递函数为                   

                  4-1

以这个二阶系统作为被控对象,测试信号为阶跃信号,现利用MATLAB设计模糊控制器并对该控制系统进行仿真。在InTouch环境中设计相应的控制界面,并可以改变其中一些参数。

MATLABInTouch之间的通信连接起来以后,测试信号从InTouch中传入MATLAB,并且通过改变InTouch界面上的参数,MATLAB中的计算结果做出相应的改变并传回到组态界面中显示出来。

4.1.3系统总体结构图

系统总体结构图设计如图4-2,核心部分为模糊控制器,测试信号为阶跃信号。

                       4-2  系统总体结构图

其中设置了三个限幅,限幅器1、限幅器2的限幅范围是[-66],其作用是把控制系统的误差及误差导数由基本论域变换到模糊控制器输入变量的论域。假设被控对象允许的最大输入是±20,因而在被控对象的前面设置了限幅器3,其限幅范围是[-2020]

通过反复试验设定输入e的量化因子k1初始值为30ec的量化因子k2初始值为0.3,输出u的比例因子k3的初始值为60.通过模拟示波器来观察仿真后的结果。

 

4.2 基于MATLAB的模糊控制器的设计

4.2.1 隶属度函数及模糊控制规则的确定

设控制系统的输入为阶跃信号r,输出为y,误差为e1,误差导数为ec1,被控对象的输出为u1。模糊控制器与e1ec1对应的输入分别为eec,与u1对应的输出为ueecu的论域取[-6+6],语言值取5个,分别为“负大NB”,“负小NS”,“零ZR”,“正小PS”和“正大PB”。NBNSPSPB取梯形隶属度函数,ZR取三角形隶属度函数。eecu的隶属函数均相同,设置如下:eecu [-6 6]NB [-8 -6 -5 -3] trapmfNS [-5 -3 -2 0] trapmfZR [-2 0 2] trimfPS [0 2 3 5]     trapmfPB [3 5 6 8] trapmfeecu的隶属度函数如图4-3所示。

                   4-3   e/ec/u的隶属函数曲线

根据经验,可以得到用“if…then…”形式表达的25条模糊控制规则:

1if(e is NB)and(ec is NB)then(u is NB)

2if(e is NB)and(ec is NS)then(u is NS)

3if(e is NB)and(ec is ZR)then(u is NS)

                  .

                  .

                  .

23if(e is PB)and(ec is ZR)then(u is PS)

24if(e is PB)and(ec is PS)then(u is PB)

25. if(e is PB)and(ec is PB)then(u is PB)

以上模糊控制规则共计25条,这些控制规则可以总结归纳成表4-1:

    4-1  模糊控制规则表

        ec

e       

NB

NS

ZR

PS

PB

NB

NB

NS

NS

ZR

PS

NS

NB

NS

ZR

ZR

PS

ZR

NS

NS

ZR

PS

PS

PS

NS

ZR

ZR

PS

PB

PB

NS

ZR

PS

PS

PB

   建立好的模糊控制规则曲面如图4-4所示。

    

                        4-4  模糊控制规则曲面

4.2.2 运用M文件编写模糊控制器并进行仿真

打开MATLABM文件编辑器,部分源程序如下:

clear all;

close all;

a=newfis('w1');                          % 定义模糊控制器

        .                                    % 定义输入输出变量e,ec u

        .                                                       

        .                                    % 模糊控制规则定义                              

a=addrule(a,rulelist);                   % 将模糊控制规则加到a

a1=setfis(a,'DefuzzMethod','centroid');  % 解模糊的方法设置为centroid

writefis(a1,'w1');                       % aw1命名写到磁盘中

a2=readfis('w1');                 % 从磁盘中读出并保存在工作空间中

ts=0.01;                          % 设置采样时间  

sys=tf(9,[10,11,1]);              % 被控对象的传递函数

dsys=c2d(sys,ts,'z');             % 将被控对象的传递函数离散化为差分方程

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]  ... 下一页  >> 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有