×
嵌入式 > 技术百科 > 详情

PLC的PID运算及运动控制探讨

发布时间:2020-06-17 发布时间:
|
PLC的工作流程

  1、系统初始化:一般小型PLC的系统初始化主要是进行初始化、设置、查找扩展模块等;

  2、扫描输入:扫描IO输入信号;

  3、执行逻辑:根据用户PLC程序执行逻辑;

  4、家务管理:PLC诊断、维护和其它系统程序执行;

  5、扫描输出:将逻辑执行的结果输出;

  6、通信管理单元:通信服务程序,响应编程软件和其它通信任务。

  PLC运行方式:

  由上面可以看到PLC的运行是一种循环扫描的运行方式,实际上PLC还有定时扫描和中断扫描共三种扫描方式。

  循环扫描:PLC按上图循环执行;

  定时扫描:PLC根据用户设置的时间定时扫描,比方说50ms扫描一次,使用这种扫描方式,用户需要保证用户程序在设定时间内一定能扫描完毕,一般PLC使用定时中断和子程序结合起来实现这个功能(这种情况下与中断扫描方式并无不同),但在IO扫描方面会有一些细微的不同,很可能会用到立即刷新IO的功能块UpData_IO。

  中断扫描:中断扫描根据外部或者内部中断的激活中断扫描程序的运行。比方说外部IO中断、高速计数中断、定时中断等。

  十九、PID——温控、变频

  PID(Proportional, Integral andDerivative)是闭环控制中最常用的一种算法,在包括温控、水泵、张力、伺服阀、运控等行业得到了广泛的应用,但因为每个应用的对象特性都不一样,这就要求调试工程师允分了解PID的控制原理,只有这样我们才能把PID的应用好。

  PID原理:

  PID是由比例、微分、积分三个部分组成的,在实际应用中经常只使用其中的一项或者两项,如P、PI、PD、PID等。

  从控制原理来说,当一个控制对象,我们希望控制的输出达到我们设定的值,我们通常会使用开环或者闭环控制,如果控制对象的响应很稳定不会受到其它环节的影响,我们可以选用开环控制。反之如果被控对象受到设定值、负载或者源端的影响而产生波动,我们应该选用闭环控制。下图是一个温控的原理图:

  PID执行周期(1/10秒) 〔范例〕

  比例控制(P):

  比例控制是最常用的控制手段之一,这也是最符合人的感观的一种控制,比方说我们控制一个加热器的恒温100度,当开始加热时,离目标温度相差比较远,这时我们通常会加大加热,使温度快速上升,当温度超过100度时,我们则关闭输出,通常我们会使用这样一个函数

  e(t) = SP – y(t);

  u(t) = e(t)*P

  SP——设定值

  e(t)——误差值

  y(t)——反馈值

  u(t)——输出值

  P——比例系数

  滞后性不是很大的控制对象使用比例控制方式就可以满足控制要求,但很多被控对象中因为有滞后性。

  比方说塑胶挤出机,如果设定温度是200度,当采用比例方式控制时,如果P选择比较大,则会出现当温度达到200度输出为0后,温度仍然会止不住的向上爬升,比方说升至230度,当温度超过200度太多后又开始回落,尽管这时输出开始出力加热,但温度仍然会向下跌落一定的温度才会止跌回升,比方说降至170度,最后整个系统会稳定在一定的范围内进行振荡。

