⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icetek-pid.c

📁 2812例程以及 控制直流无刷电机程序
💻 C
字号:
/*=====================================================================================
 File name:        PID_REG3.C  (IQ version)                  
                    
 Originator:	Digital Control Systems Group
			Texas Instruments

 Description:  The PID controller with anti-windup                   

=====================================================================================
 History:
-------------------------------------------------------------------------------------
 04-15-2005	Version 3.20
-------------------------------------------------------------------------------------*/

#include "IQmathLib.h"         // Include header for IQmath library
// Don't forget to set a proper GLOBAL_Q in "IQmathLib.h" file
#include "dmctype.h"
#include "ICETEK-PID.h"

void ICETEK_PIDA_calc(ICETEK_PIDA *v)
{	
    // Compute the error
    v->Err0 = v->Ref - v->Fdb;

    // Compute the proportional output
	v->Up = _IQmpy(v->Kp,v->Err0);

    // Compute the integral output
	v->Ui = _IQmpy(v->Ki,v->Err1);

    // Compute the derivative output
	v->Ud = _IQmpy(v->Kd,v->Err2);

    // Compute the pre-saturated output
    v->OutPreSat = v->Up + v->Ui + v->Ud;

    // Saturate the output
    if (v->OutPreSat > v->OutMax)
      v->Out =  v->OutMax;
    else if (v->OutPreSat < v->OutMin)
      v->Out =  v->OutMin;
    else
      v->Out = v->OutPreSat;

	v->Err2 = v->Err1; v->Err1 = v->Err0;

    // Compute the saturate difference
}


⌨️ 快捷键说明

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