为什么不存在仅由ID组成的PID?

#1 楼

对此的简短答案是PID控制器的P(比例)部分是控制器的基本功能,而I(积分)和D(微分)部分只是试图解决P的常见问题-仅控制器。

如果我们看一下系统中的一般驱动力-PID控制的电动机或“执行器”-的解释就很明显了。对于PID,其致动为:

u = Kp*(e) + Kd*derivative(e) + Ki*integral(e)


其中e是期望系统位置的误差,Ki,Kd和Kp是用户定义的数字。现在,假设系统确实处于所需位置,这意味着误差e = 0;那么你也将是零!因此,问题就变成了当系统处于我们希望的状态时如何使u =0。这可以解释为什么您通常只看到使用P,PD,PI或PID控制器,因为这些组合通常是重合的激励u = 0给出期望的系统状态。但是,I,D,ID甚至ABC控制器都没有错-您可以从字面上向您添加对使用的系统有用的任何其他方。例如,您可以说

u  = 0,  if |e| < 5 and
u  = 1,  otherwise


就像您的典型恒温器一样,它实际上是一个简单的通断开关。

希望获得帮助!

评论


$ \ begingroup $
我不太确定..我知道我不应该使用I,D或ID的原因。您开始说它与P的作用相反,但是再说一次,使用它也没有错。 ...
$ \ endgroup $
–控制
2014年5月19日晚上8:48

$ \ begingroup $
我想说的是,每个应用程序都没有单个“完美”控制器:如果I,D或ID控制器可以满足您的目的,请使用它。但是,事实证明,PID,PD或PI控制器通常比I,D或ID控制器工作得更好。因此,我建议您使用PID,PD或PI控制器,因为它很可能也是您应用程序的更好选择。
$ \ endgroup $
– Tormod Haugene
2014年5月19日13:51

$ \ begingroup $
我的困惑似乎是Matlab建议我为我的系统使用I控制器。但这实际上导致了一些奇怪的输出。
$ \ endgroup $
–控制
2014年5月19日下午14:32

$ \ begingroup $
那么我根本就不会使用Matlab建议的控制器。 matlab有很多用途,但是标准程序并不总是最好的。 ;-)
$ \ endgroup $
– Tormod Haugene
2014年5月19日15:51

$ \ begingroup $
为了简单起见,我要补充一点,I和D组件与控件的动力学有关,而P组件与要到达的错误参考位置(以抽象方式)有关。
$ \ endgroup $
–亚历山大·威拉姆(Alexandre Willame)
2014年12月30日14:21

#2 楼

您几乎永远不会看到ID控制器,因为它们通常不会做任何有用的事情。他们可以执行以下操作:

1)D部分将响应系统中的更改。它将尝试校正并将系统移回0,但是一旦达到稳定状态,D部分将不再活动。请注意,该稳态在哪里都没有关系。它可以是0或10或100。

2)现在,假设系统运行非常缓慢,因此D部分可以忽略不计。 I部分会将误差的积分驱动为0。同样,这不同于将误差驱动为零。想象一下,系统从0到-5受到干扰。现在,积分将开始变为负值,并且控制器将发送正命令。一旦系统再次达到0,积分仍为负,因此控制器仍将应用正命令,并且系统将向正方向移动。最终,积分达到零,但是系统现在已经进入正数范围,因此整个过程反过来重复。

没有P,控制器就不能可靠地执行控制系统应该做的事情要做:将错误驱动为0。

评论


$ \ begingroup $
仅I和D控件怎么办?
$ \ endgroup $
–控制
2014年5月16日13:02

$ \ begingroup $
对不起,我不明白你的意思
$ \ endgroup $
–ryan0270
2014年5月16日13:21

$ \ begingroup $
我的意思是一个PID控制器,其中P和D为0,仅将其调节为I项,或者一个控制器,其中P和I为0,并使用D项对其进行调节。
$ \ endgroup $
–控制
2014年5月16日13:24



$ \ begingroup $
然后,您仍然会遇到我上面描述的相同问题。
$ \ endgroup $
–ryan0270
2014年5月16日13:28

