【平衡小车制作】(五)位置式PID、直立环与速度环概念(超详解)

  大家好,我是小政。本篇文章我将针对位置式PID算法直立环速度环等概念进行详细的讲解,让每位小伙伴能够对这三个概念有更加清晰的理解。

一、PID控制算法

  PID控制,即为对偏差进行比例、积分和微分控制。由三个元素构成,分别是比例(P)积分(I)微分(D)
  工程中P必然存在,在P的基础上又有如PI控制(比例积分),PD控制(比例微分),PID控制(比例积分微分)。

  • 比例项:提高响应速度,减小静差。
  • 积分项:消除稳态误差。
  • 微分项:减小震荡以及超调。

二、位置式PID

1.理论分析
  位置式PID是根据编码器的脉冲累加测量电机的位置信息,并与目标值进行比较,得到控制偏差,然后通过对偏差的比例、积分、微信进行控制,使偏差趋向于零的过程。
2.公式

PWM_out=Kp×e(k)+Ki×Σe(k)+Kd×[e(k)-e(k-1)]

  • e(k):本次偏差
  • e(k-1):上一次偏差
  • Σe(k):e(k)以及以前的偏差的累积和,其中k为1,2,…
  • PWM_out:输出

3.结构框图

在这里插入图片描述

图1 位置式PID算法

4.C语言实现

int Position_PID(int Encoder, int Target)
{
	static float Bias, PWM_out, Integral_bias, Last_bias;
	Bias = Encoder-Target;		// 计算偏差
	Integral_bias += Bias;		// 计算偏差的积分
	// 位置式PID控制器公式
	PWM_out = Position_Kp*Bias+Position_Ki* Integral_bias+ Position_KD*(Bias- Last_bias)
	Last_bias = Bias;			// 保存上一次偏差
	return PWM_out;				// 输出
}

三、直立环

1.理论

  小车往那边倒,车轮就往哪边开,这样就可以保持车子的平衡。
在这里插入图片描述

图2 直立环

2.公式

a=b1×θ+b2×θ’;
(比例微分控制【PDout=Kp×Angle+Kd×(Angle- Angle_last)】)

3.结构框图

在这里插入图片描述

图3 直立环结构框图

4.比较

① 纯比例控制
 只存在大小与角度偏差成正比的回复力
 a=b1×θ;
(纯比例控制【Pout=Kp×Angle】)
② 比例微分控制
 大小与角度成正比,方向与角速度成正比的回复力;
 大小与角速度成正比,方向与回复力成反比的阻尼力。
 a=b1×θ+b2×θ’;
(比例微分控制【PDout=Kp×Angle+Kd×(Angle- Angle_last)】)

四、速度环、串级PID

1.理论

  通过速度反馈使得小车保持平衡。
在这里插入图片描述

图4 速度环

2.串级控制系统

在这里插入图片描述

图5 速度环、串级PID

  • 速度环输入:① 给定速度;② 速度反馈。
  • 速度环输出:角度值(直立环的期望角度输入)
  • 直立环输入:① 给定角度(速度环输出);② 角度反馈。
  • 直立环输出:PWM(直接控制小车)

3.公式

直立环输出=Kp1×(真实角度-期望角度)+Kd×角度偏差微分
(角度偏差=真实角度-期望角度)

速度环输出=Kp2×(反馈编码器值-期望编码器值)+Ki×编码器偏差的积分
(编码器偏差=反馈编码器值-期望编码器值)
【Notes:(1)速度环输出=直立环的期望角度;(2)Kp1:直立环Kp;(3)Kp2:速度环Kp】

串级输出out=Kp1×真实角度+Kd×角度偏差的微分-Kp1×(Kp2×编码器偏差-Ki×编码器偏差的积分)

  以上就是平衡小车系列文章第五讲——位置式PID、直立环与速度环概念,若文章中出现错误或者小伙伴对以上内容有所疑问,欢迎大家在评论区留言,小政看到后会尽快回复大家!
【平衡小车制作】(六)位置式PID、直立环与速度环编程(超详解)
https://blog.csdn.net/weixin_44270218/article/details/113665051

版权声明:本文为CSDN博主「鲁乎乎」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44270218/article/details/113664633

生成海报
点赞 0

鲁乎乎

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

基于STM32的指纹密码锁

设计简介: 本设计是基于单片机的指纹密码锁,主要实现以下功能: 矩阵按键输入密码,并通过按键显示*号可通过按键或手机开门密码可通过按键进行开门可通过蓝牙模块连接手机进行开门可通过指纹进

STM32串口发送接收数据

1.串口通信 我用的32是stm32f10x最小系统没有UART4和UART5 USART : 通用同步异步收发器 UART : 通用异步收发器 nRTS : 请求发送 nCTS : 请求接收 区别:USART指单片机的一个IO端

TCRT5000循迹模块原理及应用

前言 本文将讲述TCRT5000循迹模块的原理及应用。本文应用于STM32,对于使用循迹模块的你有一定的帮助。 以下是本篇文章的正文内容 一、TCRT5000循迹模块介绍 TCRT5000就是一个红外发射和接收器&#xff0