仅供参考,时间过久,不再修改
用PID好多次了,用来做过智能车,用来做过四轴.PID不难理解,不难应用,网上也有许多介绍PID的帖子文章什么的,有介绍原理公式的,有讲怎么调节的,资料特别多,我就不写那些陈腔滥调了,我写点感觉网上大多数的帖子没涉及到的或是没有着重指出的,初学者容易忽略,但又挺重要的地方.

一.区别PID公式和调节口诀

常用的是位置式和增量式公式分别如下:
位置式连续

位置式离散

注意此时Kp=Kp, Ki=KpT/Ti, Kd=KpTd/T
增量式

Kp,Ki,Kd和上式含义一致
以及PID调节口诀

参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢。微分时间应加长
理想曲线两个波,前高后低4比1
一看二调多分析,调节质量不会低

我觉得需要注意的地方是这个调节口诀它只适用与连续位置式PID公式,也就是第一个公式,首先 比例度盘=1/Kp, 积分时间=Ti, 微分时间=Td,但我们平时不会去用连续式的公式啊,所以在用PID调节口诀的时候注意它里面说的各个参数是什么意思,如果将对应离散PID的公式代入这个口诀那么这个口诀应该是这样的:

参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大(Kp减小)
曲线漂浮绕大湾,比例度盘往小扳(Kp增大)
曲线偏离回复慢,积分时间往下降(Ki增大)
曲线波动周期长,积分时间再加长(Ki减小)
曲线振荡频率快,先把微分降下来(Kd增大)
动差大来波动慢。微分时间应加长(Kd减小)
理想曲线两个波,前高后低4比1
一看二调多分析,调节质量不会低

这么一看,就感觉Em…挺对的是不是,哈哈,就可以应用在离散公式里了.

二.控制PID的执行周期(T)

虽然在离散化的公式里这个地方这个参数隐藏了,但注意它只是被隐藏了,但还是还会发生作用,看一下离散位置PID公式里那几个参数的公式,是不是它会影响参数的大小啊.
所以在应用第二个第三个PID公式时执行周期一定是要确定的,不能变更的,一T变更那么参数就得跟着变了,注意是T变了,参数就得相应的去变化,而不是一直不变,但如果此时你的参数维持不变的话,显然这组参数已经不是当前的最优参数了.
举个例子,有一个取样周期为1的PID和一个取样周期为10的PID控制同一个的执行元件,若此时参数还采取一样,它的控制效果显而易见是不会一样的.所以要控制执行周期,最好能将Ki=KpT/Ti, Kd=KpTd/T,这个公式直接应用,公式变为:
u(k)=Kpe(t)+KpTTi∑n=0Ke(n)+KpTdT(e(k)−e(k−1))u(k)=K_pe(t)+\frac{K_pT}{T_i}\sum_{n=0}^{K}e(n)+\frac{K_pT_d}{T}(e(k)-e(k-1))u(k)=Kp​e(t)+Ti​Kp​T​n=0∑K​e(n)+TKp​Td​​(e(k)−e(k−1))

我推荐用这个公式,在控制好T,或者获取T的实际值,代入,调节Ti和Td.许多开源四轴的控制一般是用这个公式的.

三.积分环节的限幅

我不推荐做智能车啥的用增量式PID,说是简化了运算,但现在的单片机啥的运算能力和频率都挺强的,又不是51那个时代了,所以减那一点实在没什么作用.此外用增量式PID,不好去做积分限幅的,只能对每次的输出做限制,但对积分的限幅没什么作用.
有时候当误差量e(k)比较大,而e(k)-e(k-1)要小的多的时候,系统有较大的迟滞的时候(感觉是)要防止积分的饱和.就是当系统的输出一直摇摆,不会收敛,而且摇摆的频率比较缓慢,那么我感觉可能是饱和,得限制下积分了.也就是

这个环节的累积值大小做限幅.
我感觉用的时候可以最后加积分环节,看一下系统的稳态误差,如果没稳态误差,我就直接不加了,如果有的话,那么看一下稳态误差的大小在什么范围,积分限幅也就大致限制在那个范围了.

四.微分环节的滤波

当系统容易收到高频信号的干扰时,微分作用会将高频信号的扰动放大(自控课本上说的),高频信号变化的较快,而微分是去求误差的变化率,所以有高频扰动信号,就会被微分作用给放大,建议对微分环节做低通滤波,通常是一阶低通滤波,讲低通滤波的帖子文章挺多的,我就不写了.

五.关于各种自适应PID

包括什么神经网络PID,模糊PID,遗传算法优化PID等等,本质上都是对参数的统计和优化,但通常这些算法运算量时挺大的,写肯定可以写出来,但这个在一些嵌入式设备上运行的效率速度不是很好,会占很大的运行速度,而且要搞清楚各种自适应PID的使用范围,比如模糊PID适用于过程控制,控制个温度什么的,它不适合用来做运动控制,控制电机什么的,因为计算量较大,在单片机上还有可能会参数迟滞什么的.做个智能车类的小东西,还是用不上这些方法的,单纯PID就够了,论文里的一些自适应PID方法,不一定都是经过实际检验的,可能只是在MATLAB里做了个仿真.所以我感觉不能全信.

