极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11539|回复: 3

最简单的PID代码和趋势图

[复制链接]
发表于 2013-2-25 15:05:53 | 显示全部楼层 |阅读模式
增量式PID算法,每次输出控制量的增量,公式是:Δu(k)=P*e(k)+I*e(k-1)+D*e(k-2),推导过程可以翻翻论坛里的帖子。
本文对控制量进行了累加,所以输出的是总的控制量(和位置式的PID输出是一样的),对控制量输出一定要进行限幅处理。
[pre lang="pascal" line="1"](*Algorithm of incremental PID is u(k)=P*e(k)+I*e(k-1)+D*e(k-2)*)
ek2:=ek1;
ek1:=ek;
(*get current e*)
ek:=rSetValue-rProcessValue;
(*get incremental control value*)
uk:=rPGain*ek+rIGain*ek1+rDGain*ek2;
(*save last control value*)
rControlValue:=rControlValue+uk;
(*limit the control value*)
if rControlValue<rControlValueMin then
        rControlValue:=rControlValueMin;
end_if;

if rControlValue>rControlValueMax then
        rControlValue:=rControlValueMax;
end_if;[/code]
仿真曲线是在Logix5000的仿真器+matlab上获取的

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2013-2-26 10:58:57 | 显示全部楼层
不错的文章,很适合新人学习。
回复 支持 反对

使用道具 举报

发表于 2013-8-7 08:15:22 | 显示全部楼层
好好学习,天天向上~
回复 支持 反对

使用道具 举报

发表于 2013-9-7 01:04:55 | 显示全部楼层
Δu(k)=A*e(k)+B*e(k-1)+C*e(k-2)
式中A=(1+T/T1+TD/T)*KP
      B=(1+2TD/T)*KP
      C=KP*TP/T
该怎么改啊?
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 00:10 , Processed in 0.044087 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表