5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 8534|回复: 42
打印 上一主题 下一主题

闲谈 PID

  [复制链接]
跳转到指定楼层
发表于 2019-6-16 17:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
从N年前接触飞控,就知道PID。但是,始终也没有搞懂PID。即使翻阅了无数网页,也没有结果。可能是我本人太笨。我总以为,如果真的是理解了,知道什么是PID,那么便可以用自己的话,最简单的说出来。否则,就是一知半解。如果真的理解,就可以举出来成千上万的例子,特别简单的例子。否则,就不是真的理解。

但是在互联网上,在实体书店里面,所有的资料,都是你抄袭我来,我抄袭你,举出的例子,说话的口径,就这么几类。跳出这几类,就没有其他的说法了。而最要命的是,这些类里面,对于某些问题说的都非常模糊。回避了要点。

因此,N年过去了,蠢笨的我依旧不懂得PID。

让我先来说其中的一个问题,什么是P。说起P来,无人不知,无外乎:比例控制么。

但是,为撒比例控制会有静差?而且无法消除?这个问题就撂倒99.9的人。如果不理解这一点,就称不上知道什么是P。

再说第二个问题I。
如果我根据音箱的响度来调节音量旋钮,那么这里面有没有I参与?我觉得,如果真能在这2个问题上说清楚,说明白了,才算是懂了PI。

评分

参与人数 2威望 +4 模币 +20 收起 理由
cola2cool + 2 + 10 很给力!
唐山悟空 + 2 + 10 非常好的技术贴,鼓励一下

查看全部评分

欢迎继续阅读楼主其他信息

42
发表于 2024-10-13 23:13 ——“来自手机” | 只看该作者
这个贴的技术含量相当的高呀。
41
发表于 2024-10-10 20:23 | 只看该作者
wylwilliam 发表于 2021-7-21 10:46
这评论,简直是神仙打架呀……我等话都插不上呀。


40
发表于 2024-3-26 21:11 | 只看该作者
本帖最后由 stylecheng 于 2024-3-26 21:28 编辑
tcjsjxx 发表于 2019-6-16 22:01
简单来说,以上实现代码说的就是:

PID输出=P比例系数×(误差)+I系数×(误差积分值)+D系数×(误差微分值)

其中:误差积分值=本次误差+上次误差
           误差微分值=本次误差-上次误差

这里也理解错了, sptr->SumError += iError  ——》 sptr->SumError = sptr->SumError + iError  ——》 误差积分值 = 上次误差积分值 + 本次误差。

39
发表于 2024-3-26 21:09 | 只看该作者
本帖最后由 stylecheng 于 2024-3-26 21:20 编辑
tcjsjxx 发表于 2019-6-16 18:31
那么接下来,显然,P已经玩不转了。那么怎么办?无所作为?一直任由P失灵的现状一直存在?那当然不行,我们 ...

我不知道中间是不是有楼被吞了,单看这楼的理解是存在错误的。静差是外部因素导致的,比如PID控制的加热系统,由于环境温度低于目标温度,发热丝一直在散热(散热就是外部因素),我们讨论理想状态:环境温度恒定,比例系数跟微分系数也调好了。先抛开积分项不谈,由于实际温度越来越接近目标温度,误差越来越小,在不改变比例系数的情况下,输出功率也就来越小,直到输出功率等于散热功率的平衡点的时候,实际温度就不会改变了。因为在散热,所以输出功率必定不为0,所以这个时候实际温度离目标温度会有一定的差距,这个差距就是静差。前面提到了比例系数已经是理想值了,要靠加大比例系数来减小静差那就会导致过冲,而且加大比例系数只能减小而不能削除静差。这个时候就需要靠累积误差的增加来加大输出功率消除静差了。累积误差并不会导致比例系数(二楼里面说的P)的增加,只是单纯把误差值累加起来(这就是叫积分,并不是滥用名词),虽然误差越来越小,但是因为是累加,所以累积误差是一直在增加的,直到实际温度等于目标温度,误差值为0,累积误差不再变化,这个时候累积误差增加的输出功率也就刚好补偿了静差。
38
发表于 2021-9-19 21:58 | 只看该作者
理論派一大堆....他們解說有看也沒懂
在四軸 個人感覺
BF 為例
P 是四軸 前後左右力道    50 和 75數值 我都用過 差異不大  75可能比較大力 比較煞的住 比較能到位  (對我沒甚麼屁用)
I   90 和 50    我可以告訴你   90機子靈敏度很高  50有點惰性   (我是調到50  比較能抗風一點      在自穩模式 I=90的話更快回到平穩 會嘗試更多次追求平穩    )
D 這對我來說  預設值 35左右    他是過濾你的遙控器 延遲微秒時間  數值越大 搖桿越不聽話  也就是 搖桿打了 1 秒 才看見四軸 有反應    (我目前用預設值 沒甚麼好調 )



