已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
引 言PID控制器以其结构简单、稳定性好、工作可靠、调整方便等优点被广泛应用于工业控制系统,但现代工业控制系统越来越复杂,被控对象往往表现出时滞、非线性、时变性,控制要求越来越高,传统的PID控制器难以满足现代工业控制的需求,智能型PID控制器呈现出广阔的发展空间。模糊PID控制器是模糊控制器和PID控制器的有效结合,它兼具模糊控制和PID控制的优点;动词PID控制器是在模糊PID控制器的基础上实现了控制规则“动词化”, 对模糊PID控制进行了一些改进。目前动词PID控制器用于实际的工业控制系统还不多,本文的研究也仅处于软件仿真阶段。 1. PID控制器1.1 PID控制器的概念11.1.1PID控制原理PID控制器是一种线性闭环控制器,它根据给定输入值rin(t)与实际输出值yout(t)构成控制偏差 (1.1)PID的控制信号u(t)由errot(t)及其对时间的积分、微分三部分联合作用产生: (1.2)PID控制器最终理想的控制效果是errot(t)=0,即yout(t) = rin(t)。将控制器写成传递函数的形式: (1.3)式中,kp比例系数,TI 积分时间常数,TD 微分时间常数;统一用比例系数表 示,ki为积分比例系数,kd为微分比例系数:1.1.2PID三个环节的作用比例、微分、积分各个环节的作用: (1)kp:减小系统的误差,加快系统的响应速度。(2)ki:消除系统的静态误差,决定积分作用的强弱。(3)kd:抵制偏差信号的变化趋势,对偏差进行提前预报,减少调节时间。1.2PID控制器的种类PID控制器有传统PID控制器、模糊PID控制器、专家PID控制器、以及动词PID控制器等几类。1.2.1传统PID控制器PID控 制 器 的 参 数 整 定 是 控 制 系 统 设 计 的 核 心。图1.1中 的PID控 制 器 表 示 的 就 是 传 统PID控制器,其kp 、ki 、kd 三个参数在控制过程中不会自动发生变化,操作人员只能根据控制对象的特性在系统开始工作时选择最优的三个参数。但仅靠一组参数还不能满足系统的要 求,在控制过程中一般还要手动对参数进行修改,由此造成了极大的不方便。工业中实际应用 的PID控制器不会只用传统的PID控制策略。1.2.2智能PID控制器模糊PID控制器、专家PID控制器、以及动词PID控制器都是智能PID控制器,它们在传 统PID控制器的基础上实现了很多改进。模糊PID控制器和动词PID控制器都是PID参数自整 定型控制器;而专家PID根据专家经验库,可能调整PID参数,或者直接影响输出电压u。本文 主要对模糊PID控制器和动词PID控制器进行研究比较,详细介绍见后面的章节。2.模糊PID控制器模糊PID控制器全称应该叫做“模糊参数自适应(自整定)PID控制器”。图2.1表示其系统 组成。顾名思义,模糊PID控制器的三个参数是能够在线调整、实时改变的。这是模糊PID控制器在传统PID控制器的基础上实现的重大改进。2.1模糊控制规则12.1.1控制原理自适应控制应用现代控制理论,以对象特性为基础,在线辨识对象特征参数,实时改变 控制策略。在控制过程中各种信号量不易定量表示,因此需要模糊理论来解决问题。自适应 模糊PID控制器以误差e和误差变化ec作为输入,找到输出的三个PID参数与e和ec之间的模 糊关系。在运行中不断检测e和ec,利用模糊控制规则在线对PID参数进行修改,以满足不 同e和ec对控制参数的不同要求,而使被控对象有良好的动、静态性能。2.1.2模糊规则误差e、误差变化率ec,以 及K 的 模 糊 子 集 均 为NB,NM,NS,ZO,PS,PM,PB,分别 代 表负大、负中、负小、零、正小、正中、正大。模糊控制规则具有如下形式:If (e is NB) and (ec is NB) then (kp is PB)and (ki is NB) and (kd is PS)。由于e和ec都有7个子集元素,总共有49种自由组合,因此模糊控制总共有49条这样形式的规则。kp 、ki 、kd三个参数整定的模糊控制规则表如表2.1。kp的模糊控制规则表KpecNBNMNSZOPSPMPBeNBZOZONMNMNMNBNBNMPSZONSNMNMNMNBNSPSPSZONSNSNMNMZOPMPMPSZONSNMNMPSPMPMPMPSZONSNSPMPBPBPMPSPSZONSPBPBPBPMPMPSZOZOki的模糊控制规则表KiecNBNMNSZOPSPMPBeNBNBNBNMNMNSZOZONMNBNBNMNSNSZOZONSNBNMNSNSZOPSPSZONMNMNSZOPSPMPMPSNMNSZOPSPSPMPBPMZOZOPSPSPMPBPBPBZOZOPSPMPMPBPBkd的模糊控制规则表KdecNBNMNSZOPSPMPBeNBPBPMPMPMPSPSPBNMPBNSPSPSPSPSPBNSZOZOZOZOZOZOZOZOZONSNSNSNSNSZOPSZONSNMNMNSNSZOPMPSNSNBNMNMNSZOPBPSNSNBNBNBNMPS表2.1:模糊控制规则表2.2模糊控制规则的实现2.2.1隶属度1在模糊控制规则表中,各个元素子集都是用字母表示的,而在控制过程中,模糊判决器的输入和输出都是一些数值,因此需要在数值和各个语言变量之间建立联系。各个语言变量都表示一定的范围,这种范围的覆盖面可以用隶属度来表示。隶属度函数有多种形状,有正态分布的,有等腰梯形的,最常用的是三角形,如图2.2所示。每个语言变量表示的范围可能有所 交叉,但除了几个特殊点,一个具体数值隶属于各个字母符号的程度是不一样的。图2.2:隶属度 模糊合成推理根据隶属度和模糊控制规则来修正PID参数:2.2.2模糊推理2模糊判决器读取e和ec的具体数值,进行模糊推理,然后输出三个K的具体数值,有很多 算法。这里介绍一种强度转移法。所谓强度转移法,就是当控制系统有精确值输入时,精确值 在条件语句的前件中所得到的语言变量转移到后件的语言变量值去,从而得到推理结果的过 程。以kp的推理为例。步骤为:(1)前件强度的求取为了简化而清晰地说明推理过程,我们假设误差e(k)及其变化率ec(k)分 别最多对应2个语言变量值,设e(k)的 两个语言变量值为A1 、A2,且对模糊 变量A1 、A2的隶属度为uA1 (e)、uA2 (e),ec(k)的两个语言变量值为B1 、B2,且对这两个模糊变量的隶属度为uB1 (ec)、uB2 (ec),控制规则如下:if e(k) is A1 and ec(k) is B1 then kp is C1 if e(k) is A1 and ec(k) is B2 then kp is C2 if e(k) is A2 and ec(k) is B1 then kp is C3if e(k) is A2 and ec(k) is B2 then kp is C4从以上4条规则中,可产生出模糊推理的前件强度为:u1 = uA1 (e) uB1 (ec) u2 = uA1 (e) uB2 (ec) u3 = uA2 (e) uB1 (ec) u4 = uA2 (e) uB2 (ec)(2) 后件强度的求取由于在强度转移法中,是把精确值对前件的作用强度转移到后件中去,并作为后件模糊量kpi 的隶属度,因此,依前件强度可得后件强度为:uC1 (kp1 ) = u1uC2 (kp2 ) = u2uC3 (kp3 ) = u3uC4 (kp4 ) = u4(3) 精确值kp的求取: 根据kp的语言变量值和隶属度的解析表达式求出kp1 、kp2 、kp3 、kp4 。它们分别为C1 、C2 、C3和C4在隶属度为u1 、u2 、u3和u4时的推理结果元素,则利用重心法可求得: (2.1)当误差e(k)和误差变化率ec(k)具有多个语言变量值时,其推导过程与上述过程相似。 模糊推理中,在求解前件强度和后件强度时,对e,ec以及PID三个参数的描述,都是用名词来表示。这些名词不能互相包含,因此模糊控制的49条规则各不相同,缺一不可。3动词PID控制器3.1 动词控制规则3.1.1 模糊规则的动词化 动词PID控制器的系统组成大部分与模糊PID控制器相似,在控制规则方面,动词PID控 制器相比模糊PID控制器做了改进。对e,ec以及PID三个参数的描述,由名词变成动词。动词反映的是参数的变化趋势,这样一来,不同的名词组合,可以用相同的动词来表示。计算动词规则是对模糊规则进行提取,浓缩。把相同的变化趋势合并,可以减少规则数目。通过简化,用7条计算动词规则就可以涵盖49条模糊控制规则,应用于控制系统的各个阶段。3.1.2 动词规则4 动词种类繁多,为了规范化,方便地描述计算动词规则,可以只用一个动词(become)加名词和副词参数来替换所有动词。采用becomeadverb(noun1,noun2)的形式。比如“jump”可以表示成become fast(current,bigger than current),stay high可以表示成become(high,high)等 等。参数不一样,become所表示的动词效果就不一样。7条计算动词规则如下:其中Z、S、M、B分别代表zero、small、medium、big。(1)If(|e| become(Z,Z)then(kp become(S,B),ki become(B,S),kd become(S,B)(2)If(|e| become(B,M)then(kp become fast(B,S),ki become fast(B,S),kd become fast(S,B)(3)If(|e| become(M,S)then(kp become(B,S),ki become(B,S),kd become(S,B)(4)If(|e| become(S,Z)then(kp become slow(B,S),ki become slow(B,S),kd become slow(S,B)(5)If(|e| become(Z,S)then(kp become slow(S,B),ki become slow(S,B),kd become slow(B,S)(6)If(|e| become(S,M)then(kp become(S,B),ki become(S,B),kd become(B,S)(7)If(|e| become(M,B)then(kp become fast(S,B),ki become fast(S,B),kd become fast(B,S)3.2动词相似度 在控制过程中,e的变化大部分时间并不是完全等同于上述的某一个规则中的前件条件; 但反过来说,任一时刻,肯定能在上述七条规则的前件条件中中,找到一个和e的变化趋势最相似的become。用“动词相似度(similarities)”来恒量各个动词之间的关系。动词相似度是一个数值,取值范围0,1,相似度越接近1表示这两个动词相似的程度越大,相似度越接近0则表示越不相像。 在动词控制规则里,可以把前件条件里的7个动词定义为7个标准动词,控制过程中观察到的 动词都和这些标准动词做比较。动词推理的输出也定义成几个标准输出动词。3.2.1基于进化函数的动词相似度的计算4上一节提到,所有动词都可以用Become来进行规范化。在计算动词相似度之前,首先定 义Become的进化函数: (3.1)其离散时间形式为(假设Tw = wTs): (3.2)become(state 1, state 2)的时间跨度取Tw ,x(t)是观察到的波形,一个被观察的动词的进化函数: (3.3)t是 当 前 时 间,观 察 动 词 是 从 过 去 某 个 时 间 开 始 的。计 算 动 词 进 化 函 数 的 构 造 需 要 依 赖 以 下 两 个 因 素:名 词 中 心 和 物 理 语 义 学 的 动 词 中 心。现 在 来 求“observed”这 个 动 词 和become(state 1, state 2) 的 相 似 度,首 先 把become(state 1, state 2) 的 开 始 时 间 定 在(t Tw )时刻。求动词的相似度首先将Tw 分成state 1和state 2两个区间,再按以下几个步骤 进行运算。 1)在前半个区间求出a1和b1 (3.4)2) 在后半个区间求出a2和b2: (3.5)3)平衡因子 e (3.6)4)在整个Tw 范围内求相似度: (3.7)对观察到的动词取不同的隶属度,分两个区间分别与标准进化函数进行 “”和 “ ” 运算,不同的计算动词规则的相似度的求取中,用来与标准进化函数进行“” 和 “” 运算的被观察 动词的进化函数是不一样的,运算的结果进行积分,积分相当于求面积。将两个窗口“”的 面积相加,“”的面积也相加,相似度是 “” 的总面积与 “” 的总面积之比。这个比值越大,说明观察动词与标准动词的相似度越大。比如,取state1=big,state2=medium,把观察动词的big 、medium与标准进化函数进行 “”、 “”、积分、加法、除法运算之后,比值与其他规则的计算结果相比最大,则说明被观察动词与become(big,medium)最相似。3.2.2简化的动词相似度5一个动词可以表示成Become(offset,offset+),即上一时刻位于offset位置,现在变化了 。一个观察到的动词与Become(offset,offset+ )求相似度,可分为两部分,一部分是变化趋势的相似度,另一部分是起始位置的相似度。 3.2.2.1 变化趋势的相似度 一个观察到的动词与“增大”这个动词的相似度可以表示成: (3.8)式中,x是一个运动对象相邻两个时间点上的位移差,即变化量;0是设定的一个标准 变化量;K在计算中是一个常量,在不同的场合可以取不同的值。0取0.5,K取6时,画出不同 的观察动词与增大0.5的相似度。如图3.2。这 种 动 词 相 似 度 的 求 法 适 合 于 计 算 动 词 的(2)(7)号 控 制 规 则,不 同 的 规 则 对 应 不 同 的0和,求“增大”的相似度时,K x 的前面需要一个负号,求“减小”的相似度时,不 用负号。但这个算法不适合于求与“e Become(Zero,Zero)”的相似度,因为当 e stay Zero时,其0为0,而在式3.8中,0是一个分母,所以与这条规则相对应的动词相似度的求解采用另外一种算法。 (3.9)图 3.2: 动词与增大0.5的相似度K取5时,观察到的不同动词与stay Zero的相似度如图3.3。图 3.3: 动词与stay Zero的相似度3.2.2.2 起始位置的相似度 观察到的动词的起始位置为offsetobserved,定义标准动词的起始位置为offset0,计算起始 位置的相似度我采用如下算法:(3.10)p取正偶数。当K=10,p=2,offset0=0.8(假设起始位置为big)时,画出不同的起始位置与起始 位置为big的相似度。如图3.4。图 3.4: 起始位置与big的相似度 起始位置的相似度与模糊隶属度函数有相似之处。3.3动词控制规则的实现4计算动词规则的推理建立在动词相似度的基础上,在控制过程中,观察控制误差e的变化 趋势,求出e和7个标准动词的相似度。控制器的输入和输出都是动词形式。控制规则是这样的:If(e become0i) Then(k Vi),输出的动词Vy 是7个标准输出动词Vi(i=17)以相似度为权的 加权平均量。 (3.11)公式的形式与模糊推理强度转移法中重心法(式2.1)的形式有相似之处。这种加权平均的 算法符合控制需求,e的变化和哪个规则中的前件条件最相似,控制输出就和那个规则的K的 变化最相近。 在求出k之后,PID三个参数的修正方式为:Knext = Kcurrent + k。4用Simulink进行PID控制仿真4.1炉温控制简介4.1.1背景随着工业的快速发展,钢铁的需求量越来越大。而对于生产钢铁的最重要的一环高炉的要求也越来越高。在钢铁的冶炼的过程中,越来越多地使用交流电弧炉设备,温度控制系统的性能直接影响到钢铁的质量,所以炉温控制占据重要的位置。PID控制是温度控制系统中一种典型的控制方式,是在温度控制中应用最广泛、最基本的一种控制方式。随着科学技术的发展,各行各业对温度控制精度的要求越来越高,经典PID在某些场合已经不能满足要求。因此,智能PID控制的引入时精密温度控制系统的发展趋势。为了改善电弧炉系统恒温控制质量的现状,研制具有快速响应的、经济性好的、适合国情的恒温控制装置具有十分重要的意义。4.1.2系统函数高炉温度控制系统具有非线性、时变性、滞后性等特性。根据实际测量,被控对象近似一阶惯性加滞后模型: (4.1)4.2Simulink简介3Simulink是个交互式动态系统建模、仿真和分析图形环境,是一个进行基于模型的嵌入 式系统开发的基础开发环境。Simulink可以针对控制系统等进行系统建模、仿真、分析等工 作。Simulink提供了一个建立控制系统方框图,并对系统进行模拟仿真的环境。在Mablab6.5的命令主窗口中单击FileNewModel,即可打开如图4.1所示的Simulink模型编辑窗口。在Simulink模型编辑窗口中单击ViewLibrary browser,即可打开如图4.2所示 的Simulink库浏览窗口。根据控制系统的结构,用户可以从模型库中选择所需要的各种模块,按要求连接、修改各 模块的参数,建立系统模型。图4.1:simulink模型编辑窗口图4.2:simulink库浏览器4.3传统PID控制Simulink仿真4.3.1建立系统模型 在模型库中,从Simulink库Continuous子库中选择Derivative、 Integrator、Transfer Fcn、Transport Delay模块,从Math Operations子库中选择Gain、Sum模块,Sinks子库中选择Scope,Sources子库 中 选 择Step,放 到 模 型 编 辑 窗 口。各 个 模 块 的 属 性 都 可 通 过 双 击 该 模 块 进 行 更 改。按图4.1更改各模块属性,连线,就建立了一个传统PID控制系统模型。其中Step阶跃信号幅值为1,Transport Delay为208秒。在模型编辑器中选择“start simulink”,就可以开始进行仿真。仿真波形可以双击scope进行观察。4.3.2调试过程及结果 参数整定过程: (1)令ki和kd为0,调整kp。若kp太小,则控制结果无法向原定的控制目标靠近,kp增大,响 应曲线开始出现振荡。如果振荡的振幅呈增大趋势,系统将无法达到稳定。所以应该调整kp, 使响应看起来是一条振幅越来越小的曲线。 (2)观察振荡趋向的平衡位置,ki为0时,一般会存在静态误差。ki从0开始增大,调整ki,使响应曲线保持在控制目标上下振荡。由于ki也加强了控制作用,所以kp应该基于第(1)步调出的值再往小调。一般通过合适的ki把振荡的平衡位置修正之后,不必再调ki了。(3)调 整kd。kd能 抑 制 响 应 曲 线 上 下 振 荡 的 振 幅,但kd过 大,反 而 降 低 响 应 速 度。最 后对kp和ki进行联合微调。对式4.1所示的加热电源的温度的传统PID控制进行参数调整,我调整得效果最好的一组参数已标在图4.1中,即kp=18,ki=0.015,kd=1000。温度变化波形如图4.3。大约3000秒控制达到稳定,超调量30%。 Simulink的Scope中的响应曲线原本是黑色背景,黄色曲线。为了便于浏览,本人做了一 些反色的处理,后面的图4.5也进行了同样的处理,不再重复说明。图4.3:传统PID仿真4.4模糊PID控制Simulink仿真4.4.1在Matlab中建立模糊判决器 4.4.1.1用FIS Editor建立模糊判决器3在Matlab主窗口中输入fuzzy,弹出FIS Editor,这是一个新建的空白的FIS,如图2.3所示。解模糊算法默认是Mamdani法,如果要改变算法,Matlab提供的另一种算法为Sugeno。在新建FIS时,点击FileNew FISSugeno即可。 图2.3:FIS Editor点击EditAdd variableinput(或output),添加判决器的输入和输出,我们使用的模糊PID判决器是2个输入3个输出。把这5个变量(variable)的名字(Name)改成e、ec、kp、ki和kd。双击任一个variable ,弹出Membership Function Editor,可以设定这个variable 的取值范围(range)。如图2.4所示。新建的variable默认只有3个子集,在Membership Function Editor中点击EditAdd MFs ,添加子集,加到7个。按照模糊隶属度设定每个子集的名字(Name)、形状(Type)和覆盖范围(Params)。添加规则:在FIS Editor中点击EditRules,弹出Rule Editor。如图2.5所示。新建的模糊判决器有0条规则,按照模糊控制规则表,使用Rule Editor底部的“添加规则(Add rule)”和“修改规则(Change rule)”按钮设定模糊控制的49条规则。先添加条数,再按规则修改。最后将该FIS保存,在FIS Editor中点击FileExportTo Disk,保存为fuzzpid.s 。图2.4:Membership Function Editor图2.5:Rule Editor4.4.1.2用Matlab程序生成模糊判决器1用Matlab程序语言也能生成和上一节一模一样的fuzzpid.fis。 a=newfis(fuzzpid); 建立一个新的FIS,取名fuzzpid。 escale=1;a=addvar(a,input,e,-3*escale,3*escale);添加variable a=addmf(a,input,1,NB,zmf,-3*escale,-1*escale);本行往下共7行分别添加MFsa=addmf(a,input,1,NM,trimf,-3*escale,-2*escale,0); a=addmf(a,input,1,NS,trimf,-3*escale,-1*escale,1*escale); a=addmf(a,input,1,Z,trimf,-2*escale,0,2*escale); a=addmf(a,input,1,PS,trimf,-1*escale,1*escale,3*escale); a=addmf(a,input,1,PM,trimf,0,2*escale,3*escale); a=addmf(a,input,1,PB,smf,1*escale,3*escale);这几行代码添加了e这个variable,作为input,range为-3,3,e有7个子集,Name、Type和 Params各不相同。ec、kp、ki、kd的添加方式完全类似,只需更改scale和input(output), “addmf(a,input,1 ”中 的“1”依 次 改 为2、3、4、5。个 人 感 觉 这 样 子 生 成FIS比 用FIS Edit还 快。FIS Edit虽 然 有 友 好 的 用 户 界 面,但 每 个variable、每 个mfs、49条 规 则 都 要 一 一 输 入;而 上 述 程 序 具 有 通 用 性,比 如e的range变 为-30,30,只 需 要 将escale赋 值 为10即 可。ec、kp、ki、kd的scale的更改完全类似。rulelist=1 1 7 1 5 1 1;1 2 7 1 3 1 1; 。 。 7 6 1 7 5 1 1; 7 7 1 7 7 1 1; (总共49行)a=addrule(a,rulelist); 这几十行代码实现49条模糊控制规则的添加。每一行代表一条规则,由前5个 数字来完成对规则的描述。数值17按顺序代表从NB到PB7个子集,5个数字的位置对应e、ec、kp、ki、kd。比如,第一行前5个数字为:1-1-7-1-5,代表NB-NB-PB-NB-PS,其对应的模糊规则为:If (e is NB) and (ec is NB) then (kp is PB)and (ki is NB) and (kd is PS)。 这个rulelist可以完全按照模糊控制规则,用数字代表7个字母符号列出来的。这个rulelist也是通用的。a=setfis(a,DefuzzMethod,mom);解模糊的算法设定为Mandani,也可以改为Sugeno。writefis(a,fuzzpid);a=readfis(fuzzpid);这样子就生成了一个和上一小节完全一模一样的fuzzpid.fis。4.4.1.3模糊判决器的使用 这个模糊判决模块,可以作为一个模块嵌入到Simulink模型编辑窗口当中,在本章中可以看到其用法。这个模块还能被Matlab编程语言调用,在第5章用Matlab程序进行模糊PID控制仿真的时候会用到。4.4.2建立系统模型模糊PID控制系统最核心的部分是模糊判决器,这个判决器可以作为一个模块放入到simulink模型编辑器中,在Matlable主窗口中输入fuzzy,弹出FIS Editor,点击FileExportTo Workspace,把这个判决器添加到工作空间。然后在simulink模型编辑器中,按图4.4从库中选择模块,更改参数,连线,这样建立起模糊PID控制系统模型。从图中可以清楚地看出模糊控制对P、I、D三个参数的调整作用。比如PID控制中的微分 环节的输出ud = (Kd0 + kd) ec,而在这个系统模型中,ud = Kd0 ec + kd ec,与PID控制理论是一致的。图4.4:模糊PID控制系统模型图4.5:模糊PID仿真结果4.4.2调试 模糊PID控制需要调整的参数包括PID三个初始值,以及模糊判决器2个输入3个输出的论 域。传统PID调出的三个参数对模糊PID的三个初始参数有一定的参考价值。仿真的控制目标是1,故设置e和ec的论域均为-1.5,1.5;模糊判决器的输出是K ,是对 三个初始参数进行调整,所以K 的论域大小应该与对应的K数量级相当或较小。如果K 论域数量级明显超过对应的K的初始值,那初始值的设定就没什么意义了。 设置kp论域为-0.15,0.15,ki论域为-0.003,0.003,kd论域为-500,500。 每次改变论域,模糊判决器就发生改变。在Matlab6.5中进行仿真时,每次都必须在FISEditor 中重新打开这个模糊判决器,重新将其导入工作空间,Simulink才能使用最新修改的模糊判决器来进行仿真。这个系统的模糊PID控制的仿真结果,没有实现对传统PID控制的改进。本人尝试着对三个PID初始参数以及5个论域进行调整,但能得到的最佳组合就是上述的数值。按上述数值得到的仿真曲线与传统PID控制相比,超调减少,但控制系统达到的稳定时间要长些,如图4.5所示。4.5关于动词PID控制Simulink仿真的一点说明 模糊控制理论已经问世数十年,在Matlab中已经集成了模糊判决器的模型,可以对模糊判 决器进行修改,嵌入到Simulink模型编辑器中,进行模糊控制的仿真。动词PID控制器目前还未大面积推广,Matlab中没有相应的集成模块,因此没有进行动词PID控制的Simulink仿真。 动词PID控制并不是无法用Simulink进行仿真,只是难度比较高,工作量比较大,本人没有进行研究,这里只简要介绍解决方法。Simulink模型编辑器里面除了可以放置Matlab已经定义的模块,还可以放置用户自定义的模块。在 库 浏 览 器Simulink库User-Defined Function子 库 中,选 S-Function,拖 放 到 模 型 编辑 器 中。这是一个空白的模块,用户需要用Matlab程序语言编写 一个文件,程序里面描述用户需要定义的模块的功能。比如,在程序中编写计算动词PID动词推理过程,然后保存为VerbPID.m。在Simulink模型编辑器中,双击S-Function模块,填写S-Function Name为VerbPID.m。S-Function Parameters的填写与m文件中的变量定义有关。写好动词推理S-Function程序,在模型编辑器中设置好S-Function模块的属性,就实现了动词推理算法嵌入到Simulink仿真中。4.6本章小结 本章简要介绍电弧炉炉温控制系统以及Simulink仿真软件。用Simulink对该炉温进行传统PID和模糊PID 控制的仿真,由于动词PID推理模块嵌入到Simulink中工作量比较大,本章没有对其进行仿真,只是提出了一些解决思路。传统PID和模糊PID的仿真结果比较相似,模糊PID没有对传统PID控制效果进行明显的改良。 5用Matlab编写程序进行各种PID控制仿真本章用Matlab编写程序,对控制对象进行传统PID、模糊PID、动词PID控制仿真。被控对象仍然是第4章所用过的炉温控制系统。系统函数: (5.1)5.1 仿真程序流程图三个Matlab仿真程序的结构组成都列于图5.1。程序开始设定控制目标r,对被控对象的输入信号u、以及kp、ki 、kd三个参数进行初始化,然后进入循环。由u作用于被控对象,对象的输出为yout,控制误差e=r-yout,误差变化率ec用e的差分表示,误差的积累用 表示。如果是传统PID控制器,因为PID三个参数不变,所以直接用加法求出新的控制信号u,进行下一轮循环。图5.1流程图智能PID控制器在求出e和ec之后,通过e和ec计算出kp 、ki和kd,修正3个参数,然后再进行加法求出u,进入下一个循环。模糊PID控制和动词PID控制仿真程序的不同在于修正3个PID参数的过程。模糊PID控制 器通过查找模糊规则表,然后K=K0+K ;而动词规则分别求出e的动态与七个标准动词的相似度,k是七个输出动词在相似度上的加权平均,然后修正参数:Knext = Kcurrent + k.做完预设的循环次数后,每一仿真时刻的yout 、kp 、ki 、kd都有记录下来,此时画出这四个 变量随时间变化的曲线,以供研究比较。5.2 关键环节的算法图5.1已经描述了仿真程序的大纲,其中一些加法、减法、乘法、累加的环节,非常容易理解。只有两个环节的算法比较复杂。一个是由e和ec怎样计算出kp 、ki和kd。针对模糊和动词控制规则,有相应的计算方法,在前面已经介绍。另外一个比较复杂的环节是:如何由控制电压u得到输出yout。本文仿真通过用ode45求解微分方程的方法来完成。由于选取的控制对象具有时滞,在写微分方程时要对系统函数里时滞的部分进行近似,所以用到一个 “ PADE”指令,下面分别介绍。5.2.1ode45求解微分方程7 仿真程序中ode45的用法如下: TSPAN = Ts*k:simuStep:Ts*(k+1); t,x=ode45(dynsys,TSPAN,x0); Ts是采样时间,simuStep=Ts/4;k是循环控制量,TSPAN把两次采样的时间间隔分成5个点。dynsys是一个文件名,dynsys.m文件里保存着描述被控对象特征的微分方程,这些微分方程以状态空间的形式给出,其中包含了输入u的影响。x = Ax + Bu (5.2)x是状态向量(列向量)。TSPAN是ode45解微分方程组的几个时间点,x0是第一个时间点上系统的状态向量。这样进行ode45运算的结果,产生了5个t和5个x。t是一维的,也就是5个时间点。x的维数与系统的阶数相当。系统的输出yout是x的几个分量以及输入u的线性组合。y = C x + Du (5.3) A,B,C,D是一些矩阵。在已知系统的传递函数的情况下,在Matlab主窗口中输入A,B,C,D=tf2ss(num,den)即可得到这4个矩阵。num和den是系统函数的分子和分母。5.2.2对延时的近似处理 对无时滞的系统进行仿真时,直接用tf2ss写出微分方程,再写进dynsys.m文件,在主程序里循环调用ode45函数即可进行仿真。本文选用的被控对象具有208秒的延迟。 无法直接根据系统函数写出微分方程。我采用的解决方法是,先把e s用Matlab指令“NUM,DEN=PADE(,N)“近似成一个N阶的不带指数 的系统函数(N越大近似越精确)。再和原来系统函数中非时滞的部分相乘,得到总的系统函数,然后用TF2SS写出微分方程。针对上面的系统,在Matlab中输入“NUM,DEN=PADE(208,1)”得到NUM=-1 0.0096,DEN=1 0.0096,即用代替,则:(5.4)5.3 传统PID控制仿真5.3.1 调整过程及结果仿真程序的编写遵循图5.1的上、中部分。设置PID三个参数,并进行调节。PID参数的选取,在第4.3.2小节已经提过。先令ki=0,kd=0,找到一个kp;然后ki从0开始增大,kp适当减小,ki增大到能消除静态误差就行了,不必一直调大。最后调kd,再对kp、kd进行联合调整。调节三个参数,观察在传统PID控制下误差e的变化情况。误差e的变化如图5.2所示。当Kp=80、Ki=0.01、Kd=800时,误差变化如图所示。本文后面要拿智能PID控制的效果来和传统PID控制做比较,为了统一标准,智能PID控 制结果都和传统PID来做对比。在响应时间差不多的情况下,看智能PID对超调和振荡的控制效果如何。在这里传统PID控制超调量为15%。图5.2: 传统PID控制误差e变化图5.3:传统PID仿真结果5.3.2 关于两种不同仿真方法的说明用编程语言仿真时得到的一组参数和用Simulink仿真时得到的一组参数有些差距。这个控制对象本身带有208秒的时滞,控制达到稳定需要几千秒的时间。程序是用循环来做的,我选取Ts=20秒,k=0400,仿真4000秒只需要200次循环。为了减少每次仿真程序运行的时间,只能这样。而Simulink里面计算精度比较高,取样时间不同导致仿真方法调试出来的参数不同,但在数量级上是一致的。误差刚开始是1,这是我写程序时没有采用延时的近似处理,这样更与实际情况贴合,图5.2、图5.3可以反映出实际情况5.4 模糊PID控制仿真5.4.1 模糊推理源代码分析模糊PID控制,首先设置一组初始PID参数。在仿真过程中,时时检测控制误差e(k)及其变 化率ec(k),保存到两个变量中。在每次循环里:e_1=e(k+1);ec_1=e(k+1)-e(k);然后调用第2.3节建立的那个模糊判决器: k_pid=evalfis(e_1,ec_1,a); k_pid就是模糊判决器的输出,是一个三维的列向量,这三个数就是kp 、ki和kd。然后对PID三个初始的参数进行修正。Kp=Kp0+k_pid(1); Ki=Ki0+k_pid(2); Kd=Kd0+k_pid(3);这样就完成了参数的自整定,因为程序是循环在执行的,所以参数的整定也是循环在做的。5.4.2 参数调整及仿真结果图5.4:模糊PID仿真结果图5.5:模糊PID的误差变化图5.6:kp、ki、kd自适应曲线从图5.4与图5.3比较中可以看出,在响应时间差不多的情况下,模糊PID比传统PID超调有所减小,超调量大概5%。kp 、ki 、kd的自整定曲线如图5.5。由以上图形,可以知道:(1)模糊PID控制所得到的结果和传统的很接近。 (2)模糊PID在调整3个参量的时候有一个调整的空间,因此利用模糊PID进行控制时,得到参数会比用传统PID方法来的更快。 (3) 曲线开始略微上翘,是由于程序对延迟模块采用了一阶近似产生的误差。5.5 动词PID控制仿真动词PID控制中,动词规则的实现是建立在动词相似度的基础上,因此动词PID控制的仿真程序中,观察误差e的变化趋势,求e的变化与7条规则前件条件的相似度的部分,即用求相似度算法的动词PID控制的仿真程序,进行调试。相似度算法有两种方法,本文用基于进化函数求相似度的方法进行仿真分析。另一种方法是基于简化的动词相似度的控制算法,与第一种算法结果类似,本为就不在阐述。5.5.1 基于进化函数求相似度的动词PID控制的仿真调试 动词PID的仿真程序中,需要整定的参数更多了。同样要设置PID三个初始参数,还要设置参数调整的幅度:Kpscale、Kdscale和Kiscale。求相似度时要对一段时间内标准动词和观察动词的进化函数进行、运算并积分,由于仿真采用离散形式,所以一段时间的积分转换成几个点的累加,因此要设置累加的点的个数,在程序里建立一个变量mw=10。动词PID的参数整定与模糊PID不同,Knext =Kcurrent + K。为了避免能量过剩导致控制进入振荡的非稳定状态,还要设置PID三个参数变化的上下限。另外,K反映了K下一步的变化趋势,而在动词规则里,K的变化还有速度之差别,becomeadverb(noun1,noun2)中的adverb可以是slow或者fast,缺省是normally。所以再建立两个变量,beta_fast(bigger than1)和beta_slow (between (0,1),再根据需要进行调整,缺省的beta是1。5.5.1.1 程序模块及其仿真(1)基于动词规则的模糊隶属度仿真程序如下:en=e/abs(e(1);enabs=abs(en);muB=max(0,1+(enabs-1)-abs(enabs-1);muM=max(0,1+(enabs-0.5)-3*abs(enabs-0.5);muS=max(0,1-4*(enabs-0.25);muZ=max(0,1-4*(enabs);(2) 动词相似度的求取(以动词become(big; medium)为例):Ab=0;Bb=0;n=round(rmw/2);for j=1:nEb(j)=1-0.5(j/n);endAm=0;Bm=0;for j=n:rmwEm(j)=0.5+0.5*(j-n)/n;Am=Am+min(Em(j),muM(bprt+j);Bm=Bm+max(Em(j),muM(bprt+j);endsb=Ab/(Bb+Bm);sm=Am/(Bb+Bm);Balance=2*min(sb,sm);s2(k+1)=(Ab+Am)/(Bb+Bm)*Bal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人事做个合同
- 个人租房出租合同
- 沈阳月嫂合同
- 茂业管理合同
- 派遣合同和劳务合同
- 第2课 探究世界的本质 复习课件 2026年高考政治一轮复习 必修四 哲学与文化
- 火灾事故赔偿协议书
- 合伙买车的协议书怎么写
- 协议书工程师怎么样
- 酒店万能打折卡 协议书价
- 2025届四川省南充市高三第一次诊断考-化学试题+答案
- 脊髓损伤教学课件
- 山东省名校考试联盟2026届高三上学期10月阶段性检测化学试卷(含答案)
- (南开中学)重庆市高2026届高三第二次质量检测 历史试卷(含答案详解)
- 2025云南省曲靖市公开选拔市属国有企业领导人员及市场化选聘职业经理人(10人)笔试参考题库附带答案详解
- 急性高原反应指南解读
- 冬季防冻措施安全培训课件
- 2025西南证券股份有限公司校园招聘300人笔试参考题库附带答案详解
- 交通安全常识考试题库及答案解析
- 《有限元基础理论与ANSYS18.0应用》课件-第四章 结构线性静力分析
- 2025-2030肉牛养殖共享经济模式探索与设备租赁市场潜力评估报告
评论
0/150
提交评论