PID算法在流量控制中的应用

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

目录

增量式或位置式

目录

增量式或位置式

PID控制周期

T1 时间

T2 约4ms

PID C代码


     

最近有小伙伴向我提问关于PID的问题:通过比例阀控制水流速度(流量),

  1. 使用增量式还是位置式 PID?
  2. 他的比例法驱动频率是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) $
 *****************************************************************************/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值