我遇到一个问题,我需要限制 PID Controller 的输出,因此它需要“监视”两个值。
我有一个摆动系统,比如说一个以角度 phi 摆动的钟摆。我想用另一个系统来减少这种摆动,这是陀螺仪。减小量与陀螺仪进动角 (alpha) 的速率成正比,因此 phi_reduced = phi - A* alpha_dot,A 是某个比例增益。
在理想情况下,我们将监控 phi 与零的差值作为误差,并使用 PID Controller 来确定控制陀螺仪角度的扭矩。这一切都是按照下图所示实现的,并且工作起来就像一个魅力,但现在有一个限制因素:最大进动(陀螺仪)角度被限制为 150 度......目前,没有限制,这个最大陀螺仪角度大约是 1500 度,所以这是一个问题。
所以我必须限制控制陀螺仪的扭矩,不超过这个限制。我怎样才能做到这一点而不创建两个相互“争斗”的 PID Controller (一个增加,一个减少)?
最佳答案
对于限制的简单实现,saturation block ,如am304s answer没关系。但你应该知道你在做什么。 PID Controller 饱和可能会导致integral wind-up应该考虑这一点(无需深入研究您的模型,看看它是否真的会发生)。
为了节省开支,请使用 PID 的饱和选项 Controller block 并包括 anti-wind-up method ,如果需要的话。
关于matlab - 通过 Simulink 中的第二个变量限制 PID Controller 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31589977/