关于增量式 PID 公式的几点疑问
摘要:PID就是对输入偏差进行比例积分微分运算,然后将运算的叠加结果去控制执行机构。实践练习中,如何把这一原理转化为程序?为什么是用那几个error进行计算?
PID 就是对输入偏差进行比例积分微分运算,然后将运算的叠加结果去控制执行机构。实践练习中,如何把这一原理转化为程序?为什么是用那几个 error 进行计算?
以下是我摘录的一段 PID 程序,我曾用其对智能车的速度进行闭环控制:
P:Proportional 比例
I:Integrating 积分
D:Differentiation 微分
Pwm_value:输出 Pwm 暂空比的值
Current_error:当前偏差
last_error:上次偏差
prev_error:上上次偏差
增量式 PID 计算公式:
P=Kp*(current_error﹣last_error);
D=Kd*(current_error﹣2*last_error﹢prev_error);
I=Ki*current_error;
PID_add=Pwm_value+P﹢I﹢D;
一、为什么是 PID_add=Pwm_value+(P﹢I﹢D)而不是 PID_add=P+I+D?
如上图,有一个人前往目的地 A,他用眼睛视觉传感器目测到距离目的地还有 100m,即当前与目的地的偏差为 100,他向双脚输出Δ=100J 的能量,跑呀跑,10s 之后,他又目测了一次,此时距离为 40m,即 current_error=40,他与 10s 前的偏差 last_error=10 对比,即 current_error - last_error=-60,这是个负数,他意识到自己已经比较接近目的地,可以不用跑那么快,于是输出Δ=100+(-60)=40J 的能量,40J 的能量他刚好以 4m/s 的速度跑呀跑,10s 之后,他发现已经到达目的点,此时 current_error=0,大脑经过思考得出 current_error—last_error=0 - 40=-40,两脚获得的能量Δ=40+(-40)=0,即他已经达到目的地,无需再跑。在刚才的叙述中,可知增量式 P+I+D 输出的是一个增量,将该增量与调节量相加后所得到值才是最终输出量,其反应的是之前的输出量是在当前的状态中是该增加还是该减少。
二、纯比例控制 P=Kp*(current_error﹣last_error),怎样理解﹙current_error﹣last_error ﹚?
PID 中纯比例控制就是把被控制量的偏差乘以一个系数作为调节器的输出,在增量式 PID 中,反映在程序上的,我们被控制量就是 error,而实际上,例如在速度控制中 error=目标速度﹣当前速度,所以明确目的:我们通过控制 error 趋近于 0,最终使得当前速度趋近于目标速度。
如上图,函数经过时间Δt,由 y1 变化为 y2 时,问 y 增长的比例为多少?很显然:K=﹙y2-y1﹚/Δt;
以速度控制为例,若 y 为 error,如上图,在时间 t1 到 t2 的过程中,我们可以得到输出控制量 error 变化的趋势为(current_error - last_error)/Δt。得到偏差的变化趋势后,乘以 Kp 使输出量与 error 相对变化。这个道理犹如模拟电子电路中,声音信号经过功放管放大输出的信号与输入信号相对应的线性变化。
三、引进微分控制?
然而,通常情况下,我们的被控制量并非纯比例式地变化,如下图:
比例表示变化趋势,微分则表示变化趋势的变化率,映射到一个图像曲线中即为导数的变化!上图中若求曲线中 x2 至 x1 某点的斜率,当Δt 足够小时,则可近似为(y2 - y1)/Δt ,可知 x3 到 x1 导数的变化为﹛(y3 - y2) -(y2 - y1)﹜/Δt =(y3 - 2*y2﹢y1)/Δt 。将不同时间的 y1、y2、y3 映射为 prev_error、last_error、current_error;则 error 变化趋势的变化为﹛(current_error - last_error) - (last_error - prev_error)﹜/Δt=﹛﹙current_error - 2*last_error﹢prev_error﹚﹜/Δt,可得微分 D=Kd*(current_error﹣2*last_error﹢prev_error)。在系统中加入微分反映系统偏差信号的变化率,能预知偏差变化的趋势,具有超前控制作用,提前处理偏差。
四、引进积分控制?
积分控制可以消除偏差,体现在公式中较容易理解,当前的偏差差经过系数 Ki 的放大后映射为输出控制量,即 I=Ki*current_error。P 只要前后偏差之差为 0,即 current_error - last_current=0,则不进行调节,D 只要前后偏差变化率为 0,即(current_error﹣2*last_error﹢prev_error)=0,则不进行调节。而对于积分只要偏差存在,调节就始终进行,因此积分可以消除误差度,但在在某些情况下,一定范围内的误差是允许的,而如果此时积分调节始终存在,可能会导致系统稳定性下降,如上图,此时可通过弱化积分系数 Ki 使系统稳定。
- 安森美汽车&能源基础设施白皮书下载活动时间:2024年04月01日 - 2024年10月31日[立即参与]
- 2023年安森美(onsemi)在线答题活动时间:2023年09月01日 - 2023年09月30日[查看回顾]
- 2023年安森美(onsemi)在线答题活动时间:2023年08月01日 - 2023年08月31日[查看回顾]
- 【在线答题活动】PI 智能家居热门产品,带您领略科技智慧家庭时间:2023年06月15日 - 2023年07月15日[查看回顾]
- 2023年安森美(onsemi)在线答题活动时间:2023年06月01日 - 2023年06月30日[查看回顾]
- 汽车电子电源行业可靠性要求,你了解多少?
- 内置可编程模拟功能的新型 Renesas Synergy™ 低功耗 S1JA 微控制器
- Vishay 推出高集成度且符合 IrDA® 标准的红外收发器模块
- ROHM 发布全新车载升降压电源芯片组
- 艾迈斯半导体推出行业超薄的接近/颜色传感器模块,助力实现无边框智能手机设计
- 艾迈斯半导体与 Qualcomm Technologies 集中工程优势开发适用于手机 3D 应用的主动式立体视觉解决方案
- 维谛技术(Vertiv)同时亮相南北两大高端峰会,精彩亮点不容错过
- 缤特力推出全新商务系列耳机 助力解决开放式办公的噪音难题
- CISSOID 和泰科天润(GPT)达成战略合作协议,携手推动碳化硅功率器件的广泛应用
- 瑞萨电子推出 R-Car E3 SoC,为汽车大显示屏仪表盘带来高端3D 图形处理性能
众所周知,LED的驱动IC担负着在输入电压不稳定的情况下,为LED提供恒定的电流,并控制恒定(可调)亮度的作用。无论是室内照明,还是车载应用,都肩负着极为重要的使命。
- 关于反激电源效率的一个疑问
时间:2022-07-12 浏览量:10198
- 面对热拔插阐述的瞬间大电流怎么解决
时间:2022-07-11 浏览量:8953
- PFC电路对N线进行电压采样的目的是什么
时间:2022-07-08 浏览量:9595
- RCD中的C对反激稳定性有何影响
时间:2022-07-07 浏览量:7205
- 36W单反激 传导7~10M 热机5分钟后超标 不知道哪里出了问题
时间:2022-07-07 浏览量:5979
- PFC电感计算
时间:2022-07-06 浏览量:4189
- 多相同步BUCK
时间:2010-10-03 浏览量:37872
- 大家来讨论 系列之二:开机浪涌电流究竟多大?
时间:2016-01-12 浏览量:43167
- 目前世界超NB的65W适配器
时间:2016-09-28 浏览量:60030
- 精讲双管正激电源
时间:2016-11-25 浏览量:128138
- 利用ANSYS Maxwell深入探究软磁体之----电感变压器
时间:2016-09-20 浏览量:107564
- 【文原创】认真的写了一篇基于SG3525的推挽,附有详细..
时间:2015-08-27 浏览量:100304