在比赛中对于PID参数的理解

 

 

         对于运动控制算法,最经典的便是PID算法,当然也是应用非常广泛的算法,如果学过自动控制原理的话,PID算法会更好理解一些,这里就不再普及自动控制原理的知识了,直接来具体介绍PID算法。当然,PID算法也有很多种类,有一本书名为<<先进PID控制 MATLAB仿真>>推荐买一本看看。另外,对于PID控制系统的详细理论介绍,在《过程控制》中介绍得很详细,如果看了下面的我的总结还是不理解,或想继续深入的话,推荐看一下过程控制。

 

 

    下面还是说一下个人在实际的飞思卡尔比赛中对于PID的一下感受。

 

PID控制器根据系统的误差,利用误差的比例,积分,微分三个环节的不同组合计算出控制量。

P------比例

I-------积分

D------微分

一.P(比例)环节

P环节表示输入与输出之间的比例关系,设X为比例带,则其的数学公式为:

X=[E / (Emax - Emin)] / [U / (Umax -Umin)] * 100%

 =(1/Kp) * [(Umax - Umin) / (Emax - Emin)]

Emax - Emin ---------输入信号偏差范围

Umax - Umin --------输出信号偏差范围

我们的目的是让比例带能够达到100%(特殊情况可以不到100%或在100%以上,这个就是通常所说的大P与小P,这种情况在下面介绍),要使得X为100%,则参数Kp必须满足Kp=[(Umax - Umin) / (Emax - Emin)],运用到智能车中的话,这个公式的作用是找到大P与小P的分割点,我们都知道,直道用小P跑得直,弯道用大P转弯快,那么这个临界点就非常重要,临界点的确定就是根据让比例带X达到100%的Kp值,以方向控制为例,假如电感采集的信号经过归一化(后面会介绍,可以先查一下概念)之后,再经过方向算法之后的范围为-100~100,那么,输入范围就为200,程序中舵机的占空比范围为450~550(精度0.1%),那么输出范围就为100,则临界Kp=100/200=0.5,这个临界Kp还有一个用途,即如果是慢速跑的话,全场只用一个Kp=0.5是可以跑完全程的,因为此时比例带X=100%。

上面介绍了Kp的计算公式,那么P调节的特点是什么?

如果控制器只使用P调节,那么这个系统不可避免会有稳态误差,也称余差,残差,比例带太大或太小都不好,比例带大,则对应的Kp较小,就会出现达不到目标值的情况,比例带小,则Kp较大,就会加剧系统震荡。

二.I(积分)环节

积分环节的作用就是消除稳态误差,只要偏差存在,调节器就会不断变化,直到偏差为0,调节器才会稳定下来,因此积分环节是有利有弊的,对于电机控制,积分环节需要引入,因为智能车对于电机稳定控速要求是比较高的,而且电机可以利用编码器引入速度反馈量形成闭环,对于舵机控制,积分环节是可以不引入的,因为对于方向控制,引入积分环节可能会起反向作用,使得系统产生震荡,舵机控制是开环的,没有反馈量。

三.D(微分)环节

微分环节的作用是加快被控量的变化速度,微分环节有一定的预见性,超前性,不会使调节器等到被调量出现很大偏差才开始动作。D调节在舵机控制里是很重要的一环,因为速度提升起来后,快速转弯就变成了一个很棘手的问题,可以从机械方面改进,也可以从P调节改进,也可以从D环节改进,因此D环节与P环节是经常要调试的两个环节。

 

具体调试

接下来就是选用具体的PID算法了,先说电机,对于电机控制算法的调试流程,先找到速度反馈量(编码器的值)与占空比之间的一个大致关系式,然后再写出具体算法的程序,然后再根据调试口诀来调试PID参数。

要调试前必须要有显示设备,可以直接使用oled来显示参数与波形,也可以使用串口上位机来显示波形,推荐使用山外的多功能调试助手,软件上有虚拟示波器,只不过要使用这个上位机的数据规则来发送数据。

