1
PID(微分)的实现
我正在实现PID控制器以进行电动机速度控制。我已经实现了PI控件,并且对我来说效果很好。在规范中,我被告知要通过对D部分使用以下公式来实现过滤技术: 现在,到目前为止,我所理解的是通常s代表"dx/dt"与误差变化率相对应的代表,但是在这里,我可以将其与反馈变化率联系起来。Td/N用于限制整体增益输出(希望我做对了)。现在用C代码来表示,我尝试了以下方法: s = (CurrentFeedback()-Old_Feedback)*100/(MaxFeedback()); //to calculate the % change in feedback s = s*1000/sampleTime; //1000 is multiplied because sampleTime is in milliseconds D = (Td*s)/(1+(s*Td/N)); D = D*KP; //Kp is multiplied as per the standard pid equation. Old_Feedback = CurrentFeedback(); PID = P+I-D; 好吧,加上D的结果不是我所预期的。我只想知道我是否正确实现了D部分方程式?在我对微分的基本数学的理解上是否犯了任何错误? 注意:我不能随意更改重新计算kp,ti,td,因为它直接来自VFD。