如果这个振荡的幅度是允许的比方说家用电器的控制,那则可以选用比例控制,很多传统的家用空调和我们常会发现家用空调始终是间歇工作的,当开始制冷时我们通常会感到越来越冷,当空调停止时又会感到温度越来越高,它采用的则是比例控制

  比例值太小时的控制效果图:

  如果比例值太小,反馈值始终到不了设定值(静态误差)就达到了平衡(如果是加热的话就是说散热与P*e(t)加热达到了一个平衡)

  比例值太大时的控制效果图:

  如果比例值太大,则被控对象会出上图所示的振荡,当然振荡点不一定是在设定值,而会根据被控对象的不同或者P值的大小而在某个位置进行振荡。这对于大多数的控制对旬来说是不允许的。

  比例积分控制(PI):

  积分的存在是针对比例控制要不就是有差值要不就是振荡的这种特点提出的改进,它常与比例一块进行控制,也就是PI控制。

  其公式有很多种,但大多差别不大,标准公式如下:

  u(t) = Kp*e(t) + Ki∑e(t) +u0

  u(t)——输出

  Kp——比例放大系数

  Ki——积分放大系数

  e(t)——误差

  u0——控制量基准值(基础偏差)

  大家可以看到积分项是一个历史误差的累积值,如果光用比例控制时,我们知道要不就是达不到设定值要不就是振荡,在使用了积分项后就可以解决达不到设定值的静态误差问题,比方说一个控制中使用了PI控制后,如果存在静态误差,输出始终达不到设定值,这时积分项的误差累积值会越来越大,这个累积值乘上Ki后会在输出的比重中越占越多,使输出u(t)越来越大,最终达到消除静态误差的目的。

  PI两个结合使用的情况下,我们的调整方式如下:

  1、先将I值设为0,将P值放至比较大,当出现稳定振荡时,我们再减小P值直到P值不振荡或者振荡很小为止(术语叫临界振荡状态),在有些情况下,我们还可以在些P值的基础上再加大一点。

  2、加大I值,直到输出达到设定值为止。

  3、等系统冷却后,再重上电,看看系统的超调是否过大,加热速度是否太慢。

  通过上面的这个调试过程,我们可以看到P值主要可以用来调整系统的响应速度,但太大会增大超调量和稳定时间;而I值主要用来减小静态误差。

  标准的PID公式在温控等响应较慢的系统中会存在积分项导致过冲的情况,这是因为在开始加热后,尽管这时输出已调整最大(比方说固态继电器的PWM输出已是100%开了)但这时的温度仍然只能缓慢上升,这时的积分项会增加得很快,当温度达到设定值后,这时尽管比例项已输出为0,但是积分项仍然会因为其累积值很高而有较大的输出,导致温度超调。

  在德维森的V80中,通过改进的遇限消弱积分法等措施很好的解决了这个问题,使积分项在输出全开时停止积分,减少了积分对于这种大时延系统的影响。

PID控制:

  因为PI系统中的I的存在会使整个控制系统的响应速度受到影响,为了解决这个问题,我们在控制中增加了D微分项,微分项主要用来解决系统的响应速度问题,其完整的公式如下:

  u(t) = Kp*e(t) + Ki∑e(t) + Kd[e(t) – e(t-1)]+u0

  在模拟电路中的微分常数是与特征频率相关系的,而在数字离散PID中的微分项实际上是有一些问题的,因为其只计算了两次误差的差值,而实际的模拟PID或者用户需要的理想微分公式应该是要对其进行展宽的,只有展宽的D值才能真正的起到很好的效果。微分项在控制系统中起到减少超调降低振荡的作用,但因为微分项本身对于干扰很敏感,所以在使用微分项时要慎重。

  在PID的调试过程中,我们应注意以下步骤:

  1、 关闭I和D,加大P,使其产生振荡;

  2、 减小P,找到临界振荡点;

  3、 加大I,使其达到目标值;

  4、 重新上电看超调、振荡和稳定时间是否吻合要求;

  5、 针对超调和振荡的情况适当的增加一些微分项;

  6、 注意所有调试均应在最大争载的情况下调试,这样才能保证调试完的结果可以在全工作范围内均有效;

  位置PID与增量PID:

  前面我们所说的PID公式均是位置PID,也称为全量PID,这在温控、阀门控制、水泵控制中最常用到,另一种PID公式称之为增量PID其公式如下:

  △u(t) = u(t) – u(t-1)

  这在运动控制中最常使用,其输出是两次PID运算结果的差值,一般的步进或者伺服电机的位置控制可以采用这种方式。

  二十一、运动控制

  运动控制是近些年的热门,精密定位、恒速控制、恒力矩控制等在各种装备中的应用越来越广泛,这对于控制器的要求也越来越高。

  对于运动控制,大家比较常用的包括步进电机、伺服电机,除此之外伺服阀、数字液压等都属于同一类的控制方式。在这些运控系统中,我们又根据控制对象的不同分为位置控制、速度控制、力矩控制三大类。其中步进电机只能应用于位置控制,而伺服则可以应用于这三类中的任一种控制方式。

  在运动控制系统中我们一般可以使用专用的运动控制器或者PLC来实现运动控制功能,一般来说专用的运动控制器如数控系统等会更为专业功能更强,对于插补、G指令的支持会更好。

  比方说高档的数控系统可能会支持以下的功能:用户用CAD画完图后转换成G代码下载给控制器,控制器就可以执行对应的G代码完成整个控制过程。

  而PLC相对而言是一个更为通用的控制平台,一般通过功能块来实现运动控制功能,V80增强系列(/S)对于两轴的位置控制有很强的支撑,可以满足绝大多数运动控制要求的环境,V80的速度控制和力矩控制一般使用E6MAD扩展模块来实现,在这里我们提到的运动控制是CPU模块本身的位置控制功能。

  21.1、位置控制基础

  在装备控制中有相当多的场合需要用到位置定位控制,如各种机床、收卷排线、纸张电缆管材的定长裁剪、包装、印刷等。位置控制的实现,通常是通过步进电机和伺服电机来达到的,下面我们统一以步进电机来描述。

  步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

  PLC正是利用步进电机的这种特性来实现位置控制功能的,PLC与步进电机之间的接口为脉冲接口,我们称之为PTO。

  脉冲与位置的关系:

  比方说我们需要步进电机转动90度,而步进电机的步距角为0.3度的,那么我们的脉冲输出个数就应该为300个,当300个脉冲输出完毕后电机正好旋转90度停止。

