MATLAB 中的根轨迹图

Ammar Ali 2022年5月11日
MATLAB 中的根轨迹图

本教程将讨论使用 Matlab 中的 rlocus() 函数计算和绘制动态系统的根轨迹。

在 MATLAB 中使用 rlocus() 函数计算并绘制动态系统的根轨迹

我们使用根轨迹来检查反馈增益变化对闭环极点位置的影响,这些位置提供有关时间和频率响应的信息。

rlocus() 函数计算并绘制给定系统的根轨迹。它提供给定函数的闭环极点轨迹,是反馈增益的函数。我们必须在 rlocus() 函数中传递系统的传递函数来绘制该函数的根轨迹。

例如,让我们使用 tf() 函数创建一个系统的传递函数,并使用 Matlab 中的 rlocus() 函数绘制其根轨迹。请参阅下面的代码。

sys = tf([2 5 1],[1 2 3]);
rlocus(sys)

输出:

系统的根轨迹

x 符号提供输出中的极点,o 符号提供系统传递函数的零点。

我们还可以使用 rlocus() 函数绘制多个系统的多个根轨迹。如果我们在 rlocus() 函数中传递多个系统的传递函数,它会将所有系统的根轨迹以不同的颜色绘制在同一个图上。

我们可以使用 legend() 函数为每个绘图命名,以便轻松识别它们。例如,让我们绘制两个系统的根轨迹并使用 legend() 函数添加图例。

请参阅下面的代码。

sys1 = tf([2 5 1],[1 2 3]);
sys2 = tf([2 2 1],[1 2]);
rlocus(sys1,sys2)
legend('sys1','sys2')

输出:

多系统的根轨迹图

我们还可以使用 rlocus() 函数找到闭环极点位置和反馈增益的值。例如,让我们找出上述系统的闭环极点位置和反馈增益值。请参阅下面的代码。

sys = tf([2 5 1],[1 2 3]);
[R,K] = rlocus(sys)
size(R)

输出:

ans =

     2    55

在输出中,你可以看到变量 R 的大小 - 2×55。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Plot