关于pid调节只用KP调节达不到目标值的分析

您所在的位置:网站首页 kp(1-p) 关于pid调节只用KP调节达不到目标值的分析

关于pid调节只用KP调节达不到目标值的分析

2024-07-08 03:11| 来源: 网络整理| 查看: 265

       在实际调节pid时候,我发现,单纯的用kp调节,达不到目标速度,举个例子,比如说,电机最大占空比是200,在200的时候假设转速为100转每秒,所以我们把100转设为电机的最大转速,那么kp取值为200/100=2,此时如果不引入误差,那么设目标速度为50,那么占空比应该是50*2=100,我说在100的占空比转速是50,一点问题没有。

       但是这样的话,没有引入误差,所谓的pid也就没有意义,所以我们引入误差

      请看这张图,这是一pid调节框图,我们把期望输出-实际输出作为输入,也就是pid算法里

输出=KP*(目标输出-实际输出),在实际的控制中,我发现,kp取值为2时,目标速度给50,我的想法是实际速度应该达到50,但是实际速度远远小于50,后来分析,可能是因为存在静态误差的远因,另外这个框图本身就是一个负反馈的框图,净输入量=输入量(目标速度)-反馈量(实际速度),假设给50的目标速度,实际速度为50,那么A(放大倍数)就为1,引入负反馈后就会降低放大倍数A,实际输出自然会变小,当你试图提高A,也就是提高KP时你会发现,当系统输出趋于目标值时,会产生非常大的震荡,原因就是输出趋近目标值,反馈值就趋近目标值,目标值-反馈,也就是净输入量趋近0,会导致系统不稳定。

     理想情况是电机在给100的占空比时转速是50转每秒,但是如果电机存在死区电压,也可以理解为给电机加一个负载,那么假设电机在给30的占空比电机才开始转动,电机转速由0开始慢慢增长,知道增长到35转每秒,停止增长,此时误差为15,误差产生的占空比为2*15=30,刚好抵消掉之前那30的阻力,此时,只有增大目标速度或者增大kp可以把速度提升到五十,显然我们是想目标速度给50,就让其输出50的转速,那就只能加大kp,但是实际情况是随着kp调大,实际输出慢慢增加到逼近50,但是因为kp过大,会导致强烈的震荡,这时候就需要KI的作用了。

     ki的存在就是为了消除静态误差,也就是把每次误差积分,所以当存在误差的时候,ki机会起作用,把累计误差积分,直到误差为0。为了防止ki在特殊情况下一直累计,我们一般会对积分进行限幅处理。还有一点就是当目标值突变时,误差的积分会累加的非常快,所以我们会使用常说的积分分离,就是设定一个阈值,当误差小于这个阈值时微分生效,大于时不用ki调节。

表达式如下:

换成代码也可以这样:

在使用kp和ki调节后,我们会发现,ki值给小了,达到目标速度的时间会变长,也就是系统的响应行变差,但是增大ki的话,会导致系统超调之后震荡难以收敛,那么就应该引入微分kd了。

微分kd=这一次误差-上一次误差,误差会越来越小,也就是说微分是个负值,会减小系统的超调。

但是在目标值突变时,由于上一次误差为0,那么在kd在一开始是一个正值,所以在目标突变时会导致系统震荡,所以可以引入微分先行控制算法(微分先行我也没看懂)。

    另外还可以引入死区的控制,如图:

     我们在控制速度环时常常会用增量式pid,增量式pid注意也需要限幅,下面是加入积分分离的增量式公式

β的取值和位置式一样。

对于串级pid控制,要注意几点

1.电流环最内环,速度环,最外头是位置环

2.三环的量级应该差不多,避免输入过大或者过小

3.注意控制周期,内环控制周期要高,可以按照1:2:3来

注意内环控制周期过短会导致系统震荡,但是可以可以采取低通滤波器。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3