(一)首先,彻底了解PID是什么?PID是什么?比例积分微分PID是一种非常常用的控制算法。 在工程实践中,应用最广泛的调节器控制规律是比例、积分和微分控制,简称PID控制,也称为PID调节。 由于其结构简单、稳定性好、运行可靠、调节方便,已成为工业控制的主要技术之一。 算法是不能吃的。 PID已有107年的历史。 这不是什么神圣的事情。大家肯定都看到了PID的实际应用。 例如,四轴飞行器,平衡车...汽车的定速巡航,3D打印机上的温度控制器...都类似于此:当某个物理量需要“保持稳定”(比如保持平衡、稳定温度、转速等)时,PID就会派上用场。). 那么问题来了:比如我想控制一个简单的“快速变热”的任务,保持一壶水的温度在50℃。我为什么要用微积分的理论? 你一定在想:这不是那么容易吗~小于50度就让它升温,大于50度就关电源不是吗?用Arduino分钟写几行代码。 没错~要求不高的情况下真的可以这样做~但是!换个角度,你就知道问题出在哪里了:如果我的控制对象是一辆车呢?如果你想让车速保持在50km/h,你敢这么做吗? 想象一下,如果一辆车的巡航控制电脑在某个时间检测到45km/h的速度。 它立刻命令引擎加速!结果对方发动机突然100%全油门,车突然加速到60 km/h。 这时,电脑再次发出命令:刹车!结果,吱......................................................................................................................................................................... 有时候,稳定不了。 因为单片机和传感器不是无限快,采集和控制需要时间。 而且,被控对象具有惯性。 例如,如果你拔掉一个加热器,它的“余热”(即热惯性)可能会进一步提高水温一小会儿。 这时候就需要一种“算法”:它能把要控制的物理量带到目标附近,它能“预见”这个量的变化趋势,它还能消除散热、电阻等因素带来的静态误差...所以,当时的数学家发明了这个经久不衰的算法——这就是PID。 你应该已经知道P,I,D是三个不同的调节函数,可以单独使用(P,I,D),成对使用(PI,PD),也可以组合使用(PID)。 这三个功能有什么区别?别担心,先生。慢慢听我说。我们只说PID控制器最基本的三个参数:KP,KI,KD。 KPP意味着比例 它的作用最明显,原理最简单。 先说这个:要控制的量,比如水温,有它当前的“当前值”和我们预期的“目标值” 当两者相差不大时,让加热器“轻轻”加热。 如果由于某种原因,温度下降了很多,让加热器加热“更难一点” 如果当前温度远低于目标温度,就让加热器“开足马力”,让水温尽快达到目标。 这就是p的作用,相比开关控制方式,是不是“温柔”了很多? 实际写程序时,让偏差(目标减去当前)与调节装置的“调节强度”相关,建立线性函数关系,就可以实现最基本的“比例”控制~ kP越大,调节效果越积极,kP越小,调节效果越保守。 如果你在做平衡车,用P的功能,你会发现平衡车在平衡角附近来回“狂摇”,很难稳定。 如果已经到了这个地步——恭喜你!离成功只有一小步~kDD的作用比较好理解,先说D,最后说I。 我们刚刚有了p的功能。 不难发现,只有P无法让平衡站起来,水温控制的摇摇晃晃,好像整个系统都不是特别稳定,一直在“摇晃” 在你的头脑中想象一个弹簧:它现在处于平衡位置。 拉它,然后放开。 这时候就会震动。 因为阻力很小,所以可能会振荡很长时间才再次停在平衡位置。 想象一下:如果上图所示的系统浸在水中,也把它拉一下:这样的话,再次停在平衡位置所需的时间会少得多。 我们需要一个控制函数,使被控物理量的“变化速度”趋于零,即类似于“阻尼”的函数。 因为,越靠近目标,P的控制效果越小。 越接近目标,p的作用越平缓。 有许多内部或外部因素使控制量在小范围内摆动。 D的作用是使物理量的速度趋于零。每当这个量有一个速度,D就会反方向发力,尽力阻止这种变化。 kD参数越大,速度反方向的制动力越强。 如果是平衡小车,再加上P和D两个控制功能,参数调得合适的话,应该能立起来~加油! 等等,PID三兄弟真的想再要一个。 看起来PD可以保持物理量稳定,那为什么还需要I呢?因为我们忽略了一个重要的情况:kI还是以热水为例。 假设有人把我们的取暖设备拿到一个很冷的地方,开始烧水。 需要烧到50℃ 在P的作用下,水温缓慢上升。 到了45℃的时候,他发现了一个不好的事情:太冷了,水散的速度和P控加热的速度相当。 我能怎么做呢?P哥是这样想的:我离目标很近了,轻轻加热就好。 D哥是这样想的:加热和散热是对等的,温度不波动。我似乎不需要调整什么。 因此,水温永远停留在45℃,永远达不到50℃ 作为一个人,根据常识,我们知道加热功率应该进一步增加。 但是怎么算涨幅呢?前辈科学家想出来的方法真是巧妙。 设置一个积分。 只要偏差存在,就会不断整合(积累)并体现在调整力度上。 这样,即使45℃和50℃相差不太大,随着时间的推移,只要没有达到目标温度,积分就会不断增加。 系统会慢慢意识到,在达到目标温度之前,是时候加大功率了!达到目标温度后,假设温度不波动,积分值不会再变化。 此时,加热功率仍然等于散热功率。 然而,温度稳定在50℃ kI值越大,积分时间倍增系数越大,积分效应越明显。 因此,I的作用是减少静态下的误差,使被控物理量尽可能接近目标值。 我在使用的时候还有一个问题:你需要设置积分极限。 以防止积分过大而在加热开始时无法控制。 (2)我们来看看PID怎么调?(PID参数调整公式)寻找最佳参数设置。先查从小到大的顺序,然后积分比例,最后在曲线上加微分频繁振荡。比例带板需要放大弯道,绕大湾浮动,比例带板到小弯弯道偏离,慢慢恢复。积分时间对下降曲线的波动周期长,积分时间拉长曲线振荡频率快。首先,当动态差异较大时,微分降低且波动较慢。 微分时间要拉长理想曲线的两波,前高后低,调节品质不会低。如果反应较快,增加P,减少I,如果反应较慢,减少P,增加I,如果比例过大,会引起系统震荡。积分过大会造成系统迟钝。
以上就是由优质生活领域创作者 深圳生活网小编 整理编辑的,如果觉得有帮助欢迎收藏转发~
本文地址:https://www.szbubu.com/3085265.html,转载请说明来源于:深圳生活网
声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场。