查看: 4353|回复: 22
收起左侧

[教程经验] 增量PID应用浅谈

邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
PID大家使用很多情况都是直接调用相应功能块使用,很少自己写!今天给大家在此进行浅谈,希望各路大神批评指正!
首先PID分为增量式和位置式,篇幅有限具体区别大家可以自己查一下。本次应用以增量式为基础,进行ST程序编写。
公式:U(k+1)=U(k)+KP*E(k)+KI*【E(k)-E(k-1)】+KD*【E(k)-2E(k-1)+E(k-2)】
KP:KI:KD: 三个调节系数具体如下图,体会一下。
image.png image.png image.png image.png
E:实际值与设定值差值
下角标K:本次误差
       K-1:上次误差
       K-2:上上次误差
根据公式写程序如下:
PROGRAM PLC_PRG
VAR
        rEK: LREAL;//误差
        rEK1: LREAL;//上次误差
        rEK2: LREAL;//上上次误差
        rSV: LREAL;//设定值,写入大家期望的值
        rPV: LREAL;//实际值
        rMV: LREAL;//输出值
        rDead_Area: LREAL; //死区,这个值是一个范围即允许误差
        rMV_LOW: LREAL;//输出下限
        rMV_HI: LREAL;//输出上限
        rSF: LREAL;//比例因子
        rLJ: LREAL;//积分因子
        rWZ: LREAL;//微分因子
        rKP: LREAL;//
        rKI: LREAL;//
        rKD: LREAL;//
        rMV_internal: LREAL;//输出值
        bMV_NEG: BOOL;//输出取反
END_VAR

//根据公式U(k)-U(k-1)=Kp*【E(k)-E(k-1)】+Ki*E(k)+Kd*【E(k)-2E(k-1)+E(k-2)】写程序
        rEK:=(rSV-rPV);  //误差=目标值-当前值
        IF ABS(rEK)>rDead_Area THEN(*死区*) //判断误差是否在允许范围内
                rSF:=rKP*(rEK-rEK1);(*比例因子*)
                rLJ:=rKI*rEK;(*积分因子*)
                rLJ:=LIMIT(rMV_LOW, rLJ, rMV_HI);//根据实际情况限制
                IF rEK*rEK1<=0.0 OR rKP<=0.0 THEN
                        rLJ:=0.0;
                END_IF;
                //rEK1:=rEK;
                IF(rEK<>rEK1)THEN
                        rEK2:=rEK1;
                END_IF
                rWZ:=(rEK-2*rEK1+rEK2)*rKD;(*微分因子*)
                rEK1:=rEK;
                rMV_internal:=rEK*rKP+rLJ+rWZ;       
                rMV_internal:=LIMIT(rMV_LOW, rMV_internal, rMV_HI);       
                IF NOT bMV_NEG THEN
                        rMV:=rMV_internal;
                ELSE
                        rMV:=0.0-rMV_internal;
                END_IF;
                rMV:=LIMIT(rMV_LOW, rMV, rMV_HI);
        ELSIF ABS(rEK)<=rDead_Area THEN(*死区*)
                rSF:=0.0;
                rLJ:=0.0;
                rWZ:=0.0;
                rMV:=0.0;
        END_IF;

1628182553567.pdf

366.29 KB, 下载次数: 90

售价: 2  [记录]

辅助理解PID





上一篇:给大家分享一个小程序
下一篇:PLC在自动张力控制器中的应用说明

已有 0 人打赏作者

相关帖子

回复 邀请回答送花

使用道具 举报

王言之 2021-8-6 01:01:10 | 显示全部楼层
附件是帮助理解PID的,如果清楚的话就不需要下载了
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部