tewen

  • 166 主题
  • 193 帖子
  • 587 积分
  • 身份:LV3 中级技术员
  • E币:415

江湖秘籍:由浅入深,通俗易懂讲PID

2017-7-26 08:14:25 显示全部楼层
PID其实不复杂,一个最通俗的解读:我们设计一样东西,一般都是先打个样,这个样跟我们想要的接近,但细节没到位,这就是P,样有差异,所以就要修改,拟合逼近,这就是 I,到了定稿,就不允许随便修改了,就算要修改,也是有限制的修改,这就是D。
  
附上适合嵌入式开发的PID开源程序:
GitHub - alvinyeats/pid-control: C language version of Advanced PID Control and MATLAB Simulation
       github.com             alvinyeats/pid-control
  pid-control -  C language version of Advanced PID Control and MATLAB Simulation
                    
   
  
  
  三个故事,通俗易懂讲PID控制原理
  一、PID的故事
  小明接到这样一个任务:有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。
  小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每30分钟来检查一次水面高度。水漏得太快,每次小明来检查时,水都快漏完了,离要求的高度相差很远,小明改为每3分钟来检查一次,结果每次来水都没怎么漏,不需要加水,来得太频繁做的是无用功。几次试验后,确定每10分钟来检查一次。这个检查时间就称为采样周期
  开始小明用瓢加水,水龙头离水缸有十几米的距离,经常要跑好几趟才加够水,于是小明又改为用桶加,一加就是一桶,跑的次数少了,加水的速度也快了,但好几次将缸给加溢出了,不小心弄湿了几次鞋,小明又动脑筋,我不用瓢也不用桶,老子用盆,几次下来,发现刚刚好,不用跑太多次,也不会让水溢出。这个加水工具的大小就称为比例系数
  小明又发现水虽然不会加过量溢出了,有时会高过要求位置比较多,还是有打湿鞋的危险。他又想了个办法,在水缸上装一个漏斗,每次加水不直接倒进水缸,而是倒进漏斗让它慢慢加。这样溢出的问题解决了,但加水的速度又慢了,有时还赶不上漏水的速度。于是他试着变换不同大小口径的漏斗来控制加水的速度,最后终于找到了满意的漏斗。漏斗的时间就称为积分时间
  小明终于喘了一口,但任务的要求突然严了,水位控制的及时性要求大大提高,一旦水位过低,必须立即将水加到要求位置,而且不能高出太多,否则不给工钱。小明又为难了!于是他又开努脑筋,终于让它想到一个办法,常放一盆备用水在旁边,一发现水位低了,不经过漏斗就是一盆水下去,这样及时性是保证了,但水位有时会高多了。他又在要求水面位置上面一点将水凿一孔,再接一根管子到下面的备用桶里这样多出的水会从上面的孔里漏出来。这个水漏出的快慢就称为微分时间
  看到几个问采样周期的帖子,临时想了这么个故事。微分的比喻一点牵强,不过能帮助理解就行了,呵呵,入门级的,如能帮助新手理解下PID,于愿足矣。故事中小明的试验是一步步独立做,但实际加水工具、漏斗口径、溢水孔的大小同时都会影响加水的速度,水位超调量的大小,做了后面的实验后,往往还要修改改前面实验的结果。
  二、控制模型:
  人以PID控制的方式用水壶往水杯里倒印有刻度的半杯水后停下;
  设定值:水杯的半杯刻度;
  实际值:水杯的实际水量;
  输出值:水壶的倒处数量和水杯舀出水量;
  测量传感器:人的眼睛
  执行对象:人
  正执行:倒水
  反执行:舀水
  1、P 比例控制,就是人看到水杯里水量没有达到水杯的半杯刻度,就按照一定水量从水壶里王水杯里倒水或者水杯的水量多过刻度,就以一定水量从水杯里舀水出来,这个一个动作可能会造成不到半杯或者多了半杯就停下来。
  说明:P比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。
  2、PI 积分控制,就是按照一定水量往水杯里倒,如果发现杯里的水量没有刻度就一直倒,后来发现水量超过了半杯,就从杯里往外面舀水,然后反复不够就倒水,多了就舀水,直到水量达到刻度。
  说明:在积分I控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
  3、PID 微分控制,就是人的眼睛看着杯里水量和刻度的距离,当差距很大的时候,就用水壶大水量得倒水,当人看到水量快要接近刻度的时候,就减少水壶的得出水量,慢慢的逼近刻度,直到停留在杯中的刻度。如果最后能精确停在刻度的位置,就是无静差控制;如果停在刻度附近,就是有静差控制。
  说明:在微分控制D中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。
  自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳,其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例P”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势。这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例P+积分I+微分D(PID)控制器能改善系统在调节过程中的动态特性。
  三、看了《PID的故事》,引发了我这样一个思考:
  小时候,我学习骑自行车的经历至今都使我记忆犹新。
  60年代初,那时候没有现在这样的各种各样的小自行车,都是28"的大杠,什么‘永久’‘飞鸽’牌等等,而且,一般的家庭有个自行车就像现在的家庭拥有一部私家轿车差不多。借了同学爸爸的一部,在学校操场上就和同学两个人自学了起来,没有教练!可想而知,(因为个子比较矮)摔了不少跟头,车子也伤痕累累,屁股下都磨破了。也许我不是很聪明?但是我又不认为自己是个笨学生,因为我的每门功课都在95分以上。为什么学个自行车就这么难呢?
  此事过后,我就在思考:自己学骑车的过程无疑是比较差的,这样学习肯定是不可取的。假如今后要我教别人骑自行车,我应该如何在自己痛苦经历的基础上总结?能否以最简单的方法并以最快的速度教会别人?一般教人骑车的都会这样教导:“眼睛往前看,不要看前轮。腰不要扭!身子要坐正,”等等。可是学骑车的人这时身临其境,紧张的是无法掌控自己的!不是吗?
  其实,无论学什么,学习方法很重要,教人学习的方法更重要!一个好的老师往往能影响学生的一生!
  复杂与简单,往往在一念之间。于是我总结出了学自行车的十字口诀:“车身往哪倒,龙头往哪拐!”只要一拐,车身就正了。坐上自行车,脑子里就想着这十个字,简单吧!至于其他要求,如:“眼睛往前看,不要看前轮。腰不要扭!身子要坐正,等等”,随便你,没有任何规定和要求。经验告诉我,再不聪明的人不出半小时,保证让你学会骑车上路。不信你试试!
  一块上学,一块工作。为什么有人成功了?而我却离成功还有一段不小的距离?正确的学习方法你掌握住了吗
  在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象﹐或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
  比例(P)控制
  比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。
  积分(I)控制
  在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
  微分(D)控制
  在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。 自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
  在PID参数进行整定时如果能够有理论的方法确定PID参数当然是最理想的方法,但是在实际的应用中,更多的是通过凑试法来确定PID的参数。
  增大比例系数P一般将加快系统的响应,在有静差的情况下有利于减小静差,但是过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏。
  增大积分时间I有利于减小超调,减小振荡,使系统的稳定性增加,但是系统静差消除时间变长。
  增大微分时间D有利于加快系统的响应速度,使系统超调量减小,稳定性增加,但系统对扰动的抑制能力减弱。
  在凑试时,可参考以上参数对系统控制过程的影响趋势,对参数调整实行先比例、后积分,再微分的整定步骤。
  PID控制原理:
  1、比例(P)控制 :比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。
  2、积分(I)控制 :在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
  3、微分(D)控制 :在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。 自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
  PID控制器参数整定的一般方法:
  PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:
  一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改;
  二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
  现在一般采用的是临界比例法。利用该方法进行 PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。
  PID参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整P、I、D的大小。
  书上的常用口诀:
  参数整定找最佳,从小到大顺序查;
  先是比例后积分,最后再把微分加;
  曲线振荡很频繁,比例度盘要放大;
  曲线漂浮绕大湾,比例度盘往小扳;
  曲线偏离回复慢,积分时间往下降;
  曲线波动周期长,积分时间再加长;
  曲线振荡频率快,先把微分降下来;
  动差大来波动慢。微分时间应加长;
  理想曲线两个波,前高后低4比1;
  一看二调多分析,调节质量不会低。
  个人认为PID参数的设置的大小,一方面是要根据控制对象的具体情况而定;另一方面是经验。P是解决幅值震荡,P大了会出现幅值震荡的幅度大,但震荡频率小,系统达到稳定时间长;I是解决动作响应的速度快慢的,I大了响应速度慢,反之则快;D是消除静态误差的,一般D设置都比较小,而且对系统影响比较小。
  PID参数怎样调整最佳
  (1)整定比例控制
