收藏 分享(赏)

PID算法.doc

上传人:yjrm16270 文档编号:6916018 上传时间:2019-04-27 格式:DOC 页数:7 大小:41.50KB
下载 相关 举报
PID算法.doc_第1页
第1页 / 共7页
PID算法.doc_第2页
第2页 / 共7页
PID算法.doc_第3页
第3页 / 共7页
PID算法.doc_第4页
第4页 / 共7页
PID算法.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、PID算法PID是比例,积分,微分的缩写,Uo(N)=P*E(N)+I*E(N)+E(N-1)+.+E(0)+D*E(N)-E(N-1)Htwang 2009-11-2注:E(N)-本次误差E(N)+E(N-1)+.+E(0)-所有误差之和E(N)-E(N-1)-控制器输出与输入误差信号的微分(即误差的变化率),具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。E-误差P-改变 P可提高响

2、应速度,减小静态误差,但太大会增大超调量和稳定时间。I-与 P的作用基本相似,但要使静态误差为 0,必须使用积分。D-与 P,I的作用相反,主要是为了减小超调,减小稳定时间。三个参数要综合考虑,一般先将 I,D设为 0,调好 P,达到基本的响应速度和误差,再加上 I,使误差为 0,这时再加入 D,三个参数要反复调试,最终达到较好的结果。不同的控制对象,调试的难度相差很大,祝好运!PID 的参数设置可以参照以下来进行: 参数整定找最佳,从小到大顺序查先是比例后积分,最后再把微分加曲线振荡很频繁,比例度盘要放大曲线漂浮绕大湾,比例度盘往小扳曲线偏离回复慢,积分时间往下降曲线波动周期长,积分时间再加

3、长曲线振荡频率快,先把微分降下来动差大来波动慢。微分时间应加长理想曲线两个波,前高后低 4 比 1一看二调多分析,调节质量不会低下面以 PID调节器为例,具体说明经验法的整定步骤: 让调节器参数积分系数 S0=0,实际微分系数 k=0,控制系统投入闭环运行,由小到大改变比例系数S1,让扰动信号作阶跃变化,观察控制过程,直到获得满意的控制过程为止。 取比例系数 S1为当前的值乘以 0.83,由小到大增加积分系数 S0,同样让扰动信号作阶跃变化,直至求得满意的控制过程。 (3) 积分系数 S0保持不变,改变比例系数 S1,观察控制过程有无改善,如有改善则继续调整,直到满意为止。否则,将原比例系数

4、S1增大一些,再调整积分系数 S0,力求改善控制过程。如此反复试凑,直到找到满意的比例系数 S1和积分系数 S0为止。 引入适当的实际微分系数 k和实际微分时间 TD,此时可适当增大比例系数 S1和积分系数 S0。和前述步骤相同,微分时间的整定也需反复调整,直到控制过程满意为止。注意:仿真系统所采用的 PID调节器与传统的工业 PID 调节器有所不同,各个参数之间相互隔离,互不影响,因而用其观察调节规律十分方便。PID参数是根据控制对象的惯量来确定的。大惯量如:大烘房的温度控制,一般 P可在 10以上,I=3-10,D=1左右。小惯量如:一个小电机带 一水泵进行压力闭环控制 ,一般只用 PI控

5、制。P=1-10,I=0.1-1,D=0,这些要在现场调试时进行修正的。 我提供一种增量式 PID供大家参考:U(k)=Ae(k)-Be(k-1)+Ce(k-2) A=Kp(1+T/Ti+Td/T) B=Kp(1+2Td/T) C=KpTd/T T采样周期 Td 微分时间 Ti 积分时间 用上面的算法可以构造自己的 PID算法。 U(K)=U(K-1)+U(K)在 过 程 控 制 中 , 按 偏 差 的 比 例 ( P) 、 积 分 ( I) 和 微 分 ( D) 进 行 控 制 的 PID 控制 器 ( 亦 称 PID 调 节 器 ) 是 应 用 最 为 广 泛 的 一 种 自 动 控 制

6、器 。 它 具 有 原 理 简 单 , 易 于实 现 , 适 用 面 广 , 控 制 参 数 相 互 独 立 , 参 数 的 选 定 比 较 简 单 等 优 点 ; 而 且 在 理 论 上 可 以证 明 , 对 于 过 程 控 制 的 典 型 对 象 “一 阶 滞 后 纯 滞 后 ”与 “二 阶 滞 后 纯 滞 后 ”的 控 制对 象 , PID 控 制 器 是 一 种 最 优 控 制 。 PID 调 节 规 律 是 连 续 系 统 动 态 品 质 校 正 的 一 种 有效 方 法 , 它 的 参 数 整 定 方 式 简 便 , 结 构 改 变 灵 活 ( PI、 PD、 ) 。下 面 对 控

