matlab - 通过 Simulink 中的第二个变量限制 PID Controller 的输出

标签 matlab simulink pid-controller

我遇到一个问题,我需要限制 PID Controller 的输出,因此它需要“监视”两个值。

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

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

所以我必须限制控制陀螺仪的扭矩,不超过这个限制。我怎样才能做到这一点而不创建两个相互“争斗”的 PID Controller (一个增加,一个减少)?

查看图片以了解详情 Simulink setup

最佳答案

对于限制的简单实现,saturation block ,如am304s answer没关系。但你应该知道你在做什么。 PID Controller 饱和可能会导致integral wind-up应该考虑这一点(无需深入研究您的模型,看看它是否真的会发生)。

为了节省开支,请使用 PID 的饱和选项 Controller block 并包括 anti-wind-up method ,如果需要的话。

enter image description here

关于matlab - 通过 Simulink 中的第二个变量限制 PID Controller 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31589977/

相关文章:

matlab - 使用 mldivide 约束参数

c - PID在arduino中的实现

c - Keil Uvision4 中的 PID Controller

matlab - Matlab : numerical arguments or counterexample? 中线性不等式/等式系统隐含的不等式

arrays - 将矩阵乘以向量

java - 使用 Matlab 进行 HTTP 发布

matlab - 我应该使用 MATLAB Function 模块还是普通的 Simulink 模块?

java - 如何将 simulink 文件转换为 XML

c - 错误: No matching asm pattern exists

robotics - 四轴飞行器距离 PID Controller