PID 输出数据 如何转换为控制变量。

2019-07-17 14:29发布

如题,PID的输出数据如何转换为控制变量。
××××××××××
模型一:加热箱
设定值SV, 检测值PV,PID计算结果MV。 执行结构是加热块。

MV是一个数值,无单位。 执行结构通常是PWM控制的固态继电器。

PWN和MV之间是如何转换的?

×××××××××××

模型二:调速电机(电压调速)
设定值SV(转速),检测值PV(编码器返回的速度),PID计算结果MV,执行结构:可编程电源
MV是一个数值,无单位。MV和如何和可编程电源的的输出电压建立关系?

×××××××××××××××××

参考资料:http://www.docin.com/p-220191301.html

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
wenluderen
2019-07-17 23:52
liqijian101 发表于 2017-7-20 09:00
1.实际PID工作时是根据检测值与设定值的偏差进行调节的,直到偏差接近0。
2.PID计算值其实是PWM的占空比,模型一、模型二都是。
PID程序你可以参考http://bbs.elecfans.com/jishu_1147002_1_1.html

float PID_Regulator(float Reference, float PresentFeedback, _pid *PID_Struct)
{
  float Error;
  float output;
  /* 偏差计算  */
  Error= (Reference - PresentFeedback);

  /* 积分计算  */
  if (PID_Struct->Ki == 0)
  {
    PID_Struct->Integral = 0;
  }
  else
  {
    PID_Struct->Integral += PID_Struct->Ki * Error;
    if (PID_Struct->Integral > PID_Struct->Upper_Limit_Integral)
    {
      PID_Struct->Integral = PID_Struct->Upper_Limit_Integral;
    }
    else if (PID_Struct->Integral < PID_Struct->Lower_Limit_Integral)
          {
            PID_Struct->Integral = PID_Struct->Lower_Limit_Integral;
          }
          else
          {         
          }
  }

  output= (PID_Struct->Kp * Error +
                     PID_Struct->Integral +
                   PID_Struct->Kd*(Error - PID_Struct->PreviousError) );
   
  PID_Struct->PreviousError = Error;    // store value

    if (output >= PID_Struct->Upper_Limit_Output)
      {
      return(PID_Struct->Upper_Limit_Output);                                                  
      }
    else if (output < PID_Struct->Lower_Limit_Output)
      {
      return(PID_Struct->Lower_Limit_Output);
      }
    else
      {
        return output;                
      }
}       
××××××××××××××××××××××××××××××××××
  output= (PID_Struct->Kp * Error +
                     PID_Struct->Integral +
                   PID_Struct->Kd*(Error - PID_Struct->PreviousError) );

输出= 误差*比例 +积分+微分(当前误差-上次误差)
××××××××××××××××××××
这个积分项 似乎没有和误差建立计算关系。

一周热门 更多>