调节控制器的增益可能很困难,哪种通用策略可以很好地工作以使系统稳定收敛到正确的解决方案?
调节控制器的增益可能很困难,哪种通用策略可以很好地工作以使系统稳定收敛到正确的解决方案?
Answers:
对于齿轮很少或没有齿轮的小型,低扭矩电动机,您可以使用一种方法来获得良好的基准调谐,以检测其对干扰的响应。
要调整PID,请执行以下步骤:
使用哪种干扰取决于控制器所连接的机制。通常,用手将机械装置移离设定点并放开就足够了。如果振荡越来越大,则需要降低P增益。
如果将D增益设置得太高,系统将开始颤动(以比P增益振荡更高的频率振动)。如果发生这种情况,请减小D增益直至停止。
我相信这项技术很有名。找到它后,我会把它放在这里。
我在大学里曾教过一种类似于hauptmech答案的实验方法:
该Ziegler-Nichols方法更精确,如果你能得到的振荡周期的准确数。通常使用给定的“经典PID”数字会引起振荡,因此它并不总是最佳的。
有关每个术语对上升时间,超调,建立时间,稳态误差和稳定性的影响的一般规则,请参阅IEEE Control Systems中Li,Ang和Chong撰写的“ PID控制系统分析和设计”表1。杂志。
Embedded.com再次移动了我的文章,但这是现在的地方。这既向您展示了如何编写PID循环(弄清楚如何在浮点数之外的其他方法中完成该操作,作为阅读器的练习)以及如何对其进行调整。
在最好的方式取决于你的能力了很多。假设您是经验丰富的控制系统专家,获得最佳调优的方法通常是测量工厂的响应(“工厂” ==“您正在控制的事物”),然后根据您的操作方式进行测量。测量可以提取工厂模型并对其进行设计,也可以直接针对测量进行设计。
对于某些困难的工厂,您会发现无法进行令人满意的测量,在这种情况下,您必须单独进行模型分析。这些很少见,但是让您满意时会感到满意。
系统建模
当然,可以按照其他答案中的说明进行实验性调整,但是如果您能够为想要控制的对象定义合理的动态模型并能够识别其参数,则应该能够基于定义的标准,例如过冲,上升时间,建立时间,稳态误差等。
MATLAB中甚至有一些工具可以调整您的控制器,以针对这些条件的组合进行优化,从而使其使用效果更好。
了解你的控制器
学习PID控制器中每个参数的功能也很有帮助。所有的实验算法都基于某种知识。如果您不仅遵循说明,而且能够使自己有这种感觉,则可能会发现手动调整控制器更加容易。
现实世界中的问题
有机会的话这些东西,等等,会得到对你的方式调整你的控制器时:饱和,采样率不足,饱和度。
结论
最后,这完全取决于您可以对系统进行的实际操作,以获取有关其工作方式以及可以进行哪种实验的知识。最好的方法是实际了解有关IMO的PID控制器和控制理论的更多信息,但我有偏见:)
我会尝试从我的经验中扩展一些可能感兴趣的人。我认为问题在于我们有很多控制理论,这些理论有些难以理解(有时没有用),然后我们有了一些经验法则,它们对通常不准确的系统进行了假设。
稳定性
让我们首先谈谈为什么控制回路变得不稳定。在此讨论中,我将假设一个线性系统。非正式地,这意味着如果控制信号是给定频率的正弦波,则观察到的输出将处于相同的频率,并且如果您更改控制系统的幅度,则输出将以相同的比率响应。对于许多现实系统而言,此假设是一个很好的近似值,并且可以让我们隔离地查看不同的频率。
如果查看控制路径,则有一个设定点,PID控制器,系统(又称“工厂”),然后是传感器。想象一个固定的设定点和来自传感器的正弦波(这等于传感器上的真实干扰,并被反馈)。在不稳定的系统中,您的反馈会导致控制回路放大误差而不是减小误差,从而随着时间的增加您的振幅也会增加。发生这种情况的原因是由于延迟,或者对于此特定频率,输入和输出之间存在相移。对于给定的频率,我们可以查看输出的开环(即无反馈)偏移和幅度,当在图表上绘制所有这些偏移时,我们会得到类似于波特图的图。如果在此开环图中出现错误不断放大的情况,则说明系统不稳定。如果延迟小于波长的1/2或增益小于x1,则系统将保持稳定。实际上,我们希望从那一点开始获得一定的余量(增益余量和相位余量),这就是为什么您会在许多手动/启发式方法中看到这种“退缩”的原因。
这些手动方法的主要问题是您盲目飞行,并且几乎可以保证获得一个差劲的控制系统。
还请记住,P,I和D的含义与传感器正在测量的内容以及所应用的控件有关。家用控制器的一个常见错误是,人们认为他们实际上没有使用P。电机控制器通常有一个位置环,在速度环和转矩环之间运行。(级联)
可以,但是这对我们有什么帮助?
我要说明的第一点是,如果要构建自己的PID控制器,则还应该构建一种测量开环响应的方法。对控制器的输入进行扫频,并在断开反馈的情况下测量传感器的输出。然后,您可以绘制开环Bode图,并查看系统为什么稳定并能够权衡各种控件的原因。测量闭环响应也很有用,您可以在闭环时对设定点进行频率扫描,从而在任何系统中进行测量。两者都不难,不需要很多理论知识。
如果您只是在不了解幕后情况的情况下简单地调整控件,就将无法优化系统。建立关于这些系统的直觉并不难。例如,比例增益对相位没有影响,而只是增加了所有频率上的开环增益。因此,当您在所有这些手动调整方法中增加比例增益时所要做的就是找到相位达到-180的频率。看到此信息可进一步了解各种控件对频率响应的影响。
经常要获得最佳的闭环性能涉及到调整系统,而不仅仅是调整控制器的增益。您想要的是使系统尽可能“僵硬”。这样一来,您就可以增大控制参数并获得最佳的开环和闭环带宽。根据我在电机控制应用中的经验,比例增益是应该完成大部分“工作”的工作,而积分器应该是“休息”的工作。我认为您根本不需要D词。在您可能会有一些机械共振的情况下,使用低通滤波器和陷波滤波器会很有帮助,但是在没有波德图的情况下进行设置非常困难(在闭环下观察到的振荡频率可能与开环不同)。
如果出于安全考虑(非常强大的电动机或可能因电动机失控而损坏的系统),则需要在开始调整之前设置一些限制(例如,电流限制,最大位置误差)以保护系统。然后,您需要对参数范围有所了解。如果您的反馈每转40个计数或每转4000个计数,则对于给定系统,参数将为100。我的方法是首先找到一个可控性较差的范围,然后从P开始,然后从I开始逐渐增加(尽管您再次盲目飞行)。退缩会产生这种稳定性裕度。
超越闭环
闭环尝试从系统中排除错误。总是会有一些有限的性能。您想要做的是最大程度地减少闭环控制器看到的错误,而做到这一点的一种方法是通过一种称为前馈的技术。在前馈中,您绕过控制器并直接向系统发出命令。加速前馈就是一个例子。如果您知道自己是电动机的转矩常数,并且知道了负载,那么您几乎可以说出要达到负载的一定加速度需要驱动多少电流。您只需简单地获取命令输入加速度,将其乘以一个常数,然后将其添加到控制器的驱动命令中即可。如果没有控制器,则基本上就是在做驱动系统所需的工作,并且越靠近,您获得的错误就越少,而循环必须消除的错误和系统的性能也会更好。在实践中,它有很大的不同。
Ziegler-Nichols是一种简便的手动方法。还存在更强大的方法-这些方法通常依赖于数学解(解析,迭代优化等)。
除此之外,谷歌“自调整PID”的一些自动化技术。我最喜欢的是将神经网络应用于PID调节。
0.01sec
)时间20secs
为3
X 2000
矩阵)有一种更快的方法叫做Ziegler–Nichols: