356053261 发表于 2024-8-5 18:06

356053261 发表于 2024-8-5 18:02
空载和重载的PWM脉宽是不一样的,数字电源中PID用增量PID控制,PID返回的是需要调整多少当前电压与目标电 ...

如果输出电压高了需要回调,则会返回负数,要考虑这里负数计算会不会有问题

yutingwei 发表于 2024-12-31 00:39

与浮点数运算相比,整数运算通常更为高效,因为整数运算不需要额外的硬件支持,且生成的代码通常较小,执行速度更快。

Amazingxixixi 发表于 2024-12-31 14:15

放大倍数

地瓜patch 发表于 2025-1-21 21:38

好主意

朝生 发表于 2025-1-24 07:52

我用浮点数来计算,所以无法体会速度的差异

AIsignel 发表于 2025-1-24 14:12

整数取代了浮点,只能在极其苛刻的性能条件下使用

jtracy3 发表于 2025-2-4 16:27

整数运算比浮点运算更高效,可以显著提高MCU的执行速度并减少生成的代码量。

biechedan 发表于 2025-2-4 18:07

由于积分项是不断累加的,可能会出现积分饱和的问题。可以通过积分限幅的方式来避免积分饱和,即当积分项超过一定范围时,将其限制在该范围内。

uiint 发表于 2025-2-4 22:04

采用增量式PID算法代替位置式PID算法。增量式PID算法只需要计算当前控制量与前一次控制量的差值,不需要每次计算都累加积分项,从而减少了计算量和代码复杂度。例如,在计算过程中,可以直接使用上一次的误差和积分值来计算本次的控制量,避免了重复计算。

yeates333 发表于 2025-2-5 08:42

由于浮点数运算在MCU上通常比较耗时且占用较多的资源,可以将所有参数和计算结果都转换为定点数进行运算。通过选择一个合适的固定小数点位置,将整数部分和小数部分组合成一个整数来表示实际的数值。在计算完成后,再根据需要将结果转换回浮点数形式。例如,可以将数值放大一定的倍数后进行整数运算,最后再除以相同的倍数得到实际结果。

maqianqu 发表于 2025-2-5 09:14

根据实际应用调整比例、积分和微分常数,以达到最佳控制效果。

1988020566 发表于 2025-2-5 10:18

合理安排变量的定义和使用顺序,避免重复声明和初始化变量,减少代码的冗余。同时,尽量使用局部变量来代替全局变量,以提高代码的可读性和执行效率。

caigang13 发表于 2025-2-5 11:17

PID算法看起来很简单,但是要把参数调好还是不容易的。

yorkbarney 发表于 2025-2-5 11:52

在进行定点数运算时,需要注意数值范围和精度的控制,避免因溢出或舍入误差导致计算结果不准确。

sesefadou 发表于 2025-2-5 15:20

为了将误差、积分和微分项转换为整数,需要选择一个合适的比例因子(scaling factor)。比例因子的选择取决于误差和增益的范围,确保所有计算结果在整数表示范围内。

qiufengsd 发表于 2025-2-5 15:50

将PID控制器的比例系数(Kp)、积分系数(Ki)和微分系数(Kd)分别乘以一个缩放因子,转换为整数形式。

backlugin 发表于 2025-2-5 16:16

使用整数计算PID以提高MCU效率和减少生成代码量需综合多方面考量。

lzmm 发表于 2025-2-5 17:35

在进行整数运算时,需要注意检查是否会发生溢出。可以在关键的计算步骤中添加溢出检查代码

robertesth 发表于 2025-2-5 19:17

由于运算速度更快,MCU可以更快完成任务并进入低功耗模式,从而降低整体功耗。

pl202 发表于 2025-2-5 19:51

整数运算的代码通常更紧凑,占用的闪存空间更少。
页: 1 [2] 3 4 5
查看完整版本: 使用整数来计算PID,以提高MCU效率及减少生成的代码量