[XMC™] 请问增量PID和位置PID,官方有没有一些比较权威的代码?

[复制链接]
5268|63
febgxu 发表于 2024-7-12 19:33 | 显示全部楼层
比如如何处理积分饱和、限制PID输出、使用低通滤波器来平滑微分项等,或者需要针对特定的硬件平台和编译器进行优化
jkl21 发表于 2024-7-13 11:14 | 显示全部楼层
增量PID控制器只输出控制量的增量,即本次与上一次控制量的差值。这种形式的PID控制器简化了计算,但在某些情况下可能不够稳定。
tabmone 发表于 2024-7-13 14:50 | 显示全部楼层
增量式PID只计算输出的变化量,而不是绝对输出值。这种方法减少了积分饱和的风险,适用于实时控制和需要快速响应的系统。
uiint 发表于 2024-7-13 18:27 | 显示全部楼层
增量式PID:增量式PID算法的输出是控制量的增量,即当前控制量与上一控制量之差。它只与最近几次的偏差有关,通常只需要考虑最近三次的偏差值(e(k)、e(k-1)、e(k-2)),因此计算量相对较小。增量式PID算法在发生问题时,由于只改变控制量的增量,因此对系统的影响较小,系统稳定性较好。
mickit 发表于 2024-7-13 22:03 | 显示全部楼层
比例增益(Kp):比例增益决定了控制器对误差反应的敏感度。Kp值过高可能导致系统过度反应(振荡),而Kp值过低则可能导致系统响应缓慢。
积分时间(Ti):积分时间决定了积分项对控制作用的影响。Ti值过高可能导致系统响应滞后,而Ti值过低可能导致系统不稳定。
微分时间(Td):微分时间决定了微分项对控制作用的影响。Td值可以帮助抑制系统的过度反应,提高系统的稳定性和响应速度。
pmp 发表于 2024-7-15 11:07 | 显示全部楼层
void update_PID_increment(PID *pid, float setpoint, float feedback) {
    float error = setpoint - feedback;
    float d_error = error - pid->error;
    float d_feedback = feedback - pid->prev_error;
   
    float output_increment = pid->Kp * error +
                              pid->Ki * d_error +
                              pid->Kd * d_feedback;
   
    pid->error = error;
    pid->prev_error = feedback;
   
    return output_increment;
}
gygp 发表于 2024-7-15 14:36 | 显示全部楼层
PID算法是一种广泛应用的控制器设计方法,其具体实现可能会因应用场景、硬件平台、编程语言等因素而有所不同。
LinkMe 发表于 2024-7-16 06:48 | 显示全部楼层
其实权利并不是使用它的权限,纠结这个干嘛
uptown 发表于 2024-7-16 15:51 | 显示全部楼层
GitHub和其他开源代码托管平台上有很多高质量的PID控制库,这些库由社区维护,并且经常被广泛使用和测试。
hilahope 发表于 2024-7-16 18:58 | 显示全部楼层
一些专业的控制工程书籍或教材会提供PID控制的理论基础和实际代码示例。这些资源通常由该领域的专家编写,因此具有一定的权威性。
updownq 发表于 2024-7-16 22:16 | 显示全部楼层
可以参考一些流行的控制算法库,如LabVIEW、MATLAB/Simulink、Python的scipy.signal模块等,这些工具通常提供了实现PID控制器的现成函数或模板。
fengm 发表于 2024-7-17 09:57 | 显示全部楼层
位置PID控制器输出完整的控制量,包括比例、积分和微分部分。这种形式的PID控制器更为直接,适用于需要精确控制的应用。
zerorobert 发表于 2024-7-17 13:20 | 显示全部楼层
对于这两种PID控制器,没有官方或权威的代码统一标准,因为PID控制器的实现可以根据具体的应用场景、目标和约束来定制。不过,通常可以在控制算法的基础上找到许多开源项目或教程,这些资源可以作为参考来设计自己的PID控制器。
olivem55arlowe 发表于 2024-7-17 16:31 | 显示全部楼层
位置式PID计算输出值时,会累积所有的误差值。这使得位置式PID特别适合于需要长期稳定的控制应用,但容易受到积分饱和的影响。
wilhelmina2 发表于 2024-7-17 19:49 | 显示全部楼层
Arduino PID Library就是一个流行的开源PID控制库
modesty3jonah 发表于 2024-7-18 19:57 | 显示全部楼层
位置式PID:
位置式PID算法的输出与系统的当前位置(或当前值)和期望位置(或期望值)之间的偏差有关。
它通过对偏差进行比例(P)、积分(I)和微分(D)运算,得到控制量,直接作用于被控对象。
由于位置式PID算法的输出是控制量的绝对值,因此每次计算都需要考虑过去的所有偏差,计算量相对较大。
AIsignel 发表于 2024-8-3 23:28 | 显示全部楼层
其实没有什么权威,一切都需要自己调整
IntelCore 发表于 2024-8-24 17:29 | 显示全部楼层
不存在适用于所有场景的单一“权威”代码。
理想阳 发表于 2024-9-3 17:55 | 显示全部楼层
找找看。总的来说应该还是有官方源代码的吧?
nowboy 发表于 2024-9-6 21:44 | 显示全部楼层
其实权利并不是使用权利。为什么要为此烦恼呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部