PID 算法 (温控为例子)

这篇具有很好参考价值的文章主要介绍了PID 算法 (温控为例子)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一:位式控制:

位式控制算法输出信号一般只有高低两种状态。

算法输出信号out的依据 PV < SP => H; PV >= SP => L

对于系统惯性,会导致系统震荡

  1. PID算法 (基于位式控制,做了很多优化)

pid算法控制温度,算法

SP: Set Point

PV: Process Value

  1. PID算法分析:

采样的温度系列: X, X, X, ......, X, X, X

1). 当前偏差: E = SP - X 

      >0: 当前未达标; =0; 正好达标; <0: 当前超标

P= K * E + Out  ---比例控制 (只考虑现在偏差,偏差越大,输出PWM越大)

因为如果 E 为0表述没有PWM输出了,为了维持系统温度, 需要有一个维持的默认常数输出值Out这样可以保证系统能温度在目标温度SP (根据不同系统,调试得到具体值。) 

 2). 历史的偏差系列: E, E, E, ......, E, E, E

S =  E+ E + E+ ...... + E + E + E

    >0: 表示过去这段时间,大多数情况下未达标; =0: 总体可以; <0: 表示过去这段时间,大多数情况下超标;

I =  K * S + Out  ---积分算法控制(只考虑历史偏差,缺点很大)

因为如果 E 为0表述没有PWM输出了,为了维持系统温度, 需要有一个维持的默认常数输出值Out这样可以保证系统能温度在目标温度SP (根据不同系统,调试得到具体值。)

 3). 最近两次的偏差相减: 

 D = E -  E ---偏差变化率,变化趋势

D = K * D + Out  ---微分算法控制(只考最近两次的变化率,预测下一次的走势(可以适当通过系数增大变化率,这样可以提前控制未来的变化))

 >0: 表示偏差有增大趋势; =0: 表示偏差趋势没有改变; <0: 表示偏差有减小趋势;

因为如果 E 为0表述没有PWM输出了,为了维持系统温度, 需要有一个维持的默认常数输出值Out这样可以保证系统能温度在目标温度SP (根据不同系统,调试得到具体值。)

二:PID算法的数学模型: 

PID =  P + I + D 

            =  (K * E + Out) + (K * S + Out) + (K * D + Out)

            =  K * ( E +  S +  D) + Out 

 S 的处理:

 S  =  * E * T

T: 采样周期(PID计算周期)

T : 积分常数(积分时间)越大影响越弱 (不能太大也不能太小)

 第一次达到目标温度SP之前,会产生错误,导致超调,过冲。为了避免超调, 可以做积分分离处理,可以在第一次达到目标温度SP之前,可以设置T为一个很大的值,把  S 忽略掉。

 积分项一般是在积分项在比例项失效时再起作用,用历史经验继续来控制。

两个关键因素的选择:T 和 T 

 D 的处理: 

  D = T * (( E -  E ) / T)

T: 微分常数 

三:位置式PID 算法表达式:

OUT = (K * E) + (K * T/T * E)  + ( K * T/T *  ( E -  E )) + OUT 

四: K K 和 K的关系:

 K 

 K = K * T/T 

 K = K * T/T

五:增量式PID (输出是一个增量,计算出控制量的增加值):

 = OUT - OUT

 OUT = (K * E) + (K * T/T * E)  + ( K * T/T *  ( E -  E )) + Out 

  OUT = (K * E) + (K * T/T * E)  + ( K * T/T *  ( E -  E )) + Out 

  =  (K * ( E - E))  +  K *  T/T *  E + K * T/T * (  E -  2 * E + E)

  E : 当前本次偏差值

  E :上次偏差值

  E :上上次偏差值文章来源地址https://www.toymoban.com/news/detail-647732.html

