首页 > 编程语言 >PID 控制算法

PID 控制算法

时间:2024-02-28 15:46:32浏览次数:23  
标签:tau frac cdot 控制算法 PID 增益

PID 控制算法

PID 是一种用于调节系统的反馈控制方法,简单有效广泛用于数据控制,其名称代表三个主要的控制参数:比例(Proportional)、积分(Integral)、和微分(Derivative)。

例如往水缸加一米深的水,我加水的速度应当由以下三点决定:

  • 当前水深距离目标的差距。差距越大应当加水越快(P)
  • 如果水缸漏水导致水位无法上升,应当加快加水(I)
  • 到一米深附近时,速度进行合适调整(D)

这三个参数以不同的方式影响控制器的输出,以便使系统的反馈信号尽可能接近期望值。

公式与说明

控制器的输出可以表示为以下公式:

\[u(t) = K_p \cdot e(t) + K_i \cdot \int_{0}^{t} e(\tau) \, d\tau + K_d \cdot \frac{de(t)}{dt} \]

其中:

  • \(e(t)\) 是误差信号,表示期望值与实际值之间的差异
  • \(K_p\) \(K_i\) \(K_d\) 分别是是 比例增益、积分增益、微分增益

可见,\(u(t)\) 由三个部分控制着。

在实际使用中,会用到公式的离散形式:

\[u(t) = K_p \cdot e(k) + K_i \cdot \frac{1}{\Delta T}\sum^k_{n=0}e(\tau) + K_d \cdot \frac{1}{\Delta T}(e(k)-e(k-1)) \]

在真正的工程实践中,最难的是如何确定三个项的系数。

参考来源

标签:tau,frac,cdot,控制算法,PID,增益
From: https://www.cnblogs.com/chirp/p/18040637

相关文章

  • /proc/pid/mountinfo /proc/self/mountinfo
    该文件包含有关进程的挂载名称空间中的挂载的信息(参见mount_namespaces(7))。它提供了各种信息(例如,传播状态、绑定挂载的挂载根、每个挂载及其父挂载的标识符),这些信息在(旧的)/proc/pid/挂载文件中是没有的(例如,不可扩展性、无法区分每个挂载和每个超级块选项)。 (4)root:......
  • 故事+动图,让PID知识通俗易懂!
    第一部分  啥是PID?PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。PID已经有107年的历史了。它并不是什么很神圣的东西,大家一定都见过PID的实际应用。比如四轴飞行器,再比如平衡小车......还有汽车的定速巡航、3D打印机上的温度控制器......
  • PID多环处理,例如速度位置环
    例如typedefstruct{floatKp,Ki,Kd;floatintegral_term;floatlast_error;floatpwm_output;}PID_Controller;voidinit_PID(PID_Controller*pid,floatkp,floatki,floatkd){pid->Kp=kp;pid->Ki=ki;pid->Kd=......
  • PID 控制 |(搬运)教程与 python 代码
    因为完全没有自动化和控制基础,所以找了很多博客都没看懂;干货|通俗易懂讲解PID,这是看的最懂的一篇()PID控制的python代码:[TBC]或许可以直接调用的python包:https://github.com/m-lundberg/simple-pid......
  • TCP拥塞控制算法初步介绍
    TCP拥塞控制算法初步介绍写得较为浅显,若有错误的地方还请指正.一、TCP拥塞控制:让发送方自己感知网络的拥塞程度并限制其能向链接发送流量的速率.限制方法:设置LastByteSent-LastByteAcked<=min{cwnd,rwnd}即已发送而未被确认的流量小于等于两个窗口长其中,cwnd......
  • 微信支付普通商户与AppID账号关联管理-授权
     微信支付普通商户与AppID账号关联管理二、名词解释名词释义微信支付普通商户公司企业、政府机关、事业单位、社会组织、个体工商户、个人卖家、小微商户。(微信支付商户接入指引)AppID已通过微信认证的服务号,订阅号*[1],小程序,企业微信*[2],移动应用*[3]......
  • 如何通过APPID查询微信小程序,看看那些appid都是谁
    通过统计看到一些跳转来源的appid,有时候很想知道这些appid都是谁,做到心里有数,但现在appid反查小程序的信息,官方没有开放的接口。目前大多数的方案是:通过自己做一个小程序页面,在这个页面去调用这个appid,微信小程序会提示是否打开“xxx”小程序,在这里可以看到。在公众号去绑......
  • pid文件未生成:mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql.pid en
    问题/usr/local/mysql/bin/mysqld_safe--defaults-file=/usr/local/mysql/conf/my.cnf--user=mysql该命令启动mysql时,未启动成功,终端输出下列报错:2024-02-03T02:56:51.449040Zmysqld_safeLoggingto'/usr/local/mysql/mysqllog/logfile/mysql-err.log'.2024-02-03T02:......
  • mac 下 Can't attach to the process. Could be caused by an incorrect pid or lack
    问题报错如下ERROR:attach:task_for_pid(4060)failed:'(os/kern)failure'(5)Errorattachingtoprocess:Can'tattachtotheprocess.Couldbecausedbyanincorrectpidorlackofprivileges.sun.jvm.hotspot.debugger.DebuggerException:Can&#......
  • CentOS启动nginx出现nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: N
    问题:1.进入sbin:cd/usr/local/nginx/sbin/2.启动nginx:./nginx3.出现问题:nginx:[emerg]open()"/var/run/nginx/nginx.pid"failed(2:Nosuchfileordirectory) 原因:没有nginx文件夹,且其下没有nginx.pid文件。 解决办法:创建文件1.进入run下:cd/var/run2.创建nginx......