目录
目录
最近有小伙伴向我提问关于PID的问题:通过比例阀控制水流速度(流量),
- 使用增量式还是位置式 PID?
- 他的比例法驱动频率是500Hz那么PID的控制周期应该选多少?
增量式或位置式
借用知乎网友的一个回答:
通过带有调节阀的管路向水箱注水,控制输出u为阀门开度,如果控制目标是注水速度(流量),则采用增量控制,达到目标流量后阀门会保持;如果控制目标是水位,则采用位置式,达到目标水位后阀门会基本处于零位(积分作用下会保持一定开度)。
可以看出,当控制输出u,和控制目标是一一对应关系(一定阀门开度对应一定流量)时,采用增量式;当控制输出u,影响的是控制目标的速度(水位变化的速度,即流量)时,采用位置控制。
又比如,通过油门控制车速,也是增量控制,根据期望速度加减油门,速度到了保持住。
我们这里控制水恒流量,应该选用增量式。
PID控制周期

周期 = T1(比例阀变化 -> 物理压力变化量) + T2(压力电压变化量 -> ADC量化时间 )
T1 时间
这样具体要根据实际情况改变了,可以先按照100ms去调试。
T2 约4ms
可以查阅数据手册
压力传感器:
估算为2ms

MCU
算上软件滤波,ADC量化时间估算为2ms


咱们这里先采用100ms~200ms的PID控制周期去调PID参数。
PID C代码
/*This file has been prepared for Doxygen automatic documentation generation.*/
/*! \file *********************************************************************
*
* \brief Header file for pid.c.
*
* - File: pid.h
* - Compiler: IAR EWAAVR 4.11A
* - Supported devices: All AVR devices can be used.
* - AppNote: AVR221 - Discrete PID controller
*
* \author Atmel Corporation: http://www.atmel.com \n
* Support email: avr@atmel.com
*
* $Name$
* $Revision: 456 $
* $RCSfile$
* $Date: 2006-02-16 12:46:13 +0100 (to, 16 feb 2006) $
*****************************************************************************/

文章讨论了在通过比例阀控制水流速度的场景中,应使用增量式PID而不是位置式PID。PID控制周期由比例阀响应时间和ADC量化时间决定,建议初始设置为100ms至200ms。还提供了PID控制器的C语言代码实现,适用于AVR平台,可用于其他MCU的移植。
最低0.47元/天 解锁文章
834

被折叠的 条评论
为什么被折叠?



