主要内容

rlocus

动态系统的根轨迹

说明

[r,kout] = rlocus(sys) 计算 SISO 模型 sys 的根轨迹,并返回反馈增益 k 的结果向量和对应的复数根位置 r

为了生成平滑的根轨迹,rlocus 会自动选择一组正反馈增益。

有关动态系统的根轨迹的详细信息,请参阅算法

示例

r = rlocus(sys,k) 返回对应于 k 中指定的反馈增益的闭环极点。

示例

rlocus(___) 使用所有先前输入参量组合的默认绘图选项绘制 SISO 模型 sys 的根轨迹。如需更多绘图自定义选项,请使用 rlocusplot

  • 要在同一图上绘制多个动态系统的根轨迹,您可以将 sys 指定为以逗号分隔的模型列表。例如,rlocus(sys1,sys2,sys3) 在同一图上绘制三个模型的根轨迹。

  • 要为图中的每个系统分别指定一种颜色、线型和标记,请为每个系统指定 LineSpec 值。例如,rlocus(sys1,LineSpec1,sys2,LineSpec2) 绘制两个模型并指定它们的绘图样式。有关指定 LineSpec 值的详细信息,请参阅 rlocusplot

示例

全部折叠

对于此示例,绘制以下 SISO 动态系统的根轨迹:

sys(s)=2s2+5s+1s2+2s+3.

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

MATLAB figure

在根轨迹图上,系统的极点用 x 表示,零点用 o 表示。您可以使用生成的根轨迹图中的菜单来添加网格线、放大或缩小,还可以调用属性编辑器来自定义该图。

如需更多绘图自定义选项,请使用 rlocusplot

对于此示例,假设 sisoModels.mat 包含以下三个 SISO 模型:

  • sys1 - 一个传递函数模型

  • sys2 - 一个状态空间模型

  • sys3 - 一个零极点增益模型

mat 文件中加载模型。

load('sisoModels.mat','sys1','sys2','sys3');

使用 rlocus 创建根轨迹图,并指定每个系统的颜色。还要向根轨迹图中添加一个图例。

rlocus(sys1,'b',sys2,'k',sys3,'r')
hold on
legend('sys1','sys2','sys3')
hold off

MATLAB figure

该图在同一绘图中包含所有三个系统的根轨迹图。有关更多绘图自定义,请参阅 rlocusplot

对于此示例,假设有以下 SISO 传递函数模型:

sys(s)=3s2+19s3+7s2+5s+6

使用上述传递函数模型和 rlocus 提取闭环极点和相关联的反馈增益值。

sys = tf([3 0 1],[9 7 5 6]);
[r,k] = rlocus(sys)
r = 3×53 complex
102 ×

  -0.0094 + 0.0000i  -0.0104 + 0.0000i  -0.0105 + 0.0000i  -0.0106 + 0.0000i  -0.0107 + 0.0000i  -0.0108 + 0.0000i  -0.0109 + 0.0000i  -0.0111 + 0.0000i  -0.0112 + 0.0000i  -0.0113 + 0.0000i  -0.0115 + 0.0000i  -0.0117 + 0.0000i  -0.0119 + 0.0000i  -0.0121 + 0.0000i  -0.0124 + 0.0000i  -0.0126 + 0.0000i  -0.0129 + 0.0000i  -0.0132 + 0.0000i  -0.0135 + 0.0000i  -0.0139 + 0.0000i  -0.0143 + 0.0000i  -0.0148 + 0.0000i  -0.0152 + 0.0000i  -0.0158 + 0.0000i  -0.0163 + 0.0000i  -0.0170 + 0.0000i  -0.0177 + 0.0000i  -0.0184 + 0.0000i  -0.0192 + 0.0000i  -0.0201 + 0.0000i  -0.0211 + 0.0000i  -0.0222 + 0.0000i  -0.0233 + 0.0000i  -0.0246 + 0.0000i  -0.0259 + 0.0000i  -0.0274 + 0.0000i  -0.0290 + 0.0000i  -0.0307 + 0.0000i  -0.0326 + 0.0000i  -0.0346 + 0.0000i  -0.0368 + 0.0000i  -0.0392 + 0.0000i  -0.0418 + 0.0000i  -0.0446 + 0.0000i  -0.0476 + 0.0000i  -0.0508 + 0.0000i  -0.0543 + 0.0000i  -0.0582 + 0.0000i  -0.0623 + 0.0000i  -0.0667 + 0.0000i
   0.0008 + 0.0084i   0.0006 + 0.0083i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0081i   0.0005 + 0.0081i   0.0004 + 0.0081i   0.0004 + 0.0081i   0.0004 + 0.0080i   0.0004 + 0.0080i   0.0003 + 0.0080i   0.0003 + 0.0080i   0.0003 + 0.0079i   0.0002 + 0.0079i   0.0002 + 0.0078i   0.0002 + 0.0078i   0.0002 + 0.0078i   0.0001 + 0.0077i   0.0001 + 0.0077i   0.0001 + 0.0076i   0.0000 + 0.0076i   0.0000 + 0.0075i  -0.0000 + 0.0074i  -0.0000 + 0.0074i  -0.0000 + 0.0073i  -0.0001 + 0.0073i  -0.0001 + 0.0072i  -0.0001 + 0.0071i  -0.0001 + 0.0071i  -0.0001 + 0.0070i  -0.0001 + 0.0070i  -0.0001 + 0.0069i  -0.0001 + 0.0068i  -0.0001 + 0.0068i  -0.0001 + 0.0067i  -0.0001 + 0.0067i  -0.0001 + 0.0066i  -0.0001 + 0.0066i  -0.0001 + 0.0065i  -0.0001 + 0.0065i  -0.0001 + 0.0064i  -0.0001 + 0.0064i  -0.0001 + 0.0064i  -0.0001 + 0.0063i  -0.0001 + 0.0063i
   0.0008 - 0.0084i   0.0006 - 0.0083i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0081i   0.0005 - 0.0081i   0.0004 - 0.0081i   0.0004 - 0.0081i   0.0004 - 0.0080i   0.0004 - 0.0080i   0.0003 - 0.0080i   0.0003 - 0.0080i   0.0003 - 0.0079i   0.0002 - 0.0079i   0.0002 - 0.0078i   0.0002 - 0.0078i   0.0002 - 0.0078i   0.0001 - 0.0077i   0.0001 - 0.0077i   0.0001 - 0.0076i   0.0000 - 0.0076i   0.0000 - 0.0075i  -0.0000 - 0.0074i  -0.0000 - 0.0074i  -0.0000 - 0.0073i  -0.0001 - 0.0073i  -0.0001 - 0.0072i  -0.0001 - 0.0071i  -0.0001 - 0.0071i  -0.0001 - 0.0070i  -0.0001 - 0.0070i  -0.0001 - 0.0069i  -0.0001 - 0.0068i  -0.0001 - 0.0068i  -0.0001 - 0.0067i  -0.0001 - 0.0067i  -0.0001 - 0.0066i  -0.0001 - 0.0066i  -0.0001 - 0.0065i  -0.0001 - 0.0065i  -0.0001 - 0.0064i  -0.0001 - 0.0064i  -0.0001 - 0.0064i  -0.0001 - 0.0063i  -0.0001 - 0.0063i

k = 1×53

         0    0.4201    0.4542    0.4911    0.5309    0.5740    0.6205    0.6709    0.7253    0.7841    0.8477    0.9165    0.9908    1.0712    1.1581    1.2521    1.3536    1.4634    1.5822    1.7105    1.8493    1.9993    2.1614    2.3368    2.5263    2.7313    2.9529    3.1924    3.4514    3.7313    4.0340    4.3613    4.7151    5.0975    5.5111    5.9581    6.4415    6.9640    7.5289    8.1397    8.8000    9.5138   10.2856   11.1200   12.0220   12.9973   14.0516   15.1915   16.4238   17.7561

