pid算法是工程控制领域常用的一种算法,其有着技术成熟,不需要建立数学模型,参数整定灵活,适用性强,鲁棒性强,控制效果好等优点,得到了广泛的应用,其参数整定对控制效果影响极大,针对增量式的pid的参数整定方法在现有的文献中较少涉及。
pid分位置式pid和增量式pid两种,由于位置式pid控制的输出与整个过去的状态有关,用到了误差的累加值;而增量式pid的输出只与当前状态和前两状态的误差有关,因此位置式pid控制的累积误差相对更大,增量式pid输出的是控制量增量,如果微处理器出现故障,误动作影响较小,而执行机构本身有记忆功能,可仍保持原位,不会严重影响系统的工作,而位置式的输出直接对应对象的输出,对系统影响较大,因此实际中增量式pid应用更加广泛。
增量式pid控制
增量式pid控制,数字pid控制算法的一种基本形式,是通过对控制量的增量(本次控制量和上次控制量的差值)进行pid控制的一种控制算法。
增量式pid控制主要是通过求出增量,将原先的积分环节的累积作用进行了替换,避免积分环节占用大量计算性能和存储空间。
增量式pid控制的主要优点为:
①算式中不需要累加。控制增量δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果;
②计算机每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程;
③手动—自动切换时冲击小。当控制从手动向自动切换时,可以作到无扰动切换。
由于增量式需要对控制量进行记忆,所以对于不带记忆装置的系统,只能使用位置式pid控制方式进行控制。
增量式pid参数调整公式
增量式pid控制根据位置式pid控制公式,写出n-1时刻的控制量:
设
得到
令 为积分系数; 为微分系数,可以将上式简化为
增量式pid控制算法
当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用pid的“增量算法”。
增量式pid控制算法可以通过(2-4)式推导出。由(2-4)可以得到控制器的第k-1个采样时刻的输出值为:
由(2-6)可以看出,如果计算机控制系统采用恒定的采样周期t,一旦确定a、b、c,只要使用前后三次测量的偏差值,就可以由(2-6)求出控制量。
增量式pid控制算法与位置式pid算法(2-4)相比,计算量小得多,因此在实际中得到广泛的应用。
位置式pid控制算法也可以通过增量式控制算法推出递推计算公式:
(2-7)就是目前在计算机控制中广泛应用的数字递推pid控制算法。
增量式pid控制算法c51程序
/*====================================================================================================
pid function
the pid (比例、积分、微分) function is used in mainly
control applications. pidcalc performs one iteration of the pid
algorithm.
while the pid function works, main is just a dummy program showing a typical usage.
=====================================================================================================*/
typedef struct pid
{
int setpoint; //设定目标
desired value long sumerror; //误差累计
double proportion; //比例常数 proportional const
double integral; //积分常数 integral const
double derivative; //微分常数 derivative const
int lasterror; //error[-1]
int preverror; //error[-2]
} pid;
static pid spid;
static pid *sptr = &spid;
*=======================================================================
initialize pid structure pid参数初始化
=====================================================================================================*/
void incpidinit(void)
{
sptr-》sumerror = 0;
sptr-》lasterror = 0; //error[-1]
sptr-》preverror = 0; //error[-2]
sptr-》proportion = 0; //比例常数
proportional const sptr-》integral = 0; //积分常数integral const
sptr-》derivative = 0; //微分常数
derivative const sptr-》setpoint = 0;
}
/*====================================================================================================
增量式pid计算部分
=====================================================================================================*/
int incpidcalc(int nextpoint)
{
register int ierror, iincpid; //当前误差
ierror = sptr-》setpoint - nextpoint; //增量计算
iincpid = sptr-》proportion * ierror //e[k]项
- sptr-》integral * sptr-》lasterror //e[k-1]项
+ sptr-》derivative * sptr-》preverror; //e[k-2]项
//存储误差,用于下次计算
sptr-》preverror = sptr-》lasterror;
sptr-》lasterror = ierror;
//返回增量值
return(iincpid);
}
结合上述公式探讨pid的普遍控制规律和常用参数整定方法
(一)先来讨论pid三个参数的控制规律
1. 比例调节规律(kp):是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。
2. 积分调节规律(ki):实质上就是对偏差累积进行控制,直至偏差为零。使系统消除稳态误差,提高无差度。
3. 微分调节规律(kd):微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。
4. 比例积分微分控制规律pid:pid控制规律是一种较理想的控制规律,它在比例的基础上引入积分,可以消除余差,再加入微分作用,又能提高系统的稳定性。
(二)再来讨论pid参数整定的一般方法
1. 实验凑试法,整定步骤为“先比例,再积分,最后微分,这也是初接触pid的人常使用的。
2. 理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。
3. 实验经验法,扩充临界比例度法,实验经验法调整pid参数的方法中较常用的是扩充临界比例度法,其最大的优点是,参数的整定不
依赖受控对象的数学模型,直接在现场整定、简单易行。
总之,对于pid的初用者,增量式的pid参数整定的时候,采用同位置式的比例kp,积分ki,微分kd相同的系数,理解起来比较容易,整定自然就会符合以上所说的规律,可以达到预期的控制效果。
音圈电机激光雷达扫描技术在扬尘治理中的应用
太阳能逆变器业务剥离后,ABB表示并没有完全放弃
探讨智能网联汽车技术动向与行业新机遇
三星与百度合作生产AI芯片,代工服务扩展到数据中心
2010 CES 将于本周开幕
增量式pid参数调整公式及策略
电动车发展的方向
全新的Vivado项目功能 可配置的报告
2009太阳能电池产业风景独好
AI艺术表达 修复解锁经典与视听生活 张国荣《热·情》演唱会再现
小米米家滑板车Pro体验 更快的提速更好的续航
HERMES与可穿戴外骨骼机器人技术详解
在USB中,定义了这四种类型包
Cloud2.0时代,运营商能否把握云之大势?
Vivo发布影像芯片V3,安卓手机可实现4K电影人像视频
OPPO在成都正式发布了ColorOS 6正式版操作系统
解高通新超声波指纹传感器: 竟然首次用在荣耀10上面!
美国无人配送机器人突然起火自燃 事故原因是电池故障
4515DO-DS5BS002DP差压传感器工作原理
“新基建”加速基础网络建设步伐,拉动光通信行业市场需求的增长