PID控制的增量型公式是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PID控制的增量型公式是啥?相关的知识,希望对你有一定的参考价值。
参考技术APID算法具体分两种:一种是位置式的 ,一种是增量式的。
位置式PID的输出与过去的所有状态有关,计算时要对e(每一次的控制误差)进行累加,这个计算量非常大,而明显没有必要。而且小车的PID控制器的输出并不是绝对数值,而是一个△,代表增多少,减多少。换句话说,通过增量PID算法,每次输出是PWM要增加多少或者减小多少,而不是PWM的实际值。所以明白增量式PID就行了。
PID的增量型公式:
PID=Uk+KP*【E(k)-E(k-1)】+KI*E(k)+KD*【E(k)-2E(k-1)+E(k-2)】
拓展资料:
PID=port ID,在STP(生成树协议)中,若在端口收到的BPDU中BID和path cost相同时,则比较PID来选择阻塞端口。数字电视复用系统名词 PID(Packet Identifier) 在数字电视复用系统中它的作用好比一份文件的文件名,我们可以称它为“标志码传输包” 。工程控制和数学物理方面 PID(比例积分微分)英文全称为Proportion Integration Differentiation,它是一个数学物理术语。PID由8位端口优先级加端口号组成,端口号占低位,默认端口号优先级128。
增量型算式 小算法
1 微分方程的差分化
用程序来计算方程的解,唯一可采用的方法使用数值法不断的逼近连续解,使两相邻数值解之间的间隔可以忽略不计从而近似为连续解,在一般情况下,采用较高精度的数值解就能够代替真实的解。如微分方程的四阶龙格库塔方法求解。[^-^在成长的过程中难免发表点感叹]为了记住给我留下深刻印象的增量表达式。还是要借助数字PID控制算法说事。这毕竟是留下记忆的载体。
PID控制器输出与输入的算式为:
这是一个含积分和微分的表达式,如果要编写程序来求解的话只能采用数值法了。为了用程序实现PID控制算式,采用“微元化的思想”(大一的高数)首先将微分方程改为差分方程:
T为控制周期(很小很小的值,这样子才和连续值在同一时刻的值逼近),n为控制周期序号(n=0,1,2……),e(n)表示第n控制周期所得的PID控制器的输入。将差分化的积分和微分表达式带入输出输入算式中得到:
简单的一个差分化思想,当然了如果不回味一下高数知识呢,稍微抽像一点点。
以上表达式称为“位置型算式”。通过以上表达式可知,只要知道每次的e(n)(n =0, 1, 2…)就可以根据设定的采样周期和比例、积分、微分系数求得第n个时刻的输出。
这个表达式对编写程序的人不利呀:原因是算式中要累加e(j),不仅要占用很多的内存(一旦长时间运行起来n值将会多么大!上课时老师用计算器算了一下,2G内存不久就被占满了),而且直接也不利于编写程序代码。仔细想想就知道在编写程序时的确存在这两个问题。
2 用增量型表达式思想编程
这种下一时刻跟上一时刻有关系的表达式在编写程序的时候总想用上一时刻的值来表达下一时刻的值,上一时刻(n - 1)的表达式为:
用第n时刻的值与第n-1时刻的值差,得到差值:
n1=kp[ e(n) – e(n-1)] + (kp * T / Ti) * e(n) + (kp *Td / T)*[ e(n) + -2e(n-1) + e(n-2)]
第n时刻的值与第n-1时刻的值差值只跟相近的一两个输入e值有关系,是不是已经摆脱了n值过大时耗内存且不好编写程序的缺点呢。暂时是还不怎么好体会,先得u(n)的新表达式:
u(n) = u(n-1) +n1
这个表达式看起来比前面的那几个表达式简单多了。结合n1的表达式其实用程序来实现的过程是这样子的:
用计算得到的新值去覆盖旧值,占用内存永远就那么大了(u(n)的值不超过对应数据类型表示范围的话,程序运行就不会出什么问题了)。无论是哪一种数值算法,初值都是不可少的。对于差分方程的初值解,可先按“位置型算式”求出直到能用上“增量型算式”的值,保存该保存的一些值。然后就可以采用循环计算数值了。
然后凡是遇到累计和的,后项跟前项差是较少的跟可测变量值有关的表达式,就可以考虑用增量表达式小算法来解决问题。在对的时间和地点还是能解决大问题的。这毕竟是工业采用的方法。算法虽小,贡献甚大呀。
读《计算机控制》课本。
Note Over.
以上是关于PID控制的增量型公式是啥?的主要内容,如果未能解决你的问题,请参考以下文章