测试过上位机软件通信没问题后,就可以先测出大致的速度反馈量(编码器的值)与占空比之间的关系式,这个关系式不需要太精确,只用大致吻合就行,一般使用线性关系。

    具体的参数调试使用PID调试口诀就可以,最终要达到"稳准快"的目标。当然对于PID的参数确定除了经验调试法,也有理论计算法,这一点在"计算机控制系统"中有介绍。如果自己在网上搜索的话,可以搜扩充临界比例法与扩充响应曲线法。

 

         对于运动控制算法,最经典的便是PID算法,当然也是应用非常广泛的算法,如果学过自动控制原理的话,PID算法会更好理解一些,这里就不再普及自动控制原理的知识了,直接来具体介绍PID算法。当然,PID算法也有很多种类,有一本书名为<<先进PID控制 MATLAB仿真>>推荐买一本看看。另外,对于PID控制系统的详细理论介绍,在《过程控制》中介绍得很详细,如果看了下面的我的总结还是不理解,或想继续深入的话,推荐看一下过程控制。

    下面还是说一下个人在实际的飞思卡尔比赛中对于PID的一下感受。

 

PID控制器根据系统的误差,利用误差的比例,积分,微分三个环节的不同组合计算出控制量。

P------比例

I-------积分

D------微分

一.P(比例)环节

P环节表示输入与输出之间的比例关系,设X为比例带,则其的数学公式为:

X=[E / (Emax - Emin)] / [U / (Umax -Umin)] * 100%

 =(1/Kp) * [(Umax - Umin) / (Emax - Emin)]

Emax - Emin ---------输入信号偏差范围

Umax - Umin --------输出信号偏差范围

我们的目的是让比例带能够达到100%(特殊情况可以不到100%或在100%以上,这个就是通常所说的大P与小P,这种情况在下面介绍),要使得X为100%,则参数Kp必须满足Kp=[(Umax - Umin) / (Emax - Emin)],运用到智能车中的话,这个公式的作用是找到大P与小P的分割点,我们都知道,直道用小P跑得直,弯道用大P转弯快,那么这个临界点就非常重要,临界点的确定就是根据让比例带X达到100%的Kp值,以方向控制为例,假如电感采集的信号经过归一化(后面会介绍,可以先查一下概念)之后,再经过方向算法之后的范围为-100~100,那么,输入范围就为200,程序中舵机的占空比范围为450~550(精度0.1%),那么输出范围就为100,则临界Kp=100/200=0.5,这个临界Kp还有一个用途,即如果是慢速跑的话,全场只用一个Kp=0.5是可以跑完全程的,因为此时比例带X=100%。

上面介绍了Kp的计算公式,那么P调节的特点是什么?

如果控制器只使用P调节,那么这个系统不可避免会有稳态误差,也称余差,残差,比例带太大或太小都不好,比例带大,则对应的Kp较小,就会出现达不到目标值的情况,比例带小,则Kp较大,就会加剧系统震荡。

二.I(积分)环节

积分环节的作用就是消除稳态误差,只要偏差存在,调节器就会不断变化,直到偏差为0,调节器才会稳定下来,因此积分环节是有利有弊的,对于电机控制,积分环节需要引入,因为智能车对于电机稳定控速要求是比较高的,而且电机可以利用编码器引入速度反馈量形成闭环,对于舵机控制,积分环节是可以不引入的,因为对于方向控制,引入积分环节可能会起反向作用,使得系统产生震荡,舵机控制是开环的,没有反馈量。

三.D(微分)环节

微分环节的作用是加快被控量的变化速度,微分环节有一定的预见性,超前性,不会使调节器等到被调量出现很大偏差才开始动作。D调节在舵机控制里是很重要的一环,因为速度提升起来后,快速转弯就变成了一个很棘手的问题,可以从机械方面改进,也可以从P调节改进,也可以从D环节改进,因此D环节与P环节是经常要调试的两个环节。

 

具体调试

接下来就是选用具体的PID算法了,先说电机,对于电机控制算法的调试流程,先找到速度反馈量(编码器的值)与占空比之间的一个大致关系式,然后再写出具体算法的程序,然后再根据调试口诀来调试PID参数。

要调试前必须要有显示设备,可以直接使用oled来显示参数与波形,也可以使用串口上位机来显示波形,推荐使用山外的多功能调试助手,软件上有虚拟示波器,只不过要使用这个上位机的数据规则来发送数据。

测试过上位机软件通信没问题后,就可以先测出大致的速度反馈量(编码器的值)与占空比之间的关系式,这个关系式不需要太精确,只用大致吻合就行,一般使用线性关系。

    具体的参数调试使用PID调试口诀就可以,最终要达到"稳准快"的目标。当然对于PID的参数确定除了经验调试法,也有理论计算法,这一点在"计算机控制系统"中有介绍。如果自己在网上搜索的话,可以搜扩充临界比例法与扩充响应曲线法。

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值