由于 sys 包含 3 个极点,因此生成的极点数组 r 的大小为 3×53。r 中的每列对应于向量 k 中的一个增益值。对于此示例,rlocus 自动选择 k 的从零到无穷大的 53 个值,以获得三个闭环极点的平滑轨迹。

display(r(:,39))
  -3.2585 + 0.0000i
  -0.0145 + 0.6791i
  -0.0145 - 0.6791i
display(k(39))
    7.5289

例如,r(:,39) 包含反馈增益值为 7.5289 的上述闭环极点。

对于此示例,假设有以下 SISO 传递函数模型:

sys(s)=0.5s2-14s4+3s2+2

定义传递函数模型和必需的反馈增益值向量。对于此示例,假设一组增益值从 1 到 8 变化,增量为 0.5,并使用 rlocus 提取闭环极点位置。

sys = tf([0.5 0 -1],[4 0 3 0 2]);
k = (1:0.5:5);
r = rlocus(sys,k);
size(r)
ans = 1×2

     4     9

由于 sys 包含 4 个闭环极点,因此生成的闭环极点位置数组 r 的大小为 4×9,其中 9 列对应于在 k 中定义的 9 个特定增益值。

您还可以在根轨迹图上可视化 k 中特定增益值的闭环极点轨迹。

rlocus(sys,k)

MATLAB figure

输入参数

全部折叠

动态系统,指定为 SISO 动态系统模型或动态系统模型数组。您可以使用的动态系统包括:

  • 连续时间或离散时间数值 LTI 模型,如 tfzpkss 模型。

  • 稀疏状态空间模型,如 sparssmechss 模型。

  • 广义或不确定的 LTI 模型,如 genssuss (Robust Control Toolbox) 模型。使用不确定模型需要 Robust Control Toolbox™ 软件。

    • 对于可调控制设计模块,该函数根据其当前值计算模型以绘制响应。

    • 对于不确定的控制设计模块,该函数绘制模型的标称值和随机样本。

  • 辨识的 LTI 模型,如 idtf (System Identification Toolbox)idss (System Identification Toolbox)idproc (System Identification Toolbox) 模型。使用辨识模型需要 System Identification Toolbox™ 软件。

如果 sys 是模型数组,则图会在同一坐标区中显示该数组中所有模型的响应。

与极点位置相关的反馈增益值,指定为向量。反馈增益定义极点的轨迹,从而影响根轨迹图的形状。

输出参量

全部折叠

sys 的闭环极点位置,对应于每个反馈增益值 kout,以 N×M 数组形式返回,其中 Nsys 的闭环极点数且 Mmax(length(k))

与极点位置相关的反馈增益值,以向量形式返回。反馈增益定义极点的轨迹,从而影响根轨迹图的形状。当用户未定义 k 时,rlocus 以自适应方式选择一组介于零和无穷大之间的正增益 k,以生成平滑图。

提示

  • 有关根轨迹绘制的交互式方法,请参阅控制系统设计器

  • 对于用于自定义根轨迹图外观的其他选项,请使用 rlocusplot

  • 使用 rlocus 创建的绘图不支持以字符串数组或字符向量元胞数组形式指定的多行标题或标签。要指定多行标题和标签,请使用包含 newline 字符的单个字符串。

    rlocus(sys)
    title("first line" + newline + "second line");

算法

动态系统的根轨迹包含作为反馈增益 k 的函数的闭环极点轨迹(假设负反馈)。根轨迹用于研究不同反馈增益对闭环极点位置的影响。反过来,这些位置提供有关时间和频率响应的间接信息。

您可以使用 rlocus 通过设置 sys 计算以下任何反馈环的根轨迹图,如下图所示。

例如,如果 sys 是由下式表示的传递函数:

sys(s)=n(s)d(s)

则闭环极点是下式的根:

d(s)+kn(s)=0

根轨迹图描绘随着反馈增益 k 从 0 变化到无穷大时闭环极点的轨迹。

版本历史记录

在 R2006a 之前推出

全部展开