`
阅读更多

 

这是每一个人最初学到的PID等式:

然后每个人都可以写下这样的PID控制器:

/*working variables*/
unsigned long lastTime;
double Input, Output, Setpoint;
double errSum, lastErr;
double kp, ki, kd;
void Compute()
{
   /*How long since we last calculated*/
   unsigned long now = millis();
   double timeChange = (double)(now - lastTime);
  
   /*Compute all the working error variables*/
   double error = Setpoint - Input;
   errSum += (error * timeChange);
   double dErr = (error - lastErr) / timeChange;
  
   /*Compute PID Output*/
   Output = kp * error + ki * errSum + kd * dErr;
  
   /*Remember some variables for next time*/
   lastErr = error;
   lastTime = now;
}
  
void SetTunings(double Kp, double Ki, double Kd)
{
   kp = Kp;
   ki = Ki;
   kd = Kd;
}

 

Compute()被规律或无序的调用,并很好的工作。如果我们将这段代码变成标准工业PID控制器,还需要明确和解决下面这些事情:

  1. Sample Time 样本时间-  PID算法最好是能评定规律的间隔。如果算法在意这个间隔,我们可以简化内部的计算。
  2. Derivative Kick -  不是什么大问题,很容易解决,因此我们准备解决它。
  3. On-The-Fly Tuning Changes 在运调试-  一个好的PID算法是在参数调优时不打乱内部工作。
  4. Reset Windup Mitigation - 我们将跟进什么是重置终结,然后实现一个可以带来好处的方案。
  5. On/Off (Auto/Manual) 开/关(自动/手动) -  有很多程序,有时希望关闭PID控制,然后通过手动输出,没有控制器的干扰。
  6. Initialization 初始化 -  当控制器第一次启动时,我们需要优雅的转换。也就是说不希望一下突然输出一些修正值。
  7. Controller Direction 控制方向-  最后一种,不是鲁棒性名称上的修改。它设计来确保用户使用正确的信号进行参数调优。

当我们解决了这些问题,我们将拥有一个坚实的PID算法。

0
0
分享到:
评论

相关推荐

    学习笔记一:PID总结

    PID控制器是一种在自动控制领域广泛应用的反馈控制算法,它的全称是比例-积分-微分控制器。PID控制机制的核心在于通过实时调整控制器的输出来减少系统偏差,从而提高控制精度和稳定性。 一、PID控制器的组成部分 1....

    一款十分适合初学者学习的的PID模拟软件

    标题中的“一款十分适合初学者学习的的PID模拟软件”表明了这是一款为新手设计的教育性工具,主要目标是帮助用户理解并掌握PID(比例-积分-微分)控制算法。PID控制器是自动化工程中广泛应用的一种反馈控制系统,...

    简单的USB获取VID和PID,可供初学者参考!

    标题"简单的USB获取VID和PID,可供初学者参考!"意味着这是一个面向初级开发者的教程或示例代码,旨在教他们如何在控制台环境下遍历USB大容量存储设备,并获取这些设备的VID和PID信息。这通常是通过编写驱动程序或者...

    PID控制初学基本知识资料

    ### PID控制初学基本知识资料 #### 一、PID基础知识概览 PID控制器是一种常用的反馈控制器,广泛应用于工业过程控制领域。它通过计算系统偏差的比例(P)、积分(I)和微分(D)来调整控制量,从而实现对系统的...

    PID算法概念详解 初学者值得一看

    通过理解PID算法的原理和各个组成部分,初学者可以更好地掌握如何设计和调整PID控制器,以适应不同系统的需求,实现更精确的过程控制。在实际应用中,常常需要结合系统特性对PID参数进行优化,以达到最佳的控制效果...

    PID_Verilog_pidverilog_PID模块简单代码_PID温度_PIDverilog_

    描述中的“PID控制温度,适合新手,过程不复杂,一看就懂,建议拿来学习一下”表明这个项目是为初学者设计的,它的目标是实现一个简单的温度控制系统,使用PID算法进行调节。由于强调“过程不复杂”,我们可以期待这...

    PID资料,对初学者有帮助

    对于初学者来说,理解PID的基本原理和应用至关重要。 PID控制器的工作机制主要包括三个部分:比例(P)、积分(I)和微分(D)项。比例项直接反映了误差的大小,它会立即对当前误差进行响应;积分项则关注误差的...

    PIDDebug.zip_PID 调试软件 图形显示_PID 软件_pid 调试 串口_pid调试助手_pid调试软件

    5. **用户友好**:对于初学者来说,这款软件的易用性是一大亮点。即使没有深入的PID理论基础,通过尝试和实践也能快速掌握PID调试的基本步骤。 6. **错误反馈机制**:如果在使用过程中发现任何问题或bug,用户可以...

    PID控制算法(初学者也看的懂)

    本文将深入浅出地介绍PID控制算法,这是一种被广泛应用的基本控制算法,旨在帮助初学者理解其工作原理。 #### 二、自动控制技术概览 自动控制技术是20世纪最具影响力的技术之一,其应用遍布各个领域。从技术角度看...

    PID算法详解(包含很多PID文章和学习经验)

    这个文件包括许多PID教程和相关学习心得,对初学者学习入门PID走很多帮助,非常适合下载来看看。 其中包含了以下文件: - PID 控制参数如何设定调节.doc - PID.pdf - PID.txt - PID仿真程序.rar - PID参数整定.doc -...

    pid_抗饱和积分pid_多种PID算法_嵌入式C语言_pid_PID算法_

    PID控制器是一种在自动化控制领域广泛应用的反馈控制算法,它的全称是比例-积分-微分控制器。...无论是初学者还是经验丰富的工程师,都能从中学习到如何在C语言环境下实现和优化PID算法,以适应实际工程中的各种挑战。

    PID库(Arduino PID Library)使用说明

    PID库是专门为Arduino平台设计...对于初学者,理解PID的基本原理和这些函数的用途是关键,因为它们可以帮助实现精确控制各种系统,比如温度、速度或位置等。正确使用PID库可以显著提升Arduino项目的控制精度和稳定性。

    STEP7 PID小例程,对初学者会有用.rar

    在这个“STEP7 PID小例程,对初学者会有用.rar”压缩包中,我们可以期待找到一个针对初学者的PID控制器编程实例。PID(比例-积分-微分)控制器是一种广泛用于自动调节系统中的算法,能够精确地控制过程变量,如温度、...

    SETP PID小例程,初学者有用.zip西门子PLC编程实例程序源码下载

    SETP PID小例程,初学者有用.zip西门子PLC编程实例程序源码下载SETP PID小例程,初学者有用.zip西门子PLC编程实例程序源码下载SETP PID小例程,初学者有用.zip西门子PLC编程实例程序源码下载SETP PID小例程,初学者...

    PID模拟器PID模拟器PID模拟器

    虽然Excel的计算能力有限,但它提供了一个直观且易于上手的平台,尤其适合初学者理解和练习PID控制。 总的来说,PID模拟器是控制工程中不可或缺的工具,它使得PID控制器的设计和优化变得更加高效和精确。无论是教育...

    C语言描述PID算法程序.rar_C语言 PID_pid c语言_pid算法程序

    代码应该有良好的注释,以便初学者可以跟随代码逻辑逐步理解PID算法。 标签进一步强调了"C语言"、"pid"和"pid算法程序",这表明这个项目的核心内容是用C语言编写的PID控制器的实现,可能包括了PID参数的调整、实时...

    博途PLC PID仿真PID闭环仿真 一阶系统二阶系统博途PID仿真库.zip

    在工业自动化领域,PLC...无论是初学者还是有经验的工程师,都能从中受益,提升自己的自动化控制技能。通过实际操作和仿真实验,用户可以更好地理解和掌握PID控制器在不同系统中的应用,为实际工程问题提供解决方案。

    STEP7 PID小例程,对初学者会有用.zip西门子PLC编程实例程序源码下载

    STEP7 PID小例程,对初学者会有用.zip西门子PLC编程实例程序源码下载STEP7 PID小例程,对初学者会有用.zip西门子PLC编程实例程序源码下载STEP7 PID小例程,对初学者会有用.zip西门子PLC编程实例程序源码下载STEP7 PID小...

    工业机器人-SETP PID小例程,初学者有用.7z

    本压缩包“工业机器人-SETP PID小例程,初学者有用.7z”提供了适合初学者学习的SETP PID控制程序,这将帮助你理解如何使用PID算法来精确控制机器人的运动。 首先,让我们了解一下PID控制器的基本概念。PID控制器是...

    博途PID仿真程序.zip

    通过博途,用户可以创建虚拟的输入/输出设备,并观察PID控制器对系统行为的影响,这特别适合初学者进行学习和实践。 4. **波形分析**:在博途中,PID仿真的一个重要方面是波形显示。用户可以查看输入信号、输出信号...

Global site tag (gtag.js) - Google Analytics