信捷PLC自编的增量式PID程序

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
/*************************************************************************
   FunctionBlockName:  PID_1
   Version:            1.0.0
   Author:             
   UpdateTime:         2019-10-22 09:53:16
   Comment:            
			
**************************************************************************/
void PID_1( WORD W , BIT B )
{
            
        float Set=FW[0];//SetSpeed;//定义设定值
        float Actual=FW[2];//定义实际值
        float err=FW[4];//定义偏差值
        float err_last=FW[6];//定义上一个偏差值       
        float err_2last=FW[8];
        float Perr;
        float Derr;
        float Kp=FW[10],Ki=FW[12],Kd=FW[14];//定义比例、积分、微分系数
        
        float Value;
 
        err=(Set-Actual)/Set;//偏差
        FW[4]=err;    
        Perr=err-err_last;
        Derr=err-2*err_last+err_2last;
        if (abs(err)<FW[28])
        Value=Kp*Perr+Ki*err*FW[24]+Kd*Derr;
        else       
        Value=Kp*Perr+Ki*err+Kd*Derr;
        FW[26]=Value;
        FW[8]=err_last;
        FW[6]=err;   
 
        W[20]=W[20]*(1+Value);
        if (W[20]>W[16])
            W[20]=W[16];
         if (W[20]<W[18])
            W[20]=W[18];  
     int yujian_Votage=W[610];
    int SV=W[600];
    int CV=W[614];
    int Step=SHD[2079+W[922]];
    float yujian_Current=FW[612];
    float k_yujian;
    float SSV;
    float err;
    if (yujian_Current!=0 & yujian_Votage!=0)
    {
        k_yujian=yujian_Votage/yujian_Current/10;
    }
    else
        k_yujian=5;
FW[616]=k_yujian;  
SSV=SV* k_yujian*10;
W[618]=SSV;  
//W[614]=SSV;
         if (W[614]>W[618])
            W[614]=W[614]-SHD[2081];
        else
             W[614]=W[614]+SHD[2081];   
         if (W[614]>1500)
            W[614]=1500;           
         if (W[614]<100)
            W[614]=100;                    
       W[640]=W[614];            
      B[780]=1;
      else
      B[780]=0;      

    }

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6