PID算法是一个典型的闭环控制系统。P、I、D,比例、积分、微分。
开环:输入量对输出量没有反馈作用;
闭环:输入量对输出量有反馈作用。

  1. 位置式Pid

位置式Pid就是位置闭环控制,位置闭环控制就是根据编码器的脉冲累加,测量电机的位置信息,并与目标值进行比较得到一个控制偏差,然后我们对偏差进行比例积分、微分的控制,使偏差趋近于0的一个过程。

这是一个位置式pid的在stm32里的一个代码框架:
定义一个pid的函数,入口参数是编码器的位置测量值v和位置控制的目标值v1,返回值是一个pwm波。
我们通过位置式pid得到的返回值应该是一个具体的绝对的数值--pwm。
最后要把pwm赋值给相应的函数,例如电机驱动等。

  1. 增量式Pid

增量式pid就是速度闭环控制,速度闭环控制是根据单位时间获取的脉冲数,测量电机的速度信息,并于目标值进行比较,得到了偏差。然后同样通过对偏差的比例、积分、微分进行控制,使偏差趋近于0的一个过程。

注意这里的pwm有一个加号,这里的pwm输出的是一个 增量;与位置式pid不同的是,位置式pid通过公式得到的pwm就是一个具体的数值,比如要得到速度是30,那位置式pid得到的pwm值可能就是3000,但增量式pid不一样,因为若原本的pwm值是2700,想要速度达到30,那此时的pwm值只有300。pwm值是一个增量,这就是增量式pid。

这个是32里的一个代码框架
他的入口参数是编码器的速度测量值v和速度控制的目标值v1

  1. 增量式pid和位置式pid的区别

简单来说就是公式不同。
其实所谓的增量式Pid就是我们的控制器的输出只是控制量的增量,是 得塔pwm。
什么时候用增量式pid:当执行机构需要的控制量是增量,而不是一个绝对的数值
当我们需要绝对的数值时,就可以用位置式pid进行控制。

4 . pid算法的应用

  1. 增量式pid的应用:速度环

增量式pid就是输入一个实际值和目标值,经过pid算法后会得到一个增量,最后增量以pwm的形式作用于实际值。

例如:如果目标值>实际值,那么算出来的输出量,即增量out>0,增量反馈给实际量,实际量会增大,就会更加靠近目标值;相反,如果目标值<实际值,那么算出来的输出量,即增量out<0,增量反馈给实际量,实际量会减小,就会更加靠近目标值;
要测得当前速度值是通过编码器来实现的,众所周知,编码器是测脉冲数的。
目标值是自己设定的值,实际值是编码器反映的值。运用定时器,每隔相同时间去采集一次编码器在此段时间内积累的脉冲数,脉冲数的大小就是电机实际速度的反映。 速度由脉冲数来转化。

  1. 增量式pid(速度环)控制电机的应用:快准稳!

速度环:速度反馈给速度,来达到我们想要的效果。

舵机一般用PD控制,电机一般用PI就够了。

(1)快速响应:快速到达设定的目标值,减小惯性的作用。

(2)速度控制(准、稳):带负载速度也不改变

(3)代码讲解:变量、公式、限幅

每10ms读取一次编码器的值的原因:因为pid的原理是不断减小设定值与当前值的差距,所以我们需要定时器在一个很短的频率内获取当前值,然后代入pid公式内与目标值做计算,让当前值越来越接近目标值。

  1. 位置式pid的应用:位置环

位置式pid就是输入一个实际值和目标值,经过pid算法后会得到一个准确的值,以pwm的形式作为实际值,让实际值去靠近目标值的过程。

位置环顾名思义就是控制位置,控制位置首先要测得当前的位置,测得这个位置的方式,也是通过编码器来实现。众所周知,编码器是测脉冲数的。 速度由脉冲数来转化。但是我们这里不用转化,因为测的不是速度,这里的脉冲数我们直接拿来用,但是并不是直接拿来用,因为我们要测的是累计的脉冲数。
例如:转一圈是100个脉冲,那要转3圈则是300个脉冲,可是每转一圈记录的脉冲数都会清零,所以我们要累加才能达到我们指定的效果。

串级pid:用指定的速度去达到指定的圈数就叫串级pid。串级也就是串联。
例如一个速度pid算法加上一个位置pid算法,这就叫双闭环。

一般做循迹小车用速度速度环就够了。

