这是每一个人最初学到的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控制器,还需要明确和解决下面这些事情:
-
Sample Time 样本时间-
PID算法最好是能评定规律的间隔。如果算法在意这个间隔,我们可以简化内部的计算。
-
Derivative Kick -
不是什么大问题,很容易解决,因此我们准备解决它。
-
On-The-Fly Tuning Changes 在运调试-
一个好的PID算法是在参数调优时不打乱内部工作。
-
Reset Windup Mitigation -
我们将跟进什么是重置终结,然后实现一个可以带来好处的方案。
-
On/Off (Auto/Manual) 开/关(自动/手动) -
有很多程序,有时希望关闭PID控制,然后通过手动输出,没有控制器的干扰。
-
Initialization 初始化 -
当控制器第一次启动时,我们需要优雅的转换。也就是说不希望一下突然输出一些修正值。
-
Controller Direction 控制方向-
最后一种,不是鲁棒性名称上的修改。它设计来确保用户使用正确的信号进行参数调优。
当我们解决了这些问题,我们将拥有一个坚实的PID算法。
分享到:
相关推荐
PID控制器是一种在自动控制领域广泛应用的反馈控制算法,它的全称是比例-积分-微分控制器。PID控制机制的核心在于通过实时调整控制器的输出来减少系统偏差,从而提高控制精度和稳定性。 一、PID控制器的组成部分 1....
正如本文所介绍的这款PID模拟软件,其核心功能是为初学者提供一个模拟平台,让他们可以在虚拟环境中自由设置PID参数,并观察不同参数设置对系统响应的影响。软件中的“可以设置PID参数”功能,允许用户对比例、积分...
标题"简单的USB获取VID和PID,可供初学者参考!"意味着这是一个面向初级开发者的教程或示例代码,旨在教他们如何在控制台环境下遍历USB大容量存储设备,并获取这些设备的VID和PID信息。这通常是通过编写驱动程序或者...
### PID控制初学基本知识资料 #### 一、PID基础知识概览 PID控制器是一种常用的反馈控制器,广泛应用于工业过程控制领域。它通过计算系统偏差的比例(P)、积分(I)和微分(D)来调整控制量,从而实现对系统的...
通过理解PID算法的原理和各个组成部分,初学者可以更好地掌握如何设计和调整PID控制器,以适应不同系统的需求,实现更精确的过程控制。在实际应用中,常常需要结合系统特性对PID参数进行优化,以达到最佳的控制效果...
描述中的“PID控制温度,适合新手,过程不复杂,一看就懂,建议拿来学习一下”表明这个项目是为初学者设计的,它的目标是实现一个简单的温度控制系统,使用PID算法进行调节。由于强调“过程不复杂”,我们可以期待这...
对于初学者来说,理解PID的基本原理和应用至关重要。 PID控制器的工作机制主要包括三个部分:比例(P)、积分(I)和微分(D)项。比例项直接反映了误差的大小,它会立即对当前误差进行响应;积分项则关注误差的...
5. **用户友好**:对于初学者来说,这款软件的易用性是一大亮点。即使没有深入的PID理论基础,通过尝试和实践也能快速掌握PID调试的基本步骤。 6. **错误反馈机制**:如果在使用过程中发现任何问题或bug,用户可以...
本文将深入浅出地介绍PID控制算法,这是一种被广泛应用的基本控制算法,旨在帮助初学者理解其工作原理。 #### 二、自动控制技术概览 自动控制技术是20世纪最具影响力的技术之一,其应用遍布各个领域。从技术角度看...
这个文件包括许多PID教程和相关学习心得,对初学者学习入门PID走很多帮助,非常适合下载来看看。 其中包含了以下文件: - PID 控制参数如何设定调节.doc - PID.pdf - PID.txt - PID仿真程序.rar - PID参数整定.doc -...
PID控制器是一种在自动化控制领域广泛应用的反馈控制算法,它的全称是比例-积分-微分控制器。...无论是初学者还是经验丰富的工程师,都能从中学习到如何在C语言环境下实现和优化PID算法,以适应实际工程中的各种挑战。
PID库是专门为Arduino平台设计...对于初学者,理解PID的基本原理和这些函数的用途是关键,因为它们可以帮助实现精确控制各种系统,比如温度、速度或位置等。正确使用PID库可以显著提升Arduino项目的控制精度和稳定性。
在这个“STEP7 PID小例程,对初学者会有用.rar”压缩包中,我们可以期待找到一个针对初学者的PID控制器编程实例。PID(比例-积分-微分)控制器是一种广泛用于自动调节系统中的算法,能够精确地控制过程变量,如温度、...
SETP PID小例程,初学者有用.zip西门子PLC编程实例程序源码下载SETP PID小例程,初学者有用.zip西门子PLC编程实例程序源码下载SETP PID小例程,初学者有用.zip西门子PLC编程实例程序源码下载SETP PID小例程,初学者...
虽然Excel的计算能力有限,但它提供了一个直观且易于上手的平台,尤其适合初学者理解和练习PID控制。 总的来说,PID模拟器是控制工程中不可或缺的工具,它使得PID控制器的设计和优化变得更加高效和精确。无论是教育...
代码应该有良好的注释,以便初学者可以跟随代码逻辑逐步理解PID算法。 标签进一步强调了"C语言"、"pid"和"pid算法程序",这表明这个项目的核心内容是用C语言编写的PID控制器的实现,可能包括了PID参数的调整、实时...
STEP7 PID小例程,对初学者会有用.zip西门子PLC编程实例程序源码下载STEP7 PID小例程,对初学者会有用.zip西门子PLC编程实例程序源码下载STEP7 PID小例程,对初学者会有用.zip西门子PLC编程实例程序源码下载STEP7 PID小...
本压缩包“工业机器人-SETP PID小例程,初学者有用.7z”提供了适合初学者学习的SETP PID控制程序,这将帮助你理解如何使用PID算法来精确控制机器人的运动。 首先,让我们了解一下PID控制器的基本概念。PID控制器是...
通过博途,用户可以创建虚拟的输入/输出设备,并观察PID控制器对系统行为的影响,这特别适合初学者进行学习和实践。 4. **波形分析**:在博途中,PID仿真的一个重要方面是波形显示。用户可以查看输入信号、输出信号...
在工业自动化领域,PLC...无论是初学者还是有经验的工程师,都能从中受益,提升自己的自动化控制技能。通过实际操作和仿真实验,用户可以更好地理解和掌握PID控制器在不同系统中的应用,为实际工程问题提供解决方案。