首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【平衡小车制作】(五)位置式PID、直立环与速度环概念(超详解)一、PID控制算法二、位置式PID三、直立环四、速度环、串级PID

  • 23-07-24 11:52
  • 1320
  • 33749
blog.csdn.net

  大家好,我是小政。本篇文章我将针对位置式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.公式

① 【PD控制器】直立环输出=Kp1×角度偏差+Kd×角度偏差微分
(角度偏差=真实角度-期望角度)

② 【PI控制器】速度环输出=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

注:本文转载自blog.csdn.net的鲁乎乎的文章"https://blog.csdn.net/weixin_44270218/article/details/113664633"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top