旧乡故客
发表于: 2018-8-3 16:39:27 | 显示全部楼层

在本文中,我们将使用一个简单,经过验证的调整程序来找到比例,积分和微分增益的有效值。

该PID(比例 - 积分 - 微分)温度控制系统的主要组件包含EFM8微控制器、DAC和MAX31855热电偶数字转换器。该系列总共有6部分:

●    Part 1:电路原理设计

●    Part 2:板级集成

●    Part 3:实现与可视化

●    Part 4:Scilab GUI

●    Part 5:调节增益系数

●    Part 6:齐格勒-尼科尔斯调整


猜测和检查的局限性

在上一篇文章中,我们采用了一些基本的系统分析,然后进行了粗略的实验,以确定可行的PID增益参数。由此产生的性能非常好 - 但是我们只用一个特定的控制任务来测试系统,所以我们不太了解控制器在不同的操作条件下可能会做什么。我们也不知道性能会有多好。当你看到足够的性能时,满足它是一件好事,但如果仅仅通过改变增益值就可以显着改善系统呢?猜测和检查方法也是不切实际的,或者至少是无聊的。即使使用这个小型实验温度控制器,这个过程也非常耗时 - 如果每次控制运行需要一个小时而不是几分钟,您会怎么做?我的观点是,高效,有效的PID调节是控制系统设计的重要组成部分。


设计喷气式战斗机和火星探测器的人们需要比猜测和检查更好的方式,这应该不足为奇。复杂的PID软件包或仿真环境可能是大多数现代控制系统的首选方法;另一方面,我们将使用称为Ziegler-Nichols方法的简单,经过时间考验的技术。


齐格勒 - 尼科尔斯(Ziegler–Nichols)

这个程序最初是在1942年发表的一篇论文中描述的 - 归功于Ziegler和Nichols提出的一种调整方法,该方法已经存在了近75年的压倒性技术发展。该过程从仅比例增益系统开始。你增加P增益,直到系统表现出持续的振荡(即振幅稳定)和规则振荡(即周期稳定);振荡不需要以设定值为中心。这是Ziegler-Nichols方法中唯一令人讨厌的部分。其余的只是数学。


一旦持续,定期振荡,您可以记录比例增益并测量振荡周期。这些值分别称为最终增益(KU)和最终时期(PU)。现在根据下表计算KP,KI和KD:


KP
TI
TD
P-only控制
KU / 2

PI控制
KU / 2.2
PU / 1.2

PID控制
KU / 1.7
PU / 2
PU / 8

请注意,积分和微分列标记为TI和TD,而不是KI和KD。这些“T”变量是指计算积分或微分时使用的时间常数。对于我们的离散时间控制器,我们使用以下关系来确定KI和KD:

KI = KP X(T/TI)   KD = KP x(T/DT)

其中T是PID间隔,即,计算PID输出和更新控制电路的例程的连续执行之间的时间量。我们的温度控制器的当前版本使用2秒的PID间隔。


寻求振荡

所以首先我们需要找到最终的增益和限制。反馈系统通常会给工程师带来防止振荡的问题;当有足够的规律性发生时,有一些令人轻松的鼓励振荡,甚至感到满足感。


在上一篇文章中,我们看到KP = 70的仅P系统不会产生稳定的振荡:

PID6_P-70__I-0__D-0.jpg


所以让我们将KP提高到90,看看会发生什么。

PID6_P-90__I-0__D-0.jpg


这看起来更好,但振荡的幅度随着时间的推移明显减少。我们试试KP = 100:

PID6_P-100__I-0__D-0.jpg


我会考虑这个边界。振荡是规则的但不是很持久(在最后三个循环之前,降幅并不明显)。这是KP = 110:

PID6_P-110__I-0__D-0_run2_periodmarked.jpg


这对我来说很好看。我没有发现任何明显的不规则或幅度减小。所以我们会说最终的收益是110。

持续,规律振荡的KP为110⇒KU= 110


如下图所示,最终时间约为55秒。

TU = 55秒

PID6_P-110__I-0__D-0_run2.jpg


计算

