你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

有STM32 PID 自動調整的程序參考嗎

[复制链接]
louis7592003 提问时间:2018-1-6 12:02 /
數學公式也可以,我是用位置式來表達的
我看過很多例子,有自適應PID,模糊PID,神經PID
<
收藏 1 评论2 发布时间:2018-1-6 12:02

举报

2个回答
dsjsjf 回答时间:2018-3-21 11:40:54
int8_t IncPIDCalc(void)
{
  int pError, iError, dError;                                   //当前误差
  float Incpid;                                                 //增量
  iError = sPID.SetPoint - sPID.CurrentTemp;                    //E[n]项
  pError = iError - sPID.LastError;                             //E[n] - E[n-1]项
  dError = pError - (sPID.LastError - sPID.PrevError);          //(E[n] - E[n-1]) - (E[n-1] - E[n-2])项
                                                                //存储误差,用于下次计算
  sPID.PrevError = sPID.LastError;                              //E[n-2]项
  sPID.LastError = iError;                                      //E[n-1]项
  Incpid = (float)(sPID.Proportion * pError                    //
            + sPID.Integral * iError                     
            + sPID.Derivative * dError);                        
  sPID.Result += Incpid;
  if(sPID.Result < 0)
  {
    sPID.Result = 0;
  }
  else if(sPID.Result > 100)
  {
    sPID.Result = 100;
  }
  
  return (int8_t)sPID.Result;                                   //返回PID值
}

点评

上面这个程序应该是增量式PID的公式实现吧。 sPID.Proportion sPID.Integral sPID.Derivative 这个PID参数结构。 参数没变哦。 PID参数整定 应该是一个学习过程咯   发表于 2019-7-24 12:11

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版