基于C语言的数字PID控制算法及实现

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(上 接 23页 )
ENDIF 液 位 pv1 = (pv1-1)*25 if 液位 pv1>100 then 液 位 pv1=100 endif 液 位 sv1 =sv1 else q0=0 q1=0 q2=0 op 2=4 endif else endif
参考文献
[1] 俞 金 寿 , 蒋 慰 孙 . 过 程 控 制 工 程 [M]. 北 京 : 电 子 工 业 出 版 社 , 第 1版 ,2007. [2] 齐 卫 红 , 林 春 丽 . 过 程 控 制 系 统 [M]. 北 京 : 电 子 工 业 出 版 社 , 第 1版 ,2007. [3] 刘 金 瑶 . 先 进 PID 控 制 及 其 MAI,LAB 仿 真 仁 [M]. 北 京 : 电 子 工 业 出 版 社 ,2003. [4] 冯 博 琴 . 微 型 计 算 机 原 理 与 接 口 技 术 [M]. 北 京 : 清 华 大 学 出 版 社 ,2006.
大 小 的 预 测 大 大 小 于 实 际 需 要 的 缓 存 容 量 ,这 样 的 差 别 是 由 于 实 际 网 络 业 务 在 多 数 甚 至 全 部 的 时 间 尺 度 内 表 现 出 很 大 的 变 化(长 相 关 性 ), 而 泊 松 或 马 尔 可 夫 模 型 是 无 记 忆 、 短 相 关 的 ,只 在 很 短 的 时 间 范 围 内 表 现 出 突 发 性 ,所 以 用 泊 松 或 马 尔 可 夫 模 型 分 析 得 到 的结果是过于优化的结果。
1 软件设计思想
PID 典 型 的 控 制 算 法 如 下 公 式 所 示 : 其 中 kp 为 比 例 系 数 ; T I 为 积 分 时 间 常 数 ; T D为 微 分 时 间 常 数 ; e ( t ) 为 给 定 值 和 测 量 值 两 者 的 偏差值。 1 t d e(t ) u ( t )= K p [ e ( t )+ T ∫ e(t )dt + T D ] ( 1) 0 dt 1 由 于 计 算 机 控 制 是 一 种 采 样 控 制 系 统 ,它 只 能 根 据 采 样 时 刻 的偏差值计算控制量。 因 此 ,式 中 的 积 分 和 微 分 项 不 能 直 接 使 用, 需要进行离散化处理。 现 令 T为 采 样 周 期 ,以 一 系 列 的 采 样 时 刻 点 k T代 表 连 续 时 间 t , 以 累 加 求 和 近 似 代 替 积 分 , 以 一 阶 后 向 差 分 近 似 代 替 微 分,做 如 下 的 近 似 变 换 : t=kT (2)
e(k ) − e( k − 1) d e ( t )/d( t ) ≈ { e ( k T )- e [( k -l) T ]}/= T T
∫ e(t )dt ≈ T ∑ e( jT ) = T ∑ e( j)
t 0
j =0 j =0
i
i
来自百度文库
(3) (4)
图 1 数 字 PID 控 制 算 法 程 序 流 程 图
基于 C 语言的数字 PID 控制算法及实现
卢亚平 ( 苏州大学应用技术学院 江苏苏州 215325) 摘 要: 目前随着控制理论和电子技术的发展, 数字PID 控制正逐渐取代模拟PID 控制, 并逐步成为现代工业控制器的核心。 本文以单回路 控制器为基础 , 应用 C 语言编程 , 来详细说明其编程思路。 关键词 : 数字 P ID 控制 C 语言 单回路 中图分类号 : T P 1 3 文献标识码: A 文章编号 : 1 67 4 -0 9 8X(2 0 10 )1 0 (c)- 0 0 2 4-0 2