位置式Pid和增量式Pid的定义及应用相关推荐

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

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

  2. C语言实现PID算法:位置式PID和增量式PID

    原创者微信公众号 PID算法可以说是在自动控制原理中比较经典的一套算法,在现实生活中应用的比较广泛. 大学参加过电子竞赛的朋友都应该玩过电机(或者说循迹小车),我们要控制电机按照设定的速度运转,PID ...

  3. 位置式PID与增量式PID区别浅析(百度百科增量式PID讲解思路概念更明确清晰)

    位置式PID与增量式PID区别浅析 Z小旋 2019-04-26 08:55:12  59882  收藏 713 分类专栏: NXP智能车学习 文章标签: 位置式PID PID 增量式PID 版权 1 ...

  4. 位置式PID和增量式PID的区分

    目录 位置式PID和增量式PID的区分 位置式PID: 增量式PID: 附上本人参考别人写的代码----链接: 附上本人收集的资料----链接: 位置式PID和增量式PID的区分 仅是个人理解,如有错 ...

  5. 位置式PID与增量式PID代码实现(python)

    位置式PID与增量式PID的python实现 一.PID控制器简介 二.一阶惯性环节 三.位置式PID 3.1 简介 3.2 程序 四.增量式PID 4.1简介 4.2 程序 五.几种控制效果对比 本 ...

  6. C语言实现位置式pid与增量式pid

    //经典PID控制的c实现 //1.位置式PID实现 //1.位置式PID实现 typedef struct {float setValue;//设定值float actValue;//输出值floa ...

  7. PID算法:位置式PID和增量式PID

    口诀 参数整定找最佳, 从小到大顺序查. 先是比例后积分, 最后再把微分加. 曲线振荡很频繁, 比例度盘要放大. 曲线漂浮绕大弯, 比例度盘往小扳. 曲线偏离回复慢, 积分时间往下降. 曲线波动周期长 ...

  8. 位置式PID和增量式PID的区别(转载)

    参考 https://blog.csdn.net/as480133937/article/details/89508034 上述文章中给出了位置式PID和增量式PID的公式及区别,比较容易理解.

  9. 入门智能车 | 带你认识PID闭环控制 - 增量式PID实现电机速度闭环

    带你认识PID闭环控制 - 增量式PID实现电机速度闭环 闭环控制是指控制论的一个基本概念.指作为被控的输出量以一定方式返回到作为控制的输入端,并对输入端施加控制影响的一种控制关系.带有反馈信息的系统 ...

  10. c语言程序位置式pid算法,增量式与位置式PID算法(C语言实现与电机控制项目)...

    4.2核心代码 /************************************************************************** 函数功能:增量PI控制器 入口参 ...

最新文章

  1. 2022-2028年中国氢化丁腈橡胶行业市场深度分析及投资规模预测报告
  2. 自定义GridView分页模板
  3. numpy报错:ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'(解决办法:安装更高版本的numpy)
  4. hadoop上lzop的安装
  5. 程序写不好,总理当到老!
  6. 【CV实战】Ubuntu18.04源码编译安装opencv-3.4.X+测试demo
  7. 6-14 Inspector s Dilemma uva12118(欧拉道路)
  8. apache的日志切割
  9. android 查找所有的串口,Android 串口通讯 获取卡号
  10. python大数据和java大数据的区别-做大数据工程师,语言选Java还是Python?
  11. 根据IP获取国家地区
  12. 2021中国华录杯·算法大赛直通车!
  13. SAP 订单结算方式
  14. 信息学奥赛一本通 1296:开餐馆 | OpenJudge NOI 2.6 6045:开餐馆
  15. ArcGIS提取NDVI
  16. 一文彻底学会Redis主从复制(高可用)
  17. 给没有软件测试经验的应届生的建议,看完让你豁然开朗!
  18. 参考:ODBC Drivers error(ODBC数据库驱动错误代码)原因解释
  19. 教你如何进行DNS域名解析
  20. 来自同济子豪兄的无私分享-关于YOLOv1模型的学习(一)

热门文章

  1. 计算机上画正比例函数,信息技术应用 用计算机画函数图象教案1
  2. Franka Emika Panda连接真实机械臂(一)
  3. sklearn线性回归,支持向量机SVR回归,随机森林回归,神经网络回归参数解释及示例
  4. 第二天-03-安卓手机的入侵实验
  5. 最新版本 Stable Diffusion 开源 AI 绘画工具之汉化篇
  6. 高精度地图-使用ArcMap标注高精度地图
  7. 硬编码失败问题Codec reported err 0x80000000, actionCode 0, while in state 5
  8. matlab图像导数求积分_matlab微积分问题:导数、偏导数
  9. linux批量删除文件或者文件夹
  10. matlab学生试用版,免费试用MATLAB