7、 制 点 所 采 用 的 PID 控 制 算 法 进 行 说 明 。 控 制 点 目 前 包 含 三 种 比 较 简 单 的 控 制 算 法 , 分 别 是 : 增 量 式 算 法 , 位 置 式 算法 , 微 分 先 行 。 这 三 种 算 法 虽 然 简 单 , 但 各 有 特 点 , 基 本 上 能 满 足 一 般 控 制 的大 多 数 要 求 。1) PID 增 量 式 算 法离 散 化 公 式 : 注 : 各 符 号 含 义 如 下 u(t); 控 制 器 的 输 出 值 。 e(t); 控 制 器 输 入 与 设 定 值 之 间 的 误 差 。 Kp; 比 例 系 数 。 Ti;

8、积 分 时 间 常 数 。 Td; 微 分 时 间 常 数 。 T; 调 节 周 期 。 对 于 增 量 式 算 法 , 可 以 选 择 的 功 能 有 : (1) 滤 波 的 选 择可 以 对 输 入 加 一 个 前 置 滤 波 器 , 使 得 进 入 控 制 算 法 的 给 定 值 不 突 变 , 而 是 有 一 定 惯性 延 迟 的 缓 变 量 。 (2) 系 统 的 动 态 过 程 加 速在 增 量 式 算 法 中 , 比 例 项 与 积 分 项 的 符 号 有 以 下 关 系 : 如 果 被 控 量 继 续 偏 离 给 定 值, 则 这 两 项 符 号 相 同 , 而 当 被 控 量

9、 向 给 定 值 方 向 变 化 时 , 则 这 两 项 的 符 号 相 反 。 由 于 这 一 性 质 , 当 被 控 量 接 近 给 定 值 的 时 候 , 反 号 的 比 例 作 用 阻 碍 了 积 分 作 用 , 因而 避 免 了 积 分 超 调 以 及 随 之 带 来 的 振 荡 , 这 显 然 是 有 利 于 控 制 的 。 但 如 果 被 控 量 远 未 接近 给 定 值 , 仅 刚 开 始 向 给 定 值 变 化 时 , 由 于 比 例 和 积 分 反 向 , 将 会 减 慢 控 制 过 程 。 为 了 加 快 开 始 的 动 态 过 程 , 我 们 可 以 设 定 一 个 偏

10、 差 范 围 v, 当 偏 差 |e(t)|= 时 , 则 不 管 比 例 作 用 为正 或 为 负 , 都 使 它 向 有 利 于 接 近 给 定 值 的 方 向 调 整 , 即 取 其 值 为 |e(t)-e(t-1)|, 其 符 号与 积 分 项 一 致 。 利 用 这 样 的 算 法 , 可 以 加 快 控 制 的 动 态 过 程 。 (3) PID 增 量 算 法 的 饱 和 作 用 及 其 抑 制 在 PID 增 量 算 法 中 , 由 于 执 行 元 件 本 身 是 机 械 或 物 理 的 积 分 储 存 单 元 , 如 果 给 定值 发 生 突 变 时 , 由 算 法 的 比

11、例 部 分 和 微 分 部 分 计 算 出 的 控 制 增 量 可 能 比 较 大 , 如 果 该 值超 过 了 执 行 元 件 所 允 许 的 最 大 限 度 , 那 么 实 际 上 执 行 的 控 制 增 量 将 时 受 到 限 制 时 的 值 ,多 余 的 部 分 将 丢 失 , 将 使 系 统 的 动 态 过 程 变 长 , 因 此 , 需 要 采 取 一 定 的 措 施 改 善 这 种 情况 。 纠 正 这 种 缺 陷 的 方 法 是 采 用 积 累 补 偿 法 , 当 超 出 执 行 机 构 的 执 行 能 力 时 , 将 其 多 余部 分 积 累 起 来 , 而 一 旦 可 能

