`
doujiu
  • 浏览: 90283 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

增量式PID控制算法

阅读更多
51单片机PID算法程序(三)增量式PID控制算法 -- Sheldon
当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID的“增量算法”。


增量式PID控制算法C51程序

/*====================================================================================================
PID Function
The PID (比例、积分、微分) function is used in mainly
control applications. PIDCalc performs one iteration of the PID
algorithm.
While the PID function works, main is just a dummy program showing
a typical usage.
=====================================================================================================*/

typedef struct PID

{

int SetPoint; //设定目标 Desired Value

long SumError; //误差累计

double Proportion; //比例常数 Proportional Const

double Integral; //积分常数 Integral Const

double Derivative; //微分常数 Derivative Const

int LastError; //Error[-1]

int PrevError; //Error[-2]

} PID;





static PID sPID;

static PID *sptr = &sPID;

/*====================================================================================================
Initialize PID Structure PID参数初始化
=====================================================================================================*/

void IncPIDInit(void)

{

sptr->SumError = 0;

sptr->LastError = 0; //Error[-1]

sptr->PrevError = 0; //Error[-2]

sptr->Proportion = 0; //比例常数 Proportional Const

sptr->Integral = 0; //积分常数Integral Const

sptr->Derivative = 0; //微分常数 Derivative Const

sptr->SetPoint = 0;

}



/*====================================================================================================
增量式PID计算部分
=====================================================================================================*/

int IncPIDCalc(int NextPoint)

{

register int iError, iIncpid; //当前误差

iError = sptr->SetPoint - NextPoint; //增量计算

iIncpid = sptr->Proportion * iError //E[k]项

- sptr->Integral * sptr->LastError //E[k-1]项

+ sptr->Derivative * sptr->PrevError; //E[k-2]项

//存储误差,用于下次计算

sptr->PrevError = sptr->LastError;

sptr->LastError = iError;

//返回增量值

return(iIncpid);

}


分享到:
评论

相关推荐

    增量式PID控制算法.doc

    "增量式PID控制算法" 增量式PID控制算法是指数字控制器的输出只是控制量的增量kuΔ。当执行机构需要的控制量是增量,而不是位置量的绝对数值时,可以使用增量式PID控制算法进行控制。增量式PID控制算法可以通过式1...

    【老生谈算法】增量式PID控制算法的MATLAB仿真.docx

    本文主要介绍了增量式PID控制算法的MATLAB仿真,包括PID控制算法的原理、增量式PID控制算法的实现、MATLAB仿真程序的编写等内容。 一、PID控制算法的原理 PID控制算法是指比例、积分、微分控制算法,它是目前最...

    增量式PID控制算法程序.

    ### 增量式PID控制算法程序解析 #### 概述 增量式PID(Proportional Integral Derivative)控制算法是一种广泛应用于工业自动化控制领域的控制方法。与传统的PID控制相比,增量式PID控制通过计算控制量的变化量来...

    51单片机增量式PID控制算法

    与传统的位置式PID控制算法不同,增量式PID算法更关注于控制量的变化量而非绝对值,这使得计算过程更加简单高效。 #### 二、算法公式推导 增量式PID控制算法的核心在于通过偏差值的变化来计算控制量的增量。假设...

    增量式pid控制算法.rar_增量PID_增量式_增量式pid

    文档“增量式pid控制算法.docx”可能包含了关于如何实现增量式PID算法的详细步骤,包括算法流程图、伪代码、参数整定方法以及实际案例分析等内容。通过阅读这份文档,读者可以深入理解增量式PID的工作原理,并学习...

    51单片机PID算法程序(三)增量式PID控制算法.rar_pid_pid 51_增量 PID_增量PID_增量式 pid

    增量式PID算法通过计算每次更新的控制量增量Δu,而不是直接计算新的控制量u,简化了计算过程,其公式如下: \[ \Delta u(k) = K_P e(k) + K_I \sum e(k) + K_D (e(k) - e(k-1)) \] 3. 增量式PID算法实现 在51...

    增量式PID控制算法程序

    增量式PID控制算法程序 本节将对增量式PID控制算法程序进行详细的解释和分析。该程序采用汇编语言WORD,使用增量式PID控制算法来实现PID控制。 程序结构 程序主要分为三个部分:初始化、计算和循环。初始化部分...

    51单片机增量式PID控制算法.rar

    "51单片机增量式PID控制算法.pdf"这份文档可能详细阐述了如何在51单片机上实现增量式PID算法的具体步骤,包括: 1. 参数设置:Kp(比例增益)、Ki(积分增益)和Kd(微分增益)的选择,这直接影响控制效果。 2. 算法...

    PID_KP_增量式PID控制算法_增量PID_

    在增量式PID算法中,Kp被用来调整每次控制输出的变化量。 描述提到了"matlab控制例程",这意味着我们可以利用MATLAB这一强大的数学和工程计算软件来实现和仿真这个增量式PID控制器。MATLAB中的Simulink或m文件可以...

    51单片机PID算法程序(三)增量式PID控制算法

    ### 51单片机PID算法程序(三)增量式PID控制算法 #### PID控制基本原理及应用 PID控制是一种广泛应用于工业自动化控制领域的经典控制方法。它通过比例(P)、积分(I)和微分(D)三个部分对系统的偏差进行处理,以...

    增量式PID控制算法C51程序

    增量式PID控制算法相比位置式PID算法而言,主要特点是每次只输出控制量的变化值,而不是整个控制量。这种方式可以有效减少累积误差的影响,提高控制精度和响应速度。 #### 三、C51程序结构分析 ##### 3.1 PID...

    51单片机PID算法程序增量式PID控制算法

    - **易于实现**:增量式PID算法仅需关注控制量的变化量,便于硬件或软件实现。 - **避免累积误差**:由于每次计算都是基于增量进行的,因此可以有效避免积分项带来的累积误差问题。 2. **应用场景**: - **步进...

    算法参考资料增量式PID控制算法

    使用增量式PID算法时,还需要注意一些实际应用中可能出现的问题,比如参数调整、误差限幅、抗积分饱和等问题。在实际工业环境中,对这些参数的调整和优化往往需要结合具体的应用场景和实验测试,以达到最佳的控制...

    增量式PID控制算法程序(汇编).doc

    增量式PID控制算法程序(汇编) 增量式PID控制算法是PID控制算法的一种改进版本,它可以在控制过程中实时调整PID参数,从而提高控制系统的稳定性和准确性。该算法程序使用汇编语言编写,利用了微处理器的寄存器和...

    增量式PID控制算法.docx

    在增量式PID算法中,控制器的输出是基于前几次采样时刻的偏差值来计算的。公式(2-6)展示了这种关系,其中A、B、C是根据系统需求预先设定的参数。当采样周期T固定时,通过这个公式,只需要知道当前及前两次的偏差值...

    增量式PID和位置式PID控制算法及离散表达式

    PID控制算法详解 ...PID控制算法是工业控制系统中最常用的控制算法之一,它可以分为位置式PID控制算法和增量式PID控制算法两种。每种算法都有其优点和缺点,选择哪种算法取决于具体的控制对象和控制要求。

    51单片机PID算法程序(三)增量式PID控制算法.pdf

    51单片机PID算法程序(三)增量式PID控制算法 PID 控制算法是自动控制系统中最常用的控制算法之一。它通过对系统的输出信号进行调整,以达到控制系统的稳定和高效运行。PID 控制算法由三个部分组成:比例...

Global site tag (gtag.js) - Google Analytics