SIEMENS内蒙古鄂尔多斯市 西门子代理商——西门子华北一级总代理

供应商
广东湘恒智能科技有限公司
认证
西门子总代理
PLC
西门子一级代
驱动
西门子代理商
伺服电机
联系电话
15903418770
手机号
15915421161
邮箱
517987251@qq.com
联系人
张经理
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房
更新时间
2024-11-26 07:00

详细介绍-

PID基础

PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。

PID是经典的闭环控制算法,具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点。

凡是需要将某一个物理量“保持稳定”的场合(比如维持平衡,稳定温度、转速等),PID都会派上大用场。

PID算法分类

PID算法可分为位置式PID与增量式PID两大类。

在实际的编程应用中,需要使用离散化的PID算法,以适用计算机的使用环境,下面以电机转速控制为例,来看一下两种PID算法的基本原理。

位置式PID

位置式PID是当前系统的实际位置,与想要达到的预期位置的偏差,进行PID控制

  • 比例P:e(k) 此次误差
  • 积分I:∑e(i)  误差的累加
  • 微分D:e(k) - e(k-1) 此次误差-上次误差
  • 因为有误差积分 ∑e(i),一直累加,也就是当前的输出u(k)与过去的所有状态都有关系。

    位置式PID算法的伪代码如下

    https://位置式PID(伪代码)
    previous_err = 0;
    integral = 0;
    loop: https://根据目标值与测量值(如电机的设定速度与读到的编码器转后后的速度),循环计算更新输出值(如PWM)
    error = setpoint - measured_value; /*误差项:目标值-测量值*/
    integral += error * dt; /*积分项:误差项的累计*/
    derivative = (error - previous_error) / dt; /*微分项:误差的变化率*/
    output = Kp*error + Ki*integral + Kd*derivative; /*三项分别乘以PID系数即为输出*/
    previous_err = err; https://更新误差
    wait(dt); https://等待固定的计算周期
    goto loop;

    增量式PID

  • 比例P:e(k) - e(k-1) 此次误差-上次误差

  • 积分I:e(k) 此次误差d

  • 微分D:e(k) - 2e(k-1)+e(k-2)  这次误差-2×上次误差+上上次误差

  • 注意增量式PID首先计算的是Δu(k),然后与上次的输出相加,才是此次的输出结果。增量式PID没有误差累加,控制增量Δu(k)的确定仅与Zui近3次的采样值有关。

    增量式PID算法的伪代码如下

    https://增量式PID(伪代码)
    previous02_error = 0; https://上上次偏差
    previous01_error = 0; https://上次偏差
    integral = 0; https://积分和
    pid_out = 0; https://pid增量累加和
    loop:
    error = setpoint − measured_value; /*误差项:目标值-测量值*/
    proportion = error - previous01_error; /*比例项:误差项-上次偏差*/
    integral = error * dt; /*积分项:误差项的累计*/
    derivative = (error − 2*previous01_error + previous02_error) / dt;/*微分项:上次误差与上上次误差的变化率*/
    /*或写成:derivative = ( (error − previous01_error)/dt - (previous01_error - previous02_error)/dt )*/
    pid_delta = Kp × error + Ki × integral + Kd × derivative; https://计算得到PID增量
    pid_out = pid_out + pid_delta; https://计算Zui终的PID输出
    previous02_error = previous01_error; https://更新上上次偏差
    previous01_error = error; https://更新上次偏差
    wait(dt); https://等待固定的计算周期
    goto loop;

    PLC,变频器,代理商,一级代理,伺服电机
    展开全文
    我们其他产品
    我们的新闻
    相关产品
    西门子plc 西门子低压电器 西门子工控机 西门子电动阀 西门子 西门子变频器 西门子接触器 西门子减速机 西门子调节阀 西门子断路器 西门子贴片机 西门子人机界面 西门子代理商
    优质商家推荐 拨打电话