将比例控制作用由小变到大,观察各次响应,直至得到反应快、超调小的响应曲线。
  (2)整定积分环节
若在比例控制下稳态误差不能满足要求,需加入积分控制。
  先将步骤(1)中选择的比例系数减小为原来的50~80%,再将积分时间置一个较大值,观测响应曲线。然后减小积分时间,加大积分作用,并相应调整比例系数,反复试凑至得到较满意的响应,确定比例和积分的参数。
  (3)整定微分环节
若经过步骤(2),PI控制只能消除稳态误差,而动态过程不能令人满意,则应加入微分控制,构成PID控制。先置微分时间TD=0,逐渐加大TD,同时相应地改变比例系数和积分时间,反复试凑至获得满意的控制效果和PID控制参数。
  PID的15个基本概念
  没有金刚钻,不揽瓷器活。 为了能够掌握并运用PID,我们非常有必要学习下基本概念来武装自己,部分概念会配上实际工程中常用的表示方法,以“实:”开头。
  1 被调量:反映被调对象的实际波动的量值。被调量是经常变化的。
    实:常用检测到的反馈值表示,如yout(t)。
  2 设定值:PID调节器设定值就是人们期待被调量需要达到的值。设定值可以是固定的,也可以是变化的。
    实:人为设定,多用rin(t)表示。
  3 控制输出:PID调节器根据被调量的变化情况运算之后发出的让外部执行结构按照它的要求动作的指令,即整个调节器的输出。请注意与被调量yout(t)的区别,这两个是完全不同的概念,经常有人在混淆这两个概念。
    实:你经常看到的公式“u(t)=kp[e(t)+1/TI∫e(t)dt+TD*de(t)/dt]”中的u(t)。
  4 输入偏差:输入偏差时被调量和设定值之间的差值。
    实:error(t)=rin(t)-yout(t)。
  5 P(比例):P就是比例作用,简单说就是输入偏差乘以一个系数。
    实:如kp,KP都是一样的。
  6  I(积分):I就是积分,简单说就是将输入偏差进行积分运算。
    实:如ki。
  7 D(积分):D就是微分,简单说就是将输入偏差进行微分运算。
    实:如kd。
  8  PID基本公式PID调节器参数整定过程通俗讲就是先把系统调为纯比例作用,逐步增强比例作用让系统产生等幅振荡,记录下比例作用和振荡周期,然后这个比例作用乘以0.6,积分作用适当延长
  KP= 0.6*Km
