carvenl 发表于 2020-4-7 23:18:14

DSP中的PID函数有点看不明白

常规PID控制的公式应该是Output = Kp*e(k) + Ki*∑e(k) + Kd
输入的积分、微分值分别乘以P、I、D的值
就算增量PID也应该是
ΔOutput = Kp + Ki*e(k) + Kd


而DSP库里的PID算法

   y = y + A0 * x + A1 * x + A2 * x   A0 = Kp + Ki + Kd   A1 = (-Kp ) - (2 * Kd )   A2 = Kd



这个框图倒是画得没问题
不过不太明白这个A0、A1、A2是什么意思?
arm_pid_instance_f32里的state又是什么?

arm_pid_reset_f32和resetStateFlag也不明白是什么用法,为何要清除数据?
看了一下源码,貌似是汇编写的,也没看懂
然后官方也没给出任何例程和说明
唯一的资料就是论坛里的,但是也没说明白这些问题
求指教,谢谢!

eric2013 发表于 2020-4-8 00:04:38

PID我也是学的半瓶子晃荡,没有理解到精髓,只能默默的帮顶下了。

等后续深入研究了再跟楼主交流交流。

wdliming 发表于 2020-8-4 09:24:11

dsp教程的pid适合工业控制吗?按你说的好像公式挺特别

eric2013 发表于 2020-8-4 09:39:10

wdliming 发表于 2020-8-4 09:24
dsp教程的pid适合工业控制吗?按你说的好像公式挺特别

没问题,PID的公式比较好理解。

麻烦的就是他的参数调节。

nexuizhua 发表于 2020-8-4 16:22:27

人家的是初始公式,你发的常规公式是推导之后的

music1273 发表于 2020-8-21 14:16:28

在项目中用过,没问题

lcpdeb 发表于 2020-9-14 07:35:04

额,你把增量式拆开看看不就是一样的吗
页: [1]
查看完整版本: DSP中的PID函数有点看不明白