pid.c

来自「平缝机的单片机伺服控制系统源代码。本程序为用单片机控制永磁同步电机的低成本方案」· C语言 代码 · 共 41 行

C
41
字号

    float Vh,Vl,Kph,Kpl,Kih,Kil,Kdh,Kdl,Ve;
 
    Kp=(Vpedal-Vl)*(Kph-Kpl)/(Vh-Vl)+Kpl;
    Ki=(Vpedal-Vl)*(Kih-Kil)/(Vh-Vl)+Kil;
    Kd=(Vpedal-Vl)*(Kdh-Kdl)/(Vh-Vl)+Kdl;
 
 
 
 PI(Vfbk,Vpedal)
 {
    float Vh,Vl,Kph,Kpl,Kih,Kil,Kdh,Kdl,Ve;
    float error,error_1,Perror,Ierror,Derror;
    
    if (Vpedal <  )
      Kpl=   ;
      Kil=   ;
      Kdl=   ;
    else if (Vpedal <  )  
         
    
    Kp = (Vpedal-Vl)*(Kph-Kpl)/(Vh-Vl)+Kpl;
    Ki = (Vpedal-Vl)*(Kih-Kil)/(Vh-Vl)+Kil;
    Kd = (Vpedal-Vl)*(Kdh-Kdl)/(Vh-Vl)+Kdl;
    
    error  = Vpedal-Vfbk;
    Perror = error-error_1;
    Ierror = error;
    Derror = error-2*error_1+error_2;
    Du     = Kp*Perror+Ki*Ierror+Kd*Derror;
    
    error_2 = error_1;
    error_1 = error;
    
    Ve = Vfbk+Du;
    return(Ve);
}
  
  
  
  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?