位置式Pid和增量式Pid的定义及应用
PID算法是一个典型的闭环控制系统。P、I、D,比例、积分、微分。
开环:输入量对输出量没有反馈作用;
闭环:输入量对输出量有反馈作用。
位置式Pid
位置式Pid就是位置闭环控制,位置闭环控制就是根据编码器的脉冲累加,测量电机的位置信息,并与目标值进行比较得到一个控制偏差,然后我们对偏差进行比例积分、微分的控制,使偏差趋近于0的一个过程。
这是一个位置式pid的在stm32里的一个代码框架:
定义一个pid的函数,入口参数是编码器的位置测量值v和位置控制的目标值v1,返回值是一个pwm波。
我们通过位置式pid得到的返回值应该是一个具体的绝对的数值--pwm。
最后要把pwm赋值给相应的函数,例如电机驱动等。
增量式Pid
增量式pid就是速度闭环控制,速度闭环控制是根据单位时间获取的脉冲数,测量电机的速度信息,并于目标值进行比较,得到了偏差。然后同样通过对偏差的比例、积分、微分进行控制,使偏差趋近于0的一个过程。
注意这里的pwm有一个加号,这里的pwm输出的是一个 增量;与位置式pid不同的是,位置式pid通过公式得到的pwm就是一个具体的数值,比如要得到速度是30,那位置式pid得到的pwm值可能就是3000,但增量式pid不一样,因为若原本的pwm值是2700,想要速度达到30,那此时的pwm值只有300。pwm值是一个增量,这就是增量式pid。
这个是32里的一个代码框架
他的入口参数是编码器的速度测量值v和速度控制的目标值v1
增量式pid和位置式pid的区别
简单来说就是公式不同。
其实所谓的增量式Pid就是我们的控制器的输出只是控制量的增量,是 得塔pwm。
什么时候用增量式pid:当执行机构需要的控制量是增量,而不是一个绝对的数值
当我们需要绝对的数值时,就可以用位置式pid进行控制。
4 . pid算法的应用
增量式pid的应用:速度环
增量式pid就是输入一个实际值和目标值,经过pid算法后会得到一个增量,最后增量以pwm的形式作用于实际值。
例如:如果目标值>实际值,那么算出来的输出量,即增量out>0,增量反馈给实际量,实际量会增大,就会更加靠近目标值;相反,如果目标值<实际值,那么算出来的输出量,即增量out<0,增量反馈给实际量,实际量会减小,就会更加靠近目标值;
要测得当前速度值是通过编码器来实现的,众所周知,编码器是测脉冲数的。
目标值是自己设定的值,实际值是编码器反映的值。运用定时器,每隔相同时间去采集一次编码器在此段时间内积累的脉冲数,脉冲数的大小就是电机实际速度的反映。 速度由脉冲数来转化。
增量式pid(速度环)控制电机的应用:快准稳!
速度环:速度反馈给速度,来达到我们想要的效果。
舵机一般用PD控制,电机一般用PI就够了。
(1)快速响应:快速到达设定的目标值,减小惯性的作用。
(2)速度控制(准、稳):带负载速度也不改变
(3)代码讲解:变量、公式、限幅
每10ms读取一次编码器的值的原因:因为pid的原理是不断减小设定值与当前值的差距,所以我们需要定时器在一个很短的频率内获取当前值,然后代入pid公式内与目标值做计算,让当前值越来越接近目标值。
位置式pid的应用:位置环
位置式pid就是输入一个实际值和目标值,经过pid算法后会得到一个准确的值,以pwm的形式作为实际值,让实际值去靠近目标值的过程。
位置环顾名思义就是控制位置,控制位置首先要测得当前的位置,测得这个位置的方式,也是通过编码器来实现。众所周知,编码器是测脉冲数的。 速度由脉冲数来转化。但是我们这里不用转化,因为测的不是速度,这里的脉冲数我们直接拿来用,但是并不是直接拿来用,因为我们要测的是累计的脉冲数。
例如:转一圈是100个脉冲,那要转3圈则是300个脉冲,可是每转一圈记录的脉冲数都会清零,所以我们要累加才能达到我们指定的效果。
串级pid:用指定的速度去达到指定的圈数就叫串级pid。串级也就是串联。
例如一个速度pid算法加上一个位置pid算法,这就叫双闭环。
一般做循迹小车用速度速度环就够了。
位置式Pid和增量式Pid的定义及应用相关推荐
- 位置式PID与增量式PID的介绍和代码实现
PID分为位置式PID与增量式PID. 一.位置式PID 1.表达式为: 2.缺点: 1).由于全量输出,所以每次输出均与过去状态有关,计算时要对ek进行累加,工作量大: 2).因为计算机输出的uk对 ...
- C语言实现PID算法:位置式PID和增量式PID
原创者微信公众号 PID算法可以说是在自动控制原理中比较经典的一套算法,在现实生活中应用的比较广泛. 大学参加过电子竞赛的朋友都应该玩过电机(或者说循迹小车),我们要控制电机按照设定的速度运转,PID ...
- 位置式PID与增量式PID区别浅析(百度百科增量式PID讲解思路概念更明确清晰)
位置式PID与增量式PID区别浅析 Z小旋 2019-04-26 08:55:12 59882 收藏 713 分类专栏: NXP智能车学习 文章标签: 位置式PID PID 增量式PID 版权 1 ...
- 位置式PID和增量式PID的区分
目录 位置式PID和增量式PID的区分 位置式PID: 增量式PID: 附上本人参考别人写的代码----链接: 附上本人收集的资料----链接: 位置式PID和增量式PID的区分 仅是个人理解,如有错 ...
- 位置式PID与增量式PID代码实现(python)
位置式PID与增量式PID的python实现 一.PID控制器简介 二.一阶惯性环节 三.位置式PID 3.1 简介 3.2 程序 四.增量式PID 4.1简介 4.2 程序 五.几种控制效果对比 本 ...
- C语言实现位置式pid与增量式pid
//经典PID控制的c实现 //1.位置式PID实现 //1.位置式PID实现 typedef struct {float setValue;//设定值float actValue;//输出值floa ...
- PID算法:位置式PID和增量式PID
口诀 参数整定找最佳, 从小到大顺序查. 先是比例后积分, 最后再把微分加. 曲线振荡很频繁, 比例度盘要放大. 曲线漂浮绕大弯, 比例度盘往小扳. 曲线偏离回复慢, 积分时间往下降. 曲线波动周期长 ...
- 位置式PID和增量式PID的区别(转载)
参考 https://blog.csdn.net/as480133937/article/details/89508034 上述文章中给出了位置式PID和增量式PID的公式及区别,比较容易理解.
- 入门智能车 | 带你认识PID闭环控制 - 增量式PID实现电机速度闭环
带你认识PID闭环控制 - 增量式PID实现电机速度闭环 闭环控制是指控制论的一个基本概念.指作为被控的输出量以一定方式返回到作为控制的输入端,并对输入端施加控制影响的一种控制关系.带有反馈信息的系统 ...
- c语言程序位置式pid算法,增量式与位置式PID算法(C语言实现与电机控制项目)...
4.2核心代码 /************************************************************************** 函数功能:增量PI控制器 入口参 ...
最新文章
- 2022-2028年中国氢化丁腈橡胶行业市场深度分析及投资规模预测报告
- 自定义GridView分页模板
- numpy报错:ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'(解决办法:安装更高版本的numpy)
- hadoop上lzop的安装
- 程序写不好,总理当到老!
- 【CV实战】Ubuntu18.04源码编译安装opencv-3.4.X+测试demo
- 6-14 Inspector s Dilemma uva12118(欧拉道路)
- apache的日志切割
- android 查找所有的串口,Android 串口通讯 获取卡号
- python大数据和java大数据的区别-做大数据工程师,语言选Java还是Python?
- 根据IP获取国家地区
- 2021中国华录杯·算法大赛直通车!
- SAP 订单结算方式
- 信息学奥赛一本通 1296:开餐馆 | OpenJudge NOI 2.6 6045:开餐馆
- ArcGIS提取NDVI
- 一文彻底学会Redis主从复制(高可用)
- 给没有软件测试经验的应届生的建议,看完让你豁然开朗!
- 参考:ODBC Drivers error(ODBC数据库驱动错误代码)原因解释
- 教你如何进行DNS域名解析
- 来自同济子豪兄的无私分享-关于YOLOv1模型的学习(一)
热门文章
- 计算机上画正比例函数,信息技术应用 用计算机画函数图象教案1
- Franka Emika Panda连接真实机械臂(一)
- sklearn线性回归,支持向量机SVR回归,随机森林回归,神经网络回归参数解释及示例
- 第二天-03-安卓手机的入侵实验
- 最新版本 Stable Diffusion 开源 AI 绘画工具之汉化篇
- 高精度地图-使用ArcMap标注高精度地图
- 硬编码失败问题Codec reported err 0x80000000, actionCode 0, while in state 5
- matlab图像导数求积分_matlab微积分问题:导数、偏导数
- linux批量删除文件或者文件夹
- matlab学生试用版,免费试用MATLAB