我这个PI调节的参数Kp为400 Ki为100。。有这么大不??我都不敢相信自己,,但是效果很好,,,,

2020-02-09 09:33发布

void PI()                /* PI调节算法 */
{


{  
  ek=P-((float)adc1.Ch1Out/100);
  if((ek<0.001)&&(ek>-0.001))
           /* 偏差小于0.1则调整值为0 */
  {
    adjust=0;
  }
  else  
  {   
    uk=Kp*(ek-ek1)+Ki*ek;/* 否则计算控制增量 */
    ek1=ek;
    uk1=(signed int)uk;
    if(uk>0)
    {
      if(uk-uk1>=0.5)
      {
        uk1=uk1+1;
      }
    }
    if(uk<0)
    {
      if(uk1-uk>=0.5)
      {
        uk1=uk1-1;
      }
    }
    adjust=uk1;
    XPWM=XPWM+adjust;
  }  
//  return;
}
//asm(" NOP ");           /* 请将光标移到此处设置断点,并用debug->Animate监测数据 */
}

我这个PI调节的参数Kp为400   Ki为100。。有这么大不??我都不敢相信自己,,但是效果很好,,,,什么原因,,可以接受不
0条回答

一周热门 更多>