知识|PLC的PID运算及运动控制探讨(一)
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值才能真正的起到很好的效果。微分项在控制系统中起到减少超调降低振荡的作用,但因为微分项本身对于干扰很敏感,所以在使用微分项时要慎重。
评论排行