发明名称 基于智能控制算法的PAC控制器的设计方法
摘要 本发明公开了基于智能控制算法的PAC控制器的设计方法,本发明在传统PAC控制器的基础上,采用了改进PID控制算法、变论域模糊PID控制算法、基于神经网络的PID控制算法等智能控制算法,能够提高控制精度,提高控制响应,满足更高的控制要求。在网络通讯方面,在传统的串口232、485的基础上增加了以太网、CAN总线等通讯方式,使用Modbus‑RTU、Modbus‑TCP、CANopen,自定义协议等,来实现网络的互联互通。在常规PID的基础上增加了防止积分饱和算法、对控制变量进行微分、微分先行等算法,能够显著提高PID的效果,提高了响应时间,减小控制超调量。
申请公布号 CN105759607A 申请公布日期 2016.07.13
申请号 CN201610103921.X 申请日期 2016.02.26
申请人 北京工业大学 发明人 陈双叶;冯超;丁迎来
分类号 G05B13/04(2006.01)I 主分类号 G05B13/04(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 沈波
主权项 基于智能控制算法的PAC控制器的设计方法,该方法基于一种智能控制装置实现的,所述的智能控制装置主要包括以下几个部分:1)传感器采样电路,该电路包括电压、电流、电阻信号的采样信号调理电路,以期实现传感器的信号高精度采集,如压力变送器、PT100温度传感器、角度传感器、4~20mA的电流传感器等;2)控制输出电路,含有隔离单元,使用固态继电器控制大电压大电流;使用PWM输出信号,控制输出精度高;3)用于参与运算的微控制器,以及以太网通讯电路,232、485、CAN总线通讯电路,复位电路,看门狗电路;4)确保电源稳定的电源模块电路;传感器通过输入信号调理电路与微控制器相交互;其特征在于:该方法包括以下步骤:步骤一:设计PID自整定算法,常见的工业控制对象具有非线性、时变性以及不确定性等因素,导致PID参数采用人工整定的方法比较耗费时间,整定的效果也比较差,在本方法中增加了PID自整定的算法,能够自动确定设备运行的PID参数,节省了时间,提高了控制效果;步骤二:另外在传统的PID控制基础上,增加了防止积分饱和算法、对控制变量进行微分、微分先行等算法,能够显著提高PID的效果,提高了响应时间,减小控制超调量;步骤三:由于控制对象的非线性、时变性以及不确定性等因素,仅仅使用PID控制,控制效果比较差;该方法在改进了常规PID控制方法的基础上,增加了模糊控制算法,通过建立模仿人类知识语言的模糊规则表,以及隶属度函数来进行模糊控制运算,使用模糊控制与常规PID控制相结合的方式,能够提高控制器在控制对象具有非线性、时变性以及不确定性因素的控制效果;步骤四:在模糊控制中,模糊规则及隶属度函数的获得大多来自人的经验,控制效果的好坏也跟模糊规则及隶属度函数的选择息息相关;然而神经网络具有很强的非线性拟合能力,可学习和自适应能力等优势,将神经网络与PID控制相结合,能够利用神经网络的自学习能力,计算PID控制的最优参数,达到最优控制,效果显著;所述步骤一提到的PID自整定的实现具体分为以下步骤:1.1,采用Z‑N(齐格勒‑尼克尔斯法则)继电反馈式整定方法来实现,相比Z‑N方法有很好的优势,即使用继电方法来产生振荡环节,其中继电特性的描述方程:<img file="FDA0000929890470000021.GIF" wi="406" he="103" />式中,M为继电特性幅值,X为测量输出峰值差计算求得;当满足argG(jω)=‑π,<img file="FDA0000929890470000022.GIF" wi="340" he="102" />式中A是通过测量输出的最大值和最小值求得,K<sub>u</sub>为临界振荡比例增益,d为划分的对称继电特性的振幅;1.2,通过产生的振荡曲线,获得以上K<sub>u</sub>及临界振荡周期T<sub>u</sub>,由Ziegler‑Nichols自整定方法的计算公式,如表1所示,根据需要的性能要求,计算出整定的PID参数,完成继电反馈的PID自整定过程;表1Z‑N自整定PID参数(快速性能)<img file="FDA0000929890470000023.GIF" wi="1014" he="235" /><img file="FDA0000929890470000031.GIF" wi="1013" he="231" />所述步骤二提到的改进常规PID的实现具体分为以下步骤:2.1,常规PID算法如果不加修改使用的话,会暴露出容易超调、系统稳定周期时间长、在稳定时会有振荡现象的缺点;2.2,PID的常用形式是:<maths num="0001"><math><![CDATA[<mrow><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>K</mi><mi>p</mi><mo>&lsqb;</mo><mi>e</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mfrac><mn>1</mn><mrow><mi>T</mi><mi>i</mi></mrow></mfrac><msubsup><mo>&Integral;</mo><mn>0</mn><mi>t</mi></msubsup><mi>e</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mi>d</mi><mi>t</mi><mo>+</mo><mi>T</mi><mi>d</mi><mfrac><mrow><mi>d</mi><mi>e</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mi>d</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></mfrac><mo>&rsqb;</mo><mo>=</mo><msub><mi>k</mi><mi>p</mi></msub><mi>e</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>k</mi><mi>i</mi></msub><msubsup><mo>&Integral;</mo><mn>0</mn><mi>t</mi></msubsup><mi>e</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mi>d</mi><mi>t</mi><mo>+</mo><msub><mi>k</mi><mi>d</mi></msub><mfrac><mrow><mi>d</mi><mi>e</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mi>d</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000929890470000032.GIF" wi="1445" he="142" /></maths>采用抗积分饱和算法来限制积分导致超调现象,又能快速提高上升时间;其中,Umin≤u(t)≤Umax,当<img file="FDA0000929890470000033.GIF" wi="701" he="86" />时,令u<sub>1</sub>(t)=Umax,其中令<img file="FDA0000929890470000034.GIF" wi="555" he="94" />限制了积分饱和现象;另外改进微分的变化量,由于<img file="FDA0000929890470000035.GIF" wi="339" he="135" />其中e(t)=r(t)‑y(t),其中r(t)为设置值,y(t)为传感器采样值,然而当r(t)调整的时候,必然导致微分项的瞬间变化,会增加系统的不稳定性,因此令<img file="FDA0000929890470000036.GIF" wi="371" he="127" />所述步骤三提到的变论域模糊控制PID的实现具体分为以下步骤:3.1,变论域自适应模糊控制是以误差e和误差变化率ec作为系统的输入,在不同时刻根据e和ec的不同对PID参数进行自动调整,模糊规则在线对PID参数的Kp、Ki、Kd进行修改;模糊自整定PID是在PID算法的基础上,通过计算当前系统误差e和误差变化率ec,利用模糊规则进行模糊推理,查询模糊规则表进行参数调整;3.2,模糊控制表的建立不是唯一的,针对不同控制系统有所差异,但针对常见系统,使用以下模糊控制表均能满足控制要求:ΔKP模糊规则表:<img file="FDA0000929890470000041.GIF" wi="1784" he="1054" />ΔKi模糊规则表:<img file="FDA0000929890470000042.GIF" wi="1784" he="1054" />ΔKd模糊规则表:<img file="FDA0000929890470000051.GIF" wi="1783" he="1062" />3.3论域的选择以及隶属度函数的确定通过人工经验确定,确保尽量准确;另外通过监测e和ec的变化,不断优化和缩小论域的范围,达到变论域自整定的问题;所述步骤四提到的神经网络PID的实现具体分为以下步骤:4.1本方法采用单神经元神经网络PID控制算法,能够避免像使用BP神经网络、遗传算法、粒子群算法计算量大的问题,也能够保证实时控制,在线不断修正;4.2神经元PID结构模型为3个输入单输出的结构,其中3个输入为<img file="FDA0000929890470000052.GIF" wi="541" he="126" />神经元的输出为u(k),其中神经元的权值为PID的比例、积分、微分三个系数即Kp、Ki、Kd;4.3神经元的输出为<maths num="0002"><math><![CDATA[<mrow><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>K</mi><mi>p</mi></msub><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>K</mi><mi>i</mi></msub><msub><mi>T</mi><mi>s</mi></msub><munderover><mo>&Sigma;</mo><mrow><mi>m</mi><mo>=</mo><mn>0</mn></mrow><mi>k</mi></munderover><mi>e</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>K</mi><mi>d</mi></msub><mfrac><mrow><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mi>T</mi><mi>s</mi></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000929890470000053.GIF" wi="891" he="126" /></maths>其中Ts为采样时间,误差函数为e(k)=r<sub>in</sub>(k)‑y<sub>out</sub>(k),取性能指标<img file="FDA0000929890470000054.GIF" wi="323" he="118" />采用最速下降法,神经元的权值调整如下:<maths num="0003"><math><![CDATA[<mrow><msub><mi>&Delta;K</mi><mi>p</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mo>-</mo><mi>&mu;</mi><mfrac><mrow><mo>&part;</mo><mi>J</mi></mrow><mrow><mo>&part;</mo><msub><mi>K</mi><mi>p</mi></msub></mrow></mfrac><mo>=</mo><mi>&mu;</mi><mfrac><mrow><mo>&part;</mo><mi>J</mi></mrow><mrow><mo>&part;</mo><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mfrac><mrow><mo>&part;</mo><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mfrac><mrow><mo>&part;</mo><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mfrac><mfrac><mrow><mo>&part;</mo><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><msub><mi>K</mi><mi>p</mi></msub></mrow></mfrac><mo>=</mo><mi>&mu;</mi><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>T</mi><mi>s</mi></msub><munderover><mo>&Sigma;</mo><mrow><mi>m</mi><mo>=</mo><mn>0</mn></mrow><mi>k</mi></munderover><mi>e</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mfrac><mrow><mo>&part;</mo><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0000929890470000061.GIF" wi="1799" he="141" /></maths>同理可得,<maths num="0004"><math><![CDATA[<mrow><msub><mi>&Delta;K</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mo>-</mo><mi>&mu;</mi><mfrac><mrow><mo>&part;</mo><mi>J</mi></mrow><mrow><mo>&part;</mo><mi>K</mi><mi>i</mi></mrow></mfrac><mo>=</mo><mi>&mu;</mi><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>T</mi><mi>s</mi></msub><munderover><mo>&Sigma;</mo><mrow><mi>m</mi><mo>=</mo><mn>0</mn></mrow><mi>k</mi></munderover><mi>e</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mfrac><mrow><mo>&part;</mo><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000929890470000062.GIF" wi="1046" he="134" /></maths><maths num="0005"><math><![CDATA[<mrow><msub><mi>&Delta;K</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mo>-</mo><mi>&mu;</mi><mfrac><mrow><mo>&part;</mo><mi>J</mi></mrow><mrow><mo>&part;</mo><msub><mi>K</mi><mi>d</mi></msub></mrow></mfrac><mo>=</mo><mi>&mu;</mi><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>T</mi><mi>s</mi></msub><mfrac><mrow><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mi>T</mi><mi>s</mi></mrow></mfrac><mfrac><mrow><mo>&part;</mo><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000929890470000063.GIF" wi="1166" he="127" /></maths>其中μ为学习率,0&lt;μ&lt;1;4.4令<maths num="0006"><math><![CDATA[<mrow><mfrac><mrow><mo>&part;</mo><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mfrac><mo>=</mo><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mo>{</mo><mfrac><mrow><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>2</mn><mo>)</mo></mrow></mrow></mfrac><mo>}</mo><mo>,</mo></mrow>]]></math><img file="FDA0000929890470000064.GIF" wi="755" he="143" /></maths>则通过步骤三可依次求得:Kp(k+1)=Kp(k)+ΔKp(k+1),Ki(k+1)=Ki(k)+ΔKi(k+1),Kd(k+1)=Kd(k)+ΔKd(k+1);4.5神经网络权值的初始值使用步骤一涉及的PID自整定方法计算出的值作为初始值,能够加快神经网络PID自整定的速度。
地址 100124 北京市朝阳区平乐园100号