步进电机的启动和加减速:

  实际的应用中我们需要考虑到步进电机在带载的情况下无法高速启动,所以需要步进电机在启动时使用较低的脉冲频率,然后逐步提升速度,否则会有失步和过冲的现象出现。同时一般的步进电机使用场合都是开环的,一旦出现了失步和过冲则是不可恢复的误差。(伺服电机这种情况要好一些但在负载太大的情况下仍然会有启动不了的现象)

  为了防止出现失步和过冲的情况,我们通常会让步进电机在低速启动后再逐步提升速度,在加速过程中,最好的是S型加速,S型加速的加速度是线性的,这对于机械和电机来说是最吻合其特性的。在实际的应用中,大多数是采用的线性加减速,这对于大多数的应用来说也是足够了的。

  步进电机的正反转:

  运控系统中的正反转是很常用的方式,由于步进电机没有带反馈装置,所以步进电机不适合高速的正反转,一般而言,在空载的情况下行程在100个脉冲往反转,步进电机的正反转频率只能达到10次/秒以下(大多数的在5次/秒以下),伺服电机的正反转频率可以达到50次/秒以下(刚性要调得比较高)。不同厂商的电机不同,主要与惯量的大小有关系。

  正反转时,需要很好的加减速控制的支持,否则会出现失步和过冲的情况,伺服系统还会出现还没到位就开始反转的情况。

  在实际的应用之中我们还常用接近开关、光电开关、编码器、光栅尺来与步进电机配合完成位置控制。这些方法中可以分为两大类一类是开关型定位,一类是坐标定位。

  开关型定位:

  包括接近开关、光电开关、接触开关等,这些开关最常用的是安置在原点,用来标零和消除累积误差。这些系统在上电后一般都有找原点的动作过程,通常都是上电后向一个方向运动找到原点后标定原点坐标,然后开始正常工作。

  坐标定位:

  这一类的控制采用编码器、光栅尺、电子尺(模拟电压接口)之类的,其中又分为绝对编码和相对编码两类,顾名思义绝对编码的输出信号是绝对坐标,通常是并行的总线,而相对编码的输出信号只是串行的脉冲信号,因为绝对编码器比较贵,所以大多数的现场都使用相对编码。

  相对编码的信号有AB相、方向脉冲、上下脉冲三大类

  AB相又分为*1、*2、*4三种细分方式,*1,表示AB相各来一个脉冲计数值加或减1,*2表示AB相的任一上升沿加或减1,*4表示AB相的任一脉冲的上升沿或者下降沿均加或减1。V80的AB相脉冲计数方式只支持*4的细分方式。

  大多数的编码器均是AB相的信号,或者是ABZ信号,ABZ信号相对于AB相信号多了一个Z信号线,用来标示编码器的零点,编码器每转一圈出一个脉冲。

  电子尺:

  电子尺多用在各种距离计量的装备上面,比方说注塑机的射胶电子尺、合模电子尺等。电子尺可采用脉冲接口或者模拟量接口(电位器),PLC需要通过模拟量输入模块来采样,但是大多数PLC的模拟量输入模块的响应速度太慢无法满足现场的要求(通常的采样周期在100mS左右)。V80的高速模拟量扩展模块E6MAD可以达到mS的采样周期,所以可以用来实现高速的模拟量电子尺接口。

  基本上大多数运动控制都可以由上面的功能组合而成,对这些概念有一个基本的认识是正确使用运动控制功能的前提。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Semtech的LoRa技术携手Chipsafer将牧场连接至云端