雀恰营销
专注中国网络营销推广

pid算法详细介绍

pid算法详细介绍

说明

一、PID算法简介

在智能车比赛中,为了让智能车能够根据赛道的不断变化灵活机动,采用PID算法是有道理的。

首先,必须明确PID算法是基于反馈的。在正常情况下,这个反馈是速度传感器返回给微控制器的电机当前速度。简单地说,这个反馈是用来和预设值进行比较的。如果转速过大,电机两端的电压就会降低;相反,电机两端的电压会增加。

顾名思义,P 表示比例,I 表示积分,D 表示微分。在电机调速系统中,输入信号为正,当要求电机正转时,反馈信号也为正(在PID算法中,误差=输入-反馈),电机转速越高,较大的反馈信号。要了解PID算法的原理,首先要了解P、I、D各自的含义和控制规律:

比例P:比例项其实就是预设值与反馈值的差值。做一个大倍数。例如,如果电机两端的原始电压为U0,比率P为0.2,输入值为800,反馈值为1000,则输出到电机两端的电压应变为U0+ 0.2 *(800-1000).从而达到调速的目的。显然,当比例P较大时,电机转速返回输入值的速度为速度更快,调节灵敏度会更高。因此,增加 P 值可以减少从非稳态到稳态的时间。但同时也可能导致电机转速在预设值附近振荡,所以引入积分I来解决这个问题。

积分I:顾名思义,积分部分实际上是预设值与反馈值的差值在时间上的累加。当差异不是很大时,为了不引起振荡,可以先让电机继续以原来的速度运转。该差异由积分项累积。当总和累加到一定值时,会一次性处理,从而避免振荡的发生。可以看出,积分项的调整存在明显滞后。而且I值越大,滞后效应越明显。

微分D:微分项实际上是电机速度的变化率。也就是前后两次的区别。也就是说,微分项是基于差值的变化率。预先给出相应的调整动作。可以看出微分项的调整是提前的。而D值越大pid算法详细介绍,推进效果越明显。它可以在一定程度上缓冲振荡。比例项的作用只是放大误差的幅度,而目前需要加入的是“微分项”,可以预测误差变化的趋势。这样,比例+微分控制器可以提前使抑制误差的控制效果为零甚至负值,从而避免被控变量严重超调。

从各参数的控制规律可以看出,比例P使反应更快,微分D使反应超前,积分I使反应滞后。在一定范围内,P和D的值越大,调节效果越好。

二、PID调试一般原则

一个。当输出不振荡时,增加比例增益P。

b.当输出不振荡时,减小积分时间常数Ti。

c。当输出不振荡时,增加微分时间常数Td。

三、pid算法参数调整的一般步骤

一个。确定比例增益P

在确定比例增益P时,先去掉PID的积分项和微分项,一般设Ti=0、Td=0,PID为纯比例调节。输入设置为系统最大允许值的60%~70%pid算法,比例增益P从0逐渐增大,直到系统振荡; P逐渐减小直至系统振荡消失,记录此时的比例增益P,并将PID的比例增益P设置为当前值的60%~70%。比例增益P调试完成。

b.确定积分时间常数 Ti

确定比例增益P后,将积分时间常数Ti的初始值设置一个较大的值,然后逐渐减小Ti直到系统振荡,然后反向增大Ti直到系统振荡。振荡消失。记录此时的 Ti,并将 PID 的积分时间常数 Ti 设置为当前值的 150%~180%。积分时间常数Ti调试完成。

c。确定积分时间常数Td

积分时间常数Td一般不需要设置,设置为0即可。设置方法与确定P和Ti一样,取30%不振荡。

d。对系统空载和负载进行联合调整,然后对PID参数进行微调,直到满足要求

找三个以上PID算法应用实例,根据实例明确调试参数。方法和参数的含义,同时介绍给团队成员

四、PID算法应用环境

当被控对象的结构和参数不能完全掌握pid算法,或者需要达到精确的数学模型,控制理论的其他技术难以使用时,系统控制器的结构和参数必须由经验和现场调试确定; (因为赛道的参数事先是未知的,只能根据实时采集的比赛数据。赛道数据控制小车沿着赛道行驶)。

pid算法详细介绍

在FPGA中使用PID算法进行电机控制的完整框图

五、PID算法原理

PID 及其衍生算法是工业应用中应用最广泛的算法之一,是当之无愧的通用算法。如果能掌握PID算法的设计和实现过程,对于普通的研发人员来说应该足够了。处理一般的研发问题,值得称道的是,在我接触过的控制算法中,PID控制算法是最简单的,也是最能体现反馈思想的控制算法,可谓是经典中的经典。经典的东西不一定复杂。经典的东西往往是简单的,最简单的。想想牛顿的力学三定律,想想爱因斯坦的质能方程。多么简单!简单不原始,简单不落后,简单到美的程度。我们来看看PID算法的一般形式:

pid算法详细介绍

PID的过程简单到不能再简单了。被控变量由误差信号控制,控制器是比例、积分、微分三个环节的总和。这里我们指定(在时间 t):

1.输入是 rin(t);

2.输出为 rout(t);

3.偏差为err(t)=rin(t)-rout(t);

pid的控制规律是

理解这个公式主要从以下几个问题开始。为了便于理解,对控制环境进行了详述:

pid算法详细介绍

1.规定用这个过程来调节直流电机的转速;

2.输入rin(t)为电机转速预设值;

3.输出rout(t)为电机转速的实际值

4.执行器为直流电机;

5.传感器为光电编码器,假设编码器为10线;

6.直流电机PWM调速速度,单位为转/分;不难看出以下结论:

1.输入量rin(t)为电机转速预定值(rev/min);2.输出rout(t)为电机转速实际值(rev /min);3.偏差为预设值与实际值之差(rev/min)

六、@ >PID算法的应用——线性控制原理

PID控制的三个要素:控制器、被控对象和反馈装置。控制器是一个数学模型,就PID而言相当于PID算法。是对反馈量的处理和输出。通俗的讲,对于每一个受控量,我用什么函数公式来计算我的输出,或者我如何描述我的输出。现在我给出一个描述性的传递函数。从数学的角度看:它的自变量就是反馈值。当该函数的对应关系确定后,输出为固定值。我的希望是:这个描述符函数是一个透明的空盒子——它既反映了系统的外部特征,也反映了它的内部结构。

以比赛为例:假设我要建立这样一个闭环系统。该系统的反馈调整建立了描述函数。最根本的是:

1 系统的动态从根本上取决于哪些因素; 2 这些因素如何决定系统的性能;

数学模型说明:1 描述函数——“微分方程。描述函数的自变量和因变量满足微分方程。(瞬时变化的关系表达式)

2 对微分方程进行处理,得到其特征方程。这个特征方程称为描述函数的极点。

ps:下面简要描述极点和零点。对描述函数进行拉普拉斯变换,将描述函数变换为与自身相关的函数,求其通解和特解。一般的解决方案是这个函数的开环特性,用来描述输出和输入之间的关系,零点是被控变量,用来调节闭环系统的反馈参数。 (函数的拉普拉斯变换其实就是为了描述一个现象,大部分函数都是常微分方程)

我们需要研究这个描述函数的解,虽然在线性控制原理中不关心不需要知道他,但是这个常微分方程的极点形式的知识有助于我们理解这个的物理意义描述功能。这是进阶数的知识,不再赘述。通过求解可知,极点实际上是描述函数经过拉普拉斯变换后的一阶项的系数,零点是反馈量的相关函数的系数。也就是说,一旦确定了极点,函数也就确定了。对每个输入函数,给定一个零点变换,然后进行极点变换,最后生成输出。

联系我们现在得到的结论:对于一个闭环系统,我们理论上求解控制器的一些参数,或者调试求解,最后改变输出变量,使系统持续稳定。也就是说,在控制器中,存储了一些关于反馈值的预期实现方法,这些方法通过一些固定的参数来描述,然后输出变量改变系统的状态。我的任务是调试这些物理上有意义的参数。

下面是一个简单的PID编程:

双倍 kp,ki,kd;

双重结果函数(void)

{

双重错误;

双重差异;

double lasterror = 0;

错误 = 目标 – 输入;

sumerror += 错误;

diff = error – lasterror;

最后一个错误 = 错误;

输出 = kp * error + ki * sumerror + kd * diff;

返回输出;

}

你会发现想象中的PID其实比真实的PID要复杂的多,这是当然的,因为经过PID数学计算,带入的公式只是一个近似值。但这不是随机值,最重要的是,你需要数学。

我不得不说,对于一个完全外行来说pid算法详细介绍,PID 是一个非常高级的术语。很多人一上手就接触到PID,却连输出和输入是什么都不明白。其实,你不妨接触一下线性控制理论,它对你的视野和思维有明确的指导。

找到最佳参数设置,从小到大依次检查;

先是比例,然后是积分,最后是导数;

曲线频繁振荡,比例刻度盘要放大;

曲线绕大弯浮动,比例刻度盘转小;

赞(0) 打赏
未经允许不得转载:雀恰营销 » pid算法详细介绍
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

文章对你有帮助就赞助我一下吧

支付宝扫一扫打赏

微信扫一扫打赏