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

📄 pid.h

📁 AVR单片PID调节,调试已通过@性能比较稳定@
💻 H
字号:
/**************************************************************************
*  函数库说明:PID 调节函数                                               *
*  版本:      v1.0                                                       *
*  作者:      田超                                                       *
*  创建日期:  2006年11月6日                                              *
* ----------------------------------------------------------------------- *
*  [说明]                                                                 *
*         1、支持完整的P(比例)、I(积分)、D(微分)调节。              *
*         2、为提高AVR的运算速度和减少数据占用空间P、I、D参数均为char型。 *
*            使用时根据实际被控系统调节Proportion、Integral、Derivative   *
*            参数已达到控制要求。                                         *
*         3、FeedbackDistance、FeedbackSpeed为反馈值,AimDistance、       *
*            AimSpeed为目标值。调用PIDOut()时根据控制类型给出反馈值和目标 *
*            值。                                                         *
**************************************************************************/
/*-----------------------------PID参数定义-------------------------------*/
const char  Proportion = 0;                                                //  比例常数
//const char  Integral = 5;                                                  //  积分常数
//const char  Derivative = 1;                                                //  微分常数

         //int  dError    = 0;                                               //微分偏差
		 int  Error     = 0;                                               //当前偏差
         //int  LastError = 0;                                               //Error[-1]
         //int  PrevError = 0;                                               //Error[-2]
         //long SumError  = 0;                                               //Sums of Errors
         long   AimDistance          = 0;                                  //目标位置
         long   FeedbackDistance     = 0;                                  //反馈位置
signed	 char   AimSpeed             = 0;                                  //目标速度
//signed	 char   FeedbackSpeed        = 0;                                  //反馈速度
/**************************************************************************
*  函数名称 : PIDOut                                                      *
*  输入:     AimDistance(输入目标位置)                                   *
*  输出:     PID调节                                                     *
**************************************************************************/		 
int PIDOut(void)
{			  
		Error = AimDistance -  FeedbackDistance;                           // 偏差
        //SumError += Error;                                                 // 积分
        //dError = LastError - PrevError;                                    // 当前微分
        //PrevError = LastError;
        //LastError = Error;
        return  (  Error >> Proportion                                     // 比例项
            //+    SumError >> Integral                                      // 积分项
            //+    dError >> Derivative                                      // 微分项
        );
}
  

⌨️ 快捷键说明

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