增量式pid和位置式PID参数整定过程对比
//增量式PID
float IncPIDCalc(PID_Typedef* PIDx,float SetValue,float MeaValue)//err»ý·Ö·ÖÀë³£Êý
{ PIDx->Error = SetValue - MeaValue; PIDx->PWM_Inc = (PIDx->P * (PIDx->Error - PIDx->PreError)) \
+ (PIDx->I * PIDx->Error) \
+ (PIDx->D * ((PIDx->Error - PIDx->PreError) - (PIDx->PreError - PIDx->PrePreError)));
PIDx->PrePreError = PIDx->PreError;
PIDx->PreError = PIDx->Error; return PIDx->PWM_Inc ;
}
//位置式PID
float LocPIDCalc(PID_Typedef* PIDx,float SetValue,float MeaValue)
{ u8 Index=1;
PIDx->Error = SetValue - MeaValue;
Intergral_Error+=PIDx->Error;
if(abs(PIDx->Error)>250)//积分分离
{
Index=0;
}
else{
Index=1;
}
PIDx->PWM_Inc = (PIDx->P * PIDx->Error) \
+ (Index * PIDx->I * Intergral_Error) \
+ (PIDx->D * (PIDx->Error - PIDx->PreError));
PIDx->PrePreError = PIDx->PreError;
PIDx->PreError = PIDx->Error;
return PIDx->PWM_Inc ;
}
首先先要明确,增量式pid和位置式pid本质是一样的,本次增量式pid的输出是由本次位置式pid的输出减去上次位置式的输出得到的。对比一下
位置式:u(k) =Kp*e(k)+Ki*∑e(k)+Kd[e(k)-e(k-1)]
增量式:Δu(k) =Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]
可以看出增量式的KP和位置式的kd一样,增量式的ki和位置式的kp一样。所以对于增量式的参数整定,应该先整定KI,它反映了响应的速度,再整定KP,它反映了对超调量的限制,也就是缓减增量式KI参数过大时候的抖动
位置式PID:
比例项只考虑现在有没有偏差,现在有偏差就开始控制,现在偏差越大,控制效果越明显。
积分项根据历史数据输出控制信号,如果历史总体超标就要减小输出信号,如果历史不达标那要大量输出控制信号
微分项只关注偏差有没有变化趋势,偏差有了变化趋势才开始控制(而不是偏差存不存在),即偏差的变化率。
增量式PID:Δu(k) =Kp[e(k)-e(k-1)] + Ki*e(k) + Kd[e(k)-2e(k-1)+e(k-2)]
Kp项是误差变化率
Ki项是误差,
Kd项是变化率的变化率 : e(k)-2e(k-1)+e(k-2)= [e(k)-e(k-1)] - [e(k-1)-e(k-2)]
增量式pid和位置式PID参数整定过程对比的更多相关文章
- 位置式PID与增量式PID算法
位置式PID与增量式PID算法 PID控制是一个二阶线性控制器 定义:通过调整比例.积分和微分三项参数,使得大多数的工业控制系统获得良好的闭环控制性能. 优点 ...
- 【转】位置式、增量式PID算法C语言实现
位置式.增量式PID算法C语言实现 芯片:STM32F107VC 编译器:KEIL4 作者:SY 日期:2017-9-21 15:29:19 概述 PID 算法是一种工控领域常见的控制算法,用于闭环反 ...
- SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
- 修改hadoop/hbase/spark的pid文件位置
1.说明 当不修改PID文件位置时,系统默认会把PID文件生成到/tmp目录下,但是/tmp目录在一段时间后会被删除,所以以后当我们停止HADOOP/HBASE/SPARK时,会发现无法停止相应的进程 ...
- 位置式PID与增量式PID
//位置式PID float Kp; float Ki; float Kd; float eSum,e0,e1; float pid_control(float now,float target) { ...
- 位置式PID讲解
table { margin: auto } 一.公式拆解 \(PID\)公式展示: \[u(t)=K_p(e(t)+\frac{1}{T_t } ∫_0^te(t)dt+T_D \frac {de( ...
- 我的四轴专用PID参数整定方法及原理---超长文慎入(转)
给四轴调了好久的PID,总算是调好了,现分享PID参数整定的心得给大家,还请大家喷的时候手下留情. 首先说明一下,这篇文章的主旨并不是直接教你怎么调,而是告诉你这么调有什么道理,还要告诉大家为什么'只 ...
- PID参数整定
PID参数整定方法很多,常见的工程整定方法有临界比例度法.衰减曲线法和经验法.云南昌晖仪表制造有限公司以图文形式介绍以临界比例度法和衰减曲线法整定调节器PID参数方法.临界比例度法一个调节系统,在阶跃 ...
- Vue 2.0 v-for 响应式key, index及item.id参数对v-bind:key值造成差异研究
Vue 2.0 v-for 响应式key, index及item.id参数对v-bind:key值造成差异研究 在github上阅览README.md以获得最佳阅读体验,点这里 v-for响应式key ...
随机推荐
- javascript链式语法
因为 jQuery 库的缘故,链式语法在前端界变得非常流行.实际上这是一种非常容易实现的模式.基本上,你只需要让每个函数返回 'this',这样其他函数就可以立即被调用.看看下面的例子. var bi ...
- android形状drawable
1.在res目录下新建drawable目录. 2.新建一个xml文件. 3.採用drawable来定义资源. <? xml version="1.0" encoding=&q ...
- 安装了XAMPP,PHP怎么显示中文
1.输出前加文件头.header("Content-type: text/html; charset=utf-8"); 另外注意你的文件编码要和 charset一致. 2. 可能是 ...
- js 数组 转为树形结构
题目: source = [{ id: 1, pid: 0, name: 'body' }, { id: 2, pid: 1, name: 'title' }, { id: 3, pid: 2, na ...
- ubuntu1604安装tensorflow
操作系统 :ubuntu-16.04.2-desktop-amd64tensorflow版本: 1.0.0python版本 : 2.7.12 开启ssh : sudo apt install open ...
- 修改Ubuntu默认运行级别,启动字符界面
Ubuntu的默认开机的runlevel是2,可以用runlevel来查看当前的默认运行级别. debian系(ubuntu是基于debian)的Linux一直是用runlevel 2来默认启动,并且 ...
- Linux(centos)新建,删除,移动,重命名文件夹和文件的命令
1.新建文件夹 mkdir 文件名 新建一个名为test的文件夹在home下 view source1 mkdir /home/test 2.新建文本 在home下新建一个test.sh脚本 vi / ...
- jQuery Easy UI Tooptip(提示框)组件
我们都知道DOM节点的title属性.Tooptip组件就是比較强大的title,它能够自由的设置自己的样式.位置以及有自己相关的触发事件. 演示样例: <!DOCTYPE html> & ...
- 每天五个java相关面试题(7)--线程篇
首先关于线程能够先看我之前这篇博文熟悉一下线程生命周期的图示以及文字说明 好開始了: 1.java 中有几种方法能够实现一个线程? 答:有两种实现方法.各自是继承 Thread类与实现Runnable ...
- excel合并同类项去重求和功能
参考:百度经验 主要利用函数为:sumif(range,criteria,[sum_range]) Range:条件区域,用于条件判断的单元格区域. Criteria:求和条件,由数字.逻辑表达式等组 ...