2 软件设计
下 面 程 序 是 以 C 语 言 为 基 础 , 实 现 数 字 PID 控 制 算 法 的 核 心 程 序。 在 这 段 程 序 中 , 程 序 循 环 时 间 为 200ms,set 为 启 动 按 钮 , ei 为 第 i 次 采 样 时 刻 的 偏 差 值 , s v1为 给 定 值 , p v1 为 测 量 值 ,O P2 为 运 算 结 果 输 出。 通 过 k、 t i、 t d三 相 系 数 的 选 择 , 来 选 择 P 调 节 、 PI 调 节 和 PID 调 节 的三种调节模式。 if set=1 then if k=0 and ti=0 and td=0 then q0=0 q1=0 q2=0 endif e i =( sv 1 / 25 0 +1 ) - p v 1 if k<>0 and ti<>0 then q0=k*ei m x =k * 0 . 2 * e i / t i q2=k*td*(pvx-pv1)/0.2 endif if k=0 then q0=0 c b=1 m x =c b * 0 . 2 * e i / t i q 2 =c b * t d * ( p v x - p v 1 ) / 0 . 2 endif if ti=0 then q0=K*ei q1=0
PID 控制器是工业控制应用中常见的回路核心部件。 一般有两 种 , 在 20 世 纪 80 年 代 ,PID 控 制 器 主 要 是 模 拟 PID 控 制 器 , 通 过 硬 件 (主 要 是 电 子 元 件 ,包 括 电 阻 、 电容、 电 感 等 )来 实 现 其 功 能 ,但 是 存 在 器 件 组 成 复 杂,容 易 损 坏 老 化,不 能 灵 活 搭 配 等 问 题 。 随着电子 技 术 的 发 展 , 特 别 是 处 理 器 CPU 的 出 现 , 数 字 PID 控 制 器 得 到 了 飞 速 的 发 展 , 其 与 模 拟 PID 控 制 器 相 比 优 点 是 : 具 有 强 的 灵 活 性 , 可 以 根 据 试 验 和 经 验 在 线 调 整 参 数 ,可 以 更 好 的 控 制 性 能 。 当 然 数 字 PID 控 制 器 的 广 泛 应 用 也 离 不 开 变 送 器 和 执 行 元 件 的 发 展 , 数 字 PID 控 制 器 的 输 入 和 输 出 都 是 以 数 字 来 表 达 的 , 所 以 对 变 送 器 和 执 行 元 件 的 信 号 就 必 须 进 行 A/D,D/A 转 换 。 在转换过 程 中 转 换 的 标 准 是 制 约 数 字 PID 控 制 器 发 展 的 关 键 , 现 在 , 传 感 器 和 执 行 元 件 的 规 格 都 基 本 设 定 为 1-5V 和 4-20mA, 这 就 为 数 字 PID 回路控制器的应用打下了基础。 本 文 以 单 回 路 设 计 为 例 ,C 语 言 为 编 程 语 言 , 来 具 体 说 明 数 字 PID 编 程 方 法 。
其 中 , T 为 采 样 周 期 , 一 般 为 200ms, e ( k ) 为 系 统 第 k 次 采 样 时 刻 的 偏 差 值 , e ( k -l) 为 系 统 第 ( k -l) 次 采 样 时 刻 的 偏 差 值 , i 为 采 样 序 号 , i =0,1,2, … 。 将 上 面 的 (3) 式 和 (4) 式 代 入 (1) 式 , 则 可 以 得 到 离 散 的 PID 表 达 式 i T e( j ) + TD [ e ( k )- e ( k -1)]} u ( i )= K p { e ( i )+ T (5) T 1 j =0 如 果 采 样 周 期 T 足 够 小 (200ms), 该 算 式 可 以 很 好 的 逼 近 模 拟 PID 算式 , 因 而 使 被 控 过 程 与 连 续 控 制 过 程 十 分 接 近 。 通 常 把 (5) 式 称 为 PID 的 位 置 式 控 制 算 法 。 若 把 (5) 式 进 行 转 化 , 则 : 0.2 td u ( i )= k * e +k* e +k* (p v x -p v 1 ) (6 ) 0 .2 i ti i 式 (6) 即 为 数 字 PID 控 制 算 法 的 编 程 表 达 式 ,p vx 为 第 ( i -1) 次 测 量 值 ,p v1 为 第 i 次 测 量 值 。 其 程 序 流 程 图 如 图 1所 示 。 其 中 给 定 转 换 s v1 /25+1 是 要 把 设 定 值 数 模 转 化 , 比 如 要 求 给 定 液 位 100CM, 则 通 过 转 换 100/25+1=5, 代 表 的 是 最 高 液 位 所 测 量 的 电 压 为 5V 。 而 对 于 数 模 转 化 (O P1 +25)/ 6 .2 5 是 要 把 输 出 转 化 为 电 流 大 小 , 假 如 输 出 O P1 为 1 0 0% , 那 么 (100+25)/6.25=20, 代 表 输 出 为 最 大 电 流 20MA 。 对 于 输 入 输 出 量 ,要 注 意 内 部 的 数 模 /模 数 转 换 关 系 :经 过 变 送 器 输 出 (1 ~ 5v) 模 拟 量 , 送 入 A/D 模 块 转 化 为 (0 ~ 250) 数 字 量 , 数 字 量 要 与 给 定 量 进 行 比 较 , 就 必 须 要 数 模 转 化 , 把 0 ~ 250 十 进 制 数 转 换 为 1.00 ~ 5.00V, 数 据 处 理 公 式 参 考 下 面 程 序 。 反 之 ,同 样 可 把 (4 ~ 20mA) 进 行 模 数 转 化 , 得 出 0 ~ 250 十 进 制 数 , 再 经 过 D/A 模 块 , 把模拟量送给执行元件。 ( 图 1)
NR t on ≤X + C t on NR t on ≤CT
(3-1)
上 式 的 意 思 就 是 在 进 行 网 络 设 计 时 ,既 要 保 证 每 周 期 的 激 活 状 态 时 间 ton 内 , 系 统 能 容 纳 所 产 生 的 所 有 信 元 , 又 要 保 证 在 一 个 周 期 (T) 内 输 出 链 路 能 传 递 所 有 本 周 期 产 生 的 信 元 。 下面我们给出了悲观情况下信元丢失的稳态概率 Pcellloss 随业 务 源 数 N 变 化 的 关 系 图 , 图 中 是 居 于 如 下 假 设 在 matlab7.0 中 绘 出 的 : 假 定 R=20Mbps,C=1000Mbps,X=500Mbps,ton=toff=1, 业 务 源 数 N 从 1 到 500 结 束 以 5 为 步 长 的 标 量 。 从 图 5中 可 以 看 出 业 务 源 数 N小 于 某 一 临 界 值 时 ,理 论 丢 包 率 为零 , 当超过这一临界值时信元丢失的稳态概率 Pcellloss 随业务源 数 N的 增 加 而 变 大 ,这 就 应 证 了 前 面 所 讨 论 的 网 络 设 计 时 必 须 考 虑 到 队 列 容 量 X和 输 出 链 路 容 量 C满 足 : NR t on≤ X + C t on NR t on ≤CT (3-2)
参考文献
[1] 曹 书 生 , 等 . 网 络 业 务 流 模 型 综 述 [J]. 江 苏 通 信 技 术 ,2003,(05) [2] 刘 建 辉 , 等 . 基 于 离 散 MMDP 信 源 模 型 的 ATM 网 络 排 队 性 能 仿 真 [J]. 计 算 机 仿 真 . [3] 杨 敏 维 .ATM 突 发 模 型 MMDP 的 信 元 丢 失 率 估 计 [J]. 湖 南 大 学 学 报 ,1999,(02). [4] 陈 文 云 , 等 . 基 于 ON/OFF 信 源 模 型 的 信 元 丢 失 分 析 [J]. 数 字 通 信 ,2 000, (01 ). [5] 程 伟 明 . 基 于 ATM 网 络 的 多 媒 体 通 信 [J]. 现 代 电 信 科 技 ,1998, (07 ). [6] 过 莉 .ATM 网 络 实 时 通 信 系 统 的 响 应 时 间 分 析 [J]. 电 机 电 器 技 术 , 2 00 3 , ( 06 ) . [7] 张 如 娟 . 基 于 ATM 技 术 的 多 协 议 信 息 传 送 及 应 用 [J]. 甘肃科技 , 2001,(03). [8] A bdelnaser Adas.Traffic Models in Broadband Networks[J]. IEEE communications Magazine. July 1997.
m x =0 q2=k*td*(pvx-pv1)/0.2 endif IF MX>5 THEN MX =5 ENDIF I F MX <- 5 T HE N MX=-5 ENDIF if (sv1/250+1)>=pv1 then if op1>=100 then q1 =q 1 else q1=q1+mx endif else if op1<=0 then q1 =q 1 else q1=q1+mx endif endif if pv1=0 then pv1=pvx endif pvx=pv1 op1=Q0+Q1+Q2 OP2=(OP1+25)/6.25 IF OP2<4 THEN OP 2=4 endif if op2>20 then op2=20
相关文档
最新文档