好文档 - 专业文书写作范文服务资料分享网站

PID教学

天下 分享 时间: 加入收藏 我要投稿 点赞

32位机平台PID编程培训

一、 PID控制原理

以液位调节为例,流程如图所示:

变频器+水泵 进水 RTU的AO输出 (OP) 液位 RTU的 AI输入 出水 其中:

PV反馈值:实际液位高度,由控制器AI采集。

输出值OP:控制变频器频率和泵的转速,从而控制管道流量,改变液位高度。由控制器4-20mA的AO输出控制。

SP设定值:通常由人工设定,PID控制对象的目标值。即希望通过PID控制,把液位控制在SP值附近。

偏差e =设定值SP - 反馈值PV 控制器根据偏差e,调节输出值OP e > 0,OP值加大,e < 0,OP值减小。

我们提供的PID函数能够完成的功能是:单回路PID调节和手自动无扰切换。

我们的PID函数对正、反作用的处理方式为:OP永远是按正作用逻辑设计。对PID的正、反作用,在OP到AO的环节进行了如下处理:

正作用:

OP↑——AO↑ OP↓——AO↓ 反作用:

OP↑——AO↓ OP↓——AO↑

整个过程通过三个基本参数Kp,Ki,Kd进行控制。

三个基本参数Kp,Ki,Kd在实际控制中的作用

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

积分调节作用:是系统消除稳态误差,提高无差度,因为有误差,积分调节就进行,甚至无差,积分调节停止,积分调节输出一常值。Ti越小积分作用越强,加入积分调节可使系统稳定性下降,动态响应变慢,必须与D和P规律结合,组成PI和PID。

微分调节作用,微分作用反映系统偏差信号的变化率。具有预见性,能预见偏差变化的趋势。因此产生超前的控制作用,在偏差还没有形成之前,以被微分调节作用消除。因此可以改变系统的动态性能,减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节对系统抗干扰不利。微分作用不能单独使用,必须组成PD或PID控制器。

二、 如何调用PID函数

1. 添加工程

将pid_echo.c和pid_echo.h加入到工程内:

2. 调用函数

在s32_v320.h中,加入包含: #include \

系统中最多可以同时调用32个PID回路,每个PID回路占用20个寄存器。PID函数的调用方法:

pid_calculate ( nub , ADDR_PID0 , control_t ) ;

其中nub是pid的回路号;ADDR_PID0是PID寄存器块的起始地址,不同的PID回路占用的寄存器块不能冲突;control_t是PID的控制周期,单位是秒。

3. 函数功能

函数使用了一个寄存器块,由16个寄存器(REG)组成,偏移地址为0-15。其中: REG0:比例系数 REG1:积分时间 REG2:微分时间 REG3:死区 REG4:手自动切换, —— 0为自动 —— 1为手动 —— 2为停止 REG5:SP值 REG6:AI通道地址 REG7:PV值 REG8:AO通道地址 REG9:OP值,只读 REG10:正/反作用 REG11:输出上限幅 REG12:输出下限幅 REG15:OP值,手动可写 参数设置 运行操作 (工程师权限) (操作员权限) √ 运行 数据 当偏差e小于死区时,PID输出不变化,以防止执行机构频繁动作。 切换成手动方式,直接输入OP值来控制AO输出。 √ 备注 √ √ √ √ 现场检测 √ PID输出 输出上下限幅用来限制输出的上下限 √ √ 在每个PID回路使用的寄存器区中,SP、OP和PV值都是原始二进制数(0-50000),而非浮点数,未进行任何量程转换处理。实际应用时需要附加代码进行量程转换。

4. 教学练习例程说明

把上面的液位控制例子写成程序,PID控制函数调用如下: pid_calculate ( 0 , ADDR_PID0 , control_t ) ; 其中

手自动切换:ADDR_PID0+4 SP:ADDR_PID0+5 PV:ADDR_PID0+7 OP:ADDR_PID0+15 依此类推

5. 实际项目应用方法

(a) 由于PID回路使用的寄存器区中,SP值是原始二进制数(0-50000),而非浮点数,因此实际使

用中,需要对SP进行量程转换,再输入给PID函数。

(b) 在实际应用中,control_t一般可以在程序里写死,例如在一些快速反应的控制回路中,可以设置

为1秒:

pid_calculate ( 0 , ADDR_PID0 , 1 ) ;

而无需在上位机组态对其进行修改,简化了工作人员的操作量。

三、 PID相关参数组态

pid_K [nub] =Dbase(beg_addr+0 )/100.0 ;/*比例系数*/ pid_Ti [nub] =Dbase(beg_addr+1 )/10.0 ;/*积分时间*/ pid_Td [nub] =Dbase(beg_addr+2 )/10.0 ;/*微分时间*/ pid_DB [nub] =Dbase(beg_addr+3 ) ;/*死区 */ pid_M_A[nub]=Dbase(beg_addr+4 ) ;/*手动、自动方式*/ pid_SP [nub] =Dbase(beg_addr+5 ) ;/*SP值*/ pid_IP [nub] =Dbase(beg_addr+6 ) ;/*AI通道地址*/ pid_IO [nub] =Dbase(beg_addr+8 ) ;/*AO通道地址*/ pid_F_B[nub] =Dbase(beg_addr+10 ) ;/*正反作用*/ pid_FS [nub] =Dbase(beg_addr+11 ) ;/*输出上限幅*/ pid_ZE [nub] =Dbase(beg_addr+12 ) ;/*输出下限幅*/ 在使用32位机主控制器进行教学练习程序调试时,可将AI通道和AO通道设置为同一个地址,形成闭环回路。 在配置了AI和AO模块的情况下,可以把AO和AI通道地址按照实际设置,硬件方面再将AI和AO通道用导线对连起来,形成闭环回路。 以上两种方法模拟的控制对象的传递函数都是1。

四、 PID控制器参数的整定步骤:

在实际调试中,可以先大致设定一个经验值,然后根据调节效果修改。

对于温度系统:P(%)20--60 I(分)3--10D (分)0.5--3 对于流量系统:P(%)40--100 I(分)0.1--1 对于压力系统:P(%)30--70 I(分)0.4--3 对于液位系统:P(%)20--80 I(分)1--5

参数整定找最佳,从小到大顺序查 先是比例后积分,最后再把微分加 曲线振荡很频繁,比例度盘要放大 曲线漂浮绕大湾,比例度盘往小扳 曲线偏离回复慢,积分时间往下降 曲线波动周期长,积分时间再加长 曲线振荡频率快,先把微分降下来 动差大来波动慢。微分时间应加长 理想曲线两个波,前高后低4比1 一看二调多分析,调节质量不会低

PID教学

32位机平台PID编程培训一、PID控制原理以液位调节为例,流程如图所示:变频器+水泵进水RTU的AO输出(OP)液位RTU的AI输入出水其中:PV反馈值:实际液位高度,由控制器AI采集。输出值OP:控制变频器频率和泵的转速,从而控制管道流量,改变液位高度。由控制器4-20mA的AO输出控制。
推荐度:
点击下载文档文档为doc格式
47ynb1cz066d7jn4l21d
领取福利

微信扫码领取福利

微信扫码分享