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

Limit output of PID controller by second variable in Simulink

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

我有一个摆动系统,比如说一个以角度 phi 摆动的钟摆。我想用另一个系统来减少这种摆动,这是一个陀螺仪。减少量与陀螺仪进动角 (alpha) 的速率成正比,因此 phi_reduced = phi - A* alpha_dot,A 是一些比例增益。

在理想情况下,我们会监测 phi 和零的差异作为误差,并使用 PID 控制器来确定控制陀螺仪角度的转矩。这一切都按照下图所示实现,效果很好,但现在有一个限制因素:最大进动(陀螺仪)角度限制为 150 度......目前,没有限制,这个最大陀螺仪角度大约1500度,所以这是个问题。

所以我必须限制控制陀螺仪的扭矩不超过这个限制。如果不相互创建两个 PID 控制器 "fighting"(一个递增,一个递减),我该怎么做?

请参阅图片进行说明

算出你的最大扭矩应该是多少才能给你想要的最大角度,并在你的 PID 控制器的输出上添加一个饱和块,用之前计算的最大扭矩值参数化。

对于限制的简单实施,应该考虑 saturation block, as in is alright. But you should know what you do. Saturating PID controllers can cause an integral wind-up(无需深入研究您的模型,它是否真的会发生)。

为了节省开支,如果需要,请使用 PID controller block and include an anti-wind-up method 的饱和选项。