您现在的位置是:首页 > PLC技术 > PLC技术
在PLC中如何实施控制算法
来源:艾特贸易2018-05-11
简介依据在第一节中对控制软件基本情况的了解,实际上就是完成对某一些特定方程的计算,所以它又被称为控制算法,这些方程和算法来源于控制理论。本文不可能对此作过多的介绍,仅
依据在第一节中对控制软件基本情况的了解,实际上就是完成对某一些特定方程的计算,所以它又被称为控制算法,这些方程和算法来源于控制理论。本文不可能对此作过多的介绍,仅对当前一般的PLC控制器所能承担的,经常可能遇到的,相对较简单的,对一般读者能立即拿来使用的方法作进一步地介绍。
很多PLC中都有为闭环控制算法的专用指令,即PID指令。它是唯一一条直接用于过程控制的指令。它看起来不算复杂,但是用起来的效果却常常不尽如人意。为了说明问题,但又不借助太多的数学,我们通过一个十分简单而又非常直观的具体例子,花较多的篇幅来介绍如何用PLC控制器实现有效地控制。
在此之前,需注意以下事项。
(1) PID控制是一种从反馈控制的理念出发,原本由模拟器件实施的,一种仅限于单进单出对象的控制方法。因为可以在对被控对象的特性知之甚少的条件下使用,因而适应性较广,使用方便,不失为一种通用的闭环控制方法。但是,除非对象的特性(其中主要是它的线性和动态特性)较简单,否则控制的效果欠佳。
(2)它的3个控制参数,即放大系数Kp、积分时间Ti和微分时间Td的选用,虽然在理论上他们有明确的分工,但是实际上又相互干扰,所以正确设置很不容易,需要细心调试和经验的积累。
同时又因为对控制效果的要求,并非只有一个统一的标准。例如有的希望能用较强力的手段(控制参数),并且可以容忍被控参数有较大的波动,但是要求能尽快地趋于稳定。反之,有的希望能用较平和的手段,可以容忍被控参数慢慢地趋于稳定,但是要求它尽可能地没有明显的波动。有的系统对被控参数的最终精度(余差)有一定要求,有的则要求不高。总之,应对不同的要求,应该使用不同的控制参数。一般都有一个不小的变化范围,并非有一个组唯一的最佳参数。
(3)原本由模拟器件进行的PID算法,现在改由PLC来完成数字离散算法。在理论上可以证明,其效果PLC决不会超过前者,而且还必须首先确定一个多出来的参数——采样时间。常使用户难以下手。
我们仅从最基本的原理出发,大致估计一下采样时间。反馈控制系统的基本思想是按照反馈回来的偏差进行调整。也就是说,如果反馈来的偏差没有变化,我们的控制也暂时不必改变。否则是没有根据的,盲目的,效果也是值得怀疑的。那么是什么原因使偏差没有变化呢?我们先说一种最好的情况,就是系统已经稳定了。已经在当前的条件下完成了控制目标。也许并不圆满(有余差),但是它尽力了。其次是被控制对象有明显的纯滞后,即上次调控的效果,尚来不及表现出来。因此我们就可以将这纯滞后时间作为采样时间。最后一种情况是,该系统中使用的测量通道有限的分辨力(或因模拟测量系统灵敏度的限制,或A/D转换器的位数有限,而使数据没有变。)使得读入的数字没有变。因此我们可以根据估算出的或实测的最小“不变时间”作为参考,来初步决定采样时间。再考虑到为保全信号的采样定律,可将“不变时间”之半设定为采样周期的下限。不要盲目地认为采样周期越小,控制效果越好,而浪费系统资源。
采样时间基本定下之后,一般可以用定时中断的方法来实现控制周期。如果应用程序执行时,扫描时间变化不大,最好将PLC的扫描时间设为定值模式。采样时间设定为PLC扫描时间的整数倍。用计数的办法来决定采样时间。
(4)设定放大系数Kp是当采样时间Ts决定之后,必须设定的第二个重要参数。也是可能令初学者似乎无从下手的工作。虽然在有关“控制原理”的各种书籍中,对于如何设定放大系数Kp有很多严密的论证、计算、仿真和工程方法。但是我们现在的情况明显地不同于一般通用条件下的研究。现在面对的是一个已经正确设计好的,工艺要求已经十分明确的,硬件配置完整的PLC控制系统。有很多参数及条件是我们已知的,应该加以利用。下面艾特贸易小编介绍一种具有现场可操作性的、十分简单的入门方法,仅供参考。
我们曾经介绍过广义对象的概念,其回路图如图3-3所示。这里,它的输入来自于PID的数字输出,用GDI表示。而它的输出则是传感器经A/D转换之后,被PLC读入的数字量,用GDO表示。即使我们对被控对象特性的了解有限,但是既然系统的输入和输出通道硬件都已经设计好,那么DI、GDI、GDO这些数字的变化范围以及最大值就都是已知的。例如,如果测量被控参数的传感器输出,经10位A/D转换后被PLC读入,它的范围是0~1023,其最大值DSM为1023。同样由PLC送出的GDI,其范围以及最大值都是已知的,它的最大值用DIM表示。
图3-3 广义对象控制回路图
系统在工作时,偏差△=SPL-GDO,除非系统已经完全稳定,并且没有余差,也就是说暂时不必调节。否则对于一个能够稳定的系统,能够测量出的最小偏差值是1,所以可以肯定,放大系数Kp一定小于控制器的最大输出数DIM。否则由△×Kp计算出的DI,将会立即超出DI允许的最大值DIM。这将处于饱和状态,实质上变成了开环状态,是我们所不希望的。再考虑到正常工作时,被控参数出现的偏差大多为传感器量程的10%左右,也就是GDO的最大值DSM的10%左右。所以可以进一步估计,放大系数Kp小于10×DIM/DSM。
它就是我们初步估计出的、可用的放大系数的值。作为调试用的第一个放大系数,一般可取最大值的0.5~1,即Kp=(5~10)×DIM/DSM。
这种简易的工程参数整定法十分简单,读者不妨一试。若希望进一步得到较好的控制质量,可对放大系数进行0.618模式搜索。
这种现场可操作的方法适用于一般的对象,也就是纯延时不太大,对象特性不因时间而有较大的改变,输入和输出比例系数变化不十分明显的对象。用较为专业的术语称为“无明显的纯滞后,非时变的线性系统”。要求较高的读者,请进一步参考相关的控制理论。
(5)在开始调试时,为了能尽快掌握,可以仅设定控制器的放大系数(增益)Kp,暂时不使用微分和积分功能,也就是将微分时间常数设为0,而将积分时间常数设得尽可能地大。待调试基本成功后,再根据需要增加其他功能。一般情况下,可用2~3倍采样时间Ts作为微分时间Td,5~10倍微分时间作为积分时间Ti。两条原则:积分只能缩小系统的余差(最终精度),对其他控制质量有害无益。微分可改进控制的动态性能,提高控制质量,但过分时可能引发振荡,降低抗干扰能力。再提醒一句,微分时间越长,微分作用越强;积分时间越短,积分作用越强。
(6)在前面计算放大系数时,我们用的是最大值。但是运行中GDI和GDO的变化量△GDI和△GDO,它们原本是可正可负的。当其比值为正时,称为正特性对象,应使用PID的正作用算法。反之.称为负特性对象,应使用PID的“反作用”算法。用错了,系统就由负反馈变成了正反馈,可能导致失控的严重后果。
(7) PID算法可分为位置式和增量式两种。PLC中多使用增量式算法,即由PID算出来的结果,是这一次扫描后的输出变化量。实际的输出,还要加上前一次扫描后的输出值。
(8)调试控制系统时,应该随时注意控制系统中的每一个环节是否工作在正常范围之内。这里主要有两方面的问题应该注意:①被控对象的工作是否超出允许的范围。例如,电动机是否超速?物料是否会从容器溢出或被抽干?等等。因此建议在进行PID系统调试之前,应该首先编制并测试好系统的保护程序,并投入正常运行。②在PLC内准备用来作为控制输出的数字量,也就是PID计算出的输出数,是否超出有效范围?例如,用来输出到12位D/A模块的数字量,大于4095。必将导致输出错误。即使计算出的数字量超出4095时,强行改成4095后再送到D/A模块,这样模块虽然不出错,但是整个控制系统则由原来的闭环变成了开环。信号的传递被阻塞,成为了不可控的系统。这在设定的放大系数过大,或是出现“积分饱和”时可能会经常遇到。因此在设定运行参数时,要避免出现这种情况。
(9)用离散算法实施PID控制,并非计算机的强项。我们应该进一步发挥它的长处,避免其不足。取代模拟器件的算法软件,在判别、选择、寄存和各类计算功能方面,具有明显的优势。因此在有条件时,尽可能地使用各种其他更有效、更直观的算法作为补充,如数字滤波、前馈算法、变结构算法、变参数算法、自适应和自学习算法、模糊控制算法等,计算机在这方面显然有明显的优势。
(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:)