我自己感覺  P

37
 楼主| 发表于 2021-8-5 17:33 | 只看该作者
时隔两年,又见此贴,不胜唏嘘感慨。

现在看来,PID只是一种适合机器模拟人类的很粗鄙的一种控制机制,但是这种机制,在简单的控制机器上能运行,比没有强。

但是如果真的让人来控制,那会更有效,更精准,即使仅凭本能反应也胜过PID百倍。所以,我们的人脑控制机制不但包含了PID,也包含了它没有的东西,那是更高层次的控制。
36
发表于 2021-7-21 10:46 | 只看该作者
这评论,简直是神仙打架呀……我等话都插不上呀。
来自苹果客户端来自苹果客户端
35
发表于 2020-4-4 19:44 | 只看该作者
关键词 :控制理论,要完全理解前人理论的话高等数学是最基本的,还要有数学系相关课程才行
34
 楼主| 发表于 2020-2-22 08:27 | 只看该作者
本帖最后由 tcjsjxx 于 2020-2-22 08:29 编辑

最后,我再提一点。你们老师应该给您们教过举一反三。如果你没懂什么叫举一反三,至少听说过这个词。

如果你真的懂,兄弟,其实你一定可以举一反三,而不必抱着那个例子不放。很多时候,我们弄懂了一个知识,其意义不单是弄懂了它本身,我们甚至连如何产生它,如果梳理其逻辑关系,如何依据这种模式去发现其他知识都一并拿下。这才是真的懂啊。
33
 楼主| 发表于 2020-2-22 08:17 | 只看该作者
liangzifu 发表于 2020-2-21 10:52
顺便多一嘴,想搞精确一些还是需要高等数学知识的,对积分,微分的理解更好一点。

谁从娘胎里出来,都不可能会算算数。具备高等知识我不反对。

但是高等知识从何学起?能让一个普通的小学毕业或者初中毕业的人懂高数自然可喜。但是如何让他们懂?

你的那个例子我以前拜读了不下20遍,读完以后,还是一头雾水。我就只单纯的想知道其中的一个问题,为何P控制会有静差,它都解释得含含糊糊。

我说过,谁从娘胎里出来,都不可能懂PID。如果懂了PID,那么一定是后天习得。那么问题来了。我们见过有很多人学习过后,说:我知道了。那么我请问,知道了和懂了,有没有区别?任何高深理论的发生起点,一定是极其的简单。这一点不用怀疑。任何一个菜鸟,见到一对陌生的概念,抽象的概念,如果说他懂了,那是不懂装懂。生吞活剥的背诵概念,那不叫懂。

如果把这些陌生的概念有机的移植到你的知识体系上,那才叫懂。作为一个形象世界里面的人,具象思维习惯的人,如何把一些妖魔化的概念移植到自己的知识体系内?靠那些大学教授编写出来的教材可以?你真的确定你可以?还是你能确定其他普通大众也可以?你真的不是在逗我玩?

其实很多人都觉得我是没事找事,这么简单的问题居然耗费了这么长时间,耗费这么多口水在这里辩驳。我其实觉得不是。我觉得这个问题的意义还不仅仅是一个PID的问题。如果大家都能秉承老老实实的态度,秉承工匠的精神,你就会发现,你所谓知道了的东西,其实你不懂。就像PID,一个简单的静差问题,为什么P会有静差问题,几乎让我爬遍了互联网,各路大佬纷纷上阵的结果,依然让我一头雾水。我觉得,这不正常,很不正常。