第一个表显示了比例增益,积分时间常数和导数时间常数的Ziegler-Nichols值,假设KU = 110且TU = 55秒。假设PID间隔为2秒,第二个表具有增益值而不是积分和微分项的时间常数。第二个表中的所有值都四舍五入到最接近的整数;这些是我们将在系统中实际使用的值,它不支持非整数增益。



KP
TI
TD
P-only控制
55

PI控制
50
45.8

PID控制
64.7
27.5
6.9


KP
TI
TD
P-only控制
55

PI控制
50
2

PID控制
65
5
223

结果

我们将根据收敛时间比较不同系统配置的性能,我们将定义如下:测量温度首次达到设定点的时间与测量温度直接保持在最高温度或立即之间的时间间隔靠近设定点线。 (该收敛标准对应于高于或低于设定点温度约1°C的范围。)我们希望在测量温度首次达到设定值时(而不是在控制运行开始时)开始间隔,因为这应该最小化与初始系统状态变化相关的误差(主要关注的是控制运行开始时测量温度的变化)。


首先让我们看看Ziegler-Nichols P-only系统:

PID6_55-0-0.jpg


不出所料,这个系统甚至没有收敛。只有P系统才能做到这么多。


这是Ziegler-Nichols PI系统:

PID6_50-2-0_convergencemarked.jpg



很好 - 可能是我们可以做的最好的,没有任何衍生收益。实际上,在我花了很多时间尝试这个系统后,我记不起更好的PI控制运行了。如图中标记的,收敛时间为198秒。还要注意合理的过冲量。重要的是要记住Ziegler-Nichols方法包括专门用于PI控制的调整程序,因为在许多情况下,仅使用比例和积分增益是可接受的或甚至更可取的。当系统易受测量变量中的主要干扰或噪声影响时,微分作用可能会有问题。


现在我们准备好了完整的PID:

PID6_65-5-223_convergencemarked.jpg



很好,Ziegler和Nichols。这远远超过我迄今为止所看到的任何控制。收敛时间从198秒减少到43秒,过冲仅增加了约1°C。尽管我上面谈到了衍生收益的危险,但它在这个系统中显然是有益的。我认为这并不太令人惊讶 - 我们没有大的干扰,并且测得的温度没有太大的噪音(部分原因是温度测量被MAX31855的有限分辨率和相对较长的PID间隔有效滤除)。


标准Ziegler-Nichols方法的一个缺点是过冲。在我们的系统和许多其他系统中,这种超调量是没有问题的。但是在某些情况下,过冲是不可接受的 - 一个极端的例子是如果温度远高于设定值就会点燃的物质。因此,在我们完成之前,我们将研究旨在最大限度地减少过冲的调整参数。 Microstar Laboratories的这篇文章包括一个表格,其中包含这种“无超调”调整方法的参数,以及两种与标准Ziegler-Nichols技术不同的其他方法。


KP
TI
TD
没有超调
KU / 5
TU / 2
TU / 3

相应的舍入增益为KP = 22、KI = 2、KD = 202。结果如下:

PID6_22-2-202.jpg


该方法成功地消除了过冲,严重损害了收敛时间。我们无法直接将此运行与之前的运行进行比较,因为当测量的温度从未超过设定值时,我们的收敛时间规则不起作用,并且因为此运行根本不会根据我们先前的标准收敛。但是我们可以从总体时间到接近收敛的总体思路。使用Ziegler-Nichols PID系统,总收敛时间为134秒,而“无超调”PID系统在275秒时非常接近收敛。


总结

我们现在了解经过验证的调整方法的价值。我们在Ziegler-Nichols方法上取得了巨大成功,但其他方法也可用。使用这种特殊的温度控制器,Ziegler-Nichols程序实现了接近最佳的性能。然而,重要的是要理解Ziegler-Nichols或任何其他方法都没有什么神奇之处。如果系统的性能不足,那么该方法生成的增益值将成为进一步观察和细化的起点。

PID6_P-110__I-0__D-0_run2_periodmarked.jpg
跳转到指定楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 29 | 回复: 32



手机版|

GMT+8, 2024-3-29 00:56 , Processed in 0.092537 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表