为 了 实 现 PID 控 制 所 需 要 的 等 间 隔 采 样 , 我 们 使 用 了 一 个 定 时 中 断 , 每 2ms 进 行 一 次 数 据采 样 和 PID 计 算
与 此 并 行 , 系 统 中 还 设 计 了 一 个 转 速 脉 冲 检 测 中 断 , 从 而 实 现 了 转 速 检 测
为 了 调 试 的 需 要 , 程 序 中 还 在main{}函 数 中 加 入 了 相 关 的 调 试 代 码 , 这 部 分 代 码 有 最 低 的 优先 级 , 可 以 在 保 证 不 影 响 控 制 策 略 的 情 况 下 实 现 发 送 调 试 数 据 等 功 能
检 测 环 节 对 整 个 控 制 系统 的 质 量 起 到 至 关 重 要 的 作 用 4
2 PID 控 制 调 整 速 度 本 系 统 采 用 的 是 增 量 式 数 字 PID 控 制 , 通 过 每 一 控 制 周 期 ( 10ms) 读 入 脉 冲 数 间 接 测 得 小车 当 前 转 速vi_FeedBack, 将vi_FeedBack 与 模 糊 推 理 得 到 的 小 车 期 望 速 度 vi_Ref 比 较 , 由以 下 公 式 求得 速 度 偏差error1 与 速 度 偏差率d_error
error1 = vi_Ref– vi_FeedBack; ( 公 式 3) d_error = error1 –vi_PreError; ( 公 式 4) 公 式4 中 , vi_PreError 为 上次 的 速 度 偏差
考虑到 控 制 周 期 较 长, 假设 按2
5m/s 的 平均速度 计 算 , 则一 个 控 制 周 期 小 车 大概可 以 跑过 2
5cm, 如果按这 种周 期 用 上述PID 调 节 速 度 , 则会导致加 速 减速 均过 长的 后果, 严