$ \ begingroup $
“ I部分会将错误的积分驱动为0”-不正确。 I项将误差驱动为零,而不是误差的整数。错误不为零时,I项将继续更改。某些系统可能很稳定,例如带有非零I项且没有P或D的系统。
$ \ endgroup $
– Rocketmagnet
2014年12月30日23:41

#3 楼

虽然简单的D控制器仅出于ryan0270在他的回答中概述的原因而无用,但在某些情况下,简单的I控制器确实表现出色。很大程度上取决于我们必须控制的系统的特征。

实际示例案例

通过向机器人发送逆向速度命令来稳定人形机器人的头部运动颈部,而我们可以通过IMU设备感测到由躯干运动引起的速度干扰(或任何干扰,例如机器人可以行走)。

结果是,可以通过以下二阶欠阻尼处理来描述通过速度阶跃求得的Head + IMU组:

$$
G(s)= \ frac {0.978} {1 +2 \ cdot 0.286 \ cdot 0.016s +(0.016s)^ 2} e ^ {-0.027s}。
$$

因此,目标是设计一个提供以下功能的控制器:在下面的经典干扰抑制图中具有足够的反作用:



具有增益$ K_I = 11 $的纯I控制器(离散控制器以100 Hz的频率运行)就足够了完成制作I型闭环系统和性能的工作在真实的实验中非常棒。则不需要P。

下图显示了该图,其中针对三个对应的控制器(它们抵消了逐步的速度扰动)绘制了三个系统响应。比例部分开始仅对很小的增益P有用。积分部分占主导地位,几乎完成了所有任务。



#4 楼

我对控制理论非常了解,但是:

维基百科说(重点是我):


高比例增益会导致输出的较大变化对于错误的给定变化。如果比例增益过高,则系统可能会变得不稳定(请参见“环路调整”部分)。相反,小的增益导致对大输入误差的小的输出响应,以及响应性较差或灵敏度较低的控制器。如果比例增益太低,则响应系统干扰时控制动作可能会太小。调整理论和工业实践表明,比例项应占输出变化的大部分。


换句话说,当比例增益太低时,控制将太慢而导致可以使用,因为它对变化的反应实际上可以忽略不计。您可以想象将其设置为0只会使情况变得更糟。

因此,尽管ID控制器在理论上可以存在,但实际上是没有用的。

评论


$ \ begingroup $
好。我错过了一些东西,我的困惑之所以出现,是因为我做了一个仅由I和D组成的控制器,它的工作效果还不错。
$ \ endgroup $
–控制
2014年5月15日上午10:39

$ \ begingroup $
它可以正常工作,但是带有P项的控制器始终具有更快的瞬态响应。
$ \ endgroup $
–安德鲁·卡波迪奇(Andrew Capodieci)
2014年5月15日13:24

$ \ begingroup $
由于我不是控制理论方面的专家,因此,感谢您提供有关-1的反馈。我有兴趣学习我的错误。
$ \ endgroup $
– Shahbaz
2014年5月16日13:33

$ \ begingroup $
我也想了解投票否决的原因。
$ \ endgroup $
–伊恩
2014年5月18日在22:32

$ \ begingroup $
@TormodHaugene,如果造成混乱,我将其删除,但我将其作为对OP的评论。 Stackexchange上的人员在不进行搜索或尝试解决自己的问题的情况下提出问题的事实是一个严重的问题。
$ \ endgroup $
– Shahbaz
2014年5月19日13:56

#5 楼

P(比例)表示系统的响应速度。不仅P可以控制系统响应。时钟或采样时间可以使系统响应更快。因此,如果响应系统很高,则当您仅尝试I(积分)时,则只能使用ID。

评论


$ \ begingroup $
欢迎使用Adryan机器人技术。感谢您的回答,但我们正在寻找能够提供一些解释和上下文的综合答案。没有解释的简短回答不能做到这一点,因此,请编辑您的回答以解释其正确性的原因,最好是引用。
$ \ endgroup $
– Mark Booth♦
17-10-30在15:47