什么是PID控制?

一、概念

        PID控制是一种广泛应用于工业控制系统中的反馈控制算法,其名称来源于比例(Proportional)、积分(Integral)和微分(Derivative)三个控制作用。PID控制通过这三种控制作用的组合来调节系统的输出,使其达到期望的目标值。PID结构简单、易于实现、鲁棒性强,在温度控制、压力控制、流量控制、位置控制等各种工业场景中发挥了重要作用。例如,我们常用来设置固定温度煮茶的养生壶,其内置的温控模块往往就会采用PID控制。

二、原理

        PID控制器的总输出是比例、积分和微分三部分的综合,具体如下。

1、比例控制(P)

        比例控制是根据当前误差的大小来调整控制输出。误差是指系统的实际输出与期望输出之间的差值。比例控制的作用是使控制输出与误差成正比,公式为:

P(t) = K_{p} \cdot e(t)

        其中,K_{p}是比例增益,e(t)是在时刻 t 的误差。

2、积分控制(I)

        积分控制是根据误差随时间的累积来调整控制输出。它的作用是消除系统的稳态误差,即使得长期的误差趋于零。积分控制的公式为:

I(t) = K_{i} \cdot \int_{0}^{t}e(\tau )d \tau

        其中,K_{i}是积分增益,公式剩下的部分是从时刻 0 到时刻 t 的误差积分。

3、微分控制(D)

        微分控制是根据误差的变化率来调整控制输出。它的作用是预测误差的变化趋势,从而提前进行调整,减少超调和振荡。微分控制的公式为:

D(t) = K_{d} \cdot \frac{de(t)}{dt}

        其中,K_{d}是微分增益,公式其余部分是误差的导数。

4、总体公式

        由此,PID控制器的输出公式为:

u(t) = K_{p} \cdot e(t) + K_{i} \cdot \int_{0}^{t}e(\tau )d \tau + K_{d} \cdot \frac{de(t)}{dt}

        PID控制器的性能取决于三个增益参数的选择,调节这些参数的过程称为PID调节。常用的调节方法包括经验法、Ziegler-Nichols法、自动调节法(如遗传算法、粒子群优化)等

三、python实现

        这里,我们构建一个简单的PID控制算法,模拟养生壶的水温加热过程。运行程序之后可以看到,随着迭代次数的增加,水温趋于稳定并收敛于我们期望的设定温度。

class PID:  
    def __init__(self, Kp, Ki, Kd):  
        self.Kp = Kp    # 比例系数(反应速度)  
        self.Ki = Ki    # 积分系数(消除残留误差)  
        self.Kd = Kd    # 微分系数(抑制震荡)  
        self.last_error = 0  
        self.integral = 0  

    def compute(self, setpoint, current):  
        error = setpoint - current                # 当前误差  
        self.integral += error                    # 累积误差  
        derivative = error - self.last_error      # 误差变化趋势  
        output = (self.Kp * error +  
                  self.Ki * self.integral +  
                  self.Kd * derivative)           # 三部分合力  
        self.last_error = error  
        return output  

# 模拟使用(目标40℃,初始35℃)  
pid = PID(Kp=0.8, Ki=0.05, Kd=0.2)  
current_temp = 35  
for _ in range(30):  
    control = pid.compute(40, current_temp)  
    # 模拟加热效果(控制量影响温度变化)  
    current_temp += control * 0.5  
    print(f"当前温度:{current_temp:.1f}℃")  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值