PID学习记录

PID算法是个很经典的东西,做平衡小车,飞行器都会有所涉及到,但对于刚刚开始学习pid算法的我来说简直是一种折磨和一道难以跨过的坎。因此我把我目前所理解到的pid来好好讲解一下,也用来做一次知识巩固

简介:

PID全名为:比例积分微分控制,是用算法进行机械控制的一种,也是目前被广泛应用于工业过程控制。PID的原理简单的说,就是根据用户给定值和实际输出值构成控制偏差,将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制。

1.控制规律:

数字式PID分为位置式PID增量式PID控制算法。位置式PID和增量式PID的区别是输出不同、是否有积分部件、是否有记忆功能。在小车里一般用增量式。位置式PID的输出与过去的所有状态有关,计算时要对e进行累加。而且小车的PID控制器的输出并不是绝对数值,而是一个△,代表增多少,减多少。换句话说,通过增量PID算法,每次输出是PWM要增加多少或者减小多少,而不是PWM的实际值。

PID控制器是一种线性控制器,它根据给定值r(t)与实际输出值c(t)构成偏差:e(t)=r(t)-c(t)。将偏差的比例§、积分(I)和微分(D)通过线性组合构成控制量,对受控对象进行控制。其控制规律为:
在这里插入图片描述传递函数为:在这里插入图片描述 式中,Kp为比例系数,Ti为积分时间常数,Td为微分时间常数;Ki=Kp/Ti,为积分系数;Kd=Kp*Td,为微分系数,dt是时间,每隔一段的时间并重复执行。

P:Proportion(比例),就是输入偏差乘以一个常数。
I :Integral(积分),就是对输入偏差进行积分运算。
D:Derivative(微分),对输入偏差进行微分运算。

注:输入偏差=控制对象目前的值-目标值。比如说我要把水位控制在15米,但是现在我刻度上读出水位为20米。则这个15米就是”目标值“,20米就是“控制对象目前的值”。然后来看一下,这三个元素在PID算法中的作用。P:如果现在的输出是1,目标输出是100,那么P的作用是以最快的速度达到100,把P理解为一个系数即可;D呢?大家都知道微分是求导数,导数代表切线,切线的方向就是最快到至高点的方向,那么微分就是加快调节过程的作用了。而I呢?I就是使误差为0而起调和作用,一般在实际中会有各种因数导致输入值和输出值不相等的情况,所以通过对所有误差进行累计求积分,积分能在比例的基础上消除余差。

综上所述,比例环节:即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用以减小误差。当偏差e=0时,控制作用也为0。控制作用的强弱取决于比例系数,比例系数越大,控制作用越强,控制过程的静态偏差也就越小;但是越大,也约容易产生振荡,破坏系统稳定性。所以比例系数选择必须恰当,才能过渡时间少,静差小而稳定的效果。因此,比例控制是基于偏差进行调节的,即有差调节。积分环节:能对误差进行记忆,主要用于消除静差,提高系统的无差度,积分作用的强弱取决于积分时间常数Ti,Ti越大,积分作用越弱,反之则越强。微分环节:阻止偏差的变化,根据偏差变化趋势进行控制。能反映偏差信号的变化趋势(变化速率),并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。

2.PID参数的设定:

增大比例系数P将加快系统的响应,它的作用于输出值较快,但不能很好稳定在一个理想的数值,不良的结果是虽较能有效的克服扰动的影响,但有余差出现,过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏。积分能在比例的基础上消除余差,它能对稳定后有累积误差的系统进行误差修整,减小稳态误差。微分具有超前作用,对于具有容量滞后的控制通道,引入微分参与控制,在微分项设置得当的情况下,对于提高系统的动态性能指标,有着显著效果,它可以使系统超调量减小,稳定性增加,动态误差减小。在调整的时候,你所要做的任务就是在系统结构允许的情况下,在这三个参数之间权衡调整,达到最佳控制效果,实现稳快准的控制特点。

3.在代码中简单实现PID

输出=(p*偏差)+(i*偏差和)+(d*(偏差-上偏差))

double pid()
{
uChar8 uKP_Coe; //比例系数
uChar8 uKI_Coe; //积分常数
uChar8 uKD_Coe; //微分常数
static double 偏差和;
static double 上偏差;
偏差=目标值-实际值;
偏差和=偏差和+偏差;
上偏差=偏差;
return (uKP_Coe*偏差)+(uKI_Coe*偏差和)+(uKD_Coe*(偏差-上偏差));

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值