KD= KP*π/4ω 或 KD= KP*tu/8
KI= KP*ω/π  或 KI= 2KP/tu
  KP:比例控制参数;
KD:积分控制参数;
KI:微分控制参数;
Km:系统开始振荡时的比例值,通常称为临界比例值;
ω:等幅振荡时的频率,tu为振荡周期。这里 tuω =2π,而不是tuω=1,学过傅里叶和拉氏变换的同学应该明白这是为什么,这里不做深入探讨。
  9 单回路:单回路就是只有一个PID的调节系统。
  10 串级:一个PID不够用,串级就是把两个PID串接起来形成一个串级调节系统,也被成为双回路调节系统。串级调节系统里PID调节器有主调和副调之分。
  在串级调节系统中要调节被调量的PID叫做主调,输出直接去指挥执行器动作的PID叫做副调,主调的控制输出进入副调作为副调的设定值。主调选用单回路PID调节器,副调选用外给定调节器。
  11 正作用
对于PID调节器而言,控制输出随被调量增高而增高,随被调量减少而减少的作用,叫做PID正作用。
  12 负作用
对于PID调节器而言,控制输出随被调量增高而降低,随被调量减少而增高的作用,叫做PID负作用。
  13 动态偏差
在调节过程中,被调量和设定值之间的偏差随时改变,任意时刻两者之间的偏差叫做动态偏差。
  14 静态偏差
