位置型PID增量PID调节直流电机

一、思路
无论是位置型还增量型的PID都是为了调节PWM波,使电机的转速达到设定值。这次实验目的主要是实现用机智云app控制电机并使电机的转速达到设定值后保持稳定。
二、实现过程

  1. 材料:正点原子stmf4探索板及其配套的esp8266、0~6v直流电机、L9110s芯片的驱动模块,对射光计数芯片。
  2. 接下来要实现一个闭环的,主要的思路是将,通过计数器的算成对应的速度,通过pid公式调节,反馈回去,调节PWM波自至速度达到设定值。
  3. 我是通过TIM4_CH1输出PWM波,控制电机转速;通过短时间定时器和对射管计数器传过来的信号,高低电平来测量速度的。
  4. 这是我的pid笔记
PID算法重要知识点:一种可以自我调节,稳定输出,实现实际值十分接近设定值的方法。
一、类型
(1).位置型pid
实现的步骤:1.建立一个结构体其中包括:比例系数(Kp)Proportion,积分系数(Ki)Integral,微分系数(Kd)Derivative,当前误差current_error,上次误差S_error,累计误差Sum_error,设定目标SetValue实际数值actualValue2.位置型PID的公式:increment=(Pid->Kp)*(Pid->error)+(Pid->Ki)*(Pid->SUM_error)+(Pid->Kd)*(Pid->error-Pid->S_error);3.初始化函数,调整函数:/*------------------------------------------函数功能:位置型pid参数初始化min~max函数说明:           ------------------------------------------*/void PositionPid_Init(PID Pid){Pid->Kp=0.8;Pid->Ki=0.1;   Pid->Kd=0.1;Pid->error=0.0;Pid->S_error=0.0;Pid->SUM_error=0.0;Pid->actualvalue=0.0;Pid->setvalue=0.0;}/*------------------------------------------函数功能:位置型PID调整函数说明:利用本次误差和上次误差进行反馈调节        ------------------------------------------*/float PositionPid_adjust(PID Pid,float setpoint){float increment;Pid->setvalue=setpoint;Pid->error=setpoint-Pid->actualvalue;Pid->SUM_error+=Pid->error; /*采用的是位置型pid*/increment=(Pid->Kp)*(Pid->error)+(Pid->Ki)*(Pid->SUM_error)+(Pid->Kd)*             (Pid->error-Pid->S_error);//这个是位置式PID的灵魂Pid->S_error=Pid->error;return (318-increment);//这里318是根据实际需要增加的。}4.思路及要点:位置型PID首先要解决的问题是闭环反馈的事,就是要有测量反馈给单片                      机结构体变量Pid->actualvalue,然后在调整中会根据不断更新的实际值,带入公式进行不断调节,以达到目标。(2)增量型PID1.建立结构体/*------------------------------------------结构体说明:这是位置式、增量式PID的结构体,包括基本的PID调节参数.------------------------------------------*/typedef struct node{/*1.比例系数Kp 2.积分系数Ki 3.微分系数Kd4.本次的误差error 5.上次的误差S_error6.用于积分的误差和SUM_error7.设定的值setvalue 8.实际的值actualvalue*//*下没有特别说明就代表是共同变量*/float Kp;float Ki;float Kd;float error;float S_error;float SS_error;   //上上次误差,增量型PID需要 float SUM_error; //累计误差,位置型PID需要float setvalue;float actualvalue;}PIDN,*PID;2.初始化函数 ,调整函数:/*------------------------------------------函数功能:增量型PID初始化函数说明:
------------------------------------------*/
void IncrementPid_Init(PID Pid)
{Pid->Kp=0.1;Pid->Ki=0.85;Pid->Kd=0.15;Pid->error=0.0;Pid->S_error=0.0;Pid->SS_error=0.0;Pid->actualvalue=0.0;Pid->setvalue=0.0;
}
/*------------------------------------------函数功能:增量型PID调整函数说明:
------------------------------------------*/
float IncrementPid_adjust(PID Pid,float setpoint)
{float increment;float fanhuizhi;Pid->setvalue=setpoint;Pid->error=setpoint-Pid->actualvalue;increment=(Pid->Kp)*((Pid->error)-(Pid->S_error))+(Pid->Ki)*(Pid->error)*i+(Pid->Kd)*(Pid->error-2*Pid->S_error+Pid->SS_error);//这个是增量式PID的灵魂adjust_shuzhi-=increment;//根据实际应用的时候adjust_shuzhi的值太大了,所以有点像下降型pid调节。Pid->SS_error=Pid->S_error;Pid->S_error=Pid->error;
}
一、实际使用PID的经验a.有些变量只能初始化一次,注意看b.对于直流电机调速的结果看,增量型越接近越慢c.实际值->公式-> =? 设定值,否则返回。d.在调节pid参数的时候,最好设置一个些printf用观察数字的变化。

4.这是我参考的pid算法的资料:
链接:https://pan.baidu.com/s/1bYmddMa1DavPCMzIDd9E1g
提取码:5lga
四、总结:首先声明我这里并没有将我这个项目的所有的资料,只是将其中对pid的资料及相关思路写了下来。

位置型PID增量型PID调节直流电机相关推荐

  1. 位置式与增量式PID

    1PID控制算法-----什么是PID PID 控制器以各种形式使用超过了 1 世纪,广泛应用在机械设备.气动设备 和电子设备.在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算 ...

  2. 位置式和增量式PID控制

    PID控制是一个二阶线性控制器 定义:通过调整比例.积分和微分三项参数,使得大多数的工业控制系统获得良好的闭环控制性能. 优点 a. 技术成熟 b. 易被人们熟悉和掌握 c. 不需要建立数学模型 d. ...

  3. 位置式与增量式PID控制器的说明

    理想状态下的PID控制器表达式为: 对上式左右进行拉普拉斯变换,可以得到: 为了在控制器或者计算机系统中实现PID计算,必须将上式的连续系统表达式离散化为离散系统.一般进行连续系统离散化,常用的有后向 ...

  4. STM32高级应用专题——基于STM32的PID温控器|PID控制算法详解|位置式PID|增量式PID

    一.位式控制算法 位式控制基本结构 位式控制基本结构图 Sv:用户设定的值 执行部件:一般是开关型的部件(比如说MOS管.继电器.可控硅之类的开关型的器件) 控制对象:加热器.步进电机.电磁阀 Pv: ...

  5. pid算法中位置型和增量型有什么区别,分析两者优缺点

    关于P.I.D三个环节的选择,一般只会用到PI控制或者PD控制,例如速度控制要求稳态无误差,那么就需要积分环节,所以使用PI控制:而使用方向控制的时候,由于不需要无稳态误差,所以使用PD控制即可,D的 ...

  6. PID--位置型PID和增量式PID比较

    一. 位置型PID 位置型 PID 算法适用于不带积分元件的执行器. 执行器的动作位置与其输入信号呈一一对应的关系. 控制器根据第 n 次计算机采样结果与给定值之间的偏差 e 来计算出第 n 次采用后 ...

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

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

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

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

  9. 位置式Pid和增量式Pid的定义及应用

    PID算法是一个典型的闭环控制系统.P.I.D,比例.积分.微分. 开环:输入量对输出量没有反馈作用: 闭环:输入量对输出量有反馈作用. 位置式Pid 位置式Pid就是位置闭环控制,位置闭环控制就是根 ...

最新文章

  1. 从零开始学习Sencha Touch MVC应用之八
  2. shell 基本使用
  3. 【深度学习】基于注意力机制的Transformer处理医疗影像
  4. python读取文件第n行-Python读取文件后n行的代码示例
  5. matlab 排列 拆分,在matlab中将列表拆分为多个变量
  6. 调试CEF3程序的方法
  7. Golang modules 初探
  8. 一些常用的gcc指令(持续更新)
  9. OpenGL环境多维数据集映射
  10. MySQL与MongoDB设计实例对比
  11. 2020CCPC(长春) - Strange Memory(树上启发式合并+位运算)
  12. HTML5 Canvas 画虚线组件
  13. 【java】统计英文文本中某些字母出现的次数
  14. Wireshark实战分析之ICMP协议(二)
  15. 2021-10-18记录 MediaTek MT7620A 平台对应的类型
  16. 如何用课件制作工具验证三角形内角和
  17. 天谕搬砖哪个服务器稳定,天谕手游搬砖玩什么职业好 搬砖强势职业推荐
  18. 从零开始学Python人脸识别技术,人工智能不过如此!
  19. 目前主流跨端开发技术一览
  20. 开发信如何写打开率才更高

热门文章

  1. 《计算机网络》——文件传输协议FTP、简单邮件传送协议SMTP、邮局协议POP3、网际报文存取协议IMAP、万维网和HTTP协议、超文本传输协议HTTP
  2. wps html编辑表格,手机版wps如何编辑表格图解
  3. 高等数学 · 第三章 导数和微分
  4. 创建酷炫的 CollectionViewCell 转换动画
  5. Android Build类获取设备信息
  6. 台式计算机截图快捷键,台式/笔记本电脑截图快捷键是哪个?
  7. 一种利用电磁能产生的共振引力波实现超光速飞行的机器
  8. 猫眼电影院爬虫(可用)
  9. 基于JAVA实现的幼儿园信息管理系统
  10. 集群间实现Session共享