MATLAB PID 滤波器系数

pau*_*ulj 1 matlab signal-processing

我在生成具有滤波器系数的 PID 算法时遇到问题。带有滤波器系数的 PID 的框图如下所示。 在此处输入图片说明

我在这个链接中找到了一个算法/代码。https://www.mathworks.com/matlabcentral/answers/63762-filter-coefficient-n-in-pid-block

在此处输入图片说明

问题:为什么FilterCoefficient 有一个未知变量Filter_DSTATE,而Filter_DSTATE 有一个未知变量FilterCoefficient?FilterCoefficient 的代码有一个未知的 Filter_DSTATE 变量,而 Filter_DSTATE 的代码有一个未知的 FilterCoefficient 变量?

假设。其中之一是否应该由某个值初始化?

per*_*sse 5

如果您打开一个空白的 simulink 模型并添加PID controller,则双击后会出现一个对话框

在此处输入图片说明

PID 控制器的微分项永远不会实现为纯微分,因为这对噪声极其敏感。因此,添加了截止频率。

因此,D 项几乎就像是一个频率的导数,通过

          Ns
s ---> --------
        s + N
Run Code Online (Sandbox Code Playgroud)

N 是您提到的滤波器系数。这也使得使用积分器实现 D 项成为可能,避免了嘈杂的导数运算。

在此处输入图片说明