所以,我在这里,就想让它正常起来。

你的言行很典型。至于究竟怎么典型,我不想多说,因为我也是从你那个路上过来的,我也跟你一样典型过。如果你觉得PID很简单,那么同样的,你也不介意把四元数,旋转矩阵对于坐标变换的意义,WMC飞控的控制流程都说一下。我承认我高数不行,我能力不够,但是你们这些能力够了的人,能不能为我,为大家解释解释?

如果你连几乎被淘汰了的WMC飞控的基本流程都说不出来个一二三,却还在这里振振有词的大谈什么高数,我劝你还是踏实一点,反思你以前的知识体系和获取知识的方法还有你本人对待知识的态度问题。

有很多时候,应试教育产生的结果们,并不能创造出类似于WMC飞控这样的结果,如果连这个都不懂,谈何在其基础上改良?核心的竞争力不是谈空说嘴,那是要你真的懂才可以啊。

这么多年过去了,能让大家懂类似于WMC的文章,我真就没见过。APM也面临被淘汰的局面,但是通俗易懂的让大家了解其控制逻辑的文章,我依然没见过。这是多大的差距?这是多久的差距?这是什么问题?试问,懂高数的人有多少?试问,能让大家都懂APM的人有没有?

这其实不是你的问题,是你的老师们的问题,是教育体制的问题,说深了,是我们国家的哲学体系的问题,所以,我不责备你。我同情你。你是真不懂PID.
32
发表于 2020-2-21 10:52 | 只看该作者
顺便多一嘴,想搞精确一些还是需要高等数学知识的,对积分,微分的理解更好一点。
31
发表于 2020-2-21 10:49 | 只看该作者
网上有一个对PID控制说得特别清楚。
30
发表于 2020-2-6 11:38 | 只看该作者
很多时候,当钻研达到一定程度,如果想再继续下去,一些理论上的深入学习就是不可避免的,一味的要求用通俗化的语言来讲述是不可能的。如果你的天赋和理解力达不到,你不理解就是不理解,这个真的没有办法。当年我写毕业论文的时候,想把别人的一个傅里叶32级分解升级成64级,结果搞了三个月越搞越蒙圈,后来没办法,把别人的简化成为16级,完成了我的博士毕业论文。从那个时候起,我确实明白了工科与理科之间的区别,没有那份脑子,真的进入不了那个世界。
29
发表于 2020-1-22 16:18 | 只看该作者
  支持一下  
28
发表于 2020-1-22 15:46 | 只看该作者
支持一下,楼主有钻研的精神,理论上已经比很多玩家强了包括我,但注意不要钻牛角尖。
来自安卓客户端来自安卓客户端
27
发表于 2019-6-20 14:50 | 只看该作者
我放弃了,楼主你继续吧,发帖达到一定字数,应该也能无师自通了。
26
发表于 2019-6-20 01:38 | 只看该作者
无人机系统是个包罗万象的旷世天坑,关键是它所包含的每个细枝末节的技术水平还都不低!
25
发表于 2019-6-19 22:07 | 只看该作者
tcjsjxx 发表于 2019-6-19 21:48
任何知识的由来,都不是凭空从天上掉下来的。

人们生活的世界,流行的是通俗的逻辑。任何断章取义的结局 ...

支持楼主分享自己的心得。
24
 楼主| 发表于 2019-6-19 21:56 | 只看该作者
N多年前,除法是最为高深的一门学问,除非大学教授,才能理解并加以运算。但是若干年过去了,经过人们的努力,现在小学生也能运算除法。

其他知识,都类似。当我们的小学生都能轻而易举的运用PID,都能运用卡尔曼滤波,都能理解矩阵旋转,那是一个何等光明的世界!
23
发表于 2019-6-19 20:45 | 只看该作者
太专业了这个
来自安卓客户端来自安卓客户端
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表