PID应用时要注意的一些点相关推荐

  1. 启动多个pid_西门子S7-300PLC实现PID控制

    1.可以在软件中进行自动整定: 2.自动整定的PID参数可能对于系统来说不是最好的,就需要手动凭经验来进行整定.P参数过小,达到动态平衡的时间就会太长:P参数过大,就容易产生超调. PID功能块在梯形 ...

  2. 如何在bash中等待多个子进程完成并在任何子进程以代码!= 0结尾时返回退出代码!= 0?

    如何在bash脚本中等待从该脚本派生的多个子进程完成并返回退出代码!= 0,当任何子进程以代码!= 0结尾时? 简单脚本: #!/bin/bash for i in `seq 0 9`; dodoCa ...

  3. 位置式PID与增量式PID的介绍和代码实现

    PID分为位置式PID与增量式PID. 一.位置式PID 1.表达式为: 2.缺点: 1).由于全量输出,所以每次输出均与过去状态有关,计算时要对ek进行累加,工作量大: 2).因为计算机输出的uk对 ...

  4. 研究优雅停机时的一点思考

    作者:徐靖峰 来源:Kirito的技术分享 开头先废话几句,有段时间没有更新博客了,除了公司项目比较忙之外,还有个原因就是开始思考如何更好地写作. 远的来说,我从大一便开始在 CSDN 上写博客,回头 ...

  5. fork()与pid

    写在前面:最近学到Linux的进程间通信,发现以前学的进程有点忘了,就找了一些博客来看,这篇博客讲的挺简单易懂的,就搬运来当笔记了,原文也是转载的找不到出处,有知道的可以告诉我,我再加上. fork调 ...

  6. 各种PID算法的整理和总结

    位置式PID 位置式PID是将每次误差进行累加作为积分,运算量较大,且每次输出均与过去的状态有关. 缺点为可能引起大幅度超调. 增量式PID 增量式PID积分时只对当前误差进行积分,运算量相对较小. ...

  7. 在上位计算机控制时不能将s7-200,PLC控制统编程题库.doc

    <可编程序控制器应用技术>题库 一.填空题 1.PLC小型整体机硬件主要由 微处理器 . 存储器 . 输入|输出接口 . 电源及外部扩展接口设备封装 部分组成. 2.扫描周期是指 一个循环 ...

  8. 在上位计算机控制时不能将s7-200,plc控制系统编程题库.doc

    文档介绍: <可编程序控制器应用技术>题库一.填空题1.PLC小型整体机硬件主要由微处理器.存储器.输入|输出接口.电源及外部扩展接口设备封装部分组成.2.扫描周期是指一个循环扫描过程.P ...

  9. 四轴PID控制算法详解(单环PID、串级PID)

    正文开始:这篇文章分为三个部分: PID原理普及 常用四轴的两种PID算法讲解(单环PID.串级PID) 如何做到垂直起飞.四轴飞行时为何会飘.如何做到脱控? PID原理普及 1.  对自动控制系统的 ...

最新文章

  1. R-CenterNet:用CenterNet对旋转目标进行检测
  2. 半监督+标签传播算法
  3. Nginx的安装配置
  4. 界面上下固定_基于ANSYS的胶粘结构界面开裂有限元计算
  5. 浏览器兼容性问题汇总及解决方案
  6. 中使用swiper不能自动切换_液晶拼接墙显示系统中矩阵切换器使用的注意事项
  7. 脚本文档_创建完美的架构文档脚本
  8. SpringBoot:HttpMessageNotWritableException: No converter found for return value of type
  9. esxi vsphere的端口_硬干货!一张图弄清楚在ESXi下如何进行网络抓包
  10. node.js 实现文件上传
  11. 分享一个好用的图吧电脑工具
  12. 灵长类动物手臂的计算模型:从手部位置到关节角度、关节扭矩和肌肉力
  13. Hive详解之内表、外表和分区
  14. 将VBS脚本编译成加密版本的VBE脚本
  15. android 异常 android Removing unused resources requires unused code shrinking to be turned on.
  16. intellij idea处理xml文件File encoding is disabled,Encoding is hard-coded in the text.提示的方法
  17. Mac版excel如何快速进行数据拆分?
  18. 了解一下iframe页面嵌入使用,轻松实现页面集成
  19. 为什么保持代码整洁如此重要
  20. 王者农药人物信息爬取

热门文章

  1. webbench安装过程
  2. 暴雷(CVE-2012-1889)漏洞分析报告
  3. 中控系统一键关机--读取串口数据并判断
  4. MySQL(InnoDB剖析):36---锁之(阻塞、死锁、锁升级)
  5. 第三方软件库的创建,使用U盘安装Linux系统,U盘的初始化,system-config-kickstart安装虚拟机
  6. 基于MATLAB的答题卡识别软件设计
  7. tutk云平台服务器_Tutk P2P的原理和常见的实现方式 - 书弋江山的博客 - CSDN博客...
  8. Bosun —— Go 开发的监控和告警系统
  9. Linux内核驱动模块如何添加math.h
  10. 什么是哈希冲突?怎么解决哈希冲突。