12、时 , 再 补 充 执 行 。2) PID 位 置 算 法 离 散 公 式 : ;= 对 于 位 置 式 算 法 , 可 以 选 择 的 功 能 有 : a、 滤 波 : 同 上 为 一 阶 惯 性 滤 波 b、 饱 和 作 用 抑 制 : (1) 遇 限 削 弱 积 分 法一 旦 控 制 变 量 进 入 饱 和 区 , 将 只 执 行 削 弱 积 分 项 的 运 算 而 停 止 进 行 增 大 积 分 项 的 运算 。 具 体 地 说 , 在 计 算 Ui 时 , 将 判 断 上 一 个 时 刻 的 控 制 量 Ui-1 是 否 已 经 超 出 限 制 范围 , 如 果 已 经 超 出 ,

13、那 么 将 根 据 偏 差 的 符 号 , 判 断 系 统 是 否 在 超 调 区 域 , 由 此 决 定 是 否将 相 应 偏 差 计 入 积 分 项 。(2) 积 分 分 离 法在 基 本 PID 控 制 中 , 当 有 较 大 幅 度 的 扰 动 或 大 幅 度 改 变 给 定 值 时 , 由 于 此 时 有较 大 的 偏 差 , 以 及 系 统 有 惯 性 和 滞 后 , 故 在 积 分 项 的 作 用 下 , 往 往 会 产 生 较 大 的 超 调 量和 长 时 间 的 波 动 。 特 别 是 对 于 温 度 、 成 份 等 变 化 缓 慢 的 过 程 , 这 一 现 象 将 更 严

14、 重 。 为 此可 以 采 用 积 分 分 离 措 施 , 即 偏 差 较 大 的 时 , 取 消 积 分 作 用 ; 当 偏 差 较 小 时 才 将 积 分 作 用投 入 。 另 外 积 分 分 离 的 阈 值 应 视 具 体 对 象 和 要 求 而 定 。 若 阈 值 太 大 , 达 不 到 积 分 分 离 的 目的 , 若 太 小 又 有 可 能 因 被 控 量 无 法 跳 出 积 分 分 离 区 , 只 进 行 PD 控 制 , 将 会 出 现 残 差。 离 散 化 公 式 :u(t) = q0e(t) + q1e(t-1) + q2e(t-2) 当 |e(t)| 时 q0 = Kp(

15、1+T/Ti+Td/T) q1 = -Kp(1+2Td/T) q2 = Kp Td /T 当 |e(t)| 时 q0 = Kp(1+Td/T) q1 = -Kp(1+2Td/T) q2 = Kp Td /T u(t) = u(t-1) + u(t) 注 : 各 符 号 含 义 如 下 u(t); 控 制 器 的 输 出 值 。 e(t); 控 制 器 输 入 与 设 定 值 之 间 的 误 差 。 Kp; 比 例 系 数 。 Ti; 积 分 时 间 常 数 。 Td; 微 分 时 间 常 数 。 T; 调 节 周 期 。 ; 积 分 分 离 阈 值 (3) 有 效 偏 差 法当 根 据 PID

16、 位 置 算 法 算 出 的 控 制 量 超 出 限 制 范 围 时 , 控 制 量 实 际 上 只 能 取 边 际 值U=Umax,或 U=Umin,有 效 偏 差 法 是 将 相 应 的 这 一 控 制 量 的 偏 差 值 作 为 有 效 偏 差 值 计 入积 分 累 计 而 不 是 将 实 际 的 偏 差 计 入 积 分 累 计 。 因 为 按 实 际 偏 差 计 算 出 的 控 制 量 并 没 有 执行 。 如 果 实 际 实 现 的 控 制 量 为 U=U( 上 限 值 或 下 限 值 ) , 则 有 效 偏 差 可 以 逆 推 出 , 即:= 然 后 , 由 该 值 计 算 积 分

17、 项 3) 微 分 先 行 PID 算 法 当 控 制 系 统 的 给 定 值 发 生 阶 跃 时 , 微 分 作 用 将 导 致 输 出 值 大 幅 度 变 化 , 这 样 不 利 于生 产 的 稳 定 操 作 。 因 此 在 微 分 项 中 不 考 虑 给 定 值 , 只 对 被 控 量 ( 控 制 器 输 入 值 ) 进 行 微分 。 微 分 先 行 PID 算 法 又 叫 测 量 值 微 分 PID 算 法 。 公 式 如 下 : 离 散 化 公 式 : 参 数 说 明 同 上对 于 纯 滞 后 对 象 的 补 偿 控 制 点 采 用 了 Smith 预 测 器 , 使 控 制 对 象

