在Simulink中通过第二个变量限制PID控制器的输出

时间:2015-07-23 14:13:55

标签: matlab simulink

我有一个问题,我需要限制PID控制器的输出,所以它需要“监控”两个值。

我有一个摆动系统,比如一个摆角度为phi的摆锤。我想用其他系统减少这种摆动,这是一个陀螺仪。减小与陀螺仪的进动角度(α)的RATE成比例,因此phi_reduced = phi-A * alpha_dot,A是一些比例增益。

在理想情况下,我们将监视phi和零的差异作为误差,并使用PID控制器来确定控制陀螺仪角度的扭矩。这一切都如下图所示实现,并且像魅力一样,但现在有一个限制因素:最大进动(陀螺仪)角度限制在150度......目前,没有限制,这个最大的陀螺仪角度就像1500度,所以这是一个问题。

所以我必须限制控制陀螺仪的扭矩,不超过这个限制。如果不创建两个彼此“争斗”的PID控制器(一个增加,一个减少),我怎么能这样做呢?

见图片以澄清 Simulink setup

2 个答案:

答案 0 :(得分:2)

确定您的最大扭矩应该是什么,以获得所需的最大角度,并在PID控制器的输出上添加饱和度块,并使用先前计算的最大扭矩值进行参数化。

答案 1 :(得分:2)

对于限制的简单实现,saturation块(如am304s answer中所示)是正常的。但你应该知道你做了什么。饱和PID控制器可能会导致integral wind-up被考虑(无需深入研究模型,是否真的会发生)。

要进行保存,请使用PID控制器块的饱和度选项,并根据需要添加anti-wind-up method

enter image description here