设计控制器时如何处理波特图中“奇怪”的相位图

信息处理 matlab 奈奎斯特 控制 预兆 PID
2022-02-07 10:07:37

我正在尝试为机器人设计一个平衡控制器。使用 MATLAB simulink,我得到了机器人的输入和俯仰角之间的传递函数。我在下面绘制了波特图和奈奎斯特图。

在此处输入图像描述

如您所见,奈奎斯特图看起来很奇怪,并且在波特图中,低频信号被衰减了。为了解决这个问题,我在幅度图的峰值处添加了一个零,所以

ωi=10rad/sτi=1ωi=0.1s

这会产生一个 I-term,如下所示:Ci(s)=τis+1τis=0.1s+10.1s

当我将它添加到控制器时,波特图现在变成了。

在此处输入图像描述

现在我还想添加一个前置项来防止过冲,但我通常这样做的方式是改变交叉频率ωc这样有良好的相位裕度,定义一些常数α,然后用公式找到前导项τd=1ωcα. 然后我可以用

Cd=τds+1ατds+1

但是当我查看当前的相位图时,看起来相位裕度没有问题。相位永远不会接近180所以我不确定如何处理这种看起来很奇怪的相位图。

所以我的问题是,当相位图看起来像这样时,我如何找到我的提前期?除了我提出的建议之外,还有其他方法吗?

编辑

输入和俯仰角之间的开环传递函数是G(s)=5.893e05s4+7.71e08s3+1.435e11s2+2.566e12s+7.683e09s7+2418s6+1.317e06s5+1.977e08s4+1.312e10s3+1.796e11s29.658e11s1.525e13 在 MATLAB 中使用“pole”命令,我注意到 RHP 中有一个极点,这应该会导致一些不稳定。

在此处输入图像描述

2个回答

编辑后,创建控制器的第一个挑战是创建稳定控制器的任务。之后,可以调整性能。为了确定创建的控制器是否稳定闭环,可以使用奈奎斯特图。奈奎斯特稳定性标准指出点 -1 的环绕量(在此为逆时针环绕负数)等于N=PZ.P表示开环系统的 RHP 极点数量,并且Z闭环系统的 RHP 极点数量。因此,为了稳定闭环知道P=1,奈奎斯特轮廓的包围量应为 1(这意味着Z=0)。可以肯定的是,这意味着 1 个顺时针环绕,或者一个顺时针环绕的逆时针环绕。

实现稳定性就像使用正确的反馈增益一样容易。根轨迹图可能表明rlocus(sys). 但是,我自己去测试过,仅仅获得收益是无法实现的。在这种情况下,甚至可能是一个不稳定的控制器能够稳定系统。可悲的是,我无法提供确保稳定性的直接经验法则。闭环稳定后,我很确定波特图将具有适当的相位和增益裕度(因为它实际上必须跨越 -180 相位角)。

快乐修补!

我对你的波特图有点困惑,这就是我用你的传递函数和 Matlab 2019b 得到的结果。我的相位几乎从 -180 度开始,而你的相位从 0 度开始。您是否有可能在分析的某个地方犯了错误?

在此处输入图像描述

您的传递函数有点复杂,您可以通过删除快速极点和零点来简化它。例如,您在 -1714 和 -516 处有 2 个快速极点,在 -1088 处有一个快速零点。您可以移除 2 个快速极点和快速零点以简化传递函数。这将使您的分析更容易。

其次,我认为您用于交叉频率的经验法则公式仅在您的开环系统具有低通特性时才有效。您的系统具有带通特性。