到了这里,关于PID 算法 (温控为例子)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【物联网】C语言实现PID算法:原理、例子和代码详解

    PID(Proportional-Integral-Derivative)是一种常用的控制算法,广泛应用于工业控制系统中。本文将详细介绍PID算法的原理,并给出一个具体的例子和相应的C语言代码实现。 PID算法通过不断调整输出值,使得系统的实际值逐渐接近期望值。它由三个部分组成: 比例(P)、积分(

    2024年02月12日
    浏览(41)
  • 【GUI】使用PID控制器进行台式过程控制实验,以保持热敏电阻的温度(Matlab代码实现)

    目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、操作说明 本实验是温度控制的反馈控制应用。特别是,本实验讲解: 手动和自动控制的区别 生成动态数据的 步进测试 拟合动态数据以构建简单的一阶加死区时间 (FOPDT) 模型 从标准调整规则 获取 PID 控制的 参数

    2024年02月15日
    浏览(48)
  • PI控制算法与PID控制算法

    PI(Proportional-Integral)控制算法 是一种常用的闭环控制策略,用于实现对系统的误差调节。PI控制器结合了比例控制(Proportional,P)和积分控制(Integral,I)两种控制方式。比例控制通过比例增益(Kp)将误差直接转换为控制输出,而积分控制通过积分增益(Ki)对误差进行积

    2024年02月14日
    浏览(38)
  • 自适应PID算法学习(01)——单神经元PID控制

      单神经元含有n个输入,仅1个输出,每个输入端可记作 x i ( i = 1 , 2 , . . . n ) x_i (i=1,2,...n) x i ​ ( i = 1 , 2 , ... n ) ,若该神经元为多元组成网络中某一层(输入层/输出层/隐含层)其中的一个单元,记该神经元输出为 o j ( j = 1 , 2 , . . . ) o_j(j=1,2,...) o j ​ ( j = 1 , 2 , ... ) ;不

    2024年02月16日
    浏览(43)
  • PID控制算法详解

    PID 即 Proportional(比例),Integral(积分),Differential(微分)的英文缩写。顾名思义,PID 控制算法是结合比例,积分和微分三种环节于一体的自动控制算法,它是连续系统中技术最为成熟,应用最为广泛的一种控制算法,该控制算法出现于 20 世纪 30 至 40 年代,适用于对被

    2024年02月02日
    浏览(64)
  • 【PID控制原理及其算法】

    本文以自己的学习过程总结而来,将自己的经验写出来以供大家一起学习,如有错误请多指教 PID就是比例、积分、微分,PID算法可以说是在自动控制原理中比较经典的一套算法,在现实生活中应用比较广泛。 常规的模拟 PID 控制系统原理框图如下图所示: 那么使用PID的目的

    2023年04月24日
    浏览(30)
  • [控制原理基础]浅谈PID算法

    一、PID使用背景 当今的自动控制技术都是基于反馈的概念。即一个In Loop闭环的理论,反馈理论的要素包括三个部分:测量、比较和执行。测量关心的变量,与期望值相比较,用这个误差纠正调节控制系统的响应。 PID(Proportion Intergration Differentiation)算法是比例微分积分控制的

    2024年02月10日
    浏览(38)
  • 电赛控制类PID算法实现

    一、什么是PID 学过自动控制原理的对PID并不陌生,PID控制是对偏差信号e(t)进行比例、积分和微分运算变换后形成的一种控制规律。PID 算法的一般形式: PID控制系统原理框图 二、PID离散化 对PID连续系统离散化,从而方便在处理器上实现,PID 离散表示形式: 离散化后最终得

    2024年02月06日
    浏览(31)
  • PID控制算法代码,供大家参考

    分享一个C语言PID控制器代码: 【最后一个bug】多平台都有更新和发布,大家可以一键三连,关注+星标,不错过精彩内容~~

    2024年02月16日
    浏览(41)
  • FPGA实现PID控制算法(含仿真)

    相信大家对于PID控制算法,都不感到陌生了,平衡车就是靠它平衡起来的,还有飞控的平衡算法也是它,以及FOC中的闭环控制中也是用的它,它不仅简单,而且易于理解。那么本篇文章将简要介绍一下算法的原理,然后带大家使用FPGA来实现(C语言实现过程特别简单)。 PID取自

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包