(1)温度控制的PID控制器参数的整定(2)模糊PID控制器参数论域的确定(3)模糊规则的建立(4)利用fuzzy模糊逻辑工具箱建立模糊控制器(5)模糊推理及反模糊化(6)模糊PID仿真控制器设计(7)matlab下的控制响应曲线性能分析要确定模糊PID参数的论域范围,首先要根据建好的模型整定普通PID控制器的参数,然后再由该参数,分别确定模糊PID控制器中Kp,Ki,Kd三个参数的论域。由于所做的温度控制系统的模型具有非线性,大惯性和纯延迟的特点,要建立精确的模型是比较困难的,所以本实验采用的是工程整定的方法。工程上整定的方法大概有以下三种:一是反应曲线法,二是临界比例度法,三是衰减曲线法本实验采用衰减曲线法来整定PID参数。具体方法如下:(1)将调节器积分作用和微分作用致于零,比例度至于一个比较大的值,将系统投入闭环运行。(2)待系统运行稳定后,对给定值作一适当幅值得阶跃扰动,并逐步减小比例度,直到首次超调和第二次的比值为4:1.记录下此时的比例度δ和两次超调的时间差t,这是Kp的值则为0.8δ,Ti的值为0.3t,Td的值为0.1t。对建立的温度箱加热模型,在matlab上仿真经整定后,得Kp等于4.25时,响应曲线符合以上衰减规律,最终取Kp=0.8*4.25=3.4,再由以上规则及根据需求调整后,Ki取0.0028,Kd取100。simulink的模块化设计图如下,由于控制量输出有范围限制,因此要在控制回路加上控制量约束。图1-1simulink模块化系统PID仿真模型仿真的时间选择1000秒,设定误差值为40。仿真结果后如下图:图1-2PID控制器作用下的仿真曲线图matlab自带了一个模糊控制的设计工具模糊控制工具箱是一个不针对具体硬件平台的模糊控制设计工具,是MATLAB中用于设计模糊控制器的工具箱。模糊工具箱提供了两种方式来建立模糊逻辑控制系统,一种是用户图形界面(GUI界面)方式,另一种是命令行方式。它们分别适用于不同的控制对象和系统,设计和实现方法简单直观,方便易行。本设计采用图形界面方式。模糊控制器采用的是模糊PID的控制算法,根据PLC编程的特点和结合模糊控制器设计的理论,本温度控制系统决定采用二维的控制器结构,即用误差及误差的变化率作为输入信号,而输出信号为Kp,Ki,Kd三个参数,控制器的结构图如下:图2-1单模糊PID控制原理图由于温度控制系统的设计目的是要使温度从30度上升到70度,各种指标和前面的PID一致,但要实现控制速度提升且实现零超调。所以温度的偏差e的论域设定为-40到40.偏差变化率ed的论域整定为-0.2到0.2。设计的目的是实现PID参数在线的自整定,在前面调试出的曲线中可以知道,当Kp取3.4,Ki取0.0028,Kd取100的时候,系统有比较令人满意的曲线,所以在这个基础上,可以设定Kp的论域范围为2.7到3.6,Ki的范围为0.0022到0.0028,Kd的范围取60到150。对于输入量e和ed不在此论域范围内的,可以相应地在实际范围上乘上量化因子k之后,再进行查询,以达到较好的精确度。假设实际设定温度为40度,而室温为25度,误差e的量化因子为k=(70-30)/(40-25)=2.67.隶属函数可以有很多种形状,本设计采用了在工程上比较常用的三角形状的隶属函数。模糊的分割采用了7段的分割,这样,一共可以产生49条规则。设定输入变量e和ec及输出量Kp、Ki、Kd的语言值的模糊子集均设为{NB,NM,NS,Z,PS,PM,PB},并将其分别对应以上论域范围设置到matlab的fuzzy函数设计中。根据温度控制具有纯滞后,大惯性的特点,整定的原则如下:当温差e较大时,为使温度控制系统具有较好的快速跟踪性能,即温差较大时,温度要以较快速率上升。应取较大的Kp和较小的Kd。同时为避免温度出现较大的超调,对积分作用加以限制,这样有利于消除稳态偏差,又可避免产生较大的温度超调。当温差e为中等大小时,为了使系统响应具有较小的超调,Kp应取得小些,Ki和Kd的大小要适中,以保证系统的响应速度。其中,Kd对系统响应的影响较大。当温差e较小时,为使系统具有较好的稳态性能,3个参数均应取得大些,同时为避免系统在设定值附近出现振荡,并考虑系统的抗干扰性能,当温差变化ed比较小时,Kd可取得大一些(通常取为中等大小);当温差变化ed比较大时,则Kd要小些。这样可避免温度反复振荡的现象。模糊规则(1)输入/输出语言变量的建立在MATLAB环境下键入fuzzy命令,进入模糊逻辑工具箱(如图)所示,建立一个Mamdani型的模糊控制器,通过具有交互式图形界面的模糊推理系统编辑器和隶属函数编辑器,用来设计输入、输出变量论域范围,各个语言变量的隶属函数形状等参数,原始的.FIS图形编辑函数窗口中只有一个输入模块,对于该双输入输出系统,可点击Edit/Addlnput或edit/addOulput选项,增加一个输入模块或输出模块。根据PLC编程的特点和结合模糊控制器设计的理论,本温度控制系统决定采用二维的控制器结构,即用误差e及误差ed的变化率来作为输入信号,而输出信号为Kp,Ki,Kd三个参数。所以界面的设计如右:(2)隶属函数的确定单击输入输出可以设定输入输出的名称,而双击则可以进入隶属函数的设定,双击误差E的方框,可以看到以下的隶属函数设计图:确定包括输入输出的论域范围,和模糊子集的命名.本设计对隶属度模糊变量e的隶属度形状曲线做了修改,使其在误差e附近的参数变化灵敏度较高,改善其稳定性能。(3)模糊规则和决策的设定根据这个整定的规则,单击edit下的rule,打开规则设定器如下在上面模糊规则建立后,matlab就能根据论域及相应的7段规则分割,通过模糊推理及反模糊化计算出相应的Kp、Ki、Kd的精确值,然后再由离散化公式u(k)=Kp(k)e(k)+Ki(k)X(k)+Kd(k)[e(k)-e(k-1)]得出加热器精确的功率输出U。模糊推理及反模糊化采用加权平均法,计算方法如下:上面规则可以写成以下形式,并在matlab中实现:ife=Aianded=Bjthenf=Cij(i=1,2,3,…,n,j=1,2,3,…,m)式中,A——温差e模糊子集;B——温差变化率ed模糊子集;C——输出量Kp或Ki或Kd假设当输入模糊变量分别取模糊集A、B,而输出量设为C,则输出量的隶属度函数为:由以上公式得到输出量的隶属度函数后,采用加权平均法,则可得到最终精确的输出量为:模糊pid仿真控制器单纯对温度进行PID控制和模糊PID控制后的响应曲线分别如图4-6和图4-13所示,仿真效果可以通过下表来比较:表4-4控制算法的比较可以看出:模糊PID控制器的阶跃曲线具有上升速度快。控制精度高,稳态性能好,超调量小的特点,在同样的控制要求下要比纯粹的PID控制效果好。而且采用这种设计方法计算量很小,工程上很容易实现,调试也方便。在控制过程中具有模糊控制的优点,又结合了PID的长处。对被控参数的适应性比较强,控制效果良好。所以在本实验装置上,主要采用了模糊PID的算法,具体方法则是把离线算好的参数表制成查询表放入CompactLogix里面,这种算法运行效率高,容易实现,不过仿真跟具体还是有差距的,需要根据实际情况微调。