当前位置: 首页 > news >正文

【沧海拾昧】微分先行PID与中间微分反馈控制

#C0404


沧海茫茫千钟粟,且拾吾昧一微尘

——《沧海拾昧集》@CuPhoenix


【阅前敬告】
沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系
【如有问题必是本集记录有谬,切勿深究】

目录

  • 前言
  • 一、微分先行PID算法
    • 1、基本概念
    • 2、仿真框图
    • 3、离散公式
  • 二、中间微分反馈算法
    • 1、基本概念
    • 2、仿真框图
    • 3、离散公式
  • 三、参考文献


前言

    微分先行 PID 算法和 中间微分反馈 算法是两种针对纯时延过程进行补偿的常规控制方案,但目前许多互联网资料中将两种方法进行了混淆。事实上,两种控制方法的结构与效果是存在一定差异的。

    本文将简要介绍两种控制方法的基本结构,并给出相应推导的位置式公式和增量式公式。

本文用到的软件环境是:

  • MATLAB R2019b

一、微分先行PID算法

1、基本概念

    微分先行控制方案与传统 PID 控制方案相比,对于减小超调量有更显著的表现,这是因为虽然二者的特征方程完全相同,但微分先行控制方案的闭环传递函数比 PID 控制方案少一个零点。
在这里插入图片描述

PI + D 系统框图 和 微分先行控制方案系统框图


    可以看出,这种传统的 PID 控制方案中的微分环节的输入是对偏差做了比例积分运算后的值,不能真正的直接对被控参数的变化速度进行校正,因此克服动态超调的作用是有限的。但如果将微分环节直接作用于反馈通道中,就可以较大程度的增加微分作用克服超调的能力,也就是所谓的微分先行控制。

    必须指出的是,微分先行控制方案中,微分环节的输出信号包括了 被控参数,以及 被控参数的变化速度,并将其作为测量值输入比例积分调节器中。目前许多资料中所给出的将被控参数的变化速度直接与 PI 调节器的输出值相减实际上是中间微分控制方案,而不是微分先行控制方案。

2、仿真框图

在这里插入图片描述

微分先行控制方案仿真框图

3、离散公式

  • 位置式离散公式

    按照框图,微分先行控制方案离散形式公式为:
out(t)=Kp⋅E(k)+Ki⋅T⋅∑j=0kE(j)out(t)=K_p\cdot E(k)+K_i\cdot T \cdot\sum^k_{j=0}E(j) out(t)=KpE(k)+KiTj=0kE(j)
其中 E(k)=r(x)−c(x)−ddtc(x)=e(k)−Kd⋅c(k)−c(k−1)TE(k)=r(x)-c(x)-\dfrac{d}{dt}c(x)=e(k)-K_d\cdot\dfrac{c(k)-c(k-1)}{T}E(k)=r(x)c(x)dtdc(x)=e(k)KdTc(k)c(k1)

  • 增量式离散公式

    由位置式离散公式有:
out(k)=Kp⋅E(k)+Ki⋅T⋅∑j=0kE(j)out(k−1)=Kp⋅E(k−1)+Ki⋅T⋅∑j=0k−1E(j)out(k)=K_p\cdot E(k)+K_i\cdot T \cdot\sum^k_{j=0}E(j) \\ out(k-1)=K_p\cdot E(k-1)+K_i\cdot T \cdot\sum^{k-1}_{j=0}E(j) out(k)=KpE(k)+KiTj=0kE(j)out(k1)=KpE(k1)+KiTj=0k1E(j)

两式相减,即为:
Δout=Kp⋅[E(k)−E(k−1)]+Ki⋅T⋅E(k)\Delta out=K_p\cdot[E(k)-E(k-1)]+K_i\cdot T\cdot E(k) Δout=Kp[E(k)E(k1)]+KiTE(k)

E(k)=e(k)−Kd⋅c(k)−c(k−1)TE(k)=e(k)-K_d\cdot\dfrac{c(k)-c(k-1)}{T}E(k)=e(k)KdTc(k)c(k1)E(k−1)=e(k−1)−Kd⋅c(k−1)−c(k−2)TE(k-1)=e(k-1)-K_d\cdot\dfrac{c(k-1)-c(k-2)}{T}E(k1)=e(k1)KdTc(k1)c(k2) 代入上式,即得:

Δout=Kp⋅[e(k)−Kd⋅c(k)−c(k−1)T−e(k−1)+Kd⋅c(k−1)−c(k−2)T]+Ki⋅T⋅[e(k)−Kd⋅c(k)−c(k−1)T]\Delta out=K_p\cdot[e(k)-K_d\cdot\frac{c(k)-c(k-1)}{T}-e(k-1)+K_d\cdot\frac{c(k-1)-c(k-2)}{T}]+K_i\cdot T\cdot [e(k)-K_d\cdot\frac{c(k)-c(k-1)}{T}] Δout=Kp[e(k)KdTc(k)c(k1)e(k1)+KdTc(k1)c(k2)]+KiT[e(k)KdTc(k)c(k1)]

化简后有:

Δout=Kp⋅[e(k−1)−e(k)]−Kp⋅KdT[c(k)−2c(k−1)+c(k−2)]+Ki⋅T⋅e(k)−Ki⋅Kd[c(k)−c(k−1)]\Delta out=K_p\cdot[e(k-1)-e(k)]-\frac{K_p\cdot K_d}{T}[c(k)-2c(k-1)+c(k-2)]+K_i\cdot T\cdot e(k)-K_i\cdot K_d[c(k)-c(k-1)] Δout=Kp[e(k1)e(k)]TKpKd[c(k)2c(k1)+c(k2)]+KiTe(k)KiKd[c(k)c(k1)]

