☰
stm32PID算法-理论和思路
2026/11/4 7:06:59 网站建设 项目流程

1.简介

1.PID是一种闭环控制算法,能动态改变施加到被控队形的输出值,使得被控对象某一物理量的实际值快速,准确,稳定地跟踪到指定的目标值

2.PID是一种基于误差调控的算法,规定:误差=目标值-实际值,PID的任务是使误差始终为0

3.PID对被控对象模型要求低,无需建模,即使被控对象内部运作规律不明确,PID也能调控

2.开环与闭环

1.开环:控制器单项输出值给被控对象,不获取被控对象的反馈,控制器对被控对象的执行状态不清楚

1.优势:结构简单,无需精准控制时,使用开环

2.闭环:控制器输出值给被控对象,同时获取被控对象的反馈,控制器知道被控对象的执行状态,可以根据反馈修改输出值以优化控制

3.PID公式与系统框图

1.定义误差:error(t)=target(t)-actual(t)

2.PID输出值:out(t)=Kp(error(t)+1/Ti∫error(t)dt+Tdderror(t)/dt)

3.PID输出值:out(t)=Kp*error(t)+Ki*∫₀$A^{t}$error(t)dt+Kd*derror(t)/dt

4.比例项(P)

1.只含有比例项的PID输出值:out(t)=Kp*error(t)

2.比例项的输出值仅取决于当前时刻的误差,与历史时刻无关,当前存在误差时,比例项输出一个与误差成正比的值,当前不存在误差时,比例项输出0

3.Kp越大,比例项权重越大,系统相应越快,但超调也会随之增加

4.纯比例项控制时,系统一般会存在稳态误差,Kp越大,稳态误差越小

1.稳态误差

1.系统进入状态时,实际值和目标值存在始终一个稳定的差值

2.产生原因:纯比例项控制室,若误差为0,则比例项结果也为0,被控对象输入0时,一般会自发地向一个方向偏移,产生误差,产生误差后,误差非0,比例项负反馈调控输出,当调控输出力度和自发偏移力度相同时,系统达到稳态

3.判断是否会产生稳态误差:给被控对象输入0,判断被控对象会不会自发偏移

4.判断稳态误差的方向:给被控对象输入0,自发偏移方向即为稳态误差方向

5.积分项(I)

1.含比例项和积分项的PID输出值:out(t)=Kp*error(t)+Ki*∫(0-t)error(t)dt

2.积分项的输出值取决于0-t所有时刻误差的积分,与历史时刻有关,积分项将历史所有时刻的误差累积,乘上积分项系数Ki后作为积分项输出值

3.积分项由于弥补纯比例项产生的稳态误差,若系统持续产生误差,则积分项会不断累积误差,直到控制器产生动作,让稳态误差小消失

4.Ki越大,积分项权重越大,稳态误差消失越快,但系统滞后性也会随之增加

6.微分项(D)

1.含有比例项,积分项和微分项的PID输出值

out(t)=Kp*error(t)+Ki∫(0-t)error(t)dt+Kd*(drerror(t))/dt

2.微分项的输出值取决于当前时刻误差变化的频率,与当前时刻附近误差变化的趋势有关,当误差急剧变化时,微分项会负反馈输出相反作用力,阻碍误差几句变化

3.斜率一定程度上反应堆误差未来的变化趋势,这使得微分项具有“预测未来,提前调控”的特性

4.微分项给系统增加阻尼,可以有效防止系统超调,尤其是惯性比较大的系统

5.Kd越大,微分项权重越大,系统阻尼越大,但系统卡顿的现象也会随之增加

7.离散形式PID与连续形式PID公式

1.连续形式PID

out(t)=Kp*error(t)+Kᵢ∫ᵗ₀error(t)dt+Kd*(derror(t))/dt

2.离散形式PID(单片机每隔T时间,才会进行一次PID计算和调控,单片机里的PID调控,是间隔进行的)

1.其中k取值为自然数,表示第几次调控

2.error(k):表示第几次调控时当前的误差值

3.T:离散后的调控周期,也就是系统每隔T时间,调控一次

4.j:累加时的临时变量

3.若将T并入Ki和Kd,则

注:当T改变时Ki和Kd参数也要更改

4.示意图

1.左边是积分示意图,横轴表示时间,纵轴表示误差的变化,绿色线是连续性式的误差曲线,横轴的每个标注出的坐标表示第k次调控(每次调控时间间隔都是T)

8.位置式PID与增量式PID公式

1.∆out(t)是本次,上次,上上次error的线性组合

2.位置式PID和增量式PID的比较

1.位置式PID由连续性式PID直接离散得到,每次计算得到的全是全量的输出值,可以直接给被控对象

2.增量式PID由位置式PID推导得到,每次计算得到的是输出值的增量,如果直接给被控对象,则需要被控对象内部有积分功能

3.增量式PID也可以在控制器内进行积分,然后输出积分后的结果,此时增量式PID与位置式PID整体功能没有区别

4.位置式PID和增量式PID1计算时产生的中间变量不同,如果对这些变量加以调节,可以实现不同的特性

9.PID程序实现

1.确定一个调控周期T,每隔时间T,程序执行一次PID调控,调控周期一般取决于被控对象变化的快慢(对于电机控速而言,调控周期无需特别快,一般20-100ms即可,控速不可过快,因为受编码器分辨率限制,调控周期越快,编码器测速的分辨率越低,过快的调控周期,编码器测速不准)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询