调节趋于稳定之后,被调量和设定值之间还存在的偏差交静态偏差。消除静态偏差是通过PID调节器积分作用来实现的。
  15回调
调节器调节作用显示,使被调量开始由上升变为下降,或者由下降变为上升趋势成为回调。
  以上资料来源于网络
  末尾提个问题,PID是个大杀器,但是它又有哪些局限呢?PID有哪些不足?PID 不能控制哪些系统?

最新评论

楼层直达:

patrickylma_642188096

  • 0 主题
  • 28 帖子
  • 621 积分
  • 身份:LV3 中级技术员
  • E币:117
先进PID控制 MATLAB仿真.7z.001    此檔案不能用,請修正!

Scorpion

  • 0 主题
  • 1 帖子
  • 110 积分
  • 身份:LV1 技术小白
  • E币:102
Scorpion 2017-7-31 06:11:12 显示全部楼层
要把这5个文件都下载完,然后按照对应的文件依次命名,比如
先进PID控制Matlab仿真.001
先进PID控制Matlab仿真.002
先进PID控制Matlab仿真.003
先进PID控制Matlab仿真.004
先进PID控制Matlab仿真.005
放在一个文件夹里面解压就可以了

jiru000000

  • 0 主题
  • 5 帖子
  • 363 积分
  • 身份:LV2 初级技术员
  • E币:340
jiru000000 2017-8-2 10:44:12 显示全部楼层
要看是位置式还是增量式,PID算不上有何局限,各个控制原理有各自适用范围
广告

Happyharycui

  • 0 主题
  • 66 帖子
  • 206 积分
  • 身份:LV1 技术小白
  • E币:36
Happyharycui 2017-12-19 03:21:15 显示全部楼层
不错的资料,通俗易懂,多谢楼主分享。

mj8abcd

  • 0 主题
  • 195 帖子
  • 1397 积分
  • 身份:LV4 高级技术员
  • E币:579
mj8abcd 2018-3-7 22:03:52 显示全部楼层
谢谢分享!!!!!

lqsgg_332634802

  • 0 主题
  • 79 帖子
  • 811 积分
  • 身份:LV3 中级技术员
  • E币:381
哇!谢谢分享!学习学习了!

tyyz001

  • 0 主题
  • 4 帖子
  • 224 积分
  • 身份:LV2 初级技术员
  • E币:198
tyyz001 2018-9-23 10:50:38 显示全部楼层
下载之后是不是需要特殊的软件进行解压啊
广告

tewen

  • 166 主题
  • 193 帖子
  • 587 积分
  • 身份:LV3 中级技术员
  • E币:415
tewen 2018-9-25 17:51:07 显示全部楼层
下载之后是不是需要特殊的软件进行解压啊
https://www.7-zip.org/

wth_email_666893234

  • 0 主题
  • 4 帖子
  • 330 积分
  • 身份:LV2 初级技术员
  • E币:323
感谢分享
我要评论
9
8
广告
关闭 热点推荐上一条 /1 下一条
快速回复 返回列表