关于PID算法的学习

本文介绍了作者学习PID算法的过程,理解了P、I、D分别在系统中的作用及可能带来的副作用。作者提到了PID的两种计算方式——位置PID和增量PID,并解释了它们的区别。文章中分享了对两种PID控制方式的理解,并提及将在实际运行中进一步验证和学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天打校内赛,需要用到视觉巡线,所以学习了PID。

看的这篇博主的blog入的门:https://blog.youkuaiyun.com/qq1205512384/article/details/72614871

(%%%%,谢谢大佬的分享)

说说自己关于PID作用的理解:

P:比例控制,作用就是是加快系统的响应速度,提高系统的调节精度(副作用是会导致超调)——现在

I:   积分控制,作用就是消除稳态误差(副作用是导致积分饱和现象)——过去

D:微分控制,作用就是改善整个系统的动态性能(副作用是延长系统的调节时间)——未来

理解的没有很透彻,因为只是把理论代码打了出来,估计今天晚上会开始实际跑车,到时候有新的理解在来改动吧。

关于PID有两种不同的计算方式——一种是位置,一种是增值

两种的具体区别我个人的理解:

位置PID:是当前系统的实际位置,与你想要达到的预期位置的偏差,进行PID控制

这个算法有误差积分,一直累加,也就是当前的输出值与过去的所有状态都有关系,用到了误差的累加值;误差会有误差累加,输出对应的是执行物体的实际位置,一旦控制输出出错(控制物体的当前的状态值有了问题 ),输出的值会发生大幅度变化。并且位置PID在积分项达到饱和时,误差仍然会继续累积,所以在输出值达到最大和最小时,要停止积分作用,并且要有积分限制和输出限制

嗯嗯,贴个代码会好一点理解?(只是理解,并未实际执行,所以理解不透彻望理解)

//其主要问题点和难点在于比例、积分、微分环节上的参数整定过程
float index;
struct _pid
{
	float 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值