PID控制算法总结

PID控制算法总结当今的闭环自动控制技术都是基于反馈的概念以减少不确定性。反馈理论的要素包括三个部分:测量、比较和执行。测量关键的是被控变量的实际值,与期望值相比较,用这个偏差来纠正系统的响应,执行调节控制。在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。一、PID含义PID是英文单词比例(Proportion),积分(Integral),微分(Di…

大家好,又见面了,我是你们的朋友全栈君。

当今的闭环自动控制技术都是基于反馈的概念以减少不确定性。反馈理论的要素包括三个部分:测量、比较和执行。测量关键的是被控变量的实际值,与期望值相比较,用这个偏差来纠正系统的响应,执行调节控制。在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。

 

一、 PID含义

PID是英文单词比例(Proportion),积分(Integral),微分(Differential coefficient)的缩写。PID调节实际上是由比例、积分、微分三种调节方式组成,它们各自的作用如下:

 

比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。

 

积分调节作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。

 

微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器

 

二、公式

PID控制算法在实际应用中又可分为两种:位置式PID控制算法和增量式PID控制算法。控制理论上两者是相同的,但在数字量化后的实现上会存在差别

 

2.1 位置式数字 PID 控制

 k 采样时刻的离散 PID 表达式:

https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D652/sign=cc06f8a04136acaf5de095f94edb8d03/35a85edf8db1cb134ebd878ad754564e93584b56.jpg

上式中,Ki=Kp/TiKd=Kp*TdT 为采样周期,k 为采样序号,k=1,2,…e(k-1)e(k)分别为第(k-1)和第 k 时刻所得到的系统偏差信号。

 

2.2增量式 PID 控制

增量式 PID 控制是指控制器的输出是控制量的增量Δu(k),当执行机构需要的是控制量的增量而不是位置量的绝对数值时,可以使用增量式 PID 控制算法进行控制。

 

https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D494/sign=77f5b4b69fcad1c8d4bbfd2e4b3f67c4/aa18972bd40735faa176ea2094510fb30e2408a0.jpg

 

式中,Ki=Kp/Ti,Kd=Kp*Td,T 为采样周期,k 为采样序号,k=1,2,…,e(k-2)、e(k-1)以及 e(k)分别为第(k-2)、第(k-1)和第 k 时刻所得到的系统偏差信号。

 

三、采样周期和控制周期

PID控制算法总结

 

四、C语言描述PID算法程序

PID控制算法总结

 

4.1增量型PID的C语言实现

PID控制算法总结

 

PID控制算法总结

 

4.2 位置型PID的C语言实现

PID控制算法总结

PID控制算法总结

 

五、PID调试

由于自动控制系统被控对象的千差万别,PID的参数也必须随之变化,以满足系统的性能要求。这就给使用者带来相当的麻烦,特别是对初学者。下面简单介绍一下调试PID参数的一般步骤:

 

5.1负反馈

自动控制理论也被称为负反馈控制理论。首先检查系统接线,确定系统的反馈为负反馈。例如电机调速系统,输入信号为正,要求电机正转时,反馈信号也为正(PID算法时,误差=输入-反馈),同时电机转速越高,反馈信号越大。其余系统同此方法。

 

5.2.PID调试一般原则

a.在输出不振荡时,增大比例增益P。 
b.在输出不振荡时,减小积分时间常数Ti。 
c.在输出不振荡时,增大微分时间常数Td。 
  

5.3.位置式PID调节

a.确定比例增益P 
  确定比例增益P 时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益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参数进行微调,直至满足要求。 

5.4 增量式pid调节

增量式pid调节目标速度时候参数整定:

        先加大KI,这时候会越来越接近实际速度,当KI过大的时候,在切换目标速度的时候,就会抖动,这时候就是KI大了响应速度高了,但导致超调量增加,这时候就加大增量式的KP,来缓减抖动,减小超调量。

(注:网上大多资料都是错的,把增量式跟位置式混为一谈)

 

 

六、PID常用口诀

参数整定找最佳,从小到大顺序查 

先是比例后积分,最后再把微分加 

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

曲线漂浮绕大湾,比例度盘往小扳 

曲线偏离回复慢,积分时间往下降 

曲线波动周期长,积分时间再加长 

曲线振荡频率快,先把微分降下来 

动差大来波动慢。微分时间应加长 

理想曲线两个波,前高后低4比1 

一看二调多分析,调节质量不会低 

 

 

 

 

参考文献:

https://blog.csdn.net/Uncle_GUO/article/details/51367764

https://wenku.baidu.com/view/5ebd4893240c844768eaee1c.html

https://wenku.baidu.com/view/ee44725d9a6648d7c1c708a1284ac850ad02049c.html?rec_flag=default&sxts=1553696871419

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145193.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • u12a u12s_utf8mb3

    u12a u12s_utf8mb31.u8就是unsignedchar,是8位无符号char类型的值/*!<Signedintegertypes*/typedefsignedcharint8_t;typedefsignedshortint16_t;typedefsignedlongint32_t;/*!<Unsignedinteger…

    2022年10月15日
  • 为猪脸识别而进行自己数据集的构建、训练「建议收藏」

    为猪脸识别而进行自己数据集的构建、训练「建议收藏」在实际过程中走了弯路,特地进行说明记录,以备今后参考。思路是先构建VOC2007格式的猪脸数据集,在转换成tf格式,然后利用tf的objectdetectionapi进行训练。原因是把2种构建方式都熟悉一遍,并把所有流程过一遍。1、构架VOC2007格式的猪脸数据集前提:在某个目录下建立如下关系的子目录。                               

  • linux查看crontab状态_crontab -e

    linux查看crontab状态_crontab -elinux下定时执行任务的方法在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps-ef|grepcron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“crontable”的简写。一、cron在3个地方查找配置文件:1、/var/spool/cron/这个目录下存放的是每个用户包括root的cron…

  • Timus 1796. Amusement Park 聪明题[通俗易懂]

    Timus 1796. Amusement Park 聪明题

  • Java实现判断闰年

    Java实现判断闰年Java实现闰年判断需求分析:年份如果满足以下两个条件中的其中一个则可将其年份判断位闰年一、能被4整除,但不能被100整除,就是闰年;二、能被400整除,也是闰年;需求实现方案一:使用if的嵌套实现packagecom.qingsu.basis;importjava.util.Scanner;publicclassProcessControl{ publicstaticvoidmain(String[]args){ //判断闰年 //1.能被4整除

  • dubbo如何实现rpc调用_dubbo支持grpc

    dubbo如何实现rpc调用_dubbo支持grpc使用telnet测试dubborpc接口

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号