18、 与 补 偿 环 节 一 起 构 成 一 个 简 单 的 惯 性 环节 。PID 参 数 整 定(1) 比 例 系 数 对 系 统 性 能 的 影 响 : 比 例 系 数 加 大 , 使 系 统 的 动 作 灵 敏 , 速 度 加 快 , 稳 态 误 差 减 小 。 偏 大 , 振 荡 次数 加 多 , 调 节 时 间 加 长 。 太 大 时 , 系 统 会 趋 于 不 稳 定 。 太 小 , 又 会 使 系 统 的 动作 缓 慢 。 可 以 选 负 数 , 这 主 要 是 由 执 行 机 构 、 传 感 器 以 控 制 对 象 的 特 性 决 定 的 。 如果 的 符 号 选 择 不 当 对

19、 象 状 态 (pv 值 )就 会 离 控 制 目 标 的 状 态 (sv 值 )越 来 越 远 , 如 果出 现 这 样 的 情 况 的 符 号 就 一 定 要 取 反 。 (2) 积 分 控 制 对 系 统 性 能 的 影 响 : 积 分 作 用 使 系 统 的 稳 定 性 下 降 , 小 ( 积 分 作 用 强 ) 会 使 系 统 不 稳 定 , 但 能 消 除稳 态 误 差 , 提 高 系 统 的 控 制 精 度 。 (3) 微 分 控 制 对 系 统 性 能 的 影 响 : 微 分 作 用 可 以 改 善 动 态 特 性 , 偏 大 时 , 超 调 量 较 大 , 调 节 时 间 较

20、 短 。 偏 小时 , 超 调 量 也 较 大 , 调 节 时 间 也 较 长 。 只 有 合 适 , 才 能 使 超 调 量 较 小 , 减 短 调 节 时间 。比较典型的 PID算法控制程序源代码比较典型的 PID 处理程序日期:2005-2-1 来源:21ICbbs 作者:lookuper 字体:大中小 /*=这是一个比较典型的 PID 处理程序,在使用单片机作为控制 cpu 时,请稍作简化,具体的PID 参数必须由具体对象通过实验确定。由于单片机的处理速度和 ram 资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,运算到最后再除以一个 2 的 N 次方数据(相当于移位) ,作

21、类似定点数运算,可大大提高运算速度,根据控制精度的不同要求,当精度要求很高时,注意保留移位引起的“余数” ,做好余数补偿。这个程序只是一般常用 pid 算法的基本架构,没有包含输入输出处理部分。=*/#include#include/*=PID FunctionThe PID (比例、积分、微分 ) function is used in mainlycontrol applications. PIDCalc performs one iteration of the PIDalgorithm.While the PID function works, main is just a dummy

22、 program showinga typical usage.=*/typedef struct PID double SetPoint; / 设定目标 Desired valuedouble Proportion; / 比例常数 Proportional Constdouble Integral; / 积分常数 Integral Constdouble Derivative; / 微分常数 Derivative Constdouble LastError; / Error-1double PrevError; / Error-2double SumError; / Sums of Erro

23、rs PID;/*=PID 计算部分=*/double PIDCalc( PID *pp, double NextPoint )double dError,Error;Error = pp-SetPoint - NextPoint; / 偏差pp-SumError += Error; / 积分dError = pp-LastError - pp-PrevError; / 当前微分pp-PrevError = pp-LastError;pp-LastError = Error;return (pp-Proportion * Error / 比例项+ pp-Integral * pp-SumErr

24、or / 积分项+ pp-Derivative * dError / 微分项);/*=Initialize PID Structure=*/void PIDInit (PID *pp)memset ( pp,0,sizeof(PID);/*=Main Program=*double sensor (void) / Dummy Sensor Functionreturn 100.0;void actuator(double rDelta) / Dummy Actuator Functionvoid main(void)PID sPID; / PID Control Structuredouble

25、 rOut; / PID Response (Output)double rIn; / PID Feedback (Input)PIDInit ( / Initialize StructuresPID.Proportion = 0.5; / Set PID CoefficientssPID.Integral = 0.5;sPID.Derivative = 0.0;sPID.SetPoint = 100.0; / Set PID Setpointfor (;) / Mock Up of PID ProcessingrIn = sensor (); / Read InputrOut = PIDCalc ( / Perform PID Interationactuator ( rOut ); / Effect Needed Changes

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报