pid_reg3.c

来自「许继的2812开发全套驱动程序,很全很实用的.rar」· C语言 代码 · 共 46 行

C
46
字号
/*=====================================================================================
 File name:        PID_REG3.C  (IQ version)                  
                    
 Originator:	Digital Control Systems Group
			Texas Instruments

 Description:  The PID controller with anti-windup                   

=====================================================================================
 History:
-------------------------------------------------------------------------------------
 05-15-2002	Release	Rev 1.0
-------------------------------------------------------------------------------------*/

#include "IQmathLib.h"         /* Include header for IQmath library */
/* Don't forget to set a proper GLOBAL_Q in "IQmathLib.h" file */
#include "pid_reg3.h"

void pid_reg3_calc(PIDREG3 *v)
{	

    v->e_reg3 = v->pid_ref_reg3 - v->pid_fdb_reg3;
    
    v->up_reg3 = _IQmpy(v->Kp_reg3,v->e_reg3);
    
    v->uprsat_reg3 = v->up_reg3 + v->ui_reg3 + v->ud_reg3;
    
    if (v->uprsat_reg3 > v->pid_out_max)
      v->pid_out_reg3 =  v->pid_out_max;
    else if (v->uprsat_reg3 < v->pid_out_min)
      v->pid_out_reg3 =  v->pid_out_min;  
    else
      v->pid_out_reg3 = v->uprsat_reg3;
    
    v->saterr_reg3 = v->pid_out_reg3 - v->uprsat_reg3;
    
    v->ui_reg3 = v->ui_reg3 + _IQmpy(v->Ki_reg3,v->up_reg3) + _IQmpy(v->Kc_reg3,v->saterr_reg3);
    
    v->ud_reg3 = _IQmpy(v->Kd_reg3,(v->up_reg3 - v->up1_reg3));
     
    v->up1_reg3 = v->up_reg3; 
    
}


⌨️ 快捷键说明

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