作者 | 主题 |
---|---|
yming 至圣 经验值:130918 发帖数:22347 精华帖:847 |
楼主 2023-12-05 13:48:44
主题:《聊聊“微分”功能及使用注意事项》 关于使用PID调制大惯量、高迟滞系统时,加入微分项(D)要注意的问题。 首先,我们来认识一下“微分”。 在数字计算中,这里的“微分” 实际上是差分,在采样周期 dT两点的差值。 Xt - X t-1,本质上就是 变量 X 的变化量。 监控变化量,在自动控制中非常重要。特点:就是提前介入控制。 什么是提前介入控制? 就是说,我们的控制并非通过数字量的阈值、回差来控制。例如:火警不是达到250度才动作。而是监测模拟量温升变化速率,就知道是着火了。 又如:我们监测控制系统设定值的变化量;当设定值提高、加大时,其变化量为正值;乘以放大系数叠加到转矩输出。这对于大惯量负载来说,效果是提高了响应速度。(积分输出过程就比较慢。)这就是前馈预控的作用。 在PID控制中,微分项是在误差输出的后面;它监测的 是误差ERR的变化量。我们知道,随着闭环控制工作,误差量逐步变小,毫无疑问,(相对上一个采样值变小,)其(微分)变化量是负值。微分的负值输出将抑制功能块的输出。误差值变化量越大,微分输出值越大,抑制量越大。而当误差值越小(意味着实际值接近设定值),变化波动越小时,微分的输出(抑制量)很小。这种特性特别适合大惯量、高迟滞的系统。通过加入微分,能有效控制对象的波动精度。 看起来不错,微分功能挺好。 但是,我们是做工程的。细节要注意。 例如:我们用500度热源去加热一物体,从0度加热到200度,需要18分钟;我们用1200本体自带的AI,采用100毫秒的循环中断采样差值,行不行呢? 实际上,不行! 尽管它的模拟量值都是0-27648,但因为它是10位AD转换,二进制表示的后五位是无效的。它的分辨率仅为1024。用0-250度传感器,感度0.24度。 实际使用中,埋在物体中的传感器温升,(换算可知)才0.185度/秒。这就是说,每次100毫秒循环中断的采样差值均为零。 这个微分毫无作用。即使采样周期放大10倍(1秒)也未必能行,微分输出总为零,不能控制住对象温度的波动。 毫无疑问,换个0-500度的传感器,更没戏了。 所以,使用微分功能前,要实际计算/测量一下控制对象的惯量、传感器的迟滞,选择合适的参数。(1200、LOGO全系列本体模拟量AD转换均是10位的。) 所以,去仔细看Zane版主关于温度控制的帖子。 思考一下:使用16位的AD转换模块,微分采样时间500毫秒。为什么?
学而时习之,不亦说乎?温故而知新,不亦乐乎?
|