二、中间微分反馈算法

1、基本概念

在这里插入图片描述

中间微分反馈控制方案系统框图


    与微分先行方案的思想类似,中间微分反馈方法也是将微分环节移出,以增强对动态超调的克服作用。由图可见,在中间微分反馈方案中,微分作用是 独立 的,能在被控参数变化时及时根据其变化大小起附加校正的作用,其微分校正作用 与 PI 调节器的输出信号无关,且只在动态时其作用。

    中间微分反馈控制方案的零点与原 PI 控制器的零点相同,但主导极点相比原 PI 控制方案离 jωj\omega 轴较远,因此衰减较快,过渡过程时间较短。

2、仿真框图

在这里插入图片描述

中间微分反馈控制方案仿真框图

3、离散公式

  • 位置式离散公式

    按照框图,中间微分反馈方案连续形式公式为:
out(t)=Kp⋅e(t)+Ki⋅∫0te(t)dt−Kd⋅ddtc(t)out(t)=K_p\cdot e(t)+K_i\cdot\int^t_0e(t)dt-K_d\cdot\frac{d}{dt}c(t) out(t)=Kpe(t)+Ki0te(t)dtKddtdc(t)

离散化后为:
out(k)=Kp⋅e(k)+Ki⋅T⋅∑j=0ke(j)−Kd⋅c(k)−c(k−1)Tout(k)=K_p\cdot e(k)+K_i\cdot T \cdot\sum^k_{j=0}e(j)-K_d\cdot\frac{c(k)-c(k-1)}{T} out(k)=Kpe(k)+KiTj=0ke(j)KdTc(k)c(k1)
其中 e(k)=r(k)−c(k)e(k)=r(k)-c(k)e(k)=r(k)c(k);

  • 增量式离散公式

    由位置式离散公式有:
out(k)=Kp⋅e(k)+Ki⋅T⋅∑j=0ke(j)−Kd⋅c(k)−c(k−1)Tout(k−1)=Kp⋅e(k−1)+Ki⋅T⋅∑j=0k−1e(j)−Kd⋅c(k−1)−c(k−2)Tout(k)=K_p\cdot e(k)+K_i\cdot T \cdot\sum^k_{j=0}e(j)-K_d\cdot\frac{c(k)-c(k-1)}{T} \\ out(k-1)=K_p\cdot e(k-1)+K_i\cdot T \cdot\sum^{k-1}_{j=0}e(j)-K_d\cdot\frac{c(k-1)-c(k-2)}{T} out(k)=Kpe(k)+KiTj=0ke(j)KdTc(k)c(k1)out(k1)=Kpe(k1)+KiTj=0k1e(j)KdTc(k1)c(k2)

两式相减,即为:
Δout=Kp⋅[e(k)−e(k−1)]+Ki⋅T⋅e(k)−KdT⋅[c(k)−2c(k−1)+c(k−2)]\Delta out=K_p\cdot[e(k)-e(k-1)]+K_i\cdot T\cdot e(k)-\frac{K_d}{T}\cdot[c(k)-2c(k-1)+c(k-2)] Δout=Kp[e(k)e(k1)]+KiTe(k)TKd[c(k)2c(k1)+c(k2)]

三、参考文献

  • 邵裕森.过程控制及仪表[M].上海交通大学出版社:199508.232-235.

敬谢诸君。


http://www.dtcms.com/a/290894.html

相关文章:

  • 工业网关的应用场景
  • 【正常配置了beast扩展,phpinfo信息也显示了,但是就是不运行】
  • 前端-DOM
  • pandas 的series和dataframe的用法,六个题目
  • 141、环形链表
  • 前后端分离项目进阶1---后端
  • 果园里的温柔之手:Deepoc具身智能如何重塑采摘机器人的“生命感知”
  • Python day20 - 特征降维之奇异值分解
  • 【设计模式C#】工厂方法模式(相比简单工厂模式更加具有灵活性和扩展性的工厂模式)
  • git_guide
  • prometheus主动服务发现机制
  • 在 React 中实现全局防复制hooks
  • Java 解析前端上传 ZIP 压缩包内 Excel 文件的完整实现方案
  • Neo4j 5.x版本的导出与导入数据库
  • 易语言+懒人精灵/按键中控群控教程(手机、主板机、模拟器通用)
  • CFD总压边界条件的理解与开发处理
  • DM8数据库Docker镜像部署最佳实践
  • 自学鸿蒙测试day01-插件安装推荐
  • Vue 3 响应式原理详细解读【一】—— Proxy 如何突破 defineProperty 的局限
  • 计算机发展史:晶体管时代的技术飞跃
  • Boost库智能指针boost::shared_ptr详解和常用场景使用错误示例以及解决方法
  • 软件测试 —— A / 入门
  • 数据结构 之 【排序】(直接插入排序、希尔排序)
  • 基于 Nginx 搭建 OpenLab 多场景 Web 网站:从基础配置到 HTTPS 加密全流程
  • Nginx IP授权页面实现步骤
  • Grok网站的后端语言是php和Python2.7
  • Python 变量赋值与切片语法(in-place 修改 vs 重新赋值)
  • 《画布角色的双重灵魂:解析Canvas小游戏中动画与碰撞的共生逻辑》
  • 状压DP学习笔记[浅谈]
  • 计算机网络:概述层---计算机网络的性能指标